<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>215846</bug_id>
          
          <creation_ts>2020-08-26 02:06:53 -0700</creation_ts>
          <short_desc>Unity RubysAdventure demo does not render properly if WebGL2 is enabled.</short_desc>
          <delta_ts>2020-10-30 08:30:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.15</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>126404</blocked>
    
    <blocked>218327</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>jujjyl</reporter>
          <assigned_to name="James Darpinian">jdarpinian</assigned_to>
          <cc>brendanduncan</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jdarpinian</cc>
    
    <cc>jonlee</cc>
    
    <cc>kbr</cc>
    
    <cc>kimmo.t.kinnunen</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>msokalski</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1682943</commentid>
    <comment_count>0</comment_count>
    <who name="">jujjyl</who>
    <bug_when>2020-08-26 02:06:53 -0700</bug_when>
    <thetext>The Unity emunittest demo RubysAdventure does not render in Safari STP if WebGL 2 experimental feature is enabled. It does work properly in WebGL 1 mode.

RubysAdventure build can be downloaded from http://clb.confined.space/emunittest_unity/RubysAdventure_20190722_201255_wasm_release_profiling.zip

The source Unity project can be downloaded from https://assetstore.unity.com/packages/essentials/tutorial-projects/2d-beginner-complete-project-140253 . The above build has been exported from this Unity project unmodified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683050</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-26 11:17:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/67817161&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696018</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-10-08 13:35:23 -0700</bug_when>
    <thetext>https://tiny.vision/ also renders all black in Safari Technology Preview Release 114 (Safari 14.1, WebKit 15611.1.1.3) . It was broken in Release 113 too.

jdarpinian@ said he&apos;s actively investigating this, so reassigning.

Raising to P1, Major - this is key content we&apos;ve been aiming to enable with the WebGL 2.0 upgrade in Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696399</commentid>
    <comment_count>3</comment_count>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-10-09 16:53:34 -0700</bug_when>
    <thetext>So far I haven&apos;t found anything wrong with the rendering itself. What I have found using spector.js is that Unity is setting a bunch of uniforms to 0, which are set to 1 normally in Chrome. I&apos;m looking at one of the first draw calls and there are uniforms _Color, _Flip, and _RendererColor which have all their values set to 0, when in Chrome they are all 1. At least, that&apos;s what spector.js sees.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696400</commentid>
    <comment_count>4</comment_count>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-10-09 16:57:35 -0700</bug_when>
    <thetext>I haven&apos;t yet ruled out a bug in WebKit that&apos;s causing those uniforms to be set to 0 incorrectly, but it&apos;s also possible that Unity is setting them wrong. I will investigate more on Monday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696487</commentid>
    <comment_count>5</comment_count>
    <who name="Brendan Duncan">brendanduncan</who>
    <bug_when>2020-10-09 22:18:08 -0700</bug_when>
    <thetext>Digging into the GL functions Unity is using, I found the WebGL2 variant of glUniform4fv, gl.uniform4fv(location, data, srcOffset, srcLength), is failing on Safari. When I changed that call to the WebGL1 variant, the test started working on Safari. I haven&apos;t verified yet if other functions are failing as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696554</commentid>
    <comment_count>6</comment_count>
    <who name="Brendan Duncan">brendanduncan</who>
    <bug_when>2020-10-10 17:01:45 -0700</bug_when>
    <thetext>Looks like there are problems with the WebGL2 variants for all of the gl.uniform*v functions. When I disabled the WebGL2 variants for those functions in the RubysAdventure build Jukka provided, it started working.

I did this by editing the framework.unityweb file in the Build folder, and replacing the code `if(GL.currentContext.supportsWebGL2EntryPoints)` in the `_glUniform*v` functions with `if(false)`, forcing those functions to use the WebGL1 variants.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696969</commentid>
    <comment_count>7</comment_count>
    <who name="Brendan Duncan">brendanduncan</who>
    <bug_when>2020-10-12 12:03:19 -0700</bug_when>
    <thetext>I built WebKit from source to figure out why the glUniform* functions were failing. Focusing on glUniform4fv, I found ANGLE was generating the error in ValidateUniformCommonBase (ANGLE/src/libANGLE/validationES.cpp). Specifically, count &gt; 1 &amp;&amp; !uniform.isArray(). 

The uniform it doesn&apos;t think was an array is `uniform vec4 _MainTex_ST`. This is the translate/scale transform for the screen blit UVs, so being considered invalid and not getting set, the transform has a 0 scale, and hence the black screen. 

The real bug then is why ANGLE doesn&apos;t think that vec4 uniform is an array.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696983</commentid>
    <comment_count>8</comment_count>
    <who name="Brendan Duncan">brendanduncan</who>
    <bug_when>2020-10-12 12:47:36 -0700</bug_when>
    <thetext>The WebGL1 variant calls validate with a count of 1, that&apos;s why it didn&apos;t have an issue with isArray being false. So the real bug is with Webkit&apos;s validateUniformParameters using a count size of 4 instead of 1 for the vec4 uniform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696989</commentid>
    <comment_count>9</comment_count>
    <who name="Brendan Duncan">brendanduncan</who>
    <bug_when>2020-10-12 13:11:39 -0700</bug_when>
    <thetext>Here&apos;s the bug:

Source/WebCore/html/canvas/WebGL2RenderingContext.cpp,
WebGL2RenderingContext::uniform4fv:
m_context-&gt;uniform4fv(location-&gt;location(), data.data(), srcOffset, srcLength ? srcLength : (data.length() - srcOffset) / 4);

should be:
m_context-&gt;uniform4fv(location-&gt;location(), data.data(), srcOffset, srcLength ? srcLength / 4 : (data.length() - srcOffset) / 4);

And likewise for the other unform*v functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697077</commentid>
    <comment_count>10</comment_count>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-10-12 15:27:09 -0700</bug_when>
    <thetext>Thanks for the help! This is definitely the issue. Confirmed that this fixes *all* of the emunittest demos on http://clb.confined.space/emunittest/ including RubysAdventure.

I&apos;m currently investigating whether one of the known test failures covers this or whether we just lack test coverage. If the latter, I will write a new WebGL conformance test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697093</commentid>
    <comment_count>11</comment_count>
      <attachid>411179</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-10-12 15:44:43 -0700</bug_when>
    <thetext>Created attachment 411179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697118</commentid>
    <comment_count>12</comment_count>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-10-12 17:09:52 -0700</bug_when>
    <thetext>Looks like the fix doesn&apos;t affect any conformance tests :( I will write a new one tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697172</commentid>
    <comment_count>13</comment_count>
      <attachid>411179</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-10-12 22:21:44 -0700</bug_when>
    <thetext>Comment on attachment 411179
Patch

Thank you Brendan for tracking down the root problem and James for fixing this! Yes, please do add a new WebGL 2.0 conformance test for all of these entry points. Looking at Chrome&apos;s implementation, I&apos;m surprised it doesn&apos;t have the same bug. r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697924</commentid>
    <comment_count>14</comment_count>
      <attachid>411381</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-10-14 15:53:19 -0700</bug_when>
    <thetext>Created attachment 411381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697926</commentid>
    <comment_count>15</comment_count>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-10-14 15:55:32 -0700</bug_when>
    <thetext>I found that there is actually a test covering this, but it is not enabled in the 2.0.0 webgl conformance snapshot. I guess in addition to passing 2.0.0, before release we should try a 2.0.1 run and examine the results to see if there are any other serious issues hiding in there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697935</commentid>
    <comment_count>16</comment_count>
      <attachid>411381</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-10-14 16:13:35 -0700</bug_when>
    <thetext>Comment on attachment 411381
Patch

Looks good to me again!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697958</commentid>
    <comment_count>17</comment_count>
      <attachid>411387</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-10-14 16:51:53 -0700</bug_when>
    <thetext>Created attachment 411387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697974</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-14 17:24:10 -0700</bug_when>
    <thetext>Committed r268502: &lt;https://trac.webkit.org/changeset/268502&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411387.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703062</commentid>
    <comment_count>19</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-10-30 08:30:46 -0700</bug_when>
    <thetext>*** Bug 218327 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411179</attachid>
            <date>2020-10-12 15:44:43 -0700</date>
            <delta_ts>2020-10-14 15:53:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215846-20201012154442.patch</filename>
            <type>text/plain</type>
            <size>13051</size>
            <attacher name="James Darpinian">jdarpinian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzliNjBmZTYxMDYyMzI1
ODgzYzYwZTcyM2FiNDVkMWFmMjllOTI0MC4uMWY5MDdiZjA1YTIwM2Q5OTc5M2E0YjYyNTdhY2Q3
NzMxMjliMzc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTEwLTEyICBKYW1l
cyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBVbml0eSBS
dWJ5c0FkdmVudHVyZSBkZW1vIGRvZXMgbm90IHJlbmRlciBwcm9wZXJseSBpZiBXZWJHTDIgaXMg
ZW5hYmxlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNTg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IHVuaWZvcm0qdiBzcmNMZW5ndGggcGFyYW1ldGVyIG5lZWRzIHRvIGJlIGRpdmlkZWQgYnkgdGhl
IHVuaWZvcm0KKyAgICAgICAgY29tcG9uZW50IHNpemUgYmVmb3JlIHBhc3NpbmcgdG8gT3BlbkdM
J3MgY291bnQgcGFyYW1ldGVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMnVpdik6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtM3Vpdik6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtNHVpdik6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4MngzZnYpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDN4
MmZ2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1N
YXRyaXgyeDRmdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1
bmlmb3JtTWF0cml4NHgyZnYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6dW5pZm9ybU1hdHJpeDN4NGZ2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXg0eDNmdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMmZ2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
MlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zZnYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTRmdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMml2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zaXYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6dW5pZm9ybTRpdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4MmZ2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
MlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXgzZnYpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDRmdik6CisKIDIwMjAtMDktMzAg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIG5vbi1h
bmltYXRlZCBzdXBwb3J0IGZvciB0aGUgQ1NTIHRyYW5zbGF0ZSBwcm9wZXJ0eQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApp
bmRleCA3ZDRiNThmZGU1MDViMjcyODBiZTMwZTRhODA4YzRhYjJhMzUzZjhmLi5mOGU3ODUyMDQ0
NzgwZTZmNzcyMjFmMmViMGFiOTllNWY0NjBlNmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMTU4Miw2MyAr
MTU4Miw2MyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0ydWl2KFdlYkdM
VW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgVWludDMyTAogewogICAgIGlmIChpc0NvbnRleHRM
b3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybVBhcmFtZXRlcnMoInVuaWZvcm0ydWl2
IiwgbG9jYXRpb24sIHZhbHVlLCAyLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBtX2NvbnRleHQtPnVuaWZvcm0ydWl2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB2
YWx1ZS5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKHZhbHVlLmxl
bmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDIpOworICAgIG1fY29udGV4dC0+dW5pZm9ybTJ1aXYobG9j
YXRpb24tPmxvY2F0aW9uKCksIHZhbHVlLmRhdGEoKSwgc3JjT2Zmc2V0LCAoc3JjTGVuZ3RoID8g
c3JjTGVuZ3RoIDogdmFsdWUubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gMik7CiB9CiAKIHZvaWQg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTN1aXYoV2ViR0xVbmlmb3JtTG9jYXRpb24q
IGxvY2F0aW9uLCBVaW50MzJMaXN0JiYgdmFsdWUsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVp
bnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZh
bGlkYXRlVW5pZm9ybVBhcmFtZXRlcnMoInVuaWZvcm0zdWl2IiwgbG9jYXRpb24sIHZhbHVlLCAz
LCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQt
PnVuaWZvcm0zdWl2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB2YWx1ZS5kYXRhKCksIHNyY09mZnNl
dCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKHZhbHVlLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAv
IDMpOworICAgIG1fY29udGV4dC0+dW5pZm9ybTN1aXYobG9jYXRpb24tPmxvY2F0aW9uKCksIHZh
bHVlLmRhdGEoKSwgc3JjT2Zmc2V0LCAoc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogdmFsdWUubGVu
Z3RoKCkgLSBzcmNPZmZzZXQpIC8gMyk7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6dW5pZm9ybTR1aXYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBVaW50MzJMaXN0
JiYgdmFsdWUsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybVBhcmFtZXRl
cnMoInVuaWZvcm00dWl2IiwgbG9jYXRpb24sIHZhbHVlLCA0LCBzcmNPZmZzZXQsIHNyY0xlbmd0
aCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQtPnVuaWZvcm00dWl2KGxvY2F0aW9u
LT5sb2NhdGlvbigpLCB2YWx1ZS5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVu
Z3RoIDogKHZhbHVlLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDQpOworICAgIG1fY29udGV4dC0+
dW5pZm9ybTR1aXYobG9jYXRpb24tPmxvY2F0aW9uKCksIHZhbHVlLmRhdGEoKSwgc3JjT2Zmc2V0
LCAoc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogdmFsdWUubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8g
NCk7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDJ4M2Z2
KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgR0NHTGJvb2xlYW4gdHJhbnNwb3NlLCBG
bG9hdDMyTGlzdCYmIHYsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQog
ewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybU1h
dHJpeFBhcmFtZXRlcnMoInVuaWZvcm1NYXRyaXgyeDNmdiIsIGxvY2F0aW9uLCB0cmFuc3Bvc2Us
IHYsIDYsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29u
dGV4dC0+dW5pZm9ybU1hdHJpeDJ4M2Z2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB0cmFuc3Bvc2Us
IHYuZGF0YSgpLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6ICh2Lmxlbmd0aCgp
IC0gc3JjT2Zmc2V0KSAvIDYpOworICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDJ4M2Z2KGxv
Y2F0aW9uLT5sb2NhdGlvbigpLCB0cmFuc3Bvc2UsIHYuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNM
ZW5ndGggPyBzcmNMZW5ndGggOiB2Lmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDYpOwogfQogCiB2
b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXgzeDJmdihXZWJHTFVuaWZv
cm1Mb2NhdGlvbiogbG9jYXRpb24sIEdDR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3Qm
JiB2LCBHQ0dMdWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNyY0xlbmd0aCkKIHsKICAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVVuaWZvcm1NYXRyaXhQYXJhbWV0
ZXJzKCJ1bmlmb3JtTWF0cml4M3gyZnYiLCBsb2NhdGlvbiwgdHJhbnNwb3NlLCB2LCA2LCBzcmNP
ZmZzZXQsIHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQtPnVuaWZv
cm1NYXRyaXgzeDJmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgdHJhbnNwb3NlLCB2LmRhdGEoKSwg
c3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAodi5sZW5ndGgoKSAtIHNyY09mZnNl
dCkgLyA2KTsKKyAgICBtX2NvbnRleHQtPnVuaWZvcm1NYXRyaXgzeDJmdihsb2NhdGlvbi0+bG9j
YXRpb24oKSwgdHJhbnNwb3NlLCB2LmRhdGEoKSwgc3JjT2Zmc2V0LCAoc3JjTGVuZ3RoID8gc3Jj
TGVuZ3RoIDogdi5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyA2KTsKIH0KIAogdm9pZCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4Mng0ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24q
IGxvY2F0aW9uLCBHQ0dMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0JiYgdiwgR0NHTHVp
bnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExv
c3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtTWF0cml4UGFyYW1ldGVycygidW5pZm9y
bU1hdHJpeDJ4NGZ2IiwgbG9jYXRpb24sIHRyYW5zcG9zZSwgdiwgOCwgc3JjT2Zmc2V0LCBzcmNM
ZW5ndGgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4Mng0
ZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgdi5kYXRhKCksIHNyY09mZnNldCwg
c3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKHYubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gOCk7Cisg
ICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4Mng0ZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIHRy
YW5zcG9zZSwgdi5kYXRhKCksIHNyY09mZnNldCwgKHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IHYu
bGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gOCk7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6dW5pZm9ybU1hdHJpeDR4MmZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwg
R0NHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCYmIHYsIEdDR0x1aW50IHNyY09mZnNl
dCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5n
KCkgfHwgIXZhbGlkYXRlVW5pZm9ybU1hdHJpeFBhcmFtZXRlcnMoInVuaWZvcm1NYXRyaXg0eDJm
diIsIGxvY2F0aW9uLCB0cmFuc3Bvc2UsIHYsIDgsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDR4MmZ2KGxvY2F0aW9u
LT5sb2NhdGlvbigpLCB0cmFuc3Bvc2UsIHYuZGF0YSgpLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/
IHNyY0xlbmd0aCA6ICh2Lmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDgpOworICAgIG1fY29udGV4
dC0+dW5pZm9ybU1hdHJpeDR4MmZ2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB0cmFuc3Bvc2UsIHYu
ZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGggOiB2Lmxlbmd0aCgpIC0g
c3JjT2Zmc2V0KSAvIDgpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZv
cm1NYXRyaXgzeDRmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEdDR0xib29sZWFu
IHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QmJiB2LCBHQ0dMdWludCBzcmNPZmZzZXQsIEdDR0x1aW50
IHNyY0xlbmd0aCkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxp
ZGF0ZVVuaWZvcm1NYXRyaXhQYXJhbWV0ZXJzKCJ1bmlmb3JtTWF0cml4M3g0ZnYiLCBsb2NhdGlv
biwgdHJhbnNwb3NlLCB2LCAxMiwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1
cm47Ci0gICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4M3g0ZnYobG9jYXRpb24tPmxvY2F0aW9u
KCksIHRyYW5zcG9zZSwgdi5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3Ro
IDogKHYubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gMTIpOworICAgIG1fY29udGV4dC0+dW5pZm9y
bU1hdHJpeDN4NGZ2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB0cmFuc3Bvc2UsIHYuZGF0YSgpLCBz
cmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGggOiB2Lmxlbmd0aCgpIC0gc3JjT2Zmc2V0
KSAvIDEyKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4
NHgzZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBHQ0dMYm9vbGVhbiB0cmFuc3Bv
c2UsIEZsb2F0MzJMaXN0JiYgdiwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5n
dGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlm
b3JtTWF0cml4UGFyYW1ldGVycygidW5pZm9ybU1hdHJpeDR4M2Z2IiwgbG9jYXRpb24sIHRyYW5z
cG9zZSwgdiwgMTIsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwotICAg
IG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDR4M2Z2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB0cmFu
c3Bvc2UsIHYuZGF0YSgpLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6ICh2Lmxl
bmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDEyKTsKKyAgICBtX2NvbnRleHQtPnVuaWZvcm1NYXRyaXg0
eDNmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgdHJhbnNwb3NlLCB2LmRhdGEoKSwgc3JjT2Zmc2V0
LCAoc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogdi5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyAxMik7
CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmVydGV4QXR0cmliSTRpKEdDR0x1
aW50IGluZGV4LCBHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NHTGludCB6LCBHQ0dMaW50IHcpCkBA
IC0zNDM0LDIxICszNDM0LDIxIEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9y
bTJmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEZsb2F0MzJMCiB7CiAgICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtUGFyYW1ldGVycygi
dW5pZm9ybTJmdiIsIGxvY2F0aW9uLCBkYXRhLCAyLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQtPnVuaWZvcm0yZnYobG9jYXRpb24tPmxvY2F0
aW9uKCksIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IChk
YXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDIpOworICAgIG1fY29udGV4dC0+dW5pZm9ybTJm
dihsb2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0YS5kYXRhKCksIHNyY09mZnNldCwgKHNyY0xlbmd0
aCA/IHNyY0xlbmd0aCA6IGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gMik7CiB9CiAKIHZv
aWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTNmdihXZWJHTFVuaWZvcm1Mb2NhdGlv
biogbG9jYXRpb24sIEZsb2F0MzJMaXN0IGRhdGEsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVp
bnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZh
bGlkYXRlVW5pZm9ybVBhcmFtZXRlcnMoInVuaWZvcm0zZnYiLCBsb2NhdGlvbiwgZGF0YSwgMywg
c3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jb250ZXh0LT51
bmlmb3JtM2Z2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCBz
cmNMZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyAzKTsK
KyAgICBtX2NvbnRleHQtPnVuaWZvcm0zZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIGRhdGEuZGF0
YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGggOiBkYXRhLmxlbmd0aCgpIC0g
c3JjT2Zmc2V0KSAvIDMpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZv
cm00ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBGbG9hdDMyTGlzdCBkYXRhLCBH
Q0dMdWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNyY0xlbmd0aCkKIHsKICAgICBpZiAoaXNDb250
ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVVuaWZvcm1QYXJhbWV0ZXJzKCJ1bmlmb3Jt
NGZ2IiwgbG9jYXRpb24sIGRhdGEsIDQsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAg
cmV0dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9ybTRmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwg
ZGF0YS5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKGRhdGEubGVu
Z3RoKCkgLSBzcmNPZmZzZXQpIC8gNCk7CisgICAgbV9jb250ZXh0LT51bmlmb3JtNGZ2KGxvY2F0
aW9uLT5sb2NhdGlvbigpLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCAoc3JjTGVuZ3RoID8gc3Jj
TGVuZ3RoIDogZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyA0KTsKIH0KIAogdm9pZCBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMWl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2Nh
dGlvbiwgSW50MzJMaXN0IGRhdGEsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVu
Z3RoKQpAQCAtMzQ2Miw0MiArMzQ2Miw0MiBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnVuaWZvcm0yaXYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBJbnQzMkxpcwogewog
ICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybVBhcmFt
ZXRlcnMoInVuaWZvcm0yaXYiLCBsb2NhdGlvbiwgZGF0YSwgMiwgc3JjT2Zmc2V0LCBzcmNMZW5n
dGgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jb250ZXh0LT51bmlmb3JtMml2KGxvY2F0aW9u
LT5sb2NhdGlvbigpLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5n
dGggOiAoZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyAyKTsKKyAgICBtX2NvbnRleHQtPnVu
aWZvcm0yaXYobG9jYXRpb24tPmxvY2F0aW9uKCksIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIChz
cmNMZW5ndGggPyBzcmNMZW5ndGggOiBkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDIpOwog
fQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zaXYoV2ViR0xVbmlmb3Jt
TG9jYXRpb24qIGxvY2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBH
Q0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8
fCAhdmFsaWRhdGVVbmlmb3JtUGFyYW1ldGVycygidW5pZm9ybTNpdiIsIGxvY2F0aW9uLCBkYXRh
LCAzLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRl
eHQtPnVuaWZvcm0zaXYobG9jYXRpb24tPmxvY2F0aW9uKCksIGRhdGEuZGF0YSgpLCBzcmNPZmZz
ZXQsIHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IChkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAv
IDMpOworICAgIG1fY29udGV4dC0+dW5pZm9ybTNpdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0
YS5kYXRhKCksIHNyY09mZnNldCwgKHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IGRhdGEubGVuZ3Ro
KCkgLSBzcmNPZmZzZXQpIC8gMyk7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
dW5pZm9ybTRpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEludDMyTGlzdCBkYXRh
LCBHQ0dMdWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNyY0xlbmd0aCkKIHsKICAgICBpZiAoaXND
b250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVVuaWZvcm1QYXJhbWV0ZXJzKCJ1bmlm
b3JtNGl2IiwgbG9jYXRpb24sIGRhdGEsIDQsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9ybTRpdihsb2NhdGlvbi0+bG9jYXRpb24o
KSwgZGF0YS5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKGRhdGEu
bGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gNCk7CisgICAgbV9jb250ZXh0LT51bmlmb3JtNGl2KGxv
Y2F0aW9uLT5sb2NhdGlvbigpLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCAoc3JjTGVuZ3RoID8g
c3JjTGVuZ3RoIDogZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyA0KTsKIH0KIAogdm9pZCBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4MmZ2KFdlYkdMVW5pZm9ybUxvY2F0
aW9uKiBsb2NhdGlvbiwgR0NHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLCBH
Q0dMdWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNyY0xlbmd0aCkKIHsKICAgICBpZiAoaXNDb250
ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVVuaWZvcm1NYXRyaXhQYXJhbWV0ZXJzKCJ1
bmlmb3JtTWF0cml4MmZ2IiwgbG9jYXRpb24sIHRyYW5zcG9zZSwgZGF0YSwgMioyLCBzcmNPZmZz
ZXQsIHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQtPnVuaWZvcm1N
YXRyaXgyZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgZGF0YS5kYXRhKCksIHNy
Y09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZz
ZXQpIC8gKDIqMikpOworICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDJmdihsb2NhdGlvbi0+
bG9jYXRpb24oKSwgdHJhbnNwb3NlLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCAoc3JjTGVuZ3Ro
ID8gc3JjTGVuZ3RoIDogZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyAoMioyKSk7CiB9CiAK
IHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDNmdihXZWJHTFVuaWZv
cm1Mb2NhdGlvbiogbG9jYXRpb24sIEdDR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3Qg
ZGF0YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtTWF0cml4UGFyYW1l
dGVycygidW5pZm9ybU1hdHJpeDNmdiIsIGxvY2F0aW9uLCB0cmFuc3Bvc2UsIGRhdGEsIDMqMywg
c3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jb250ZXh0LT51
bmlmb3JtTWF0cml4M2Z2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB0cmFuc3Bvc2UsIGRhdGEuZGF0
YSgpLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IChkYXRhLmxlbmd0aCgpIC0g
c3JjT2Zmc2V0KSAvICgzKjMpKTsKKyAgICBtX2NvbnRleHQtPnVuaWZvcm1NYXRyaXgzZnYobG9j
YXRpb24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgZGF0YS5kYXRhKCksIHNyY09mZnNldCwgKHNy
Y0xlbmd0aCA/IHNyY0xlbmd0aCA6IGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gKDMqMykp
OwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXg0ZnYoV2Vi
R0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBHQ0dMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0
MzJMaXN0IGRhdGEsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewog
ICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybU1hdHJp
eFBhcmFtZXRlcnMoInVuaWZvcm1NYXRyaXg0ZnYiLCBsb2NhdGlvbiwgdHJhbnNwb3NlLCBkYXRh
LCA0KjQsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29u
dGV4dC0+dW5pZm9ybU1hdHJpeDRmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgdHJhbnNwb3NlLCBk
YXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0YS5sZW5n
dGgoKSAtIHNyY09mZnNldCkgLyAoNCo0KSk7CisgICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4
NGZ2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB0cmFuc3Bvc2UsIGRhdGEuZGF0YSgpLCBzcmNPZmZz
ZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGggOiBkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAv
ICg0KjQpKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpyZWFkUGl4ZWxzKEdD
R0xpbnQgeCwgR0NHTGludCB5LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdD
R0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgQXJyYXlCdWZmZXJWaWV3JiBwaXhlbHMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411381</attachid>
            <date>2020-10-14 15:53:19 -0700</date>
            <delta_ts>2020-10-14 16:51:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215846-20201014155318.patch</filename>
            <type>text/plain</type>
            <size>30268</size>
            <attacher name="James Darpinian">jdarpinian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzliNjBmZTYxMDYyMzI1
ODgzYzYwZTcyM2FiNDVkMWFmMjllOTI0MC4uZmE3NTBmNGI1OWRjNzBhODFjNTBkZDc0MzUxZDU2
Yzc4NmVjYzQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTEwLTE0ICBKYW1l
cyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBVbml0eSBS
dWJ5c0FkdmVudHVyZSBkZW1vIGRvZXMgbm90IHJlbmRlciBwcm9wZXJseSBpZiBXZWJHTDIgaXMg
ZW5hYmxlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNTg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KKworICAgICAg
ICB1bmlmb3JtKnYgc3JjTGVuZ3RoIHBhcmFtZXRlciBuZWVkcyB0byBiZSBkaXZpZGVkIGJ5IHRo
ZSB1bmlmb3JtCisgICAgICAgIGNvbXBvbmVudCBzaXplIGJlZm9yZSBwYXNzaW5nIHRvIE9wZW5H
TCdzIGNvdW50IHBhcmFtZXRlci4KKworICAgICAgICBUZXN0OiB3ZWJnbC9jb25mb3JtYW5jZTIv
dW5pZm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3ViLXNvdXJjZS5odG1sCisKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0ydWl2KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zdWl2KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm00dWl2KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXgyeDNmdik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4M3gyZnYpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDJ4NGZ2
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRy
aXg0eDJmdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlm
b3JtTWF0cml4M3g0ZnYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6dW5pZm9ybU1hdHJpeDR4M2Z2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OnVuaWZvcm0yZnYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6dW5pZm9ybTNmdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojp1bmlmb3JtNGZ2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OnVuaWZvcm0yaXYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6dW5pZm9ybTNpdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250
ZXh0Ojp1bmlmb3JtNGl2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OnVuaWZvcm1NYXRyaXgyZnYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6dW5pZm9ybU1hdHJpeDNmdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4NGZ2KToKKwogMjAyMC0wOS0zMCAgQW50b2luZSBR
dWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgbm9uLWFuaW1hdGVkIHN1
cHBvcnQgZm9yIHRoZSBDU1MgdHJhbnNsYXRlIHByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDdkNGI1
OGZkZTUwNWIyNzI4MGJlMzBlNGE4MDhjNGFiMmEzNTNmOGYuLmY4ZTc4NTIwNDQ3ODBlNmY3NzIy
MWYyZWIwYWI5OWU1ZjQ2MGU2YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0xNTgyLDYzICsxNTgyLDYzIEBA
IHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJ1aXYoV2ViR0xVbmlmb3JtTG9j
YXRpb24qIGxvY2F0aW9uLCBVaW50MzJMCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRp
bmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtUGFyYW1ldGVycygidW5pZm9ybTJ1aXYiLCBsb2NhdGlv
biwgdmFsdWUsIDIsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwotICAg
IG1fY29udGV4dC0+dW5pZm9ybTJ1aXYobG9jYXRpb24tPmxvY2F0aW9uKCksIHZhbHVlLmRhdGEo
KSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAodmFsdWUubGVuZ3RoKCkgLSBz
cmNPZmZzZXQpIC8gMik7CisgICAgbV9jb250ZXh0LT51bmlmb3JtMnVpdihsb2NhdGlvbi0+bG9j
YXRpb24oKSwgdmFsdWUuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGgg
OiB2YWx1ZS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyAyKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Ojp1bmlmb3JtM3VpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24s
IFVpbnQzMkxpc3QmJiB2YWx1ZSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5n
dGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlm
b3JtUGFyYW1ldGVycygidW5pZm9ybTN1aXYiLCBsb2NhdGlvbiwgdmFsdWUsIDMsIHNyY09mZnNl
dCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9ybTN1
aXYobG9jYXRpb24tPmxvY2F0aW9uKCksIHZhbHVlLmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5n
dGggPyBzcmNMZW5ndGggOiAodmFsdWUubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gMyk7CisgICAg
bV9jb250ZXh0LT51bmlmb3JtM3Vpdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgdmFsdWUuZGF0YSgp
LCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGggOiB2YWx1ZS5sZW5ndGgoKSAtIHNy
Y09mZnNldCkgLyAzKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3Jt
NHVpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIFVpbnQzMkxpc3QmJiB2YWx1ZSwg
R0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlzQ29u
dGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtUGFyYW1ldGVycygidW5pZm9y
bTR1aXYiLCBsb2NhdGlvbiwgdmFsdWUsIDQsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9ybTR1aXYobG9jYXRpb24tPmxvY2F0aW9u
KCksIHZhbHVlLmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAodmFs
dWUubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gNCk7CisgICAgbV9jb250ZXh0LT51bmlmb3JtNHVp
dihsb2NhdGlvbi0+bG9jYXRpb24oKSwgdmFsdWUuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5n
dGggPyBzcmNMZW5ndGggOiB2YWx1ZS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyA0KTsKIH0KIAog
dm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4MngzZnYoV2ViR0xVbmlm
b3JtTG9jYXRpb24qIGxvY2F0aW9uLCBHQ0dMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0
JiYgdiwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtTWF0cml4UGFyYW1l
dGVycygidW5pZm9ybU1hdHJpeDJ4M2Z2IiwgbG9jYXRpb24sIHRyYW5zcG9zZSwgdiwgNiwgc3Jj
T2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jb250ZXh0LT51bmlm
b3JtTWF0cml4MngzZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgdi5kYXRhKCks
IHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKHYubGVuZ3RoKCkgLSBzcmNPZmZz
ZXQpIC8gNik7CisgICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4MngzZnYobG9jYXRpb24tPmxv
Y2F0aW9uKCksIHRyYW5zcG9zZSwgdi5kYXRhKCksIHNyY09mZnNldCwgKHNyY0xlbmd0aCA/IHNy
Y0xlbmd0aCA6IHYubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gNik7CiB9CiAKIHZvaWQgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDN4MmZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9u
KiBsb2NhdGlvbiwgR0NHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCYmIHYsIEdDR0x1
aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRleHRM
b3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybU1hdHJpeFBhcmFtZXRlcnMoInVuaWZv
cm1NYXRyaXgzeDJmdiIsIGxvY2F0aW9uLCB0cmFuc3Bvc2UsIHYsIDYsIHNyY09mZnNldCwgc3Jj
TGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDN4
MmZ2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB0cmFuc3Bvc2UsIHYuZGF0YSgpLCBzcmNPZmZzZXQs
IHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6ICh2Lmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDYpOwor
ICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDN4MmZ2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB0
cmFuc3Bvc2UsIHYuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGggOiB2
Lmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDYpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OnVuaWZvcm1NYXRyaXgyeDRmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24s
IEdDR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QmJiB2LCBHQ0dMdWludCBzcmNPZmZz
ZXQsIEdDR0x1aW50IHNyY0xlbmd0aCkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGlu
ZygpIHx8ICF2YWxpZGF0ZVVuaWZvcm1NYXRyaXhQYXJhbWV0ZXJzKCJ1bmlmb3JtTWF0cml4Mng0
ZnYiLCBsb2NhdGlvbiwgdHJhbnNwb3NlLCB2LCA4LCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQtPnVuaWZvcm1NYXRyaXgyeDRmdihsb2NhdGlv
bi0+bG9jYXRpb24oKSwgdHJhbnNwb3NlLCB2LmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgg
PyBzcmNMZW5ndGggOiAodi5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyA4KTsKKyAgICBtX2NvbnRl
eHQtPnVuaWZvcm1NYXRyaXgyeDRmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgdHJhbnNwb3NlLCB2
LmRhdGEoKSwgc3JjT2Zmc2V0LCAoc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogdi5sZW5ndGgoKSAt
IHNyY09mZnNldCkgLyA4KTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlm
b3JtTWF0cml4NHgyZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBHQ0dMYm9vbGVh
biB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0JiYgdiwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWlu
dCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFs
aWRhdGVVbmlmb3JtTWF0cml4UGFyYW1ldGVycygidW5pZm9ybU1hdHJpeDR4MmZ2IiwgbG9jYXRp
b24sIHRyYW5zcG9zZSwgdiwgOCwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1
cm47Ci0gICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4NHgyZnYobG9jYXRpb24tPmxvY2F0aW9u
KCksIHRyYW5zcG9zZSwgdi5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3Ro
IDogKHYubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gOCk7CisgICAgbV9jb250ZXh0LT51bmlmb3Jt
TWF0cml4NHgyZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgdi5kYXRhKCksIHNy
Y09mZnNldCwgKHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IHYubGVuZ3RoKCkgLSBzcmNPZmZzZXQp
IC8gOCk7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDN4
NGZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgR0NHTGJvb2xlYW4gdHJhbnNwb3Nl
LCBGbG9hdDMyTGlzdCYmIHYsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3Ro
KQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9y
bU1hdHJpeFBhcmFtZXRlcnMoInVuaWZvcm1NYXRyaXgzeDRmdiIsIGxvY2F0aW9uLCB0cmFuc3Bv
c2UsIHYsIDEyLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKLSAgICBt
X2NvbnRleHQtPnVuaWZvcm1NYXRyaXgzeDRmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgdHJhbnNw
b3NlLCB2LmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAodi5sZW5n
dGgoKSAtIHNyY09mZnNldCkgLyAxMik7CisgICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4M3g0
ZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgdi5kYXRhKCksIHNyY09mZnNldCwg
KHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IHYubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gMTIpOwog
fQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXg0eDNmdihXZWJH
TFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEdDR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQz
Mkxpc3QmJiB2LCBHQ0dMdWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNyY0xlbmd0aCkKIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVVuaWZvcm1NYXRyaXhQ
YXJhbWV0ZXJzKCJ1bmlmb3JtTWF0cml4NHgzZnYiLCBsb2NhdGlvbiwgdHJhbnNwb3NlLCB2LCAx
Miwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jb250ZXh0
LT51bmlmb3JtTWF0cml4NHgzZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgdi5k
YXRhKCksIHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKHYubGVuZ3RoKCkgLSBz
cmNPZmZzZXQpIC8gMTIpOworICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDR4M2Z2KGxvY2F0
aW9uLT5sb2NhdGlvbigpLCB0cmFuc3Bvc2UsIHYuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5n
dGggPyBzcmNMZW5ndGggOiB2Lmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDEyKTsKIH0KIAogdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2ZXJ0ZXhBdHRyaWJJNGkoR0NHTHVpbnQgaW5kZXgs
IEdDR0xpbnQgeCwgR0NHTGludCB5LCBHQ0dMaW50IHosIEdDR0xpbnQgdykKQEAgLTM0MzQsMjEg
KzM0MzQsMjEgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMmZ2KFdlYkdM
VW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgRmxvYXQzMkwKIHsKICAgICBpZiAoaXNDb250ZXh0
TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVVuaWZvcm1QYXJhbWV0ZXJzKCJ1bmlmb3JtMmZ2
IiwgbG9jYXRpb24sIGRhdGEsIDIsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0
dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9ybTJmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0
YS5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKGRhdGEubGVuZ3Ro
KCkgLSBzcmNPZmZzZXQpIC8gMik7CisgICAgbV9jb250ZXh0LT51bmlmb3JtMmZ2KGxvY2F0aW9u
LT5sb2NhdGlvbigpLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCAoc3JjTGVuZ3RoID8gc3JjTGVu
Z3RoIDogZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyAyKTsKIH0KIAogdm9pZCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtM2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlv
biwgRmxvYXQzMkxpc3QgZGF0YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5n
dGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlm
b3JtUGFyYW1ldGVycygidW5pZm9ybTNmdiIsIGxvY2F0aW9uLCBkYXRhLCAzLCBzcmNPZmZzZXQs
IHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQtPnVuaWZvcm0zZnYo
bG9jYXRpb24tPmxvY2F0aW9uKCksIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/
IHNyY0xlbmd0aCA6IChkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDMpOworICAgIG1fY29u
dGV4dC0+dW5pZm9ybTNmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0YS5kYXRhKCksIHNyY09m
ZnNldCwgKHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQp
IC8gMyk7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTRmdihXZWJH
TFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEZsb2F0MzJMaXN0IGRhdGEsIEdDR0x1aW50IHNy
Y09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQ
ZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybVBhcmFtZXRlcnMoInVuaWZvcm00ZnYiLCBsb2Nh
dGlvbiwgZGF0YSwgNCwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgbV9jb250ZXh0LT51bmlmb3JtNGZ2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCBkYXRhLmRhdGEo
KSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0YS5sZW5ndGgoKSAtIHNy
Y09mZnNldCkgLyA0KTsKKyAgICBtX2NvbnRleHQtPnVuaWZvcm00ZnYobG9jYXRpb24tPmxvY2F0
aW9uKCksIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGggOiBk
YXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDQpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OnVuaWZvcm0xaXYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBJbnQz
Mkxpc3QgZGF0YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCkBAIC0z
NDYyLDQyICszNDYyLDQyIEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJp
dihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEludDMyTGlzCiB7CiAgICAgaWYgKGlz
Q29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtUGFyYW1ldGVycygidW5p
Zm9ybTJpdiIsIGxvY2F0aW9uLCBkYXRhLCAyLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQtPnVuaWZvcm0yaXYobG9jYXRpb24tPmxvY2F0aW9u
KCksIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IChkYXRh
Lmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDIpOworICAgIG1fY29udGV4dC0+dW5pZm9ybTJpdihs
b2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0YS5kYXRhKCksIHNyY09mZnNldCwgKHNyY0xlbmd0aCA/
IHNyY0xlbmd0aCA6IGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gMik7CiB9CiAKIHZvaWQg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTNpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiog
bG9jYXRpb24sIEludDMyTGlzdCBkYXRhLCBHQ0dMdWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNy
Y0xlbmd0aCkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0
ZVVuaWZvcm1QYXJhbWV0ZXJzKCJ1bmlmb3JtM2l2IiwgbG9jYXRpb24sIGRhdGEsIDMsIHNyY09m
ZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9y
bTNpdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0YS5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVu
Z3RoID8gc3JjTGVuZ3RoIDogKGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gMyk7CisgICAg
bV9jb250ZXh0LT51bmlmb3JtM2l2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCBkYXRhLmRhdGEoKSwg
c3JjT2Zmc2V0LCAoc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogZGF0YS5sZW5ndGgoKSAtIHNyY09m
ZnNldCkgLyAzKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtNGl2
KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgSW50MzJMaXN0IGRhdGEsIEdDR0x1aW50
IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0
T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybVBhcmFtZXRlcnMoInVuaWZvcm00aXYiLCBs
b2NhdGlvbiwgZGF0YSwgNCwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47
Ci0gICAgbV9jb250ZXh0LT51bmlmb3JtNGl2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCBkYXRhLmRh
dGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0YS5sZW5ndGgoKSAt
IHNyY09mZnNldCkgLyA0KTsKKyAgICBtX2NvbnRleHQtPnVuaWZvcm00aXYobG9jYXRpb24tPmxv
Y2F0aW9uKCksIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGgg
OiBkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDQpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXgyZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0
aW9uLCBHQ0dMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsIEdDR0x1aW50IHNy
Y09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQ
ZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybU1hdHJpeFBhcmFtZXRlcnMoInVuaWZvcm1NYXRy
aXgyZnYiLCBsb2NhdGlvbiwgdHJhbnNwb3NlLCBkYXRhLCAyKjIsIHNyY09mZnNldCwgc3JjTGVu
Z3RoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDJmdihs
b2NhdGlvbi0+bG9jYXRpb24oKSwgdHJhbnNwb3NlLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCBz
cmNMZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyAoMioy
KSk7CisgICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4MmZ2KGxvY2F0aW9uLT5sb2NhdGlvbigp
LCB0cmFuc3Bvc2UsIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5n
dGggOiBkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvICgyKjIpKTsKIH0KIAogdm9pZCBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4M2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9u
KiBsb2NhdGlvbiwgR0NHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLCBHQ0dM
dWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNyY0xlbmd0aCkKIHsKICAgICBpZiAoaXNDb250ZXh0
TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVVuaWZvcm1NYXRyaXhQYXJhbWV0ZXJzKCJ1bmlm
b3JtTWF0cml4M2Z2IiwgbG9jYXRpb24sIHRyYW5zcG9zZSwgZGF0YSwgMyozLCBzcmNPZmZzZXQs
IHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQtPnVuaWZvcm1NYXRy
aXgzZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgZGF0YS5kYXRhKCksIHNyY09m
ZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQp
IC8gKDMqMykpOworICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDNmdihsb2NhdGlvbi0+bG9j
YXRpb24oKSwgdHJhbnNwb3NlLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCAoc3JjTGVuZ3RoID8g
c3JjTGVuZ3RoIDogZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyAoMyozKSk7CiB9CiAKIHZv
aWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDRmdihXZWJHTFVuaWZvcm1M
b2NhdGlvbiogbG9jYXRpb24sIEdDR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0
YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlz
Q29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtTWF0cml4UGFyYW1ldGVy
cygidW5pZm9ybU1hdHJpeDRmdiIsIGxvY2F0aW9uLCB0cmFuc3Bvc2UsIGRhdGEsIDQqNCwgc3Jj
T2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jb250ZXh0LT51bmlm
b3JtTWF0cml4NGZ2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB0cmFuc3Bvc2UsIGRhdGEuZGF0YSgp
LCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IChkYXRhLmxlbmd0aCgpIC0gc3Jj
T2Zmc2V0KSAvICg0KjQpKTsKKyAgICBtX2NvbnRleHQtPnVuaWZvcm1NYXRyaXg0ZnYobG9jYXRp
b24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgZGF0YS5kYXRhKCksIHNyY09mZnNldCwgKHNyY0xl
bmd0aCA/IHNyY0xlbmd0aCA6IGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gKDQqNCkpOwog
fQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnJlYWRQaXhlbHMoR0NHTGludCB4LCBH
Q0dMaW50IHksIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9y
bWF0LCBHQ0dMZW51bSB0eXBlLCBBcnJheUJ1ZmZlclZpZXcmIHBpeGVscykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1OGRm
MWIxYzZmNWM0MjNmOGU1MmRhMDhhNDNkMTdlMTU0NzlmZWU4Li5hZDkxOGQyOGY3YmQ5MTI5NTkx
NGY4YTEzNjUyNTM4NzQ0YWU5NWYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMTQg
IEphbWVzIERhcnBpbmlhbiAgPGpkYXJwaW5pYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFVu
aXR5IFJ1YnlzQWR2ZW50dXJlIGRlbW8gZG9lcyBub3QgcmVuZGVyIHByb3Blcmx5IGlmIFdlYkdM
MiBpcyBlbmFibGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE1ODQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgorCisg
ICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UyL3VuaWZvcm1zL2dsLXVuaWZvcm0tYXJyYXlzLXN1
Yi1zb3VyY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5j
ZTIvdW5pZm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3ViLXNvdXJjZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdW5p
Zm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3ViLXNvdXJjZS5odG1sOiBBZGRlZC4KKwogMjAyMC0w
OS0zMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQg
bm9uLWFuaW1hdGVkIHN1cHBvcnQgZm9yIHRoZSBDU1MgdHJhbnNsYXRlIHByb3BlcnR5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZTIvdW5pZm9ybXMvZ2wtdW5pZm9y
bS1hcnJheXMtc3ViLXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25m
b3JtYW5jZTIvdW5pZm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3ViLXNvdXJjZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODM1ZDhhZDllYTc4YzcyNDA0ZWFmYTM0NTk0MGY5MDQ4ZjMzZmRlNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlMi91bmlmb3Jt
cy9nbC11bmlmb3JtLWFycmF5cy1zdWItc291cmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdW5pZm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3Vi
LXNvdXJjZS5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZv
cm1hbmNlMi91bmlmb3Jtcy9nbC11bmlmb3JtLWFycmF5cy1zdWItc291cmNlLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZTIvdW5pZm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3Vi
LXNvdXJjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwOTM3NGFhZjQ3NjM0YzZhYjYyMzk2YzhiNjIyN2Vh
NzI5ODhjYWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5j
ZTIvdW5pZm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3ViLXNvdXJjZS5odG1sCkBAIC0wLDAgKzEs
MTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGdsLXVuaWZv
cm0tYXJyYXlzLXN1Yi1zb3VyY2UuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dl
YmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdW5pZm9ybXMvZ2wtdW5pZm9ybS1h
cnJheXMtc3ViLXNvdXJjZS5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvdW5pZm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3ViLXNvdXJjZS5odG1sPC9h
PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdW5pZm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3ViLXNv
dXJjZS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxk
aXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdW5p
Zm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3ViLXNvdXJjZS5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3VuaWZvcm1zL2dsLXVu
aWZvcm0tYXJyYXlzLXN1Yi1zb3VyY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzgwYTdiYTAxYWRjYjc3
YTRhNDk5ZjY2OTkwMTEwNTcyMTg0NGQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3VuaWZvcm1zL2ds
LXVuaWZvcm0tYXJyYXlzLXN1Yi1zb3VyY2UuaHRtbApAQCAtMCwwICsxLDQwNCBAQAorPCEtLQor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgdW5p
Zm9ybSBhcnJheSBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRp
diBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Y2Fu
dmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIj4gPC9jYW52YXM+Cis8c2NyaXB0
IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+I3ZlcnNpb24gMzAwIGVzCitp
biB2ZWM0IGFfcG9zaXRpb247Cit2b2lkIG1haW4oKSB7CisgIGdsX1Bvc2l0aW9uID0gYV9wb3Np
dGlvbjsKK30KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRl
ci94LWZyYWdtZW50Ij4jdmVyc2lvbiAzMDAgZXMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
dW5pZm9ybSAkKHR5cGUpIGNvbG9yWzNdOworb3V0IHZlYzQgbXlGcmFnQ29sb3I7Cit2b2lkIG1h
aW4oKSB7CisgIG15RnJhZ0NvbG9yID0gdmVjNChjb2xvclswXSQoZWxlbSksIGNvbG9yWzFdJChl
bGVtKSwgY29sb3JbMl0kKGVsZW0pLCAxKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ug
c3RyaWN0IjsKK2Rlc2NyaXB0aW9uKCk7CitkZWJ1ZygiIik7Cit2YXIgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIiwgdW5kZWZpbmVk
LCAyKTsKKwordmFyIHZTcmMgPSB3dHUuZ2V0U2NyaXB0KCJ2c2hhZGVyIik7Cit2YXIgZlRlbXBs
YXRlID0gd3R1LmdldFNjcmlwdCgiZnNoYWRlciIpOworCisvLyB8Y29sb3J8IGlzIGRlZmluZWQg
aW4gZnJhZ21lbnQgc2hhZGVyIGFzIGFuIGFycmF5IG9mIDMgZWxlbWVudHMuCit2YXIgdW5pZm9y
bUFycmF5U2l6ZSA9IDM7Cit2YXIgaW5pdGlhbFVuaWZvcm1WYWx1ZSA9IDk5OworCit2YXIgdHlw
ZUluZm9zID0gWworICB7IHR5cGU6ICdmbG9hdCcsCisgICAgc2V0dGVyOiAndW5pZm9ybTFmdics
CisgICAgZWxlbTogJycsCisgICAgbnVtRWxlbWVudHNQZXJUeXBlOiAxLAorICAgIHNyY1ZhbHVl
czogWzE2LCAxNV0sCisgICAgc3JjVmFsdWVzV2l0aE9mZnNldDogWzAsIDAsIDE2LCAxNV0sCisg
ICAgc3JjVmFsdWVzV2l0aE9mZnNldEFuZExlbmd0aDogWzAsIDAsIDE2LCAxNSwgMF0sCisgICAg
c3JjT2Zmc2V0OiAyLAorICB9LAorICB7IHR5cGU6ICdpbnQnLAorICAgIHNldHRlcjogJ3VuaWZv
cm0xaXYnLAorICAgIGVsZW06ICcnLAorICAgIG51bUVsZW1lbnRzUGVyVHlwZTogMSwKKyAgICBz
cmNWYWx1ZXM6IFsxNiwgMTVdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXQ6IFswLCAwLCAxNiwg
MTVdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGg6IFswLCAwLCAxNiwgMTUsIDBd
LAorICAgIHNyY09mZnNldDogMiwKKyAgfSwKKyAgeyB0eXBlOiAndWludCcsCisgICAgc2V0dGVy
OiAndW5pZm9ybTF1aXYnLAorICAgIGVsZW06ICcnLAorICAgIG51bUVsZW1lbnRzUGVyVHlwZTog
MSwKKyAgICBzcmNWYWx1ZXM6IFsxNiwgMTVdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXQ6IFsw
LCAwLCAxNiwgMTVdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGg6IFswLCAwLCAx
NiwgMTUsIDBdLAorICAgIHNyY09mZnNldDogMiwKKyAgfSwKKyAgeyB0eXBlOiAndmVjMicsCisg
ICAgc2V0dGVyOiAndW5pZm9ybTJmdicsCisgICAgZWxlbTogJ1sxXScsCisgICAgbnVtRWxlbWVu
dHNQZXJUeXBlOiAyLAorICAgIHNyY1ZhbHVlczogWzE2LCAxNSwgMTQsIDEzXSwKKyAgICBzcmNW
YWx1ZXNXaXRoT2Zmc2V0OiBbMCwgMTYsIDE1LCAxNCwgMTNdLAorICAgIHNyY1ZhbHVlc1dpdGhP
ZmZzZXRBbmRMZW5ndGg6IFswLCAxNiwgMTUsIDE0LCAxMywgMF0sCisgICAgc3JjT2Zmc2V0OiAx
LAorICB9LAorICB7IHR5cGU6ICdpdmVjMicsCisgICAgc2V0dGVyOiAndW5pZm9ybTJpdicsCisg
ICAgZWxlbTogJ1sxXScsCisgICAgbnVtRWxlbWVudHNQZXJUeXBlOiAyLAorICAgIHNyY1ZhbHVl
czogWzE2LCAxNSwgMTQsIDEzXSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0OiBbMCwgMTYsIDE1
LCAxNCwgMTNdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGg6IFswLCAxNiwgMTUs
IDE0LCAxMywgMF0sCisgICAgc3JjT2Zmc2V0OiAxLAorICB9LAorICB7IHR5cGU6ICd1dmVjMics
CisgICAgc2V0dGVyOiAndW5pZm9ybTJ1aXYnLAorICAgIGVsZW06ICdbMV0nLAorICAgIG51bUVs
ZW1lbnRzUGVyVHlwZTogMiwKKyAgICBzcmNWYWx1ZXM6IFsxNiwgMTUsIDE0LCAxM10sCisgICAg
c3JjVmFsdWVzV2l0aE9mZnNldDogWzAsIDE2LCAxNSwgMTQsIDEzXSwKKyAgICBzcmNWYWx1ZXNX
aXRoT2Zmc2V0QW5kTGVuZ3RoOiBbMCwgMTYsIDE1LCAxNCwgMTMsIDBdLAorICAgIHNyY09mZnNl
dDogMSwKKyAgfSwKKyAgeyB0eXBlOiAndmVjMycsCisgICAgc2V0dGVyOiAndW5pZm9ybTNmdics
CisgICAgZWxlbTogJ1syXScsCisgICAgbnVtRWxlbWVudHNQZXJUeXBlOiAzLAorICAgIHNyY1Zh
bHVlczogWzE2LCAxNSwgMTQsIDEzLCAxMiwgMTFdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXQ6
IFswLCAxNiwgMTUsIDE0LCAxMywgMTIsIDExXSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0QW5k
TGVuZ3RoOiBbMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMCwgMF0sCisgICAgc3JjT2Zmc2V0
OiAxLAorICB9LAorICB7IHR5cGU6ICdpdmVjMycsCisgICAgc2V0dGVyOiAndW5pZm9ybTNpdics
CisgICAgZWxlbTogJ1syXScsCisgICAgbnVtRWxlbWVudHNQZXJUeXBlOiAzLAorICAgIHNyY1Zh
bHVlczogWzE2LCAxNSwgMTQsIDEzLCAxMiwgMTFdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXQ6
IFswLCAxNiwgMTUsIDE0LCAxMywgMTIsIDExXSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0QW5k
TGVuZ3RoOiBbMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMCwgMF0sCisgICAgc3JjT2Zmc2V0
OiAxLAorICB9LAorICB7IHR5cGU6ICd1dmVjMycsCisgICAgc2V0dGVyOiAndW5pZm9ybTN1aXYn
LAorICAgIGVsZW06ICdbMl0nLAorICAgIG51bUVsZW1lbnRzUGVyVHlwZTogMywKKyAgICBzcmNW
YWx1ZXM6IFsxNiwgMTUsIDE0LCAxMywgMTIsIDExXSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0
OiBbMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMV0sCisgICAgc3JjVmFsdWVzV2l0aE9mZnNldEFu
ZExlbmd0aDogWzAsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDAsIDBdLAorICAgIHNyY09mZnNl
dDogMSwKKyAgfSwKKyAgeyB0eXBlOiAndmVjNCcsCisgICAgc2V0dGVyOiAndW5pZm9ybTRmdics
CisgICAgZWxlbTogJ1szXScsCisgICAgbnVtRWxlbWVudHNQZXJUeXBlOiA0LAorICAgIHNyY1Zh
bHVlczogWzE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5XSwKKyAgICBzcmNWYWx1ZXNXaXRo
T2Zmc2V0OiBbMCwgMCwgMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDldLAorICAgIHNy
Y1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGg6IFswLCAwLCAwLCAxNiwgMTUsIDE0LCAxMywgMTIs
IDExLCAxMCwgOSwgMF0sCisgICAgc3JjT2Zmc2V0OiAzLAorICB9LAorICB7IHR5cGU6ICdpdmVj
NCcsCisgICAgc2V0dGVyOiAndW5pZm9ybTRpdicsCisgICAgZWxlbTogJ1szXScsCisgICAgbnVt
RWxlbWVudHNQZXJUeXBlOiA0LAorICAgIHNyY1ZhbHVlczogWzE2LCAxNSwgMTQsIDEzLCAxMiwg
MTEsIDEwLCA5XSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0OiBbMCwgMCwgMCwgMTYsIDE1LCAx
NCwgMTMsIDEyLCAxMSwgMTAsIDldLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGg6
IFswLCAwLCAwLCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgMF0sCisgICAgc3JjT2Zm
c2V0OiAzLAorICB9LAorICB7IHR5cGU6ICd1dmVjNCcsCisgICAgc2V0dGVyOiAndW5pZm9ybTR1
aXYnLAorICAgIGVsZW06ICdbM10nLAorICAgIG51bUVsZW1lbnRzUGVyVHlwZTogNCwKKyAgICBz
cmNWYWx1ZXM6IFsxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOV0sCisgICAgc3JjVmFsdWVz
V2l0aE9mZnNldDogWzAsIDAsIDAsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5XSwKKyAg
ICBzcmNWYWx1ZXNXaXRoT2Zmc2V0QW5kTGVuZ3RoOiBbMCwgMCwgMCwgMTYsIDE1LCAxNCwgMTMs
IDEyLCAxMSwgMTAsIDksIDBdLAorICAgIHNyY09mZnNldDogMywKKyAgfSwKKworICAvLyBNYXRy
aXgKKyAgeyB0eXBlOiAnbWF0MicsCisgICAgc2V0dGVyOiAndW5pZm9ybU1hdHJpeDJmdicsCisg
ICAgZWxlbTogJ1sxXVsxXScsCisgICAgbnVtRWxlbWVudHNQZXJUeXBlOiA0LAorICAgIHNyY1Zh
bHVlczogWzE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5XSwKKyAgICBzcmNWYWx1ZXNXaXRo
T2Zmc2V0OiBbMCwgMCwgMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDldLAorICAgIHNy
Y1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGg6IFswLCAwLCAwLCAxNiwgMTUsIDE0LCAxMywgMTIs
IDExLCAxMCwgOSwgMF0sCisgICAgc3JjT2Zmc2V0OiAzLAorICB9LAorICB7IHR5cGU6ICdtYXQz
JywKKyAgICBzZXR0ZXI6ICd1bmlmb3JtTWF0cml4M2Z2JywKKyAgICBlbGVtOiAnWzJdWzJdJywK
KyAgICBudW1FbGVtZW50c1BlclR5cGU6IDksCisgICAgc3JjVmFsdWVzOiBbMTYsIDE1LCAxNCwg
MTMsIDEyLCAxMSwgMTAsIDksIDhdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXQ6IFswLCAwLCAw
LCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOF0sCisgICAgc3JjVmFsdWVzV2l0aE9m
ZnNldEFuZExlbmd0aDogWzAsIDAsIDAsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4
LCAwXSwKKyAgICBzcmNPZmZzZXQ6IDMsCisgIH0sCisgIHsgdHlwZTogJ21hdDQnLAorICAgIHNl
dHRlcjogJ3VuaWZvcm1NYXRyaXg0ZnYnLAorICAgIGVsZW06ICdbM11bM10nLAorICAgIG51bUVs
ZW1lbnRzUGVyVHlwZTogMTYsCisgICAgc3JjVmFsdWVzOiBbMTYsIDE1LCAxNCwgMTMsIDEyLCAx
MSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDFdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZz
ZXQ6IFswLCAwLCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwg
MywgMiwgMV0sCisgICAgc3JjVmFsdWVzV2l0aE9mZnNldEFuZExlbmd0aDogWzAsIDAsIDE2LCAx
NSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwLCAwLCAw
LCAwXSwKKyAgICBzcmNPZmZzZXQ6IDIsCisgIH0sCisgIHsgdHlwZTogJ21hdDJ4MycsCisgICAg
c2V0dGVyOiAndW5pZm9ybU1hdHJpeDJ4M2Z2JywKKyAgICBlbGVtOiAnWzFdWzJdJywKKyAgICBu
dW1FbGVtZW50c1BlclR5cGU6IDYsCisgICAgc3JjVmFsdWVzOiBbMTYsIDE1LCAxNCwgMTMsIDEy
LCAxMSwgMTAsIDksIDgsIDcsIDYsIDVdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXQ6IFswLCAw
LCAwLCAwLCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNV0sCisgICAg
c3JjVmFsdWVzV2l0aE9mZnNldEFuZExlbmd0aDogWzAsIDAsIDAsIDAsIDE2LCAxNSwgMTQsIDEz
LCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCAwLCAwXSwKKyAgICBzcmNPZmZzZXQ6IDQsCisg
IH0sCisgIHsgdHlwZTogJ21hdDN4MicsCisgICAgc2V0dGVyOiAndW5pZm9ybU1hdHJpeDN4MmZ2
JywKKyAgICBlbGVtOiAnWzJdWzFdJywKKyAgICBudW1FbGVtZW50c1BlclR5cGU6IDYsCisgICAg
c3JjVmFsdWVzOiBbMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDVdLAor
ICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXQ6IFswLCAwLCAwLCAxNiwgMTUsIDE0LCAxMywgMTIsIDEx
LCAxMCwgOSwgOCwgNywgNiwgNV0sCisgICAgc3JjVmFsdWVzV2l0aE9mZnNldEFuZExlbmd0aDog
WzAsIDAsIDAsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCAwLCAw
LCAwXSwKKyAgICBzcmNPZmZzZXQ6IDMsCisgIH0sCisgIHsgdHlwZTogJ21hdDJ4NCcsCisgICAg
c2V0dGVyOiAndW5pZm9ybU1hdHJpeDJ4NGZ2JywKKyAgICBlbGVtOiAnWzFdWzNdJywKKyAgICBu
dW1FbGVtZW50c1BlclR5cGU6IDgsCisgICAgc3JjVmFsdWVzOiBbMTYsIDE1LCAxNCwgMTMsIDEy
LCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDFdLAorICAgIHNyY1ZhbHVlc1dpdGhP
ZmZzZXQ6IFswLCAwLCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwg
NCwgMywgMiwgMV0sCisgICAgc3JjVmFsdWVzV2l0aE9mZnNldEFuZExlbmd0aDogWzAsIDAsIDE2
LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwLCAw
LCAwLCAwXSwKKyAgICBzcmNPZmZzZXQ6IDIsCisgIH0sCisgIHsgdHlwZTogJ21hdDR4MicsCisg
ICAgc2V0dGVyOiAndW5pZm9ybU1hdHJpeDR4MmZ2JywKKyAgICBlbGVtOiAnWzNdWzFdJywKKyAg
ICBudW1FbGVtZW50c1BlclR5cGU6IDgsCisgICAgc3JjVmFsdWVzOiBbMTYsIDE1LCAxNCwgMTMs
IDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDFdLAorICAgIHNyY1ZhbHVlc1dp
dGhPZmZzZXQ6IFswLCAwLCAwLCAwLCAwLCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwg
OCwgNywgNiwgNSwgNCwgMywgMiwgMV0sCisgICAgc3JjVmFsdWVzV2l0aE9mZnNldEFuZExlbmd0
aDogWzAsIDAsIDAsIDAsIDAsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2
LCA1LCA0LCAzLCAyLCAxLCAwLCAwLCAwXSwKKyAgICBzcmNPZmZzZXQ6IDUsCisgIH0sCisgIHsg
dHlwZTogJ21hdDN4NCcsCisgICAgc2V0dGVyOiAndW5pZm9ybU1hdHJpeDN4NGZ2JywKKyAgICBl
bGVtOiAnWzJdWzNdJywKKyAgICBudW1FbGVtZW50c1BlclR5cGU6IDEyLAorICAgIHNyY1ZhbHVl
czogWzE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1XSwKKyAgICBzcmNW
YWx1ZXNXaXRoT2Zmc2V0OiBbMCwgMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgs
IDcsIDYsIDVdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGg6IFswLCAwLCAxNiwg
MTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgMCwgMCwgMCwgMF0sCisgICAg
c3JjT2Zmc2V0OiAyLAorICB9LAorICB7IHR5cGU6ICdtYXQ0eDMnLAorICAgIHNldHRlcjogJ3Vu
aWZvcm1NYXRyaXg0eDNmdicsCisgICAgZWxlbTogJ1szXVsyXScsCisgICAgbnVtRWxlbWVudHNQ
ZXJUeXBlOiAxMiwKKyAgICBzcmNWYWx1ZXM6IFsxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwg
OSwgOCwgNywgNiwgNV0sCisgICAgc3JjVmFsdWVzV2l0aE9mZnNldDogWzAsIDAsIDE2LCAxNSwg
MTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1XSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zm
c2V0QW5kTGVuZ3RoOiBbMCwgMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcs
IDYsIDUsIDAsIDAsIDAsIDBdLAorICAgIHNyY09mZnNldDogMiwKKyAgfSwKKworXTsKKworZnVu
Y3Rpb24gY2hlY2tVbmlmb3JtVmFsdWVzKHByb2dyYW0sIHR5cGVJbmZvLCB1c2VJbml0aWFsVmFs
dWVzKSB7CisgIHZhciBudW1TcmNWYWx1ZXMgPSB0eXBlSW5mby5zcmNWYWx1ZXMubGVuZ3RoIC8g
dHlwZUluZm8ubnVtRWxlbWVudHNQZXJUeXBlOworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdW5p
Zm9ybUFycmF5U2l6ZTsgKytpaSkgeworICAgIHZhciBleHBlY3RlZFZhbHVlczsKKyAgICBpZiAo
dXNlSW5pdGlhbFZhbHVlcyB8fCBpaSA+PSBudW1TcmNWYWx1ZXMpIHsKKyAgICAgIGV4cGVjdGVk
VmFsdWVzID0gbmV3IEFycmF5KHR5cGVJbmZvLm51bUVsZW1lbnRzUGVyVHlwZSk7CisgICAgICBm
b3IgKHZhciBqaiA9IDA7IGpqIDwgdHlwZUluZm8ubnVtRWxlbWVudHNQZXJUeXBlOyArK2pqKSB7
CisgICAgICAgIGV4cGVjdGVkVmFsdWVzW2pqXSA9IGluaXRpYWxVbmlmb3JtVmFsdWU7CisgICAg
ICB9CisgICAgfSBlbHNlIHsKKyAgICAgIGV4cGVjdGVkVmFsdWVzID0gdHlwZUluZm8uc3JjVmFs
dWVzLnNsaWNlKAorICAgICAgICAgIHR5cGVJbmZvLm51bUVsZW1lbnRzUGVyVHlwZSAqIGlpLCB0
eXBlSW5mby5udW1FbGVtZW50c1BlclR5cGUgKiAoaWkgKyAxKSk7CisgICAgfQorICAgIHZhciBl
bGVtTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJjb2xvclsiICsgaWkgKyAi
XSIpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAi
Y2FuIGdldCBsb2NhdGlvbiBvZiBlbGVtZW50ICIgKyBpaSArICIgb2YgYXJyYXkgZnJvbSBnbC5n
ZXRVbmlmb3JtTG9jYXRpb24iKTsKKyAgICB2YXIgdmFsdWUgPSBnbC5nZXRVbmlmb3JtKHByb2dy
YW0sIGVsZW1Mb2MpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAor
ICAgICAgICAiY2FuIGdldCB2YWx1ZSBvZiBlbGVtZW50ICIgKyBpaSArICIgb2YgYXJyYXkgZnJv
bSBnbC5nZXRVbmlmb3JtIik7CisgICAgdmFyIGVxdWFsID0gdHJ1ZTsKKyAgICBpZiAodmFsdWUg
PT09IG51bGwpIHsKKyAgICAgIGVxdWFsID0gZmFsc2U7CisgICAgfSBlbHNlIGlmICh0eXBlSW5m
by5udW1FbGVtZW50c1BlclR5cGUgPT0gMSkgeworICAgICAgaWYgKHZhbHVlICE9IGV4cGVjdGVk
VmFsdWVzWzBdKSB7CisgICAgICAgIGVxdWFsID0gZmFsc2U7CisgICAgICB9CisgICAgfSBlbHNl
IHsKKyAgICAgIGZvciAodmFyIGpqID0gMDsgamogPCB0eXBlSW5mby5udW1FbGVtZW50c1BlclR5
cGU7ICsramopIHsKKyAgICAgICAgaWYgKHZhbHVlW2pqXSAhPSBleHBlY3RlZFZhbHVlc1tqal0p
IHsKKyAgICAgICAgICBlcXVhbCA9IGZhbHNlOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICB9CisgICAgfQorICAgIGFzc2VydE1zZyhlcXVhbCwKKyAgICAgICAgInZhbHVlIHB1
dCBpbiAoIiArIGV4cGVjdGVkVmFsdWVzICsgIikgbWF0Y2hlcyB2YWx1ZSBwdWxsZWQgb3V0ICgi
ICsKKyAgICAgICAgKHZhbHVlID09PSBudWxsID8gIm51bGwiIDogdmFsdWUpICsgIikiKTsKKyAg
fQorfQorCitmb3IgKHZhciB0dCA9IDA7IHR0IDwgdHlwZUluZm9zLmxlbmd0aDsgKyt0dCkgewor
ICB2YXIgdHlwZUluZm8gPSB0eXBlSW5mb3NbdHRdOworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJj
aGVjayAiICsgdHlwZUluZm8udHlwZSk7CisgIHZhciBzcmNMZW5ndGggPSB0eXBlSW5mby5zcmNW
YWx1ZXMubGVuZ3RoOworICB2YXIgZlNyYyA9IHd0dS5yZXBsYWNlUGFyYW1zKGZUZW1wbGF0ZSwg
dHlwZUluZm8pOworICB2YXIgcHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbShnbCwgdlNyYywgZlNy
Yyk7CisgIGlmICghcHJvZ3JhbSkgeworICAgIHRlc3RGYWlsZWQoIkZhaWxlZCB0byBjcmVhdGUg
dGhlIHByb2dyYW0iKTsKKyAgICBjb250aW51ZTsKKyAgfQorICBnbC51c2VQcm9ncmFtKHByb2dy
YW0pOworCisgIHZhciBsb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgImNvbG9y
WzBdIik7CisgIGlmICghbG9jKSB7CisgICAgdGVzdEZhaWxlZCgiRmFpbGVkIHRvIG9idGFpbiB0
aGUgbG9jYXRpb24gb2YgdGhlIHVuaWZvcm0iKTsKKyAgICBjb250aW51ZTsKKyAgfQorCisgIGZ1
bmN0aW9uIHNldHRlcihsb2MsIGFycmF5LCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkgeworICAgIHZh
ciBpc01hdHJpeCA9ICh0eXBlSW5mby5zZXR0ZXIuaW5kZXhPZigiTWF0cml4IikgPT0gNyk7Cisg
ICAgaWYgKHR5cGVvZihzcmNPZmZzZXQpICE9ICd1bmRlZmluZWQnKSB7CisgICAgICBpZiAoaXNN
YXRyaXgpIHsKKyAgICAgICAgZ2xbdHlwZUluZm8uc2V0dGVyXShsb2MsIGdsLkZBTFNFLCBhcnJh
eSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgZ2xbdHlw
ZUluZm8uc2V0dGVyXShsb2MsIGFycmF5LCBzcmNPZmZzZXQsIHNyY0xlbmd0aCk7CisgICAgICB9
CisgICAgfSBlbHNlIGlmICh0eXBlb2Yoc3JjTGVuZ3RoKSAhPSAndW5kZWZpbmVkJykgeworICAg
ICAgaWYgKGlzTWF0cml4KSB7CisgICAgICAgIGdsW3R5cGVJbmZvLnNldHRlcl0obG9jLCBnbC5G
QUxTRSwgYXJyYXksIHNyY09mZnNldCk7CisgICAgICB9IGVsc2UgeworICAgICAgICBnbFt0eXBl
SW5mby5zZXR0ZXJdKGxvYywgYXJyYXksIHNyY09mZnNldCk7CisgICAgICB9CisgICAgfSBlbHNl
IHsKKyAgICAgIGlmIChpc01hdHJpeCkgeworICAgICAgICBnbFt0eXBlSW5mby5zZXR0ZXJdKGxv
YywgZ2wuRkFMU0UsIGFycmF5KTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGdsW3R5cGVJbmZv
LnNldHRlcl0obG9jLCBhcnJheSk7CisgICAgICB9CisgICAgfQorICB9CisKKyAgLy8gSW5pdGlh
bGl6ZSB1bmlmb3JtcyB0byB2YWx1ZSA5OSBhbmQgdmVyaWZ5IGl0LgorICB2YXIgaW5pdFZhbHVl
cyA9IG5ldyBBcnJheSh0eXBlSW5mby5udW1FbGVtZW50c1BlclR5cGUgKiB1bmlmb3JtQXJyYXlT
aXplKTsKKyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHR5cGVJbmZvLm51bUVsZW1lbnRzUGVyVHlw
ZSAqIHVuaWZvcm1BcnJheVNpemU7ICsraWkpIHsKKyAgICBpbml0VmFsdWVzW2lpXSA9IGluaXRp
YWxVbmlmb3JtVmFsdWU7CisgIH0KKyAgc2V0dGVyKGxvYywgaW5pdFZhbHVlcyk7CisgIHd0dS5n
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgIm5vIGVycm9yIGZyb20gaW5p
dGlhbGl6aW5nIHVuaWZvcm1zIHRvIDk5Iik7CisgIGNoZWNrVW5pZm9ybVZhbHVlcyhwcm9ncmFt
LCB0eXBlSW5mbywgdHJ1ZSk7CisKKyAgc2V0dGVyKGxvYywgdHlwZUluZm8uc3JjVmFsdWVzKTsK
KyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAiY2FuIHNldCBh
biBhcnJheSBvZiB1bmlmb3JtcyB3aXRoIGdsLiIgKyB0eXBlSW5mby5zZXR0ZXIgKworICAgICAg
IiB3aXRob3V0IHNyY09mZnNldCAvIHNyY0xlbmd0aCIpOworICBjaGVja1VuaWZvcm1WYWx1ZXMo
cHJvZ3JhbSwgdHlwZUluZm8pOworCisgIHNldHRlcihsb2MsIHR5cGVJbmZvLnNyY1ZhbHVlcywg
MCk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgImNhbiBz
ZXQgYW4gYXJyYXkgb2YgdW5pZm9ybXMgd2l0aCBnbC4iICsgdHlwZUluZm8uc2V0dGVyICsKKyAg
ICAgICIgd2l0aCBzcmNPZmZzZXQgPSAwIik7CisgIGNoZWNrVW5pZm9ybVZhbHVlcyhwcm9ncmFt
LCB0eXBlSW5mbyk7CisKKyAgc2V0dGVyKGxvYywgdHlwZUluZm8uc3JjVmFsdWVzLCAwLCAwKTsK
KyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAiY2FuIHNldCBh
biBhcnJheSBvZiB1bmlmb3JtcyB3aXRoIGdsLiIgKyB0eXBlSW5mby5zZXR0ZXIgKworICAgICAg
IiB3aXRoIHNyY09mZnNldCA9IDAgLyBzcmNMZW5ndGggPSAwIik7CisgIGNoZWNrVW5pZm9ybVZh
bHVlcyhwcm9ncmFtLCB0eXBlSW5mbyk7CisKKyAgc2V0dGVyKGxvYywgdHlwZUluZm8uc3JjVmFs
dWVzV2l0aE9mZnNldCwgdHlwZUluZm8uc3JjT2Zmc2V0KTsKKyAgd3R1LmdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAiY2FuIHNldCBhbiBhcnJheSBvZiB1bmlmb3JtcyB3
aXRoIGdsLiIgKyB0eXBlSW5mby5zZXR0ZXIgKworICAgICAgIiB3aXRoIHNyY09mZnNldCA9ICIg
KyB0eXBlSW5mby5zcmNPZmZzZXQpOworICBjaGVja1VuaWZvcm1WYWx1ZXMocHJvZ3JhbSwgdHlw
ZUluZm8pOworCisgIHNldHRlcihsb2MsIHR5cGVJbmZvLnNyY1ZhbHVlc1dpdGhPZmZzZXQsIHR5
cGVJbmZvLnNyY09mZnNldCwgMCk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SLAorICAgICAgImNhbiBzZXQgYW4gYXJyYXkgb2YgdW5pZm9ybXMgd2l0aCBnbC4iICsgdHlw
ZUluZm8uc2V0dGVyICsKKyAgICAgICIgd2l0aCBzcmNPZmZzZXQgPSAiICsgdHlwZUluZm8uc3Jj
T2Zmc2V0ICsgIiAvIHNyY0xlbmd0aCA9IDAiKTsKKyAgY2hlY2tVbmlmb3JtVmFsdWVzKHByb2dy
YW0sIHR5cGVJbmZvKTsKKworICBzZXR0ZXIobG9jLCB0eXBlSW5mby5zcmNWYWx1ZXNXaXRoT2Zm
c2V0QW5kTGVuZ3RoLCB0eXBlSW5mby5zcmNPZmZzZXQsIHNyY0xlbmd0aCk7CisgIHd0dS5nbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgImNhbiBzZXQgYW4gYXJyYXkgb2Yg
dW5pZm9ybXMgd2l0aCBnbC4iICsgdHlwZUluZm8uc2V0dGVyICsKKyAgICAgICIgd2l0aCBzcmNP
ZmZzZXQgPSAiICsgdHlwZUluZm8uc3JjT2Zmc2V0ICsgIiAvIHNyY0xlbmd0aCA9ICIgKyBzcmNM
ZW5ndGgpOworICBjaGVja1VuaWZvcm1WYWx1ZXMocHJvZ3JhbSwgdHlwZUluZm8pOworCisgIHd0
dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAibm8gZXJyb3JzIik7CisKKyAgLy8g
TmVnYXRpdmUgdGVzdHMKKyAgc2V0dGVyKGxvYywgdHlwZUluZm8uc3JjVmFsdWVzLCB0eXBlSW5m
by5zcmNWYWx1ZXMubGVuZ3RoICsgMSk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklO
VkFMSURfVkFMVUUsCisgICAgICAiZ2wuIiArIHR5cGVJbmZvLnNldHRlciArICIgd2l0aCBzcmNP
ZmZzZXQgb3V0LW9mLWJvdW5kcyIpOworCisgIHNldHRlcihsb2MsIHR5cGVJbmZvLnNyY1ZhbHVl
cywgMCwgdHlwZUluZm8uc3JjVmFsdWVzLmxlbmd0aCArIDEpOworICB3dHUuZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFLAorICAgICAgImdsLiIgKyB0eXBlSW5mby5zZXR0ZXIg
KyAiIHdpdGggc3JjTGVuZ3RoIG91dC1vZi1ib3VuZHMiKTsKKworICBzZXR0ZXIobG9jLCB0eXBl
SW5mby5zcmNWYWx1ZXMsIHR5cGVJbmZvLnNyY09mZnNldCwgc3JjTGVuZ3RoKTsKKyAgd3R1Lmds
RXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwKKyAgICAgICJnbC4iICsgdHlwZUlu
Zm8uc2V0dGVyICsgIiB3aXRoIHNyY09mZnNldCArIHNyY0xlbmd0aCBvdXQtb2YtYm91bmRzIik7
CisKKyAgc2V0dGVyKGxvYywgdHlwZUluZm8uc3JjVmFsdWVzLCB0eXBlSW5mby5zcmNWYWx1ZXMu
bGVuZ3RoKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwKKyAg
ICAgICJnbC4iICsgdHlwZUluZm8uc2V0dGVyICsgIiB3aXRoIDAgZGF0YSIpOworCisgIGlmICh0
eXBlSW5mby5udW1FbGVtZW50c1BlclR5cGUgPiAxKSB7CisgICAgc2V0dGVyKGxvYywgdHlwZUlu
Zm8uc3JjVmFsdWVzV2l0aE9mZnNldEFuZExlbmd0aCwgdHlwZUluZm8uc3JjT2Zmc2V0KTsKKyAg
ICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFLAorICAgICAgICAiZ2wu
IiArIHR5cGVJbmZvLnNldHRlciArICIgd2l0aCBhcnJheSBsZW5ndGggbWludXMgc3JjT2Zmc2V0
IG5vdCBtdWx0aXBsZSBvZiAiICsgdHlwZUluZm8udHlwZSk7CisgIH0KK30KKworZGVidWcoIiIp
OwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411387</attachid>
            <date>2020-10-14 16:51:53 -0700</date>
            <delta_ts>2020-10-14 17:24:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215846-20201014165152.patch</filename>
            <type>text/plain</type>
            <size>30266</size>
            <attacher name="James Darpinian">jdarpinian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzliNjBmZTYxMDYyMzI1
ODgzYzYwZTcyM2FiNDVkMWFmMjllOTI0MC4uZmE3NTBmNGI1OWRjNzBhODFjNTBkZDc0MzUxZDU2
Yzc4NmVjYzQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTEwLTE0ICBKYW1l
cyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBVbml0eSBS
dWJ5c0FkdmVudHVyZSBkZW1vIGRvZXMgbm90IHJlbmRlciBwcm9wZXJseSBpZiBXZWJHTDIgaXMg
ZW5hYmxlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNTg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KKworICAgICAg
ICB1bmlmb3JtKnYgc3JjTGVuZ3RoIHBhcmFtZXRlciBuZWVkcyB0byBiZSBkaXZpZGVkIGJ5IHRo
ZSB1bmlmb3JtCisgICAgICAgIGNvbXBvbmVudCBzaXplIGJlZm9yZSBwYXNzaW5nIHRvIE9wZW5H
TCdzIGNvdW50IHBhcmFtZXRlci4KKworICAgICAgICBUZXN0OiB3ZWJnbC9jb25mb3JtYW5jZTIv
dW5pZm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3ViLXNvdXJjZS5odG1sCisKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0ydWl2KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zdWl2KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm00dWl2KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXgyeDNmdik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4M3gyZnYpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDJ4NGZ2
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRy
aXg0eDJmdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlm
b3JtTWF0cml4M3g0ZnYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6dW5pZm9ybU1hdHJpeDR4M2Z2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OnVuaWZvcm0yZnYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6dW5pZm9ybTNmdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojp1bmlmb3JtNGZ2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OnVuaWZvcm0yaXYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6dW5pZm9ybTNpdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250
ZXh0Ojp1bmlmb3JtNGl2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OnVuaWZvcm1NYXRyaXgyZnYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6dW5pZm9ybU1hdHJpeDNmdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4NGZ2KToKKwogMjAyMC0wOS0zMCAgQW50b2luZSBR
dWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgbm9uLWFuaW1hdGVkIHN1
cHBvcnQgZm9yIHRoZSBDU1MgdHJhbnNsYXRlIHByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDdkNGI1
OGZkZTUwNWIyNzI4MGJlMzBlNGE4MDhjNGFiMmEzNTNmOGYuLmY4ZTc4NTIwNDQ3ODBlNmY3NzIy
MWYyZWIwYWI5OWU1ZjQ2MGU2YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0xNTgyLDYzICsxNTgyLDYzIEBA
IHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJ1aXYoV2ViR0xVbmlmb3JtTG9j
YXRpb24qIGxvY2F0aW9uLCBVaW50MzJMCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRp
bmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtUGFyYW1ldGVycygidW5pZm9ybTJ1aXYiLCBsb2NhdGlv
biwgdmFsdWUsIDIsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwotICAg
IG1fY29udGV4dC0+dW5pZm9ybTJ1aXYobG9jYXRpb24tPmxvY2F0aW9uKCksIHZhbHVlLmRhdGEo
KSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAodmFsdWUubGVuZ3RoKCkgLSBz
cmNPZmZzZXQpIC8gMik7CisgICAgbV9jb250ZXh0LT51bmlmb3JtMnVpdihsb2NhdGlvbi0+bG9j
YXRpb24oKSwgdmFsdWUuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGgg
OiB2YWx1ZS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyAyKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Ojp1bmlmb3JtM3VpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24s
IFVpbnQzMkxpc3QmJiB2YWx1ZSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5n
dGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlm
b3JtUGFyYW1ldGVycygidW5pZm9ybTN1aXYiLCBsb2NhdGlvbiwgdmFsdWUsIDMsIHNyY09mZnNl
dCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9ybTN1
aXYobG9jYXRpb24tPmxvY2F0aW9uKCksIHZhbHVlLmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5n
dGggPyBzcmNMZW5ndGggOiAodmFsdWUubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gMyk7CisgICAg
bV9jb250ZXh0LT51bmlmb3JtM3Vpdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgdmFsdWUuZGF0YSgp
LCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGggOiB2YWx1ZS5sZW5ndGgoKSAtIHNy
Y09mZnNldCkgLyAzKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3Jt
NHVpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIFVpbnQzMkxpc3QmJiB2YWx1ZSwg
R0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlzQ29u
dGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtUGFyYW1ldGVycygidW5pZm9y
bTR1aXYiLCBsb2NhdGlvbiwgdmFsdWUsIDQsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9ybTR1aXYobG9jYXRpb24tPmxvY2F0aW9u
KCksIHZhbHVlLmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAodmFs
dWUubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gNCk7CisgICAgbV9jb250ZXh0LT51bmlmb3JtNHVp
dihsb2NhdGlvbi0+bG9jYXRpb24oKSwgdmFsdWUuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5n
dGggPyBzcmNMZW5ndGggOiB2YWx1ZS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyA0KTsKIH0KIAog
dm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4MngzZnYoV2ViR0xVbmlm
b3JtTG9jYXRpb24qIGxvY2F0aW9uLCBHQ0dMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0
JiYgdiwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtTWF0cml4UGFyYW1l
dGVycygidW5pZm9ybU1hdHJpeDJ4M2Z2IiwgbG9jYXRpb24sIHRyYW5zcG9zZSwgdiwgNiwgc3Jj
T2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jb250ZXh0LT51bmlm
b3JtTWF0cml4MngzZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgdi5kYXRhKCks
IHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKHYubGVuZ3RoKCkgLSBzcmNPZmZz
ZXQpIC8gNik7CisgICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4MngzZnYobG9jYXRpb24tPmxv
Y2F0aW9uKCksIHRyYW5zcG9zZSwgdi5kYXRhKCksIHNyY09mZnNldCwgKHNyY0xlbmd0aCA/IHNy
Y0xlbmd0aCA6IHYubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gNik7CiB9CiAKIHZvaWQgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDN4MmZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9u
KiBsb2NhdGlvbiwgR0NHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCYmIHYsIEdDR0x1
aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRleHRM
b3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybU1hdHJpeFBhcmFtZXRlcnMoInVuaWZv
cm1NYXRyaXgzeDJmdiIsIGxvY2F0aW9uLCB0cmFuc3Bvc2UsIHYsIDYsIHNyY09mZnNldCwgc3Jj
TGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDN4
MmZ2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB0cmFuc3Bvc2UsIHYuZGF0YSgpLCBzcmNPZmZzZXQs
IHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6ICh2Lmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDYpOwor
ICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDN4MmZ2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB0
cmFuc3Bvc2UsIHYuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGggOiB2
Lmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDYpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OnVuaWZvcm1NYXRyaXgyeDRmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24s
IEdDR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QmJiB2LCBHQ0dMdWludCBzcmNPZmZz
ZXQsIEdDR0x1aW50IHNyY0xlbmd0aCkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGlu
ZygpIHx8ICF2YWxpZGF0ZVVuaWZvcm1NYXRyaXhQYXJhbWV0ZXJzKCJ1bmlmb3JtTWF0cml4Mng0
ZnYiLCBsb2NhdGlvbiwgdHJhbnNwb3NlLCB2LCA4LCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQtPnVuaWZvcm1NYXRyaXgyeDRmdihsb2NhdGlv
bi0+bG9jYXRpb24oKSwgdHJhbnNwb3NlLCB2LmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgg
PyBzcmNMZW5ndGggOiAodi5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyA4KTsKKyAgICBtX2NvbnRl
eHQtPnVuaWZvcm1NYXRyaXgyeDRmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgdHJhbnNwb3NlLCB2
LmRhdGEoKSwgc3JjT2Zmc2V0LCAoc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogdi5sZW5ndGgoKSAt
IHNyY09mZnNldCkgLyA4KTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlm
b3JtTWF0cml4NHgyZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBHQ0dMYm9vbGVh
biB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0JiYgdiwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWlu
dCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFs
aWRhdGVVbmlmb3JtTWF0cml4UGFyYW1ldGVycygidW5pZm9ybU1hdHJpeDR4MmZ2IiwgbG9jYXRp
b24sIHRyYW5zcG9zZSwgdiwgOCwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1
cm47Ci0gICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4NHgyZnYobG9jYXRpb24tPmxvY2F0aW9u
KCksIHRyYW5zcG9zZSwgdi5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3Ro
IDogKHYubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gOCk7CisgICAgbV9jb250ZXh0LT51bmlmb3Jt
TWF0cml4NHgyZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgdi5kYXRhKCksIHNy
Y09mZnNldCwgKHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IHYubGVuZ3RoKCkgLSBzcmNPZmZzZXQp
IC8gOCk7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDN4
NGZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgR0NHTGJvb2xlYW4gdHJhbnNwb3Nl
LCBGbG9hdDMyTGlzdCYmIHYsIEdDR0x1aW50IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3Ro
KQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9y
bU1hdHJpeFBhcmFtZXRlcnMoInVuaWZvcm1NYXRyaXgzeDRmdiIsIGxvY2F0aW9uLCB0cmFuc3Bv
c2UsIHYsIDEyLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKLSAgICBt
X2NvbnRleHQtPnVuaWZvcm1NYXRyaXgzeDRmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgdHJhbnNw
b3NlLCB2LmRhdGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAodi5sZW5n
dGgoKSAtIHNyY09mZnNldCkgLyAxMik7CisgICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4M3g0
ZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgdi5kYXRhKCksIHNyY09mZnNldCwg
KHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IHYubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gMTIpOwog
fQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXg0eDNmdihXZWJH
TFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEdDR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQz
Mkxpc3QmJiB2LCBHQ0dMdWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNyY0xlbmd0aCkKIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVVuaWZvcm1NYXRyaXhQ
YXJhbWV0ZXJzKCJ1bmlmb3JtTWF0cml4NHgzZnYiLCBsb2NhdGlvbiwgdHJhbnNwb3NlLCB2LCAx
Miwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jb250ZXh0
LT51bmlmb3JtTWF0cml4NHgzZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgdi5k
YXRhKCksIHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKHYubGVuZ3RoKCkgLSBz
cmNPZmZzZXQpIC8gMTIpOworICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDR4M2Z2KGxvY2F0
aW9uLT5sb2NhdGlvbigpLCB0cmFuc3Bvc2UsIHYuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5n
dGggPyBzcmNMZW5ndGggOiB2Lmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDEyKTsKIH0KIAogdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2ZXJ0ZXhBdHRyaWJJNGkoR0NHTHVpbnQgaW5kZXgs
IEdDR0xpbnQgeCwgR0NHTGludCB5LCBHQ0dMaW50IHosIEdDR0xpbnQgdykKQEAgLTM0MzQsMjEg
KzM0MzQsMjEgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMmZ2KFdlYkdM
VW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgRmxvYXQzMkwKIHsKICAgICBpZiAoaXNDb250ZXh0
TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVVuaWZvcm1QYXJhbWV0ZXJzKCJ1bmlmb3JtMmZ2
IiwgbG9jYXRpb24sIGRhdGEsIDIsIHNyY09mZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0
dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9ybTJmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0
YS5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKGRhdGEubGVuZ3Ro
KCkgLSBzcmNPZmZzZXQpIC8gMik7CisgICAgbV9jb250ZXh0LT51bmlmb3JtMmZ2KGxvY2F0aW9u
LT5sb2NhdGlvbigpLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCAoc3JjTGVuZ3RoID8gc3JjTGVu
Z3RoIDogZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyAyKTsKIH0KIAogdm9pZCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtM2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlv
biwgRmxvYXQzMkxpc3QgZGF0YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5n
dGgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlm
b3JtUGFyYW1ldGVycygidW5pZm9ybTNmdiIsIGxvY2F0aW9uLCBkYXRhLCAzLCBzcmNPZmZzZXQs
IHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQtPnVuaWZvcm0zZnYo
bG9jYXRpb24tPmxvY2F0aW9uKCksIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/
IHNyY0xlbmd0aCA6IChkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDMpOworICAgIG1fY29u
dGV4dC0+dW5pZm9ybTNmdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0YS5kYXRhKCksIHNyY09m
ZnNldCwgKHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQp
IC8gMyk7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTRmdihXZWJH
TFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEZsb2F0MzJMaXN0IGRhdGEsIEdDR0x1aW50IHNy
Y09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQ
ZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybVBhcmFtZXRlcnMoInVuaWZvcm00ZnYiLCBsb2Nh
dGlvbiwgZGF0YSwgNCwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgbV9jb250ZXh0LT51bmlmb3JtNGZ2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCBkYXRhLmRhdGEo
KSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0YS5sZW5ndGgoKSAtIHNy
Y09mZnNldCkgLyA0KTsKKyAgICBtX2NvbnRleHQtPnVuaWZvcm00ZnYobG9jYXRpb24tPmxvY2F0
aW9uKCksIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGggOiBk
YXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDQpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OnVuaWZvcm0xaXYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBJbnQz
Mkxpc3QgZGF0YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCkBAIC0z
NDYyLDQyICszNDYyLDQyIEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJp
dihXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIEludDMyTGlzCiB7CiAgICAgaWYgKGlz
Q29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtUGFyYW1ldGVycygidW5p
Zm9ybTJpdiIsIGxvY2F0aW9uLCBkYXRhLCAyLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQtPnVuaWZvcm0yaXYobG9jYXRpb24tPmxvY2F0aW9u
KCksIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IChkYXRh
Lmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDIpOworICAgIG1fY29udGV4dC0+dW5pZm9ybTJpdihs
b2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0YS5kYXRhKCksIHNyY09mZnNldCwgKHNyY0xlbmd0aCA/
IHNyY0xlbmd0aCA6IGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gMik7CiB9CiAKIHZvaWQg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTNpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbiog
bG9jYXRpb24sIEludDMyTGlzdCBkYXRhLCBHQ0dMdWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNy
Y0xlbmd0aCkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0
ZVVuaWZvcm1QYXJhbWV0ZXJzKCJ1bmlmb3JtM2l2IiwgbG9jYXRpb24sIGRhdGEsIDMsIHNyY09m
ZnNldCwgc3JjTGVuZ3RoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9y
bTNpdihsb2NhdGlvbi0+bG9jYXRpb24oKSwgZGF0YS5kYXRhKCksIHNyY09mZnNldCwgc3JjTGVu
Z3RoID8gc3JjTGVuZ3RoIDogKGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gMyk7CisgICAg
bV9jb250ZXh0LT51bmlmb3JtM2l2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCBkYXRhLmRhdGEoKSwg
c3JjT2Zmc2V0LCAoc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogZGF0YS5sZW5ndGgoKSAtIHNyY09m
ZnNldCkgLyAzKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtNGl2
KFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgSW50MzJMaXN0IGRhdGEsIEdDR0x1aW50
IHNyY09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0
T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybVBhcmFtZXRlcnMoInVuaWZvcm00aXYiLCBs
b2NhdGlvbiwgZGF0YSwgNCwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47
Ci0gICAgbV9jb250ZXh0LT51bmlmb3JtNGl2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCBkYXRhLmRh
dGEoKSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0YS5sZW5ndGgoKSAt
IHNyY09mZnNldCkgLyA0KTsKKyAgICBtX2NvbnRleHQtPnVuaWZvcm00aXYobG9jYXRpb24tPmxv
Y2F0aW9uKCksIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5ndGgg
OiBkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvIDQpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaXgyZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0
aW9uLCBHQ0dMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsIEdDR0x1aW50IHNy
Y09mZnNldCwgR0NHTHVpbnQgc3JjTGVuZ3RoKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQ
ZW5kaW5nKCkgfHwgIXZhbGlkYXRlVW5pZm9ybU1hdHJpeFBhcmFtZXRlcnMoInVuaWZvcm1NYXRy
aXgyZnYiLCBsb2NhdGlvbiwgdHJhbnNwb3NlLCBkYXRhLCAyKjIsIHNyY09mZnNldCwgc3JjTGVu
Z3RoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDJmdihs
b2NhdGlvbi0+bG9jYXRpb24oKSwgdHJhbnNwb3NlLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCBz
cmNMZW5ndGggPyBzcmNMZW5ndGggOiAoZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyAoMioy
KSk7CisgICAgbV9jb250ZXh0LT51bmlmb3JtTWF0cml4MmZ2KGxvY2F0aW9uLT5sb2NhdGlvbigp
LCB0cmFuc3Bvc2UsIGRhdGEuZGF0YSgpLCBzcmNPZmZzZXQsIChzcmNMZW5ndGggPyBzcmNMZW5n
dGggOiBkYXRhLmxlbmd0aCgpIC0gc3JjT2Zmc2V0KSAvICgyKjIpKTsKIH0KIAogdm9pZCBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cml4M2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9u
KiBsb2NhdGlvbiwgR0NHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLCBHQ0dM
dWludCBzcmNPZmZzZXQsIEdDR0x1aW50IHNyY0xlbmd0aCkKIHsKICAgICBpZiAoaXNDb250ZXh0
TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVVuaWZvcm1NYXRyaXhQYXJhbWV0ZXJzKCJ1bmlm
b3JtTWF0cml4M2Z2IiwgbG9jYXRpb24sIHRyYW5zcG9zZSwgZGF0YSwgMyozLCBzcmNPZmZzZXQs
IHNyY0xlbmd0aCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQtPnVuaWZvcm1NYXRy
aXgzZnYobG9jYXRpb24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgZGF0YS5kYXRhKCksIHNyY09m
ZnNldCwgc3JjTGVuZ3RoID8gc3JjTGVuZ3RoIDogKGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQp
IC8gKDMqMykpOworICAgIG1fY29udGV4dC0+dW5pZm9ybU1hdHJpeDNmdihsb2NhdGlvbi0+bG9j
YXRpb24oKSwgdHJhbnNwb3NlLCBkYXRhLmRhdGEoKSwgc3JjT2Zmc2V0LCAoc3JjTGVuZ3RoID8g
c3JjTGVuZ3RoIDogZGF0YS5sZW5ndGgoKSAtIHNyY09mZnNldCkgLyAoMyozKSk7CiB9CiAKIHZv
aWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpeDRmdihXZWJHTFVuaWZvcm1M
b2NhdGlvbiogbG9jYXRpb24sIEdDR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0
YSwgR0NHTHVpbnQgc3JjT2Zmc2V0LCBHQ0dMdWludCBzcmNMZW5ndGgpCiB7CiAgICAgaWYgKGlz
Q29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVVbmlmb3JtTWF0cml4UGFyYW1ldGVy
cygidW5pZm9ybU1hdHJpeDRmdiIsIGxvY2F0aW9uLCB0cmFuc3Bvc2UsIGRhdGEsIDQqNCwgc3Jj
T2Zmc2V0LCBzcmNMZW5ndGgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jb250ZXh0LT51bmlm
b3JtTWF0cml4NGZ2KGxvY2F0aW9uLT5sb2NhdGlvbigpLCB0cmFuc3Bvc2UsIGRhdGEuZGF0YSgp
LCBzcmNPZmZzZXQsIHNyY0xlbmd0aCA/IHNyY0xlbmd0aCA6IChkYXRhLmxlbmd0aCgpIC0gc3Jj
T2Zmc2V0KSAvICg0KjQpKTsKKyAgICBtX2NvbnRleHQtPnVuaWZvcm1NYXRyaXg0ZnYobG9jYXRp
b24tPmxvY2F0aW9uKCksIHRyYW5zcG9zZSwgZGF0YS5kYXRhKCksIHNyY09mZnNldCwgKHNyY0xl
bmd0aCA/IHNyY0xlbmd0aCA6IGRhdGEubGVuZ3RoKCkgLSBzcmNPZmZzZXQpIC8gKDQqNCkpOwog
fQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnJlYWRQaXhlbHMoR0NHTGludCB4LCBH
Q0dMaW50IHksIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9y
bWF0LCBHQ0dMZW51bSB0eXBlLCBBcnJheUJ1ZmZlclZpZXcmIHBpeGVscykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1OGRm
MWIxYzZmNWM0MjNmOGU1MmRhMDhhNDNkMTdlMTU0NzlmZWU4Li5hZDkxOGQyOGY3YmQ5MTI5NTkx
NGY4YTEzNjUyNTM4NzQ0YWU5NWYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMTQg
IEphbWVzIERhcnBpbmlhbiAgPGpkYXJwaW5pYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFVu
aXR5IFJ1YnlzQWR2ZW50dXJlIGRlbW8gZG9lcyBub3QgcmVuZGVyIHByb3Blcmx5IGlmIFdlYkdM
MiBpcyBlbmFibGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE1ODQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgorCisg
ICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UyL3VuaWZvcm1zL2dsLXVuaWZvcm0tYXJyYXlzLXN1
Yi1zb3VyY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5j
ZTIvdW5pZm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3ViLXNvdXJjZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdW5p
Zm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3ViLXNvdXJjZS5odG1sOiBBZGRlZC4KKwogMjAyMC0w
OS0zMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQg
bm9uLWFuaW1hdGVkIHN1cHBvcnQgZm9yIHRoZSBDU1MgdHJhbnNsYXRlIHByb3BlcnR5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZTIvdW5pZm9ybXMvZ2wtdW5pZm9y
bS1hcnJheXMtc3ViLXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25m
b3JtYW5jZTIvdW5pZm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3ViLXNvdXJjZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjkyMzBhYTQ4YzU1NDQ2MjE3Yzk3Y2I5MzhlOGQ2MzFlMjZlNjFiOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlMi91bmlmb3Jt
cy9nbC11bmlmb3JtLWFycmF5cy1zdWItc291cmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQg
QEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdW5pZm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3Vi
LXNvdXJjZS5odG1sCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3Jt
YW5jZTIvdW5pZm9ybXMvZ2wtdW5pZm9ybS1hcnJheXMtc3ViLXNvdXJjZS5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UyL3VuaWZvcm1zL2dsLXVuaWZvcm0tYXJyYXlzLXN1Yi1z
b3VyY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDkzNzRhYWY0NzYzNGM2YWI2MjM5NmM4YjYyMjdlYTcy
OTg4Y2FlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2Uy
L3VuaWZvcm1zL2dsLXVuaWZvcm0tYXJyYXlzLXN1Yi1zb3VyY2UuaHRtbApAQCAtMCwwICsxLDE3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBnbC11bmlmb3Jt
LWFycmF5cy1zdWItc291cmNlLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJr
aXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3VuaWZvcm1zL2dsLXVuaWZvcm0tYXJy
YXlzLXN1Yi1zb3VyY2UuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UyL3VuaWZvcm1zL2dsLXVuaWZvcm0tYXJyYXlzLXN1Yi1zb3VyY2UuaHRtbDwvYT4K
KzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UyL3VuaWZvcm1zL2dsLXVuaWZvcm0tYXJyYXlzLXN1Yi1zb3Vy
Y2UuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2
IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3VuaWZv
cm1zL2dsLXVuaWZvcm0tYXJyYXlzLXN1Yi1zb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi91bmlmb3Jtcy9nbC11bmlm
b3JtLWFycmF5cy1zdWItc291cmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc4MGE3YmEwMWFkY2I3N2E0
YTQ5OWY2Njk5MDExMDU3MjE4NDRkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi91bmlmb3Jtcy9nbC11
bmlmb3JtLWFycmF5cy1zdWItc291cmNlLmh0bWwKQEAgLTAsMCArMSw0MDQgQEAKKzwhLS0KK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIHVuaWZv
cm0gYXJyYXkgQ29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZh
cyBpZD0iZXhhbXBsZSIgd2lkdGg9IjIiIGhlaWdodD0iMiI+IDwvY2FudmFzPgorPHNjcmlwdCBp
ZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPiN2ZXJzaW9uIDMwMCBlcworaW4g
dmVjNCBhX3Bvc2l0aW9uOwordm9pZCBtYWluKCkgeworICBnbF9Qb3NpdGlvbiA9IGFfcG9zaXRp
b247Cit9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIv
eC1mcmFnbWVudCI+I3ZlcnNpb24gMzAwIGVzCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKK3Vu
aWZvcm0gJCh0eXBlKSBjb2xvclszXTsKK291dCB2ZWM0IG15RnJhZ0NvbG9yOwordm9pZCBtYWlu
KCkgeworICBteUZyYWdDb2xvciA9IHZlYzQoY29sb3JbMF0kKGVsZW0pLCBjb2xvclsxXSQoZWxl
bSksIGNvbG9yWzJdJChlbGVtKSwgMSk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0
cmljdCI7CitkZXNjcmlwdGlvbigpOworZGVidWcoIiIpOwordmFyIHd0dSA9IFdlYkdMVGVzdFV0
aWxzOwordmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIsIHVuZGVmaW5lZCwg
Mik7CisKK3ZhciB2U3JjID0gd3R1LmdldFNjcmlwdCgidnNoYWRlciIpOwordmFyIGZUZW1wbGF0
ZSA9IHd0dS5nZXRTY3JpcHQoImZzaGFkZXIiKTsKKworLy8gfGNvbG9yfCBpcyBkZWZpbmVkIGlu
IGZyYWdtZW50IHNoYWRlciBhcyBhbiBhcnJheSBvZiAzIGVsZW1lbnRzLgordmFyIHVuaWZvcm1B
cnJheVNpemUgPSAzOwordmFyIGluaXRpYWxVbmlmb3JtVmFsdWUgPSA5OTsKKwordmFyIHR5cGVJ
bmZvcyA9IFsKKyAgeyB0eXBlOiAnZmxvYXQnLAorICAgIHNldHRlcjogJ3VuaWZvcm0xZnYnLAor
ICAgIGVsZW06ICcnLAorICAgIG51bUVsZW1lbnRzUGVyVHlwZTogMSwKKyAgICBzcmNWYWx1ZXM6
IFsxNiwgMTVdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXQ6IFswLCAwLCAxNiwgMTVdLAorICAg
IHNyY1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGg6IFswLCAwLCAxNiwgMTUsIDBdLAorICAgIHNy
Y09mZnNldDogMiwKKyAgfSwKKyAgeyB0eXBlOiAnaW50JywKKyAgICBzZXR0ZXI6ICd1bmlmb3Jt
MWl2JywKKyAgICBlbGVtOiAnJywKKyAgICBudW1FbGVtZW50c1BlclR5cGU6IDEsCisgICAgc3Jj
VmFsdWVzOiBbMTYsIDE1XSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0OiBbMCwgMCwgMTYsIDE1
XSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0QW5kTGVuZ3RoOiBbMCwgMCwgMTYsIDE1LCAwXSwK
KyAgICBzcmNPZmZzZXQ6IDIsCisgIH0sCisgIHsgdHlwZTogJ3VpbnQnLAorICAgIHNldHRlcjog
J3VuaWZvcm0xdWl2JywKKyAgICBlbGVtOiAnJywKKyAgICBudW1FbGVtZW50c1BlclR5cGU6IDEs
CisgICAgc3JjVmFsdWVzOiBbMTYsIDE1XSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0OiBbMCwg
MCwgMTYsIDE1XSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0QW5kTGVuZ3RoOiBbMCwgMCwgMTYs
IDE1LCAwXSwKKyAgICBzcmNPZmZzZXQ6IDIsCisgIH0sCisgIHsgdHlwZTogJ3ZlYzInLAorICAg
IHNldHRlcjogJ3VuaWZvcm0yZnYnLAorICAgIGVsZW06ICdbMV0nLAorICAgIG51bUVsZW1lbnRz
UGVyVHlwZTogMiwKKyAgICBzcmNWYWx1ZXM6IFsxNiwgMTUsIDE0LCAxM10sCisgICAgc3JjVmFs
dWVzV2l0aE9mZnNldDogWzAsIDE2LCAxNSwgMTQsIDEzXSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zm
c2V0QW5kTGVuZ3RoOiBbMCwgMTYsIDE1LCAxNCwgMTMsIDBdLAorICAgIHNyY09mZnNldDogMSwK
KyAgfSwKKyAgeyB0eXBlOiAnaXZlYzInLAorICAgIHNldHRlcjogJ3VuaWZvcm0yaXYnLAorICAg
IGVsZW06ICdbMV0nLAorICAgIG51bUVsZW1lbnRzUGVyVHlwZTogMiwKKyAgICBzcmNWYWx1ZXM6
IFsxNiwgMTUsIDE0LCAxM10sCisgICAgc3JjVmFsdWVzV2l0aE9mZnNldDogWzAsIDE2LCAxNSwg
MTQsIDEzXSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0QW5kTGVuZ3RoOiBbMCwgMTYsIDE1LCAx
NCwgMTMsIDBdLAorICAgIHNyY09mZnNldDogMSwKKyAgfSwKKyAgeyB0eXBlOiAndXZlYzInLAor
ICAgIHNldHRlcjogJ3VuaWZvcm0ydWl2JywKKyAgICBlbGVtOiAnWzFdJywKKyAgICBudW1FbGVt
ZW50c1BlclR5cGU6IDIsCisgICAgc3JjVmFsdWVzOiBbMTYsIDE1LCAxNCwgMTNdLAorICAgIHNy
Y1ZhbHVlc1dpdGhPZmZzZXQ6IFswLCAxNiwgMTUsIDE0LCAxM10sCisgICAgc3JjVmFsdWVzV2l0
aE9mZnNldEFuZExlbmd0aDogWzAsIDE2LCAxNSwgMTQsIDEzLCAwXSwKKyAgICBzcmNPZmZzZXQ6
IDEsCisgIH0sCisgIHsgdHlwZTogJ3ZlYzMnLAorICAgIHNldHRlcjogJ3VuaWZvcm0zZnYnLAor
ICAgIGVsZW06ICdbMl0nLAorICAgIG51bUVsZW1lbnRzUGVyVHlwZTogMywKKyAgICBzcmNWYWx1
ZXM6IFsxNiwgMTUsIDE0LCAxMywgMTIsIDExXSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0OiBb
MCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMV0sCisgICAgc3JjVmFsdWVzV2l0aE9mZnNldEFuZExl
bmd0aDogWzAsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDAsIDBdLAorICAgIHNyY09mZnNldDog
MSwKKyAgfSwKKyAgeyB0eXBlOiAnaXZlYzMnLAorICAgIHNldHRlcjogJ3VuaWZvcm0zaXYnLAor
ICAgIGVsZW06ICdbMl0nLAorICAgIG51bUVsZW1lbnRzUGVyVHlwZTogMywKKyAgICBzcmNWYWx1
ZXM6IFsxNiwgMTUsIDE0LCAxMywgMTIsIDExXSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0OiBb
MCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMV0sCisgICAgc3JjVmFsdWVzV2l0aE9mZnNldEFuZExl
bmd0aDogWzAsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDAsIDBdLAorICAgIHNyY09mZnNldDog
MSwKKyAgfSwKKyAgeyB0eXBlOiAndXZlYzMnLAorICAgIHNldHRlcjogJ3VuaWZvcm0zdWl2JywK
KyAgICBlbGVtOiAnWzJdJywKKyAgICBudW1FbGVtZW50c1BlclR5cGU6IDMsCisgICAgc3JjVmFs
dWVzOiBbMTYsIDE1LCAxNCwgMTMsIDEyLCAxMV0sCisgICAgc3JjVmFsdWVzV2l0aE9mZnNldDog
WzAsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTFdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXRBbmRM
ZW5ndGg6IFswLCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAwLCAwXSwKKyAgICBzcmNPZmZzZXQ6
IDEsCisgIH0sCisgIHsgdHlwZTogJ3ZlYzQnLAorICAgIHNldHRlcjogJ3VuaWZvcm00ZnYnLAor
ICAgIGVsZW06ICdbM10nLAorICAgIG51bUVsZW1lbnRzUGVyVHlwZTogNCwKKyAgICBzcmNWYWx1
ZXM6IFsxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOV0sCisgICAgc3JjVmFsdWVzV2l0aE9m
ZnNldDogWzAsIDAsIDAsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5XSwKKyAgICBzcmNW
YWx1ZXNXaXRoT2Zmc2V0QW5kTGVuZ3RoOiBbMCwgMCwgMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAx
MSwgMTAsIDksIDBdLAorICAgIHNyY09mZnNldDogMywKKyAgfSwKKyAgeyB0eXBlOiAnaXZlYzQn
LAorICAgIHNldHRlcjogJ3VuaWZvcm00aXYnLAorICAgIGVsZW06ICdbM10nLAorICAgIG51bUVs
ZW1lbnRzUGVyVHlwZTogNCwKKyAgICBzcmNWYWx1ZXM6IFsxNiwgMTUsIDE0LCAxMywgMTIsIDEx
LCAxMCwgOV0sCisgICAgc3JjVmFsdWVzV2l0aE9mZnNldDogWzAsIDAsIDAsIDE2LCAxNSwgMTQs
IDEzLCAxMiwgMTEsIDEwLCA5XSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0QW5kTGVuZ3RoOiBb
MCwgMCwgMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDBdLAorICAgIHNyY09mZnNl
dDogMywKKyAgfSwKKyAgeyB0eXBlOiAndXZlYzQnLAorICAgIHNldHRlcjogJ3VuaWZvcm00dWl2
JywKKyAgICBlbGVtOiAnWzNdJywKKyAgICBudW1FbGVtZW50c1BlclR5cGU6IDQsCisgICAgc3Jj
VmFsdWVzOiBbMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDldLAorICAgIHNyY1ZhbHVlc1dp
dGhPZmZzZXQ6IFswLCAwLCAwLCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOV0sCisgICAg
c3JjVmFsdWVzV2l0aE9mZnNldEFuZExlbmd0aDogWzAsIDAsIDAsIDE2LCAxNSwgMTQsIDEzLCAx
MiwgMTEsIDEwLCA5LCAwXSwKKyAgICBzcmNPZmZzZXQ6IDMsCisgIH0sCisKKyAgLy8gTWF0cml4
CisgIHsgdHlwZTogJ21hdDInLAorICAgIHNldHRlcjogJ3VuaWZvcm1NYXRyaXgyZnYnLAorICAg
IGVsZW06ICdbMV1bMV0nLAorICAgIG51bUVsZW1lbnRzUGVyVHlwZTogNCwKKyAgICBzcmNWYWx1
ZXM6IFsxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOV0sCisgICAgc3JjVmFsdWVzV2l0aE9m
ZnNldDogWzAsIDAsIDAsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5XSwKKyAgICBzcmNW
YWx1ZXNXaXRoT2Zmc2V0QW5kTGVuZ3RoOiBbMCwgMCwgMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAx
MSwgMTAsIDksIDBdLAorICAgIHNyY09mZnNldDogMywKKyAgfSwKKyAgeyB0eXBlOiAnbWF0Mycs
CisgICAgc2V0dGVyOiAndW5pZm9ybU1hdHJpeDNmdicsCisgICAgZWxlbTogJ1syXVsyXScsCisg
ICAgbnVtRWxlbWVudHNQZXJUeXBlOiA5LAorICAgIHNyY1ZhbHVlczogWzE2LCAxNSwgMTQsIDEz
LCAxMiwgMTEsIDEwLCA5LCA4XSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0OiBbMCwgMCwgMCwg
MTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDhdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZz
ZXRBbmRMZW5ndGg6IFswLCAwLCAwLCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwg
MF0sCisgICAgc3JjT2Zmc2V0OiAzLAorICB9LAorICB7IHR5cGU6ICdtYXQ0JywKKyAgICBzZXR0
ZXI6ICd1bmlmb3JtTWF0cml4NGZ2JywKKyAgICBlbGVtOiAnWzNdWzNdJywKKyAgICBudW1FbGVt
ZW50c1BlclR5cGU6IDE2LAorICAgIHNyY1ZhbHVlczogWzE2LCAxNSwgMTQsIDEzLCAxMiwgMTEs
IDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxXSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0
OiBbMCwgMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMs
IDIsIDFdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGg6IFswLCAwLCAxNiwgMTUs
IDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCwgMCwgMCwg
MF0sCisgICAgc3JjT2Zmc2V0OiAyLAorICB9LAorICB7IHR5cGU6ICdtYXQyeDMnLAorICAgIHNl
dHRlcjogJ3VuaWZvcm1NYXRyaXgyeDNmdicsCisgICAgZWxlbTogJ1sxXVsyXScsCisgICAgbnVt
RWxlbWVudHNQZXJUeXBlOiA2LAorICAgIHNyY1ZhbHVlczogWzE2LCAxNSwgMTQsIDEzLCAxMiwg
MTEsIDEwLCA5LCA4LCA3LCA2LCA1XSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0OiBbMCwgMCwg
MCwgMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDVdLAorICAgIHNy
Y1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGg6IFswLCAwLCAwLCAwLCAxNiwgMTUsIDE0LCAxMywg
MTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgMCwgMF0sCisgICAgc3JjT2Zmc2V0OiA0LAorICB9
LAorICB7IHR5cGU6ICdtYXQzeDInLAorICAgIHNldHRlcjogJ3VuaWZvcm1NYXRyaXgzeDJmdics
CisgICAgZWxlbTogJ1syXVsxXScsCisgICAgbnVtRWxlbWVudHNQZXJUeXBlOiA2LAorICAgIHNy
Y1ZhbHVlczogWzE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1XSwKKyAg
ICBzcmNWYWx1ZXNXaXRoT2Zmc2V0OiBbMCwgMCwgMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwg
MTAsIDksIDgsIDcsIDYsIDVdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGg6IFsw
LCAwLCAwLCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgMCwgMCwg
MF0sCisgICAgc3JjT2Zmc2V0OiAzLAorICB9LAorICB7IHR5cGU6ICdtYXQyeDQnLAorICAgIHNl
dHRlcjogJ3VuaWZvcm1NYXRyaXgyeDRmdicsCisgICAgZWxlbTogJ1sxXVszXScsCisgICAgbnVt
RWxlbWVudHNQZXJUeXBlOiA4LAorICAgIHNyY1ZhbHVlczogWzE2LCAxNSwgMTQsIDEzLCAxMiwg
MTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxXSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zm
c2V0OiBbMCwgMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQs
IDMsIDIsIDFdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGg6IFswLCAwLCAxNiwg
MTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCwgMCwg
MCwgMF0sCisgICAgc3JjT2Zmc2V0OiAyLAorICB9LAorICB7IHR5cGU6ICdtYXQ0eDInLAorICAg
IHNldHRlcjogJ3VuaWZvcm1NYXRyaXg0eDJmdicsCisgICAgZWxlbTogJ1szXVsxXScsCisgICAg
bnVtRWxlbWVudHNQZXJUeXBlOiA4LAorICAgIHNyY1ZhbHVlczogWzE2LCAxNSwgMTQsIDEzLCAx
MiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxXSwKKyAgICBzcmNWYWx1ZXNXaXRo
T2Zmc2V0OiBbMCwgMCwgMCwgMCwgMCwgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgs
IDcsIDYsIDUsIDQsIDMsIDIsIDFdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGg6
IFswLCAwLCAwLCAwLCAwLCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwg
NSwgNCwgMywgMiwgMSwgMCwgMCwgMF0sCisgICAgc3JjT2Zmc2V0OiA1LAorICB9LAorICB7IHR5
cGU6ICdtYXQzeDQnLAorICAgIHNldHRlcjogJ3VuaWZvcm1NYXRyaXgzeDRmdicsCisgICAgZWxl
bTogJ1syXVszXScsCisgICAgbnVtRWxlbWVudHNQZXJUeXBlOiAxMiwKKyAgICBzcmNWYWx1ZXM6
IFsxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNV0sCisgICAgc3JjVmFs
dWVzV2l0aE9mZnNldDogWzAsIDAsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3
LCA2LCA1XSwKKyAgICBzcmNWYWx1ZXNXaXRoT2Zmc2V0QW5kTGVuZ3RoOiBbMCwgMCwgMTYsIDE1
LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDAsIDAsIDAsIDBdLAorICAgIHNy
Y09mZnNldDogMiwKKyAgfSwKKyAgeyB0eXBlOiAnbWF0NHgzJywKKyAgICBzZXR0ZXI6ICd1bmlm
b3JtTWF0cml4NHgzZnYnLAorICAgIGVsZW06ICdbM11bMl0nLAorICAgIG51bUVsZW1lbnRzUGVy
VHlwZTogMTIsCisgICAgc3JjVmFsdWVzOiBbMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDks
IDgsIDcsIDYsIDVdLAorICAgIHNyY1ZhbHVlc1dpdGhPZmZzZXQ6IFswLCAwLCAxNiwgMTUsIDE0
LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNV0sCisgICAgc3JjVmFsdWVzV2l0aE9mZnNl
dEFuZExlbmd0aDogWzAsIDAsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2
LCA1LCAwLCAwLCAwLCAwXSwKKyAgICBzcmNPZmZzZXQ6IDIsCisgIH0sCisKK107CisKK2Z1bmN0
aW9uIGNoZWNrVW5pZm9ybVZhbHVlcyhwcm9ncmFtLCB0eXBlSW5mbywgdXNlSW5pdGlhbFZhbHVl
cykgeworICB2YXIgbnVtU3JjVmFsdWVzID0gdHlwZUluZm8uc3JjVmFsdWVzLmxlbmd0aCAvIHR5
cGVJbmZvLm51bUVsZW1lbnRzUGVyVHlwZTsKKyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHVuaWZv
cm1BcnJheVNpemU7ICsraWkpIHsKKyAgICB2YXIgZXhwZWN0ZWRWYWx1ZXM7CisgICAgaWYgKHVz
ZUluaXRpYWxWYWx1ZXMgfHwgaWkgPj0gbnVtU3JjVmFsdWVzKSB7CisgICAgICBleHBlY3RlZFZh
bHVlcyA9IG5ldyBBcnJheSh0eXBlSW5mby5udW1FbGVtZW50c1BlclR5cGUpOworICAgICAgZm9y
ICh2YXIgamogPSAwOyBqaiA8IHR5cGVJbmZvLm51bUVsZW1lbnRzUGVyVHlwZTsgKytqaikgewor
ICAgICAgICBleHBlY3RlZFZhbHVlc1tqal0gPSBpbml0aWFsVW5pZm9ybVZhbHVlOworICAgICAg
fQorICAgIH0gZWxzZSB7CisgICAgICBleHBlY3RlZFZhbHVlcyA9IHR5cGVJbmZvLnNyY1ZhbHVl
cy5zbGljZSgKKyAgICAgICAgICB0eXBlSW5mby5udW1FbGVtZW50c1BlclR5cGUgKiBpaSwgdHlw
ZUluZm8ubnVtRWxlbWVudHNQZXJUeXBlICogKGlpICsgMSkpOworICAgIH0KKyAgICB2YXIgZWxl
bUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAiY29sb3JbIiArIGlpICsgIl0i
KTsKKyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICAgImNh
biBnZXQgbG9jYXRpb24gb2YgZWxlbWVudCAiICsgaWkgKyAiIG9mIGFycmF5IGZyb20gZ2wuZ2V0
VW5pZm9ybUxvY2F0aW9uIik7CisgICAgdmFyIHZhbHVlID0gZ2wuZ2V0VW5pZm9ybShwcm9ncmFt
LCBlbGVtTG9jKTsKKyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAg
ICAgICAgImNhbiBnZXQgdmFsdWUgb2YgZWxlbWVudCAiICsgaWkgKyAiIG9mIGFycmF5IGZyb20g
Z2wuZ2V0VW5pZm9ybSIpOworICAgIHZhciBlcXVhbCA9IHRydWU7CisgICAgaWYgKHZhbHVlID09
PSBudWxsKSB7CisgICAgICBlcXVhbCA9IGZhbHNlOworICAgIH0gZWxzZSBpZiAodHlwZUluZm8u
bnVtRWxlbWVudHNQZXJUeXBlID09IDEpIHsKKyAgICAgIGlmICh2YWx1ZSAhPSBleHBlY3RlZFZh
bHVlc1swXSkgeworICAgICAgICBlcXVhbCA9IGZhbHNlOworICAgICAgfQorICAgIH0gZWxzZSB7
CisgICAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgdHlwZUluZm8ubnVtRWxlbWVudHNQZXJUeXBl
OyArK2pqKSB7CisgICAgICAgIGlmICh2YWx1ZVtqal0gIT0gZXhwZWN0ZWRWYWx1ZXNbampdKSB7
CisgICAgICAgICAgZXF1YWwgPSBmYWxzZTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgfQorICAgIH0KKyAgICBhc3NlcnRNc2coZXF1YWwsCisgICAgICAgICJ2YWx1ZSBwdXQg
aW4gKCIgKyBleHBlY3RlZFZhbHVlcyArICIpIG1hdGNoZXMgdmFsdWUgcHVsbGVkIG91dCAoIiAr
CisgICAgICAgICh2YWx1ZSA9PT0gbnVsbCA/ICJudWxsIiA6IHZhbHVlKSArICIpIik7CisgIH0K
K30KKworZm9yICh2YXIgdHQgPSAwOyB0dCA8IHR5cGVJbmZvcy5sZW5ndGg7ICsrdHQpIHsKKyAg
dmFyIHR5cGVJbmZvID0gdHlwZUluZm9zW3R0XTsKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiY2hl
Y2sgIiArIHR5cGVJbmZvLnR5cGUpOworICB2YXIgc3JjTGVuZ3RoID0gdHlwZUluZm8uc3JjVmFs
dWVzLmxlbmd0aDsKKyAgdmFyIGZTcmMgPSB3dHUucmVwbGFjZVBhcmFtcyhmVGVtcGxhdGUsIHR5
cGVJbmZvKTsKKyAgdmFyIHByb2dyYW0gPSB3dHUubG9hZFByb2dyYW0oZ2wsIHZTcmMsIGZTcmMp
OworICBpZiAoIXByb2dyYW0pIHsKKyAgICB0ZXN0RmFpbGVkKCJGYWlsZWQgdG8gY3JlYXRlIHRo
ZSBwcm9ncmFtIik7CisgICAgY29udGludWU7CisgIH0KKyAgZ2wudXNlUHJvZ3JhbShwcm9ncmFt
KTsKKworICB2YXIgbG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJjb2xvclsw
XSIpOworICBpZiAoIWxvYykgeworICAgIHRlc3RGYWlsZWQoIkZhaWxlZCB0byBvYnRhaW4gdGhl
IGxvY2F0aW9uIG9mIHRoZSB1bmlmb3JtIik7CisgICAgY29udGludWU7CisgIH0KKworICBmdW5j
dGlvbiBzZXR0ZXIobG9jLCBhcnJheSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpIHsKKyAgICB2YXIg
aXNNYXRyaXggPSAodHlwZUluZm8uc2V0dGVyLmluZGV4T2YoIk1hdHJpeCIpID09IDcpOworICAg
IGlmICh0eXBlb2Yoc3JjT2Zmc2V0KSAhPSAndW5kZWZpbmVkJykgeworICAgICAgaWYgKGlzTWF0
cml4KSB7CisgICAgICAgIGdsW3R5cGVJbmZvLnNldHRlcl0obG9jLCBnbC5GQUxTRSwgYXJyYXks
IHNyY09mZnNldCwgc3JjTGVuZ3RoKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGdsW3R5cGVJ
bmZvLnNldHRlcl0obG9jLCBhcnJheSwgc3JjT2Zmc2V0LCBzcmNMZW5ndGgpOworICAgICAgfQor
ICAgIH0gZWxzZSBpZiAodHlwZW9mKHNyY0xlbmd0aCkgIT0gJ3VuZGVmaW5lZCcpIHsKKyAgICAg
IGlmIChpc01hdHJpeCkgeworICAgICAgICBnbFt0eXBlSW5mby5zZXR0ZXJdKGxvYywgZ2wuRkFM
U0UsIGFycmF5LCBzcmNPZmZzZXQpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgZ2xbdHlwZUlu
Zm8uc2V0dGVyXShsb2MsIGFycmF5LCBzcmNPZmZzZXQpOworICAgICAgfQorICAgIH0gZWxzZSB7
CisgICAgICBpZiAoaXNNYXRyaXgpIHsKKyAgICAgICAgZ2xbdHlwZUluZm8uc2V0dGVyXShsb2Ms
IGdsLkZBTFNFLCBhcnJheSk7CisgICAgICB9IGVsc2UgeworICAgICAgICBnbFt0eXBlSW5mby5z
ZXR0ZXJdKGxvYywgYXJyYXkpOworICAgICAgfQorICAgIH0KKyAgfQorCisgIC8vIEluaXRpYWxp
emUgdW5pZm9ybXMgdG8gdmFsdWUgOTkgYW5kIHZlcmlmeSBpdC4KKyAgdmFyIGluaXRWYWx1ZXMg
PSBuZXcgQXJyYXkodHlwZUluZm8ubnVtRWxlbWVudHNQZXJUeXBlICogdW5pZm9ybUFycmF5U2l6
ZSk7CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCB0eXBlSW5mby5udW1FbGVtZW50c1BlclR5cGUg
KiB1bmlmb3JtQXJyYXlTaXplOyArK2lpKSB7CisgICAgaW5pdFZhbHVlc1tpaV0gPSBpbml0aWFs
VW5pZm9ybVZhbHVlOworICB9CisgIHNldHRlcihsb2MsIGluaXRWYWx1ZXMpOworICB3dHUuZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICJubyBlcnJvciBmcm9tIGluaXRp
YWxpemluZyB1bmlmb3JtcyB0byA5OSIpOworICBjaGVja1VuaWZvcm1WYWx1ZXMocHJvZ3JhbSwg
dHlwZUluZm8sIHRydWUpOworCisgIHNldHRlcihsb2MsIHR5cGVJbmZvLnNyY1ZhbHVlcyk7Cisg
IHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgImNhbiBzZXQgYW4g
YXJyYXkgb2YgdW5pZm9ybXMgd2l0aCBnbC4iICsgdHlwZUluZm8uc2V0dGVyICsKKyAgICAgICIg
d2l0aG91dCBzcmNPZmZzZXQgLyBzcmNMZW5ndGgiKTsKKyAgY2hlY2tVbmlmb3JtVmFsdWVzKHBy
b2dyYW0sIHR5cGVJbmZvKTsKKworICBzZXR0ZXIobG9jLCB0eXBlSW5mby5zcmNWYWx1ZXMsIDAp
OworICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICJjYW4gc2V0
IGFuIGFycmF5IG9mIHVuaWZvcm1zIHdpdGggZ2wuIiArIHR5cGVJbmZvLnNldHRlciArCisgICAg
ICAiIHdpdGggc3JjT2Zmc2V0ID0gMCIpOworICBjaGVja1VuaWZvcm1WYWx1ZXMocHJvZ3JhbSwg
dHlwZUluZm8pOworCisgIHNldHRlcihsb2MsIHR5cGVJbmZvLnNyY1ZhbHVlcywgMCwgMCk7Cisg
IHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgImNhbiBzZXQgYW4g
YXJyYXkgb2YgdW5pZm9ybXMgd2l0aCBnbC4iICsgdHlwZUluZm8uc2V0dGVyICsKKyAgICAgICIg
d2l0aCBzcmNPZmZzZXQgPSAwIC8gc3JjTGVuZ3RoID0gMCIpOworICBjaGVja1VuaWZvcm1WYWx1
ZXMocHJvZ3JhbSwgdHlwZUluZm8pOworCisgIHNldHRlcihsb2MsIHR5cGVJbmZvLnNyY1ZhbHVl
c1dpdGhPZmZzZXQsIHR5cGVJbmZvLnNyY09mZnNldCk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SLAorICAgICAgImNhbiBzZXQgYW4gYXJyYXkgb2YgdW5pZm9ybXMgd2l0
aCBnbC4iICsgdHlwZUluZm8uc2V0dGVyICsKKyAgICAgICIgd2l0aCBzcmNPZmZzZXQgPSAiICsg
dHlwZUluZm8uc3JjT2Zmc2V0KTsKKyAgY2hlY2tVbmlmb3JtVmFsdWVzKHByb2dyYW0sIHR5cGVJ
bmZvKTsKKworICBzZXR0ZXIobG9jLCB0eXBlSW5mby5zcmNWYWx1ZXNXaXRoT2Zmc2V0LCB0eXBl
SW5mby5zcmNPZmZzZXQsIDApOworICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
UiwKKyAgICAgICJjYW4gc2V0IGFuIGFycmF5IG9mIHVuaWZvcm1zIHdpdGggZ2wuIiArIHR5cGVJ
bmZvLnNldHRlciArCisgICAgICAiIHdpdGggc3JjT2Zmc2V0ID0gIiArIHR5cGVJbmZvLnNyY09m
ZnNldCArICIgLyBzcmNMZW5ndGggPSAwIik7CisgIGNoZWNrVW5pZm9ybVZhbHVlcyhwcm9ncmFt
LCB0eXBlSW5mbyk7CisKKyAgc2V0dGVyKGxvYywgdHlwZUluZm8uc3JjVmFsdWVzV2l0aE9mZnNl
dEFuZExlbmd0aCwgdHlwZUluZm8uc3JjT2Zmc2V0LCBzcmNMZW5ndGgpOworICB3dHUuZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICJjYW4gc2V0IGFuIGFycmF5IG9mIHVu
aWZvcm1zIHdpdGggZ2wuIiArIHR5cGVJbmZvLnNldHRlciArCisgICAgICAiIHdpdGggc3JjT2Zm
c2V0ID0gIiArIHR5cGVJbmZvLnNyY09mZnNldCArICIgLyBzcmNMZW5ndGggPSAiICsgc3JjTGVu
Z3RoKTsKKyAgY2hlY2tVbmlmb3JtVmFsdWVzKHByb2dyYW0sIHR5cGVJbmZvKTsKKworICB3dHUu
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIm5vIGVycm9ycyIpOworCisgIC8vIE5l
Z2F0aXZlIHRlc3RzCisgIHNldHRlcihsb2MsIHR5cGVJbmZvLnNyY1ZhbHVlcywgdHlwZUluZm8u
c3JjVmFsdWVzLmxlbmd0aCArIDEpOworICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZB
TElEX1ZBTFVFLAorICAgICAgImdsLiIgKyB0eXBlSW5mby5zZXR0ZXIgKyAiIHdpdGggc3JjT2Zm
c2V0IG91dC1vZi1ib3VuZHMiKTsKKworICBzZXR0ZXIobG9jLCB0eXBlSW5mby5zcmNWYWx1ZXMs
IDAsIHR5cGVJbmZvLnNyY1ZhbHVlcy5sZW5ndGggKyAxKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwKKyAgICAgICJnbC4iICsgdHlwZUluZm8uc2V0dGVyICsg
IiB3aXRoIHNyY0xlbmd0aCBvdXQtb2YtYm91bmRzIik7CisKKyAgc2V0dGVyKGxvYywgdHlwZUlu
Zm8uc3JjVmFsdWVzLCB0eXBlSW5mby5zcmNPZmZzZXQsIHNyY0xlbmd0aCk7CisgIHd0dS5nbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsCisgICAgICAiZ2wuIiArIHR5cGVJbmZv
LnNldHRlciArICIgd2l0aCBzcmNPZmZzZXQgKyBzcmNMZW5ndGggb3V0LW9mLWJvdW5kcyIpOwor
CisgIHNldHRlcihsb2MsIHR5cGVJbmZvLnNyY1ZhbHVlcywgdHlwZUluZm8uc3JjVmFsdWVzLmxl
bmd0aCk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsCisgICAg
ICAiZ2wuIiArIHR5cGVJbmZvLnNldHRlciArICIgd2l0aCAwIGRhdGEiKTsKKworICBpZiAodHlw
ZUluZm8ubnVtRWxlbWVudHNQZXJUeXBlID4gMSkgeworICAgIHNldHRlcihsb2MsIHR5cGVJbmZv
LnNyY1ZhbHVlc1dpdGhPZmZzZXRBbmRMZW5ndGgsIHR5cGVJbmZvLnNyY09mZnNldCk7CisgICAg
d3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwKKyAgICAgICAgImdsLiIg
KyB0eXBlSW5mby5zZXR0ZXIgKyAiIHdpdGggYXJyYXkgbGVuZ3RoIG1pbnVzIHNyY09mZnNldCBu
b3QgbXVsdGlwbGUgb2YgIiArIHR5cGVJbmZvLnR5cGUpOworICB9Cit9CisKK2RlYnVnKCIiKTsK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>