<?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>222593</bug_id>
          
          <creation_ts>2021-03-02 04:50:18 -0800</creation_ts>
          <short_desc>Adding new test conditions for WebGL should be simpler</short_desc>
          <delta_ts>2021-03-04 02:49:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>222546</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1734814</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-02 04:50:18 -0800</bug_when>
    <thetext>Adding new test conditions for WebGL should be simpler

It should be simpler to add test runner functions that change the environment so that some particular behaviour can be tested.

Example: bug 222546 needs to add a new flag telling the implementation to timeout calls to GPU Process.

Current problems:
- non-uniform names makes it hard to understand what part of the code is to support testing and what is not
- many separate, non-uniform functions make it hard to catch all the functions which need to be disabled in non-test environments but enabled in normal operation
- due to current WebGL graphics context implementation being separated in many hard-to-understand **GraphicsContextGL**.cpp/h files in various ports, it is hard to add a function correctly to all platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734818</commentid>
    <comment_count>1</comment_count>
      <attachid>421925</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-02 05:45:18 -0800</bug_when>
    <thetext>Created attachment 421925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734935</commentid>
    <comment_count>2</comment_count>
      <attachid>421925</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-03-02 11:09:30 -0800</bug_when>
    <thetext>Comment on attachment 421925
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=421925&amp;action=review

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:7563
&gt; +void WebGLRenderingContextBase::simulateEventForTesting(const String&amp; eventName)

Here and throughout - the use of strings and the fact that they&apos;re duplicated throughout the code base will make this error-prone to use and update. Would you consider defining either an enum or bitfield that can be referenced by all of the needed code, including in the GPU process?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734952</commentid>
    <comment_count>3</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-02 11:44:16 -0800</bug_when>
    <thetext>I&apos;d imagine enum would need to be duplicated in few different places spanning the software layer borders, so maybe it will then complicate more than simplify?
E.g. it&apos;d be hard to have the single enum declaration for JS/Internals.h to be #includable in the WebKit level.

Should I just instead revert to method calls :
simulateContextChangeForTesting
simulateGPUStatusFailureForTesting
simulateTimeoutForTesting
?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734969</commentid>
    <comment_count>4</comment_count>
      <attachid>421925</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-03-02 12:22:41 -0800</bug_when>
    <thetext>Comment on attachment 421925
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=421925&amp;action=review

No, it&apos;s OK to move forward with this - I can see it&apos;ll significantly reduce boilerplate in the future. Couple of comments about documentation. r+

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.h:381
&gt; +    WEBCORE_EXPORT void simulateEventForTesting(const String&amp;);

Please add a comment documenting the valid inputs - or point to another header where they&apos;re documented.

&gt; Source/WebCore/platform/graphics/GraphicsContextGL.h:1302
&gt; +    virtual void simulateEventForTesting(const String&amp;) = 0;

Again, please point to documentation.

&gt; Source/WebCore/testing/Internals.h:775
&gt; +    void simulateEventForWebGLContext(const String&amp; eventName, WebGLRenderingContext&amp;);

If this is the single place where these events should be documented then please add a comment here describing what they are.

&gt; Source/WebCore/testing/Internals.idl:794
&gt; +    [Conditional=WEBGL] undefined simulateEventForWebGLContext(DOMString eventName, WebGLRenderingContext context);

Or here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735384</commentid>
    <comment_count>5</comment_count>
      <attachid>422125</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-03 11:03:42 -0800</bug_when>
    <thetext>Created attachment 422125
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735385</commentid>
    <comment_count>6</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-03 11:04:48 -0800</bug_when>
    <thetext>(In reply to Kenneth Russell from comment #4)
&gt; Please add a comment documenting the valid inputs - or point to another
&gt; header where they&apos;re documented.
...
&gt; Again, please point to documentation.
...
&gt; If this is the single place where these events should be documented then
&gt; please add a comment here describing what they are.
...
&gt; Or here.

Ok, sure, I see what you&apos;re doing! :)
And you are right (of course).

How about now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735393</commentid>
    <comment_count>7</comment_count>
      <attachid>422125</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-03-03 11:11:34 -0800</bug_when>
    <thetext>Comment on attachment 422125
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=422125&amp;action=review

Thanks for the update. Still looks good to me, one small continued comment. r+

&gt; Source/WebCore/testing/Internals.idl:104
&gt; +    &quot;GPUStatusFailure&quot;

Will attempts to pass an invalid enum throw an exception? I think lowercase or hyphenated names would be better, and more inline with web standards conventions, because they&apos;re easier to remember.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735717</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-04 01:00:25 -0800</bug_when>
    <thetext>Committed r273877: &lt;https://commits.webkit.org/r273877&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422125.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735718</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-04 01:01:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/75025136&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421925</attachid>
            <date>2021-03-02 05:45:18 -0800</date>
            <delta_ts>2021-03-03 11:03:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222593-20210302154516.patch</filename>
            <type>text/plain</type>
            <size>25602</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzBmMTllZTkyZWQ1MWZm
ZDc1NzE0N2ZkNzgyOWZhMjkxYzVlNzJiMy4uZjdmNGM5N2MxYzg4MGVkMmM4OTE3OGRjNjg4MjIx
ODliZWE0YjZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTAzLTAyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkaW5nIG5ldyB0
ZXN0IGNvbmRpdGlvbnMgZm9yIFdlYkdMIHNob3VsZCBiZSBzaW1wbGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1OTMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIEludGVybmFscyBmdW5j
dGlvbnM6CisgICAgICAgICAgICBJbnRlcm5hbHMuc2V0RmFpbE5leHRHUFVTdGF0dXNDaGVjaygp
CisgICAgICAgICAgICBJbnRlcm5hbHMuc2ltdWxhdGVDb250ZXh0Q2hhbmdlZCgpCisgICAgICAg
IHdpdGgKKyAgICAgICAgICAgIEludGVybmFscy5zaW11bGF0ZUV2ZW50Rm9yV2ViR0xDb250ZXh0
KERPTVN0cmluZyBldmVudE5hbWUsIFdlYkdMUmVuZGVyaW5nQ29udGV4dCkKKworICAgICAgICBN
b3N0IGVudmlzaW9uZWQgdGVzdCBzaW11bGF0aW9uIGVudmlyb25tZW50IHRyaWdnZXJzIGRvIG5v
dCBuZWVkIHBhcmFtZXRlcnMuIEl0IGlzIHNpbXBsZXIKKyAgICAgICAgdG8gaW1wbGVtZW50IHRo
ZSB0cmlnZ2VycyBmcm9tIG9uZSBjYWxsIHNpdGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBh
IHJlZmFjdG9yLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpz
aW11bGF0ZUV2ZW50Rm9yVGVzdGluZyk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dEdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5pZGw6CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBmZWF0dXJlIGJ5IHJlcGxh
Y2luZworICAgICAgICAgICAgSW50ZXJuYWxzLnNldEZhaWxOZXh0R1BVU3RhdHVzQ2hlY2soKQor
ICAgICAgICAgICAgSW50ZXJuYWxzLnNpbXVsYXRlQ29udGV4dENoYW5nZWQoKQorICAgICAgICB3
aXRoCisgICAgICAgICAgICBJbnRlcm5hbHMuc2ltdWxhdGVFdmVudEZvcldlYkdMQ29udGV4dChE
T01TdHJpbmcgZXZlbnROYW1lLCBXZWJHTFJlbmRlcmluZ0NvbnRleHQpCisgICAgICAgIHdpdGgg
ZXZlbnROYW1lIHRha2luZyBpbnZlbnRlZCBldmVudHMgdGhhdCBjYW4gaGFwcGVuIHRvIGEKKyAg
ICAgICAgd2ViZ2wgY29udGV4dDoKKyAgICAgICAgICJzZXRmYWlsbmV4dGdwdXN0YXR1c2NoZWNr
IiBhbmQgImNvbnRleHRjaGFuZ2VkIi4KKworICAgICAgICBGdXR1cmUgY29tbWl0cyB3aWxsIGFk
ZCBhdCBsZWFzdCAidGltZW91dCIuCisKKyAgICAgICAgVGhlIEludGVybmFscyBmdW5jdGlvbiBu
YW1lIHdhcyBjaG9zZW4gbm90IHRvIGNvbnRhaW4gIkZvclRlc3RpbmciIHN1ZmZpeCwgYXMKKyAg
ICAgICAgYWxsIHRoZSBmdW5jdGlvbnMgaW4gdGhlIGNsYXNzIHNob3VsZCBoYXZlIHRoYXQgc3Vm
Zml4LgorICAgICAgICBUaGUgZnVuY3Rpb24gbmFtZXMgaW4gdGhlIGltcGxlbWVudGF0aW9uIHBh
dGggZm9yIHRoZSBmZWF0dXJlIGNvbnRhaW5zCisgICAgICAgICJGb3JUZXN0aW5nIiBpbiBvcmRl
ciB0byBoaWdobGlnaHQgdGhlIGZlYXR1cmUgbm90IGJlaW5nIGluIHRoZSBub3JtYWwKKyAgICAg
ICAgcGF0aC4KKwogMjAyMS0wMy0wMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtMRkNdW0lGQ10gTW92ZSBzaW1wbGlmaWVkIGJhc2VsaW5lIGFsaWdubWVudCB0
byBhIGRlZGljYXRlZCBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyNjBjYzVhM2ExYzBjM2I4ZTk3NmU0
MDM4ZWU3YjdjZjY3YzkwZjE0Li5hZDRlNjgyZGE4N2Y1ZWE0MzBkZGZiNDlmOWI3Yjg1NGI2MjJl
NDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTAzLTAyICBLaW1tbyBLaW5udW5l
biAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkaW5nIG5ldyB0ZXN0IGNvbmRp
dGlvbnMgZm9yIFdlYkdMIHNob3VsZCBiZSBzaW1wbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1OTMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHNpbXVsYXRlQ29udGV4dENoYW5nZWQg
YW5kCisgICAgICAgIHNldEZhaWxOZXh0R1BVU3RhdHVzQ2hlY2sgd2l0aCBzaW11bGF0ZUV2ZW50
Rm9yVGVzdGluZy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TDo6c2ltdWxhdGVFdmVudEZvclRlc3RpbmcpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xGdW5jdGlvbnNHZW5lcmF0ZWQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eTo6c2ltdWxhdGVFdmVudEZvclRlc3RpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25z
R2VuZXJhdGVkLmNwcDoKKwogMjAyMS0wMy0wMiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5A
YXBwbGUuY29tPgogCiAgICAgICAgIElQQyBzdHJlYW0gZmVhdHVyZSBzaG91bGQgdXNlIGNsaWVu
dC9zZXJ2ZXIgbmFtaW5nIGluc3RlYWQgb2Ygc2VuZGVyL3JlY2VpdmVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IDA5MTFhYjZkZTFmNjdkNjZmMTc1NTRkZTE2YmQ1Mjg2NGU4YzAzYTkuLmIyMzljMWVl
ZTQ1ODJhODQ0NGM5N2RlNmZhODcyYzM4NWUzNDYxMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC03
NTYwLDEwICs3NTYwLDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVS
ZXN0b3JlQ29udGV4dCgpCiAgICAgY2FudmFzLT5kaXNwYXRjaEV2ZW50KFdlYkdMQ29udGV4dEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmdsY29udGV4dHJlc3RvcmVkRXZlbnQsIEV2ZW50
OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsIGVtcHR5U3RyaW5nKCkp
KTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzaW11bGF0ZUNvbnRleHRD
aGFuZ2VkKCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c2ltdWxhdGVFdmVudEZv
clRlc3RpbmcoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpCiB7CiAgICAgaWYgKG1fY29udGV4dCkK
LSAgICAgICAgbV9jb250ZXh0LT5zaW11bGF0ZUNvbnRleHRDaGFuZ2VkKCk7CisgICAgICAgIG1f
Y29udGV4dC0+c2ltdWxhdGVFdmVudEZvclRlc3RpbmcoZXZlbnROYW1lKTsKIH0KIAogU3RyaW5n
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmVuc3VyZU5vdE51bGwoY29uc3QgU3RyaW5nJiB0
ZXh0KSBjb25zdApAQCAtNzg5NSwxNCArNzg5NSw2IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6YWN0aXZpdHlTdGF0ZURpZENoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6
CiAgICAgICAgIG1fY29udGV4dC0+c2V0Q29udGV4dFZpc2liaWxpdHkobmV3QWN0aXZpdHlTdGF0
ZS5jb250YWlucyhBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUpKTsKIH0KIAotdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpzZXRGYWlsTmV4dEdQVVN0YXR1c0NoZWNrKCkKLXsKLSAgICBp
ZiAoIW1fY29udGV4dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jb250ZXh0LT5zZXRGYWls
TmV4dEdQVVN0YXR1c0NoZWNrKCk7Ci19Ci0KIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6ZGlkQ29tcG9zaXRlKCkKIHsKICAgICBtX2NvbXBvc2l0aW5nUmVzdWx0c05lZWRVcGRhdGlu
ZyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDlkODYyNzExZTQxODhmMTBlZTM2NTAzNTM2NmM2
YzY3OTU4OTRhN2IuLmQzYTQ0OGYyZDE0YmI4NTI5YWFiNTgwNWRhOGRiM2ZiMzdjY2EwYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgKQEAgLTM3OCw3ICszNzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb3JjZUxv
c3RDb250ZXh0KExvc3RDb250ZXh0TW9kZSk7CiAgICAgdm9pZCBmb3JjZVJlc3RvcmVDb250ZXh0
KCk7CiAgICAgdm9pZCBsb3NlQ29udGV4dEltcGwoTG9zdENvbnRleHRNb2RlKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNpbXVsYXRlQ29udGV4dENoYW5nZWQoKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOwogCiAgICAg
R3JhcGhpY3NDb250ZXh0R0wqIGdyYXBoaWNzQ29udGV4dEdMKCkgY29uc3QgeyByZXR1cm4gbV9j
b250ZXh0LmdldCgpOyB9CiAgICAgV2ViR0xDb250ZXh0R3JvdXAqIGNvbnRleHRHcm91cCgpIGNv
bnN0IHsgcmV0dXJuIG1fY29udGV4dEdyb3VwLmdldCgpOyB9CkBAIC00MDIsOSArNDAyLDYgQEAg
cHVibGljOgogICAgIHZvaWQgZHJhd0VsZW1lbnRzSW5zdGFuY2VkKEdDR0xlbnVtIG1vZGUsIEdD
R0xzaXplaSBjb3VudCwgR0NHTGVudW0gdHlwZSwgbG9uZyBsb25nIG9mZnNldCwgR0NHTHNpemVp
IHByaW1jb3VudCk7CiAgICAgdm9pZCB2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdDR0x1aW50IGluZGV4
LCBHQ0dMdWludCBkaXZpc29yKTsKIAotICAgIC8vIFVzZWQgZm9yIHRlc3Rpbmcgb25seSwgZnJv
bSBJbnRlcm5hbHMuCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGYWlsTmV4dEdQVVN0YXR1
c0NoZWNrKCk7Ci0KICAgICAvLyBHcmFwaGljc0NvbnRleHRHTDo6Q2xpZW50CiAgICAgdm9pZCBk
aWRDb21wb3NpdGUoKSBvdmVycmlkZTsKICAgICB2b2lkIGZvcmNlQ29udGV4dExvc3QoKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHRHTC5oCmluZGV4IDBiY2RmOWMwZmViMGEyOTUxYTUyMGVhYjNkM2UyZGM3ZGY0NTY1
MjkuLmJlZGFiMzdjZGU3Y2JkMzRiZTU3OWU2YWI3ZmNmNDY2OGI2YTc2Y2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaApA
QCAtMTI3NSw4ICsxMjc1LDYgQEAgcHVibGljOgogICAgIC8vIGVycm9yIGxpc3QuIFJldHVybiB0
cnVlIGlmIGF0IGxlYXN0IG9uZSBlcnJvciBpcyBtb3ZlZC4KICAgICB2aXJ0dWFsIGJvb2wgbW92
ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNl
dEZhaWxOZXh0R1BVU3RhdHVzQ2hlY2soKSA9IDA7Ci0KICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFy
ZUZvckRpc3BsYXkoKSA9IDA7CiAKICAgICAvLyBGSVhNRTogc2hvdWxkIGJlIHJlbW92ZWQsIGNh
bGxlciBzaG91bGQga2VlcCB0cmFjayBvZiBjaGFuZ2VkIHN0YXRlLgpAQCAtMTMwMSw3ICsxMjk5
LDcgQEAgcHVibGljOgogICAgIC8vIG9uIHRoZSBjb250ZW50LgogICAgIHZpcnR1YWwgdm9pZCBt
YXJrTGF5ZXJDb21wb3NpdGVkKCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNpbXVsYXRlQ29u
dGV4dENoYW5nZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNpbXVsYXRlRXZlbnRGb3JUZXN0
aW5nKGNvbnN0IFN0cmluZyYpID0gMDsKIAogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9V
TkRBVElPTikKICAgICAvLyBSZXR1cm5zIGludGVyZmFjZSBmb3IgQ1YgaW50ZXJhY3Rpb24gaWYg
dGhlIGZ1bmN0aW9uYWxpdHkgaXMgcHJlc2VudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTENvY29hLm1tCmluZGV4IDg0MmZiNWZhZGExMDRjOTA3MjM5MzgwM2E0NTkyY2NhMmFh
ZWNhOWUuLjk5OGMyMDNmMDE4ZTU4MTI3YjhhNWYwMWI0YmZmMDZjMjczNzExYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtNTY5LDkgKzU2OSwxMiBA
QCBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjppc0dMRVMyQ29tcGxpYW50KCkgY29uc3QK
ICAgICByZXR1cm4gbV9pc0ZvcldlYkdMMjsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6c2ltdWxhdGVDb250ZXh0Q2hhbmdlZCgpCit2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSkKIHsK
LSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5kaXNw
bGF5V2FzUmVjb25maWd1cmVkKCk7CisgICAgaWYgKGV2ZW50TmFtZSA9PSAiY29udGV4dGNoYW5n
ZWQiKQorICAgICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKS5kaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7CisgICAgZWxzZSBpZiAoZXZlbnROYW1lID09
ICJmYWlsbmV4dGdwdXN0YXR1c2NoZWNrIikKKyAgICAgICAgbV9mYWlsTmV4dFN0YXR1c0NoZWNr
ID0gdHJ1ZTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cHJlcGFyZUZvckRp
c3BsYXkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5kZXggY2JkNjU5
MTE5MzI1MWRkMTdkMWZiMDRkNWMwNGFmZWI5N2IzOWVmZi4uNzViYzAzMWZiZTcxOGJiMmZlYThl
OTI5OWRkMmExM2RlYjAxZTVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wu
Y3BwCkBAIC0xOTIsOCArMTkyLDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnNl
dENvbnRleHRWaXNpYmlsaXR5KGJvb2wpCiB7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OnNpbXVsYXRlQ29udGV4dENoYW5nZWQoKQordm9pZCBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6c2ltdWxhdGVFdmVudEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpCiB7
CisgICAgaWYgKGV2ZW50TmFtZSA9PSAiZmFpbG5leHRncHVzdGF0dXNjaGVjayIpCisgICAgICAg
IG1fZmFpbE5leHRTdGF0dXNDaGVjayA9IHRydWU7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OnByZXBhcmVGb3JEaXNwbGF5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMLmgKaW5kZXggYWJjMzgwYzczY2EzOTBmYTk3ZTZhNGQ0NWNlZDJlMmZkMmQyZWM1Ny4uZGQ5
N2JiOTE0OTc1Yzk5NWU0MzA3NmRkMzkxMWE1ODc2NzM4YTljYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmgKQEAgLTQ1Nyw3ICs0NTcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBl
bmFibGVQcmVzZXJ2ZURyYXdpbmdCdWZmZXIoKSBmaW5hbDsKIAogICAgIHZvaWQgZGlzcGF0Y2hD
b250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwotICAgIHZvaWQgc2ltdWxhdGVDb250ZXh0Q2hh
bmdlZCgpIGZpbmFsOwogCiAgICAgdm9pZCBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyhJ
bWFnZUJ1ZmZlciYpIGZpbmFsOwogICAgIFJlZlB0cjxJbWFnZURhdGE+IHBhaW50UmVuZGVyaW5n
UmVzdWx0c1RvSW1hZ2VEYXRhKCkgZmluYWw7CkBAIC01MDcsNyArNTA2LDcgQEAgcHVibGljOgog
ICAgIEV4dGVuc2lvbnNHTCYgZ2V0RXh0ZW5zaW9ucygpIGZpbmFsOwogI2VuZGlmCiAKLSAgICB2
b2lkIHNldEZhaWxOZXh0R1BVU3RhdHVzQ2hlY2soKSBmaW5hbCB7IG1fZmFpbE5leHRTdGF0dXND
aGVjayA9IHRydWU7IH0KKyAgICB2b2lkIHNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKGNvbnN0IFN0
cmluZyYgZXZlbnROYW1lKSBvdmVycmlkZTsKIAogICAgIHVuc2lnbmVkIHRleHR1cmVTZWVkKEdD
R0x1aW50IHRleHR1cmUpIHsgcmV0dXJuIG1fc3RhdGUudGV4dHVyZVNlZWRDb3VudC5jb3VudCh0
ZXh0dXJlKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMTRhYjc4
ZTJmMzQ5Njk3N2Y1NTRlMjIyMzA5ZDRmN2EwMDhmYTBhNS4uNWQyZDI5MGUwNWY3YWQ3NmU0YTQz
MTY1MzQwZWU4ODNkOGE1MTc1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtNTA5MiwxNCArNTA5MiwxMCBAQCB2b2lkIEludGVybmFsczo6c2V0QXBwbGVQYXlJc0FjdGl2
ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJHTCkKLXZvaWQg
SW50ZXJuYWxzOjpzaW11bGF0ZVdlYkdMQ29udGV4dENoYW5nZWQoV2ViR0xSZW5kZXJpbmdDb250
ZXh0JiBjb250ZXh0KQordm9pZCBJbnRlcm5hbHM6OnNpbXVsYXRlRXZlbnRGb3JXZWJHTENvbnRl
eHQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUsIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4
dCkKIHsKLSAgICBjb250ZXh0LnNpbXVsYXRlQ29udGV4dENoYW5nZWQoKTsKLX0KLQotdm9pZCBJ
bnRlcm5hbHM6OmZhaWxOZXh0R1BVU3RhdHVzQ2hlY2soV2ViR0xSZW5kZXJpbmdDb250ZXh0JiBj
b250ZXh0KQotewotICAgIGNvbnRleHQuc2V0RmFpbE5leHRHUFVTdGF0dXNDaGVjaygpOworICAg
IEFTU0VSVChldmVudE5hbWUgPT0gImNvbnRleHRjaGFuZ2VkIiB8fCBldmVudE5hbWUgPT0gImZh
aWxuZXh0Z3B1c3RhdHVzY2hlY2siKTsKKyAgICBjb250ZXh0LnNpbXVsYXRlRXZlbnRGb3JUZXN0
aW5nKGV2ZW50TmFtZSk7CiB9CiAKIGJvb2wgSW50ZXJuYWxzOjpoYXNMb3dBbmRIaWdoUG93ZXJH
UFVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGIzOGVjNDQzNTdmNWM0MTcy
ZmRjNTI3MTE2NTZiMGU5YjQxMzJmN2IuLjdlOTkwZDVkNmM3Y2E2OTNkMmRhZWE4ZThmOWI2MDg4
YmU1ZWQyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNzcyLDggKzc3Miw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIHZvaWQgc2ltdWxh
dGVXZWJHTENvbnRleHRDaGFuZ2VkKFdlYkdMUmVuZGVyaW5nQ29udGV4dCYpOwotICAgIHZvaWQg
ZmFpbE5leHRHUFVTdGF0dXNDaGVjayhXZWJHTFJlbmRlcmluZ0NvbnRleHQmKTsKKyAgICB2b2lk
IHNpbXVsYXRlRXZlbnRGb3JXZWJHTENvbnRleHQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUsIFdl
YkdMUmVuZGVyaW5nQ29udGV4dCYpOwogICAgIGJvb2wgaGFzTG93QW5kSGlnaFBvd2VyR1BVcygp
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBjMmIxZGRk
NjNlM2ZiNTczMjZiZDBmY2U2ZWYzMTkxMDU3MTliZTMxLi5iZjY0ODc3MDhjZjRhOWIyMzczZTFk
ZDYxZmNhNTZlZmM1NGQ4Mjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBA
IC03OTEsOCArNzkxLDcgQEAgZW51bSBUcmVlVHlwZSB7CiAgICAgdW5kZWZpbmVkIGRpc2FibGVU
aWxlU2l6ZVVwZGF0ZURlbGF5KCk7CiAgICAgdW5kZWZpbmVkIHNldFNwZWN1bGF0aXZlVGlsaW5n
RGVsYXlEaXNhYmxlZEZvclRlc3RpbmcoYm9vbGVhbiBkaXNhYmxlZCk7CiAKLSAgICBbQ29uZGl0
aW9uYWw9V0VCR0xdIHVuZGVmaW5lZCBzaW11bGF0ZVdlYkdMQ29udGV4dENoYW5nZWQoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IGNvbnRleHQpOwotICAgIFtDb25kaXRpb25hbD1XRUJHTF0gdW5kZWZp
bmVkIGZhaWxOZXh0R1BVU3RhdHVzQ2hlY2soV2ViR0xSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQp
OworICAgIFtDb25kaXRpb25hbD1XRUJHTF0gdW5kZWZpbmVkIHNpbXVsYXRlRXZlbnRGb3JXZWJH
TENvbnRleHQoRE9NU3RyaW5nIGV2ZW50TmFtZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGNvbnRl
eHQpOwogICAgIFtDb25kaXRpb25hbD1XRUJHTF0gYm9vbGVhbiBoYXNMb3dBbmRIaWdoUG93ZXJH
UFVzKCk7CiAKICAgICB1bmRlZmluZWQgc2V0UGFnZVZpc2liaWxpdHkoYm9vbGVhbiBpc1Zpc2li
bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggYzVjN2RlYWQyNmVlN2ZhNGU0ZjFl
NGRkZjc0MWMzNWJjNjJmZGVmZi4uZDJhYTM2NjU0ODc1ZGUwNmJiODVkMTZmYWQ5MTNiODllYmM3
MWY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC0yNTUsNiArMjU1LDEyIEBAIHZv
aWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6
Ok1lZGlhUGxheWVySWRlbnRpZmllCiAjZW5kaWYKIH0KIAordm9pZCBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTDo6c2ltdWxhdGVFdmVudEZvclRlc3RpbmcoU3RyaW5nJiYgZXZlbnROYW1lKQorewor
ICAgIC8vIEZJWE1FOiBvbmx5IHJ1biB0aGlzIGluIHRlc3RpbmcgbW9kZS4gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU0NAorICAgIG1fY29udGV4dC0+c2ltdWxh
dGVFdmVudEZvclRlc3RpbmcoZXZlbnROYW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCAyYmI3NGFhY2IwNzlhMDQwZjk4
YWU4Y2JmNWJmYTc3NDg0ZjFmNTU3Li41MzY2ZDg0OWYxZjQ2ZjJiNzkwOTUzNmFlZmE5NjlkNjdk
ODA3ZTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtOTIsNiArOTIsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyhXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9DYW52YXMoV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgY29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCB1
aW50MzJfdCB0ZXh0dXJlLCB1aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90
IGludGVybmFsRm9ybWF0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJl
bXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CisgICAgdm9pZCBzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhTdHJpbmcmJiBldmVudE5hbWUp
OwogCiAjaW5jbHVkZSAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xGdW5jdGlvbnNHZW5lcmF0ZWQu
aCIgLy8gTk9MSU5UCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbgpp
bmRleCA3NDIxYWIwMTlkMTFjNTI1NGNkOTIyNDQzNGNiMTM0OTQxOWNjZTVlLi5jNWY3MjcyOTZl
MTA0MGMzMjZmMzU3MGQ0ZjEzOTg5NGVjNDAxMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMLm1lc3NhZ2VzLmluCkBAIC0zOSw4ICszOSw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICB2b2lkIFBhaW50UmVu
ZGVyaW5nUmVzdWx0c1RvQ2FudmFzKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciBpbWFnZUJ1ZmZlcikgLT4gKCkgU3luY2hyb25vdXMKICAgICB2b2lkIFBhaW50Q29tcG9zaXRl
ZFJlc3VsdHNUb0NhbnZhcyhXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1h
Z2VCdWZmZXIpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgdm9pZCBDb3B5VGV4dHVyZUZyb21NZWRp
YShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDMyX3QgdGV4
dHVyZSwgdWludDMyX3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZv
cm1hdCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxw
aGEsIGJvb2wgZmxpcFkpIC0+IChib29sIHN1Y2Nlc3MpIFN5bmNocm9ub3VzCisgICAgdm9pZCBT
aW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhTdHJpbmcgZXZlbnROYW1lKQogCi0gICAgdm9pZCBTZXRG
YWlsTmV4dEdQVVN0YXR1c0NoZWNrKCkKICAgICB2b2lkIE1vdmVFcnJvcnNUb1N5bnRoZXRpY0Vy
cm9yTGlzdCgpIC0+IChib29sIHJldHVyblZhbHVlKSBTeW5jaHJvbm91cwogICAgIHZvaWQgQWN0
aXZlVGV4dHVyZSh1aW50MzJfdCB0ZXh0dXJlKQogICAgIHZvaWQgQXR0YWNoU2hhZGVyKHVpbnQz
Ml90IHByb2dyYW0sIHVpbnQzMl90IHNoYWRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVy
YXRlZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMRnVuY3Rpb25zR2VuZXJhdGVkLmgKaW5kZXggZTBkOTI5ZGE0Yjc3YjRlMzA5Nzhl
ZTBhMWM2OWFlZGUyZmE4NTM2Zi4uZGI0ZmJhNTQ2ZDI4NzBlYjA4ZjkxODNlMTkzYTVlMWI0OGJm
Njg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMRnVuY3Rpb25zR2VuZXJhdGVkLmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMRnVuY3Rpb25zR2Vu
ZXJhdGVkLmgKQEAgLTI1LDEwICsyNSw2IEBACiAvLyBUaGlzIGZpbGUgc2hvdWxkIGJlIGluY2x1
ZGVkIGluIHRoZSBwcml2YXRlIHNlY3Rpb24gb2YgdGhlCiAvLyBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTCBpbXBsZW1lbnRhdGlvbnMuCiAjcHJhZ21hIG9uY2UKLSAgICB2b2lkIHNldEZhaWxOZXh0
R1BVU3RhdHVzQ2hlY2soKQotICAgIHsKLSAgICAgICAgbV9jb250ZXh0LT5zZXRGYWlsTmV4dEdQ
VVN0YXR1c0NoZWNrKCk7Ci0gICAgfQogICAgIHZvaWQgbW92ZUVycm9yc1RvU3ludGhldGljRXJy
b3JMaXN0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiAgICAgewogICAgICAgICBib29sIHJldHVyblZhbHVlID0geyB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKaW5kZXggZTkxYmI5NzY1Y2FiNGM0NmQ3ZjcyZmM2
ZWU4ODI0Y2M4NzY0YjVlYy4uYjU5N2YzMTZjOWZkZDYzMjdlZWM0ZDJlMjM5OTkwYmZlMjYzN2Ni
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCkBAIC0xMjgs
MTIgKzEyOCw2IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6bm90aWZ5TWFy
a0NvbnRleHRDaGFuZ2VkKCkKICAgICAgICAgbWFya0NvbnRleHRMb3N0KCk7CiB9CiAKLXZvaWQg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6c2ltdWxhdGVDb250ZXh0Q2hhbmdlZCgpCi17
Ci0gICAgLy8gRklYTUU6IEN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgYmVjYXVzZSBpdCdzIG5v
dCBjbGVhciB0aGlzIGlzIHRoZSByaWdodCB3YXkuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTkzNDkKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFz
KEltYWdlQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgLy8gRklYTUU6IHRoZSBidWZmZXIgaXMgInJl
bGF0aXZlbHkgZW1wdHkiIGFsd2F5cywgYnV0IGZvciBjb25zaXN0ZW5jeSwgd2UgbmVlZCB0byBl
bnN1cmUKQEAgLTE5OSw2ICsxOTMsMTUgQEAgR0NHTGVudW0gUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eTo6Z2V0RXJyb3IoKQogICAgIHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fZXJyb3JXaGVu
Q29udGV4dElzTG9zdCwgTk9fRVJST1IpOwogfQogCit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHk6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgZXZlbnROYW1l
KQoreworICAgIGlmICghaXNDb250ZXh0TG9zdCgpKSB7CisgICAgICAgIGF1dG8gc2VuZFJlc3Vs
dCA9IHNlbmQoTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpTaW11bGF0ZUV2ZW50
Rm9yVGVzdGluZyhldmVudE5hbWUpKTsKKyAgICAgICAgaWYgKCFzZW5kUmVzdWx0KQorICAgICAg
ICAgICAgbWFya0NvbnRleHRMb3N0KCk7CisgICAgfQorfQorCiB2b2lkIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHk6Ondhc0NyZWF0ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9y
ZSYmIHNlbWFwaG9yZSwgU3RyaW5nJiYgYXZhaWxhYmxlRXh0ZW5zaW9ucywgU3RyaW5nJiYgcmVx
dWVzdGVkRXh0ZW5zaW9ucykKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAppbmRleCBlZDBmZjg2OTJlZjdhZDg0NTcxOWUx
ZjBhODI1NjYyYzM2NWU1MmE0Li45Mjg1ODY4ZGY1ZmIyMGU4YTgyNDBhMTY0ZTg0ODU0MGRiMzRl
YmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaApAQCAtNjQsMTYg
KzY0LDE0IEBAIHB1YmxpYzoKICAgICB1c2luZyBXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5QmFzZTo6aXNFbmFibGVkOwogICAgIHZvaWQgZW5zdXJlRXh0ZW5zaW9uRW5hYmxl
ZChjb25zdCBTdHJpbmcmIGV4dGVuc2lvbikgZmluYWw7CiAgICAgdm9pZCBub3RpZnlNYXJrQ29u
dGV4dENoYW5nZWQoKSBmaW5hbDsKLSAgICB2b2lkIHNpbXVsYXRlQ29udGV4dENoYW5nZWQoKSBm
aW5hbDsKICAgICB2b2lkIHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKFdlYkNvcmU6Oklt
YWdlQnVmZmVyJikgZmluYWw7CiAgICAgdm9pZCBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9DYW52
YXMoV2ViQ29yZTo6SW1hZ2VCdWZmZXImKSBmaW5hbDsKICAgICB2b2lkIHN5bnRoZXNpemVHTEVy
cm9yKEdDR0xlbnVtIGVycm9yKSBmaW5hbDsKICAgICBHQ0dMZW51bSBnZXRFcnJvcigpIGZpbmFs
OwotCiAgICAgYm9vbCBjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllciYs
IFBsYXRmb3JtR0xPYmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVs
LCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBl
LCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIGZpbmFsOworICAgIHZvaWQgc2lt
dWxhdGVFdmVudEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICAvLyBGdW5j
dGlvbnMgd2l0aCBhIGdlbmVyYXRlZCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBsaXN0IGlzIHVzZWQg
YnkgZ2VuZXJhdGUtZ3B1cC13ZWJnbCBzY3JpcHQuCi0gICAgdm9pZCBzZXRGYWlsTmV4dEdQVVN0
YXR1c0NoZWNrKCkgZmluYWw7CiAgICAgYm9vbCBtb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxp
c3QoKSBmaW5hbDsKICAgICB2b2lkIGFjdGl2ZVRleHR1cmUoR0NHTGVudW0gdGV4dHVyZSkgZmlu
YWw7CiAgICAgdm9pZCBhdHRhY2hTaGFkZXIoUGxhdGZvcm1HTE9iamVjdCBwcm9ncmFtLCBQbGF0
Zm9ybUdMT2JqZWN0IHNoYWRlcikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlGdW5jdGlv
bnNHZW5lcmF0ZWQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJhdGVkLmNwcAppbmRleCA0
NjZkZDA4YjFiMmIzNzJiNmUxZDg1Nzk3ZjQ4NjBhMjhjZjk1M2ViLi5jY2E2Y2EwMjkyZmFhZDE2
NjI4YjNhODUzZjdkNTUxN2NiYzBkZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlGdW5jdGlvbnNH
ZW5lcmF0ZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAKQEAgLTMw
LDE1ICszMCw2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHk6OnNldEZhaWxOZXh0R1BVU3RhdHVzQ2hlY2soKQotewotICAgIGlmICgh
aXNDb250ZXh0TG9zdCgpKSB7Ci0gICAgICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpTZXRGYWlsTmV4dEdQVVN0YXR1c0NoZWNrKCkp
OwotICAgICAgICBpZiAoIXNlbmRSZXN1bHQpCi0gICAgICAgICAgICBtYXJrQ29udGV4dExvc3Qo
KTsKLSAgICB9Ci19Ci0KIGJvb2wgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6bW92ZUVy
cm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCkKIHsKICAgICBib29sIHJldHVyblZhbHVlID0geyB9
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM1
MDU0Nzk2YWQ3ZTZiY2YzNDA1NjVmMmZjYTNjZWY1ZTQzMTU0OGQuLmMyMDczZTc1YjIxNzk4NTI0
NzVhM2E1NjBjOGVmZmRiMjg0MmY4ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wMy0wMiAgS2ltbW8gS2lu
bnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZGluZyBuZXcgdGVzdCBj
b25kaXRpb25zIGZvciBXZWJHTCBzaG91bGQgYmUgc2ltcGxlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNTkzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFNpbXVsYXRlRXZlbnRGb3JUZXN0aW5n
KFN0cmluZyBldmVudE5hbWUpIHRvIG1hbnVhbGx5CisgICAgICAgIGltcGxlbWVudGVkIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMIGZ1bmN0aW9ucy4KKyAgICAgICAgVXNlIG1hbnVhbGx5IGdlbmVy
YXRlZCBmdW5jdGlvbiBiZWNhdXNlIG5leHQgY29tbWl0IGZvcgorICAgICAgICB0aW1lb3V0IGlt
cGxlbWVudGF0aW9uIHdpbGwgYWRkIHNvbWUgbG9naWMgdG8gUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wKKyAgICAgICAgd2hpbGUgZm9yd2FyZGluZyByZXN0IG9mIHRoZSBldmVudHMgdG8gdGhlIHVu
ZGVybHlpbmcgR3JhcGhpY3NDb250ZXh0R0wuCisKKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRl
LWdwdXAtd2ViZ2w6CisKIDIwMjEtMDMtMDEgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBw
bGUuY29tPgogCiAgICAgICAgIFt3YmtpdHNjbXB5XSBBZGQgY29tbWl0cyB3aXRoIGNvbGxpZGlu
ZyB0aW1lc3RhbXBzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2dlbmVyYXRlLWdwdXAtd2Vi
Z2wgYi9Ub29scy9TY3JpcHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2wKaW5kZXggZDM1MDJiYzI2NjU4
ZGZiOWMzMGY2ZjJjZTc2ZGQ4NjU4NTczMmIwOC4uYWE4NTE2YmM0OWIwNjc1MWFkMDAwNTQ0ZDJk
ZGUzNjZhYzUxMjc3NyAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9nZW5lcmF0ZS1ncHVwLXdl
YmdsCisrKyBiL1Rvb2xzL1NjcmlwdHMvZ2VuZXJhdGUtZ3B1cC13ZWJnbApAQCAtMTA0LDYgKzEw
NCw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIE5vdFJlZkNvdW50ZWQg
U3RyZWFtIHt7CiAgICAgdm9pZCBQYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyhXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXIpIC0+ICgpIFN5bmNocm9u
b3VzCiAgICAgdm9pZCBQYWludENvbXBvc2l0ZWRSZXN1bHRzVG9DYW52YXMoV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVyKSAtPiAoKSBTeW5jaHJvbm91cwog
ICAgIHZvaWQgQ29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHVpbnQzMl90IHRleHR1cmUsIHVpbnQzMl90IHRhcmdldCwgaW50MzJf
dCBsZXZlbCwgdWludDMyX3QgaW50ZXJuYWxGb3JtYXQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMy
X3QgdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKSAtPiAoYm9vbCBzdWNj
ZXNzKSBTeW5jaHJvbm91cworICAgIHZvaWQgU2ltdWxhdGVFdmVudEZvclRlc3RpbmcoU3RyaW5n
IGV2ZW50TmFtZSkKIHt9CiB9fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDQ4OWI4MWI4ODJlMmMwNTVjNjIzZDk4Nzdm
NWVhMmIyNTBmMTk1Zi4uNDk1YzhiZTcyNmJjMzAzNmIxNGFlZDliMWQzZDA1MzJjODgxZDM3NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTAzLTAyICBLaW1tbyBLaW5udW5lbiAgPGtraW5u
dW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkaW5nIG5ldyB0ZXN0IGNvbmRpdGlvbnMgZm9y
IFdlYkdMIHNob3VsZCBiZSBzaW1wbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjI1OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRl
dmVudC5odG1sOgorICAgICAgICBSZXBsYWNlIGludGVybmFscy5zaW11bGF0ZUNvbnRleHRDaGFu
Z2VkKGNvbnRleHQpIHdpdGgKKyAgICAgICAgaW50ZXJuYWxzLnNpbXVsYXRlRXZlbnRGb3JXZWJH
TENvbnRleHQoImNvbnRleHRjaGFuZ2VkIiwgY29udGV4dCkKKworICAgICAgICAqIGZhc3QvY2Fu
dmFzL3dlYmdsL2xvc2UtY29udGV4dC1vbi1zdGF0dXMtZmFpbHVyZS5odG1sOgorICAgICAgICBT
aW1pbGFybHkgcmVwbGFjZSBpbnRlcm5hbHMuc2V0RmFpbE5leHRHUFVTdGF0dXNDaGVjayhjb250
ZXh0KSB3aXRoCisgICAgICAgIGludGVybmFscy5zaW11bGF0ZUV2ZW50Rm9yV2ViR0xDb250ZXh0
KCJzZXRmYWlsbmV4dGdwdXN0YXR1c2NoZWNrIiwgY29udGV4dCkuCisKIDIwMjEtMDMtMDEgIEZ1
amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW0dUS10g
V2ViIGluc3BlY3RvciByZWxhdGVkIHRlc3RzIHZlcnkgc2xvdyBvciB0aW1lb3V0IGluIGRlYnVn
IG1vZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2xvc2UtY29u
dGV4dC1vbi1zdGF0dXMtZmFpbHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvbG9zZS1jb250ZXh0LW9uLXN0YXR1cy1mYWlsdXJlLmh0bWwKaW5kZXggYjgzOTE2ODY0ZGJk
NmU3MGMzOGRkZmI3YTM0ZTI0NTUyZWMwN2I4MS4uM2FmYzkyYTBlNzM3YWI0OTk0ZTFiOTQyOGI4
ZGQ1YWU0MWMzOGJlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
bG9zZS1jb250ZXh0LW9uLXN0YXR1cy1mYWlsdXJlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvbG9zZS1jb250ZXh0LW9uLXN0YXR1cy1mYWlsdXJlLmh0bWwKQEAgLTY5
LDcgKzY5LDcgQEAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIAogICAgIGRlYnVnKCJOb3cg
Zm9yY2UgZmFpbHVyZSBhZnRlciB0aGUgbmV4dCBkcmF3QXJyYXlzLiIpCiAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuZmFpbE5leHRHUFVTdGF0dXND
aGVjayhnbCk7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2ltdWxhdGVFdmVudEZvcldlYkdM
Q29udGV4dCgiZmFpbG5leHRncHVzdGF0dXNjaGVjayIsIGdsKTsKICAgICBnbC5kcmF3QXJyYXlz
KGdsLlRSSUFOR0xFUywgMCwgNik7CiAgICAgYXdhaXQgd2ViR0xDb250ZXh0TG9zdChjYW52YXMp
OwogICAgIHNob3VsZEJlVHJ1ZSgiZ2wuaXNDb250ZXh0TG9zdCgpIik7CkBAIC0xMDEsNyArMTAx
LDcgQEAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIAogICAgIGRlYnVnKCJOb3cgZm9yY2Ug
ZmFpbHVyZSBhZnRlciB0aGUgbmV4dCBkcmF3RWxlbWVudHMuIikKICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKLSAgICAgICAgd2luZG93LmludGVybmFscy5mYWlsTmV4dEdQVVN0YXR1c0NoZWNr
KGdsKTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zaW11bGF0ZUV2ZW50Rm9yV2ViR0xDb250
ZXh0KCJmYWlsbmV4dGdwdXN0YXR1c2NoZWNrIiwgZ2wpOwogICAgIGdsLmRyYXdFbGVtZW50cyhn
bC5UUklBTkdMRVMsIDYsIGdsLlVOU0lHTkVEX1NIT1JULCAwKTsKICAgICBhd2FpdCB3ZWJHTENv
bnRleHRMb3N0KGNhbnZhcykKICAgICBzaG91bGRCZVRydWUoImdsLmlzQ29udGV4dExvc3QoKSIp
OwpAQCAtMTI4LDcgKzEyOCw3IEBAIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAKICAgICBk
ZWJ1ZygiTm93IGZvcmNlIGZhaWx1cmUgYWZ0ZXIgdGhlIG5leHQgZHJhd0FycmF5c0luc3RhbmNl
ZEFOR0xFLiIpCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuZmFpbE5leHRHUFVTdGF0dXNDaGVjayhnbCk7CisgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2ltdWxhdGVFdmVudEZvcldlYkdMQ29udGV4dCgiZmFpbG5leHRncHVzdGF0dXNjaGVjayIs
IGdsKTsKICAgICBleHQuZHJhd0FycmF5c0luc3RhbmNlZEFOR0xFKGdsLlRSSUFOR0xFUywgMCwg
NiwgMTApOwogICAgIGF3YWl0IHdlYkdMQ29udGV4dExvc3QoY2FudmFzKTsKICAgICBzaG91bGRC
ZVRydWUoImdsLmlzQ29udGV4dExvc3QoKSIpOwpAQCAtMTYxLDcgKzE2MSw3IEBAIGFzeW5jIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CiAKICAgICBkZWJ1ZygiTm93IGZvcmNlIGZhaWx1cmUgYWZ0ZXIg
dGhlIG5leHQgZHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEUuIikKICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKLSAgICAgICAgd2luZG93LmludGVybmFscy5mYWlsTmV4dEdQVVN0YXR1c0NoZWNr
KGdsKTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zaW11bGF0ZUV2ZW50Rm9yV2ViR0xDb250
ZXh0KCJmYWlsbmV4dGdwdXN0YXR1c2NoZWNrIiwgZ2wpOwogICAgIGV4dC5kcmF3RWxlbWVudHNJ
bnN0YW5jZWRBTkdMRShnbC5UUklBTkdMRVMsIDYsIGdsLlVOU0lHTkVEX1NIT1JULCAwLCA4KTsK
ICAgICBhd2FpdCB3ZWJHTENvbnRleHRMb3N0KGNhbnZhcyk7CiAgICAgc2hvdWxkQmVUcnVlKCJn
bC5pc0NvbnRleHRMb3N0KCkiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvd2ViZ2xjb250ZXh0Y2hhbmdlZGV2ZW50Lmh0bWwKaW5kZXggMzlkNzdiNzk2
ZWYwOTUwOWViZDU2OTkxYTAyYzkxNThhMDFiYjgzNi4uNGY5ZDFkZGI5M2Y0NzgyNzhlMjM3YzMz
NjViYmQ0MWQ2ODJjZGE1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvd2ViZ2xjb250ZXh0Y2hhbmdlZGV2ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvd2ViZ2xjb250ZXh0Y2hhbmdlZGV2ZW50Lmh0bWwKQEAgLTM4LDcgKzM4LDcg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgfSk7CiAKICAgICBsZXQgZ2wgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJjYW52YXMiKS5nZXRDb250ZXh0KCJ3ZWJnbCIpOwotICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2ltdWxhdGVXZWJHTENvbnRleHRDaGFuZ2VkKGdsKTsKKyAgICB3aW5kb3cuaW50
ZXJuYWxzLnNpbXVsYXRlRXZlbnRGb3JXZWJHTENvbnRleHQoImNvbnRleHRjaGFuZ2VkIiwgZ2wp
OwogfQogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422125</attachid>
            <date>2021-03-03 11:03:42 -0800</date>
            <delta_ts>2021-03-04 02:49:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222593-20210303210340.patch</filename>
            <type>text/plain</type>
            <size>27600</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczODEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWJkNjE2NDJlZmJlNmE2
MzIzNjgxYjg4Mjg1OWViMTg5NjIwODk4ZC4uM2M1ODU1ODc5OTBlNjYzZjgwYzM2YWI4YTYyYWQ1
MTBhMzFjYzVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTAzLTAyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkaW5nIG5ldyB0
ZXN0IGNvbmRpdGlvbnMgZm9yIFdlYkdMIHNob3VsZCBiZSBzaW1wbGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1OTMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIEludGVybmFscyBmdW5j
dGlvbnM6CisgICAgICAgICAgICBJbnRlcm5hbHMuc2V0RmFpbE5leHRHUFVTdGF0dXNDaGVjaygp
CisgICAgICAgICAgICBJbnRlcm5hbHMuc2ltdWxhdGVDb250ZXh0Q2hhbmdlZCgpCisgICAgICAg
IHdpdGgKKyAgICAgICAgICAgIEludGVybmFscy5zaW11bGF0ZUV2ZW50Rm9yV2ViR0xDb250ZXh0
KFNpbXVsYXRlZFdlYkdMQ29udGV4dEV2ZW50LCBXZWJHTFJlbmRlcmluZ0NvbnRleHQpCisKKyAg
ICAgICAgTW9zdCBlbnZpc2lvbmVkIHRlc3Qgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCB0cmlnZ2Vy
cyBkbyBub3QgbmVlZCBwYXJhbWV0ZXJzLiBJdCBpcyBzaW1wbGVyCisgICAgICAgIHRvIGltcGxl
bWVudCB0aGUgdHJpZ2dlcnMgZnJvbSBvbmUgY2FsbCBzaXRlLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgYSByZWZhY3Rvci4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6c2ltdWxhdGVFdmVudEZvclRlc3RpbmcpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6c2ltdWxhdGVFdmVudEZvclRlc3RpbmcpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6c2ltdWxhdGVFdmVudEZvclRl
c3RpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTC5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCisgICAgICAgIEltcGxlbWVudCB0aGUgZmVhdHVyZSBi
eSByZXBsYWNpbmcKKyAgICAgICAgICAgIEludGVybmFscy5zZXRGYWlsTmV4dEdQVVN0YXR1c0No
ZWNrKCkKKyAgICAgICAgICAgIEludGVybmFscy5zaW11bGF0ZUNvbnRleHRDaGFuZ2VkKCkKKyAg
ICAgICAgd2l0aAorICAgICAgICAgICAgSW50ZXJuYWxzLnNpbXVsYXRlRXZlbnRGb3JXZWJHTENv
bnRleHQoU2ltdWxhdGVkV2ViR0xDb250ZXh0RXZlbnQsIFdlYkdMUmVuZGVyaW5nQ29udGV4dCkK
KyAgICAgICAgd2l0aCBldmVudE5hbWUgdGFraW5nIGludmVudGVkIGV2ZW50cyB0aGF0IGNhbiBo
YXBwZW4gdG8gYQorICAgICAgICB3ZWJnbCBjb250ZXh0OgorICAgICAgICAgIkdQVVN0YXR1c0Zh
aWx1cmUiIGFuZCAiQ29udGV4dENoYW5nZSIuCisKKyAgICAgICAgRnV0dXJlIGNvbW1pdHMgd2ls
bCBhZGQgYXQgbGVhc3QgIlRpbWVvdXQiLgorCisgICAgICAgIFRoZSBJbnRlcm5hbHMgZnVuY3Rp
b24gbmFtZSB3YXMgY2hvc2VuIG5vdCB0byBjb250YWluICJGb3JUZXN0aW5nIiBzdWZmaXgsIGFz
CisgICAgICAgIGFsbCB0aGUgZnVuY3Rpb25zIGluIHRoZSBjbGFzcyBzaG91bGQgaGF2ZSB0aGF0
IHN1ZmZpeC4KKyAgICAgICAgVGhlIGZ1bmN0aW9uIG5hbWVzIGluIHRoZSBpbXBsZW1lbnRhdGlv
biBwYXRoIGZvciB0aGUgZmVhdHVyZSBjb250YWlucworICAgICAgICAiRm9yVGVzdGluZyIgaW4g
b3JkZXIgdG8gaGlnaGxpZ2h0IHRoZSBmZWF0dXJlIG5vdCBiZWluZyBpbiB0aGUgbm9ybWFsCisg
ICAgICAgIHBhdGguCisKIDIwMjEtMDMtMDIgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdv
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW3NlbGVjdG9yc10gOmZvY3VzLXZpc2libGUgaW1wbGVt
ZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggOThhNWQyNDEyN2U5NDFkOWM3NDZhZGIzZDU4ZjQxYWU2NGNh
Mjk2OS4uOWY5MjYwMGEzYjljMDA0NDBmMTA1NjU1NDZmZDE1NDNiZGE2ZmNlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMyBAQAorMjAyMS0wMy0wMiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZGluZyBuZXcgdGVzdCBjb25kaXRpb25zIGZvciBXZWJH
TCBzaG91bGQgYmUgc2ltcGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyNTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVwbGFjZSBzaW11bGF0ZUNvbnRleHRDaGFuZ2VkIGFuZAorICAgICAgICBz
ZXRGYWlsTmV4dEdQVVN0YXR1c0NoZWNrIHdpdGggc2ltdWxhdGVFdmVudEZvclRlc3RpbmcuCisK
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnNpbXVsYXRlRXZl
bnRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMRnVuY3Rpb25zR2VuZXJhdGVkLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnNpbXVsYXRl
RXZlbnRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHA6
CisKIDIwMjEtMDMtMDIgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBSRUdSRVNTSU9OKHIyNzA2OTEpOiBJdCdzIGltcG9zc2libGUgdG8gdXNlIE1v
YmlsZUFzc2V0IGZvbnRzIG9uIG1hY09TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDA5MTFhYjZkZTFm
NjdkNjZmMTc1NTRkZTE2YmQ1Mjg2NGU4YzAzYTkuLjBmNmZlYTdjMTIwODc2YzBkNTkzZWZlODY0
M2I1MTdhMjExYTI4ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC03NTYwLDEwICs3NTYwLDEwIEBA
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCgpCiAg
ICAgY2FudmFzLT5kaXNwYXRjaEV2ZW50KFdlYkdMQ29udGV4dEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLndlYmdsY29udGV4dHJlc3RvcmVkRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBF
dmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsIGVtcHR5U3RyaW5nKCkpKTsKIH0KIAotdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzaW11bGF0ZUNvbnRleHRDaGFuZ2VkKCkKK3ZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c2ltdWxhdGVFdmVudEZvclRlc3RpbmcoU2ltdWxhdGVk
RXZlbnRGb3JUZXN0aW5nIGV2ZW50KQogewogICAgIGlmIChtX2NvbnRleHQpCi0gICAgICAgIG1f
Y29udGV4dC0+c2ltdWxhdGVDb250ZXh0Q2hhbmdlZCgpOworICAgICAgICBtX2NvbnRleHQtPnNp
bXVsYXRlRXZlbnRGb3JUZXN0aW5nKGV2ZW50KTsKIH0KIAogU3RyaW5nIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmVuc3VyZU5vdE51bGwoY29uc3QgU3RyaW5nJiB0ZXh0KSBjb25zdApAQCAt
Nzg5NSwxNCArNzg5NSw2IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWN0aXZp
dHlTdGF0ZURpZENoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6CiAgICAgICAgIG1fY29u
dGV4dC0+c2V0Q29udGV4dFZpc2liaWxpdHkobmV3QWN0aXZpdHlTdGF0ZS5jb250YWlucyhBY3Rp
dml0eVN0YXRlOjpJc1Zpc2libGUpKTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpzZXRGYWlsTmV4dEdQVVN0YXR1c0NoZWNrKCkKLXsKLSAgICBpZiAoIW1fY29udGV4dCkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jb250ZXh0LT5zZXRGYWlsTmV4dEdQVVN0YXR1c0No
ZWNrKCk7Ci19Ci0KIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlkQ29tcG9zaXRl
KCkKIHsKICAgICBtX2NvbXBvc2l0aW5nUmVzdWx0c05lZWRVcGRhdGluZyA9IGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5oCmluZGV4IDlkODYyNzExZTQxODhmMTBlZTM2NTAzNTM2NmM2YzY3OTU4OTRhN2IuLjhm
MzYxNmI3YzhhMzYzMjBiZjRmYjlhYmEwMzEwMTkyOWM3MWMyZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAg
LTM3OCw3ICszNzgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb3JjZUxvc3RDb250ZXh0KExvc3RD
b250ZXh0TW9kZSk7CiAgICAgdm9pZCBmb3JjZVJlc3RvcmVDb250ZXh0KCk7CiAgICAgdm9pZCBs
b3NlQ29udGV4dEltcGwoTG9zdENvbnRleHRNb2RlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNpbXVsYXRlQ29udGV4dENoYW5nZWQoKTsKKyAgICB1c2luZyBTaW11bGF0ZWRFdmVudEZvclRl
c3RpbmcgPSBHcmFwaGljc0NvbnRleHRHTDo6U2ltdWxhdGVkRXZlbnRGb3JUZXN0aW5nOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2ltdWxhdGVFdmVudEZvclRlc3RpbmcoU2ltdWxhdGVkRXZl
bnRGb3JUZXN0aW5nKTsKIAogICAgIEdyYXBoaWNzQ29udGV4dEdMKiBncmFwaGljc0NvbnRleHRH
TCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQogICAgIFdlYkdMQ29udGV4dEdy
b3VwKiBjb250ZXh0R3JvdXAoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRHcm91cC5nZXQoKTsg
fQpAQCAtNDAyLDkgKzQwMyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdFbGVtZW50c0luc3Rh
bmNlZChHQ0dMZW51bSBtb2RlLCBHQ0dMc2l6ZWkgY291bnQsIEdDR0xlbnVtIHR5cGUsIGxvbmcg
bG9uZyBvZmZzZXQsIEdDR0xzaXplaSBwcmltY291bnQpOwogICAgIHZvaWQgdmVydGV4QXR0cmli
RGl2aXNvcihHQ0dMdWludCBpbmRleCwgR0NHTHVpbnQgZGl2aXNvcik7CiAKLSAgICAvLyBVc2Vk
IGZvciB0ZXN0aW5nIG9ubHksIGZyb20gSW50ZXJuYWxzLgotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0RmFpbE5leHRHUFVTdGF0dXNDaGVjaygpOwotCiAgICAgLy8gR3JhcGhpY3NDb250ZXh0
R0w6OkNsaWVudAogICAgIHZvaWQgZGlkQ29tcG9zaXRlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBm
b3JjZUNvbnRleHRMb3N0KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCAwYmNkZjljMGZlYjBhMjk1
MWE1MjBlYWIzZDNlMmRjN2RmNDU2NTI5Li44NDU0ZWFiZWMzOGM5NTI2M2Q3Nzc1MjEzNWNkMjEz
NjhjMDkzZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHRHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEdMLmgKQEAgLTEyNzUsOCArMTI3NSw2IEBAIHB1YmxpYzoKICAgICAv
LyBlcnJvciBsaXN0LiBSZXR1cm4gdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgZXJyb3IgaXMgbW92ZWQu
CiAgICAgdmlydHVhbCBib29sIG1vdmVFcnJvcnNUb1N5bnRoZXRpY0Vycm9yTGlzdCgpID0gMDsK
IAotICAgIHZpcnR1YWwgdm9pZCBzZXRGYWlsTmV4dEdQVVN0YXR1c0NoZWNrKCkgPSAwOwotCiAg
ICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkgPSAwOwogCiAgICAgLy8gRklYTUU6
IHNob3VsZCBiZSByZW1vdmVkLCBjYWxsZXIgc2hvdWxkIGtlZXAgdHJhY2sgb2YgY2hhbmdlZCBz
dGF0ZS4KQEAgLTEzMDEsNyArMTI5OSwxMSBAQCBwdWJsaWM6CiAgICAgLy8gb24gdGhlIGNvbnRl
bnQuCiAgICAgdmlydHVhbCB2b2lkIG1hcmtMYXllckNvbXBvc2l0ZWQoKSA9IDA7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgc2ltdWxhdGVDb250ZXh0Q2hhbmdlZCgpID0gMDsKKyAgICBlbnVtIGNsYXNz
IFNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZyB7CisgICAgICAgIENvbnRleHRDaGFuZ2UsCisgICAg
ICAgIEdQVVN0YXR1c0ZhaWx1cmUKKyAgICB9OworICAgIHZpcnR1YWwgdm9pZCBzaW11bGF0ZUV2
ZW50Rm9yVGVzdGluZyhTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcpID0gMDsKIAogI2lmIEVOQUJM
RShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICAvLyBSZXR1cm5zIGludGVyZmFjZSBm
b3IgQ1YgaW50ZXJhY3Rpb24gaWYgdGhlIGZ1bmN0aW9uYWxpdHkgaXMgcHJlc2VudC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IDg0MmZiNWZhZGExMDRj
OTA3MjM5MzgwM2E0NTkyY2NhMmFhZWNhOWUuLjg1YzI1ZmIwN2NiN2FiMGQ5MjFlYmM1NGM2NmZh
OWJjMWE3NmY2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5t
bQpAQCAtNTY5LDkgKzU2OSwxNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjppc0dM
RVMyQ29tcGxpYW50KCkgY29uc3QKICAgICByZXR1cm4gbV9pc0ZvcldlYkdMMjsKIH0KIAotdm9p
ZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6c2ltdWxhdGVDb250ZXh0Q2hhbmdlZCgpCit2b2lk
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhTaW11bGF0
ZWRFdmVudEZvclRlc3RpbmcgZXZlbnQpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xN
YW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuZGlzcGxheVdhc1JlY29uZmlndXJlZCgpOworICAgIGlm
IChldmVudCA9PSBTaW11bGF0ZWRFdmVudEZvclRlc3Rpbmc6OkNvbnRleHRDaGFuZ2UpIHsKKyAg
ICAgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuZGlz
cGxheVdhc1JlY29uZmlndXJlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChl
dmVudCA9PSBTaW11bGF0ZWRFdmVudEZvclRlc3Rpbmc6OkdQVVN0YXR1c0ZhaWx1cmUpIHsKKyAg
ICAgICAgbV9mYWlsTmV4dFN0YXR1c0NoZWNrID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cHJlcGFyZUZvckRpc3BsYXko
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5kZXggY2JkNjU5MTE5MzI1
MWRkMTdkMWZiMDRkNWMwNGFmZWI5N2IzOWVmZi4uOWI1NjJkZmRkOTU4ZmNhYTFmMjFhMjlhZDFm
N2U2NTQ5YzI0ZjY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCkBA
IC0xOTIsOCArMTkyLDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnNldENvbnRl
eHRWaXNpYmlsaXR5KGJvb2wpCiB7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OnNpbXVsYXRlQ29udGV4dENoYW5nZWQoKQordm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
c2ltdWxhdGVFdmVudEZvclRlc3RpbmcoU2ltdWxhdGVkRXZlbnRGb3JUZXN0aW5nIGV2ZW50KQog
eworICAgIGlmIChldmVudCA9PSBTaW11bGF0ZWRFdmVudEZvclRlc3Rpbmc6OkdQVVN0YXR1c0Zh
aWx1cmUpCisgICAgICAgIG1fZmFpbE5leHRTdGF0dXNDaGVjayA9IHRydWU7CiB9CiAKIHZvaWQg
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnByZXBhcmVGb3JEaXNwbGF5KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMLmgKaW5kZXggYWJjMzgwYzczY2EzOTBmYTk3ZTZhNGQ0NWNlZDJl
MmZkMmQyZWM1Ny4uODI0MWQ2MmY3NmIzYjIyMWMwNzRjODIzMzYyZTY1MGFhNWI5Y2E0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKQEAgLTQ1Nyw3ICs0NTcsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBlbmFibGVQcmVzZXJ2ZURyYXdpbmdCdWZmZXIoKSBmaW5hbDsKIAogICAg
IHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwotICAgIHZvaWQgc2lt
dWxhdGVDb250ZXh0Q2hhbmdlZCgpIGZpbmFsOwogCiAgICAgdm9pZCBwYWludFJlbmRlcmluZ1Jl
c3VsdHNUb0NhbnZhcyhJbWFnZUJ1ZmZlciYpIGZpbmFsOwogICAgIFJlZlB0cjxJbWFnZURhdGE+
IHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKCkgZmluYWw7CkBAIC01MDcsNyArNTA2
LDcgQEAgcHVibGljOgogICAgIEV4dGVuc2lvbnNHTCYgZ2V0RXh0ZW5zaW9ucygpIGZpbmFsOwog
I2VuZGlmCiAKLSAgICB2b2lkIHNldEZhaWxOZXh0R1BVU3RhdHVzQ2hlY2soKSBmaW5hbCB7IG1f
ZmFpbE5leHRTdGF0dXNDaGVjayA9IHRydWU7IH0KKyAgICB2b2lkIHNpbXVsYXRlRXZlbnRGb3JU
ZXN0aW5nKFNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZykgb3ZlcnJpZGU7CiAKICAgICB1bnNpZ25l
ZCB0ZXh0dXJlU2VlZChHQ0dMdWludCB0ZXh0dXJlKSB7IHJldHVybiBtX3N0YXRlLnRleHR1cmVT
ZWVkQ291bnQuY291bnQodGV4dHVyZSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IDE0YWI3OGUyZjM0OTY5NzdmNTU0ZTIyMjMwOWQ0ZjdhMDA4ZmEwYTUuLmNhZTJh
YTVlMzIzNGU4OTRmNTFhNzEwMzQyNDQxOTAzOTk3N2Y5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTUwOTIsMTQgKzUwOTIsMjEgQEAgdm9pZCBJbnRlcm5hbHM6OnNl
dEFwcGxlUGF5SXNBY3RpdmUoRG9jdW1lbnQmIGRvY3VtZW50KQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoV0VCR0wpCi12b2lkIEludGVybmFsczo6c2ltdWxhdGVXZWJHTENvbnRleHRDaGFuZ2VkKFdl
YkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCkKK3ZvaWQgSW50ZXJuYWxzOjpzaW11bGF0ZUV2
ZW50Rm9yV2ViR0xDb250ZXh0KFNpbXVsYXRlZFdlYkdMQ29udGV4dEV2ZW50IGV2ZW50LCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQpCiB7Ci0gICAgY29udGV4dC5zaW11bGF0ZUNvbnRl
eHRDaGFuZ2VkKCk7Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpmYWlsTmV4dEdQVVN0YXR1c0NoZWNr
KFdlYkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCkKLXsKLSAgICBjb250ZXh0LnNldEZhaWxO
ZXh0R1BVU3RhdHVzQ2hlY2soKTsKKyAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OlNpbXVsYXRl
ZEV2ZW50Rm9yVGVzdGluZyBjb250ZXh0RXZlbnQ7CisgICAgc3dpdGNoIChldmVudCkgeworICAg
IGNhc2UgU2ltdWxhdGVkV2ViR0xDb250ZXh0RXZlbnQ6OkNvbnRleHRDaGFuZ2U6CisgICAgICAg
IGNvbnRleHRFdmVudCA9IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6U2ltdWxhdGVkRXZlbnRGb3JU
ZXN0aW5nOjpDb250ZXh0Q2hhbmdlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNpbXVsYXRl
ZFdlYkdMQ29udGV4dEV2ZW50OjpHUFVTdGF0dXNGYWlsdXJlOgorICAgICAgICBjb250ZXh0RXZl
bnQgPSBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OlNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZzo6R1BV
U3RhdHVzRmFpbHVyZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY29udGV4dC5z
aW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhjb250ZXh0RXZlbnQpOwogfQogCiBib29sIEludGVybmFs
czo6aGFzTG93QW5kSGlnaFBvd2VyR1BVcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApp
bmRleCBiMzhlYzQ0MzU3ZjVjNDE3MmZkYzUyNzExNjU2YjBlOWI0MTMyZjdiLi5hMDdjM2E5NTEz
OTdmYjBkYTY5YWI2NWQwNDlhNmNjZjkwZDI2YTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKQEAgLTc3Miw4ICs3NzIsMTEgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUo
V0VCR0wpCi0gICAgdm9pZCBzaW11bGF0ZVdlYkdMQ29udGV4dENoYW5nZWQoV2ViR0xSZW5kZXJp
bmdDb250ZXh0Jik7Ci0gICAgdm9pZCBmYWlsTmV4dEdQVVN0YXR1c0NoZWNrKFdlYkdMUmVuZGVy
aW5nQ29udGV4dCYpOworICAgIGVudW0gY2xhc3MgU2ltdWxhdGVkV2ViR0xDb250ZXh0RXZlbnQg
eworICAgICAgICBDb250ZXh0Q2hhbmdlLAorICAgICAgICBHUFVTdGF0dXNGYWlsdXJlCisgICAg
fTsKKyAgICB2b2lkIHNpbXVsYXRlRXZlbnRGb3JXZWJHTENvbnRleHQoU2ltdWxhdGVkV2ViR0xD
b250ZXh0RXZlbnQsIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYpOwogICAgIGJvb2wgaGFzTG93QW5k
SGlnaFBvd2VyR1BVcygpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAppbmRleCBjMmIxZGRkNjNlM2ZiNTczMjZiZDBmY2U2ZWYzMTkxMDU3MTliZTMxLi5jMTZiZTFk
NDQ0ZDJmZGU3ODcwYmYxYTQ4N2YzZmIzN2YwZjQ0ZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCkBAIC05OSw2ICs5OSwxMSBAQCBlbnVtIFRyZWVUeXBlIHsKICAgICAiQ29t
cG9zZWRUcmVlIgogfTsKIAorW0NvbmRpdGlvbmFsPVdFQkdMXSBlbnVtIFNpbXVsYXRlZFdlYkdM
Q29udGV4dEV2ZW50IHsKKyAgICAiQ29udGV4dENoYW5nZSIsCisgICAgIkdQVVN0YXR1c0ZhaWx1
cmUiCit9OworCiBbCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQs
CiAgICAgQ29uZGl0aW9uYWw9VklERU8sCkBAIC03OTEsOCArNzk2LDcgQEAgZW51bSBUcmVlVHlw
ZSB7CiAgICAgdW5kZWZpbmVkIGRpc2FibGVUaWxlU2l6ZVVwZGF0ZURlbGF5KCk7CiAgICAgdW5k
ZWZpbmVkIHNldFNwZWN1bGF0aXZlVGlsaW5nRGVsYXlEaXNhYmxlZEZvclRlc3RpbmcoYm9vbGVh
biBkaXNhYmxlZCk7CiAKLSAgICBbQ29uZGl0aW9uYWw9V0VCR0xdIHVuZGVmaW5lZCBzaW11bGF0
ZVdlYkdMQ29udGV4dENoYW5nZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQpOwotICAg
IFtDb25kaXRpb25hbD1XRUJHTF0gdW5kZWZpbmVkIGZhaWxOZXh0R1BVU3RhdHVzQ2hlY2soV2Vi
R0xSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQpOworICAgIFtDb25kaXRpb25hbD1XRUJHTF0gdW5k
ZWZpbmVkIHNpbXVsYXRlRXZlbnRGb3JXZWJHTENvbnRleHQoU2ltdWxhdGVkV2ViR0xDb250ZXh0
RXZlbnQgZXZlbnQsIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBjb250ZXh0KTsKICAgICBbQ29uZGl0
aW9uYWw9V0VCR0xdIGJvb2xlYW4gaGFzTG93QW5kSGlnaFBvd2VyR1BVcygpOwogCiAgICAgdW5k
ZWZpbmVkIHNldFBhZ2VWaXNpYmlsaXR5KGJvb2xlYW4gaXNWaXNpYmxlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0wuY3BwCmluZGV4IGM1YzdkZWFkMjZlZTdmYTRlNGYxZTRkZGY3NDFjMzViYzYyZmRl
ZmYuLjg5YmZjYTY0YTdiMmE0NWEwMjE3YzhiYzMzMzQ4NTMwYzg5ZDc4NTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMLmNwcApAQCAtMjU1LDYgKzI1NSwxMiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50
aWZpZQogI2VuZGlmCiB9CiAKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnNpbXVsYXRl
RXZlbnRGb3JUZXN0aW5nKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpTaW11bGF0
ZWRFdmVudEZvclRlc3RpbmcgZXZlbnQpCit7CisgICAgLy8gRklYTUU6IG9ubHkgcnVuIHRoaXMg
aW4gdGVzdGluZyBtb2RlLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIyNTQ0CisgICAgbV9jb250ZXh0LT5zaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhldmVudCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgK
aW5kZXggMmJiNzRhYWNiMDc5YTA0MGY5OGFlOGNiZjViZmE3NzQ4NGYxZjU1Ny4uYjFjNTkwZWZj
MjIyOGZhZWVhYWFiNjk3MzVjYTgzZTkwOWU5NzFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgK
QEAgLTkyLDYgKzkyLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcGFpbnRSZW5kZXJpbmdSZXN1
bHRzVG9DYW52YXMoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcGFpbnRDb21wb3NpdGVkUmVzdWx0c1Rv
Q2FudmFzKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6
Ok1lZGlhUGxheWVySWRlbnRpZmllciwgdWludDMyX3QgdGV4dHVyZSwgdWludDMyX3QgdGFyZ2V0
LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwgdWludDMyX3QgZm9ybWF0
LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFksIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgc2ltdWxhdGVFdmVudEZvclRl
c3RpbmcoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OlNpbXVsYXRlZEV2ZW50Rm9y
VGVzdGluZyk7CiAKICNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0NvbnRleHRHTEZ1bmN0aW9uc0dl
bmVyYXRlZC5oIiAvLyBOT0xJTlQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3Nh
Z2VzLmluCmluZGV4IDc0MjFhYjAxOWQxMWM1MjU0Y2Q5MjI0NDM0Y2IxMzQ5NDE5Y2NlNWUuLjZh
MDgzOWUyZGEzZDY1OGNlNzVkZTRhNDMxZDdiZTkxZTQwNGZmYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4KQEAgLTM5LDggKzM5LDggQEAgbWVzc2FnZXMgLT4g
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wgTm90UmVmQ291bnRlZCBTdHJlYW0gewogICAgIHZvaWQg
UGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGltYWdlQnVmZmVyKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIHZvaWQgUGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvQ2FudmFzKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciBpbWFnZUJ1ZmZlcikgLT4gKCkgU3luY2hyb25vdXMKICAgICB2b2lkIENvcHlUZXh0dXJl
RnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50
MzJfdCB0ZXh0dXJlLCB1aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGlu
dGVybmFsRm9ybWF0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSwgYm9vbCBmbGlwWSkgLT4gKGJvb2wgc3VjY2VzcykgU3luY2hyb25vdXMKKyAg
ICB2b2lkIFNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
OjpTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcgZXZlbnQpCiAKLSAgICB2b2lkIFNldEZhaWxOZXh0
R1BVU3RhdHVzQ2hlY2soKQogICAgIHZvaWQgTW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0
KCkgLT4gKGJvb2wgcmV0dXJuVmFsdWUpIFN5bmNocm9ub3VzCiAgICAgdm9pZCBBY3RpdmVUZXh0
dXJlKHVpbnQzMl90IHRleHR1cmUpCiAgICAgdm9pZCBBdHRhY2hTaGFkZXIodWludDMyX3QgcHJv
Z3JhbSwgdWludDMyX3Qgc2hhZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMRnVuY3Rpb25zR2VuZXJhdGVkLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xGdW5jdGlvbnNHZW5lcmF0ZWQuaAppbmRleCBlMGQ5MjlkYTRiNzdiNGUzMDk3OGVlMGExYzY5
YWVkZTJmYTg1MzZmLi5kYjRmYmE1NDZkMjg3MGViMDhmOTE4M2UxOTNhNWUxYjQ4YmY2ODdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xGdW5jdGlvbnNHZW5lcmF0ZWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xGdW5jdGlvbnNHZW5lcmF0ZWQu
aApAQCAtMjUsMTAgKzI1LDYgQEAKIC8vIFRoaXMgZmlsZSBzaG91bGQgYmUgaW5jbHVkZWQgaW4g
dGhlIHByaXZhdGUgc2VjdGlvbiBvZiB0aGUKIC8vIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIGlt
cGxlbWVudGF0aW9ucy4KICNwcmFnbWEgb25jZQotICAgIHZvaWQgc2V0RmFpbE5leHRHUFVTdGF0
dXNDaGVjaygpCi0gICAgewotICAgICAgICBtX2NvbnRleHQtPnNldEZhaWxOZXh0R1BVU3RhdHVz
Q2hlY2soKTsKLSAgICB9CiAgICAgdm9pZCBtb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxpc3Qo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB7
CiAgICAgICAgIGJvb2wgcmV0dXJuVmFsdWUgPSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDM2YTFkZjM3OWU0ZDNkNDZhNWIzYmUxYzM0
MzM1MGQzNGM2OGFlNDIuLmIzMjgzNGU4YmJiZjA0YTlmNzc4YmIwMDYwZTVmNjBjMmEwNjY5NjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0x
MDIzLDYgKzEwMjMsMTQgQEAgdGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNpb24+IHsKICNlbmRpZgogICAgID47CiB9OworCit0
ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6
U2ltdWxhdGVkRXZlbnRGb3JUZXN0aW5nPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6U2ltdWxhdGVkRXZlbnRGb3JUZXN0
aW5nLAorICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpTaW11bGF0ZWRFdmVudEZvclRl
c3Rpbmc6OkNvbnRleHRDaGFuZ2UsCisgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OlNp
bXVsYXRlZEV2ZW50Rm9yVGVzdGluZzo6R1BVU3RhdHVzRmFpbHVyZQorICAgID47Cit9OwogI2Vu
ZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eS5jcHAKaW5kZXggZTkxYmI5NzY1Y2FiNGM0NmQ3ZjcyZmM2ZWU4ODI0Y2M4NzY0YjVl
Yy4uODU5NzljY2RiMGYxZDVhYjdhYzAzMjU1OTRjMzEwZWZhMWFiZWRiZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCkBAIC0xMjgsMTIgKzEyOCw2IEBAIHZv
aWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6bm90aWZ5TWFya0NvbnRleHRDaGFuZ2Vk
KCkKICAgICAgICAgbWFya0NvbnRleHRMb3N0KCk7CiB9CiAKLXZvaWQgUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eTo6c2ltdWxhdGVDb250ZXh0Q2hhbmdlZCgpCi17Ci0gICAgLy8gRklYTUU6
IEN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgYmVjYXVzZSBpdCdzIG5vdCBjbGVhciB0aGlzIGlz
IHRoZSByaWdodCB3YXkuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTkzNDkKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHk6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyJiBi
dWZmZXIpCiB7CiAgICAgLy8gRklYTUU6IHRoZSBidWZmZXIgaXMgInJlbGF0aXZlbHkgZW1wdHki
IGFsd2F5cywgYnV0IGZvciBjb25zaXN0ZW5jeSwgd2UgbmVlZCB0byBlbnN1cmUKQEAgLTE5OSw2
ICsxOTMsMTUgQEAgR0NHTGVudW0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Z2V0RXJy
b3IoKQogICAgIHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fZXJyb3JXaGVuQ29udGV4dElzTG9zdCwg
Tk9fRVJST1IpOwogfQogCit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnNpbXVs
YXRlRXZlbnRGb3JUZXN0aW5nKFNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZyBldmVudCkKK3sKKyAg
ICBpZiAoIWlzQ29udGV4dExvc3QoKSkgeworICAgICAgICBhdXRvIHNlbmRSZXN1bHQgPSBzZW5k
KE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6U2ltdWxhdGVFdmVudEZvclRlc3Rp
bmcoZXZlbnQpKTsKKyAgICAgICAgaWYgKCFzZW5kUmVzdWx0KQorICAgICAgICAgICAgbWFya0Nv
bnRleHRMb3N0KCk7CisgICAgfQorfQorCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHk6Ondhc0NyZWF0ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9yZSYmIHNlbWFwaG9y
ZSwgU3RyaW5nJiYgYXZhaWxhYmxlRXh0ZW5zaW9ucywgU3RyaW5nJiYgcmVxdWVzdGVkRXh0ZW5z
aW9ucykKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuaAppbmRleCBlZDBmZjg2OTJlZjdhZDg0NTcxOWUxZjBhODI1NjYyYzM2
NWU1MmE0Li4xOWNjNzc3MWE2MDI3Y2QwYjg3Zjk3MmNiZTFkNjcxOWUyZGExYTc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaApAQCAtNjQsMTYgKzY0LDE0IEBAIHB1
YmxpYzoKICAgICB1c2luZyBXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFz
ZTo6aXNFbmFibGVkOwogICAgIHZvaWQgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZChjb25zdCBTdHJp
bmcmIGV4dGVuc2lvbikgZmluYWw7CiAgICAgdm9pZCBub3RpZnlNYXJrQ29udGV4dENoYW5nZWQo
KSBmaW5hbDsKLSAgICB2b2lkIHNpbXVsYXRlQ29udGV4dENoYW5nZWQoKSBmaW5hbDsKICAgICB2
b2lkIHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKFdlYkNvcmU6OkltYWdlQnVmZmVyJikg
ZmluYWw7CiAgICAgdm9pZCBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9DYW52YXMoV2ViQ29yZTo6
SW1hZ2VCdWZmZXImKSBmaW5hbDsKICAgICB2b2lkIHN5bnRoZXNpemVHTEVycm9yKEdDR0xlbnVt
IGVycm9yKSBmaW5hbDsKICAgICBHQ0dMZW51bSBnZXRFcnJvcigpIGZpbmFsOwotCiAgICAgYm9v
bCBjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllciYsIFBsYXRmb3JtR0xP
YmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBp
bnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBib29sIHByZW11
bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIGZpbmFsOworICAgIHZvaWQgc2ltdWxhdGVFdmVudEZv
clRlc3RpbmcoU2ltdWxhdGVkRXZlbnRGb3JUZXN0aW5nKSBmaW5hbDsKIAogICAgIC8vIEZ1bmN0
aW9ucyB3aXRoIGEgZ2VuZXJhdGVkIGltcGxlbWVudGF0aW9uLiBUaGlzIGxpc3QgaXMgdXNlZCBi
eSBnZW5lcmF0ZS1ncHVwLXdlYmdsIHNjcmlwdC4KLSAgICB2b2lkIHNldEZhaWxOZXh0R1BVU3Rh
dHVzQ2hlY2soKSBmaW5hbDsKICAgICBib29sIG1vdmVFcnJvcnNUb1N5bnRoZXRpY0Vycm9yTGlz
dCgpIGZpbmFsOwogICAgIHZvaWQgYWN0aXZlVGV4dHVyZShHQ0dMZW51bSB0ZXh0dXJlKSBmaW5h
bDsKICAgICB2b2lkIGF0dGFjaFNoYWRlcihQbGF0Zm9ybUdMT2JqZWN0IHByb2dyYW0sIFBsYXRm
b3JtR0xPYmplY3Qgc2hhZGVyKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9u
c0dlbmVyYXRlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlGdW5jdGlvbnNHZW5lcmF0ZWQuY3BwCmluZGV4IDQ2
NmRkMDhiMWIyYjM3MmI2ZTFkODU3OTdmNDg2MGEyOGNmOTUzZWIuLmNjYTZjYTAyOTJmYWFkMTY2
MjhiM2E4NTNmN2Q1NTE3Y2JjMGRkYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dl
bmVyYXRlZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJhdGVkLmNwcApAQCAtMzAs
MTUgKzMwLDYgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eTo6c2V0RmFpbE5leHRHUFVTdGF0dXNDaGVjaygpCi17Ci0gICAgaWYgKCFp
c0NvbnRleHRMb3N0KCkpIHsKLSAgICAgICAgYXV0byBzZW5kUmVzdWx0ID0gc2VuZChNZXNzYWdl
czo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlNldEZhaWxOZXh0R1BVU3RhdHVzQ2hlY2soKSk7
Ci0gICAgICAgIGlmICghc2VuZFJlc3VsdCkKLSAgICAgICAgICAgIG1hcmtDb250ZXh0TG9zdCgp
OwotICAgIH0KLX0KLQogYm9vbCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojptb3ZlRXJy
b3JzVG9TeW50aGV0aWNFcnJvckxpc3QoKQogewogICAgIGJvb2wgcmV0dXJuVmFsdWUgPSB7IH07
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzUy
MTdlNDVlZjJiMWU2NzIxMTYwOTQ4NjE2NTAxYzM3Y2QyYWQ4Mi4uODBlOGEzYjU2ZTA0YTI2YTU1
MTY0ZGZlNzc5MmIwYTdiMzc0OGQxNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTAzLTAyICBLaW1tbyBLaW5u
dW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkaW5nIG5ldyB0ZXN0IGNv
bmRpdGlvbnMgZm9yIFdlYkdMIHNob3VsZCBiZSBzaW1wbGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1OTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgU2ltdWxhdGVFdmVudEZvclRlc3Rpbmco
U3RyaW5nIGV2ZW50TmFtZSkgdG8gbWFudWFsbHkKKyAgICAgICAgaW1wbGVtZW50ZWQgUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0wgZnVuY3Rpb25zLgorICAgICAgICBVc2UgbWFudWFsbHkgZ2VuZXJh
dGVkIGZ1bmN0aW9uIGJlY2F1c2UgbmV4dCBjb21taXQgZm9yCisgICAgICAgIHRpbWVvdXQgaW1w
bGVtZW50YXRpb24gd2lsbCBhZGQgc29tZSBsb2dpYyB0byBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TAorICAgICAgICB3aGlsZSBmb3J3YXJkaW5nIHJlc3Qgb2YgdGhlIGV2ZW50cyB0byB0aGUgdW5k
ZXJseWluZyBHcmFwaGljc0NvbnRleHRHTC4KKworICAgICAgICAqIFNjcmlwdHMvZ2VuZXJhdGUt
Z3B1cC13ZWJnbDoKKwogMjAyMS0wMy0wMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRA
YXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI3MDY5MSk6IEl0J3MgaW1wb3NzaWJs
ZSB0byB1c2UgTW9iaWxlQXNzZXQgZm9udHMgb24gbWFjT1MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvZ2VuZXJhdGUtZ3B1cC13ZWJnbCBiL1Rvb2xzL1NjcmlwdHMvZ2VuZXJhdGUtZ3B1cC13
ZWJnbAppbmRleCBkMzUwMmJjMjY2NThkZmI5YzMwZjZmMmNlNzZkZDg2NTg1NzMyYjA4Li45ODll
ODcwY2QxZjhjOTk2MDg4ODhmZWQ3NDM5NTUxNjlhYjMzMjE0IDEwMDc1NQotLS0gYS9Ub29scy9T
Y3JpcHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2wKKysrIGIvVG9vbHMvU2NyaXB0cy9nZW5lcmF0ZS1n
cHVwLXdlYmdsCkBAIC0xMDQsNiArMTA0LDcgQEAgbWVzc2FnZXMgLT4gUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0wgTm90UmVmQ291bnRlZCBTdHJlYW0ge3sKICAgICB2b2lkIFBhaW50UmVuZGVyaW5n
UmVzdWx0c1RvQ2FudmFzKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFn
ZUJ1ZmZlcikgLT4gKCkgU3luY2hyb25vdXMKICAgICB2b2lkIFBhaW50Q29tcG9zaXRlZFJlc3Vs
dHNUb0NhbnZhcyhXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZm
ZXIpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgdm9pZCBDb3B5VGV4dHVyZUZyb21NZWRpYShXZWJD
b3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDMyX3QgdGV4dHVyZSwg
dWludDMyX3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwg
dWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJv
b2wgZmxpcFkpIC0+IChib29sIHN1Y2Nlc3MpIFN5bmNocm9ub3VzCisgICAgdm9pZCBTaW11bGF0
ZUV2ZW50Rm9yVGVzdGluZyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6U2ltdWxhdGVkRXZl
bnRGb3JUZXN0aW5nIGV2ZW50KQoge30KIH19CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMTY5YjQ4MGFkYTU2YzAwMmY4
YjVmOGNjN2JhY2Y2Mjc0OWU3MDNlLi40YTAxM2IzOGVlOTRhMmE1ZjQ2N2YyMjZhMTBhODEwNTYw
Y2ExYzUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDMtMDIgIEtpbW1vIEtpbm51bmVu
ICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRpbmcgbmV3IHRlc3QgY29uZGl0
aW9ucyBmb3IgV2ViR0wgc2hvdWxkIGJlIHNpbXBsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2xjb250ZXh0
Y2hhbmdlZGV2ZW50Lmh0bWw6CisgICAgICAgIFJlcGxhY2UgaW50ZXJuYWxzLnNpbXVsYXRlQ29u
dGV4dENoYW5nZWQoY29udGV4dCkgd2l0aAorICAgICAgICBpbnRlcm5hbHMuc2ltdWxhdGVFdmVu
dEZvcldlYkdMQ29udGV4dCgiQ29udGV4dENoYW5nZSIsIGNvbnRleHQpCisKKyAgICAgICAgKiBm
YXN0L2NhbnZhcy93ZWJnbC9sb3NlLWNvbnRleHQtb24tc3RhdHVzLWZhaWx1cmUuaHRtbDoKKyAg
ICAgICAgU2ltaWxhcmx5IHJlcGxhY2UgaW50ZXJuYWxzLnNldEZhaWxOZXh0R1BVU3RhdHVzQ2hl
Y2soY29udGV4dCkgd2l0aAorICAgICAgICBpbnRlcm5hbHMuc2ltdWxhdGVFdmVudEZvcldlYkdM
Q29udGV4dCgiR1BVU3RhdHVzRmFpbHVyZSIsIGNvbnRleHQpLgorCiAyMDIxLTAzLTAyICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtzZWxlY3Rv
cnNdIDpmb2N1cy12aXNpYmxlIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9sb3NlLWNvbnRleHQtb24tc3RhdHVzLWZhaWx1cmUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2xvc2UtY29udGV4dC1vbi1zdGF0dXMtZmFp
bHVyZS5odG1sCmluZGV4IGI4MzkxNjg2NGRiZDZlNzBjMzhkZGZiN2EzNGUyNDU1MmVjMDdiODEu
LjQxYzM5YzE5MDEzOGZkNjRjMWIxYzZhZDVlYTg4NTdmY2E2Mjk3ZDAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2xvc2UtY29udGV4dC1vbi1zdGF0dXMtZmFpbHVy
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2xvc2UtY29udGV4dC1v
bi1zdGF0dXMtZmFpbHVyZS5odG1sCkBAIC02OSw3ICs2OSw3IEBAIGFzeW5jIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CiAKICAgICBkZWJ1ZygiTm93IGZvcmNlIGZhaWx1cmUgYWZ0ZXIgdGhlIG5leHQg
ZHJhd0FycmF5cy4iKQogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLmZhaWxOZXh0R1BVU3RhdHVzQ2hlY2soZ2wpOworICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNpbXVsYXRlRXZlbnRGb3JXZWJHTENvbnRleHQoIkdQVVN0YXR1c0ZhaWx1cmUiLCBn
bCk7CiAgICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOwogICAgIGF3YWl0IHdl
YkdMQ29udGV4dExvc3QoY2FudmFzKTsKICAgICBzaG91bGRCZVRydWUoImdsLmlzQ29udGV4dExv
c3QoKSIpOwpAQCAtMTAxLDcgKzEwMSw3IEBAIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAK
ICAgICBkZWJ1ZygiTm93IGZvcmNlIGZhaWx1cmUgYWZ0ZXIgdGhlIG5leHQgZHJhd0VsZW1lbnRz
LiIpCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
ZmFpbE5leHRHUFVTdGF0dXNDaGVjayhnbCk7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2lt
dWxhdGVFdmVudEZvcldlYkdMQ29udGV4dCgiR1BVU3RhdHVzRmFpbHVyZSIsIGdsKTsKICAgICBn
bC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCA2LCBnbC5VTlNJR05FRF9TSE9SVCwgMCk7CiAg
ICAgYXdhaXQgd2ViR0xDb250ZXh0TG9zdChjYW52YXMpCiAgICAgc2hvdWxkQmVUcnVlKCJnbC5p
c0NvbnRleHRMb3N0KCkiKTsKQEAgLTEyOCw3ICsxMjgsNyBAQCBhc3luYyBmdW5jdGlvbiBydW5U
ZXN0KCkgewogCiAgICAgZGVidWcoIk5vdyBmb3JjZSBmYWlsdXJlIGFmdGVyIHRoZSBuZXh0IGRy
YXdBcnJheXNJbnN0YW5jZWRBTkdMRS4iKQogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLmZhaWxOZXh0R1BVU3RhdHVzQ2hlY2soZ2wpOworICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNpbXVsYXRlRXZlbnRGb3JXZWJHTENvbnRleHQoIkdQVVN0YXR1
c0ZhaWx1cmUiLCBnbCk7CiAgICAgZXh0LmRyYXdBcnJheXNJbnN0YW5jZWRBTkdMRShnbC5UUklB
TkdMRVMsIDAsIDYsIDEwKTsKICAgICBhd2FpdCB3ZWJHTENvbnRleHRMb3N0KGNhbnZhcyk7CiAg
ICAgc2hvdWxkQmVUcnVlKCJnbC5pc0NvbnRleHRMb3N0KCkiKTsKQEAgLTE2MSw3ICsxNjEsNyBA
QCBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAgICAgZGVidWcoIk5vdyBmb3JjZSBmYWls
dXJlIGFmdGVyIHRoZSBuZXh0IGRyYXdFbGVtZW50c0luc3RhbmNlZEFOR0xFLiIpCiAgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuZmFpbE5leHRHUFVT
dGF0dXNDaGVjayhnbCk7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2ltdWxhdGVFdmVudEZv
cldlYkdMQ29udGV4dCgiR1BVU3RhdHVzRmFpbHVyZSIsIGdsKTsKICAgICBleHQuZHJhd0VsZW1l
bnRzSW5zdGFuY2VkQU5HTEUoZ2wuVFJJQU5HTEVTLCA2LCBnbC5VTlNJR05FRF9TSE9SVCwgMCwg
OCk7CiAgICAgYXdhaXQgd2ViR0xDb250ZXh0TG9zdChjYW52YXMpOwogICAgIHNob3VsZEJlVHJ1
ZSgiZ2wuaXNDb250ZXh0TG9zdCgpIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC93ZWJnbGNvbnRleHRjaGFuZ2VkZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sCmluZGV4IDM5ZDc3
Yjc5NmVmMDk1MDllYmQ1Njk5MWEwMmM5MTU4YTAxYmI4MzYuLjMwNDZmZGY1OWNlNGU1MTc2Zjk3
MDNkMmY3ZmRkN2NjYTRmNWRiNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sCkBAIC0zOCw3ICsz
OCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIH0pOwogCiAgICAgbGV0IGdsID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigiY2FudmFzIikuZ2V0Q29udGV4dCgid2ViZ2wiKTsKLSAgICB3aW5k
b3cuaW50ZXJuYWxzLnNpbXVsYXRlV2ViR0xDb250ZXh0Q2hhbmdlZChnbCk7CisgICAgd2luZG93
LmludGVybmFscy5zaW11bGF0ZUV2ZW50Rm9yV2ViR0xDb250ZXh0KCJDb250ZXh0Q2hhbmdlIiwg
Z2wpOwogfQogCiAK
</data>
<flag name="commit-queue"
          id="441246"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>