<?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>37818</bug_id>
          
          <creation_ts>2010-04-19 13:14:45 -0700</creation_ts>
          <short_desc>Auto-generate WebGLRenderingContext overloads in V8</short_desc>
          <delta_ts>2010-04-23 02:42:16 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yaar Schnitman">yaar</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>214190</commentid>
    <comment_count>0</comment_count>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-04-19 13:14:45 -0700</bug_when>
    <thetext>Auto-generate WebGLRenderingContext overloads in V8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214196</commentid>
    <comment_count>1</comment_count>
      <attachid>53712</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-04-19 13:18:40 -0700</bug_when>
    <thetext>Created attachment 53712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214199</commentid>
    <comment_count>2</comment_count>
      <attachid>53712</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-04-19 13:19:32 -0700</bug_when>
    <thetext>Comment on attachment 53712
Patch

Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214206</commentid>
    <comment_count>3</comment_count>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-04-19 13:24:11 -0700</bug_when>
    <thetext>Ken, this is still work in progress, but I have some questions:
1. Two WebGL tests fail on seemingly unrelated reasons (see 2 attachments). Any clues why would that happen?
2. The ExceptionCode argument seems not to be used really in texImage2D and texSubImage2D. Am I right? If so, this patch could be made much smaller.
3. Any other overloads I&apos;m missing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214269</commentid>
    <comment_count>4</comment_count>
      <attachid>53724</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-04-19 15:01:11 -0700</bug_when>
    <thetext>Created attachment 53724
Why fails?

null-object-behaviour.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214270</commentid>
    <comment_count>5</comment_count>
      <attachid>53725</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-04-19 15:02:04 -0700</bug_when>
    <thetext>Created attachment 53725
Why fail too?

uniform-location.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214826</commentid>
    <comment_count>6</comment_count>
      <attachid>53712</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-04-20 12:03:48 -0700</bug_when>
    <thetext>Comment on attachment 53712
Patch

The update to the texImageTest looks okay but since the JSC custom bindings aren&apos;t changed in this patch I suspect they will start failing when run inside the WebKit build. Have you verified this? If this is the case, then the JSC custom bindings need to be temporarily modified so that the new test passes.

The failures look to me like your LayoutTests directory is out of date with respect to WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216172</commentid>
    <comment_count>7</comment_count>
      <attachid>54111</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-04-22 17:15:02 -0700</bug_when>
    <thetext>Created attachment 54111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216173</commentid>
    <comment_count>8</comment_count>
      <attachid>54111</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-04-22 17:16:16 -0700</bug_when>
    <thetext>Comment on attachment 54111
Patch

Feedback incorporated. All tests succeed on chromium and vanilla webkit. Please cq+ if good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216179</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-04-22 17:30:51 -0700</bug_when>
    <thetext>There is a failure baked in to texImageTest-expected.txt. Either the JSC custom bindings should be modified so that this does not fail, or a FIXME should be added to the test (and another bug filed) to correct this failure in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216230</commentid>
    <comment_count>10</comment_count>
      <attachid>54121</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-04-22 19:43:16 -0700</bug_when>
    <thetext>Created attachment 54121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216231</commentid>
    <comment_count>11</comment_count>
      <attachid>54121</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-04-22 19:44:09 -0700</bug_when>
    <thetext>Comment on attachment 54121
Patch

Added a fixme with link to new bug: https://bugs.webkit.org/show_bug.cgi?id=38024</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216315</commentid>
    <comment_count>12</comment_count>
      <attachid>54121</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-23 00:37:50 -0700</bug_when>
    <thetext>Comment on attachment 54121
Patch

I don&apos;t 100% understand the test change, but I trust you to follow up in the bug you filed.  I love the massive removal of custom code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216351</commentid>
    <comment_count>13</comment_count>
      <attachid>54121</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-23 02:42:11 -0700</bug_when>
    <thetext>Comment on attachment 54121
Patch

Clearing flags on attachment: 54121

Committed r58161: &lt;http://trac.webkit.org/changeset/58161&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216352</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-23 02:42:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53712</attachid>
            <date>2010-04-19 13:18:40 -0700</date>
            <delta_ts>2010-04-22 17:14:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37818-20100419131839.patch</filename>
            <type>text/plain</type>
            <size>41076</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMDhjZWE5Li4wZjIyZTkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDQt
MTkgIFlhYXIgU2Nobml0bWFuICA8eWFhckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXV0by1nZW5lcmF0ZSBXZWJHTFJlbmRl
cmluZ0NvbnRleHQgb3ZlcmxvYWRzIGluIFY4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNzgxOAorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wv
c2NyaXB0LXRlc3RzL3RleEltYWdlVGVzdC5qczogVGVzdCB3YXMgd3Jvbmc6IFBhc3NpbmcgMCB2
YWx1ZSBmb3IgYSBXZWJHTEFycmF5IGFyZ3VtZW50IGluIHRleEltYWdlMkQgc2hvdWxkIHRocm93
IHRoZSBzYW1lIGV4Y2VwdGlvbiBhcyB3aGVuIHBhc3NlZCB0byB0ZXh0U3ViSW1hZ2UyRC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4SW1hZ2VU
ZXN0LWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wNC0xNSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnpp
bW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCZXRoIERha2luLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL3RleElt
YWdlVGVzdC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy90
ZXhJbWFnZVRlc3QuanMKaW5kZXggOGZjYWVlNC4uMWUzZmRjMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL3RleEltYWdlVGVzdC5qcworKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvdGV4SW1hZ2VUZXN0
LmpzCkBAIC0xOCw3ICsxOCw4IEBAIHNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LnRleEltYWdl
MkQoY29udGV4dC5URVhUVVJFXzJELCAwLCBjYW52YXMyZCwgZmFsc2UpIik7CiBzaG91bGRCZVVu
ZGVmaW5lZCgiY29udGV4dC50ZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgdmlkZW8s
IHRydWUsIGZhbHNlKSIpOwogCiBzaG91bGRUaHJvdygiY29udGV4dC50ZXhTdWJJbWFnZTJEKGNv
bnRleHQuVEVYVFVSRV8yRCkiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LnRleFN1Yklt
YWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCAxMCwgMjAsIDAsIDAsIGNvbnRleHQuUkdCQSwg
Y29udGV4dC5VTlNJR05FRF9CWVRFLCAwKSIpOworc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQu
dGV4U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgMCwgMCwgY29udGV4
dC5SR0JBLCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIG51bGwpIik7CitzaG91bGRUaHJvdygiY29u
dGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCAwLCAwLCBj
b250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwgMCkiKTsKIHNob3VsZFRocm93KCJj
b250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCAxMCwgMjAsIDAsIGNv
bnRleHQuVU5TSUdORURfQllURSwgMCkiKTsKIHNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LnRl
eFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCAxMCwgMjAsIGltYWdlRGF0YSwgZmFs
c2UpIik7CiBzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQu
VEVYVFVSRV8yRCwgMCwgMTAsIDIwLCBpbWFnZSkiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2NhbnZhcy93ZWJnbC90ZXhJbWFnZVRlc3QtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvY2FudmFz
L3dlYmdsL3RleEltYWdlVGVzdC1leHBlY3RlZC50eHQKaW5kZXggMDYwNjk2Yi4uZjUzNDJhYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvY2FudmFz
L3dlYmdsL3RleEltYWdlVGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbWFjL2Zhc3QvY2FudmFzL3dlYmdsL3RleEltYWdlVGVzdC1leHBlY3RlZC50
eHQKQEAgLTExLDcgKzExLDggQEAgUEFTUyBjb250ZXh0LnRleEltYWdlMkQoY29udGV4dC5URVhU
VVJFXzJELCAwLCBpbWFnZSkgaXMgdW5kZWZpbmVkLgogUEFTUyBjb250ZXh0LnRleEltYWdlMkQo
Y29udGV4dC5URVhUVVJFXzJELCAwLCBjYW52YXMyZCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KIFBB
U1MgY29udGV4dC50ZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgdmlkZW8sIHRydWUs
IGZhbHNlKSBpcyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0
LlRFWFRVUkVfMkQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMi4KLVBBU1MgY29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwg
MCwgMTAsIDIwLCAwLCAwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwgMCkg
aXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJF
XzJELCAwLCAxMCwgMjAsIDAsIDAsIGNvbnRleHQuUkdCQSwgY29udGV4dC5VTlNJR05FRF9CWVRF
LCBudWxsKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0
LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgMCwgMCwgY29udGV4dC5SR0JBLCBjb250ZXh0LlVOU0lH
TkVEX0JZVEUsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMi4KIFBBU1MgY29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwg
MCwgMTAsIDIwLCAwLCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIDApIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KIFBBU1MgY29udGV4dC50ZXhTdWJJ
bWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCBpbWFnZURhdGEsIGZhbHNlKSBp
cyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVf
MkQsIDAsIDEwLCAyMCwgaW1hZ2UpIGlzIHVuZGVmaW5lZC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmMyNmViOS4uMGRkZjM5NyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTIs
NiArMiwyMCBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAg
ICAgIEF1dG8tZ2VuZXJhdGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IG92ZXJsb2FkcyBpbiBWOAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc4MTgKKwor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDog
QWRkZWQgbWlzc2luZyBvdmVybG9hZHMgZm9yIHRoZSBmb2xsb3dpbmc6LgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKQorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKQorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oOiBBZGRlZCBtaXNzaW5nIG92ZXJsb2Fkcy4K
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsOiBJREwgZGVm
aW5pdGlvbiBvZiBvdmVybG9hZHMuCisKKzIwMTAtMDQtMTkgIFlhYXIgU2Nobml0bWFuICA8eWFh
ckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
ICAgICAgICAgTnVsbCB2YWx1ZSBzaG91bGQgYmUgbGVnaXQgdmFsdWUgZm9yIHdyYXBwZWQgdHlw
ZXMuIFRoaXMgcmVxdWlyZXMgc29tZSBjbGVhbnVwIGluIGNhbnZhcyB3aGljaCB3YXMgbWlzc2lu
ZyBidWlsdC1pbiBudWxsIGFyZ3VtZW50IGNoZWNrczsKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3ODEwCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApp
bmRleCAxYjg5MzZkLi43NWVmZjY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0xMDUs
ODAgKzEwNSw2IEBAIHN0YXRpYyBpbnQqIGpzQXJyYXlUb0ludEFycmF5KHY4OjpIYW5kbGU8djg6
OkFycmF5PiBhcnJheSwgdWludDMyX3QgbGVuKQogICAgIHJldHVybiBkYXRhOwogfQogCi12ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmJ1ZmZlckRhdGFDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLldl
YkdMUmVuZGVyaW5nQ29udGV4dC5idWZmZXJEYXRhKCkiKTsKLQotICAgIC8vIEZvcm1zOgotICAg
IC8vICogYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBXZWJHTEFycmF5IGRhdGEsIEdMZW51bSB1
c2FnZSk7Ci0gICAgLy8gICAtIFNldHMgdGhlIGJ1ZmZlcidzIGRhdGEgZnJvbSB0aGUgZ2l2ZW4g
V2ViR0xBcnJheQotICAgIC8vICogYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBHTHNpemVpcHRy
IHNpemUsIEdMZW51bSB1c2FnZSk7Ci0gICAgLy8gICAtIFNldHMgdGhlIHNpemUgb2YgdGhlIGJ1
ZmZlciB0byB0aGUgZ2l2ZW4gc2l6ZSBpbiBieXRlcwotICAgIGlmIChhcmdzLkxlbmd0aCgpICE9
IDMpIHsKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAg
ICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9Ci0KLSAgICBXZWJH
TFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9O
YXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgYm9vbCBvazsKLSAgICBpbnQgdGFyZ2V0ID0gdG9J
bnQzMihhcmdzWzBdLCBvayk7Ci0gICAgaWYgKCFvaykgewotICAgICAgICBWOFByb3h5OjpzZXRE
T01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRl
cmNlcHRvcigpOwotICAgIH0KLSAgICBpbnQgdXNhZ2UgPSB0b0ludDMyKGFyZ3NbMl0sIG9rKTsK
LSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhf
RVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQot
ICAgIGlmIChhcmdzWzFdLT5Jc0ludDMyKCkpIHsKLSAgICAgICAgaW50IHNpemUgPSB0b0ludDMy
KGFyZ3NbMV0pOwotICAgICAgICBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbkNvZGU7Ci0gICAgICAg
IGNvbnRleHQtPmJ1ZmZlckRhdGEodGFyZ2V0LCBzaXplLCB1c2FnZSwgZXhjZXB0aW9uQ29kZSk7
Ci0gICAgfSBlbHNlIGlmIChWOFdlYkdMQXJyYXk6Okhhc0luc3RhbmNlKGFyZ3NbMV0pKSB7Ci0g
ICAgICAgIFdlYkdMQXJyYXkqIGFycmF5ID0gVjhXZWJHTEFycmF5Ojp0b05hdGl2ZShhcmdzWzFd
LT5Ub09iamVjdCgpKTsKLSAgICAgICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlOwotICAg
ICAgICBjb250ZXh0LT5idWZmZXJEYXRhKHRhcmdldCwgYXJyYXksIHVzYWdlLCBleGNlcHRpb25D
b2RlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lO
VEFYX0VSUik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAg
IH0KLSAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotfQotCi12ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmJ1ZmZlclN1YkRhdGFDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLldlYkdMUmVuZGVyaW5n
Q29udGV4dC5idWZmZXJTdWJEYXRhKCkiKTsKLQotICAgIC8vIEZvcm1zOgotICAgIC8vICogYnVm
ZmVyU3ViRGF0YShHTGVudW0gdGFyZ2V0LCBHTGludHB0ciBvZmZzZXQsIFdlYkdMQXJyYXkgZGF0
YSk7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMykgewotICAgICAgICBWOFByb3h5OjpzZXRE
T01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRl
cmNlcHRvcigpOwotICAgIH0KLQotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9
IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBi
b29sIG9rOwotICAgIGludCB0YXJnZXQgPSB0b0ludDMyKGFyZ3NbMF0sIG9rKTsKLSAgICBpZiAo
IW9rKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAg
ICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQotICAgIGludCBv
ZmZzZXQgPSB0b0ludDMyKGFyZ3NbMV0sIG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4
UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhh
bmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQotICAgIGlmICghVjhXZWJHTEFycmF5OjpIYXNJ
bnN0YW5jZShhcmdzWzJdKSkgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lO
VEFYX0VSUik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAg
IH0KLSAgICBXZWJHTEFycmF5KiBhcnJheSA9IFY4V2ViR0xBcnJheTo6dG9OYXRpdmUoYXJnc1sy
XS0+VG9PYmplY3QoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlOwotICAgIGNv
bnRleHQtPmJ1ZmZlclN1YkRhdGEodGFyZ2V0LCBvZmZzZXQsIGFycmF5LCBleGNlcHRpb25Db2Rl
KTsKLSAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotfQotCiBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHRvVjhPYmplY3QoY29uc3QgV2ViR0xHZXRJbmZvJiBpbmZvKQogewogICAgIHN3
aXRjaCAoaW5mby5nZXRUeXBlKCkpIHsKQEAgLTQ0MywyOTAgKzM2OSw2IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VmVydGV4QXR0cmliQ2FsbGJh
Y2soY29uc3Qgdjg6CiAgICAgcmV0dXJuIGdldE9iamVjdFBhcmFtZXRlcihhcmdzLCBrVmVydGV4
QXR0cmliKTsKIH0KIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojp0ZXhJbWFnZTJEQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKLXsKLSAg
ICBJTkNfU1RBVFMoIkRPTS5XZWJHTFJlbmRlcmluZ0NvbnRleHQudGV4SW1hZ2UyRCgpIik7Ci0K
LSAgICAvLyBDdXJyZW50bHkgc3VwcG9ydGVkIGZvcm1zOgotICAgIC8vICogdm9pZCB0ZXhJbWFn
ZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLAotICAgIC8vICAgICAgICAgICAg
ICAgICAgIGluIEdMaW50IGludGVybmFsZm9ybWF0LAotICAgIC8vICAgICAgICAgICAgICAgICAg
IGluIEdMc2l6ZWkgd2lkdGgsIGluIEdMc2l6ZWkgaGVpZ2h0LCBpbiBHTGludCBib3JkZXIsCi0g
ICAgLy8gICAgICAgICAgICAgICAgICAgaW4gR0xlbnVtIGZvcm1hdCwgaW4gR0xlbnVtIHR5cGUs
IGluIFdlYkdMQXJyYXkgcGl4ZWxzKTsKLSAgICAvLyAqIHZvaWQgdGV4SW1hZ2UyRChpbiBHTGVu
dW0gdGFyZ2V0LCBpbiBHTGludCBsZXZlbCwgaW4gSW1hZ2VEYXRhIHBpeGVscywKLSAgICAvLyAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIEdMYm9vbGVhbiBmbGlwWSwgW09wdGlvbmFs
XSBpbiBHTGJvb2xlYW4gcHJlbXVsaXRwbHlBbHBoYSk7Ci0gICAgLy8gKiB2b2lkIHRleEltYWdl
MkQoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xpbnQgbGV2ZWwsIGluIEhUTUxJbWFnZUVsZW1lbnQg
aW1hZ2UsCi0gICAgLy8gICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBHTGJvb2xlYW4g
ZmxpcFksIFtPcHRpb25hbF0gaW4gR0xib29sZWFuIHByZW11bHRpcGx5QWxwaGEpOwotICAgIC8v
ICogdm9pZCB0ZXhJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBI
VE1MQ2FudmFzRWxlbWVudCBpbWFnZSwKLSAgICAvLyAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWxdIGluIEdMYm9vbGVhbiBmbGlwWSwgW09wdGlvbmFsXSBpbiBHTGJvb2xlYW4gcHJlbXVsdGlw
bHlBbHBoYSk7Ci0gICAgLy8gKiB2b2lkIHRleEltYWdlMkQoaW4gR0xlbnVtIHRhcmdldCwgaW4g
R0xpbnQgbGV2ZWwsIGluIEhUTUxWaWRlb0VsZW1lbnQgaW1hZ2UsCi0gICAgLy8gICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsXSBpbiBHTGJvb2xlYW4gZmxpcFksIFtPcHRpb25hbF0gaW4gR0xi
b29sZWFuIHByZW11bHRpcGx5QWxwaGEpOwotICAgIGlmIChhcmdzLkxlbmd0aCgpICE9IDMgJiYK
LSAgICAgICAgYXJncy5MZW5ndGgoKSAhPSA0ICYmCi0gICAgICAgIGFyZ3MuTGVuZ3RoKCkgIT0g
NSAmJgotICAgICAgICBhcmdzLkxlbmd0aCgpICE9IDkpIHsKLSAgICAgICAgVjhQcm94eTo6c2V0
RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50
ZXJjZXB0b3IoKTsKLSAgICB9Ci0KLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQg
PSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAg
Ym9vbCBvazsKLSAgICBpbnQgdGFyZ2V0ID0gdG9JbnQzMihhcmdzWzBdLCBvayk7Ci0gICAgaWYg
KCFvaykgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0g
ICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KLSAgICBpbnQg
bGV2ZWwgPSB0b0ludDMyKGFyZ3NbMV0sIG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4
UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhh
bmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQotCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPT0gMyB8fAotICAgICAgICBhcmdzLkxlbmd0aCgpID09
IDQgfHwKLSAgICAgICAgYXJncy5MZW5ndGgoKSA9PSA1KSB7Ci0gICAgICAgIGJvb2wgZmxpcFkg
PSBmYWxzZTsKLSAgICAgICAgYm9vbCBwcmVtdWx0aXBseUFscGhhID0gZmFsc2U7Ci0gICAgICAg
IGlmIChhcmdzLkxlbmd0aCgpID49IDQpCi0gICAgICAgICAgICBmbGlwWSA9IGFyZ3NbM10tPkJv
b2xlYW5WYWx1ZSgpOwotICAgICAgICBpZiAoYXJncy5MZW5ndGgoKSA+PSA1KQotICAgICAgICAg
ICAgcHJlbXVsdGlwbHlBbHBoYSA9IGFyZ3NbNF0tPkJvb2xlYW5WYWx1ZSgpOwotCi0gICAgICAg
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmcgPSBhcmdzWzJdOwotICAgICAgICBpZiAoVjhIVE1M
SW1hZ2VFbGVtZW50OjpIYXNJbnN0YW5jZShhcmcpKSB7Ci0gICAgICAgICAgICBIVE1MSW1hZ2VF
bGVtZW50KiBlbGVtZW50ID0gVjhIVE1MSW1hZ2VFbGVtZW50Ojp0b05hdGl2ZSh2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+OjpDYXN0KGFyZykpOwotICAgICAgICAgICAgY29udGV4dC0+dGV4SW1hZ2Uy
RCh0YXJnZXQsIGxldmVsLCBlbGVtZW50LCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwgZWMpOwot
ICAgICAgICB9IGVsc2UgaWYgKFY4SFRNTENhbnZhc0VsZW1lbnQ6Okhhc0luc3RhbmNlKGFyZykp
IHsKLSAgICAgICAgICAgIEhUTUxDYW52YXNFbGVtZW50KiBlbGVtZW50ID0gVjhIVE1MQ2FudmFz
RWxlbWVudDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmcpKTsKLSAg
ICAgICAgICAgIGNvbnRleHQtPnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgZWxlbWVudCwgZmxp
cFksIHByZW11bHRpcGx5QWxwaGEsIGVjKTsKLSAgICAgICAgfSBlbHNlIGlmKFY4SW1hZ2VEYXRh
OjpIYXNJbnN0YW5jZShhcmcpKSB7Ci0gICAgICAgICAgICBJbWFnZURhdGEqIGltYWdlRWxlbWVu
dCA9IFY4SW1hZ2VEYXRhOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFy
ZykpOwotICAgICAgICAgICAgY29udGV4dC0+dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbWFn
ZUVsZW1lbnQsIGZsaXBZLCBwcmVtdWx0aXBseUFscGhhLCBlYyk7Ci0gICAgICAgIH0gZWxzZSBp
ZiAoVjhIVE1MVmlkZW9FbGVtZW50OjpIYXNJbnN0YW5jZShhcmcpKSB7Ci0gICAgICAgICAgICBI
VE1MVmlkZW9FbGVtZW50KiBlbGVtZW50ID0gVjhIVE1MVmlkZW9FbGVtZW50Ojp0b05hdGl2ZSh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZykpOwotICAgICAgICAgICAgY29udGV4dC0+
dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBlbGVtZW50LCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBo
YSwgZWMpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgLy8gRklYTUU6
IGNvbnNpZGVyIGRpZmZlcmVudCAvIGJldHRlciBleGNlcHRpb24gdHlwZS4KLSAgICAgICAgICAg
IFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgICAgIHJldHVy
biBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgICAgICB9Ci0gICAgICAgIC8vIEZhbGwg
dGhyb3VnaAotICAgIH0gZWxzZSBpZiAoYXJncy5MZW5ndGgoKSA9PSA5KSB7Ci0gICAgICAgIGlu
dCBpbnRlcm5hbGZvcm1hdCA9IHRvSW50MzIoYXJnc1syXSwgb2spOwotICAgICAgICBpZiAoIW9r
KSB7Ci0gICAgICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0g
ICAgICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICAgICAgfQot
ICAgICAgICBpbnQgd2lkdGggPSB0b0ludDMyKGFyZ3NbM10sIG9rKTsKLSAgICAgICAgaWYgKCFv
aykgewotICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwot
ICAgICAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgICAgIH0K
LSAgICAgICAgaW50IGhlaWdodCA9IHRvSW50MzIoYXJnc1s0XSwgb2spOwotICAgICAgICBpZiAo
IW9rKSB7Ci0gICAgICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7
Ci0gICAgICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICAgICAg
fQotICAgICAgICBpbnQgYm9yZGVyID0gdG9JbnQzMihhcmdzWzVdLCBvayk7Ci0gICAgICAgIGlm
ICghb2spIHsKLSAgICAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJS
KTsKLSAgICAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgICAg
ICB9Ci0gICAgICAgIGludCBmb3JtYXQgPSB0b0ludDMyKGFyZ3NbNl0sIG9rKTsKLSAgICAgICAg
aWYgKCFvaykgewotICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9F
UlIpOwotICAgICAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgaW50IHR5cGUgPSB0b0ludDMyKGFyZ3NbN10sIG9rKTsKLSAgICAgICAg
aWYgKCFvaykgewotICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9F
UlIpOwotICAgICAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZyA9IGFyZ3NbOF07Ci0gICAg
ICAgIGlmICghYXJnLT5Jc09iamVjdCgpKQotICAgICAgICAvLyBBc3N1bWUgdGhhdCB0aGUgdXNl
ciBpcyBwYXNzaW5nIG51bGwgZm9yIHRleHR1cmUKLSAgICAgICAgICAgIGNvbnRleHQtPnRleElt
YWdlMkQodGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlYyk7Ci0gICAgIGVsc2UgaWYgKFY4V2Vi
R0xBcnJheTo6SGFzSW5zdGFuY2UoYXJnKSkgewotICAgICAgICAgICAgV2ViR0xBcnJheSogYXJy
YXkgPSBWOFdlYkdMQXJyYXk6OnRvTmF0aXZlKGFyZy0+VG9PYmplY3QoKSk7Ci0gICAgICAgICAg
ICBjb250ZXh0LT50ZXhJbWFnZTJEKHRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV2ZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsZm9y
bWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib3JkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXJyYXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjKTsK
LSAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaAotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICAgICAgcmV0
dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2Ugewot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhj
ZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0
b3IoKTsKLSAgICB9Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2Vw
dGlvbihlYyk7Ci0gICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKLSAgICB9
Ci0gICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLX0KLQotdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFJlbmRlcmluZ0Nv
bnRleHQudGV4U3ViSW1hZ2UyRCgpIik7Ci0KLSAgICAvLyBDdXJyZW50bHkgc3VwcG9ydGVkIGZv
cm1zOgotICAgIC8vICogdm9pZCB0ZXhTdWJJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdM
aW50IGxldmVsLCBpbiBHTGludCB4b2Zmc2V0LCBpbiBHTGludCB5b2Zmc2V0LCAKLSAgICAvLyAg
ICAgICAgICAgICAgICAgICAgICBpbiBHTHNpemVpIHdpZHRoLCBpbiBHTHNpemVpIGhlaWdodCwg
Ci0gICAgLy8gICAgICAgICAgICAgICAgICAgICAgaW4gR0xlbnVtIGZvcm1hdCwgaW4gR0xlbnVt
IHR5cGUsIGluIFdlYkdMQXJyYXkgcGl4ZWxzKTsKLSAgICAvLyAqIHZvaWQgdGV4U3ViSW1hZ2Uy
RChpbiBHTGVudW0gdGFyZ2V0LCBpbiBHTGludCBsZXZlbCwgaW4gR0xpbnQgeG9mZnNldCwgaW4g
R0xpbnQgeW9mZnNldCwKLSAgICAvLyAgICAgICAgICAgICAgICAgICAgICBpbiBJbWFnZURhdGEg
cGl4ZWxzLCBbT3B0aW9uYWxdIEdMYm9vbGVhbiBmbGlwWSwgW09wdGlvbmFsXSBpbiBwcmVtdWx0
aXBseUFscGhhKTsKLSAgICAvLyAqIHZvaWQgdGV4U3ViSW1hZ2UyRChpbiBHTGVudW0gdGFyZ2V0
LCBpbiBHTGludCBsZXZlbCwgaW4gR0xpbnQgeG9mZnNldCwgaW4gR0xpbnQgeW9mZnNldCwgCi0g
ICAgLy8gICAgICAgICAgICAgICAgICAgICAgaW4gSFRNTEltYWdlRWxlbWVudCBpbWFnZSwgW09w
dGlvbmFsXSBHTGJvb2xlYW4gZmxpcFksIFtPcHRpb25hbF0gaW4gcHJlbXVsdGlwbHlBbHBoYSk7
Ci0gICAgLy8gKiB2b2lkIHRleFN1YkltYWdlMkQoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xpbnQg
bGV2ZWwsIGluIEdMaW50IHhvZmZzZXQsIGluIEdMaW50IHlvZmZzZXQsIAotICAgIC8vICAgICAg
ICAgICAgICAgICAgICAgIGluIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhcywgW09wdGlvbmFsXSBH
TGJvb2xlYW4gZmxpcFksIFtPcHRpb25hbF0gaW4gcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgLy8g
KiB2b2lkIHRleFN1YkltYWdlMkQoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xpbnQgbGV2ZWwsIGlu
IEdMaW50IHhvZmZzZXQsIGluIEdMaW50IHlvZmZzZXQsIAotICAgIC8vICAgICAgICAgICAgICAg
ICAgICAgIGluIEhUTUxWaWRlb0VsZW1lbnQgdmlkZW8sIFtPcHRpb25hbF0gR0xib29sZWFuIGZs
aXBZLCBbT3B0aW9uYWxdIGluIHByZW11bHRpcGx5QWxwaGEpOwotCi0gICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgIT0gNSAmJgotICAgICAgICBhcmdzLkxlbmd0aCgpICE9IDYgJiYKLSAgICAgICAgYXJn
cy5MZW5ndGgoKSAhPSA3ICYmCi0gICAgICAgIGFyZ3MuTGVuZ3RoKCkgIT0gOSkgewotICAgICAg
ICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgIHJldHVybiBu
b3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KLQotICAgIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhv
bGRlcigpKTsKLSAgICBib29sIG9rOwotICAgIGludCB0YXJnZXQgPSB0b0ludDMyKGFyZ3NbMF0s
IG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihT
WU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0g
ICAgfQotICAgIGludCBsZXZlbCA9IHRvSW50MzIoYXJnc1sxXSwgb2spOwotICAgIGlmICghb2sp
IHsKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAg
ICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9Ci0gICAgaW50IHhvZmYg
PSB0b0ludDMyKGFyZ3NbMl0sIG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4UHJveHk6
OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRC
eUludGVyY2VwdG9yKCk7Ci0gICAgfQotICAgIGludCB5b2ZmID0gdG9JbnQzMihhcmdzWzNdLCBv
ayk7Ci0gICAgaWYgKCFvaykgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lO
VEFYX0VSUik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAg
IH0KLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGlmIChhcmdzLkxlbmd0aCgpID09
IDUgfHwKLSAgICAgICAgYXJncy5MZW5ndGgoKSA9PSA2IHx8Ci0gICAgICAgIGFyZ3MuTGVuZ3Ro
KCkgPT0gNykgewotICAgICAgICBib29sIGZsaXBZID0gZmFsc2U7Ci0gICAgICAgIGJvb2wgcHJl
bXVsdGlwbHlBbHBoYSA9IGZhbHNlOwotICAgICAgICBpZiAoYXJncy5MZW5ndGgoKSA+PSA2KQot
ICAgICAgICAgICAgZmxpcFkgPSBhcmdzWzVdLT5Cb29sZWFuVmFsdWUoKTsKLSAgICAgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPj0gNykKLSAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGEgPSBhcmdz
WzZdLT5Cb29sZWFuVmFsdWUoKTsKLQotICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJn
ID0gYXJnc1s0XTsKLSAgICAgICAgaWYgKFY4SFRNTEltYWdlRWxlbWVudDo6SGFzSW5zdGFuY2Uo
YXJnKSkgewotICAgICAgICAgICAgSFRNTEltYWdlRWxlbWVudCogZWxlbWVudCA9IFY4SFRNTElt
YWdlRWxlbWVudDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmcpKTsK
LSAgICAgICAgICAgIGNvbnRleHQtPnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZiwg
eW9mZiwgZWxlbWVudCwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIGVjKTsKLSAgICAgICAgfSBl
bHNlIGlmIChWOEhUTUxDYW52YXNFbGVtZW50OjpIYXNJbnN0YW5jZShhcmcpKSB7Ci0gICAgICAg
ICAgICBIVE1MQ2FudmFzRWxlbWVudCogZWxlbWVudCA9IFY4SFRNTENhbnZhc0VsZW1lbnQ6OnRv
TmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnKSk7Ci0gICAgICAgICAgICBj
b250ZXh0LT50ZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmYsIHlvZmYsIGVsZW1lbnQs
IGZsaXBZLCBwcmVtdWx0aXBseUFscGhhLCBlYyk7Ci0gICAgICAgIH0gZWxzZSBpZihWOEltYWdl
RGF0YTo6SGFzSW5zdGFuY2UoYXJnKSkgewotICAgICAgICAgICAgSW1hZ2VEYXRhKiBpbWFnZUVs
ZW1lbnQgPSBWOEltYWdlRGF0YTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2Fz
dChhcmcpKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZl
bCwgeG9mZiwgeW9mZiwgaW1hZ2VFbGVtZW50LCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwgZWMp
OwotICAgICAgICB9IGVsc2UgaWYgKFY4SFRNTFZpZGVvRWxlbWVudDo6SGFzSW5zdGFuY2UoYXJn
KSkgewotICAgICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCogZWxlbWVudCA9IFY4SFRNTFZpZGVv
RWxlbWVudDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmcpKTsKLSAg
ICAgICAgICAgIGNvbnRleHQtPnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZiwgeW9m
ZiwgZWxlbWVudCwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIGVjKTsKLSAgICAgICAgfQotICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciBkaWZmZXJlbnQgLyBi
ZXR0ZXIgZXhjZXB0aW9uIHR5cGUuCi0gICAgICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRp
b24oU1lOVEFYX0VSUik7Ci0gICAgICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0
b3IoKTsKLSAgICAgICAgfQotICAgICAgICAvLyBGYWxsIHRocm91Z2gKLSAgICB9IGVsc2UgaWYg
KGFyZ3MuTGVuZ3RoKCkgPT0gOSkgewotICAgICAgICBpbnQgd2lkdGggPSB0b0ludDMyKGFyZ3Nb
NF0sIG9rKTsKLSAgICAgICAgaWYgKCFvaykgewotICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9N
RXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUlu
dGVyY2VwdG9yKCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGhlaWdodCA9IHRvSW50MzIoYXJn
c1s1XSwgb2spOwotICAgICAgICBpZiAoIW9rKSB7Ci0gICAgICAgICAgICBWOFByb3h5OjpzZXRE
T01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5
SW50ZXJjZXB0b3IoKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9ybWF0ID0gdG9JbnQzMihh
cmdzWzZdLCBvayk7Ci0gICAgICAgIGlmICghb2spIHsKLSAgICAgICAgICAgIFY4UHJveHk6OnNl
dERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgICAgIHJldHVybiBub3RIYW5kbGVk
QnlJbnRlcmNlcHRvcigpOwotICAgICAgICB9Ci0gICAgICAgIGludCB0eXBlID0gdG9JbnQzMihh
cmdzWzddLCBvayk7Ci0gICAgICAgIGlmICghb2spIHsKLSAgICAgICAgICAgIFY4UHJveHk6OnNl
dERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgICAgIHJldHVybiBub3RIYW5kbGVk
QnlJbnRlcmNlcHRvcigpOwotICAgICAgICB9Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBhcmcgPSBhcmdzWzhdOwotICAgICAgICBpZiAoIWFyZy0+SXNPYmplY3QoKSkKLSAgICAgICAg
Ly8gQXNzdW1lIHRoYXQgdGhlIHVzZXIgaXMgcGFzc2luZyBudWxsIGZvciB0ZXh0dXJlCi0gICAg
ICAgICAgICBjb250ZXh0LT50ZXhTdWJJbWFnZTJEKHRhcmdldCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV2ZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHhvZmYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvZmYsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWMpOwotICAgICBlbHNlIGlmIChWOFdlYkdMQXJyYXk6Okhhc0luc3Rh
bmNlKGFyZykpIHsKLSAgICAgICAgICAgIFdlYkdMQXJyYXkqIGFycmF5ID0gVjhXZWJHTEFycmF5
Ojp0b05hdGl2ZShhcmctPlRvT2JqZWN0KCkpOwotICAgICAgICAgICAgY29udGV4dC0+dGV4U3Vi
SW1hZ2UyRCh0YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVs
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4b2ZmLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB5b2ZmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3aWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFycmF5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlYyk7
Ci0gICAgICAgICAgICAvLyBGYWxsIHRocm91Z2gKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgICAgIHJl
dHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4
Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2Vw
dG9yKCk7Ci0gICAgfQotICAgIGlmIChlYykgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNl
cHRpb24oZWMpOwotICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Ci0gICAg
fQotICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci19Ci0KIGVudW0gRnVuY3Rpb25Ub0NhbGwg
ewogICAgIGtVbmlmb3JtMXYsIGtVbmlmb3JtMnYsIGtVbmlmb3JtM3YsIGtVbmlmb3JtNHYsCiAg
ICAga1ZlcnRleEF0dHJpYjF2LCBrVmVydGV4QXR0cmliMnYsIGtWZXJ0ZXhBdHRyaWIzdiwga1Zl
cnRleEF0dHJpYjR2CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHAgYi9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5jcHAKaW5kZXggMzYwZGM2NS4uYmUxMTM3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMTc2NSw2ICsxNzY1LDE4IEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQg
bGV2ZWwsIHVuc2lnbmVkCiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFn
ZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEltYWdlRGF0YSogcGl4ZWxzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgdGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBwaXhlbHMsIDAsIDAsIGVjKTsKK30K
Kwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0
LCB1bnNpZ25lZCBsZXZlbCwgSW1hZ2VEYXRhKiBwaXhlbHMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICB0ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHBpeGVscywgZmxpcFksIDAsIGVjKTsKK30KKwor
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1
bnNpZ25lZCBsZXZlbCwgSW1hZ2VEYXRhKiBwaXhlbHMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIC8vIEZJWE1FOiBGb3Igbm93IHdlIGlnbm9yZSBhbnkgZXJy
b3JzIHJldHVybmVkCkBAIC0xNzc1LDYgKzE3ODcsMTkgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSW1hZ2VE
YXQKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCisKK3ZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQg
bGV2ZWwsIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgdGV4SW1hZ2UyRCh0YXJn
ZXQsIGxldmVsLCBpbWFnZSwgMCwgMCwgZWMpOworfQorCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MSW1h
Z2VFbGVtZW50KiBpbWFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgZmxpcFksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHRleEltYWdlMkQodGFyZ2V0
LCBsZXZlbCwgaW1hZ2UsIGZsaXBZLCAwLCBlYyk7Cit9CisKIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEhUTUxJ
bWFnZUVsZW1lbnQqIGltYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKQEAgLTE3OTYsNyArMTgyMSwxOSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4
SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MSW1hZwogfQogCiB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVu
c2lnbmVkIGxldmVsLCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFs
cGhhLCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHRleEltYWdlMkQodGFyZ2V0LCBsZXZl
bCwgY2FudmFzLCAwLCAwLCBlYyk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0
ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEhUTUxDYW52YXNFbGVt
ZW50KiBjYW52YXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s
IGZsaXBZLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICB0ZXhJbWFnZTJEKHRhcmdldCwgbGV2
ZWwsIGNhbnZhcywgZmxpcFksIDAsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRNTENhbnZh
c0VsZW1lbnQqIGNhbnZhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgZWMgPSAwOwogICAgIGlmICghY2FudmFzKSB7CkBAIC0xODE2LDcgKzE4NTMsMTkgQEAg
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1
bnNpZ25lZCBsZXZlbCwgSFRNTENhbnYKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRNTFZpZGVvRWxl
bWVudCogdmlkZW8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgdGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB2aWRlbywgMCwgMCwgZWMpOworfQorCit2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVu
c2lnbmVkIGxldmVsLCBIVE1MVmlkZW9FbGVtZW50KiB2aWRlbywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIHRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgdmlkZW8sIGZsaXBZLCAwLCBlYyk7Cit9CisK
K3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwg
dW5zaWduZWQgbGV2ZWwsIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBGSVhNRTogTmVlZCBpbXBsZW1lbnQgdGhp
cyBjYWxsCiAgICAgVU5VU0VEX1BBUkFNKHRhcmdldCk7CkBAIC0xODQyLDggKzE4OTEsOCBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4UGFyYW1ldGVyaSh1bnNpZ25lZCB0YXJnZXQs
IHVuc2lnbmVkIHBuYW1lLCBpbnQgcAogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
dGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4
b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5z
aWduZWQgdHlwZSwgV2ViR0xBcnJheSogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHdpZHRoLCB1bnNp
Z25lZCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIFdlYkdMQXJyYXkqIHBpeGVscywgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gRklYTUU6IEZvciBub3cgd2UgaWdub3JlIGFueSBlcnJv
cnMgcmV0dXJuZWQKICAgICAvLyBGSVhNRTogTmVlZCB0byBtYWtlIHN1cmUgcGFzc2VkIGJ1ZmZl
ciBoYXMgZW5vdWdoIGJ5dGVzIHRvIGRlZmluZSB0aGUgdGV4dHVyZQpAQCAtMTg1Myw2ICsxOTAy
LDE4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVk
IHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnCiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVu
c2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBJbWFnZURhdGEqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgdGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBw
aXhlbHMsIDAsIDAsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1
YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNl
dCwgdW5zaWduZWQgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEltYWdlRGF0YSogcGl4ZWxzLCBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICB0ZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHBp
eGVscywgZmxpcFksIDAsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRl
eFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9m
ZnNldCwgdW5zaWduZWQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEltYWdlRGF0YSogcGl4ZWxzLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5
QWxwaGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIEZJWE1FOiBGb3Igbm93IHdlIGln
bm9yZSBhbnkgZXJyb3JzIHJldHVybmVkCkBAIC0xODY0LDYgKzE5MjUsMTggQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25l
ZCBsZXZlbCwgdW5zaWcKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1Yklt
YWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwg
dW5zaWduZWQgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICB0
ZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIGltYWdlLCAwLCAw
LCBlYyk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVu
c2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVk
IHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1M
SW1hZ2VFbGVtZW50KiBpbWFnZSwgYm9vbCBmbGlwWSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgdGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBpbWFnZSwg
ZmxpcFksIDAsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1Yklt
YWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwg
dW5zaWduZWQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5
QWxwaGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIEZJWE1FOiBGb3Igbm93IHdlIGln
bm9yZSBhbnkgZXJyb3JzIHJldHVybmVkCkBAIC0xODg0LDYgKzE5NTcsMTggQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25l
ZCBsZXZlbCwgdW5zaWcKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1Yklt
YWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwg
dW5zaWduZWQgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IHRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgY2FudmFzLCAw
LCAwLCBlYyk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJE
KHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2ln
bmVkIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBI
VE1MQ2FudmFzRWxlbWVudCogY2FudmFzLCBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICB0ZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIGNh
bnZhcywgZmxpcFksIDAsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRl
eFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9m
ZnNldCwgdW5zaWduZWQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIGJvb2wgZmxpcFksIGJvb2wgcHJl
bXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSAwOwpAQCAtMTkw
NCw2ICsxOTg5LDE4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJE
KHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnCiB9CiAKIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQg
bGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1MVmlkZW9FbGVtZW50KiB2aWRlbywgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgdGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zm
c2V0LCB5b2Zmc2V0LCB2aWRlbywgMCwgMCwgZWMpOworfQorCit2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1
bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sIGJvb2wgZmxpcFks
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwg
eG9mZnNldCwgeW9mZnNldCwgdmlkZW8sIGZsaXBZLCAwLCBlYyk7Cit9CisKK3ZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQg
bGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1MVmlkZW9FbGVtZW50KiB2aWRlbywgYm9v
bCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICAvLyBGSVhNRTogTmVlZCB0byBpbXBsZW1lbnQgdGhpcyBjYWxsCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIGIvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAppbmRleCA5YzU4YTUzLi4yOWUzYzc3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCisrKyBi
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTE5OSwxNCAr
MTk5LDE4IEBAIGNsYXNzIFdlYktpdENTU01hdHJpeDsKICAgICAgICAgdm9pZCB0ZXhJbWFnZTJE
KHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIGludGVybmFsZm9ybWF0
LAogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdo
dCwgdW5zaWduZWQgYm9yZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9y
bWF0LCB1bnNpZ25lZCB0eXBlLCBXZWJHTEFycmF5KiBwaXhlbHMsIEV4Y2VwdGlvbkNvZGUmKTsK
LSAgICAgICAgdm9pZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWws
IEltYWdlRGF0YSogcGl4ZWxzLAotICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmbGlwWSwg
Ym9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgICAgIHZvaWQgdGV4
SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MSW1hZ2VFbGVtZW50
KiBpbWFnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYpOwotICAgICAgICB2b2lkIHRleEltYWdlMkQodW5z
aWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcywK
LSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBo
YSwgRXhjZXB0aW9uQ29kZSYpOwotICAgICAgICB2b2lkIHRleEltYWdlMkQodW5zaWduZWQgdGFy
Z2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sCi0gICAgICAgICAg
ICAgICAgICAgICAgICBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWdu
ZWQgbGV2ZWwsIEltYWdlRGF0YSogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZv
aWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBJbWFnZURhdGEq
IHBpeGVscywgYm9vbCBmbGlwWSwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIHRleElt
YWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSW1hZ2VEYXRhKiBwaXhlbHMs
IGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYpOworICAg
ICAgICB2b2lkIHRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRN
TEltYWdlRWxlbWVudCogaW1hZ2UsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhJ
bWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEhUTUxJbWFnZUVsZW1lbnQq
IGltYWdlLCBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4SW1h
Z2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MSW1hZ2VFbGVtZW50KiBp
bWFnZSwgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJik7
CisgICAgICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVs
LCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZv
aWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MQ2FudmFz
RWxlbWVudCogY2FudmFzLCBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZv
aWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MQ2FudmFz
RWxlbWVudCogY2FudmFzLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5z
aWduZWQgbGV2ZWwsIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBI
VE1MVmlkZW9FbGVtZW50KiB2aWRlbywgYm9vbCBmbGlwWSwgRXhjZXB0aW9uQ29kZSYpOworICAg
ICAgICB2b2lkIHRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRN
TFZpZGVvRWxlbWVudCogdmlkZW8sIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwg
RXhjZXB0aW9uQ29kZSYpOwogCiAgICAgICAgIHZvaWQgdGV4UGFyYW1ldGVyZih1bnNpZ25lZCB0
YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBmbG9hdCBwYXJhbSk7CiAgICAgICAgIHZvaWQgdGV4UGFy
YW1ldGVyaSh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBpbnQgcGFyYW0pOwpAQCAt
MjE0LDE0ICsyMTgsMTggQEAgY2xhc3MgV2ViS2l0Q1NTTWF0cml4OwogICAgICAgICB2b2lkIHRl
eFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9m
ZnNldCwgdW5zaWduZWQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIFdlYkdMQXJyYXkqIHBpeGVscywgRXhjZXB0
aW9uQ29kZSYpOwotICAgICAgICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1
bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEltYWdlRGF0YSogcGl4ZWxzLCBib29sIGZsaXBZLCBib29s
IHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAgICAgdm9pZCB0ZXhTdWJJ
bWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQs
IHVuc2lnbmVkIHlvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1MSW1hZ2VF
bGVtZW50KiBpbWFnZSwgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRp
b25Db2RlJik7Ci0gICAgICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVu
c2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcywgYm9vbCBmbGlw
WSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgICAgIHZvaWQg
dGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4
b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgSFRN
TFZpZGVvRWxlbWVudCogdmlkZW8sIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwg
RXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFy
Z2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwg
SW1hZ2VEYXRhKiBwaXhlbHMsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJ
bWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQs
IHVuc2lnbmVkIHlvZmZzZXQsIEltYWdlRGF0YSogcGl4ZWxzLCBib29sIGZsaXBZLCBFeGNlcHRp
b25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVu
c2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LCBJbWFnZURh
dGEqIHBpeGVscywgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25D
b2RlJik7CisgICAgICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2ln
bmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LCBIVE1MSW1hZ2VF
bGVtZW50KiBpbWFnZSwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIHRleFN1YkltYWdl
MkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5z
aWduZWQgeW9mZnNldCwgSFRNTEltYWdlRWxlbWVudCogaW1hZ2UsIGJvb2wgZmxpcFksIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwg
dW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsIEhUTUxJ
bWFnZUVsZW1lbnQqIGltYWdlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdl
dCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsIEhU
TUxDYW52YXNFbGVtZW50KiBjYW52YXMsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0
ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhv
ZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIGJvb2wg
ZmxpcFksIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2ln
bmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlv
ZmZzZXQsIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIHRleFN1YkltYWdlMkQo
dW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWdu
ZWQgeW9mZnNldCwgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWws
IHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsIEhUTUxWaWRlb0VsZW1lbnQqIHZp
ZGVvLCBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4U3ViSW1h
Z2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1
bnNpZ25lZCB5b2Zmc2V0LCBIVE1MVmlkZW9FbGVtZW50KiB2aWRlbywgYm9vbCBmbGlwWSwgYm9v
bCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAgICAgdm9pZCB1bmlm
b3JtMWYoY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBmbG9hdCB4LCBFeGNl
cHRpb25Db2RlJik7CiAgICAgICAgIHZvaWQgdW5pZm9ybTFmdihjb25zdCBXZWJHTFVuaWZvcm1M
b2NhdGlvbiogbG9jYXRpb24sIFdlYkdMRmxvYXRBcnJheSogdiwgRXhjZXB0aW9uQ29kZSYpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRs
IGIvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCmluZGV4IGEy
NTc0NTIuLmI3NzUzNzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5pZGwKQEAgLTQ3NCwxMyArNDc0LDE1IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAg
dm9pZCAgICAgICAgIGJsZW5kRnVuYyhpbiB1bnNpZ25lZCBsb25nIHNmYWN0b3IsIGluIHVuc2ln
bmVkIGxvbmcgZGZhY3Rvcik7CiAgICAgICAgIHZvaWQgICAgICAgICBibGVuZEZ1bmNTZXBhcmF0
ZShpbiB1bnNpZ25lZCBsb25nIHNyY1JHQiwgaW4gdW5zaWduZWQgbG9uZyBkc3RSR0IsIGluIHVu
c2lnbmVkIGxvbmcgc3JjQWxwaGEsIGluIHVuc2lnbmVkIGxvbmcgZHN0QWxwaGEpOwogCi0gICAg
ICAgIC8vIFN1cHBvcnRlZCBmb3JtczoKLSAgICAgICAgLy8gICB2b2lkIGJ1ZmZlckRhdGEgKGlu
IEdMZW51bSB0YXJnZXQsIGluIEdMc2l6ZWkgc2l6ZSwgaW4gR0xlbnVtIHVzYWdlKTsKLSAgICAg
ICAgLy8gICB2b2lkIGJ1ZmZlckRhdGEgKGluIEdMZW51bSB0YXJnZXQsIGluIFdlYkdMQXJyYXkg
ZGF0YSwgaW4gR0xlbnVtIHVzYWdlKTsKKyNpZiBkZWZpbmVkKFY4X0JJTkRJTkcpICYmIFY4X0JJ
TkRJTkcKKyAgICAgICAgdm9pZCAgICAgICAgIGJ1ZmZlckRhdGEoaW4gdW5zaWduZWQgbG9uZyB0
YXJnZXQsIGluIFdlYkdMQXJyYXkgZGF0YSwgaW4gdW5zaWduZWQgbG9uZyB1c2FnZSkgcmFpc2Vz
IChET01FeGNlcHRpb24pOworICAgICAgICB2b2lkICAgICAgICAgYnVmZmVyRGF0YShpbiB1bnNp
Z25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBzaXplLCBpbiB1bnNpZ25lZCBsb25nIHVzYWdlKSBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgICAgICAgICBidWZmZXJTdWJEYXRh
KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIG9mZnNldCwgaW4gV2ViR0xBcnJheSBk
YXRhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisjZWxzZQorICAgICAgICAvLyBGSVhNRTogVW5m
b3JrIG9uY2UgSlNDIHN1cHBvcnRzIG92ZXJsb2FkIGdlbmVyYXRpb24gdG9vLgogICAgICAgICBb
Q3VzdG9tXSB2b2lkIGJ1ZmZlckRhdGEoKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAg
Ly8gU3VwcG9ydGVkIGZvcm1zOgotICAgICAgICAvLyAgIHZvaWQgYnVmZmVyU3ViRGF0YSAoaW4g
R0xlbnVtIHRhcmdldCwgaW4gR0xzaXplaXB0ciBvZmZzZXQsIGluIFdlYkdMQXJyYXkgZGF0YSk7
CiAgICAgICAgIFtDdXN0b21dIHZvaWQgYnVmZmVyU3ViRGF0YSgpIHJhaXNlcyhET01FeGNlcHRp
b24pOworI2VuZGlmCiAKICAgICAgICAgdW5zaWduZWQgbG9uZyBjaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0KTsKICAgICAgICAgdm9pZCAgICAgICAgIGNsZWFy
KGluIHVuc2lnbmVkIGxvbmcgbWFzayk7CkBAIC02MTEsMzIgKzYxMywzNCBAQCBtb2R1bGUgaHRt
bCB7CiAgICAgICAgIHZvaWQgICAgICAgICB0ZXhQYXJhbWV0ZXJpKGluIHVuc2lnbmVkIGxvbmcg
dGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lLCBpbiBsb25nIHBhcmFtKTsKIAogICAgICAg
ICAvLyBTdXBwb3J0ZWQgZm9ybXM6Ci0gICAgICAgIC8vICAgdm9pZCB0ZXhJbWFnZTJEKGluIEdM
ZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIGlu
IEdMc2l6ZWkgd2lkdGgsIGluIEdMc2l6ZWkgaGVpZ2h0LCAKLSAgICAgICAgLy8gICAgICAgICAg
ICAgICAgICAgaW4gR0xpbnQgYm9yZGVyLCBpbiBHTGVudW0gZm9ybWF0LCBpbiBHTGVudW0gdHlw
ZSwgaW4gV2ViR0xBcnJheSBwaXhlbHMpOwotICAgICAgICAvLyAgIHZvaWQgdGV4SW1hZ2UyRChp
biBHTGVudW0gdGFyZ2V0LCBpbiBHTGludCBsZXZlbCwgaW4gSW1hZ2VEYXRhIHBpeGVscywKLSAg
ICAgICAgLy8gICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBHTGJvb2xlYW4gZmxpcFks
IFtPcHRpb25hbF0gaW4gcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIC8vICAgdm9pZCB0ZXhJ
bWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBIVE1MSW1hZ2VFbGVt
ZW50IGltYWdlLAotICAgICAgICAvLyAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIEdM
Ym9vbGVhbiBmbGlwWSwgW09wdGlvbmFsXSBpbiBwcmVtdWx0aXBseUFscGhhKTsKLSAgICAgICAg
Ly8gICB2b2lkIHRleEltYWdlMkQoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xpbnQgbGV2ZWwsIGlu
IEhUTUxDYW52YXNFbGVtZW50IGNhbnZhcywKLSAgICAgICAgLy8gICAgICAgICAgICAgICAgICAg
W09wdGlvbmFsXSBpbiBHTGJvb2xlYW4gZmxpcFksIFtPcHRpb25hbF0gaW4gcHJlbXVsdGlwbHlB
bHBoYSk7Ci0gICAgICAgIC8vICAgdm9pZCB0ZXhJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGlu
IEdMaW50IGxldmVsLCBpbiBIVE1MVmlkZW9FbGVtZW50IHZpZGVvLAotICAgICAgICAvLyAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIEdMYm9vbGVhbiBmbGlwWSwgW09wdGlvbmFsXSBp
biBwcmVtdWx0aXBseUFscGhhKTsKKyNpZiBkZWZpbmVkKFY4X0JJTkRJTkcpICYmIFY4X0JJTkRJ
TkcKKyAgICAgICAgdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJn
ZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGluIGxv
bmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gbG9uZyBib3JkZXIsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBs
b25nIHR5cGUsIGluIFdlYkdMQXJyYXkgcGl4ZWxzKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIHZvaWQgICAgICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBp
biBsb25nIGxldmVsLCBpbiBJbWFnZURhdGEgcGl4ZWxzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gZmxpcFksIGluIFtPcHRpb25hbF0gYm9v
bGVhbiBwcmVtdWx0aXBseUFscGhhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZv
aWQgICAgICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxl
dmVsLCBpbiBIVE1MSW1hZ2VFbGVtZW50IGltYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gZmxpcFksIGluIFtPcHRpb25hbF0gYm9vbGVh
biBwcmVtdWx0aXBseUFscGhhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQg
ICAgICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVs
LCBpbiBIVE1MQ2FudmFzRWxlbWVudCBjYW52YXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiBmbGlwWSwgaW4gW09wdGlvbmFsXSBib29sZWFu
IHByZW11bHRpcGx5QWxwaGEpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCAg
ICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWws
IGluIEhUTUxWaWRlb0VsZW1lbnQgdmlkZW8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiBmbGlwWSwgaW4gW09wdGlvbmFsXSBib29sZWFuIHBy
ZW11bHRpcGx5QWxwaGEpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICB2b2lkICAg
ICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZl
bCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1
bnNpZ25lZCBsb25nIHR5cGUsIGluIFdlYkdMQXJyYXkgcGl4ZWxzKSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgIHZvaWQgICAgICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxv
bmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNl
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gSW1hZ2VEYXRhIHBpeGVs
cywgaW4gW09wdGlvbmFsXSBib29sZWFuIGZsaXBZLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gcHJl
bXVsdGlwbHlBbHBoYSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICB2b2lkICAgICAg
ICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwg
aW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBIVE1MSW1hZ2VFbGVtZW50IGltYWdlLCBpbiBbT3B0aW9uYWxdIGJv
b2xlYW4gZmxpcFksIGluIFtPcHRpb25hbF0gYm9vbGVhbiBwcmVtdWx0aXBseUFscGhhKSByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgICAgICAgICB0ZXhTdWJJbWFnZTJEKGlu
IHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGlu
IGxvbmcgeW9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEhU
TUxDYW52YXNFbGVtZW50IGNhbnZhcywgaW4gW09wdGlvbmFsXSBib29sZWFuIGZsaXBZLCBpbiBb
T3B0aW9uYWxdIGJvb2xlYW4gcHJlbXVsdGlwbHlBbHBoYSkgcmFpc2VzIChET01FeGNlcHRpb24p
OworICAgICAgICB2b2lkICAgICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRh
cmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsIAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBIVE1MVmlkZW9FbGVtZW50IHZp
ZGVvLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gZmxpcFksIGluIFtPcHRpb25hbF0gYm9vbGVhbiBw
cmVtdWx0aXBseUFscGhhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisjZWxzZQorICAgICAgICAv
LyBGSVhNRTogVW5mb3JrIG9uY2UgSlNDIHN1cHBvcnRzIG92ZXJsb2FkIGdlbmVyYXRpb24gdG9v
LgogICAgICAgICBbQ3VzdG9tXSB2b2lkIHRleEltYWdlMkQoKTsKLQotICAgICAgICAvLyBTdXBw
b3J0ZWQgZm9ybXM6Ci0gICAgICAgIC8vICAgdm9pZCB0ZXhTdWJJbWFnZTJEKGluIEdMZW51bSB0
YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBHTGludCB4b2Zmc2V0LCBpbiBHTGludCB5b2Zmc2V0
LCAKLSAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgaW4gR0xzaXplaSB3aWR0aCwgaW4g
R0xzaXplaSBoZWlnaHQsIAotICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICBpbiBHTGVu
dW0gZm9ybWF0LCBpbiBHTGVudW0gdHlwZSwgaW4gV2ViR0xBcnJheSBwaXhlbHMpOwotICAgICAg
ICAvLyAgIHZvaWQgdGV4U3ViSW1hZ2UyRChpbiBHTGVudW0gdGFyZ2V0LCBpbiBHTGludCBsZXZl
bCwgaW4gR0xpbnQgeG9mZnNldCwgaW4gR0xpbnQgeW9mZnNldCwKLSAgICAgICAgLy8gICAgICAg
ICAgICAgICAgICAgICAgaW4gSW1hZ2VEYXRhIHBpeGVscywgW09wdGlvbmFsXSBHTGJvb2xlYW4g
ZmxpcFksIFtPcHRpb25hbF0gaW4gcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIC8vICAgdm9p
ZCB0ZXhTdWJJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBHTGlu
dCB4b2Zmc2V0LCBpbiBHTGludCB5b2Zmc2V0LCAKLSAgICAgICAgLy8gICAgICAgICAgICAgICAg
ICAgICAgaW4gSFRNTEltYWdlRWxlbWVudCBpbWFnZSwgW09wdGlvbmFsXSBHTGJvb2xlYW4gZmxp
cFksIFtPcHRpb25hbF0gaW4gcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIC8vICAgdm9pZCB0
ZXhTdWJJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBHTGludCB4
b2Zmc2V0LCBpbiBHTGludCB5b2Zmc2V0LCAKLSAgICAgICAgLy8gICAgICAgICAgICAgICAgICAg
ICAgaW4gSFRNTENhbnZhc0VsZW1lbnQgY2FudmFzLCBbT3B0aW9uYWxdIEdMYm9vbGVhbiBmbGlw
WSwgW09wdGlvbmFsXSBpbiBwcmVtdWx0aXBseUFscGhhKTsKLSAgICAgICAgLy8gICB2b2lkIHRl
eFN1YkltYWdlMkQoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xpbnQgbGV2ZWwsIGluIEdMaW50IHhv
ZmZzZXQsIGluIEdMaW50IHlvZmZzZXQsIAotICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAg
ICBpbiBIVE1MVmlkZW9FbGVtZW50IHZpZGVvLCBbT3B0aW9uYWxdIEdMYm9vbGVhbiBmbGlwWSwg
W09wdGlvbmFsXSBpbiBwcmVtdWx0aXBseUFscGhhKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCB0
ZXhTdWJJbWFnZTJEKCk7Ci0KKyNlbmRpZgogICAgICAgICB2b2lkIHVuaWZvcm0xZihpbiBXZWJH
TFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gZmxvYXQgeCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgdW5pZm9ybTFmdihpbiBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiBsb2NhdGlvbiwgaW4gV2ViR0xGbG9hdEFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24p
OwogICAgICAgICB2b2lkIHVuaWZvcm0xaShpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlv
biwgaW4gbG9uZyB4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>53724</attachid>
            <date>2010-04-19 15:01:11 -0700</date>
            <delta_ts>2010-04-19 15:01:11 -0700</delta_ts>
            <desc>Why fails?</desc>
            <filename>null-object-behaviour-diff.txt</filename>
            <type>text/plain</type>
            <size>3840</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">LS0tIC9Vc2Vycy95YWFyL0Rldi9DaHJvbWl1bS9zcmMvd2Via2l0L0RlYnVnL2xheW91dC10ZXN0
LXJlc3VsdHMvZmFzdC9jYW52YXMvV2ViR0wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLWV4cGVjdGVk
LnR4dCAKKysrIC9Vc2Vycy95YWFyL0Rldi9DaHJvbWl1bS9zcmMvd2Via2l0L0RlYnVnL2xheW91
dC10ZXN0LXJlc3VsdHMvZmFzdC9jYW52YXMvV2ViR0wvbnVsbC1vYmplY3QtYmVoYXZpb3VyLWFj
dHVhbC50eHQgCkBAIC0yLDI5ICsyLDI5IEBACiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
IAotUEFTUyBjb250ZXh0LmNvbXBpbGVTaGFkZXIoKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3Ig
MTI4MiBpbiBjb21waWxlU2hhZGVyLgotUEFTUyBjb250ZXh0LmxpbmtQcm9ncmFtKCkgdGhyZXcg
ZXhjZXB0aW9uIEdMIGVycm9yIDEyODIgaW4gbGlua1Byb2dyYW0uCitQQVNTIGNvbnRleHQuY29t
cGlsZVNoYWRlcigpIHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAxMjgxIGluIGNvbXBpbGVTaGFk
ZXIuCitQQVNTIGNvbnRleHQubGlua1Byb2dyYW0oKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3Ig
MTI4MSBpbiBsaW5rUHJvZ3JhbS4KIFBBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIoKSB0aHJldyBl
eGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBhdHRhY2hTaGFkZXIuCiBQQVNTIGNvbnRleHQuYXR0
YWNoU2hhZGVyKHByb2dyYW0sIHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEy
ODEgaW4gYXR0YWNoU2hhZGVyLgogUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcih1bmRlZmluZWQs
IHNoYWRlcikgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gYXR0YWNoU2hhZGVyLgot
UEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcihwcm9ncmFtLCB1bmRlZmluZWQpIHRocmV3IGV4Y2Vw
dGlvbiBHTCBlcnJvciAxMjgyIGluIGRldGFjaFNoYWRlci4KLVBBU1MgY29udGV4dC5kZXRhY2hT
aGFkZXIodW5kZWZpbmVkLCBzaGFkZXIpIHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAxMjgyIGlu
IGRldGFjaFNoYWRlci4KLVBBU1MgY29udGV4dC5zaGFkZXJTb3VyY2UoKSB0aHJldyBleGNlcHRp
b24gR0wgZXJyb3IgMTI4MiBpbiBzaGFkZXJTb3VyY2UuCi1QQVNTIGNvbnRleHQuc2hhZGVyU291
cmNlKHVuZGVmaW5lZCwgJ2ZvbycpIHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAxMjgyIGluIHNo
YWRlclNvdXJjZS4KLVBBU1MgY29udGV4dC5iaW5kQXR0cmliTG9jYXRpb24odW5kZWZpbmVkLCAw
LCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODIgaW4gYmluZEF0dHJpYkxvY2F0
aW9uLgorUEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcihwcm9ncmFtLCB1bmRlZmluZWQpIHRocmV3
IGV4Y2VwdGlvbiBHTCBlcnJvciAxMjgxIGluIGRldGFjaFNoYWRlci4KK1BBU1MgY29udGV4dC5k
ZXRhY2hTaGFkZXIodW5kZWZpbmVkLCBzaGFkZXIpIHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAx
MjgxIGluIGRldGFjaFNoYWRlci4KK1BBU1MgY29udGV4dC5zaGFkZXJTb3VyY2UoKSB0aHJldyBl
eGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBzaGFkZXJTb3VyY2UuCitQQVNTIGNvbnRleHQuc2hh
ZGVyU291cmNlKHVuZGVmaW5lZCwgJ2ZvbycpIHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAxMjgx
IGluIHNoYWRlclNvdXJjZS4KK1BBU1MgY29udGV4dC5iaW5kQXR0cmliTG9jYXRpb24odW5kZWZp
bmVkLCAwLCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gYmluZEF0dHJp
YkxvY2F0aW9uLgogUEFTUyBjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIs
IDApIGlzIHVuZGVmaW5lZC4KIFBBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5G
UkFNRUJVRkZFUiwgMCkgaXMgdW5kZWZpbmVkLgogUEFTUyBjb250ZXh0LmJpbmRSZW5kZXJidWZm
ZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIDApIGlzIHVuZGVmaW5lZC4KIFBBU1MgY29udGV4dC5i
aW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIDApIGlzIHVuZGVmaW5lZC4KIFBBU1MgY29u
dGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0
LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRleHQuUkVOREVSQlVGRkVSLCAwKSB0aHJldyBleGNlcHRp
b24gR0wgZXJyb3IgMTI4MiBpbiBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlci4KIFBBU1MgY29udGV4
dC5mcmFtZWJ1ZmZlclRleHR1cmUyRChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9S
X0FUVEFDSE1FTlQwLCBjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBH
TCBlcnJvciAxMjgyIGluIGZyYW1lYnVmZmVyVGV4dHVyZTJELgotUEFTUyBjb250ZXh0LmdldFBy
b2dyYW1QYXJhbWV0ZXIodW5kZWZpbmVkLCAwKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4
MiBpbiBnZXRQcm9ncmFtUGFyYW1ldGVyLgotUEFTUyBjb250ZXh0LmdldFByb2dyYW1JbmZvTG9n
KHVuZGVmaW5lZCwgMCkgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODIgaW4gZ2V0UHJvZ3Jh
bUluZm9Mb2cuCi1QQVNTIGNvbnRleHQuZ2V0U2hhZGVyUGFyYW1ldGVyKHVuZGVmaW5lZCwgMCkg
dGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODIgaW4gZ2V0U2hhZGVyUGFyYW1ldGVyLgotUEFT
UyBjb250ZXh0LmdldFNoYWRlckluZm9Mb2codW5kZWZpbmVkLCAwKSB0aHJldyBleGNlcHRpb24g
R0wgZXJyb3IgMTI4MiBpbiBnZXRTaGFkZXJJbmZvTG9nLgotUEFTUyBjb250ZXh0LmdldFNoYWRl
clNvdXJjZSh1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAxMjgyIGluIGdldFNo
YWRlclNvdXJjZS4KLVBBU1MgY29udGV4dC5nZXRVbmlmb3JtKHVuZGVmaW5lZCwgMCkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyLgotUEFTUyBjb250
ZXh0LmdldFVuaWZvcm1Mb2NhdGlvbih1bmRlZmluZWQsICdmb28nKSB0aHJldyBleGNlcHRpb24g
R0wgZXJyb3IgMTI4MiBpbiBnZXRVbmlmb3JtTG9jYXRpb24uCitQQVNTIGNvbnRleHQuZ2V0UHJv
Z3JhbVBhcmFtZXRlcih1bmRlZmluZWQsIDApIHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAxMjgx
IGluIGdldFByb2dyYW1QYXJhbWV0ZXIuCitQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2co
dW5kZWZpbmVkLCAwKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRQcm9ncmFt
SW5mb0xvZy4KK1BBU1MgY29udGV4dC5nZXRTaGFkZXJQYXJhbWV0ZXIodW5kZWZpbmVkLCAwKSB0
aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRTaGFkZXJQYXJhbWV0ZXIuCitQQVNT
IGNvbnRleHQuZ2V0U2hhZGVySW5mb0xvZyh1bmRlZmluZWQsIDApIHRocmV3IGV4Y2VwdGlvbiBH
TCBlcnJvciAxMjgxIGluIGdldFNoYWRlckluZm9Mb2cuCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVy
U291cmNlKHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gZ2V0U2hh
ZGVyU291cmNlLgorUEFTUyBjb250ZXh0LmdldFVuaWZvcm0odW5kZWZpbmVkLCAwKSB0aHJldyBl
eGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRVbmlmb3JtLgorUEFTUyBjb250ZXh0LmdldFVu
aWZvcm1Mb2NhdGlvbih1bmRlZmluZWQsICdmb28nKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3Ig
MTI4MSBpbiBnZXRVbmlmb3JtTG9jYXRpb24uCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>53725</attachid>
            <date>2010-04-19 15:02:04 -0700</date>
            <delta_ts>2010-04-19 15:02:04 -0700</delta_ts>
            <desc>Why fail too?</desc>
            <filename>uniform-location-diff.txt</filename>
            <type>text/plain</type>
            <size>832</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">LS0tIC9Vc2Vycy95YWFyL0Rldi9DaHJvbWl1bS9zcmMvd2Via2l0L0RlYnVnL2xheW91dC10ZXN0
LXJlc3VsdHMvZmFzdC9jYW52YXMvV2ViR0wvdW5pZm9ybS1sb2NhdGlvbi1leHBlY3RlZC50eHQg
CisrKyAvVXNlcnMveWFhci9EZXYvQ2hyb21pdW0vc3JjL3dlYmtpdC9EZWJ1Zy9sYXlvdXQtdGVz
dC1yZXN1bHRzL2Zhc3QvY2FudmFzL1dlYkdML3VuaWZvcm0tbG9jYXRpb24tYWN0dWFsLnR4dCAK
QEAgLTYsNyArNiw3IEBACiBQQVNTIGNvbnRleHRBLnVuaWZvcm1NYXRyaXg0ZnYobG9jYXRpb25B
LCBmYWxzZSwgbWF0KSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MiBpbiB1bmlmb3JtTWF0
cml4NGZ2LgogUEFTUyBjb250ZXh0QS51c2VQcm9ncmFtKHByb2dyYW1BMSkgaXMgdW5kZWZpbmVk
LgogUEFTUyBjb250ZXh0QS51bmlmb3JtTWF0cml4NGZ2KGxvY2F0aW9uQSwgZmFsc2UsIG1hdCkg
aXMgdW5kZWZpbmVkLgotUEFTUyBjb250ZXh0QS51bmlmb3JtTWF0cml4NGZ2KDAsIGZhbHNlLCBt
YXQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4K
K1BBU1MgY29udGV4dEEudW5pZm9ybU1hdHJpeDRmdigwLCBmYWxzZSwgbWF0KSB0aHJldyBleGNl
cHRpb24gR0wgZXJyb3IgMTI4MSBpbiB1bmlmb3JtTWF0cml4NGZ2LgogUEFTUyBjb250ZXh0QS51
c2VQcm9ncmFtKHByb2dyYW1TKSBpcyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHRBLnVuaWZvcm0x
aShsb2NhdGlvblN4LCAzKSBpcyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHRBLnVuaWZvcm0xZihs
b2NhdGlvbkFycmF5MCwgNC4wKSBpcyB1bmRlZmluZWQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54111</attachid>
            <date>2010-04-22 17:15:02 -0700</date>
            <delta_ts>2010-04-22 19:43:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37818-20100422171501.patch</filename>
            <type>text/plain</type>
            <size>42336</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhZTg4OGQ0Li4yNDZiYmYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDQt
MjIgIFlhYXIgU2Nobml0bWFuICA8eWFhckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXV0by1nZW5lcmF0ZSBXZWJHTFJlbmRl
cmluZ0NvbnRleHQgb3ZlcmxvYWRzIGluIFY4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNzgxOAorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wv
c2NyaXB0LXRlc3RzL3RleEltYWdlVGVzdC5qczogVGVzdCB3YXMgd3Jvbmc6IFBhc3NpbmcgMCB2
YWx1ZSBmb3IgYSBXZWJHTEFycmF5IGFyZ3VtZW50IGluIHRleEltYWdlMkQgc2hvdWxkIHRocm93
IHRoZSBzYW1lIGV4Y2VwdGlvbiBhcyB3aGVuIHBhc3NlZCB0byB0ZXh0U3ViSW1hZ2UyRC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4SW1hZ2VU
ZXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC90ZXhJbWFnZVRl
c3QtZXhwZWN0ZWQudHh0OiBDaGFuZ2VzIHRvIHJlZmxlY3QgdGVzdC4KKwogMjAxMC0wNC0yMSAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuIFVwZGF0aW5nIGNocm9taXVtIHRlc3QgZXhwZWNhdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvdGV4SW1hZ2VUZXN0LmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL3RleEltYWdlVGVzdC5q
cwppbmRleCA4ZmNhZWU0Li4xZTNmZGMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvdGV4SW1hZ2VUZXN0LmpzCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy90ZXhJbWFnZVRlc3QuanMKQEAgLTE4LDcg
KzE4LDggQEAgc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQudGV4SW1hZ2UyRChjb250ZXh0LlRF
WFRVUkVfMkQsIDAsIGNhbnZhczJkLCBmYWxzZSkiKTsKIHNob3VsZEJlVW5kZWZpbmVkKCJjb250
ZXh0LnRleEltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCB2aWRlbywgdHJ1ZSwgZmFsc2Up
Iik7CiAKIHNob3VsZFRocm93KCJjb250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJF
XzJEKSIpOwotc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0
LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgMCwgMCwgY29udGV4dC5SR0JBLCBjb250ZXh0LlVOU0lH
TkVEX0JZVEUsIDApIik7CitzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC50ZXhTdWJJbWFnZTJE
KGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCAwLCAwLCBjb250ZXh0LlJHQkEsIGNvbnRl
eHQuVU5TSUdORURfQllURSwgbnVsbCkiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LnRleFN1Yklt
YWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCAxMCwgMjAsIDAsIDAsIGNvbnRleHQuUkdCQSwg
Y29udGV4dC5VTlNJR05FRF9CWVRFLCAwKSIpOwogc2hvdWxkVGhyb3coImNvbnRleHQudGV4U3Vi
SW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgMCwgY29udGV4dC5VTlNJR05F
RF9CWVRFLCAwKSIpOwogc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQudGV4U3ViSW1hZ2UyRChj
b250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgaW1hZ2VEYXRhLCBmYWxzZSkiKTsKIHNob3Vs
ZEJlVW5kZWZpbmVkKCJjb250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAw
LCAxMCwgMjAsIGltYWdlKSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvdGV4SW1hZ2VUZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL3RleEltYWdlVGVzdC1leHBlY3RlZC50eHQKaW5kZXggMTdiYzc3ZC4uMzQ3YWVjYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4SW1hZ2VUZXN0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXhJbWFnZVRl
c3QtZXhwZWN0ZWQudHh0CkBAIC0xMSw3ICsxMSw4IEBAIFBBU1MgY29udGV4dC50ZXhJbWFnZTJE
KGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgaW1hZ2UpIGlzIHVuZGVmaW5lZC4KIFBBU1MgY29udGV4
dC50ZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgY2FudmFzMmQsIGZhbHNlKSBpcyB1
bmRlZmluZWQuCiBQQVNTIGNvbnRleHQudGV4SW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAs
IHZpZGVvLCB0cnVlLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgogUEFTUyBjb250ZXh0LnRleFN1Yklt
YWdlMkQoY29udGV4dC5URVhUVVJFXzJEKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFN5
bnRheCBlcnJvci4KLVBBU1MgY29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8y
RCwgMCwgMTAsIDIwLCAwLCAwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwg
MCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhU
VVJFXzJELCAwLCAxMCwgMjAsIDAsIDAsIGNvbnRleHQuUkdCQSwgY29udGV4dC5VTlNJR05FRF9C
WVRFLCBudWxsKSBpcyB1bmRlZmluZWQuCitGQUlMIGNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250
ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgMCwgMCwgY29udGV4dC5SR0JBLCBjb250ZXh0LlVO
U0lHTkVEX0JZVEUsIDApIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uIFdhcyB1bmRlZmluZWQu
CiBQQVNTIGNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAy
MCwgMCwgY29udGV4dC5VTlNJR05FRF9CWVRFLCAwKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJy
b3I6IFN5bnRheCBlcnJvci4KIFBBU1MgY29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVY
VFVSRV8yRCwgMCwgMTAsIDIwLCBpbWFnZURhdGEsIGZhbHNlKSBpcyB1bmRlZmluZWQuCiBQQVNT
IGNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgaW1h
Z2UpIGlzIHVuZGVmaW5lZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLW1hYy9mYXN0L2NhbnZhcy93ZWJnbC90ZXhJbWFnZVRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvY2FudmFzL3dlYmdsL3RleEltYWdl
VGVzdC1leHBlY3RlZC50eHQKaW5kZXggMDYwNjk2Yi4uZjUzNDJhYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvY2FudmFzL3dlYmdsL3RleEltYWdl
VGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFj
L2Zhc3QvY2FudmFzL3dlYmdsL3RleEltYWdlVGVzdC1leHBlY3RlZC50eHQKQEAgLTExLDcgKzEx
LDggQEAgUEFTUyBjb250ZXh0LnRleEltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCBpbWFn
ZSkgaXMgdW5kZWZpbmVkLgogUEFTUyBjb250ZXh0LnRleEltYWdlMkQoY29udGV4dC5URVhUVVJF
XzJELCAwLCBjYW52YXMyZCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KIFBBU1MgY29udGV4dC50ZXhJ
bWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgdmlkZW8sIHRydWUsIGZhbHNlKSBpcyB1bmRl
ZmluZWQuCiBQQVNTIGNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KLVBBU1Mg
Y29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCAwLCAw
LCBjb250ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwgMCkgaXMgdW5kZWZpbmVkLgor
UEFTUyBjb250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCAxMCwgMjAs
IDAsIDAsIGNvbnRleHQuUkdCQSwgY29udGV4dC5VTlNJR05FRF9CWVRFLCBudWxsKSBpcyB1bmRl
ZmluZWQuCitQQVNTIGNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAs
IDEwLCAyMCwgMCwgMCwgY29udGV4dC5SR0JBLCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIDApIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KIFBBU1Mg
Y29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCAwLCBj
b250ZXh0LlVOU0lHTkVEX0JZVEUsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VS
UjogRE9NIEV4Y2VwdGlvbiAxMi4KIFBBU1MgY29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQu
VEVYVFVSRV8yRCwgMCwgMTAsIDIwLCBpbWFnZURhdGEsIGZhbHNlKSBpcyB1bmRlZmluZWQuCiBQ
QVNTIGNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwg
aW1hZ2UpIGlzIHVuZGVmaW5lZC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggOTcwMGZmZS4uNTY4MGIzMiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
MC0wNC0yMiAgWWFhciBTY2huaXRtYW4gIDx5YWFyQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdXRvLWdlbmVyYXRlIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCBvdmVybG9hZHMgaW4gVjgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3ODE4CisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9j
dXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6IEFkZGVkIG1pc3Npbmcgb3ZlcmxvYWRz
IGZvciB0aGUgZm9sbG93aW5nOi4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dGV4SW1hZ2UyRCkKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dDo6dGV4U3ViSW1hZ2UyRCkKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaDogQWRkZWQgbWlzc2luZyBvdmVybG9hZHMuCisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbDogSURMIGRlZmluaXRpb24gb2Ygb3ZlcmxvYWRzLgor
CiAyMDA5LTA0LTIxICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcAppbmRleCAxYjg5MzZkLi43NWVmZjY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBA
IC0xMDUsODAgKzEwNSw2IEBAIHN0YXRpYyBpbnQqIGpzQXJyYXlUb0ludEFycmF5KHY4OjpIYW5k
bGU8djg6OkFycmF5PiBhcnJheSwgdWludDMyX3QgbGVuKQogICAgIHJldHVybiBkYXRhOwogfQog
Ci12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmJ1ZmZlckRh
dGFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygi
RE9NLldlYkdMUmVuZGVyaW5nQ29udGV4dC5idWZmZXJEYXRhKCkiKTsKLQotICAgIC8vIEZvcm1z
OgotICAgIC8vICogYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBXZWJHTEFycmF5IGRhdGEsIEdM
ZW51bSB1c2FnZSk7Ci0gICAgLy8gICAtIFNldHMgdGhlIGJ1ZmZlcidzIGRhdGEgZnJvbSB0aGUg
Z2l2ZW4gV2ViR0xBcnJheQotICAgIC8vICogYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBHTHNp
emVpcHRyIHNpemUsIEdMZW51bSB1c2FnZSk7Ci0gICAgLy8gICAtIFNldHMgdGhlIHNpemUgb2Yg
dGhlIGJ1ZmZlciB0byB0aGUgZ2l2ZW4gc2l6ZSBpbiBieXRlcwotICAgIGlmIChhcmdzLkxlbmd0
aCgpICE9IDMpIHsKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIp
OwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9Ci0KLSAg
ICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgYm9vbCBvazsKLSAgICBpbnQgdGFyZ2V0
ID0gdG9JbnQzMihhcmdzWzBdLCBvayk7Ci0gICAgaWYgKCFvaykgewotICAgICAgICBWOFByb3h5
OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVk
QnlJbnRlcmNlcHRvcigpOwotICAgIH0KLSAgICBpbnQgdXNhZ2UgPSB0b0ludDMyKGFyZ3NbMl0s
IG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihT
WU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0g
ICAgfQotICAgIGlmIChhcmdzWzFdLT5Jc0ludDMyKCkpIHsKLSAgICAgICAgaW50IHNpemUgPSB0
b0ludDMyKGFyZ3NbMV0pOwotICAgICAgICBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbkNvZGU7Ci0g
ICAgICAgIGNvbnRleHQtPmJ1ZmZlckRhdGEodGFyZ2V0LCBzaXplLCB1c2FnZSwgZXhjZXB0aW9u
Q29kZSk7Ci0gICAgfSBlbHNlIGlmIChWOFdlYkdMQXJyYXk6Okhhc0luc3RhbmNlKGFyZ3NbMV0p
KSB7Ci0gICAgICAgIFdlYkdMQXJyYXkqIGFycmF5ID0gVjhXZWJHTEFycmF5Ojp0b05hdGl2ZShh
cmdzWzFdLT5Ub09iamVjdCgpKTsKLSAgICAgICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2Rl
OwotICAgICAgICBjb250ZXh0LT5idWZmZXJEYXRhKHRhcmdldCwgYXJyYXksIHVzYWdlLCBleGNl
cHRpb25Db2RlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRp
b24oU1lOVEFYX0VSUik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigp
OwotICAgIH0KLSAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotfQotCi12ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmJ1ZmZlclN1YkRhdGFDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLldlYkdMUmVu
ZGVyaW5nQ29udGV4dC5idWZmZXJTdWJEYXRhKCkiKTsKLQotICAgIC8vIEZvcm1zOgotICAgIC8v
ICogYnVmZmVyU3ViRGF0YShHTGVudW0gdGFyZ2V0LCBHTGludHB0ciBvZmZzZXQsIFdlYkdMQXJy
YXkgZGF0YSk7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMykgewotICAgICAgICBWOFByb3h5
OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVk
QnlJbnRlcmNlcHRvcigpOwotICAgIH0KLQotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29u
dGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
LSAgICBib29sIG9rOwotICAgIGludCB0YXJnZXQgPSB0b0ludDMyKGFyZ3NbMF0sIG9rKTsKLSAg
ICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJS
KTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQotICAg
IGludCBvZmZzZXQgPSB0b0ludDMyKGFyZ3NbMV0sIG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAg
ICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJu
IG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQotICAgIGlmICghVjhXZWJHTEFycmF5
OjpIYXNJbnN0YW5jZShhcmdzWzJdKSkgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRp
b24oU1lOVEFYX0VSUik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigp
OwotICAgIH0KLSAgICBXZWJHTEFycmF5KiBhcnJheSA9IFY4V2ViR0xBcnJheTo6dG9OYXRpdmUo
YXJnc1syXS0+VG9PYmplY3QoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlOwot
ICAgIGNvbnRleHQtPmJ1ZmZlclN1YkRhdGEodGFyZ2V0LCBvZmZzZXQsIGFycmF5LCBleGNlcHRp
b25Db2RlKTsKLSAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotfQotCiBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoY29uc3QgV2ViR0xHZXRJbmZvJiBpbmZvKQogewog
ICAgIHN3aXRjaCAoaW5mby5nZXRUeXBlKCkpIHsKQEAgLTQ0MywyOTAgKzM2OSw2IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VmVydGV4QXR0cmli
Q2FsbGJhY2soY29uc3Qgdjg6CiAgICAgcmV0dXJuIGdldE9iamVjdFBhcmFtZXRlcihhcmdzLCBr
VmVydGV4QXR0cmliKTsKIH0KIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp0ZXhJbWFnZTJEQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
LXsKLSAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFJlbmRlcmluZ0NvbnRleHQudGV4SW1hZ2UyRCgp
Iik7Ci0KLSAgICAvLyBDdXJyZW50bHkgc3VwcG9ydGVkIGZvcm1zOgotICAgIC8vICogdm9pZCB0
ZXhJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLAotICAgIC8vICAgICAg
ICAgICAgICAgICAgIGluIEdMaW50IGludGVybmFsZm9ybWF0LAotICAgIC8vICAgICAgICAgICAg
ICAgICAgIGluIEdMc2l6ZWkgd2lkdGgsIGluIEdMc2l6ZWkgaGVpZ2h0LCBpbiBHTGludCBib3Jk
ZXIsCi0gICAgLy8gICAgICAgICAgICAgICAgICAgaW4gR0xlbnVtIGZvcm1hdCwgaW4gR0xlbnVt
IHR5cGUsIGluIFdlYkdMQXJyYXkgcGl4ZWxzKTsKLSAgICAvLyAqIHZvaWQgdGV4SW1hZ2UyRChp
biBHTGVudW0gdGFyZ2V0LCBpbiBHTGludCBsZXZlbCwgaW4gSW1hZ2VEYXRhIHBpeGVscywKLSAg
ICAvLyAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIEdMYm9vbGVhbiBmbGlwWSwgW09w
dGlvbmFsXSBpbiBHTGJvb2xlYW4gcHJlbXVsaXRwbHlBbHBoYSk7Ci0gICAgLy8gKiB2b2lkIHRl
eEltYWdlMkQoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xpbnQgbGV2ZWwsIGluIEhUTUxJbWFnZUVs
ZW1lbnQgaW1hZ2UsCi0gICAgLy8gICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBHTGJv
b2xlYW4gZmxpcFksIFtPcHRpb25hbF0gaW4gR0xib29sZWFuIHByZW11bHRpcGx5QWxwaGEpOwot
ICAgIC8vICogdm9pZCB0ZXhJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVs
LCBpbiBIVE1MQ2FudmFzRWxlbWVudCBpbWFnZSwKLSAgICAvLyAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWxdIGluIEdMYm9vbGVhbiBmbGlwWSwgW09wdGlvbmFsXSBpbiBHTGJvb2xlYW4gcHJl
bXVsdGlwbHlBbHBoYSk7Ci0gICAgLy8gKiB2b2lkIHRleEltYWdlMkQoaW4gR0xlbnVtIHRhcmdl
dCwgaW4gR0xpbnQgbGV2ZWwsIGluIEhUTUxWaWRlb0VsZW1lbnQgaW1hZ2UsCi0gICAgLy8gICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBHTGJvb2xlYW4gZmxpcFksIFtPcHRpb25hbF0g
aW4gR0xib29sZWFuIHByZW11bHRpcGx5QWxwaGEpOwotICAgIGlmIChhcmdzLkxlbmd0aCgpICE9
IDMgJiYKLSAgICAgICAgYXJncy5MZW5ndGgoKSAhPSA0ICYmCi0gICAgICAgIGFyZ3MuTGVuZ3Ro
KCkgIT0gNSAmJgotICAgICAgICBhcmdzLkxlbmd0aCgpICE9IDkpIHsKLSAgICAgICAgVjhQcm94
eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxl
ZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9Ci0KLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNv
bnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
Ci0gICAgYm9vbCBvazsKLSAgICBpbnQgdGFyZ2V0ID0gdG9JbnQzMihhcmdzWzBdLCBvayk7Ci0g
ICAgaWYgKCFvaykgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VS
Uik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KLSAg
ICBpbnQgbGV2ZWwgPSB0b0ludDMyKGFyZ3NbMV0sIG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAg
ICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJu
IG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQotCi0gICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPT0gMyB8fAotICAgICAgICBhcmdzLkxlbmd0
aCgpID09IDQgfHwKLSAgICAgICAgYXJncy5MZW5ndGgoKSA9PSA1KSB7Ci0gICAgICAgIGJvb2wg
ZmxpcFkgPSBmYWxzZTsKLSAgICAgICAgYm9vbCBwcmVtdWx0aXBseUFscGhhID0gZmFsc2U7Ci0g
ICAgICAgIGlmIChhcmdzLkxlbmd0aCgpID49IDQpCi0gICAgICAgICAgICBmbGlwWSA9IGFyZ3Nb
M10tPkJvb2xlYW5WYWx1ZSgpOwotICAgICAgICBpZiAoYXJncy5MZW5ndGgoKSA+PSA1KQotICAg
ICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYSA9IGFyZ3NbNF0tPkJvb2xlYW5WYWx1ZSgpOwotCi0g
ICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmcgPSBhcmdzWzJdOwotICAgICAgICBpZiAo
VjhIVE1MSW1hZ2VFbGVtZW50OjpIYXNJbnN0YW5jZShhcmcpKSB7Ci0gICAgICAgICAgICBIVE1M
SW1hZ2VFbGVtZW50KiBlbGVtZW50ID0gVjhIVE1MSW1hZ2VFbGVtZW50Ojp0b05hdGl2ZSh2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZykpOwotICAgICAgICAgICAgY29udGV4dC0+dGV4
SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBlbGVtZW50LCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwg
ZWMpOwotICAgICAgICB9IGVsc2UgaWYgKFY4SFRNTENhbnZhc0VsZW1lbnQ6Okhhc0luc3RhbmNl
KGFyZykpIHsKLSAgICAgICAgICAgIEhUTUxDYW52YXNFbGVtZW50KiBlbGVtZW50ID0gVjhIVE1M
Q2FudmFzRWxlbWVudDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmcp
KTsKLSAgICAgICAgICAgIGNvbnRleHQtPnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgZWxlbWVu
dCwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIGVjKTsKLSAgICAgICAgfSBlbHNlIGlmKFY4SW1h
Z2VEYXRhOjpIYXNJbnN0YW5jZShhcmcpKSB7Ci0gICAgICAgICAgICBJbWFnZURhdGEqIGltYWdl
RWxlbWVudCA9IFY4SW1hZ2VEYXRhOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpD
YXN0KGFyZykpOwotICAgICAgICAgICAgY29udGV4dC0+dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVs
LCBpbWFnZUVsZW1lbnQsIGZsaXBZLCBwcmVtdWx0aXBseUFscGhhLCBlYyk7Ci0gICAgICAgIH0g
ZWxzZSBpZiAoVjhIVE1MVmlkZW9FbGVtZW50OjpIYXNJbnN0YW5jZShhcmcpKSB7Ci0gICAgICAg
ICAgICBIVE1MVmlkZW9FbGVtZW50KiBlbGVtZW50ID0gVjhIVE1MVmlkZW9FbGVtZW50Ojp0b05h
dGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZykpOwotICAgICAgICAgICAgY29u
dGV4dC0+dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBlbGVtZW50LCBmbGlwWSwgcHJlbXVsdGlw
bHlBbHBoYSwgZWMpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgLy8g
RklYTUU6IGNvbnNpZGVyIGRpZmZlcmVudCAvIGJldHRlciBleGNlcHRpb24gdHlwZS4KLSAgICAg
ICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgICAg
IHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgICAgICB9Ci0gICAgICAgIC8v
IEZhbGwgdGhyb3VnaAotICAgIH0gZWxzZSBpZiAoYXJncy5MZW5ndGgoKSA9PSA5KSB7Ci0gICAg
ICAgIGludCBpbnRlcm5hbGZvcm1hdCA9IHRvSW50MzIoYXJnc1syXSwgb2spOwotICAgICAgICBp
ZiAoIW9rKSB7Ci0gICAgICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VS
Uik7Ci0gICAgICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICAg
ICAgfQotICAgICAgICBpbnQgd2lkdGggPSB0b0ludDMyKGFyZ3NbM10sIG9rKTsKLSAgICAgICAg
aWYgKCFvaykgewotICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9F
UlIpOwotICAgICAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgaW50IGhlaWdodCA9IHRvSW50MzIoYXJnc1s0XSwgb2spOwotICAgICAg
ICBpZiAoIW9rKSB7Ci0gICAgICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFY
X0VSUik7Ci0gICAgICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAg
ICAgICAgfQotICAgICAgICBpbnQgYm9yZGVyID0gdG9JbnQzMihhcmdzWzVdLCBvayk7Ci0gICAg
ICAgIGlmICghb2spIHsKLSAgICAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5U
QVhfRVJSKTsKLSAgICAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwot
ICAgICAgICB9Ci0gICAgICAgIGludCBmb3JtYXQgPSB0b0ludDMyKGFyZ3NbNl0sIG9rKTsKLSAg
ICAgICAgaWYgKCFvaykgewotICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZ
TlRBWF9FUlIpOwotICAgICAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7
Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHR5cGUgPSB0b0ludDMyKGFyZ3NbN10sIG9rKTsKLSAg
ICAgICAgaWYgKCFvaykgewotICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZ
TlRBWF9FUlIpOwotICAgICAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7
Ci0gICAgICAgIH0KLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZyA9IGFyZ3NbOF07
Ci0gICAgICAgIGlmICghYXJnLT5Jc09iamVjdCgpKQotICAgICAgICAvLyBBc3N1bWUgdGhhdCB0
aGUgdXNlciBpcyBwYXNzaW5nIG51bGwgZm9yIHRleHR1cmUKLSAgICAgICAgICAgIGNvbnRleHQt
PnRleEltYWdlMkQodGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZl
bCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxmb3JtYXQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRl
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlYyk7Ci0gICAgIGVsc2UgaWYg
KFY4V2ViR0xBcnJheTo6SGFzSW5zdGFuY2UoYXJnKSkgewotICAgICAgICAgICAgV2ViR0xBcnJh
eSogYXJyYXkgPSBWOFdlYkdMQXJyYXk6OnRvTmF0aXZlKGFyZy0+VG9PYmplY3QoKSk7Ci0gICAg
ICAgICAgICBjb250ZXh0LT50ZXhJbWFnZTJEKHRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV2ZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVy
bmFsZm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBib3JkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1h
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXJyYXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVjKTsKLSAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaAotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICAg
ICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgICAgIH0KLSAgICB9IGVs
c2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgVjhQcm94eTo6c2V0
RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50
ZXJjZXB0b3IoKTsKLSAgICB9Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERP
TUV4Y2VwdGlvbihlYyk7Ci0gICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsK
LSAgICB9Ci0gICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLX0KLQotdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFJlbmRl
cmluZ0NvbnRleHQudGV4U3ViSW1hZ2UyRCgpIik7Ci0KLSAgICAvLyBDdXJyZW50bHkgc3VwcG9y
dGVkIGZvcm1zOgotICAgIC8vICogdm9pZCB0ZXhTdWJJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQs
IGluIEdMaW50IGxldmVsLCBpbiBHTGludCB4b2Zmc2V0LCBpbiBHTGludCB5b2Zmc2V0LCAKLSAg
ICAvLyAgICAgICAgICAgICAgICAgICAgICBpbiBHTHNpemVpIHdpZHRoLCBpbiBHTHNpemVpIGhl
aWdodCwgCi0gICAgLy8gICAgICAgICAgICAgICAgICAgICAgaW4gR0xlbnVtIGZvcm1hdCwgaW4g
R0xlbnVtIHR5cGUsIGluIFdlYkdMQXJyYXkgcGl4ZWxzKTsKLSAgICAvLyAqIHZvaWQgdGV4U3Vi
SW1hZ2UyRChpbiBHTGVudW0gdGFyZ2V0LCBpbiBHTGludCBsZXZlbCwgaW4gR0xpbnQgeG9mZnNl
dCwgaW4gR0xpbnQgeW9mZnNldCwKLSAgICAvLyAgICAgICAgICAgICAgICAgICAgICBpbiBJbWFn
ZURhdGEgcGl4ZWxzLCBbT3B0aW9uYWxdIEdMYm9vbGVhbiBmbGlwWSwgW09wdGlvbmFsXSBpbiBw
cmVtdWx0aXBseUFscGhhKTsKLSAgICAvLyAqIHZvaWQgdGV4U3ViSW1hZ2UyRChpbiBHTGVudW0g
dGFyZ2V0LCBpbiBHTGludCBsZXZlbCwgaW4gR0xpbnQgeG9mZnNldCwgaW4gR0xpbnQgeW9mZnNl
dCwgCi0gICAgLy8gICAgICAgICAgICAgICAgICAgICAgaW4gSFRNTEltYWdlRWxlbWVudCBpbWFn
ZSwgW09wdGlvbmFsXSBHTGJvb2xlYW4gZmxpcFksIFtPcHRpb25hbF0gaW4gcHJlbXVsdGlwbHlB
bHBoYSk7Ci0gICAgLy8gKiB2b2lkIHRleFN1YkltYWdlMkQoaW4gR0xlbnVtIHRhcmdldCwgaW4g
R0xpbnQgbGV2ZWwsIGluIEdMaW50IHhvZmZzZXQsIGluIEdMaW50IHlvZmZzZXQsIAotICAgIC8v
ICAgICAgICAgICAgICAgICAgICAgIGluIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhcywgW09wdGlv
bmFsXSBHTGJvb2xlYW4gZmxpcFksIFtPcHRpb25hbF0gaW4gcHJlbXVsdGlwbHlBbHBoYSk7Ci0g
ICAgLy8gKiB2b2lkIHRleFN1YkltYWdlMkQoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xpbnQgbGV2
ZWwsIGluIEdMaW50IHhvZmZzZXQsIGluIEdMaW50IHlvZmZzZXQsIAotICAgIC8vICAgICAgICAg
ICAgICAgICAgICAgIGluIEhUTUxWaWRlb0VsZW1lbnQgdmlkZW8sIFtPcHRpb25hbF0gR0xib29s
ZWFuIGZsaXBZLCBbT3B0aW9uYWxdIGluIHByZW11bHRpcGx5QWxwaGEpOwotCi0gICAgaWYgKGFy
Z3MuTGVuZ3RoKCkgIT0gNSAmJgotICAgICAgICBhcmdzLkxlbmd0aCgpICE9IDYgJiYKLSAgICAg
ICAgYXJncy5MZW5ndGgoKSAhPSA3ICYmCi0gICAgICAgIGFyZ3MuTGVuZ3RoKCkgIT0gOSkgewot
ICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgIHJl
dHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KLQotICAgIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKLSAgICBib29sIG9rOwotICAgIGludCB0YXJnZXQgPSB0b0ludDMyKGFy
Z3NbMF0sIG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2Vw
dGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9y
KCk7Ci0gICAgfQotICAgIGludCBsZXZlbCA9IHRvSW50MzIoYXJnc1sxXSwgb2spOwotICAgIGlm
ICghb2spIHsKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwot
ICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9Ci0gICAgaW50
IHhvZmYgPSB0b0ludDMyKGFyZ3NbMl0sIG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4
UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhh
bmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQotICAgIGludCB5b2ZmID0gdG9JbnQzMihhcmdz
WzNdLCBvayk7Ci0gICAgaWYgKCFvaykgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRp
b24oU1lOVEFYX0VSUik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigp
OwotICAgIH0KLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGlmIChhcmdzLkxlbmd0
aCgpID09IDUgfHwKLSAgICAgICAgYXJncy5MZW5ndGgoKSA9PSA2IHx8Ci0gICAgICAgIGFyZ3Mu
TGVuZ3RoKCkgPT0gNykgewotICAgICAgICBib29sIGZsaXBZID0gZmFsc2U7Ci0gICAgICAgIGJv
b2wgcHJlbXVsdGlwbHlBbHBoYSA9IGZhbHNlOwotICAgICAgICBpZiAoYXJncy5MZW5ndGgoKSA+
PSA2KQotICAgICAgICAgICAgZmxpcFkgPSBhcmdzWzVdLT5Cb29sZWFuVmFsdWUoKTsKLSAgICAg
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPj0gNykKLSAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGEg
PSBhcmdzWzZdLT5Cb29sZWFuVmFsdWUoKTsKLQotICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gYXJnID0gYXJnc1s0XTsKLSAgICAgICAgaWYgKFY4SFRNTEltYWdlRWxlbWVudDo6SGFzSW5z
dGFuY2UoYXJnKSkgewotICAgICAgICAgICAgSFRNTEltYWdlRWxlbWVudCogZWxlbWVudCA9IFY4
SFRNTEltYWdlRWxlbWVudDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChh
cmcpKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwg
eG9mZiwgeW9mZiwgZWxlbWVudCwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIGVjKTsKLSAgICAg
ICAgfSBlbHNlIGlmIChWOEhUTUxDYW52YXNFbGVtZW50OjpIYXNJbnN0YW5jZShhcmcpKSB7Ci0g
ICAgICAgICAgICBIVE1MQ2FudmFzRWxlbWVudCogZWxlbWVudCA9IFY4SFRNTENhbnZhc0VsZW1l
bnQ6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnKSk7Ci0gICAgICAg
ICAgICBjb250ZXh0LT50ZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmYsIHlvZmYsIGVs
ZW1lbnQsIGZsaXBZLCBwcmVtdWx0aXBseUFscGhhLCBlYyk7Ci0gICAgICAgIH0gZWxzZSBpZihW
OEltYWdlRGF0YTo6SGFzSW5zdGFuY2UoYXJnKSkgewotICAgICAgICAgICAgSW1hZ2VEYXRhKiBp
bWFnZUVsZW1lbnQgPSBWOEltYWdlRGF0YTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0
Pjo6Q2FzdChhcmcpKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnRleFN1YkltYWdlMkQodGFyZ2V0
LCBsZXZlbCwgeG9mZiwgeW9mZiwgaW1hZ2VFbGVtZW50LCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBo
YSwgZWMpOwotICAgICAgICB9IGVsc2UgaWYgKFY4SFRNTFZpZGVvRWxlbWVudDo6SGFzSW5zdGFu
Y2UoYXJnKSkgewotICAgICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCogZWxlbWVudCA9IFY4SFRN
TFZpZGVvRWxlbWVudDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmcp
KTsKLSAgICAgICAgICAgIGNvbnRleHQtPnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9m
ZiwgeW9mZiwgZWxlbWVudCwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIGVjKTsKLSAgICAgICAg
fQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciBkaWZmZXJl
bnQgLyBiZXR0ZXIgZXhjZXB0aW9uIHR5cGUuCi0gICAgICAgICAgICBWOFByb3h5OjpzZXRET01F
eGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50
ZXJjZXB0b3IoKTsKLSAgICAgICAgfQotICAgICAgICAvLyBGYWxsIHRocm91Z2gKLSAgICB9IGVs
c2UgaWYgKGFyZ3MuTGVuZ3RoKCkgPT0gOSkgewotICAgICAgICBpbnQgd2lkdGggPSB0b0ludDMy
KGFyZ3NbNF0sIG9rKTsKLSAgICAgICAgaWYgKCFvaykgewotICAgICAgICAgICAgVjhQcm94eTo6
c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICAgICAgcmV0dXJuIG5vdEhhbmRs
ZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGhlaWdodCA9IHRvSW50
MzIoYXJnc1s1XSwgb2spOwotICAgICAgICBpZiAoIW9rKSB7Ci0gICAgICAgICAgICBWOFByb3h5
OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgICAgICByZXR1cm4gbm90SGFu
ZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9ybWF0ID0gdG9J
bnQzMihhcmdzWzZdLCBvayk7Ci0gICAgICAgIGlmICghb2spIHsKLSAgICAgICAgICAgIFY4UHJv
eHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgICAgIHJldHVybiBub3RI
YW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgICAgICB9Ci0gICAgICAgIGludCB0eXBlID0gdG9J
bnQzMihhcmdzWzddLCBvayk7Ci0gICAgICAgIGlmICghb2spIHsKLSAgICAgICAgICAgIFY4UHJv
eHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgICAgIHJldHVybiBub3RI
YW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgICAgICB9Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBhcmcgPSBhcmdzWzhdOwotICAgICAgICBpZiAoIWFyZy0+SXNPYmplY3QoKSkKLSAg
ICAgICAgLy8gQXNzdW1lIHRoYXQgdGhlIHVzZXIgaXMgcGFzc2luZyBudWxsIGZvciB0ZXh0dXJl
Ci0gICAgICAgICAgICBjb250ZXh0LT50ZXhTdWJJbWFnZTJEKHRhcmdldCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHhvZmYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvZmYs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlw
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZWMpOwotICAgICBlbHNlIGlmIChWOFdlYkdMQXJyYXk6Okhh
c0luc3RhbmNlKGFyZykpIHsKLSAgICAgICAgICAgIFdlYkdMQXJyYXkqIGFycmF5ID0gVjhXZWJH
TEFycmF5Ojp0b05hdGl2ZShhcmctPlRvT2JqZWN0KCkpOwotICAgICAgICAgICAgY29udGV4dC0+
dGV4U3ViSW1hZ2UyRCh0YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldmVsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4b2ZmLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5b2ZmLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFycmF5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlYyk7Ci0gICAgICAgICAgICAvLyBGYWxsIHRocm91Z2gKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAg
ICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgICAgICB9Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIFY4UHJveHk6OnNl
dERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUlu
dGVyY2VwdG9yKCk7Ci0gICAgfQotICAgIGlmIChlYykgewotICAgICAgICBWOFByb3h5OjpzZXRE
T01FeGNlcHRpb24oZWMpOwotICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7
Ci0gICAgfQotICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci19Ci0KIGVudW0gRnVuY3Rpb25U
b0NhbGwgewogICAgIGtVbmlmb3JtMXYsIGtVbmlmb3JtMnYsIGtVbmlmb3JtM3YsIGtVbmlmb3Jt
NHYsCiAgICAga1ZlcnRleEF0dHJpYjF2LCBrVmVydGV4QXR0cmliMnYsIGtWZXJ0ZXhBdHRyaWIz
diwga1ZlcnRleEF0dHJpYjR2CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5jcHAgYi9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5jcHAKaW5kZXggZDlhZjc1Ny4uNzViYjVlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMTc3Nyw2ICsxNzc3LDE4IEBAIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5z
aWduZWQgbGV2ZWwsIHVuc2lnbmVkCiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0
ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEltYWdlRGF0YSogcGl4
ZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgdGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBwaXhlbHMsIDAsIDAsIGVj
KTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQg
dGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSW1hZ2VEYXRhKiBwaXhlbHMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICB0ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHBpeGVscywgZmxpcFksIDAsIGVjKTsK
K30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFy
Z2V0LCB1bnNpZ25lZCBsZXZlbCwgSW1hZ2VEYXRhKiBwaXhlbHMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIEZJWE1FOiBGb3Igbm93IHdlIGlnbm9yZSBh
bnkgZXJyb3JzIHJldHVybmVkCkBAIC0xNzg3LDYgKzE3OTksMTkgQEAgdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwg
SW1hZ2VEYXQKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCisKK3Zv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5z
aWduZWQgbGV2ZWwsIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgdGV4SW1hZ2Uy
RCh0YXJnZXQsIGxldmVsLCBpbWFnZSwgMCwgMCwgZWMpOworfQorCit2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBI
VE1MSW1hZ2VFbGVtZW50KiBpbWFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgZmxpcFksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHRleEltYWdlMkQo
dGFyZ2V0LCBsZXZlbCwgaW1hZ2UsIGZsaXBZLCAwLCBlYyk7Cit9CisKIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWws
IEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKQEAgLTE4MDgsNyArMTgzMywxOSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MSW1hZwog
fQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJn
ZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0
aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHRleEltYWdlMkQodGFyZ2V0
LCBsZXZlbCwgY2FudmFzLCAwLCAwLCBlYyk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEhUTUxDYW52
YXNFbGVtZW50KiBjYW52YXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICB0ZXhJbWFnZTJEKHRhcmdl
dCwgbGV2ZWwsIGNhbnZhcywgZmxpcFksIDAsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRN
TENhbnZhc0VsZW1lbnQqIGNhbnZhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgZWMgPSAwOwogICAgIGlmICghY2FudmFzKSB7CkBAIC0xODI4LDcgKzE4NjUs
MTkgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFy
Z2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRNTENhbnYKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRNTFZp
ZGVvRWxlbWVudCogdmlkZW8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmIGVj
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSYg
ZWMpCit7CisgICAgdGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB2aWRlbywgMCwgMCwgZWMpOwor
fQorCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJn
ZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MVmlkZW9FbGVtZW50KiB2aWRlbywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIHRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgdmlkZW8sIGZsaXBZLCAwLCBlYyk7
Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRh
cmdldCwgdW5zaWduZWQgbGV2ZWwsIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBs
eUFscGhhLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBGSVhNRTogTmVlZCBpbXBsZW1l
bnQgdGhpcyBjYWxsCiAgICAgVU5VU0VEX1BBUkFNKHRhcmdldCk7CkBAIC0xODU0LDggKzE5MDMs
OCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4UGFyYW1ldGVyaSh1bnNpZ25lZCB0
YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBpbnQgcAogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNp
Z25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1h
dCwgdW5zaWduZWQgdHlwZSwgV2ViR0xBcnJheSogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJiBlYykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHdpZHRo
LCB1bnNpZ25lZCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIFdlYkdMQXJyYXkqIHBpeGVscywg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gRklYTUU6IEZvciBub3cgd2UgaWdub3JlIGFu
eSBlcnJvcnMgcmV0dXJuZWQKICAgICAvLyBGSVhNRTogTmVlZCB0byBtYWtlIHN1cmUgcGFzc2Vk
IGJ1ZmZlciBoYXMgZW5vdWdoIGJ5dGVzIHRvIGRlZmluZSB0aGUgdGV4dHVyZQpAQCAtMTg2NSw2
ICsxOTE0LDE4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVu
c2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnCiB9CiAKIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2
ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZURhdGEqIHBpeGVscywgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgdGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zm
c2V0LCBwaXhlbHMsIDAsIDAsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQg
eG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEltYWdlRGF0YSogcGl4ZWxzLCBib29sIGZsaXBZLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICB0ZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZz
ZXQsIHBpeGVscywgZmxpcFksIDAsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWdu
ZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEltYWdlRGF0YSogcGl4ZWxzLCBib29sIGZsaXBZLCBib29sIHByZW11
bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIEZJWE1FOiBGb3Igbm93
IHdlIGlnbm9yZSBhbnkgZXJyb3JzIHJldHVybmVkCkBAIC0xODc2LDYgKzE5MzcsMTggQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1
bnNpZ25lZCBsZXZlbCwgdW5zaWcKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRl
eFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9m
ZnNldCwgdW5zaWduZWQgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICB0ZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIGltYWdl
LCAwLCAwLCBlYyk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFn
ZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVu
c2lnbmVkIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZSwgYm9vbCBmbGlwWSwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgdGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBp
bWFnZSwgZmxpcFksIDAsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRl
eFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9m
ZnNldCwgdW5zaWduZWQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlLCBib29sIGZsaXBZLCBib29sIHByZW11
bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIEZJWE1FOiBGb3Igbm93
IHdlIGlnbm9yZSBhbnkgZXJyb3JzIHJldHVybmVkCkBAIC0xODk2LDYgKzE5NjksMTggQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1
bnNpZ25lZCBsZXZlbCwgdW5zaWcKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRl
eFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9m
ZnNldCwgdW5zaWduZWQgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIHRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgY2Fu
dmFzLCAwLCAwLCBlYyk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJ
bWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQs
IHVuc2lnbmVkIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLCBib29sIGZsaXBZLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICB0ZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZz
ZXQsIGNhbnZhcywgZmxpcFksIDAsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWdu
ZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIGJvb2wgZmxpcFksIGJv
b2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSAwOwpA
QCAtMTkxNiw2ICsyMDAxLDE4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJ
bWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnCiB9CiAKIHZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5z
aWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1MVmlkZW9FbGVtZW50KiB2aWRl
bywgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgdGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVs
LCB4b2Zmc2V0LCB5b2Zmc2V0LCB2aWRlbywgMCwgMCwgZWMpOworfQorCit2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxl
dmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sIGJvb2wg
ZmxpcFksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHRleFN1YkltYWdlMkQodGFyZ2V0LCBs
ZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgdmlkZW8sIGZsaXBZLCAwLCBlYyk7Cit9CisKK3ZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5z
aWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1MVmlkZW9FbGVtZW50KiB2aWRl
bywgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICAvLyBGSVhNRTogTmVlZCB0byBpbXBsZW1lbnQgdGhpcyBjYWxsCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIGIvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAppbmRleCA5YzU4YTUzLi4yOWUzYzc3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5o
CisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTE5
OSwxNCArMTk5LDE4IEBAIGNsYXNzIFdlYktpdENTU01hdHJpeDsKICAgICAgICAgdm9pZCB0ZXhJ
bWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIGludGVybmFs
Zm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVk
IGhlaWdodCwgdW5zaWduZWQgYm9yZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCBXZWJHTEFycmF5KiBwaXhlbHMsIEV4Y2VwdGlvbkNv
ZGUmKTsKLSAgICAgICAgdm9pZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQg
bGV2ZWwsIEltYWdlRGF0YSogcGl4ZWxzLAotICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBm
bGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgICAgIHZv
aWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MSW1hZ2VF
bGVtZW50KiBpbWFnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYpOwotICAgICAgICB2b2lkIHRleEltYWdl
MkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRNTENhbnZhc0VsZW1lbnQqIGNh
bnZhcywKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYpOwotICAgICAgICB2b2lkIHRleEltYWdlMkQodW5zaWdu
ZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sCi0gICAg
ICAgICAgICAgICAgICAgICAgICBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwg
dW5zaWduZWQgbGV2ZWwsIEltYWdlRGF0YSogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJik7CisgICAg
ICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBJbWFn
ZURhdGEqIHBpeGVscywgYm9vbCBmbGlwWSwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lk
IHRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSW1hZ2VEYXRhKiBw
aXhlbHMsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYp
OworICAgICAgICB2b2lkIHRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZl
bCwgSFRNTEltYWdlRWxlbWVudCogaW1hZ2UsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9p
ZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEhUTUxJbWFnZUVs
ZW1lbnQqIGltYWdlLCBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQg
dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MSW1hZ2VFbGVt
ZW50KiBpbWFnZSwgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25D
b2RlJik7CisgICAgICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVk
IGxldmVsLCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLCBFeGNlcHRpb25Db2RlJik7CisgICAg
ICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1M
Q2FudmFzRWxlbWVudCogY2FudmFzLCBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJik7CisgICAg
ICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1M
Q2FudmFzRWxlbWVudCogY2FudmFzLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdl
dCwgdW5zaWduZWQgbGV2ZWwsIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxl
dmVsLCBIVE1MVmlkZW9FbGVtZW50KiB2aWRlbywgYm9vbCBmbGlwWSwgRXhjZXB0aW9uQ29kZSYp
OworICAgICAgICB2b2lkIHRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZl
bCwgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlB
bHBoYSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgICAgIHZvaWQgdGV4UGFyYW1ldGVyZih1bnNp
Z25lZCB0YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBmbG9hdCBwYXJhbSk7CiAgICAgICAgIHZvaWQg
dGV4UGFyYW1ldGVyaSh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBpbnQgcGFyYW0p
OwpAQCAtMjE0LDE0ICsyMTgsMTggQEAgY2xhc3MgV2ViS2l0Q1NTTWF0cml4OwogICAgICAgICB2
b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWdu
ZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIFdlYkdMQXJyYXkqIHBpeGVscywg
RXhjZXB0aW9uQ29kZSYpOwotICAgICAgICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFy
Z2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlRGF0YSogcGl4ZWxzLCBib29sIGZsaXBZ
LCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAgICAgdm9pZCB0
ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhv
ZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1M
SW1hZ2VFbGVtZW50KiBpbWFnZSwgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBF
eGNlcHRpb25Db2RlJik7Ci0gICAgICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJn
ZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcywgYm9v
bCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgICAg
IHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNp
Z25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlB
bHBoYSwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWdu
ZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9m
ZnNldCwgSW1hZ2VEYXRhKiBwaXhlbHMsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0
ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhv
ZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsIEltYWdlRGF0YSogcGl4ZWxzLCBib29sIGZsaXBZLCBF
eGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJn
ZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LCBJ
bWFnZURhdGEqIHBpeGVscywgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNl
cHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQs
IHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LCBIVE1M
SW1hZ2VFbGVtZW50KiBpbWFnZSwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIHRleFN1
YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNl
dCwgdW5zaWduZWQgeW9mZnNldCwgSFRNTEltYWdlRWxlbWVudCogaW1hZ2UsIGJvb2wgZmxpcFks
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRh
cmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQs
IEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxw
aGEsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVk
IHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZz
ZXQsIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAg
dm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2ln
bmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMs
IGJvb2wgZmxpcFksIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJE
KHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2ln
bmVkIHlvZmZzZXQsIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIGJvb2wgZmxpcFksIGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIHRleFN1Yklt
YWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwg
dW5zaWduZWQgeW9mZnNldCwgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQg
bGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsIEhUTUxWaWRlb0VsZW1l
bnQqIHZpZGVvLCBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4
U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zm
c2V0LCB1bnNpZ25lZCB5b2Zmc2V0LCBIVE1MVmlkZW9FbGVtZW50KiB2aWRlbywgYm9vbCBmbGlw
WSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAgICAgdm9p
ZCB1bmlmb3JtMWYoY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBmbG9hdCB4
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgICAgIHZvaWQgdW5pZm9ybTFmdihjb25zdCBXZWJHTFVu
aWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIFdlYkdMRmxvYXRBcnJheSogdiwgRXhjZXB0aW9uQ29k
ZSYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuaWRsIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCmlu
ZGV4IGEyNTc0NTIuLmI3NzUzNzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5pZGwKQEAgLTQ3NCwxMyArNDc0LDE1IEBAIG1vZHVsZSBodG1sIHsKICAg
ICAgICAgdm9pZCAgICAgICAgIGJsZW5kRnVuYyhpbiB1bnNpZ25lZCBsb25nIHNmYWN0b3IsIGlu
IHVuc2lnbmVkIGxvbmcgZGZhY3Rvcik7CiAgICAgICAgIHZvaWQgICAgICAgICBibGVuZEZ1bmNT
ZXBhcmF0ZShpbiB1bnNpZ25lZCBsb25nIHNyY1JHQiwgaW4gdW5zaWduZWQgbG9uZyBkc3RSR0Is
IGluIHVuc2lnbmVkIGxvbmcgc3JjQWxwaGEsIGluIHVuc2lnbmVkIGxvbmcgZHN0QWxwaGEpOwog
Ci0gICAgICAgIC8vIFN1cHBvcnRlZCBmb3JtczoKLSAgICAgICAgLy8gICB2b2lkIGJ1ZmZlckRh
dGEgKGluIEdMZW51bSB0YXJnZXQsIGluIEdMc2l6ZWkgc2l6ZSwgaW4gR0xlbnVtIHVzYWdlKTsK
LSAgICAgICAgLy8gICB2b2lkIGJ1ZmZlckRhdGEgKGluIEdMZW51bSB0YXJnZXQsIGluIFdlYkdM
QXJyYXkgZGF0YSwgaW4gR0xlbnVtIHVzYWdlKTsKKyNpZiBkZWZpbmVkKFY4X0JJTkRJTkcpICYm
IFY4X0JJTkRJTkcKKyAgICAgICAgdm9pZCAgICAgICAgIGJ1ZmZlckRhdGEoaW4gdW5zaWduZWQg
bG9uZyB0YXJnZXQsIGluIFdlYkdMQXJyYXkgZGF0YSwgaW4gdW5zaWduZWQgbG9uZyB1c2FnZSkg
cmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICB2b2lkICAgICAgICAgYnVmZmVyRGF0YShp
biB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBzaXplLCBpbiB1bnNpZ25lZCBsb25nIHVz
YWdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgICAgICAgICBidWZmZXJT
dWJEYXRhKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIG9mZnNldCwgaW4gV2ViR0xB
cnJheSBkYXRhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisjZWxzZQorICAgICAgICAvLyBGSVhN
RTogVW5mb3JrIG9uY2UgSlNDIHN1cHBvcnRzIG92ZXJsb2FkIGdlbmVyYXRpb24gdG9vLgogICAg
ICAgICBbQ3VzdG9tXSB2b2lkIGJ1ZmZlckRhdGEoKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAg
ICAgICAgLy8gU3VwcG9ydGVkIGZvcm1zOgotICAgICAgICAvLyAgIHZvaWQgYnVmZmVyU3ViRGF0
YSAoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xzaXplaXB0ciBvZmZzZXQsIGluIFdlYkdMQXJyYXkg
ZGF0YSk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgYnVmZmVyU3ViRGF0YSgpIHJhaXNlcyhET01F
eGNlcHRpb24pOworI2VuZGlmCiAKICAgICAgICAgdW5zaWduZWQgbG9uZyBjaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0KTsKICAgICAgICAgdm9pZCAgICAgICAg
IGNsZWFyKGluIHVuc2lnbmVkIGxvbmcgbWFzayk7CkBAIC02MTEsMzIgKzYxMywzNCBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgICAgIHZvaWQgICAgICAgICB0ZXhQYXJhbWV0ZXJpKGluIHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lLCBpbiBsb25nIHBhcmFtKTsKIAog
ICAgICAgICAvLyBTdXBwb3J0ZWQgZm9ybXM6Ci0gICAgICAgIC8vICAgdm9pZCB0ZXhJbWFnZTJE
KGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBHTGVudW0gaW50ZXJuYWxmb3Jt
YXQsIGluIEdMc2l6ZWkgd2lkdGgsIGluIEdMc2l6ZWkgaGVpZ2h0LCAKLSAgICAgICAgLy8gICAg
ICAgICAgICAgICAgICAgaW4gR0xpbnQgYm9yZGVyLCBpbiBHTGVudW0gZm9ybWF0LCBpbiBHTGVu
dW0gdHlwZSwgaW4gV2ViR0xBcnJheSBwaXhlbHMpOwotICAgICAgICAvLyAgIHZvaWQgdGV4SW1h
Z2UyRChpbiBHTGVudW0gdGFyZ2V0LCBpbiBHTGludCBsZXZlbCwgaW4gSW1hZ2VEYXRhIHBpeGVs
cywKLSAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBHTGJvb2xlYW4g
ZmxpcFksIFtPcHRpb25hbF0gaW4gcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIC8vICAgdm9p
ZCB0ZXhJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBIVE1MSW1h
Z2VFbGVtZW50IGltYWdlLAotICAgICAgICAvLyAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxd
IGluIEdMYm9vbGVhbiBmbGlwWSwgW09wdGlvbmFsXSBpbiBwcmVtdWx0aXBseUFscGhhKTsKLSAg
ICAgICAgLy8gICB2b2lkIHRleEltYWdlMkQoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xpbnQgbGV2
ZWwsIGluIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhcywKLSAgICAgICAgLy8gICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsXSBpbiBHTGJvb2xlYW4gZmxpcFksIFtPcHRpb25hbF0gaW4gcHJlbXVs
dGlwbHlBbHBoYSk7Ci0gICAgICAgIC8vICAgdm9pZCB0ZXhJbWFnZTJEKGluIEdMZW51bSB0YXJn
ZXQsIGluIEdMaW50IGxldmVsLCBpbiBIVE1MVmlkZW9FbGVtZW50IHZpZGVvLAotICAgICAgICAv
LyAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIEdMYm9vbGVhbiBmbGlwWSwgW09wdGlv
bmFsXSBpbiBwcmVtdWx0aXBseUFscGhhKTsKKyNpZiBkZWZpbmVkKFY4X0JJTkRJTkcpICYmIFY4
X0JJTkRJTkcKKyAgICAgICAgdm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9u
ZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQs
IGluIGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0LCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gbG9uZyBib3JkZXIsIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNp
Z25lZCBsb25nIHR5cGUsIGluIFdlYkdMQXJyYXkgcGl4ZWxzKSByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIHZvaWQgICAgICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFy
Z2V0LCBpbiBsb25nIGxldmVsLCBpbiBJbWFnZURhdGEgcGl4ZWxzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gZmxpcFksIGluIFtPcHRpb25h
bF0gYm9vbGVhbiBwcmVtdWx0aXBseUFscGhhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAg
ICAgIHZvaWQgICAgICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBs
b25nIGxldmVsLCBpbiBIVE1MSW1hZ2VFbGVtZW50IGltYWdlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gZmxpcFksIGluIFtPcHRpb25hbF0g
Ym9vbGVhbiBwcmVtdWx0aXBseUFscGhhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IHZvaWQgICAgICAgICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25n
IGxldmVsLCBpbiBIVE1MQ2FudmFzRWxlbWVudCBjYW52YXMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiBmbGlwWSwgaW4gW09wdGlvbmFsXSBi
b29sZWFuIHByZW11bHRpcGx5QWxwaGEpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
dm9pZCAgICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcg
bGV2ZWwsIGluIEhUTUxWaWRlb0VsZW1lbnQgdmlkZW8sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiBmbGlwWSwgaW4gW09wdGlvbmFsXSBib29s
ZWFuIHByZW11bHRpcGx5QWxwaGEpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICB2
b2lkICAgICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9u
ZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0
LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIFdlYkdMQXJyYXkgcGl4ZWxzKSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgICAgICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2ln
bmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcg
eW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gSW1hZ2VEYXRh
IHBpeGVscywgaW4gW09wdGlvbmFsXSBib29sZWFuIGZsaXBZLCBpbiBbT3B0aW9uYWxdIGJvb2xl
YW4gcHJlbXVsdGlwbHlBbHBoYSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICB2b2lk
ICAgICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBs
ZXZlbCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsIAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBIVE1MSW1hZ2VFbGVtZW50IGltYWdlLCBpbiBbT3B0aW9u
YWxdIGJvb2xlYW4gZmxpcFksIGluIFtPcHRpb25hbF0gYm9vbGVhbiBwcmVtdWx0aXBseUFscGhh
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgICAgICAgICB0ZXhTdWJJbWFn
ZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZz
ZXQsIGluIGxvbmcgeW9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhcywgaW4gW09wdGlvbmFsXSBib29sZWFuIGZsaXBZ
LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gcHJlbXVsdGlwbHlBbHBoYSkgcmFpc2VzIChET01FeGNl
cHRpb24pOworICAgICAgICB2b2lkICAgICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBs
b25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZz
ZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBIVE1MVmlkZW9FbGVt
ZW50IHZpZGVvLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gZmxpcFksIGluIFtPcHRpb25hbF0gYm9v
bGVhbiBwcmVtdWx0aXBseUFscGhhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisjZWxzZQorICAg
ICAgICAvLyBGSVhNRTogVW5mb3JrIG9uY2UgSlNDIHN1cHBvcnRzIG92ZXJsb2FkIGdlbmVyYXRp
b24gdG9vLgogICAgICAgICBbQ3VzdG9tXSB2b2lkIHRleEltYWdlMkQoKTsKLQotICAgICAgICAv
LyBTdXBwb3J0ZWQgZm9ybXM6Ci0gICAgICAgIC8vICAgdm9pZCB0ZXhTdWJJbWFnZTJEKGluIEdM
ZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBHTGludCB4b2Zmc2V0LCBpbiBHTGludCB5
b2Zmc2V0LCAKLSAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgaW4gR0xzaXplaSB3aWR0
aCwgaW4gR0xzaXplaSBoZWlnaHQsIAotICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICBp
biBHTGVudW0gZm9ybWF0LCBpbiBHTGVudW0gdHlwZSwgaW4gV2ViR0xBcnJheSBwaXhlbHMpOwot
ICAgICAgICAvLyAgIHZvaWQgdGV4U3ViSW1hZ2UyRChpbiBHTGVudW0gdGFyZ2V0LCBpbiBHTGlu
dCBsZXZlbCwgaW4gR0xpbnQgeG9mZnNldCwgaW4gR0xpbnQgeW9mZnNldCwKLSAgICAgICAgLy8g
ICAgICAgICAgICAgICAgICAgICAgaW4gSW1hZ2VEYXRhIHBpeGVscywgW09wdGlvbmFsXSBHTGJv
b2xlYW4gZmxpcFksIFtPcHRpb25hbF0gaW4gcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIC8v
ICAgdm9pZCB0ZXhTdWJJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBp
biBHTGludCB4b2Zmc2V0LCBpbiBHTGludCB5b2Zmc2V0LCAKLSAgICAgICAgLy8gICAgICAgICAg
ICAgICAgICAgICAgaW4gSFRNTEltYWdlRWxlbWVudCBpbWFnZSwgW09wdGlvbmFsXSBHTGJvb2xl
YW4gZmxpcFksIFtPcHRpb25hbF0gaW4gcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIC8vICAg
dm9pZCB0ZXhTdWJJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBH
TGludCB4b2Zmc2V0LCBpbiBHTGludCB5b2Zmc2V0LCAKLSAgICAgICAgLy8gICAgICAgICAgICAg
ICAgICAgICAgaW4gSFRNTENhbnZhc0VsZW1lbnQgY2FudmFzLCBbT3B0aW9uYWxdIEdMYm9vbGVh
biBmbGlwWSwgW09wdGlvbmFsXSBpbiBwcmVtdWx0aXBseUFscGhhKTsKLSAgICAgICAgLy8gICB2
b2lkIHRleFN1YkltYWdlMkQoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xpbnQgbGV2ZWwsIGluIEdM
aW50IHhvZmZzZXQsIGluIEdMaW50IHlvZmZzZXQsIAotICAgICAgICAvLyAgICAgICAgICAgICAg
ICAgICAgICBpbiBIVE1MVmlkZW9FbGVtZW50IHZpZGVvLCBbT3B0aW9uYWxdIEdMYm9vbGVhbiBm
bGlwWSwgW09wdGlvbmFsXSBpbiBwcmVtdWx0aXBseUFscGhhKTsKICAgICAgICAgW0N1c3RvbV0g
dm9pZCB0ZXhTdWJJbWFnZTJEKCk7Ci0KKyNlbmRpZgogICAgICAgICB2b2lkIHVuaWZvcm0xZihp
biBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gZmxvYXQgeCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgdW5pZm9ybTFmdihpbiBXZWJHTFVuaWZv
cm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gV2ViR0xGbG9hdEFycmF5IHYpIHJhaXNlcyhET01FeGNl
cHRpb24pOwogICAgICAgICB2b2lkIHVuaWZvcm0xaShpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBs
b2NhdGlvbiwgaW4gbG9uZyB4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54121</attachid>
            <date>2010-04-22 19:43:16 -0700</date>
            <delta_ts>2010-04-23 02:42:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37818-20100422194315.patch</filename>
            <type>text/plain</type>
            <size>42426</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhZTg4OGQ0Li4yNDZiYmYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDQt
MjIgIFlhYXIgU2Nobml0bWFuICA8eWFhckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXV0by1nZW5lcmF0ZSBXZWJHTFJlbmRl
cmluZ0NvbnRleHQgb3ZlcmxvYWRzIGluIFY4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNzgxOAorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wv
c2NyaXB0LXRlc3RzL3RleEltYWdlVGVzdC5qczogVGVzdCB3YXMgd3Jvbmc6IFBhc3NpbmcgMCB2
YWx1ZSBmb3IgYSBXZWJHTEFycmF5IGFyZ3VtZW50IGluIHRleEltYWdlMkQgc2hvdWxkIHRocm93
IHRoZSBzYW1lIGV4Y2VwdGlvbiBhcyB3aGVuIHBhc3NlZCB0byB0ZXh0U3ViSW1hZ2UyRC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4SW1hZ2VU
ZXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC90ZXhJbWFnZVRl
c3QtZXhwZWN0ZWQudHh0OiBDaGFuZ2VzIHRvIHJlZmxlY3QgdGVzdC4KKwogMjAxMC0wNC0yMSAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuIFVwZGF0aW5nIGNocm9taXVtIHRlc3QgZXhwZWNhdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvdGV4SW1hZ2VUZXN0LmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL3RleEltYWdlVGVzdC5q
cwppbmRleCA4ZmNhZWU0Li4wZjgyMTFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvdGV4SW1hZ2VUZXN0LmpzCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy90ZXhJbWFnZVRlc3QuanMKQEAgLTE4LDcg
KzE4LDkgQEAgc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQudGV4SW1hZ2UyRChjb250ZXh0LlRF
WFRVUkVfMkQsIDAsIGNhbnZhczJkLCBmYWxzZSkiKTsKIHNob3VsZEJlVW5kZWZpbmVkKCJjb250
ZXh0LnRleEltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCB2aWRlbywgdHJ1ZSwgZmFsc2Up
Iik7CiAKIHNob3VsZFRocm93KCJjb250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJF
XzJEKSIpOwotc2hvdWxkQmVVbmRlZmluZWQoImNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0
LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgMCwgMCwgY29udGV4dC5SR0JBLCBjb250ZXh0LlVOU0lH
TkVEX0JZVEUsIDApIik7CitzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC50ZXhTdWJJbWFnZTJE
KGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCAwLCAwLCBjb250ZXh0LlJHQkEsIGNvbnRl
eHQuVU5TSUdORURfQllURSwgbnVsbCkiKTsKKy8vIEZJWE1FOiBUaGUgZm9sbG93aW5nIHRlc3Qg
ZmFpbHMgb24gSlNDOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzgw
MjQKK3Nob3VsZFRocm93KCJjb250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJE
LCAwLCAxMCwgMjAsIDAsIDAsIGNvbnRleHQuUkdCQSwgY29udGV4dC5VTlNJR05FRF9CWVRFLCAw
KSIpOwogc2hvdWxkVGhyb3coImNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVf
MkQsIDAsIDEwLCAyMCwgMCwgY29udGV4dC5VTlNJR05FRF9CWVRFLCAwKSIpOwogc2hvdWxkQmVV
bmRlZmluZWQoImNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDEw
LCAyMCwgaW1hZ2VEYXRhLCBmYWxzZSkiKTsKIHNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0LnRl
eFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCAxMCwgMjAsIGltYWdlKSIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4SW1hZ2VUZXN0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleEltYWdlVGVzdC1leHBl
Y3RlZC50eHQKaW5kZXggMTdiYzc3ZC4uMzQ3YWVjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvdGV4SW1hZ2VUZXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXhJbWFnZVRlc3QtZXhwZWN0ZWQudHh0CkBAIC0xMSw3
ICsxMSw4IEBAIFBBU1MgY29udGV4dC50ZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwg
aW1hZ2UpIGlzIHVuZGVmaW5lZC4KIFBBU1MgY29udGV4dC50ZXhJbWFnZTJEKGNvbnRleHQuVEVY
VFVSRV8yRCwgMCwgY2FudmFzMmQsIGZhbHNlKSBpcyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHQu
dGV4SW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIHZpZGVvLCB0cnVlLCBmYWxzZSkgaXMg
dW5kZWZpbmVkLgogUEFTUyBjb250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJE
KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFN5bnRheCBlcnJvci4KLVBBU1MgY29udGV4
dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCAwLCAwLCBjb250
ZXh0LlJHQkEsIGNvbnRleHQuVU5TSUdORURfQllURSwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBj
b250ZXh0LnRleFN1YkltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCAxMCwgMjAsIDAsIDAs
IGNvbnRleHQuUkdCQSwgY29udGV4dC5VTlNJR05FRF9CWVRFLCBudWxsKSBpcyB1bmRlZmluZWQu
CitGQUlMIGNvbnRleHQudGV4U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAy
MCwgMCwgMCwgY29udGV4dC5SR0JBLCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIDApIHNob3VsZCB0
aHJvdyBhbiBleGNlcHRpb24uIFdhcyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHQudGV4U3ViSW1h
Z2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgMCwgY29udGV4dC5VTlNJR05FRF9C
WVRFLCAwKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFN5bnRheCBlcnJvci4KIFBBU1Mg
Y29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCBpbWFn
ZURhdGEsIGZhbHNlKSBpcyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHQudGV4U3ViSW1hZ2UyRChj
b250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgaW1hZ2UpIGlzIHVuZGVmaW5lZC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2NhbnZhcy93ZWJn
bC90ZXhJbWFnZVRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbWFjL2Zhc3QvY2FudmFzL3dlYmdsL3RleEltYWdlVGVzdC1leHBlY3RlZC50eHQKaW5kZXgg
MDYwNjk2Yi4uZjUzNDJhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbWFjL2Zhc3QvY2FudmFzL3dlYmdsL3RleEltYWdlVGVzdC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvY2FudmFzL3dlYmdsL3RleElt
YWdlVGVzdC1leHBlY3RlZC50eHQKQEAgLTExLDcgKzExLDggQEAgUEFTUyBjb250ZXh0LnRleElt
YWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCBpbWFnZSkgaXMgdW5kZWZpbmVkLgogUEFTUyBj
b250ZXh0LnRleEltYWdlMkQoY29udGV4dC5URVhUVVJFXzJELCAwLCBjYW52YXMyZCwgZmFsc2Up
IGlzIHVuZGVmaW5lZC4KIFBBU1MgY29udGV4dC50ZXhJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8y
RCwgMCwgdmlkZW8sIHRydWUsIGZhbHNlKSBpcyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHQudGV4
U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lO
VEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KLVBBU1MgY29udGV4dC50ZXhTdWJJbWFnZTJEKGNv
bnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCAwLCAwLCBjb250ZXh0LlJHQkEsIGNvbnRleHQu
VU5TSUdORURfQllURSwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250ZXh0LnRleFN1YkltYWdl
MkQoY29udGV4dC5URVhUVVJFXzJELCAwLCAxMCwgMjAsIDAsIDAsIGNvbnRleHQuUkdCQSwgY29u
dGV4dC5VTlNJR05FRF9CWVRFLCBudWxsKSBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHQudGV4
U3ViSW1hZ2UyRChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgMCwgMCwgY29udGV4dC5S
R0JBLCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lO
VEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KIFBBU1MgY29udGV4dC50ZXhTdWJJbWFnZTJEKGNv
bnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCAwLCBjb250ZXh0LlVOU0lHTkVEX0JZVEUsIDAp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KIFBB
U1MgY29udGV4dC50ZXhTdWJJbWFnZTJEKGNvbnRleHQuVEVYVFVSRV8yRCwgMCwgMTAsIDIwLCBp
bWFnZURhdGEsIGZhbHNlKSBpcyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHQudGV4U3ViSW1hZ2Uy
RChjb250ZXh0LlRFWFRVUkVfMkQsIDAsIDEwLCAyMCwgaW1hZ2UpIGlzIHVuZGVmaW5lZC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTcw
MGZmZS4uNTY4MGIzMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wNC0yMiAgWWFhciBTY2huaXRtYW4g
IDx5YWFyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBdXRvLWdlbmVyYXRlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBvdmVybG9h
ZHMgaW4gVjgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM3ODE4CisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0Nv
bnRleHRDdXN0b20uY3BwOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5jcHA6IEFkZGVkIG1pc3Npbmcgb3ZlcmxvYWRzIGZvciB0aGUgZm9sbG93aW5nOi4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCkKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRCkKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaDogQWRkZWQgbWlzc2luZyBv
dmVybG9hZHMuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmlk
bDogSURMIGRlZmluaXRpb24gb2Ygb3ZlcmxvYWRzLgorCiAyMDA5LTA0LTIxICBDaHJpcyBGbGVp
emFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5
IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCAxYjg5MzZkLi43NWVm
ZjY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0xMDUsODAgKzEwNSw2IEBAIHN0YXRp
YyBpbnQqIGpzQXJyYXlUb0ludEFycmF5KHY4OjpIYW5kbGU8djg6OkFycmF5PiBhcnJheSwgdWlu
dDMyX3QgbGVuKQogICAgIHJldHVybiBkYXRhOwogfQogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmJ1ZmZlckRhdGFDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLldlYkdMUmVuZGVyaW5nQ29udGV4
dC5idWZmZXJEYXRhKCkiKTsKLQotICAgIC8vIEZvcm1zOgotICAgIC8vICogYnVmZmVyRGF0YShH
TGVudW0gdGFyZ2V0LCBXZWJHTEFycmF5IGRhdGEsIEdMZW51bSB1c2FnZSk7Ci0gICAgLy8gICAt
IFNldHMgdGhlIGJ1ZmZlcidzIGRhdGEgZnJvbSB0aGUgZ2l2ZW4gV2ViR0xBcnJheQotICAgIC8v
ICogYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBHTHNpemVpcHRyIHNpemUsIEdMZW51bSB1c2Fn
ZSk7Ci0gICAgLy8gICAtIFNldHMgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciB0byB0aGUgZ2l2ZW4g
c2l6ZSBpbiBieXRlcwotICAgIGlmIChhcmdzLkxlbmd0aCgpICE9IDMpIHsKLSAgICAgICAgVjhQ
cm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICByZXR1cm4gbm90SGFu
ZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9Ci0KLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQq
IGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIo
KSk7Ci0gICAgYm9vbCBvazsKLSAgICBpbnQgdGFyZ2V0ID0gdG9JbnQzMihhcmdzWzBdLCBvayk7
Ci0gICAgaWYgKCFvaykgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFY
X0VSUik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0K
LSAgICBpbnQgdXNhZ2UgPSB0b0ludDMyKGFyZ3NbMl0sIG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0g
ICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0
dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQotICAgIGlmIChhcmdzWzFdLT5J
c0ludDMyKCkpIHsKLSAgICAgICAgaW50IHNpemUgPSB0b0ludDMyKGFyZ3NbMV0pOwotICAgICAg
ICBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbkNvZGU7Ci0gICAgICAgIGNvbnRleHQtPmJ1ZmZlckRh
dGEodGFyZ2V0LCBzaXplLCB1c2FnZSwgZXhjZXB0aW9uQ29kZSk7Ci0gICAgfSBlbHNlIGlmIChW
OFdlYkdMQXJyYXk6Okhhc0luc3RhbmNlKGFyZ3NbMV0pKSB7Ci0gICAgICAgIFdlYkdMQXJyYXkq
IGFycmF5ID0gVjhXZWJHTEFycmF5Ojp0b05hdGl2ZShhcmdzWzFdLT5Ub09iamVjdCgpKTsKLSAg
ICAgICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlOwotICAgICAgICBjb250ZXh0LT5idWZm
ZXJEYXRhKHRhcmdldCwgYXJyYXksIHVzYWdlLCBleGNlcHRpb25Db2RlKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAg
IHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KLSAgICByZXR1cm4gdjg6
OlVuZGVmaW5lZCgpOwotfQotCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmJ1ZmZlclN1YkRhdGFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
KQotewotICAgIElOQ19TVEFUUygiRE9NLldlYkdMUmVuZGVyaW5nQ29udGV4dC5idWZmZXJTdWJE
YXRhKCkiKTsKLQotICAgIC8vIEZvcm1zOgotICAgIC8vICogYnVmZmVyU3ViRGF0YShHTGVudW0g
dGFyZ2V0LCBHTGludHB0ciBvZmZzZXQsIFdlYkdMQXJyYXkgZGF0YSk7Ci0gICAgaWYgKGFyZ3Mu
TGVuZ3RoKCkgIT0gMykgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFY
X0VSUik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0K
LQotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBib29sIG9rOwotICAgIGludCB0
YXJnZXQgPSB0b0ludDMyKGFyZ3NbMF0sIG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4
UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhh
bmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQotICAgIGludCBvZmZzZXQgPSB0b0ludDMyKGFy
Z3NbMV0sIG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2Vw
dGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9y
KCk7Ci0gICAgfQotICAgIGlmICghVjhXZWJHTEFycmF5OjpIYXNJbnN0YW5jZShhcmdzWzJdKSkg
ewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAg
IHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KLSAgICBXZWJHTEFycmF5
KiBhcnJheSA9IFY4V2ViR0xBcnJheTo6dG9OYXRpdmUoYXJnc1syXS0+VG9PYmplY3QoKSk7Ci0g
ICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlOwotICAgIGNvbnRleHQtPmJ1ZmZlclN1YkRh
dGEodGFyZ2V0LCBvZmZzZXQsIGFycmF5LCBleGNlcHRpb25Db2RlKTsKLSAgICByZXR1cm4gdjg6
OlVuZGVmaW5lZCgpOwotfQotCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmpl
Y3QoY29uc3QgV2ViR0xHZXRJbmZvJiBpbmZvKQogewogICAgIHN3aXRjaCAoaW5mby5nZXRUeXBl
KCkpIHsKQEAgLTQ0MywyOTAgKzM2OSw2IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6Z2V0VmVydGV4QXR0cmliQ2FsbGJhY2soY29uc3Qgdjg6CiAgICAg
cmV0dXJuIGdldE9iamVjdFBhcmFtZXRlcihhcmdzLCBrVmVydGV4QXR0cmliKTsKIH0KIAotdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5X
ZWJHTFJlbmRlcmluZ0NvbnRleHQudGV4SW1hZ2UyRCgpIik7Ci0KLSAgICAvLyBDdXJyZW50bHkg
c3VwcG9ydGVkIGZvcm1zOgotICAgIC8vICogdm9pZCB0ZXhJbWFnZTJEKGluIEdMZW51bSB0YXJn
ZXQsIGluIEdMaW50IGxldmVsLAotICAgIC8vICAgICAgICAgICAgICAgICAgIGluIEdMaW50IGlu
dGVybmFsZm9ybWF0LAotICAgIC8vICAgICAgICAgICAgICAgICAgIGluIEdMc2l6ZWkgd2lkdGgs
IGluIEdMc2l6ZWkgaGVpZ2h0LCBpbiBHTGludCBib3JkZXIsCi0gICAgLy8gICAgICAgICAgICAg
ICAgICAgaW4gR0xlbnVtIGZvcm1hdCwgaW4gR0xlbnVtIHR5cGUsIGluIFdlYkdMQXJyYXkgcGl4
ZWxzKTsKLSAgICAvLyAqIHZvaWQgdGV4SW1hZ2UyRChpbiBHTGVudW0gdGFyZ2V0LCBpbiBHTGlu
dCBsZXZlbCwgaW4gSW1hZ2VEYXRhIHBpeGVscywKLSAgICAvLyAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWxdIGluIEdMYm9vbGVhbiBmbGlwWSwgW09wdGlvbmFsXSBpbiBHTGJvb2xlYW4gcHJl
bXVsaXRwbHlBbHBoYSk7Ci0gICAgLy8gKiB2b2lkIHRleEltYWdlMkQoaW4gR0xlbnVtIHRhcmdl
dCwgaW4gR0xpbnQgbGV2ZWwsIGluIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2UsCi0gICAgLy8gICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBHTGJvb2xlYW4gZmxpcFksIFtPcHRpb25hbF0g
aW4gR0xib29sZWFuIHByZW11bHRpcGx5QWxwaGEpOwotICAgIC8vICogdm9pZCB0ZXhJbWFnZTJE
KGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBIVE1MQ2FudmFzRWxlbWVudCBp
bWFnZSwKLSAgICAvLyAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIEdMYm9vbGVhbiBm
bGlwWSwgW09wdGlvbmFsXSBpbiBHTGJvb2xlYW4gcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgLy8g
KiB2b2lkIHRleEltYWdlMkQoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xpbnQgbGV2ZWwsIGluIEhU
TUxWaWRlb0VsZW1lbnQgaW1hZ2UsCi0gICAgLy8gICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
XSBpbiBHTGJvb2xlYW4gZmxpcFksIFtPcHRpb25hbF0gaW4gR0xib29sZWFuIHByZW11bHRpcGx5
QWxwaGEpOwotICAgIGlmIChhcmdzLkxlbmd0aCgpICE9IDMgJiYKLSAgICAgICAgYXJncy5MZW5n
dGgoKSAhPSA0ICYmCi0gICAgICAgIGFyZ3MuTGVuZ3RoKCkgIT0gNSAmJgotICAgICAgICBhcmdz
Lkxlbmd0aCgpICE9IDkpIHsKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRB
WF9FUlIpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9
Ci0KLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgYm9vbCBvazsKLSAgICBpbnQg
dGFyZ2V0ID0gdG9JbnQzMihhcmdzWzBdLCBvayk7Ci0gICAgaWYgKCFvaykgewotICAgICAgICBW
OFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgIHJldHVybiBub3RI
YW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KLSAgICBpbnQgbGV2ZWwgPSB0b0ludDMyKGFy
Z3NbMV0sIG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2Vw
dGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9y
KCk7Ci0gICAgfQotCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPT0gMyB8fAotICAgICAgICBhcmdzLkxlbmd0aCgpID09IDQgfHwKLSAgICAgICAgYXJn
cy5MZW5ndGgoKSA9PSA1KSB7Ci0gICAgICAgIGJvb2wgZmxpcFkgPSBmYWxzZTsKLSAgICAgICAg
Ym9vbCBwcmVtdWx0aXBseUFscGhhID0gZmFsc2U7Ci0gICAgICAgIGlmIChhcmdzLkxlbmd0aCgp
ID49IDQpCi0gICAgICAgICAgICBmbGlwWSA9IGFyZ3NbM10tPkJvb2xlYW5WYWx1ZSgpOwotICAg
ICAgICBpZiAoYXJncy5MZW5ndGgoKSA+PSA1KQotICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBo
YSA9IGFyZ3NbNF0tPkJvb2xlYW5WYWx1ZSgpOwotCi0gICAgICAgIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBhcmcgPSBhcmdzWzJdOwotICAgICAgICBpZiAoVjhIVE1MSW1hZ2VFbGVtZW50OjpIYXNJ
bnN0YW5jZShhcmcpKSB7Ci0gICAgICAgICAgICBIVE1MSW1hZ2VFbGVtZW50KiBlbGVtZW50ID0g
VjhIVE1MSW1hZ2VFbGVtZW50Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0
KGFyZykpOwotICAgICAgICAgICAgY29udGV4dC0+dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBl
bGVtZW50LCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwgZWMpOwotICAgICAgICB9IGVsc2UgaWYg
KFY4SFRNTENhbnZhc0VsZW1lbnQ6Okhhc0luc3RhbmNlKGFyZykpIHsKLSAgICAgICAgICAgIEhU
TUxDYW52YXNFbGVtZW50KiBlbGVtZW50ID0gVjhIVE1MQ2FudmFzRWxlbWVudDo6dG9OYXRpdmUo
djg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmcpKTsKLSAgICAgICAgICAgIGNvbnRleHQt
PnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgZWxlbWVudCwgZmxpcFksIHByZW11bHRpcGx5QWxw
aGEsIGVjKTsKLSAgICAgICAgfSBlbHNlIGlmKFY4SW1hZ2VEYXRhOjpIYXNJbnN0YW5jZShhcmcp
KSB7Ci0gICAgICAgICAgICBJbWFnZURhdGEqIGltYWdlRWxlbWVudCA9IFY4SW1hZ2VEYXRhOjp0
b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZykpOwotICAgICAgICAgICAg
Y29udGV4dC0+dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbWFnZUVsZW1lbnQsIGZsaXBZLCBw
cmVtdWx0aXBseUFscGhhLCBlYyk7Ci0gICAgICAgIH0gZWxzZSBpZiAoVjhIVE1MVmlkZW9FbGVt
ZW50OjpIYXNJbnN0YW5jZShhcmcpKSB7Ci0gICAgICAgICAgICBIVE1MVmlkZW9FbGVtZW50KiBl
bGVtZW50ID0gVjhIVE1MVmlkZW9FbGVtZW50Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+OjpDYXN0KGFyZykpOwotICAgICAgICAgICAgY29udGV4dC0+dGV4SW1hZ2UyRCh0YXJnZXQs
IGxldmVsLCBlbGVtZW50LCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwgZWMpOwotICAgICAgICB9
Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgLy8gRklYTUU6IGNvbnNpZGVyIGRpZmZlcmVu
dCAvIGJldHRlciBleGNlcHRpb24gdHlwZS4KLSAgICAgICAgICAgIFY4UHJveHk6OnNldERPTUV4
Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRl
cmNlcHRvcigpOwotICAgICAgICB9Ci0gICAgICAgIC8vIEZhbGwgdGhyb3VnaAotICAgIH0gZWxz
ZSBpZiAoYXJncy5MZW5ndGgoKSA9PSA5KSB7Ci0gICAgICAgIGludCBpbnRlcm5hbGZvcm1hdCA9
IHRvSW50MzIoYXJnc1syXSwgb2spOwotICAgICAgICBpZiAoIW9rKSB7Ci0gICAgICAgICAgICBW
OFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgICAgICByZXR1cm4g
bm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgd2lkdGgg
PSB0b0ludDMyKGFyZ3NbM10sIG9rKTsKLSAgICAgICAgaWYgKCFvaykgewotICAgICAgICAgICAg
VjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICAgICAgcmV0dXJu
IG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGhlaWdo
dCA9IHRvSW50MzIoYXJnc1s0XSwgb2spOwotICAgICAgICBpZiAoIW9rKSB7Ci0gICAgICAgICAg
ICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgICAgICByZXR1
cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgYm9y
ZGVyID0gdG9JbnQzMihhcmdzWzVdLCBvayk7Ci0gICAgICAgIGlmICghb2spIHsKLSAgICAgICAg
ICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgICAgIHJl
dHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgICAgICB9Ci0gICAgICAgIGludCBm
b3JtYXQgPSB0b0ludDMyKGFyZ3NbNl0sIG9rKTsKLSAgICAgICAgaWYgKCFvaykgewotICAgICAg
ICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICAgICAg
cmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50
IHR5cGUgPSB0b0ludDMyKGFyZ3NbN10sIG9rKTsKLSAgICAgICAgaWYgKCFvaykgewotICAgICAg
ICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICAgICAg
cmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgICAgIH0KLSAgICAgICAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IGFyZyA9IGFyZ3NbOF07Ci0gICAgICAgIGlmICghYXJnLT5Jc09i
amVjdCgpKQotICAgICAgICAvLyBBc3N1bWUgdGhhdCB0aGUgdXNlciBpcyBwYXNzaW5nIG51bGwg
Zm9yIHRleHR1cmUKLSAgICAgICAgICAgIGNvbnRleHQtPnRleEltYWdlMkQodGFyZ2V0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlYyk7Ci0gICAgIGVsc2UgaWYgKFY4V2ViR0xBcnJheTo6SGFzSW5zdGFu
Y2UoYXJnKSkgewotICAgICAgICAgICAgV2ViR0xBcnJheSogYXJyYXkgPSBWOFdlYkdMQXJyYXk6
OnRvTmF0aXZlKGFyZy0+VG9PYmplY3QoKSk7Ci0gICAgICAgICAgICBjb250ZXh0LT50ZXhJbWFn
ZTJEKHRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWwsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsZm9ybWF0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjKTsKLSAgICAgICAgICAgIC8vIEZh
bGwgdGhyb3VnaAotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9N
RXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUlu
dGVyY2VwdG9yKCk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIp
OwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9Ci0gICAg
aWYgKGVjKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7Ci0gICAgICAg
IHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKLSAgICB9Ci0gICAgcmV0dXJuIHY4OjpV
bmRlZmluZWQoKTsKLX0KLQotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp0ZXhTdWJJbWFnZTJEQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
LXsKLSAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFJlbmRlcmluZ0NvbnRleHQudGV4U3ViSW1hZ2Uy
RCgpIik7Ci0KLSAgICAvLyBDdXJyZW50bHkgc3VwcG9ydGVkIGZvcm1zOgotICAgIC8vICogdm9p
ZCB0ZXhTdWJJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBHTGlu
dCB4b2Zmc2V0LCBpbiBHTGludCB5b2Zmc2V0LCAKLSAgICAvLyAgICAgICAgICAgICAgICAgICAg
ICBpbiBHTHNpemVpIHdpZHRoLCBpbiBHTHNpemVpIGhlaWdodCwgCi0gICAgLy8gICAgICAgICAg
ICAgICAgICAgICAgaW4gR0xlbnVtIGZvcm1hdCwgaW4gR0xlbnVtIHR5cGUsIGluIFdlYkdMQXJy
YXkgcGl4ZWxzKTsKLSAgICAvLyAqIHZvaWQgdGV4U3ViSW1hZ2UyRChpbiBHTGVudW0gdGFyZ2V0
LCBpbiBHTGludCBsZXZlbCwgaW4gR0xpbnQgeG9mZnNldCwgaW4gR0xpbnQgeW9mZnNldCwKLSAg
ICAvLyAgICAgICAgICAgICAgICAgICAgICBpbiBJbWFnZURhdGEgcGl4ZWxzLCBbT3B0aW9uYWxd
IEdMYm9vbGVhbiBmbGlwWSwgW09wdGlvbmFsXSBpbiBwcmVtdWx0aXBseUFscGhhKTsKLSAgICAv
LyAqIHZvaWQgdGV4U3ViSW1hZ2UyRChpbiBHTGVudW0gdGFyZ2V0LCBpbiBHTGludCBsZXZlbCwg
aW4gR0xpbnQgeG9mZnNldCwgaW4gR0xpbnQgeW9mZnNldCwgCi0gICAgLy8gICAgICAgICAgICAg
ICAgICAgICAgaW4gSFRNTEltYWdlRWxlbWVudCBpbWFnZSwgW09wdGlvbmFsXSBHTGJvb2xlYW4g
ZmxpcFksIFtPcHRpb25hbF0gaW4gcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgLy8gKiB2b2lkIHRl
eFN1YkltYWdlMkQoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xpbnQgbGV2ZWwsIGluIEdMaW50IHhv
ZmZzZXQsIGluIEdMaW50IHlvZmZzZXQsIAotICAgIC8vICAgICAgICAgICAgICAgICAgICAgIGlu
IEhUTUxDYW52YXNFbGVtZW50IGNhbnZhcywgW09wdGlvbmFsXSBHTGJvb2xlYW4gZmxpcFksIFtP
cHRpb25hbF0gaW4gcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgLy8gKiB2b2lkIHRleFN1YkltYWdl
MkQoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xpbnQgbGV2ZWwsIGluIEdMaW50IHhvZmZzZXQsIGlu
IEdMaW50IHlvZmZzZXQsIAotICAgIC8vICAgICAgICAgICAgICAgICAgICAgIGluIEhUTUxWaWRl
b0VsZW1lbnQgdmlkZW8sIFtPcHRpb25hbF0gR0xib29sZWFuIGZsaXBZLCBbT3B0aW9uYWxdIGlu
IHByZW11bHRpcGx5QWxwaGEpOwotCi0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gNSAmJgotICAg
ICAgICBhcmdzLkxlbmd0aCgpICE9IDYgJiYKLSAgICAgICAgYXJncy5MZW5ndGgoKSAhPSA3ICYm
Ci0gICAgICAgIGFyZ3MuTGVuZ3RoKCkgIT0gOSkgewotICAgICAgICBWOFByb3h5OjpzZXRET01F
eGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNl
cHRvcigpOwotICAgIH0KLQotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IFY4
V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBib29s
IG9rOwotICAgIGludCB0YXJnZXQgPSB0b0ludDMyKGFyZ3NbMF0sIG9rKTsKLSAgICBpZiAoIW9r
KSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAg
ICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQotICAgIGludCBsZXZl
bCA9IHRvSW50MzIoYXJnc1sxXSwgb2spOwotICAgIGlmICghb2spIHsKLSAgICAgICAgVjhQcm94
eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxl
ZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9Ci0gICAgaW50IHhvZmYgPSB0b0ludDMyKGFyZ3NbMl0s
IG9rKTsKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihT
WU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0g
ICAgfQotICAgIGludCB5b2ZmID0gdG9JbnQzMihhcmdzWzNdLCBvayk7Ci0gICAgaWYgKCFvaykg
ewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAg
IHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KLQotICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIGlmIChhcmdzLkxlbmd0aCgpID09IDUgfHwKLSAgICAgICAgYXJn
cy5MZW5ndGgoKSA9PSA2IHx8Ci0gICAgICAgIGFyZ3MuTGVuZ3RoKCkgPT0gNykgewotICAgICAg
ICBib29sIGZsaXBZID0gZmFsc2U7Ci0gICAgICAgIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSA9IGZh
bHNlOwotICAgICAgICBpZiAoYXJncy5MZW5ndGgoKSA+PSA2KQotICAgICAgICAgICAgZmxpcFkg
PSBhcmdzWzVdLT5Cb29sZWFuVmFsdWUoKTsKLSAgICAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPj0g
NykKLSAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGEgPSBhcmdzWzZdLT5Cb29sZWFuVmFsdWUo
KTsKLQotICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJnID0gYXJnc1s0XTsKLSAgICAg
ICAgaWYgKFY4SFRNTEltYWdlRWxlbWVudDo6SGFzSW5zdGFuY2UoYXJnKSkgewotICAgICAgICAg
ICAgSFRNTEltYWdlRWxlbWVudCogZWxlbWVudCA9IFY4SFRNTEltYWdlRWxlbWVudDo6dG9OYXRp
dmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmcpKTsKLSAgICAgICAgICAgIGNvbnRl
eHQtPnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZiwgeW9mZiwgZWxlbWVudCwgZmxp
cFksIHByZW11bHRpcGx5QWxwaGEsIGVjKTsKLSAgICAgICAgfSBlbHNlIGlmIChWOEhUTUxDYW52
YXNFbGVtZW50OjpIYXNJbnN0YW5jZShhcmcpKSB7Ci0gICAgICAgICAgICBIVE1MQ2FudmFzRWxl
bWVudCogZWxlbWVudCA9IFY4SFRNTENhbnZhc0VsZW1lbnQ6OnRvTmF0aXZlKHY4OjpIYW5kbGU8
djg6Ok9iamVjdD46OkNhc3QoYXJnKSk7Ci0gICAgICAgICAgICBjb250ZXh0LT50ZXhTdWJJbWFn
ZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmYsIHlvZmYsIGVsZW1lbnQsIGZsaXBZLCBwcmVtdWx0aXBs
eUFscGhhLCBlYyk7Ci0gICAgICAgIH0gZWxzZSBpZihWOEltYWdlRGF0YTo6SGFzSW5zdGFuY2Uo
YXJnKSkgewotICAgICAgICAgICAgSW1hZ2VEYXRhKiBpbWFnZUVsZW1lbnQgPSBWOEltYWdlRGF0
YTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmcpKTsKLSAgICAgICAg
ICAgIGNvbnRleHQtPnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZiwgeW9mZiwgaW1h
Z2VFbGVtZW50LCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwgZWMpOwotICAgICAgICB9IGVsc2Ug
aWYgKFY4SFRNTFZpZGVvRWxlbWVudDo6SGFzSW5zdGFuY2UoYXJnKSkgewotICAgICAgICAgICAg
SFRNTFZpZGVvRWxlbWVudCogZWxlbWVudCA9IFY4SFRNTFZpZGVvRWxlbWVudDo6dG9OYXRpdmUo
djg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmcpKTsKLSAgICAgICAgICAgIGNvbnRleHQt
PnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZiwgeW9mZiwgZWxlbWVudCwgZmxpcFks
IHByZW11bHRpcGx5QWxwaGEsIGVjKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciBkaWZmZXJlbnQgLyBiZXR0ZXIgZXhjZXB0aW9uIHR5
cGUuCi0gICAgICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0g
ICAgICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICAgICAgfQot
ICAgICAgICAvLyBGYWxsIHRocm91Z2gKLSAgICB9IGVsc2UgaWYgKGFyZ3MuTGVuZ3RoKCkgPT0g
OSkgewotICAgICAgICBpbnQgd2lkdGggPSB0b0ludDMyKGFyZ3NbNF0sIG9rKTsKLSAgICAgICAg
aWYgKCFvaykgewotICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9F
UlIpOwotICAgICAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgaW50IGhlaWdodCA9IHRvSW50MzIoYXJnc1s1XSwgb2spOwotICAgICAg
ICBpZiAoIW9rKSB7Ci0gICAgICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFY
X0VSUik7Ci0gICAgICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAg
ICAgICAgfQotICAgICAgICBpbnQgZm9ybWF0ID0gdG9JbnQzMihhcmdzWzZdLCBvayk7Ci0gICAg
ICAgIGlmICghb2spIHsKLSAgICAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5U
QVhfRVJSKTsKLSAgICAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwot
ICAgICAgICB9Ci0gICAgICAgIGludCB0eXBlID0gdG9JbnQzMihhcmdzWzddLCBvayk7Ci0gICAg
ICAgIGlmICghb2spIHsKLSAgICAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5U
QVhfRVJSKTsKLSAgICAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwot
ICAgICAgICB9Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmcgPSBhcmdzWzhdOwot
ICAgICAgICBpZiAoIWFyZy0+SXNPYmplY3QoKSkKLSAgICAgICAgLy8gQXNzdW1lIHRoYXQgdGhl
IHVzZXIgaXMgcGFzc2luZyBudWxsIGZvciB0ZXh0dXJlCi0gICAgICAgICAgICBjb250ZXh0LT50
ZXhTdWJJbWFnZTJEKHRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV2ZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhvZmYsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvZmYsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWMp
OwotICAgICBlbHNlIGlmIChWOFdlYkdMQXJyYXk6Okhhc0luc3RhbmNlKGFyZykpIHsKLSAgICAg
ICAgICAgIFdlYkdMQXJyYXkqIGFycmF5ID0gVjhXZWJHTEFycmF5Ojp0b05hdGl2ZShhcmctPlRv
T2JqZWN0KCkpOwotICAgICAgICAgICAgY29udGV4dC0+dGV4U3ViSW1hZ2UyRCh0YXJnZXQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB4b2ZmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB5b2ZmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlYyk7Ci0gICAgICAgICAgICAvLyBG
YWxsIHRocm91Z2gKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIFY4UHJveHk6OnNldERP
TUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJ
bnRlcmNlcHRvcigpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJS
KTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQotICAg
IGlmIChlYykgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOwotICAgICAg
ICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Ci0gICAgfQotICAgIHJldHVybiB2ODo6
VW5kZWZpbmVkKCk7Ci19Ci0KIGVudW0gRnVuY3Rpb25Ub0NhbGwgewogICAgIGtVbmlmb3JtMXYs
IGtVbmlmb3JtMnYsIGtVbmlmb3JtM3YsIGtVbmlmb3JtNHYsCiAgICAga1ZlcnRleEF0dHJpYjF2
LCBrVmVydGV4QXR0cmliMnYsIGtWZXJ0ZXhBdHRyaWIzdiwga1ZlcnRleEF0dHJpYjR2CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggZDlhZjc1
Ny4uNzViYjVlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmNwcApAQCAtMTc3Nyw2ICsxNzc3LDE4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkCiB9
CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdl
dCwgdW5zaWduZWQgbGV2ZWwsIEltYWdlRGF0YSogcGl4ZWxzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgdGV4SW1hZ2Uy
RCh0YXJnZXQsIGxldmVsLCBwaXhlbHMsIDAsIDAsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwg
SW1hZ2VEYXRhKiBwaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICB0ZXhJbWFnZTJEKHRhcmdl
dCwgbGV2ZWwsIHBpeGVscywgZmxpcFksIDAsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSW1h
Z2VEYXRhKiBwaXhlbHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIC8vIEZJWE1FOiBGb3Igbm93IHdlIGlnbm9yZSBhbnkgZXJyb3JzIHJldHVybmVkCkBAIC0x
Nzg3LDYgKzE3OTksMTkgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQo
dW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSW1hZ2VEYXQKICAgICBjbGVhbnVwQWZ0
ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEhUTUxJbWFnZUVs
ZW1lbnQqIGltYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgdGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbWFnZSwg
MCwgMCwgZWMpOworfQorCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1
bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIHRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgaW1hZ2UsIGZs
aXBZLCAwLCBlYyk7Cit9CisKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJE
KHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmbGlwWSwgYm9v
bCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKQEAgLTE4MDgsNyArMTgz
MywxOSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0
YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MSW1hZwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1M
Q2FudmFzRWxlbWVudCogY2FudmFzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2Rl
JiBlYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIHRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgY2FudmFzLCAwLCAwLCBl
Yyk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKHVuc2lnbmVk
IHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZsaXBZLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICB0ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGNhbnZhcywgZmxpcFks
IDAsIGVjKTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQodW5z
aWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSAwOwogICAg
IGlmICghY2FudmFzKSB7CkBAIC0xODI4LDcgKzE4NjUsMTkgQEAgdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRN
TENhbnYKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQodW5zaWdu
ZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZsaXBZLCBib29sIHBy
ZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgdGV4SW1hZ2UyRCh0
YXJnZXQsIGxldmVsLCB2aWRlbywgMCwgMCwgZWMpOworfQorCit2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1M
VmlkZW9FbGVtZW50KiB2aWRlbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgZmxpcFksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHRleEltYWdlMkQodGFy
Z2V0LCBsZXZlbCwgdmlkZW8sIGZsaXBZLCAwLCBlYyk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEhU
TUxWaWRlb0VsZW1lbnQqIHZpZGVvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICAvLyBGSVhNRTogTmVlZCBpbXBsZW1lbnQgdGhpcyBjYWxsCiAgICAgVU5VU0VE
X1BBUkFNKHRhcmdldCk7CkBAIC0xODU0LDggKzE5MDMsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dGV4UGFyYW1ldGVyaSh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBp
bnQgcAogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRCh1bnNp
Z25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5
b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgV2ViR0xB
cnJheSogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JtYXQsIHVu
c2lnbmVkIHR5cGUsIFdlYkdMQXJyYXkqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgLy8gRklYTUU6IEZvciBub3cgd2UgaWdub3JlIGFueSBlcnJvcnMgcmV0dXJuZWQKICAgICAv
LyBGSVhNRTogTmVlZCB0byBtYWtlIHN1cmUgcGFzc2VkIGJ1ZmZlciBoYXMgZW5vdWdoIGJ5dGVz
IHRvIGRlZmluZSB0aGUgdGV4dHVyZQpAQCAtMTg2NSw2ICsxOTE0LDE4IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQg
bGV2ZWwsIHVuc2lnCiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFn
ZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVu
c2lnbmVkIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJbWFnZURhdGEqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgdGV4U3ViSW1h
Z2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBwaXhlbHMsIDAsIDAsIGVjKTsK
K30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQg
dGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNl
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlRGF0YSog
cGl4ZWxzLCBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICB0ZXhTdWJJbWFn
ZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHBpeGVscywgZmxpcFksIDAsIGVj
KTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWdu
ZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9m
ZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlRGF0
YSogcGl4ZWxzLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIC8vIEZJWE1FOiBGb3Igbm93IHdlIGlnbm9yZSBhbnkgZXJyb3JzIHJl
dHVybmVkCkBAIC0xODc2LDYgKzE5MzcsMTggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWcKIH0K
IAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFy
Z2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxJbWFnZUVsZW1l
bnQqIGltYWdlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICB0ZXhTdWJJbWFnZTJEKHRhcmdl
dCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIGltYWdlLCAwLCAwLCBlYyk7Cit9CisKK3ZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5z
aWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1MSW1hZ2VFbGVtZW50KiBpbWFn
ZSwgYm9vbCBmbGlwWSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgdGV4U3ViSW1hZ2UyRCh0
YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBpbWFnZSwgZmxpcFksIDAsIGVjKTsKK30K
Kwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFy
Z2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxJbWFnZUVsZW1l
bnQqIGltYWdlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIC8vIEZJWE1FOiBGb3Igbm93IHdlIGlnbm9yZSBhbnkgZXJyb3JzIHJl
dHVybmVkCkBAIC0xODk2LDYgKzE5NjksMTggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWcKIH0K
IAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWduZWQgdGFy
Z2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxDYW52YXNFbGVt
ZW50KiBjYW52YXMsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHRleFN1YkltYWdlMkQodGFy
Z2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgY2FudmFzLCAwLCAwLCBlYyk7Cit9CisKK3Zv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwg
dW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1MQ2FudmFzRWxlbWVudCog
Y2FudmFzLCBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICB0ZXhTdWJJbWFn
ZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIGNhbnZhcywgZmxpcFksIDAsIGVj
KTsKK30KKwordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMkQodW5zaWdu
ZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9m
ZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxDYW52
YXNFbGVtZW50KiBjYW52YXMsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSAwOwpAQCAtMTkxNiw2ICsyMDAxLDE4IEBAIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwg
dW5zaWduZWQgbGV2ZWwsIHVuc2lnCiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0
ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhv
ZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBIVE1MVmlkZW9FbGVtZW50KiB2aWRlbywgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgdGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCB2aWRl
bywgMCwgMCwgZWMpOworfQorCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1h
Z2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1
bnNpZ25lZCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sIGJvb2wgZmxpcFksIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIHRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwg
dmlkZW8sIGZsaXBZLCAwLCBlYyk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0
ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhv
ZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBIVE1MVmlkZW9FbGVtZW50KiB2aWRlbywgYm9vbCBmbGlwWSwgYm9vbCBwcmVt
dWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBGSVhNRTogTmVlZCB0
byBpbXBsZW1lbnQgdGhpcyBjYWxsCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5oIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaAppbmRleCA5YzU4YTUzLi4yOWUzYzc3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTE5OSwxNCArMTk5LDE4IEBAIGNsYXNzIFdl
YktpdENTU01hdHJpeDsKICAgICAgICAgdm9pZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwg
dW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIGludGVybmFsZm9ybWF0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgdW5zaWduZWQgYm9yZGVy
LAogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBl
LCBXZWJHTEFycmF5KiBwaXhlbHMsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAgICAgdm9pZCB0ZXhJ
bWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEltYWdlRGF0YSogcGl4ZWxz
LAotICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFs
cGhhLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0
YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0
aW9uQ29kZSYpOwotICAgICAgICB2b2lkIHRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNp
Z25lZCBsZXZlbCwgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcywKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYp
OwotICAgICAgICB2b2lkIHRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZl
bCwgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8sCi0gICAgICAgICAgICAgICAgICAgICAgICBib29s
IGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAg
dm9pZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEltYWdlRGF0
YSogcGl4ZWxzLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNp
Z25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBJbWFnZURhdGEqIHBpeGVscywgYm9vbCBmbGlw
WSwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIHRleEltYWdlMkQodW5zaWduZWQgdGFy
Z2V0LCB1bnNpZ25lZCBsZXZlbCwgSW1hZ2VEYXRhKiBwaXhlbHMsIGJvb2wgZmxpcFksIGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIHRleEltYWdl
MkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRNTEltYWdlRWxlbWVudCogaW1h
Z2UsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRh
cmdldCwgdW5zaWduZWQgbGV2ZWwsIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlLCBib29sIGZsaXBZ
LCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJn
ZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZSwgYm9vbCBmbGlwWSwg
Ym9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4
SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MQ2FudmFzRWxlbWVu
dCogY2FudmFzLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNp
Z25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLCBi
b29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4SW1hZ2UyRCh1bnNp
Z25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLCBi
b29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAg
ICAgdm9pZCB0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIEhUTUxW
aWRlb0VsZW1lbnQqIHZpZGVvLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4SW1h
Z2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCBIVE1MVmlkZW9FbGVtZW50KiB2
aWRlbywgYm9vbCBmbGlwWSwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIHRleEltYWdl
MkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgSFRNTFZpZGVvRWxlbWVudCogdmlk
ZW8sIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYpOwog
CiAgICAgICAgIHZvaWQgdGV4UGFyYW1ldGVyZih1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHBu
YW1lLCBmbG9hdCBwYXJhbSk7CiAgICAgICAgIHZvaWQgdGV4UGFyYW1ldGVyaSh1bnNpZ25lZCB0
YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBpbnQgcGFyYW0pOwpAQCAtMjE0LDE0ICsyMTgsMTggQEAg
Y2xhc3MgV2ViS2l0Q1NTTWF0cml4OwogICAgICAgICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWdu
ZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9m
ZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25l
ZCBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JtYXQsIHVu
c2lnbmVkIHR5cGUsIFdlYkdMQXJyYXkqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYpOwotICAgICAg
ICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5z
aWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEltYWdlRGF0YSogcGl4ZWxzLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEs
IEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRh
cmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZSwgYm9v
bCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgICAg
IHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNp
Z25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcywgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBs
eUFscGhhLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNp
Z25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5
b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCogdmlk
ZW8sIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgICAgICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZl
bCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwgSW1hZ2VEYXRhKiBwaXhlbHMs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRh
cmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQs
IEltYWdlRGF0YSogcGl4ZWxzLCBib29sIGZsaXBZLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAg
IHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNp
Z25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LCBJbWFnZURhdGEqIHBpeGVscywgYm9vbCBm
bGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZv
aWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25l
ZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LCBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZSwgRXhj
ZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0
LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwgSFRN
TEltYWdlRWxlbWVudCogaW1hZ2UsIGJvb2wgZmxpcFksIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAg
ICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVu
c2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdl
LCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWws
IHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsIEhUTUxDYW52YXNFbGVtZW50KiBj
YW52YXMsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2ln
bmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlv
ZmZzZXQsIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIGJvb2wgZmxpcFksIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWdu
ZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsIEhUTUxDYW52YXNF
bGVtZW50KiBjYW52YXMsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0
aW9uQ29kZSYpOworICAgICAgICB2b2lkIHRleFN1YkltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1
bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgeG9mZnNldCwgdW5zaWduZWQgeW9mZnNldCwgSFRNTFZp
ZGVvRWxlbWVudCogdmlkZW8sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCB0ZXhTdWJJ
bWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQs
IHVuc2lnbmVkIHlvZmZzZXQsIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvLCBib29sIGZsaXBZLCBF
eGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgdGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJn
ZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LCBI
VE1MVmlkZW9FbGVtZW50KiB2aWRlbywgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAgICAgdm9pZCB1bmlmb3JtMWYoY29uc3QgV2ViR0xV
bmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBmbG9hdCB4LCBFeGNlcHRpb25Db2RlJik7CiAgICAg
ICAgIHZvaWQgdW5pZm9ybTFmdihjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24s
IFdlYkdMRmxvYXRBcnJheSogdiwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsIGIvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCmluZGV4IGEyNTc0NTIuLmI3NzUzNzggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbAor
KysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGwKQEAgLTQ3
NCwxMyArNDc0LDE1IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgdm9pZCAgICAgICAgIGJsZW5k
RnVuYyhpbiB1bnNpZ25lZCBsb25nIHNmYWN0b3IsIGluIHVuc2lnbmVkIGxvbmcgZGZhY3Rvcik7
CiAgICAgICAgIHZvaWQgICAgICAgICBibGVuZEZ1bmNTZXBhcmF0ZShpbiB1bnNpZ25lZCBsb25n
IHNyY1JHQiwgaW4gdW5zaWduZWQgbG9uZyBkc3RSR0IsIGluIHVuc2lnbmVkIGxvbmcgc3JjQWxw
aGEsIGluIHVuc2lnbmVkIGxvbmcgZHN0QWxwaGEpOwogCi0gICAgICAgIC8vIFN1cHBvcnRlZCBm
b3JtczoKLSAgICAgICAgLy8gICB2b2lkIGJ1ZmZlckRhdGEgKGluIEdMZW51bSB0YXJnZXQsIGlu
IEdMc2l6ZWkgc2l6ZSwgaW4gR0xlbnVtIHVzYWdlKTsKLSAgICAgICAgLy8gICB2b2lkIGJ1ZmZl
ckRhdGEgKGluIEdMZW51bSB0YXJnZXQsIGluIFdlYkdMQXJyYXkgZGF0YSwgaW4gR0xlbnVtIHVz
YWdlKTsKKyNpZiBkZWZpbmVkKFY4X0JJTkRJTkcpICYmIFY4X0JJTkRJTkcKKyAgICAgICAgdm9p
ZCAgICAgICAgIGJ1ZmZlckRhdGEoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIFdlYkdMQXJy
YXkgZGF0YSwgaW4gdW5zaWduZWQgbG9uZyB1c2FnZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwor
ICAgICAgICB2b2lkICAgICAgICAgYnVmZmVyRGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwg
aW4gbG9uZyBzaXplLCBpbiB1bnNpZ25lZCBsb25nIHVzYWdlKSByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIHZvaWQgICAgICAgICBidWZmZXJTdWJEYXRhKGluIHVuc2lnbmVkIGxvbmcg
dGFyZ2V0LCBpbiBsb25nIG9mZnNldCwgaW4gV2ViR0xBcnJheSBkYXRhKSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CisjZWxzZQorICAgICAgICAvLyBGSVhNRTogVW5mb3JrIG9uY2UgSlNDIHN1cHBv
cnRzIG92ZXJsb2FkIGdlbmVyYXRpb24gdG9vLgogICAgICAgICBbQ3VzdG9tXSB2b2lkIGJ1ZmZl
ckRhdGEoKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgLy8gU3VwcG9ydGVkIGZvcm1z
OgotICAgICAgICAvLyAgIHZvaWQgYnVmZmVyU3ViRGF0YSAoaW4gR0xlbnVtIHRhcmdldCwgaW4g
R0xzaXplaXB0ciBvZmZzZXQsIGluIFdlYkdMQXJyYXkgZGF0YSk7CiAgICAgICAgIFtDdXN0b21d
IHZvaWQgYnVmZmVyU3ViRGF0YSgpIHJhaXNlcyhET01FeGNlcHRpb24pOworI2VuZGlmCiAKICAg
ICAgICAgdW5zaWduZWQgbG9uZyBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGluIHVuc2lnbmVkIGxv
bmcgdGFyZ2V0KTsKICAgICAgICAgdm9pZCAgICAgICAgIGNsZWFyKGluIHVuc2lnbmVkIGxvbmcg
bWFzayk7CkBAIC02MTEsMzIgKzYxMywzNCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHZvaWQg
ICAgICAgICB0ZXhQYXJhbWV0ZXJpKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25l
ZCBsb25nIHBuYW1lLCBpbiBsb25nIHBhcmFtKTsKIAogICAgICAgICAvLyBTdXBwb3J0ZWQgZm9y
bXM6Ci0gICAgICAgIC8vICAgdm9pZCB0ZXhJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdM
aW50IGxldmVsLCBpbiBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIGluIEdMc2l6ZWkgd2lkdGgsIGlu
IEdMc2l6ZWkgaGVpZ2h0LCAKLSAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgaW4gR0xpbnQg
Ym9yZGVyLCBpbiBHTGVudW0gZm9ybWF0LCBpbiBHTGVudW0gdHlwZSwgaW4gV2ViR0xBcnJheSBw
aXhlbHMpOwotICAgICAgICAvLyAgIHZvaWQgdGV4SW1hZ2UyRChpbiBHTGVudW0gdGFyZ2V0LCBp
biBHTGludCBsZXZlbCwgaW4gSW1hZ2VEYXRhIHBpeGVscywKLSAgICAgICAgLy8gICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsXSBpbiBHTGJvb2xlYW4gZmxpcFksIFtPcHRpb25hbF0gaW4gcHJl
bXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIC8vICAgdm9pZCB0ZXhJbWFnZTJEKGluIEdMZW51bSB0
YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBIVE1MSW1hZ2VFbGVtZW50IGltYWdlLAotICAgICAg
ICAvLyAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIEdMYm9vbGVhbiBmbGlwWSwgW09w
dGlvbmFsXSBpbiBwcmVtdWx0aXBseUFscGhhKTsKLSAgICAgICAgLy8gICB2b2lkIHRleEltYWdl
MkQoaW4gR0xlbnVtIHRhcmdldCwgaW4gR0xpbnQgbGV2ZWwsIGluIEhUTUxDYW52YXNFbGVtZW50
IGNhbnZhcywKLSAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBHTGJv
b2xlYW4gZmxpcFksIFtPcHRpb25hbF0gaW4gcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIC8v
ICAgdm9pZCB0ZXhJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBI
VE1MVmlkZW9FbGVtZW50IHZpZGVvLAotICAgICAgICAvLyAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWxdIGluIEdMYm9vbGVhbiBmbGlwWSwgW09wdGlvbmFsXSBpbiBwcmVtdWx0aXBseUFscGhh
KTsKKyNpZiBkZWZpbmVkKFY4X0JJTkRJTkcpICYmIFY4X0JJTkRJTkcKKyAgICAgICAgdm9pZCAg
ICAgICAgIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWws
IGluIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGluIGxvbmcgd2lkdGgsIGluIGxvbmcg
aGVpZ2h0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBib3JkZXIs
IGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIFdlYkdM
QXJyYXkgcGl4ZWxzKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgICAgICAg
ICB0ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBJ
bWFnZURhdGEgcGl4ZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWxdIGJvb2xlYW4gZmxpcFksIGluIFtPcHRpb25hbF0gYm9vbGVhbiBwcmVtdWx0aXBseUFs
cGhhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgICAgICAgICB0ZXhJbWFn
ZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBIVE1MSW1hZ2VF
bGVtZW50IGltYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWxdIGJvb2xlYW4gZmxpcFksIGluIFtPcHRpb25hbF0gYm9vbGVhbiBwcmVtdWx0aXBseUFscGhh
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgICAgICAgICB0ZXhJbWFnZTJE
KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiBIVE1MQ2FudmFzRWxl
bWVudCBjYW52YXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bF0gYm9vbGVhbiBmbGlwWSwgaW4gW09wdGlvbmFsXSBib29sZWFuIHByZW11bHRpcGx5QWxwaGEp
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCAgICAgICAgIHRleEltYWdlMkQo
aW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIGxvbmcgbGV2ZWwsIGluIEhUTUxWaWRlb0VsZW1l
bnQgdmlkZW8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0g
Ym9vbGVhbiBmbGlwWSwgaW4gW09wdGlvbmFsXSBib29sZWFuIHByZW11bHRpcGx5QWxwaGEpIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICB2b2lkICAgICAgICAgdGV4U3ViSW1hZ2Uy
RChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0
LCBpbiBsb25nIHlvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHR5cGUs
IGluIFdlYkdMQXJyYXkgcGl4ZWxzKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZv
aWQgICAgICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25n
IGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gSW1hZ2VEYXRhIHBpeGVscywgaW4gW09wdGlvbmFsXSBi
b29sZWFuIGZsaXBZLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gcHJlbXVsdGlwbHlBbHBoYSkgcmFp
c2VzIChET01FeGNlcHRpb24pOworICAgICAgICB2b2lkICAgICAgICAgdGV4U3ViSW1hZ2UyRChp
biB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gbG9uZyB4b2Zmc2V0LCBp
biBsb25nIHlvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBI
VE1MSW1hZ2VFbGVtZW50IGltYWdlLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gZmxpcFksIGluIFtP
cHRpb25hbF0gYm9vbGVhbiBwcmVtdWx0aXBseUFscGhhKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CisgICAgICAgIHZvaWQgICAgICAgICB0ZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFy
Z2V0LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEhUTUxDYW52YXNFbGVtZW50IGNh
bnZhcywgaW4gW09wdGlvbmFsXSBib29sZWFuIGZsaXBZLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4g
cHJlbXVsdGlwbHlBbHBoYSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICB2b2lkICAg
ICAgICAgdGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZl
bCwgaW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBIVE1MVmlkZW9FbGVtZW50IHZpZGVvLCBpbiBbT3B0aW9uYWxd
IGJvb2xlYW4gZmxpcFksIGluIFtPcHRpb25hbF0gYm9vbGVhbiBwcmVtdWx0aXBseUFscGhhKSBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CisjZWxzZQorICAgICAgICAvLyBGSVhNRTogVW5mb3JrIG9u
Y2UgSlNDIHN1cHBvcnRzIG92ZXJsb2FkIGdlbmVyYXRpb24gdG9vLgogICAgICAgICBbQ3VzdG9t
XSB2b2lkIHRleEltYWdlMkQoKTsKLQotICAgICAgICAvLyBTdXBwb3J0ZWQgZm9ybXM6Ci0gICAg
ICAgIC8vICAgdm9pZCB0ZXhTdWJJbWFnZTJEKGluIEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxl
dmVsLCBpbiBHTGludCB4b2Zmc2V0LCBpbiBHTGludCB5b2Zmc2V0LCAKLSAgICAgICAgLy8gICAg
ICAgICAgICAgICAgICAgICAgaW4gR0xzaXplaSB3aWR0aCwgaW4gR0xzaXplaSBoZWlnaHQsIAot
ICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICBpbiBHTGVudW0gZm9ybWF0LCBpbiBHTGVu
dW0gdHlwZSwgaW4gV2ViR0xBcnJheSBwaXhlbHMpOwotICAgICAgICAvLyAgIHZvaWQgdGV4U3Vi
SW1hZ2UyRChpbiBHTGVudW0gdGFyZ2V0LCBpbiBHTGludCBsZXZlbCwgaW4gR0xpbnQgeG9mZnNl
dCwgaW4gR0xpbnQgeW9mZnNldCwKLSAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgaW4g
SW1hZ2VEYXRhIHBpeGVscywgW09wdGlvbmFsXSBHTGJvb2xlYW4gZmxpcFksIFtPcHRpb25hbF0g
aW4gcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIC8vICAgdm9pZCB0ZXhTdWJJbWFnZTJEKGlu
IEdMZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBHTGludCB4b2Zmc2V0LCBpbiBHTGlu
dCB5b2Zmc2V0LCAKLSAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgaW4gSFRNTEltYWdl
RWxlbWVudCBpbWFnZSwgW09wdGlvbmFsXSBHTGJvb2xlYW4gZmxpcFksIFtPcHRpb25hbF0gaW4g
cHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIC8vICAgdm9pZCB0ZXhTdWJJbWFnZTJEKGluIEdM
ZW51bSB0YXJnZXQsIGluIEdMaW50IGxldmVsLCBpbiBHTGludCB4b2Zmc2V0LCBpbiBHTGludCB5
b2Zmc2V0LCAKLSAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgaW4gSFRNTENhbnZhc0Vs
ZW1lbnQgY2FudmFzLCBbT3B0aW9uYWxdIEdMYm9vbGVhbiBmbGlwWSwgW09wdGlvbmFsXSBpbiBw
cmVtdWx0aXBseUFscGhhKTsKLSAgICAgICAgLy8gICB2b2lkIHRleFN1YkltYWdlMkQoaW4gR0xl
bnVtIHRhcmdldCwgaW4gR0xpbnQgbGV2ZWwsIGluIEdMaW50IHhvZmZzZXQsIGluIEdMaW50IHlv
ZmZzZXQsIAotICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICBpbiBIVE1MVmlkZW9FbGVt
ZW50IHZpZGVvLCBbT3B0aW9uYWxdIEdMYm9vbGVhbiBmbGlwWSwgW09wdGlvbmFsXSBpbiBwcmVt
dWx0aXBseUFscGhhKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCB0ZXhTdWJJbWFnZTJEKCk7Ci0K
KyNlbmRpZgogICAgICAgICB2b2lkIHVuaWZvcm0xZihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBs
b2NhdGlvbiwgaW4gZmxvYXQgeCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtDdXN0
b21dIHZvaWQgdW5pZm9ybTFmdihpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4g
V2ViR0xGbG9hdEFycmF5IHYpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHVu
aWZvcm0xaShpbiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgaW4gbG9uZyB4KSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>