<?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>153622</bug_id>
          
          <creation_ts>2016-01-28 16:09:59 -0800</creation_ts>
          <short_desc>CSP: Allow Web Workers initiated from an isolated world to bypass the main world Content Security Policy</short_desc>
          <delta_ts>2016-02-07 14:27:11 -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>WebCore Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>153157</dependson>
          <blocked>69359</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>aestes</cc>
    
    <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mkwst</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1159927</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-01-28 16:09:59 -0800</bug_when>
    <thetext>We should allow code that runs in a Web Worker that was initiated from an isolated world to bypass the main world Content Security Policy. Currently such code is subject to the main world CSP even though code that executes in an isolated world is allowed to bypass the main world Content Security Policy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159929</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-01-28 16:12:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/24400023&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159931</commentid>
    <comment_count>2</comment_count>
      <attachid>270159</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-01-28 16:15:20 -0800</bug_when>
    <thetext>Created attachment 270159
Patch and Layout Tests

This patch will fail to apply because it depends on the patch for bug #153157.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160908</commentid>
    <comment_count>3</comment_count>
      <attachid>270397</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-02-01 10:06:02 -0800</bug_when>
    <thetext>Created attachment 270397
Patch and Layout Tests

Rebased patch following the landing of patches for bug #153157 and bug #153612.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162450</commentid>
    <comment_count>4</comment_count>
      <attachid>270756</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-02-05 12:03:57 -0800</bug_when>
    <thetext>Created attachment 270756
Patch and Layout Tests

Updated patch to bypass the CSP policy of the document when instantiating a worker whose script URL would otherwise be blocked and added a test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162454</commentid>
    <comment_count>5</comment_count>
      <attachid>270758</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-02-05 12:21:42 -0800</bug_when>
    <thetext>Created attachment 270758
Patch and Layout Tests

Include the date of the CSP 2.0 draft referenced by the comment in AbstractWorker::resolveURL().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162487</commentid>
    <comment_count>6</comment_count>
      <attachid>270758</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-02-05 13:51:00 -0800</bug_when>
    <thetext>Comment on attachment 270758
Patch and Layout Tests

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

&gt; Source/WebCore/ChangeLog:23
&gt; +        (WebCore::WorkerScriptController::WorkerScriptController): Modified to take a boolean argument and
&gt; +        as to whether to bypass the main world Content Security Policy and store it in a member field.

spurious &quot;and&quot;.

&gt; Source/WebCore/ChangeLog:58
&gt; +        (WebCore::WorkerGlobalScope::applyContentSecurityPolicyResponseHeaders): Moved instantiated of the ContentSecurityPolicy object
&gt; +        from here to the constructor.

instantiated =&gt; instantiation

&gt; Source/WebCore/ChangeLog:67
&gt; +        (WebCore::WorkerThreadStartupData::WorkerThreadStartupData): Modified to take a boolean argument and
&gt; +        as to whether to bypass the main world Content Security Policy and store it in a member field.

spurious &quot;and&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162511</commentid>
    <comment_count>7</comment_count>
      <attachid>270758</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-05 15:01:21 -0800</bug_when>
    <thetext>Comment on attachment 270758
Patch and Layout Tests

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

&gt; Source/WebCore/page/csp/ContentSecurityPolicy.cpp:1789
&gt; +

Could we just make shouldBypassMainWorldContentSecurityPolicy() a virtual function implemented on ScriptExecutionContext, with a base behavior to return false?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162769</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-02-07 12:58:50 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 270758 [details]
&gt; Patch and Layout Tests
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=270758&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/csp/ContentSecurityPolicy.cpp:1789
&gt; &gt; +
&gt; 
&gt; Could we just make shouldBypassMainWorldContentSecurityPolicy() a virtual
&gt; function implemented on ScriptExecutionContext, with a base behavior to
&gt; return false?

Yes, we can. Will update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162770</commentid>
    <comment_count>9</comment_count>
      <attachid>270829</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-02-07 13:01:38 -0800</bug_when>
    <thetext>Created attachment 270829
Patch and Layout Tests

Updated patch to address feedback from Andy Estes and Gavin Barraclough</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162786</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-02-07 14:26:51 -0800</bug_when>
    <thetext>Committed r196242: &lt;http://trac.webkit.org/changeset/196242&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270159</attachid>
            <date>2016-01-28 16:15:20 -0800</date>
            <delta_ts>2016-02-01 10:06:00 -0800</delta_ts>
            <desc>Patch and Layout Tests</desc>
            <filename>bug-153622-20160128161455.patch</filename>
            <type>text/plain</type>
            <size>37363</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1NzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGFjODEwOWZmYzMxYWU1
Y2JiMmNlZmJkMzY1YTljMjkzYTNiMzNmMS4uMTBmM2NmZjEwOGUyZjY4ZGY1NGRhNDU4ZWRlMjI4
YmQyYmIzNzg4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcwIEBACiAyMDE2LTAxLTI4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBDU1A6IEFsbG93IFdlYiBX
b3JrZXJzIGluaXRpYXRlZCBmcm9tIGFuIGlzb2xhdGVkIHdvcmxkIHRvIGJ5cGFzcyB0aGUgbWFp
biB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
NDQwMDAyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBXZWIgV29ya2VycyBpbml0aWF0ZWQgZnJvbSBhbiBpc29s
YXRlZCB3b3JsZCAoc2F5LCBhIFNhZmFyaSBDb250ZW50IFNjcmlwdCBFeHRlbnNpb24pCisgICAg
ICAgIHdvdWxkIGJlIHN1YmplY3QgdG8gdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9mIHRo
ZSBwYWdlLgorCisgICAgICAgIEN1cnJlbnRseSBjb2RlIGluIGFuIGlzb2xhdGVkIHdvcmxkIHRo
YXQgZG9lcyBub3QgZXhlY3V0ZSBpbiBhIFdlYiBXb3JrZXIgaXMgZXhlbXB0IGZyb20gdGhlIENT
UCBvZgorICAgICAgICB0aGUgcGFnZS4gSG93ZXZlciwgY29kZSB0aGF0IHJ1bnMgaW5zaWRlIGEg
V2ViIFdvcmtlciB0aGF0IHdhcyBpbml0aWF0ZWQgZnJvbSBhbiBpc29sYXRlZCB3b3JsZCBpcwor
ICAgICAgICBzdWJqZWN0IHRvIHRoZSBDU1Agb2YgdGhlIHBhZ2UuIEluc3RlYWQsIHN1Y2ggV2Vi
IFdvcmtlciBjb2RlIHNob3VsZCBhbHNvIGJlIGV4ZW1wdCBmcm9tIHRoZSBDU1Agb2YKKyAgICAg
ICAgdGhlIHBhZ2UuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0
ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4t
d29ybGQtY3NwLXdvcmtlci1ibG9iLXhoci5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlw
dENvbnRyb2xsZXI6OldvcmtlclNjcmlwdENvbnRyb2xsZXIpOiBNb2RpZmllZCB0byB0YWtlIGEg
Ym9vbGVhbiBhcmd1bWVudCBhbmQKKyAgICAgICAgYXMgdG8gd2hldGhlciB0byBieXBhc3MgdGhl
IG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgYW5kIHN0b3JlIGl0IGluIGEgbWVt
YmVyIGZpZWxkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6OnNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSk6IEFkZGVkLgorICAgICAgICAqIHBhZ2Uv
Y3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
U2VjdXJpdHlQb2xpY3k6OnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSk6IE1vZGlmaWVkIHRvIGFzayB0aGUKKyAgICAgICAgc2NyaXB0IGNvbnRyb2xsZXIgZm9yIHRo
ZSB3b3JrZXIgd2hldGhlciB0byBieXBhc3MgdGhlIG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kuCisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRl
KTogTW9kaWZpZWQgdG8gdGFrZSBib29sZWFuIGFyZ3VtZW50IHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeQorICAgICAgICBhcyB0byB3aGV0aGVyIHRvIGJ5cGFzcyB0
aGUgbWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBhbmQgb25seSBhcHBseSB0aGUg
Q29udGVudCBTZWN1cml0eQorICAgICAgICBQb2xpY3kgaGVhZGVycyB3aGVuIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSBpcyBmYWxzZS4KKyAgICAgICAgKFdlYkNv
cmU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZSk6IFBhc3MgdGhyb3VnaCBhIGJvb2xlYW4gYXJndW1lbnQgc2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5CisgICAgICAgIGFzIHRvIHdoZXRoZXIgdG8gYnlwYXNzIHRo
ZSBtYWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LgorICAgICAgICAqIHdvcmtlcnMv
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRl
ZFdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQ6OkRlZGljYXRlZFdvcmtlclRocmVhZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RGVk
aWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZSk6IERpdHRvLgorICAg
ICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpjcmVhdGUpOiBTdG9yZSB3
aGV0aGVyIHdlIHNob3VsZCBieXBhc3MgdGhlIG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQ
b2xpY3kgc28KKyAgICAgICAgdGhhdCB3ZSBjYW4gcGFzcyBpdCB0byBXb3JrZXJNZXNzYWdpbmdQ
cm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZSgpIGluIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQo
KS4KKyAgICAgICAgV2UgbmVlZCB0byBzdG9yZSB0aGlzIGRlY2lzaW9uIGhlcmUgYXMgb3Bwb3Nl
ZCB0byBkZXRlcm1pbmluZyBpdCBhdCBhbnkgbGF0ZXIgdGltZSAoc2F5LCBpbiBXb3JrZXI6Om5v
dGlmeUZpbmlzaGVkKCkpCisgICAgICAgIGJlY2F1c2UgaXQgaXMgZGVwZW5kZW50IG9uIHRoZSBj
dXJyZW50IEphdmFTY3JpcHQgcHJvZ3JhbSBzdGFjayBhdCB0aGUgdGltZSB0aGlzIGZ1bmN0aW9u
IGlzIGludm9rZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKTog
UGFzcyB3aGV0aGVyIHRvIGJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBv
bGljeS4KKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6
Oldvcmtlckdsb2JhbFNjb3BlKTogUGFzcyB0aHJvdWdoIGEgYm9vbGVhbiBhcmd1bWVudCBzaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kKKyAgICAgICAgYXMgdG8gd2hl
dGhlciB0byBieXBhc3MgdGhlIG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuIEFs
c28sIGFsd2F5cyBpbnN0YW50aWF0ZSBhIENvbnRlbnQgU2VjdXJpdHkKKyAgICAgICAgUG9saWN5
IG9iamVjdCBhcyBvdXIgY3VycmVudCBjb2RlIGFzc3VtZXMgdGhhdCBvbmUgaXMgYWx3YXlzIGNy
ZWF0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6YXBwbHlDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMpOiBNb3ZlZCBpbnN0YW50aWF0ZWQgb2YgdGhl
IENvbnRlbnRTZWN1cml0eVBvbGljeSBvYmplY3QKKyAgICAgICAgZnJvbSBoZXJlIHRvIHRoZSBj
b25zdHJ1Y3Rvci4KKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisgICAg
ICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5Lmg6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNz
YWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZSk6IFBhc3MgdGhyb3VnaCBhIGJvb2xl
YW4gYXJndW1lbnQgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5Cisg
ICAgICAgIGFzIHRvIHdoZXRoZXIgdG8gYnlwYXNzIHRoZSBtYWluIHdvcmxkIENvbnRlbnQgU2Vj
dXJpdHkgUG9saWN5LgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaDoK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJUaHJlYWRTdGFydHVwRGF0YTo6V29ya2VyVGhyZWFkU3RhcnR1cERhdGEpOiBNb2RpZmll
ZCB0byB0YWtlIGEgYm9vbGVhbiBhcmd1bWVudCBhbmQKKyAgICAgICAgYXMgdG8gd2hldGhlciB0
byBieXBhc3MgdGhlIG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgYW5kIHN0b3Jl
IGl0IGluIGEgbWVtYmVyIGZpZWxkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpX
b3JrZXJUaHJlYWQpOiBQYXNzIHRocm91Z2ggYSBib29sZWFuIGFyZ3VtZW50IHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeQorICAgICAgICBhcyB0byB3aGV0aGVyIHRv
IGJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4KKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKTogRGl0dG8uICAKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgorCisyMDE2LTAxLTI4ICBEYW5pZWwgQmF0ZXMgIDxk
YWJhdGVzQGFwcGxlLmNvbT4KKwogICAgICAgICBDbGVhbnVwOiBNYWtlIERlZGljYXRlZFdvcmtl
clRocmVhZDo6Y3JlYXRlKCkgYW4gaW5saW5lIHRlbXBsYXRlIG1ldGhvZAogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjEyCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5k
ZXggMDlkMTc4YmQxZjNlMjMzNjg5ODU1OTg4MmQ3MDAzNmZmMTM4NGY3Yy4uYWU2MjY1NzliMWFl
MjM1YjhhM2ZiZjBmMDFlNDQyNDQ2N2ZkN2FkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTQ5LDExICs0OSwx
MiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdvcmtl
clNjcmlwdENvbnRyb2xsZXI6OldvcmtlclNjcmlwdENvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2Nv
cGUqIHdvcmtlckdsb2JhbFNjb3BlKQorV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6V29ya2VyU2Ny
aXB0Q29udHJvbGxlcihXb3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFsU2NvcGUsIGJvb2wg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KQogICAgIDogbV92bShW
TTo6Y3JlYXRlKCkpCiAgICAgLCBtX3dvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3Bl
KQogICAgICwgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIoKm1fdm0pCiAgICAgLCBtX2V4ZWN1
dGlvbkZvcmJpZGRlbihmYWxzZSkKKyAgICAsIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5KHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSkKIHsKICAgICBtX3ZtLT5lbnN1cmVXYXRjaGRvZygpOwogICAgIGluaXROb3JtYWxXb3JsZENs
aWVudERhdGEobV92bS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggYjBiNmMwZmMyZTg1ODY1NzNhYjQ4MmE4
MGUxYTJkNGNiZTI3NTI4My4uYzI4Y2ZjMzU0Y2IxYTM3MmFiYjY1NjgzN2M4Y2RmZTg3NzBiYTEy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuaApAQCAtNTEsNyArNTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xh
c3MgV29ya2VyU2NyaXB0Q29udHJvbGxlciB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFdvcmtlclNjcmlwdENvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBw
dWJsaWM6Ci0gICAgICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2NvcGUq
KTsKKyAgICAgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlcihXb3JrZXJHbG9iYWxTY29wZSosIGJv
b2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KTsKICAgICAgICAg
fldvcmtlclNjcmlwdENvbnRyb2xsZXIoKTsKIAogICAgICAgICBKU1dvcmtlckdsb2JhbFNjb3Bl
KiB3b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIoKQpAQCAtODUsNiArODUsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZvaWQgYXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOwog
ICAgICAgICB2b2lkIGRldGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsKIAorICAgICAgICBi
b29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OyB9CisK
ICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGluaXRTY3JpcHRJZk5lZWRlZCgpCiAgICAgICAg
IHsKQEAgLTk3LDYgKzk5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXb3JrZXJH
bG9iYWxTY29wZSogbV93b3JrZXJHbG9iYWxTY29wZTsKICAgICAgICAgSlNDOjpTdHJvbmc8SlNX
b3JrZXJHbG9iYWxTY29wZT4gbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXI7CiAgICAgICAgIGJv
b2wgbV9leGVjdXRpb25Gb3JiaWRkZW47CisgICAgICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAgICAgICAgIGJvb2wgbV9pc1Rlcm1pbmF0aW5n
RXhlY3V0aW9uIHsgZmFsc2UgfTsKICAgICAgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVkVGVy
bWluYXRpb25NdXRleDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9j
c3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggMzllNWYwZTRmMGMxMjBmNzRjMzc4OTY5ZTYw
ZjlkZWIxZTc1NGEyOC4uMjU1MzM1YjdhMzc4YmRhZDBlODAxNDdiZDcyNGVjNmIzZTA0MDkzYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3ku
Y3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudC5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgIlVSTC5oIgorI2lu
Y2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3Rv
clZhbHVlcy5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNs
dWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgpAQCAtMTc5Myw3ICsxNzk0
LDEwIEBAIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjpzaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3koU2NyaXB0RXhlCiAgICAgICAgIGF1dG8mIGRvY3VtZW50ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOwogICAgICAgICByZXR1cm4gZG9jdW1lbnQuZnJh
bWUoKSAmJiBkb2N1bWVudC5mcmFtZSgpLT5zY3JpcHQoKS5zaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3koKTsKICAgICB9Ci0gICAgCisKKyAgICBpZiAoaXM8V29ya2Vy
R2xvYmFsU2NvcGU+KGNvbnRleHQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8V29ya2VyR2xv
YmFsU2NvcGU+KGNvbnRleHQpLnNjcmlwdCgpLT5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50
U2VjdXJpdHlQb2xpY3koKTsKKwogICAgIHJldHVybiBmYWxzZTsKIH0KICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAK
aW5kZXggOTFjN2YyMzExYjgyZjA1MmI2YTQ4ZmRhNzBkYjQxNGRkZTJjNTYyNC4uMzBmZGUxYzYx
NWFkZTUyOGUzMGUzMjU0YTExZTZhNGJhZThkNjg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTQwLDE1ICs0
MCwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZT4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFk
LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9w
T3JpZ2luKQorUmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZTo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBv
bGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
LCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQogewotICAgIFJlZjxEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZT4gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGUodXJsLCB1c2VyQWdlbnQsIHRocmVhZCwgdG9wT3JpZ2luKSk7Ci0gICAgY29udGV4
dC0+YXBwbHlDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMoY29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKTsKKyAgICBSZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGU+IGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
KHVybCwgdXNlckFnZW50LCB0aHJlYWQsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgdG9wT3JpZ2luKSk7CisgICAgaWYgKCFzaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3kpCisgICAgICAgIGNvbnRleHQtPmFwcGx5Q29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycyk7CiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKLURlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBQYXNzUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCi0gICAgOiBXb3JrZXJHbG9iYWxTY29wZSh1cmws
IHVzZXJBZ2VudCwgdGhyZWFkLCB0b3BPcmlnaW4pCitEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgYm9vbCBzaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IHRvcE9yaWdpbikKKyAgICA6IFdvcmtlckdsb2JhbFNjb3BlKHVybCwgdXNlckFnZW50
LCB0aHJlYWQsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdG9w
T3JpZ2luKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggMjliNzIyYTBkNzUzMmY3YTUzMDdmN2QwNjgzZjQ0
ZGQxM2NjY2Y5MS4uMDMxNTVmMzkyODFmZjVkMWIzYWQxNTQ1N2JkNzJkYTkzZjM3OTZkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgV29ya2VyR2xvYmFsU2NvcGUgewogICAg
IHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBXb3JrZXJHbG9iYWxTY29wZSBCYXNlOwotICAgICAg
ICBzdGF0aWMgUmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGUoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IHRvcE9yaWdpbik7CisgICAgICAgIHN0YXRpYyBSZWY8RGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGU+IGNyZWF0ZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
RGVkaWNhdGVkV29ya2VyVGhyZWFkJiwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbik7CiAgICAgICAgIHZpcnR1
YWwgfkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKCk7CiAKICAgICAgICAgdmlydHVhbCBib29s
IGlzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CkBAIC02MCw3ICs2MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRGVk
aWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQoKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0
b3BPcmlnaW4pOworICAgICAgICBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwm
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiwgYm9vbCBz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFBhc3NSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+IHRvcE9yaWdpbik7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJl
YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3Bw
CmluZGV4IDc4NjJjZDVjZWIzNTFhNzdmM2M5MDY3OGJkMjQxNmU1N2Q5NGNlNGUuLmFhZGRhYmI4
ZmIzOGRmMWQyOGFlZmUxOGYwNTAwODczMDEzMWEyN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKQEAgLTM5LDggKzM5LDggQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1EZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OkRlZGljYXRlZFdv
cmtlclRocmVhZChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0
IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5
LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHksIFdvcmtlclRocmVhZFN0YXJ0
TW9kZSBzdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBjb25zdCBTZWN1cml0eU9y
aWdpbiogdG9wT3JpZ2luKQotICAgIDogV29ya2VyVGhyZWFkKHVybCwgdXNlckFnZW50LCBzb3Vy
Y2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyT2JqZWN0UHJveHksIHN0YXJ0TW9kZSwg
Y29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCB0b3BPcmlnaW4pCitEZWRpY2F0
ZWRXb3JrZXJUaHJlYWQ6OkRlZGljYXRlZFdvcmtlclRocmVhZChjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9h
ZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2Jq
ZWN0UHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikKKyAgICA6IFdvcmtlclRocmVhZCh1
cmwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdvcmtlck9iamVj
dFByb3h5LCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0b3BPcmlnaW4pCiAg
ICAgLCBtX3dvcmtlck9iamVjdFByb3h5KHdvcmtlck9iamVjdFByb3h5KQogewogfQpAQCAtNDks
OSArNDksOSBAQCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6On5EZWRpY2F0ZWRXb3JrZXJUaHJlYWQo
KQogewogfQogCi1SZWY8V29ya2VyR2xvYmFsU2NvcGU+IERlZGljYXRlZFdvcmtlclRocmVhZDo6
Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdp
bj4gdG9wT3JpZ2luKQorUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0
b3BPcmlnaW4pCiB7Ci0gICAgcmV0dXJuIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVh
dGUodXJsLCB1c2VyQWdlbnQsICp0aGlzLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMsIHRvcE9yaWdpbik7CisgICAgcmV0dXJuIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
OjpjcmVhdGUodXJsLCB1c2VyQWdlbnQsICp0aGlzLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwg
dG9wT3JpZ2luKTsKIH0KIAogdm9pZCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9v
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRo
cmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaApp
bmRleCBjYjNhMzQ2ZWVlNzdhMDY4Y2JmODUzOTBjZDQ4OWFiOWVhMDdiNmIxLi5hZmE5NjEwMWI2
ODRiNjgzYWVhNWQ4MWMxODQ3NzJhNTVlNjZlNDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKQEAgLTQ4LDExICs0OCwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94
eSgpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2VyT2JqZWN0UHJveHk7IH0KIAogICAgIHByb3RlY3Rl
ZDoKLSAgICAgICAgdmlydHVhbCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckds
b2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiB0b3BPcmlnaW4pIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIFJlZjxXb3JrZXJHbG9i
YWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYs
IGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pIG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgcnVuRXZlbnRMb29wKCkgb3ZlcnJpZGU7CiAKICAgICBwcml2YXRlOgotICAgICAgICBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJPYmpl
Y3RQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbik7Cisg
ICAgICAgIERlZGljYXRlZFdvcmtlclRocmVhZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdv
cmtlck9iamVjdFByb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbik7CiAK
ICAgICAgICAgV29ya2VyT2JqZWN0UHJveHkmIG1fd29ya2VyT2JqZWN0UHJveHk7CiAgICAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCA5MTBkZDhiZTg3ZmI2M2RkYmIwNzA0Yzc3
YTc4ODJkY2Q3OGMyYTZlLi5mYThkZDJiMzcwNjQ0NTA0YTU0OWU5YTY4NzUzMTcxZTY5ZDk1YjAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC04Nyw2ICs4Nyw4IEBAIFJlZlB0cjxX
b3JrZXI+IFdvcmtlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNv
bnN0IFN0cmluZyYgdXJsCiAgICAgaWYgKHNjcmlwdFVSTC5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCisgICAgd29ya2VyLT5tX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSA9IENvbnRlbnRTZWN1cml0eVBvbGljeTo6c2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnRleHQpOworCiAgICAgLy8gVGhlIHdvcmtl
ciBjb250ZXh0IGRvZXMgbm90IGV4aXN0IHdoaWxlIGxvYWRpbmcsIHNvIHdlIG11c3QgZW5zdXJl
IHRoYXQgdGhlIHdvcmtlciBvYmplY3QgaXMgbm90IGNvbGxlY3RlZCwgbm9yIGFyZSBpdHMgZXZl
bnQgbGlzdGVuZXJzLgogICAgIHdvcmtlci0+c2V0UGVuZGluZ0FjdGl2aXR5KHdvcmtlci5wdHIo
KSk7CiAKQEAgLTE2Niw3ICsxNjgsNyBAQCB2b2lkIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQoKQog
ICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZl
bnQsIGZhbHNlLCB0cnVlKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIGNvbnN0IENvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzID0gbV9jb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgPyBtX2NvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy52YWx1ZSgpIDogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+cmVzcG9uc2VIZWFkZXJzKCk7Ci0g
ICAgICAgIG1fY29udGV4dFByb3h5LT5zdGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0TG9h
ZGVyLT51cmwoKSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51c2VyQWdlbnQobV9zY3JpcHRM
b2FkZXItPnVybCgpKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBjb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMsIERvbnRQYXVzZVdvcmtlckdsb2JhbFNjb3BlT25TdGFydCk7
CisgICAgICAgIG1fY29udGV4dFByb3h5LT5zdGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0
TG9hZGVyLT51cmwoKSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51c2VyQWdlbnQobV9zY3Jp
cHRMb2FkZXItPnVybCgpKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBjb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNl
Y3VyaXR5UG9saWN5LCBEb250UGF1c2VXb3JrZXJHbG9iYWxTY29wZU9uU3RhcnQpOwogICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNjcmlwdEltcG9ydGVkKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXIt
PnNjcmlwdCgpKTsKICAgICB9CiAgICAgbV9zY3JpcHRMb2FkZXIgPSBudWxscHRyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyLmgKaW5kZXggY2QzZDExMTIyMmM4NDFiMmUwNGU4ZmE5NzZkMzlhZTIwODVi
YjhkNy4uNjQ3NTZlOWZlNWM5ZWJjNDY2M2U5NWFiYzYzNmQyOTljYjI1Y2E3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlci5oCkBAIC04Niw2ICs4Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgUmVmUHRyPFdvcmtlclNjcmlwdExvYWRlcj4gbV9zY3JpcHRMb2FkZXI7CiAgICAgICAg
IFdvcmtlckdsb2JhbFNjb3BlUHJveHkqIG1fY29udGV4dFByb3h5OyAvLyBUaGUgcHJveHkgb3V0
bGl2ZXMgdGhlIHdvcmtlciB0byBwZXJmb3JtIHRocmVhZCBzaHV0ZG93bi4KICAgICAgICAgT3B0
aW9uYWw8Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzPiBtX2NvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczsKKyAgICAgICAgYm9vbCBtX3Nob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSB7IGZhbHNlIH07CiAgICAgfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmNwcAppbmRleCBjNmZjZjJkZGM2MGY1ZDQyNjczZWI4YjJmZTZmNGVkZTlkYzNjMjQxLi44
NTU3YWI4MzhmOTZjN2YwZTBjMjllNmQzOGIyMTlkNTRhMDk4NTdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNjIsMTUgKzYyLDE2IEBAIHVz
aW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV29ya2Vy
R2xvYmFsU2NvcGU6Oldvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkJiB0aHJlYWQsIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IHRvcE9yaWdpbikKK1dvcmtlckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZShj
b25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZCYgdGhy
ZWFkLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQogICAgIDogbV91cmwodXJsKQogICAg
ICwgbV91c2VyQWdlbnQodXNlckFnZW50KQotICAgICwgbV9zY3JpcHQoc3RkOjptYWtlX3VuaXF1
ZTxXb3JrZXJTY3JpcHRDb250cm9sbGVyPih0aGlzKSkKKyAgICAsIG1fc2NyaXB0KHN0ZDo6bWFr
ZV91bmlxdWU8V29ya2VyU2NyaXB0Q29udHJvbGxlcj4odGhpcywgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5KSkKICAgICAsIG1fdGhyZWFkKHRocmVhZCkKICAgICAs
IG1fY2xvc2luZyhmYWxzZSkKICAgICAsIG1fZXZlbnRRdWV1ZSgqdGhpcykKICAgICAsIG1fdG9w
T3JpZ2luKHRvcE9yaWdpbikKIHsKKyAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3koc3RkOjpt
YWtlX3VuaXF1ZTxDb250ZW50U2VjdXJpdHlQb2xpY3k+KHRoaXMpKTsKICAgICBzZXRTZWN1cml0
eU9yaWdpblBvbGljeShTZWN1cml0eU9yaWdpblBvbGljeTo6Y3JlYXRlKFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGUodXJsKSkpOwogfQogCkBAIC04Nyw3ICs4OCw2IEBAIFdvcmtlckdsb2JhbFNjb3Bl
Ojp+V29ya2VyR2xvYmFsU2NvcGUoKQogCiB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjphcHBseUNv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyhjb25zdCBDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cykKIHsKLSAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3koc3RkOjptYWtlX3VuaXF1ZTxDb250
ZW50U2VjdXJpdHlQb2xpY3k+KHRoaXMpKTsKICAgICBjb250ZW50U2VjdXJpdHlQb2xpY3koKS0+
ZGlkUmVjZWl2ZUhlYWRlcnMoY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IGQ0
ZGIzNTE0MmZjMTI2NGI5NjQ2M2Y0YzA4MTA0NzAzZmQxNzAzNzUuLmE1YWFiMjIwZWRiOTljMWZj
M2M1OGRlZDIyYmQ0ZjY2NjgzMTlhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAj
ZW5kaWYKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUoY29uc3Qg
VVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZCYsIFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbik7CisgICAgICAgIFdvcmtlckdsb2JhbFNjb3BlKGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmLCBib29sIHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4gdG9wT3JpZ2luKTsKICAgICAgICAgdm9pZCBhcHBseUNvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyhjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xl
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50
IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENh
bGxTdGFjaz4mJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGVQcm94eS5oCmluZGV4IDZiZDg4YzRiMmQwYTg1YzQ3ZTQ3NTQ0MDczZjc2Mjg5
MWY5ZmZlNzIuLmNkYjE3NDY0MDRmM2RiNGE3ZDg0OGE1Y2IyNGVkMzNkYmRhYWZjNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCkBAIC00
OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIH5Xb3Jr
ZXJHbG9iYWxTY29wZVByb3h5KCkgeyB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHN0YXJ0V29y
a2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycyYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSkgPSAwOworICAgICAgICB2
aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3Qg
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NN
YWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSkgPSAw
OwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpID0g
MDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cAppbmRleCA2OTllOWI3N2Y3YmYxNjVmOWU5ODBhMDU2M2U3YzQ5OTM1OWY3N2RkLi44MmNkMGJj
OWVhZWNkYzU0YzIxMzg4NWVjYjU5ODkzMzE0MGYyZDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtNzIsMTIgKzcyLDEyIEBAIFdv
cmtlck1lc3NhZ2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8fCAo
aXM8V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGN1cnJl
bnRUaHJlYWQoKSA9PSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCkudGhyZWFkKCkudGhyZWFkSUQoKSkpOwogfQogCi12b2lkIFdvcmtlck1lc3Nh
Z2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycywgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSkKK3ZvaWQg
V29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBz
Y3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNv
ZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSkKIHsK
ICAgICAvLyBGSVhNRTogVGhpcyBuZWVkIHRvIGJlIHJldmlzaXRlZCB3aGVuIHdlIHN1cHBvcnQg
bmVzdGVkIHdvcmtlciBvbmUgZGF5CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCk7CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQpOwotICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRo
cmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50
LCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzLCBkb2N1bWVudC50b3BPcmlnaW4oKSk7CisgICAgUmVmUHRyPERl
ZGljYXRlZFdvcmtlclRocmVhZD4gdGhyZWFkID0gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVh
dGUoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcywgc3RhcnRN
b2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgZG9jdW1lbnQudG9wT3JpZ2luKCkpOwogICAg
IHdvcmtlclRocmVhZENyZWF0ZWQodGhyZWFkKTsKICAgICB0aHJlYWQtPnN0YXJ0KCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKaW5kZXggYWE1
Yjg5MWE4MjRmZTM3MWQ2ODU4MDAyMzAxZTViMmE2ZjIwYTBmNi4uZGQ1YzA1Y2ViMzlmNjlmZTM3
MGIwMTE3MGI5MjQ3NTZkZGZlMTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuaApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlckdsb2JhbFNjb3BlUHJveHku
CiAgICAgICAgIC8vIChPbmx5IHVzZSB0aGVzZSBtZXRob2RzIGluIHRoZSB3b3JrZXIgb2JqZWN0
IHRocmVhZC4pCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNv
bnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5n
JiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMm
LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQg
c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3ksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSkgb3ZlcnJpZGU7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpIG92ZXJyaWRlOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0
Q2hhbm5lbEFycmF5Pikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcAppbmRleCA4MTIyMzgwNWNkNzcxMzUwMDdiZmM4YmY2OWU5Yjk3NTg4Y2ZiNDk2Li4y
OTdiZjdlNjc2NzZkNzY0Mjg2M2Y2MzdmMTZhMDIxZTI0ZGE5NWVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC03MCwzMSArNzAsMzMgQEAgdW5zaWduZWQgV29y
a2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgpCiBzdHJ1Y3QgV29ya2VyVGhyZWFkU3RhcnR1
cERhdGEgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlclRocmVhZFN0YXJ0dXBEYXRh
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV29ya2VyVGhyZWFkU3Rh
cnR1cERhdGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBj
b25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgU2VjdXJpdHlPcmlnaW4q
IHRvcE9yaWdpbik7CisgICAgV29ya2VyVGhyZWFkU3RhcnR1cERhdGEoY29uc3QgVVJMJiBzY3Jp
cHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUs
IFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOwogCiAgICAgVVJMIG1fc2NyaXB0
VVJMOwogICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKICAgICBTdHJpbmcgbV9zb3VyY2VDb2RlOwog
ICAgIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBtX3N0YXJ0TW9kZTsKICAgICBDb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgbV9jb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnM7CisgICAgYm9vbCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeTsKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fdG9wT3JpZ2luOwogfTsKIAotV29y
a2VyVGhyZWFkU3RhcnR1cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYg
c2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VD
b2RlLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycywgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikKK1dvcmtlclRocmVhZFN0YXJ0
dXBEYXRhOjpXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyVGhy
ZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9y
aWdpbiogdG9wT3JpZ2luKQogICAgIDogbV9zY3JpcHRVUkwoc2NyaXB0VVJMLmlzb2xhdGVkQ29w
eSgpKQogICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50Lmlzb2xhdGVkQ29weSgpKQogICAgICwg
bV9zb3VyY2VDb2RlKHNvdXJjZUNvZGUuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3N0YXJ0TW9k
ZShzdGFydE1vZGUpCiAgICAgLCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cyhjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaXNvbGF0ZWRDb3B5KCkpCisg
ICAgLCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeShzaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kpCiAgICAgLCBtX3RvcE9yaWdpbih0
b3BPcmlnaW4gPyAmdG9wT3JpZ2luLT5pc29sYXRlZENvcHkoKS5nZXQoKSA6IG51bGxwdHIpCiB7
CiB9CiAKLVdvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJM
b2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9ydGluZ1Byb3h5JiB3b3Jr
ZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3Qg
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCitXb3Jr
ZXJUaHJlYWQ6OldvcmtlclRocmVhZChjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkm
IHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5n
UHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikKICAgICA6IG1fdGhyZWFkSUQoMCkKICAg
ICAsIG1fd29ya2VyTG9hZGVyUHJveHkod29ya2VyTG9hZGVyUHJveHkpCiAgICAgLCBtX3dvcmtl
clJlcG9ydGluZ1Byb3h5KHdvcmtlclJlcG9ydGluZ1Byb3h5KQotICAgICwgbV9zdGFydHVwRGF0
YShzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhPihzY3JpcHRVUkwsIHVz
ZXJBZ2VudCwgc291cmNlQ29kZSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMsIHRvcE9yaWdpbikpCisgICAgLCBtX3N0YXJ0dXBEYXRhKHN0ZDo6bWFrZV91
bmlxdWU8V29ya2VyVGhyZWFkU3RhcnR1cERhdGE+KHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3Vy
Y2VDb2RlLCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0b3BPcmlnaW4pKQog
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMp
CiAgICAgLCBtX25vdGlmaWNhdGlvbkNsaWVudCgwKQogI2VuZGlmCkBAIC0xNDQsNyArMTQ2LDcg
QEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiAKICAgICB7CiAgICAgICAgIExv
Y2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwotICAgICAgICBtX3dvcmtlckds
b2JhbFNjb3BlID0gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUobV9zdGFydHVwRGF0YS0+bV9zY3Jp
cHRVUkwsIG1fc3RhcnR1cERhdGEtPm1fdXNlckFnZW50LCBtX3N0YXJ0dXBEYXRhLT5tX2NvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgbV9zdGFydHVwRGF0YS0+bV90b3BPcmln
aW4ucmVsZWFzZSgpKTsKKyAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IGNyZWF0ZVdvcmtl
ckdsb2JhbFNjb3BlKG1fc3RhcnR1cERhdGEtPm1fc2NyaXB0VVJMLCBtX3N0YXJ0dXBEYXRhLT5t
X3VzZXJBZ2VudCwgbV9zdGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMsIG1fc3RhcnR1cERhdGEtPm1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNl
Y3VyaXR5UG9saWN5LCBtX3N0YXJ0dXBEYXRhLT5tX3RvcE9yaWdpbi5yZWxlYXNlKCkpOwogCiAg
ICAgICAgIGlmIChtX3J1bkxvb3AudGVybWluYXRlZCgpKSB7CiAgICAgICAgICAgICAvLyBUaGUg
d29ya2VyIHdhcyB0ZXJtaW5hdGVkIGJlZm9yZSB0aGUgdGhyZWFkIGhhZCBhIGNoYW5jZSB0byBy
dW4uIFNpbmNlIHRoZSBjb250ZXh0IGRpZG4ndCBleGlzdCB5ZXQsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuaAppbmRleCBiYjc5NTgyZjY4M2MyNWRjZGI3ZjM0OWVmMjAyM2E5YjVh
M2ZkOGJkLi4xNmM4ZGI3YjY5NjBjYmYwZWE5MjllNDMxYWYzMzhjODNlYmQ4ZDVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTY4LDEwICs2OCwxMCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgV29ya2VyVGhy
ZWFkKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNv
dXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmLCBXb3Jr
ZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycyYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOworICAgICAgICBXb3JrZXJU
aHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYg
c291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIFdv
cmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOwogCiAgICAgICAgIC8vIEZhY3Rvcnkg
bWV0aG9kIGZvciBjcmVhdGluZyBhIG5ldyB3b3JrZXIgY29udGV4dCBmb3IgdGhlIHRocmVhZC4K
LSAgICAgICAgdmlydHVhbCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2Jh
bFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiB0b3BPcmlnaW4pID0gMDsKKyAgICAgICAgdmlydHVhbCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+
IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4gdG9wT3JpZ2luKSA9IDA7CiAKICAgICAgICAgLy8gRXhlY3V0ZXMgdGhlIGV2
ZW50IGxvb3AgZm9yIHRoZSB3b3JrZXIgdGhyZWFkLiBEZXJpdmVkIGNsYXNzZXMgY2FuIG92ZXJy
aWRlIHRvIHBlcmZvcm0gYWN0aW9ucyBiZWZvcmUvYWZ0ZXIgZW50ZXJpbmcgdGhlIGV2ZW50IGxv
b3AuCiAgICAgICAgIHZpcnR1YWwgdm9pZCBydW5FdmVudExvb3AoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MzUxYTZi
NDYzNTI0ZTc3MDRiN2RlYjRmYmZjZWE4ZDhlOGM0NTc2Li4wZDEyZTI2MzVjYWY3ZDc4YTJmMjRj
ZjgxOGE5ODI3MDQ0ZjAwMzk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjEgQEAKIDIwMTYtMDEtMjggIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIENTUDogQWxsb3cgV2Vi
IFdvcmtlcnMgaW5pdGlhdGVkIGZyb20gYW4gaXNvbGF0ZWQgd29ybGQgdG8gYnlwYXNzIHRoZSBt
YWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2MjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzI0NDAwMDIzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCB0ZXN0cyB0byBlbnN1cmUgdGhhdCBhIFdlYiBXb3JrZXIgaW5pdGlhdGVkIGZyb20g
YW4gaXNvbGF0ZWQgd29ybGQgY2FuIGJ5cGFzcyB0aGUgbWFpbiB3b3JsZAorICAgICAgICBDb250
ZW50IFNlY3VyaXR5IFBvbGljeS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNv
bGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3Js
ZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29y
bGQtY3NwLXdvcmtlci1ibG9iLXhoci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29y
a2VyLWJsb2IteGhyLmh0bWw6IEFkZGVkLgorCisyMDE2LTAxLTI4ICBEYW5pZWwgQmF0ZXMgIDxk
YWJhdGVzQGFwcGxlLmNvbT4KKwogICAgICAgICBDU1A6IFVzZSB0aGUgc2VydmVkIENTUCBoZWFk
ZXIgZm9yIGRlZGljYXRlZCB3b3JrZXJzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTMxNTcKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0MzgzMjU0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdv
cmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi1ldmFsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFp
bi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk4
ZWQ3Njg2NjM3Njc5NWY3ZGI1MTc2NmEyNjEwYzNkYmYxYjg4MAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFp
bi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CitUaGlzIHRlc3RzIHRoYXQgaW4gYW4gaXNvbGF0ZWQgd29ybGQgdGhlIENvbnRlbnQgU2VjdXJp
dHkgUG9saWN5IG9mIHRoZSBwYXJlbnQgb3JpZ2luICh0aGlzIHBhZ2UpIGlzIGJ5cGFzc2VkIGFu
ZCBhIFdlYiBXb3JrZXIgaXMgYWxsb3dlZCB0byBjYWxsIGV2YWwoKS4KKworUEFTUyB3b3JrZXIg
Y2FsbGVkIGV2YWwoKS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFz
cy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi1ldmFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYxYmU0
ZjQ3ZmUxMmYxYjE3N2EyYWU4NWMzOTNkNGE5MDBiOGYxNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13
b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJp
dHktUG9saWN5IiBjb250ZW50PSJzY3JpcHQtc3JjICdzZWxmJyAndW5zYWZlLWlubGluZSciPgor
PHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBpbiBhbiBpc29sYXRlZCB3b3JsZCB0
aGUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgb2YgdGhlIHBhcmVudCBvcmlnaW4gKHRoaXMgcGFn
ZSkgaXMgYnlwYXNzZWQgYW5kIGEgV2ViIFdvcmtlciBpcyBhbGxvd2VkIHRvIGNhbGwgPGNvZGU+
ZXZhbCgpPC9jb2RlPi48L3A+Cis8cHJlIGlkPSJyZXN1bHQiPjwvcHJlPgorPHNjcmlwdD4KK3dp
bmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZlbnQpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlc3VsdCIpLnRleHRDb250ZW50ID0gZXZlbnQuZGF0YTsKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitm
dW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgc2NyaXB0ID0gWworICAgICAgICAndHJ5IHsn
LAorICAgICAgICAnICAgIGV2YWwoIjEgKyAwIik7JywKKyAgICAgICAgJyAgICBzZWxmLnBvc3RN
ZXNzYWdlKCJQQVNTIHdvcmtlciBjYWxsZWQgZXZhbCgpLiIpOycsCisgICAgICAgICd9IGNhdGNo
IChleGNlcHRpb24pIHsnLAorICAgICAgICAnICAgIHNlbGYucG9zdE1lc3NhZ2UoIkZBSUwgc2hv
dWxkIG5vdCBoYXZlIHRocm93biBhbiBleGNlcHRpb24uIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhj
ZXB0aW9uICsgIi4iKTsnLAorICAgICAgICAnfScsCisgICAgXS5qb2luKCJcbiIpOworCisgICAg
dmFyIHdvcmtlcjsKKyAgICB0cnkgeworICAgICAgICB3b3JrZXIgPSBuZXcgV29ya2VyKHdpbmRv
dy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtzY3JpcHRdKSkpOworICAgICAgICB3b3Jr
ZXIub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2ZW50KSB7IHdpbmRvdy5wb3N0TWVzc2FnZShldmVu
dC5kYXRhLCAiKiIpIH07CisgICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7CisgICAgICAgIHdpbmRv
dy5wb3N0TWVzc2FnZSgiRkFJTCBzaG91bGQgbm90IGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlvbiB3
aGVuIGNyZWF0aW5nIHdvcmtlci4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24gKyAiLiIs
ICIqIik7CisgICAgfQorfQorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5l
ci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgwLCBydW5UZXN0LnRvU3RyaW5nKCkgKyAi
O3J1blRlc3QoKTsiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWlu
LXdvcmxkLWNzcC13b3JrZXItYmxvYi14aHItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3Jr
ZXItYmxvYi14aHItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZmIxMTBhMjVhN2JiNzEzYzM4
ZWIwZTdhODA1YzMxZjU4MWE5YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtl
ci1ibG9iLXhoci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3RzIHRoYXQg
aW4gYW4gaXNvbGF0ZWQgd29ybGQgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9mIHRoZSBw
YXJlbnQgb3JpZ2luICh0aGlzIHBhZ2UpIGlzIGJ5cGFzc2VkIGFuZCBhIFdlYiBXb3JrZXIgaXMg
YWxsb3dlZCB0byBtYWtlIGFuIFhIUiByZXF1ZXN0LgorCitQQVNTCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29y
bGQtY3NwLXdvcmtlci1ibG9iLXhoci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi14aHIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44YTI0ZGU3ZTQ2M2QzMTE1YWMzN2I5YWExYTllMDM0ODQ2YWE4MGQ2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29s
YXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi14aHIuaHRtbApAQCAt
MCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0ic2NyaXB0LXNyYyAnc2Vs
ZicgJ3Vuc2FmZS1pbmxpbmUnOyBjb25uZWN0LXNyYyAnbm9uZSciPgorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRoaXMgdGVzdHMgdGhhdCBpbiBhbiBpc29sYXRlZCB3b3JsZCB0aGUgQ29udGVudCBTZWN1
cml0eSBQb2xpY3kgb2YgdGhlIHBhcmVudCBvcmlnaW4gKHRoaXMgcGFnZSkgaXMgYnlwYXNzZWQg
YW5kIGEgV2ViIFdvcmtlciBpcyBhbGxvd2VkIHRvIG1ha2UgYW4gWEhSIHJlcXVlc3QuPC9wPgor
PHByZSBpZD0icmVzdWx0Ij48L3ByZT4KKzxzY3JpcHQ+Cit3aW5kb3cub25tZXNzYWdlID0gZnVu
Y3Rpb24gKGV2ZW50KQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS50
ZXh0Q29udGVudCA9IGV2ZW50LmRhdGE7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7
CisgICAgdmFyIHNjcmlwdCA9IFsKKyAgICAgICAgJ3ZhciBleGNlcHRpb247JywKKyAgICAgICAg
J3ZhciB4aHI7JywKKyAgICAgICAgJ3RyeSB7JywKKyAgICAgICAgJyAgICB2YXIgaXNBc3luY2hy
b25vdXMgPSBmYWxzZTsnLAorICAgICAgICAnICAgIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDsn
LAorICAgICAgICAnICAgIHhoci5vcGVuKCJHRVQiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ht
bGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IiwgaXNBc3luY2hyb25vdXMpOycsCisgICAg
ICAgICcgICAgeGhyLnNlbmQoKTsnLAorICAgICAgICAnfSBjYXRjaCAoZSkgeycsCisgICAgICAg
ICcgICAgZXhjZXB0aW9uID0gZTsnLAorICAgICAgICAnfScsCisgICAgICAgICdpZiAoZXhjZXB0
aW9uKScsCisgICAgICAgICcgICAgc2VsZi5wb3N0TWVzc2FnZSgiRkFJTCBzaG91bGQgbm90IGhh
dmUgdGhyb3duIGFuIGV4Y2VwdGlvbi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24gKyAi
LiIpOycsCisgICAgICAgICdlbHNlJywKKyAgICAgICAgJyAgICBzZWxmLnBvc3RNZXNzYWdlKHho
ci5yZXNwb25zZSk7JywKKyAgICBdLmpvaW4oIlxuIik7CisKKyAgICB2YXIgd29ya2VyOworICAg
IHRyeSB7CisgICAgICAgIHdvcmtlciA9IG5ldyBXb3JrZXIod2luZG93LlVSTC5jcmVhdGVPYmpl
Y3RVUkwobmV3IEJsb2IoW3NjcmlwdF0pKSk7CisgICAgICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBm
dW5jdGlvbiAoZXZlbnQpIHsgd2luZG93LnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEsICIqIikgfTsK
KyAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKCJG
QUlMIHNob3VsZCBub3QgaGF2ZSB0aHJvd24gYW4gZXhjZXB0aW9uIHdoZW4gY3JlYXRpbmcgd29y
a2VyLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIiwgIioiKTsKKyAgICB9Cit9
CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmV2YWx1YXRlU2NyaXB0
SW5Jc29sYXRlZFdvcmxkKDAsIHJ1blRlc3QudG9TdHJpbmcoKSArICI7cnVuVGVzdCgpOyIpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270397</attachid>
            <date>2016-02-01 10:06:02 -0800</date>
            <delta_ts>2016-02-05 12:03:53 -0800</delta_ts>
            <desc>Patch and Layout Tests</desc>
            <filename>bug-153622-20160201100537.patch</filename>
            <type>text/plain</type>
            <size>37172</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1OTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFhZjRhNjQ3ZDRiMDA4
ZDUwMWUxNTNmZTRhMDM1MjVhM2QzYjBkNy4uYTRhYjEyYWQ3ZDdjYjA1Y2I1ZTZlZjE2Y2UxMzY3
MTRjZDIyYzVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE2LTAxLTI4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBDU1A6IEFsbG93IFdlYiBX
b3JrZXJzIGluaXRpYXRlZCBmcm9tIGFuIGlzb2xhdGVkIHdvcmxkIHRvIGJ5cGFzcyB0aGUgbWFp
biB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
NDQwMDAyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBXZWIgV29ya2VycyBpbml0aWF0ZWQgZnJvbSBhbiBpc29s
YXRlZCB3b3JsZCAoc2F5LCBhIFNhZmFyaSBDb250ZW50IFNjcmlwdCBFeHRlbnNpb24pCisgICAg
ICAgIHdvdWxkIGJlIHN1YmplY3QgdG8gdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9mIHRo
ZSBwYWdlLgorCisgICAgICAgIEN1cnJlbnRseSBjb2RlIGluIGFuIGlzb2xhdGVkIHdvcmxkIHRo
YXQgZG9lcyBub3QgZXhlY3V0ZSBpbiBhIFdlYiBXb3JrZXIgaXMgZXhlbXB0IGZyb20gdGhlIENT
UCBvZgorICAgICAgICB0aGUgcGFnZS4gSG93ZXZlciBjb2RlIHRoYXQgcnVucyBpbnNpZGUgYSBX
ZWIgV29ya2VyIHRoYXQgd2FzIGluaXRpYXRlZCBmcm9tIGFuIGlzb2xhdGVkIHdvcmxkIGlzCisg
ICAgICAgIHN1YmplY3QgdG8gdGhlIENTUCBvZiB0aGUgcGFnZS4gSW5zdGVhZCwgc3VjaCBXZWIg
V29ya2VyIGNvZGUgc2hvdWxkIGFsc28gYmUgZXhlbXB0IGZyb20gdGhlIENTUCBvZgorICAgICAg
ICB0aGUgcGFnZS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRl
ZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi1ldmFsLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13
b3JsZC1jc3Atd29ya2VyLWJsb2IteGhyLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6V29ya2VyU2NyaXB0Q29udHJvbGxlcik6IE1vZGlmaWVkIHRvIHRha2UgYSBi
b29sZWFuIGFyZ3VtZW50IGFuZAorICAgICAgICBhcyB0byB3aGV0aGVyIHRvIGJ5cGFzcyB0aGUg
bWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBhbmQgc3RvcmUgaXQgaW4gYSBtZW1i
ZXIgZmllbGQuCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5o
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6c2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KTogQWRkZWQuCisgICAgICAgICogcGFnZS9j
c3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRT
ZWN1cml0eVBvbGljeTo6c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
KTogTW9kaWZpZWQgdG8gYXNrIHRoZQorICAgICAgICBzY3JpcHQgY29udHJvbGxlciBmb3IgdGhl
IHdvcmtlciB3aGV0aGVyIHRvIGJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5
IFBvbGljeS4KKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUp
OiBNb2RpZmllZCB0byB0YWtlIGJvb2xlYW4gYXJndW1lbnQgc2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5CisgICAgICAgIGFzIHRvIHdoZXRoZXIgdG8gYnlwYXNzIHRo
ZSBtYWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGFuZCBvbmx5IGFwcGx5IHRoZSBD
b250ZW50IFNlY3VyaXR5CisgICAgICAgIFBvbGljeSBoZWFkZXJzIHdoZW4gc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5IGlzIGZhbHNlLgorICAgICAgICAoV2ViQ29y
ZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
KTogUGFzcyB0aHJvdWdoIGEgYm9vbGVhbiBhcmd1bWVudCBzaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3kKKyAgICAgICAgYXMgdG8gd2hldGhlciB0byBieXBhc3MgdGhl
IG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuCisgICAgICAgICogd29ya2Vycy9E
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNhdGVk
V29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlclRocmVh
ZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKTogRGl0dG8uCisgICAg
ICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJz
L1dvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OmNyZWF0ZSk6IFN0b3JlIHdo
ZXRoZXIgd2Ugc2hvdWxkIGJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBv
bGljeSBzbworICAgICAgICB0aGF0IHdlIGNhbiBwYXNzIGl0IHRvIFdvcmtlck1lc3NhZ2luZ1By
b3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKCkgaW4gV29ya2VyOjpub3RpZnlGaW5pc2hlZCgp
LgorICAgICAgICBXZSBuZWVkIHRvIHN0b3JlIHRoaXMgZGVjaXNpb24gaGVyZSBhcyBvcHBvc2Vk
IHRvIGRldGVybWluaW5nIGl0IGF0IGFueSBsYXRlciB0aW1lIChzYXksIGluIFdvcmtlcjo6bm90
aWZ5RmluaXNoZWQoKSkKKyAgICAgICAgYmVjYXVzZSBpdCBpcyBkZXBlbmRlbnQgb24gdGhlIGN1
cnJlbnQgSmF2YVNjcmlwdCBwcm9ncmFtIHN0YWNrIGF0IHRoZSB0aW1lIHRoaXMgZnVuY3Rpb24g
aXMgaW52b2tlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6bm90aWZ5RmluaXNoZWQpOiBQ
YXNzIHdoZXRoZXIgdG8gYnlwYXNzIHRoZSBtYWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9s
aWN5LgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6
V29ya2VyR2xvYmFsU2NvcGUpOiBQYXNzIHRocm91Z2ggYSBib29sZWFuIGFyZ3VtZW50IHNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeQorICAgICAgICBhcyB0byB3aGV0
aGVyIHRvIGJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4gQWxz
bywgYWx3YXlzIGluc3RhbnRpYXRlIGEgQ29udGVudCBTZWN1cml0eQorICAgICAgICBQb2xpY3kg
b2JqZWN0IGFzIG91ciBjdXJyZW50IGNvZGUgYXNzdW1lcyB0aGF0IG9uZSBpcyBhbHdheXMgY3Jl
YXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjphcHBseUNvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyk6IE1vdmVkIGluc3RhbnRpYXRlZCBvZiB0aGUg
Q29udGVudFNlY3VyaXR5UG9saWN5IG9iamVjdAorICAgICAgICBmcm9tIGhlcmUgdG8gdGhlIGNv
bnN0cnVjdG9yLgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJz
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3Nh
Z2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKTogUGFzcyB0aHJvdWdoIGEgYm9vbGVh
biBhcmd1bWVudCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kKKyAg
ICAgICAgYXMgdG8gd2hldGhlciB0byBieXBhc3MgdGhlIG1haW4gd29ybGQgQ29udGVudCBTZWN1
cml0eSBQb2xpY3kuCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgor
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlclRocmVhZFN0YXJ0dXBEYXRhOjpXb3JrZXJUaHJlYWRTdGFydHVwRGF0YSk6IE1vZGlmaWVk
IHRvIHRha2UgYSBib29sZWFuIGFyZ3VtZW50IGFuZAorICAgICAgICBhcyB0byB3aGV0aGVyIHRv
IGJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBhbmQgc3RvcmUg
aXQgaW4gYSBtZW1iZXIgZmllbGQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6Oldv
cmtlclRocmVhZCk6IFBhc3MgdGhyb3VnaCBhIGJvb2xlYW4gYXJndW1lbnQgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5CisgICAgICAgIGFzIHRvIHdoZXRoZXIgdG8g
YnlwYXNzIHRoZSBtYWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWQpOiBEaXR0by4gIAorICAgICAgICAq
IHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisKIDIwMTYtMDItMDEgIERhbiBCZXJuc3RlaW4gIDxt
aXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBUcmllZCB0byBmaXggYSBidWlsZCBhZnRlciByMTk1
ODk5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRD
b250cm9sbGVyLmNwcAppbmRleCAwOWQxNzhiZDFmM2UyMzM2ODk4NTU5ODgyZDcwMDM2ZmYxMzg0
ZjdjLi5hZTYyNjU3OWIxYWUyMzViOGEzZmJmMGYwMWU0NDI0NDY3ZmQ3YWRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNw
cApAQCAtNDksMTEgKzQ5LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6V29ya2VyU2NyaXB0Q29udHJvbGxl
cihXb3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFsU2NvcGUpCitXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyKFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJH
bG9iYWxTY29wZSwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3kpCiAgICAgOiBtX3ZtKFZNOjpjcmVhdGUoKSkKICAgICAsIG1fd29ya2VyR2xvYmFsU2NvcGUo
d29ya2VyR2xvYmFsU2NvcGUpCiAgICAgLCBtX3dvcmtlckdsb2JhbFNjb3BlV3JhcHBlcigqbV92
bSkKICAgICAsIG1fZXhlY3V0aW9uRm9yYmlkZGVuKGZhbHNlKQorICAgICwgbV9zaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29u
dGVudFNlY3VyaXR5UG9saWN5KQogewogICAgIG1fdm0tPmVuc3VyZVdhdGNoZG9nKCk7CiAgICAg
aW5pdE5vcm1hbFdvcmxkQ2xpZW50RGF0YShtX3ZtLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBiMGI2YzBm
YzJlODU4NjU3M2FiNDgyYTgwZTFhMmQ0Y2JlMjc1MjgzLi5jMjhjZmMzNTRjYjFhMzcyYWJiNjU2
ODM3YzhjZGZlODc3MGJhMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBXb3JrZXJTY3JpcHRDb250cm9sbGVyIHsKICAgICAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoV29ya2VyU2NyaXB0Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIHB1YmxpYzoKLSAgICAgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlcihX
b3JrZXJHbG9iYWxTY29wZSopOworICAgICAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKFdvcmtl
ckdsb2JhbFNjb3BlKiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQ
b2xpY3kpOwogICAgICAgICB+V29ya2VyU2NyaXB0Q29udHJvbGxlcigpOwogCiAgICAgICAgIEpT
V29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckdsb2JhbFNjb3BlV3JhcHBlcigpCkBAIC04NSw2ICs4
NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcihK
U0M6OkRlYnVnZ2VyKik7CiAgICAgICAgIHZvaWQgZGV0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dl
ciopOwogCisgICAgICAgIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2Vj
dXJpdHlQb2xpY3k7IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgaW5pdFNjcmlwdElm
TmVlZGVkKCkKICAgICAgICAgewpAQCAtOTcsNiArOTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIFdvcmtlckdsb2JhbFNjb3BlKiBtX3dvcmtlckdsb2JhbFNjb3BlOwogICAgICAg
ICBKU0M6OlN0cm9uZzxKU1dvcmtlckdsb2JhbFNjb3BlPiBtX3dvcmtlckdsb2JhbFNjb3BlV3Jh
cHBlcjsKICAgICAgICAgYm9vbCBtX2V4ZWN1dGlvbkZvcmJpZGRlbjsKKyAgICAgICAgYm9vbCBt
X3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeTsKICAgICAgICAgYm9v
bCBtX2lzVGVybWluYXRpbmdFeGVjdXRpb24geyBmYWxzZSB9OwogICAgICAgICBtdXRhYmxlIExv
Y2sgbV9zY2hlZHVsZWRUZXJtaW5hdGlvbk11dGV4OwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCA1OTY1ZGJmZjc1
YjBmNzkyZWUzZjU3MDBhYzRkMjI5ZDM3YmY4MTQxLi43YjJiYWZmYjg3MDg1MmEyMWYxNGU1M2U3
NTc1YTU2MWE0OTA4NmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250
ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRl
bnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5j
bHVkZSAiVVJMLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDxp
bnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENh
bGxTdGFjay5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+
CkBAIC0xNzk3LDcgKzE3OTgsMTAgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGUKICAgICAgICAg
YXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCk7CiAgICAgICAgIHJl
dHVybiBkb2N1bWVudC5mcmFtZSgpICYmIGRvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLnNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogICAgIH0KLSAgICAKKwor
ICAgIGlmIChpczxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpCisgICAgICAgIHJldHVybiBk
b3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuc2NyaXB0KCktPnNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpOworCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlLmNwcAppbmRleCA5MWM3ZjIzMTFiODJmMDUyYjZhNDhmZGE3MGRiNDE0ZGRl
MmM1NjI0Li4zMGZkZTFjNjE1YWRlNTI4ZTMwZTMyNTRhMTFlNmE0YmFlOGQ2ODllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
LmNwcApAQCAtNDAsMTUgKzQwLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3Jl
YXRlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29y
a2VyVGhyZWFkJiB0aHJlYWQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBQYXNzUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCitSZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+
IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgY29uc3Qg
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCiB7Ci0gICAg
UmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSh1cmwsIHVzZXJBZ2VudCwgdGhyZWFkLCB0b3BPcmln
aW4pKTsKLSAgICBjb250ZXh0LT5hcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycyhjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMpOworICAgIFJlZjxEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGUodXJsLCB1c2VyQWdlbnQsIHRocmVhZCwgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0b3BPcmlnaW4pKTsKKyAgICBpZiAoIXNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSkKKyAgICAgICAgY29udGV4dC0+
YXBwbHlDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMoY29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzKTsKICAgICByZXR1cm4gY29udGV4dDsKIH0KIAotRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0
aHJlYWQsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKLSAgICA6IFdvcmtl
ckdsb2JhbFNjb3BlKHVybCwgdXNlckFnZW50LCB0aHJlYWQsIHRvcE9yaWdpbikKK0RlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhy
ZWFkLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQorICAgIDogV29ya2VyR2xvYmFsU2Nv
cGUodXJsLCB1c2VyQWdlbnQsIHRocmVhZCwgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNl
Y3VyaXR5UG9saWN5LCB0b3BPcmlnaW4pCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCAyOWI3MjJhMGQ3NTMy
ZjdhNTMwN2Y3ZDA2ODNmNDRkZDEzY2NjZjkxLi4wMzE1NWYzOTI4MWZmNWQxYjNhZDE1NDU3YmQ3
MmRhOTNmMzc5NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJH
bG9iYWxTY29wZSB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIFdvcmtlckdsb2JhbFNj
b3BlIEJhc2U7Ci0gICAgICAgIHN0YXRpYyBSZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+
IGNyZWF0ZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29y
a2VyVGhyZWFkJiwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwg
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKTsKKyAgICAgICAgc3RhdGljIFJl
ZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlKGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2lu
KTsKICAgICAgICAgdmlydHVhbCB+RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoKTsKIAogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KQEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCgpOwogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYsIFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbik7CisgICAgICAgIERlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKTsKICAgICB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZGljYXRlZFdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRl
ZFdvcmtlclRocmVhZC5jcHAKaW5kZXggMzYwNGJmODY0NTVhZTM2NjlkZTBhYTcxODg1ZTg0YTE5
NzgwZDExMS4uMDM5NGYwZDc4NzM2NDA2ZWU3ZTgxMTc0ZDgzMjI4NWU4ZTBjMzQyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcApAQCAt
MzgsOCArMzgsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLURlZGljYXRlZFdvcmtlclRo
cmVhZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYg
d29ya2VyTG9hZGVyUHJveHksIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSwg
V29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMs
IGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCi0gICAgOiBXb3JrZXJUaHJlYWQodXJs
LCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJPYmplY3RQ
cm94eSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHRv
cE9yaWdpbikKK0RlZGljYXRlZFdvcmtlclRocmVhZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlck9iamVj
dFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9k
ZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29u
dGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKQorICAg
IDogV29ya2VyVGhyZWFkKHVybCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCB3b3JrZXJMb2FkZXJQ
cm94eSwgd29ya2VyT2JqZWN0UHJveHksIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksIHRvcE9yaWdpbikKICAgICAsIG1fd29ya2VyT2JqZWN0UHJveHkod29ya2VyT2JqZWN0UHJv
eHkpCiB7CiB9CkBAIC00OCw5ICs0OCw5IEBAIERlZGljYXRlZFdvcmtlclRocmVhZDo6fkRlZGlj
YXRlZFdvcmtlclRocmVhZCgpCiB7CiB9CiAKLVJlZjxXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNh
dGVkV29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCitSZWY8V29ya2VyR2xvYmFsU2NvcGU+IERl
ZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9v
bCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKIHsKLSAgICByZXR1cm4gRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGU6OmNyZWF0ZSh1cmwsIHVzZXJBZ2VudCwgKnRoaXMsIGNvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycywgdG9wT3JpZ2luKTsKKyAgICByZXR1cm4gRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSh1cmwsIHVzZXJBZ2VudCwgKnRoaXMsIGNvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCB0b3BPcmlnaW4pOwogfQogCiB2b2lkIERlZGljYXRlZFdvcmtlclRo
cmVhZDo6cnVuRXZlbnRMb29wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
RGVkaWNhdGVkV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRl
ZFdvcmtlclRocmVhZC5oCmluZGV4IDg5ZDg4ZjIwMzYyODhkMTM4Yzg4NmEzYTcxMDdhMzM4MGJk
ZjY1N2EuLjlkN2VmMGY0OTQ0NmZhZmFkOTNiZTI2Y2VjZTNkNzVlM2VlZTZkZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaApAQCAtNDgsMTEg
KzQ4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV29ya2VyT2JqZWN0UHJveHkm
IHdvcmtlck9iamVjdFByb3h5KCkgY29uc3QgeyByZXR1cm4gbV93b3JrZXJPYmplY3RQcm94eTsg
fQogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIFJlZjxXb3JrZXJHbG9iYWxTY29w
ZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1
YWwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3ksIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikgb3ZlcnJpZGU7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBydW5FdmVudExvb3AoKSBvdmVycmlkZTsKIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIERlZGljYXRlZFdvcmtlclRocmVhZChjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQ
cm94eSYsIFdvcmtlck9iamVjdFByb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBjb25zdCBTZWN1cml0eU9yaWdp
biogdG9wT3JpZ2luKTsKKyAgICAgICAgRGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtl
ckxvYWRlclByb3h5JiwgV29ya2VyT2JqZWN0UHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUs
IGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdp
biogdG9wT3JpZ2luKTsKIAogICAgICAgICBXb3JrZXJPYmplY3RQcm94eSYgbV93b3JrZXJPYmpl
Y3RQcm94eTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IDkxMGRkOGJl
ODdmYjYzZGRiYjA3MDRjNzdhNzg4MmRjZDc4YzJhNmUuLmZhOGRkMmIzNzA2NDQ1MDRhNTQ5ZTlh
Njg3NTMxNzFlNjlkOTViMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAgLTg3LDYg
Kzg3LDggQEAgUmVmUHRyPFdvcmtlcj4gV29ya2VyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB1cmwKICAgICBpZiAoc2NyaXB0VVJMLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyAgICB3b3JrZXItPm1fc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gQ29udGVudFNlY3VyaXR5UG9saWN5
OjpzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koY29udGV4dCk7CisK
ICAgICAvLyBUaGUgd29ya2VyIGNvbnRleHQgZG9lcyBub3QgZXhpc3Qgd2hpbGUgbG9hZGluZywg
c28gd2UgbXVzdCBlbnN1cmUgdGhhdCB0aGUgd29ya2VyIG9iamVjdCBpcyBub3QgY29sbGVjdGVk
LCBub3IgYXJlIGl0cyBldmVudCBsaXN0ZW5lcnMuCiAgICAgd29ya2VyLT5zZXRQZW5kaW5nQWN0
aXZpdHkod29ya2VyLnB0cigpKTsKIApAQCAtMTY2LDcgKzE2OCw3IEBAIHZvaWQgV29ya2VyOjpu
b3RpZnlGaW5pc2hlZCgpCiAgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuZXJyb3JFdmVudCwgZmFsc2UsIHRydWUpKTsKICAgICBlbHNlIHsKICAgICAgICAg
Y29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgPSBtX2NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyA/IG1fY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLnZhbHVlKCkg
OiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5yZXNw
b25zZUhlYWRlcnMoKTsKLSAgICAgICAgbV9jb250ZXh0UHJveHktPnN0YXJ0V29ya2VyR2xvYmFs
U2NvcGUobV9zY3JpcHRMb2FkZXItPnVybCgpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVz
ZXJBZ2VudChtX3NjcmlwdExvYWRlci0+dXJsKCkpLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCks
IGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgRG9udFBhdXNlV29ya2VyR2xv
YmFsU2NvcGVPblN0YXJ0KTsKKyAgICAgICAgbV9jb250ZXh0UHJveHktPnN0YXJ0V29ya2VyR2xv
YmFsU2NvcGUobV9zY3JpcHRMb2FkZXItPnVybCgpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnVzZXJBZ2VudChtX3NjcmlwdExvYWRlci0+dXJsKCkpLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0
KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgbV9zaG91bGRCeXBhc3NN
YWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIERvbnRQYXVzZVdvcmtlckdsb2JhbFNjb3Bl
T25TdGFydCk7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0SW1wb3J0
ZWQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3NjcmlwdExvYWRlci0+aWRlbnRpZmllcigp
LCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCkpOwogICAgIH0KICAgICBtX3NjcmlwdExvYWRlciA9
IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAppbmRleCBjZDNkMTExMjIyYzg0MWIyZTA0
ZThmYTk3NmQzOWFlMjA4NWJiOGQ3Li42NDc1NmU5ZmU1YzllYmM0NjYzZTk1YWJjNjM2ZDI5OWNi
MjVjYTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKQEAgLTg2LDYgKzg2LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBSZWZQdHI8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3Njcmlw
dExvYWRlcjsKICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGVQcm94eSogbV9jb250ZXh0UHJveHk7
IC8vIFRoZSBwcm94eSBvdXRsaXZlcyB0aGUgd29ya2VyIHRvIHBlcmZvcm0gdGhyZWFkIHNodXRk
b3duLgogICAgICAgICBPcHRpb25hbDxDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnM+IG1fY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOworICAgICAgICBib29s
IG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5IHsgZmFsc2UgfTsK
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGM2ZmNmMmRkYzYwZjVkNDI2NzNlYjhiMmZl
NmY0ZWRlOWRjM2MyNDEuLjg1NTdhYjgzOGY5NmM3ZjBlMGMyOWU2ZDM4YjIxOWQ1NGEwOTg1N2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC02
MiwxNSArNjIsMTYgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1Xb3JrZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmIHRocmVhZCwgUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQorV29ya2VyR2xvYmFsU2NvcGU6Oldv
cmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
V29ya2VyVGhyZWFkJiB0aHJlYWQsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNl
Y3VyaXR5UG9saWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCiAgICAg
OiBtX3VybCh1cmwpCiAgICAgLCBtX3VzZXJBZ2VudCh1c2VyQWdlbnQpCi0gICAgLCBtX3Njcmlw
dChzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlclNjcmlwdENvbnRyb2xsZXI+KHRoaXMpKQorICAgICwg
bV9zY3JpcHQoc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJTY3JpcHRDb250cm9sbGVyPih0aGlzLCBz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kpKQogICAgICwgbV90aHJl
YWQodGhyZWFkKQogICAgICwgbV9jbG9zaW5nKGZhbHNlKQogICAgICwgbV9ldmVudFF1ZXVlKCp0
aGlzKQogICAgICwgbV90b3BPcmlnaW4odG9wT3JpZ2luKQogeworICAgIHNldENvbnRlbnRTZWN1
cml0eVBvbGljeShzdGQ6Om1ha2VfdW5pcXVlPENvbnRlbnRTZWN1cml0eVBvbGljeT4odGhpcykp
OwogICAgIHNldFNlY3VyaXR5T3JpZ2luUG9saWN5KFNlY3VyaXR5T3JpZ2luUG9saWN5OjpjcmVh
dGUoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpKSk7CiB9CiAKQEAgLTg3LDcgKzg4LDYgQEAg
V29ya2VyR2xvYmFsU2NvcGU6On5Xb3JrZXJHbG9iYWxTY29wZSgpCiAKIHZvaWQgV29ya2VyR2xv
YmFsU2NvcGU6OmFwcGx5Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzKQogewotICAgIHNldENvbnRlbnRTZWN1cml0eVBvbGljeShzdGQ6
Om1ha2VfdW5pcXVlPENvbnRlbnRTZWN1cml0eVBvbGljeT4odGhpcykpOwogICAgIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSgpLT5kaWRSZWNlaXZlSGVhZGVycyhjb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmgKaW5kZXggZDRkYjM1MTQyZmMxMjY0Yjk2NDYzZjRjMDgxMDQ3MDNmZDE3MDM3NS4u
YTVhYWIyMjBlZGI5OWMxZmMzYzU4ZGVkMjJiZDRmNjY2ODMxOWE5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMTMwLDcgKzEzMCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBXb3JrZXJH
bG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhy
ZWFkJiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKTsKKyAgICAgICAgV29y
a2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtl
clRocmVhZCYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pOwogICAgICAgICB2b2lkIGFw
cGx5Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKGNvbnN0IENvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBsb2dF
eGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPElu
c3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNmJkODhjNGIyZDBhODVj
NDdlNDc1NDQwNzNmNzYyODkxZjlmZmU3Mi4uY2RiMTc0NjQwNGYzZGI0YTdkODQ4YTVjYjI0ZWQz
M2RiZGFhZmM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZVByb3h5LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIHZpcnR1YWwgfldvcmtlckdsb2JhbFNjb3BlUHJveHkoKSB7IH0KIAotICAgICAgICB2aXJ0
dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgV29ya2VyVGhyZWFkU3RhcnRNb2Rl
KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0
IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBz
b3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBi
b29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgV29ya2VyVGhy
ZWFkU3RhcnRNb2RlKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZVdvcmtl
ckdsb2JhbFNjb3BlKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDY5OWU5Yjc3ZjdiZjE2NWY5ZTk4MGEwNTYzZTdjNDk5
MzU5Zjc3ZGQuLjgyY2QwYmM5ZWFlY2RjNTRjMjEzODg1ZWNiNTk4OTMzMTQwZjJkNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC03
MiwxMiArNzIsMTIgQEAgV29ya2VyTWVzc2FnaW5nUHJveHk6On5Xb3JrZXJNZXNzYWdpbmdQcm94
eSgpCiAgICAgICAgIHx8IChpczxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkgJiYgY3VycmVudFRocmVhZCgpID09IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3Bl
PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJlYWQoKS50aHJlYWRJRCgpKSk7CiB9CiAK
LXZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3Qg
VVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNv
dXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUg
c3RhcnRNb2RlKQordm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxT
Y29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0
IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBXb3JrZXJUaHJlYWRTdGFydE1v
ZGUgc3RhcnRNb2RlKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8gYmUgcmV2aXNpdGVk
IHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBBU1NFUlQobV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KTsKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxE
b2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgUmVmUHRyPERlZGljYXRl
ZFdvcmtlclRocmVhZD4gdGhyZWFkID0gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUoc2Ny
aXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGRvY3VtZW50LnRvcE9yaWdpbigp
KTsKKyAgICBSZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRo
aXMsICp0aGlzLCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBkb2N1bWVudC50
b3BPcmlnaW4oKSk7CiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQpOwogICAgIHRocmVh
ZC0+c3RhcnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5n
UHJveHkuaAppbmRleCBhYTViODkxYTgyNGZlMzcxZDY4NTgwMDIzMDFlNWIyYTZmMjBhMGY2Li5k
ZDVjMDVjZWIzOWY2OWZlMzcwYjAxMTcwYjkyNDc1NmRkZmUxMWVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC01Miw3ICs1Miw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgV29ya2Vy
R2xvYmFsU2NvcGVQcm94eS4KICAgICAgICAgLy8gKE9ubHkgdXNlIHRoZXNlIG1ldGhvZHMgaW4g
dGhlIHdvcmtlciBvYmplY3QgdGhyZWFkLikKLSAgICAgICAgdmlydHVhbCB2b2lkIHN0YXJ0V29y
a2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycyYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSkgb3ZlcnJpZGU7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0
VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBj
b25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5
cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgV29ya2VyVGhyZWFkU3RhcnRNb2Rl
KSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZVdvcmtlckdsb2JhbFNj
b3BlKCkgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvV29ya2Vy
R2xvYmFsU2NvcGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KSBvdmVycmlkZTsKICAgICAgICAgdmlydHVh
bCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDgxMjIzODA1Y2Q3NzEzNTAwN2JmYzhiZjY5
ZTliOTc1ODhjZmI0OTYuLjI5N2JmN2U2NzY3NmQ3NjQyODYzZjYzN2YxNmEwMjFlMjRkYTk1ZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTcwLDMxICs3MCwz
MyBAQCB1bnNpZ25lZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZENvdW50KCkKIHN0cnVjdCBX
b3JrZXJUaHJlYWRTdGFydHVwRGF0YSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV29ya2Vy
VGhyZWFkU3RhcnR1cERhdGEpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAg
ICBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFkU3Rh
cnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBjb25z
dCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKTsKKyAgICBXb3JrZXJUaHJlYWRTdGFydHVwRGF0
YShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0
cmluZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbik7CiAK
ICAgICBVUkwgbV9zY3JpcHRVUkw7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50OwogICAgIFN0cmlu
ZyBtX3NvdXJjZUNvZGU7CiAgICAgV29ya2VyVGhyZWFkU3RhcnRNb2RlIG1fc3RhcnRNb2RlOwog
ICAgIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyBtX2NvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVyczsKKyAgICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5OwogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV90b3BP
cmlnaW47CiB9OwogCi1Xb3JrZXJUaHJlYWRTdGFydHVwRGF0YTo6V29ya2VyVGhyZWFkU3RhcnR1
cERhdGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25z
dCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKQor
V29ya2VyVGhyZWFkU3RhcnR1cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVS
TCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCiAgICAgOiBtX3NjcmlwdFVSTChzY3Jp
cHRVUkwuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3VzZXJBZ2VudCh1c2VyQWdlbnQuaXNvbGF0
ZWRDb3B5KCkpCiAgICAgLCBtX3NvdXJjZUNvZGUoc291cmNlQ29kZS5pc29sYXRlZENvcHkoKSkK
ICAgICAsIG1fc3RhcnRNb2RlKHN0YXJ0TW9kZSkKICAgICAsIG1fY29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzKGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5p
c29sYXRlZENvcHkoKSkKKyAgICAsIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5KHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSkKICAg
ICAsIG1fdG9wT3JpZ2luKHRvcE9yaWdpbiA/ICZ0b3BPcmlnaW4tPmlzb2xhdGVkQ29weSgpLmdl
dCgpIDogbnVsbHB0cikKIHsKIH0KIAotV29ya2VyVGhyZWFkOjpXb3JrZXJUaHJlYWQoY29uc3Qg
VVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNv
dXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVw
b3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUg
c3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgY29uc3QgU2VjdXJpdHlPcmlnaW4q
IHRvcE9yaWdpbikKK1dvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKGNvbnN0IFVSTCYgc2NyaXB0
VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBX
b3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9ydGluZ1Byb3h5
JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwg
Y29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKQogICAgIDog
bV90aHJlYWRJRCgwKQogICAgICwgbV93b3JrZXJMb2FkZXJQcm94eSh3b3JrZXJMb2FkZXJQcm94
eSkKICAgICAsIG1fd29ya2VyUmVwb3J0aW5nUHJveHkod29ya2VyUmVwb3J0aW5nUHJveHkpCi0g
ICAgLCBtX3N0YXJ0dXBEYXRhKHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyVGhyZWFkU3RhcnR1cERh
dGE+KHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCBzdGFydE1vZGUsIGNvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgdG9wT3JpZ2luKSkKKyAgICAsIG1fc3RhcnR1
cERhdGEoc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJUaHJlYWRTdGFydHVwRGF0YT4oc2NyaXB0VVJM
LCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksIHRvcE9yaWdpbikpCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdB
Q1lfTk9USUZJQ0FUSU9OUykKICAgICAsIG1fbm90aWZpY2F0aW9uQ2xpZW50KDApCiAjZW5kaWYK
QEAgLTE0NCw3ICsxNDYsNyBAQCB2b2lkIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKCkKIAog
ICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7Ci0g
ICAgICAgIG1fd29ya2VyR2xvYmFsU2NvcGUgPSBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShtX3N0
YXJ0dXBEYXRhLT5tX3NjcmlwdFVSTCwgbV9zdGFydHVwRGF0YS0+bV91c2VyQWdlbnQsIG1fc3Rh
cnR1cERhdGEtPm1fY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBtX3N0YXJ0
dXBEYXRhLT5tX3RvcE9yaWdpbi5yZWxlYXNlKCkpOworICAgICAgICBtX3dvcmtlckdsb2JhbFNj
b3BlID0gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUobV9zdGFydHVwRGF0YS0+bV9zY3JpcHRVUkws
IG1fc3RhcnR1cERhdGEtPm1fdXNlckFnZW50LCBtX3N0YXJ0dXBEYXRhLT5tX2NvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgbV9zdGFydHVwRGF0YS0+bV9zaG91bGRCeXBhc3NN
YWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fc3RhcnR1cERhdGEtPm1fdG9wT3JpZ2lu
LnJlbGVhc2UoKSk7CiAKICAgICAgICAgaWYgKG1fcnVuTG9vcC50ZXJtaW5hdGVkKCkpIHsKICAg
ICAgICAgICAgIC8vIFRoZSB3b3JrZXIgd2FzIHRlcm1pbmF0ZWQgYmVmb3JlIHRoZSB0aHJlYWQg
aGFkIGEgY2hhbmNlIHRvIHJ1bi4gU2luY2UgdGhlIGNvbnRleHQgZGlkbid0IGV4aXN0IHlldCwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCmluZGV4IGJiNzk1ODJmNjgzYzI1ZGNk
YjdmMzQ5ZWYyMDIzYTliNWEzZmQ4YmQuLjE2YzhkYjdiNjk2MGNiZjBlYTkyOWU0MzFhZjMzOGM4
M2ViZDhkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAtNjgsMTAg
KzY4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAgcHJvdGVjdGVkOgot
ICAgICAgICBXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBv
cnRpbmdQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbik7
CisgICAgICAgIFdvcmtlclRocmVhZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJl
cG9ydGluZ1Byb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbik7CiAKICAg
ICAgICAgLy8gRmFjdG9yeSBtZXRob2QgZm9yIGNyZWF0aW5nIGEgbmV3IHdvcmtlciBjb250ZXh0
IGZvciB0aGUgdGhyZWFkLgotICAgICAgICB2aXJ0dWFsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4g
Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIFBhc3NSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikgPSAwOworICAgICAgICB2aXJ0dWFsIFJlZjxX
b3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pID0gMDsKIAogICAgICAgICAv
LyBFeGVjdXRlcyB0aGUgZXZlbnQgbG9vcCBmb3IgdGhlIHdvcmtlciB0aHJlYWQuIERlcml2ZWQg
Y2xhc3NlcyBjYW4gb3ZlcnJpZGUgdG8gcGVyZm9ybSBhY3Rpb25zIGJlZm9yZS9hZnRlciBlbnRl
cmluZyB0aGUgZXZlbnQgbG9vcC4KICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bkV2ZW50TG9vcCgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDE2ZjI1ODc3ZjlhNGZiYWMzYTk3OGQzMDAyNDg4YTcwNWFmNWMzMWQuLmYxMDMz
MGJiYTlmZDk1NWM2MzY1ZjgyYzQwY2E3NjRmNDJjZjNhNDggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAxNi0wMS0yOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAg
ICAgQ1NQOiBBbGxvdyBXZWIgV29ya2VycyBpbml0aWF0ZWQgZnJvbSBhbiBpc29sYXRlZCB3b3Js
ZCB0byBieXBhc3MgdGhlIG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzYyMgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjQ0MDAwMjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIHRvIGVuc3VyZSB0aGF0IGEgV2ViIFdvcmtl
ciBpbml0aWF0ZWQgZnJvbSBhbiBpc29sYXRlZCB3b3JsZCBjYW4gYnlwYXNzIHRoZSBtYWluIHdv
cmxkCisgICAgICAgIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LgorCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXIt
YmxvYi1ldmFsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi1ldmFs
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3Js
ZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2IteGhyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1t
YWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi14aHIuaHRtbDogQWRkZWQuCisKIDIwMTYtMDItMDEg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBb
RmV0Y2ggQVBJXSBJbXBsZW1lbnQgRmV0Y2ggQVBJIFJlcXVlc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3Js
ZC1jc3Atd29ya2VyLWJsb2ItZXZhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1i
bG9iLWV2YWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5OGVkNzY4NjYzNzY3OTVmN2RiNTE3
NjZhMjYxMGMzZGJmMWI4ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1i
bG9iLWV2YWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0cyB0aGF0IGlu
IGFuIGlzb2xhdGVkIHdvcmxkIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBvZiB0aGUgcGFy
ZW50IG9yaWdpbiAodGhpcyBwYWdlKSBpcyBieXBhc3NlZCBhbmQgYSBXZWIgV29ya2VyIGlzIGFs
bG93ZWQgdG8gY2FsbCBldmFsKCkuCisKK1BBU1Mgd29ya2VyIGNhbGxlZCBldmFsKCkuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlw
YXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1ibG9iLWV2YWwuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29y
a2VyLWJsb2ItZXZhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MWJlNGY0N2ZlMTJmMWIxNzdhMmFlODVj
MzkzZDRhOTAwYjhmMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1ibG9i
LWV2YWwuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0i
c2NyaXB0LXNyYyAnc2VsZicgJ3Vuc2FmZS1pbmxpbmUnIj4KKzxzY3JpcHQ+CitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5U
aGlzIHRlc3RzIHRoYXQgaW4gYW4gaXNvbGF0ZWQgd29ybGQgdGhlIENvbnRlbnQgU2VjdXJpdHkg
UG9saWN5IG9mIHRoZSBwYXJlbnQgb3JpZ2luICh0aGlzIHBhZ2UpIGlzIGJ5cGFzc2VkIGFuZCBh
IFdlYiBXb3JrZXIgaXMgYWxsb3dlZCB0byBjYWxsIDxjb2RlPmV2YWwoKTwvY29kZT4uPC9wPgor
PHByZSBpZD0icmVzdWx0Ij48L3ByZT4KKzxzY3JpcHQ+Cit3aW5kb3cub25tZXNzYWdlID0gZnVu
Y3Rpb24gKGV2ZW50KQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS50
ZXh0Q29udGVudCA9IGV2ZW50LmRhdGE7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7
CisgICAgdmFyIHNjcmlwdCA9IFsKKyAgICAgICAgJ3RyeSB7JywKKyAgICAgICAgJyAgICBldmFs
KCIxICsgMCIpOycsCisgICAgICAgICcgICAgc2VsZi5wb3N0TWVzc2FnZSgiUEFTUyB3b3JrZXIg
Y2FsbGVkIGV2YWwoKS4iKTsnLAorICAgICAgICAnfSBjYXRjaCAoZXhjZXB0aW9uKSB7JywKKyAg
ICAgICAgJyAgICBzZWxmLnBvc3RNZXNzYWdlKCJGQUlMIHNob3VsZCBub3QgaGF2ZSB0aHJvd24g
YW4gZXhjZXB0aW9uLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7JywKKyAg
ICAgICAgJ30nLAorICAgIF0uam9pbigiXG4iKTsKKworICAgIHZhciB3b3JrZXI7CisgICAgdHJ5
IHsKKyAgICAgICAgd29ya2VyID0gbmV3IFdvcmtlcih3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVS
TChuZXcgQmxvYihbc2NyaXB0XSkpKTsKKyAgICAgICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0
aW9uIChldmVudCkgeyB3aW5kb3cucG9zdE1lc3NhZ2UoZXZlbnQuZGF0YSwgIioiKSB9OworICAg
IH0gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UoIkZBSUwg
c2hvdWxkIG5vdCBoYXZlIHRocm93biBhbiBleGNlcHRpb24gd2hlbiBjcmVhdGluZyB3b3JrZXIu
IFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uICsgIi4iLCAiKiIpOworICAgIH0KK30KKwor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZXZhbHVhdGVTY3JpcHRJbklz
b2xhdGVkV29ybGQoMCwgcnVuVGVzdC50b1N0cmluZygpICsgIjtydW5UZXN0KCk7Iik7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJs
b2IteGhyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNv
bGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2IteGhyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yNWZiMTEwYTI1YTdiYjcxM2MzOGViMGU3YTgwNWMzMWY1ODFhOWFj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29s
YXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi14aHItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0cyB0aGF0IGluIGFuIGlzb2xhdGVkIHdvcmxk
IHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBvZiB0aGUgcGFyZW50IG9yaWdpbiAodGhpcyBw
YWdlKSBpcyBieXBhc3NlZCBhbmQgYSBXZWIgV29ya2VyIGlzIGFsbG93ZWQgdG8gbWFrZSBhbiBY
SFIgcmVxdWVzdC4KKworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi14
aHIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9i
eXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2IteGhyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGEy
NGRlN2U0NjNkMzExNWFjMzdiOWFhMWE5ZTAzNDg0NmFhODBkNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFp
bi13b3JsZC1jc3Atd29ya2VyLWJsb2IteGhyLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1TZWN1
cml0eS1Qb2xpY3kiIGNvbnRlbnQ9InNjcmlwdC1zcmMgJ3NlbGYnICd1bnNhZmUtaW5saW5lJzsg
Y29ubmVjdC1zcmMgJ25vbmUnIj4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQg
aW4gYW4gaXNvbGF0ZWQgd29ybGQgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9mIHRoZSBw
YXJlbnQgb3JpZ2luICh0aGlzIHBhZ2UpIGlzIGJ5cGFzc2VkIGFuZCBhIFdlYiBXb3JrZXIgaXMg
YWxsb3dlZCB0byBtYWtlIGFuIFhIUiByZXF1ZXN0LjwvcD4KKzxwcmUgaWQ9InJlc3VsdCI+PC9w
cmU+Cis8c2NyaXB0Pgord2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldmVudCkKK3sKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikudGV4dENvbnRlbnQgPSBldmVudC5k
YXRhOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHZhciBzY3JpcHQgPSBb
CisgICAgICAgICd2YXIgZXhjZXB0aW9uOycsCisgICAgICAgICd2YXIgeGhyOycsCisgICAgICAg
ICd0cnkgeycsCisgICAgICAgICcgICAgdmFyIGlzQXN5bmNocm9ub3VzID0gZmFsc2U7JywKKyAg
ICAgICAgJyAgICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7JywKKyAgICAgICAgJyAgICB4aHIu
b3BlbigiR0VUIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJj
ZXMvZ2V0LnR4dCIsIGlzQXN5bmNocm9ub3VzKTsnLAorICAgICAgICAnICAgIHhoci5zZW5kKCk7
JywKKyAgICAgICAgJ30gY2F0Y2ggKGUpIHsnLAorICAgICAgICAnICAgIGV4Y2VwdGlvbiA9IGU7
JywKKyAgICAgICAgJ30nLAorICAgICAgICAnaWYgKGV4Y2VwdGlvbiknLAorICAgICAgICAnICAg
IHNlbGYucG9zdE1lc3NhZ2UoIkZBSUwgc2hvdWxkIG5vdCBoYXZlIHRocm93biBhbiBleGNlcHRp
b24uIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uICsgIi4iKTsnLAorICAgICAgICAnZWxz
ZScsCisgICAgICAgICcgICAgc2VsZi5wb3N0TWVzc2FnZSh4aHIucmVzcG9uc2UpOycsCisgICAg
XS5qb2luKCJcbiIpOworCisgICAgdmFyIHdvcmtlcjsKKyAgICB0cnkgeworICAgICAgICB3b3Jr
ZXIgPSBuZXcgV29ya2VyKHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtzY3Jp
cHRdKSkpOworICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2ZW50KSB7IHdp
bmRvdy5wb3N0TWVzc2FnZShldmVudC5kYXRhLCAiKiIpIH07CisgICAgfSBjYXRjaCAoZXhjZXB0
aW9uKSB7CisgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZSgiRkFJTCBzaG91bGQgbm90IGhhdmUg
dGhyb3duIGFuIGV4Y2VwdGlvbiB3aGVuIGNyZWF0aW5nIHdvcmtlci4gVGhyZXcgZXhjZXB0aW9u
ICIgKyBleGNlcHRpb24gKyAiLiIsICIqIik7CisgICAgfQorfQorCitpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgdGVzdFJ1bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgwLCBy
dW5UZXN0LnRvU3RyaW5nKCkgKyAiO3J1blRlc3QoKTsiKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270756</attachid>
            <date>2016-02-05 12:03:57 -0800</date>
            <delta_ts>2016-02-05 12:21:32 -0800</delta_ts>
            <desc>Patch and Layout Tests</desc>
            <filename>bug-153622-20160205120333.patch</filename>
            <type>text/plain</type>
            <size>41048</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2MTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2M3OWM1ZWIwZjk2ODIy
NzkzYWQyOGYyOGYzOTQ4Mzk3NDk4OTlmYi4uNTVkMjk2MWU2ZWY0ZmEzOTdlOTA1MmRjZTFmZDY5
ZDJkMGM0MWNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE2LTAyLTA1ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBDU1A6IEFsbG93IFdlYiBX
b3JrZXJzIGluaXRpYXRlZCBmcm9tIGFuIGlzb2xhdGVkIHdvcmxkIHRvIGJ5cGFzcyB0aGUgbWFp
biB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
NDQwMDAyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBXZWIgV29ya2VycyBpbml0aWF0ZWQgZnJvbSBhbiBpc29s
YXRlZCB3b3JsZCAoc2F5LCBhIFNhZmFyaSBDb250ZW50IFNjcmlwdCBFeHRlbnNpb24pCisgICAg
ICAgIHdvdWxkIGJlIHN1YmplY3QgdG8gdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9mIHRo
ZSBwYWdlLgorCisgICAgICAgIEN1cnJlbnRseSBjb2RlIGluIGFuIGlzb2xhdGVkIHdvcmxkIHRo
YXQgZG9lcyBub3QgZXhlY3V0ZSBpbiBhIFdlYiBXb3JrZXIgaXMgZXhlbXB0IGZyb20gdGhlIENT
UCBvZgorICAgICAgICB0aGUgcGFnZS4gSG93ZXZlciwgY29kZSB0aGF0IHJ1bnMgaW5zaWRlIGEg
V2ViIFdvcmtlciB0aGF0IHdhcyBpbml0aWF0ZWQgZnJvbSBhbiBpc29sYXRlZCB3b3JsZCBpcwor
ICAgICAgICBzdWJqZWN0IHRvIHRoZSBDU1Agb2YgdGhlIHBhZ2UuIEluc3RlYWQsIHN1Y2ggV2Vi
IFdvcmtlciBjb2RlIHNob3VsZCBhbHNvIGJlIGV4ZW1wdCBmcm9tIHRoZSBDU1Agb2YKKyAgICAg
ICAgdGhlIHBhZ2UuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0
ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3At
d29ya2VyLWJsb2ItZXZhbC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5
L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1ibG9iLXhoci5odG1s
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6OldvcmtlclNjcmlwdENvbnRy
b2xsZXIpOiBNb2RpZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcmd1bWVudCBhbmQKKyAgICAgICAg
YXMgdG8gd2hldGhlciB0byBieXBhc3MgdGhlIG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQ
b2xpY3kgYW5kIHN0b3JlIGl0IGluIGEgbWVtYmVyIGZpZWxkLgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNj
cmlwdENvbnRyb2xsZXI6OnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OnNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSk6IE1vZGlmaWVkIHRvIGFzayB0aGUKKyAgICAg
ICAgc2NyaXB0IGNvbnRyb2xsZXIgZm9yIHRoZSB3b3JrZXIgd2hldGhlciB0byBieXBhc3MgdGhl
IG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuCisgICAgICAgICogd29ya2Vycy9B
YnN0cmFjdFdvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBYnN0cmFjdFdvcmtlcjo6cmVz
b2x2ZVVSTCk6IEJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBp
ZiBhcHBsaWNhYmxlLgorICAgICAgICBBZGRlZCBGSVhNRSBjb21tZW50IHRvIGVuZm9yY2UgdGhl
IGNoaWxkLXNyYyBkaXJlY3RpdmUgb2YgdGhlIGRvY3VtZW50J3MgQ1NQIChhcyBvcHBvc2VkIHRv
IHRoZSBzY3JpcHQtc3JjCisgICAgICAgIGRpcmVjdGl2ZSkgb24gdGhlIHdvcmtlcidzIHNjcmlw
dCBVUkwuIEFsc28sIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNlY3VyaXR5UG9s
aWN5KCkgc2hvdWxkCisgICAgICAgIGFsd2F5cyBiZSBub24tbnVsbCBqdXN0IGFzIHdlIGV4cGVj
dCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCkgdG8gYmUgbm9uLW51
bGwuIEFzc2VydAorICAgICAgICB0aGlzIGludmFyaWFudCB0byBjYXRjaCBjYXNlcyB3aGVyZSBh
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgaXMgbm90IHByb3Blcmx5IGluaXRpYWxpemVkLgorICAg
ICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSk6IE1vZGlmaWVkIHRv
IHRha2UgYm9vbGVhbiBhcmd1bWVudCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3kKKyAgICAgICAgYXMgdG8gd2hldGhlciB0byBieXBhc3MgdGhlIG1haW4gd29ybGQg
Q29udGVudCBTZWN1cml0eSBQb2xpY3kgYW5kIG9ubHkgYXBwbHkgdGhlIENvbnRlbnQgU2VjdXJp
dHkKKyAgICAgICAgUG9saWN5IGhlYWRlcnMgd2hlbiBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3kgaXMgZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUpOiBQYXNzIHRocm91
Z2ggYSBib29sZWFuIGFyZ3VtZW50IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeQorICAgICAgICBhcyB0byB3aGV0aGVyIHRvIGJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBD
b250ZW50IFNlY3VyaXR5IFBvbGljeS4KKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVkaWNhdGVkV29ya2VyVGhyZWFkOjpEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlclRo
cmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUpOiBEaXR0by4KKyAgICAgICAgKiB3b3JrZXJz
L0RlZGljYXRlZFdvcmtlclRocmVhZC5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6Y3JlYXRlKTogU3RvcmUgd2hldGhlciB3ZSBzaG91
bGQgYnlwYXNzIHRoZSBtYWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IHNvCisgICAg
ICAgIHRoYXQgd2UgY2FuIHBhc3MgaXQgdG8gV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29y
a2VyR2xvYmFsU2NvcGUoKSBpbiBXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkuCisgICAgICAgIFdl
IG5lZWQgdG8gc3RvcmUgdGhpcyBkZWNpc2lvbiBoZXJlIGFzIG9wcG9zZWQgdG8gZGV0ZXJtaW5p
bmcgaXQgYXQgYW55IGxhdGVyIHRpbWUgKHNheSwgaW4gV29ya2VyOjpub3RpZnlGaW5pc2hlZCgp
KQorICAgICAgICBiZWNhdXNlIGl0IGlzIGRlcGVuZGVudCBvbiB0aGUgY3VycmVudCBKYXZhU2Ny
aXB0IHByb2dyYW0gc3RhY2sgYXQgdGhlIHRpbWUgdGhpcyBmdW5jdGlvbiBpcyBpbnZva2VkLgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6IFBhc3Mgd2hldGhlciB0
byBieXBhc3MgdGhlIG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuCisgICAgICAg
ICogd29ya2Vycy9Xb3JrZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxT
Y29wZSk6IFBhc3MgdGhyb3VnaCBhIGJvb2xlYW4gYXJndW1lbnQgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5CisgICAgICAgIGFzIHRvIHdoZXRoZXIgdG8gYnlwYXNz
IHRoZSBtYWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LiBBbHNvLCBhbHdheXMgaW5z
dGFudGlhdGUgYSBDb250ZW50IFNlY3VyaXR5CisgICAgICAgIFBvbGljeSBvYmplY3QgYXMgb3Vy
IGN1cnJlbnQgY29kZSBhc3N1bWVzIHRoYXQgb25lIGlzIGFsd2F5cyBjcmVhdGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmFwcGx5Q29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzKTogTW92ZWQgaW5zdGFudGlhdGVkIG9mIHRoZSBDb250ZW50U2VjdXJp
dHlQb2xpY3kgb2JqZWN0CisgICAgICAgIGZyb20gaGVyZSB0byB0aGUgY29uc3RydWN0b3IuCisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGVQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2Fn
aW5nUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnN0
YXJ0V29ya2VyR2xvYmFsU2NvcGUpOiBQYXNzIHRocm91Z2ggYSBib29sZWFuIGFyZ3VtZW50IHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeQorICAgICAgICBhcyB0byB3
aGV0aGVyIHRvIGJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4K
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkU3Rh
cnR1cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKTogTW9kaWZpZWQgdG8gdGFrZSBhIGJv
b2xlYW4gYXJndW1lbnQgYW5kCisgICAgICAgIGFzIHRvIHdoZXRoZXIgdG8gYnlwYXNzIHRoZSBt
YWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGFuZCBzdG9yZSBpdCBpbiBhIG1lbWJl
ciBmaWVsZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKTog
UGFzcyB0aHJvdWdoIGEgYm9vbGVhbiBhcmd1bWVudCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3kKKyAgICAgICAgYXMgdG8gd2hldGhlciB0byBieXBhc3MgdGhlIG1h
aW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuCisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJUaHJlYWQ6OndvcmtlclRocmVhZCk6IERpdHRvLiAgCisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuaDoKKwogMjAxNi0wMi0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gU2Nyb2xsYmFycyBpbmNvcnJlY3RseSByZW5k
ZXJlZCB3aXRoIG9sZGVyIHZlcnNpb25zIG9mIEdUSysKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggMDlkMTc4YmQx
ZjNlMjMzNjg5ODU1OTg4MmQ3MDAzNmZmMTM4NGY3Yy4uYWU2MjY1NzliMWFlMjM1YjhhM2ZiZjBm
MDFlNDQyNDQ2N2ZkN2FkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTQ5LDExICs0OSwxMiBAQCB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdvcmtlclNjcmlwdENvbnRy
b2xsZXI6OldvcmtlclNjcmlwdENvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckds
b2JhbFNjb3BlKQorV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6V29ya2VyU2NyaXB0Q29udHJvbGxl
cihXb3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFsU2NvcGUsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KQogICAgIDogbV92bShWTTo6Y3JlYXRlKCkp
CiAgICAgLCBtX3dvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKQogICAgICwgbV93
b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIoKm1fdm0pCiAgICAgLCBtX2V4ZWN1dGlvbkZvcmJpZGRl
bihmYWxzZSkKKyAgICAsIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5KHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSkKIHsKICAgICBt
X3ZtLT5lbnN1cmVXYXRjaGRvZygpOwogICAgIGluaXROb3JtYWxXb3JsZENsaWVudERhdGEobV92
bS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3Jp
cHRDb250cm9sbGVyLmgKaW5kZXggYjBiNmMwZmMyZTg1ODY1NzNhYjQ4MmE4MGUxYTJkNGNiZTI3
NTI4My4uYzI4Y2ZjMzU0Y2IxYTM3MmFiYjY1NjgzN2M4Y2RmZTg3NzBiYTEyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaApA
QCAtNTEsNyArNTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgV29ya2VyU2Ny
aXB0Q29udHJvbGxlciB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlclNjcmlw
dENvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICAgICAg
V29ya2VyU2NyaXB0Q29udHJvbGxlcihXb3JrZXJHbG9iYWxTY29wZSosIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KTsKICAgICAgICAgfldvcmtlclNjcmlw
dENvbnRyb2xsZXIoKTsKIAogICAgICAgICBKU1dvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9i
YWxTY29wZVdyYXBwZXIoKQpAQCAtODUsNiArODUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZvaWQgYXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOwogICAgICAgICB2b2lk
IGRldGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsKIAorICAgICAgICBib29sIHNob3VsZEJ5
cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OyB9CisKICAgICBwcml2YXRl
OgogICAgICAgICB2b2lkIGluaXRTY3JpcHRJZk5lZWRlZCgpCiAgICAgICAgIHsKQEAgLTk3LDYg
Kzk5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXb3JrZXJHbG9iYWxTY29wZSog
bV93b3JrZXJHbG9iYWxTY29wZTsKICAgICAgICAgSlNDOjpTdHJvbmc8SlNXb3JrZXJHbG9iYWxT
Y29wZT4gbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXI7CiAgICAgICAgIGJvb2wgbV9leGVjdXRp
b25Gb3JiaWRkZW47CisgICAgICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50
U2VjdXJpdHlQb2xpY3k7CiAgICAgICAgIGJvb2wgbV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uIHsg
ZmFsc2UgfTsKICAgICAgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRl
eDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5jcHAKaW5kZXggYjYwMTJkMzVkYzVmYjJhYTJlYjdhMDY4ZTFiZmM5MmU3MmEwNjk4
Mi4uM2ZhODU5YzZkNjNhYTNjYmE3MDNjODJjMjI3MTNmOGEzNWUxZjUzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC00MCw2
ICs0MCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIgor
I2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3Bl
Y3RvclZhbHVlcy5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNp
bmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgpAQCAtMTc4Miw3ICsx
NzgzLDEwIEBAIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjpzaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3koU2NyaXB0RXhlCiAgICAgICAgIGF1dG8mIGRvY3VtZW50
ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOwogICAgICAgICByZXR1cm4gZG9jdW1lbnQu
ZnJhbWUoKSAmJiBkb2N1bWVudC5mcmFtZSgpLT5zY3JpcHQoKS5zaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3koKTsKICAgICB9Ci0gICAgCisKKyAgICBpZiAoaXM8V29y
a2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8V29ya2Vy
R2xvYmFsU2NvcGU+KGNvbnRleHQpLnNjcmlwdCgpLT5zaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3koKTsKKwogICAgIHJldHVybiBmYWxzZTsKIH0KICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5jcHAKaW5kZXggODAxYzhlZjU3ZDJhNDRm
ZTU2MDFlMGI5NjE5ODYyYmE5YjE1YzlhMS4uNzAwNGU4MGEyZjlhN2RiODQ3OTg3MTg2YzljYTFm
YWRjZjE5MWNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdv
cmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5jcHAK
QEAgLTYyLDcgKzYyLDExIEBAIFVSTCBBYnN0cmFjdFdvcmtlcjo6cmVzb2x2ZVVSTChjb25zdCBT
dHJpbmcmIHVybCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybiBVUkwoKTsKICAg
ICB9CiAKLSAgICBpZiAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQ
b2xpY3koKSAmJiAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xp
Y3koKS0+YWxsb3dTY3JpcHRGcm9tU291cmNlKHNjcmlwdFVSTCkpIHsKKyAgICAvLyBGSVhNRTog
RW5mb3JjZSB0aGUgY2hpbGQtc3JjIGRpcmVjdGl2ZSBpbnN0ZWFkIG9mIHNjcmlwdC1zcmMgcGVy
IDxodHRwczovL3czYy5naXRodWIuaW8vd2ViYXBwc2VjLWNzcC8yLyNkaXJlY3RpdmUtY2hpbGQt
c3JjLXdvcmtlcnM+LgorICAgIC8vIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1MzU2Mj4uCisgICAgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50
U2VjdXJpdHlQb2xpY3kgPSBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAg
ICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3ko
KSk7CisgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRlbnRTZWN1cml0eVBv
bGljeSgpLT5hbGxvd1NjcmlwdEZyb21Tb3VyY2Uoc2NyaXB0VVJMLCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kpKSB7CiAgICAgICAgIGVjID0gU0VDVVJJVFlfRVJS
OwogICAgICAgICByZXR1cm4gVVJMKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCA5MWM3ZjIzMTFi
ODJmMDUyYjZhNDhmZGE3MGRiNDE0ZGRlMmM1NjI0Li4zMGZkZTFjNjE1YWRlNTI4ZTMwZTMyNTRh
MTFlNmE0YmFlOGQ2ODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNDAsMTUgKzQwLDE2IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGNvbnN0IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCitSZWY8RGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVh
dGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQmIHRocmVhZCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiB0b3BPcmlnaW4pCiB7Ci0gICAgUmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBj
b250ZXh0ID0gYWRvcHRSZWYoKm5ldyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSh1cmwsIHVz
ZXJBZ2VudCwgdGhyZWFkLCB0b3BPcmlnaW4pKTsKLSAgICBjb250ZXh0LT5hcHBseUNvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyhjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMpOworICAgIFJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gY29udGV4dCA9
IGFkb3B0UmVmKCpuZXcgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUodXJsLCB1c2VyQWdlbnQs
IHRocmVhZCwgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0b3BP
cmlnaW4pKTsKKyAgICBpZiAoIXNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSkKKyAgICAgICAgY29udGV4dC0+YXBwbHlDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMoY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKTsKICAgICByZXR1
cm4gY29udGV4dDsKIH0KIAotRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OkRlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
RGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHRvcE9yaWdpbikKLSAgICA6IFdvcmtlckdsb2JhbFNjb3BlKHVybCwgdXNlckFnZW50LCB0aHJl
YWQsIHRvcE9yaWdpbikKK0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERl
ZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2lu
KQorICAgIDogV29ya2VyR2xvYmFsU2NvcGUodXJsLCB1c2VyQWdlbnQsIHRocmVhZCwgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0b3BPcmlnaW4pCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuaAppbmRleCAyOWI3MjJhMGQ3NTMyZjdhNTMwN2Y3ZDA2ODNmNDRkZDEzY2NjZjkxLi4wMzE1
NWYzOTI4MWZmNWQxYjNhZDE1NDU3YmQ3MmRhOTNmMzc5NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC00Miw3ICs0
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZSA6IHB1YmxpYyBXb3JrZXJHbG9iYWxTY29wZSB7CiAgICAgcHVibGljOgogICAgICAg
ICB0eXBlZGVmIFdvcmtlckdsb2JhbFNjb3BlIEJhc2U7Ci0gICAgICAgIHN0YXRpYyBSZWY8RGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiwgY29uc3QgQ29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3Jp
Z2luKTsKKyAgICAgICAgc3RhdGljIFJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gY3Jl
YXRlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJU
aHJlYWQmLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29s
IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKTsKICAgICAgICAgdmlydHVhbCB+RGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGUoKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KQEAgLTYwLDcg
KzYwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQmIHRocmVhZCgpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdv
cmtlclRocmVhZCYsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbik7CisgICAg
ICAgIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9w
T3JpZ2luKTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKaW5kZXggMzYwNGJmODY0
NTVhZTM2NjlkZTBhYTcxODg1ZTg0YTE5NzgwZDExMS4uMDM5NGYwZDc4NzM2NDA2ZWU3ZTgxMTc0
ZDgzMjI4NWU4ZTBjMzQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNh
dGVkV29ya2VyVGhyZWFkLmNwcApAQCAtMzgsOCArMzgsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLURlZGljYXRlZFdvcmtlclRocmVhZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VD
b2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlck9iamVjdFBy
b3h5JiB3b3JrZXJPYmplY3RQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwg
Y29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4p
Ci0gICAgOiBXb3JrZXJUaHJlYWQodXJsLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxv
YWRlclByb3h5LCB3b3JrZXJPYmplY3RQcm94eSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMsIHRvcE9yaWdpbikKK0RlZGljYXRlZFdvcmtlclRocmVhZDo6
RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2Vy
TG9hZGVyUHJveHksIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSwgV29ya2Vy
VGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0
eU9yaWdpbiogdG9wT3JpZ2luKQorICAgIDogV29ya2VyVGhyZWFkKHVybCwgdXNlckFnZW50LCBz
b3VyY2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyT2JqZWN0UHJveHksIHN0YXJ0TW9k
ZSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIHRvcE9yaWdpbikKICAgICAsIG1fd29ya2VyT2Jq
ZWN0UHJveHkod29ya2VyT2JqZWN0UHJveHkpCiB7CiB9CkBAIC00OCw5ICs0OCw5IEBAIERlZGlj
YXRlZFdvcmtlclRocmVhZDo6fkRlZGljYXRlZFdvcmtlclRocmVhZCgpCiB7CiB9CiAKLVJlZjxX
b3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9i
YWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCitS
ZWY8V29ya2VyR2xvYmFsU2NvcGU+IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlV29ya2Vy
R2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25z
dCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBv
bGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2Vj
dXJpdHlQb2xpY3ksIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKIHsKLSAg
ICByZXR1cm4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSh1cmwsIHVzZXJBZ2Vu
dCwgKnRoaXMsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgdG9wT3JpZ2lu
KTsKKyAgICByZXR1cm4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSh1cmwsIHVz
ZXJBZ2VudCwgKnRoaXMsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0b3BPcmlnaW4pOwogfQog
CiB2b2lkIERlZGljYXRlZFdvcmtlclRocmVhZDo6cnVuRXZlbnRMb29wKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCmluZGV4IDg5ZDg4ZjIwMzYy
ODhkMTM4Yzg4NmEzYTcxMDdhMzM4MGJkZjY1N2EuLjlkN2VmMGY0OTQ0NmZhZmFkOTNiZTI2Y2Vj
ZTNkNzVlM2VlZTZkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNh
dGVkV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRX
b3JrZXJUaHJlYWQuaApAQCAtNDgsMTEgKzQ4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5KCkgY29uc3QgeyByZXR1
cm4gbV93b3JrZXJPYmplY3RQcm94eTsgfQogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0
dWFsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3Qg
VVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycyYsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikg
b3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVX
b3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29u
c3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IHRvcE9yaWdpbikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBydW5FdmVudExv
b3AoKSBvdmVycmlkZTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIERlZGljYXRlZFdvcmtlclRo
cmVhZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBz
b3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlck9iamVjdFByb3h5JiwgV29ya2Vy
VGhyZWFkU3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMmLCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKTsKKyAgICAgICAgRGVkaWNhdGVk
V29ya2VyVGhyZWFkKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBT
dHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyT2JqZWN0UHJveHkm
LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKTsKIAogICAgICAgICBXb3JrZXJP
YmplY3RQcm94eSYgbV93b3JrZXJPYmplY3RQcm94eTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXIuY3BwCmluZGV4IDkxMGRkOGJlODdmYjYzZGRiYjA3MDRjNzdhNzg4MmRjZDc4YzJhNmUu
LmZhOGRkMmIzNzA2NDQ1MDRhNTQ5ZTlhNjg3NTMxNzFlNjlkOTViMDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlci5jcHAKQEAgLTg3LDYgKzg3LDggQEAgUmVmUHRyPFdvcmtlcj4gV29ya2VyOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB1cmwK
ICAgICBpZiAoc2NyaXB0VVJMLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
KyAgICB3b3JrZXItPm1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
ID0gQ29udGVudFNlY3VyaXR5UG9saWN5OjpzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2Vj
dXJpdHlQb2xpY3koY29udGV4dCk7CisKICAgICAvLyBUaGUgd29ya2VyIGNvbnRleHQgZG9lcyBu
b3QgZXhpc3Qgd2hpbGUgbG9hZGluZywgc28gd2UgbXVzdCBlbnN1cmUgdGhhdCB0aGUgd29ya2Vy
IG9iamVjdCBpcyBub3QgY29sbGVjdGVkLCBub3IgYXJlIGl0cyBldmVudCBsaXN0ZW5lcnMuCiAg
ICAgd29ya2VyLT5zZXRQZW5kaW5nQWN0aXZpdHkod29ya2VyLnB0cigpKTsKIApAQCAtMTY2LDcg
KzE2OCw3IEBAIHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgZmFsc2UsIHRydWUp
KTsKICAgICBlbHNlIHsKICAgICAgICAgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgPSBtX2NvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyA/IG1fY29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzLnZhbHVlKCkgOiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRl
bnRTZWN1cml0eVBvbGljeSgpLT5yZXNwb25zZUhlYWRlcnMoKTsKLSAgICAgICAgbV9jb250ZXh0
UHJveHktPnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUobV9zY3JpcHRMb2FkZXItPnVybCgpLCBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPnVzZXJBZ2VudChtX3NjcmlwdExvYWRlci0+dXJsKCkpLCBt
X3NjcmlwdExvYWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycywgRG9udFBhdXNlV29ya2VyR2xvYmFsU2NvcGVPblN0YXJ0KTsKKyAgICAgICAgbV9jb250
ZXh0UHJveHktPnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUobV9zY3JpcHRMb2FkZXItPnVybCgpLCBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVzZXJBZ2VudChtX3NjcmlwdExvYWRlci0+dXJsKCkp
LCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycywgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIERv
bnRQYXVzZVdvcmtlckdsb2JhbFNjb3BlT25TdGFydCk7CiAgICAgICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6c2NyaXB0SW1wb3J0ZWQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3Nj
cmlwdExvYWRlci0+aWRlbnRpZmllcigpLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCkpOwogICAg
IH0KICAgICBtX3NjcmlwdExvYWRlciA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaApp
bmRleCBjZDNkMTExMjIyYzg0MWIyZTA0ZThmYTk3NmQzOWFlMjA4NWJiOGQ3Li42NDc1NmU5ZmU1
YzllYmM0NjYzZTk1YWJjNjM2ZDI5OWNiMjVjYTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgK
QEAgLTg2LDYgKzg2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBSZWZQdHI8V29y
a2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKICAgICAgICAgV29ya2VyR2xvYmFsU2Nv
cGVQcm94eSogbV9jb250ZXh0UHJveHk7IC8vIFRoZSBwcm94eSBvdXRsaXZlcyB0aGUgd29ya2Vy
IHRvIHBlcmZvcm0gdGhyZWFkIHNodXRkb3duLgogICAgICAgICBPcHRpb25hbDxDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnM+IG1fY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzOworICAgICAgICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNl
Y3VyaXR5UG9saWN5IHsgZmFsc2UgfTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IDY3
YzZkZmUwNmFhNzNiZGEzODEzNjYzOWMzZDlhOTI2N2JiNDY5ZDkuLjlmMGU1MmEwYjQ3MDk1YjJh
YjY1NzdiMTc0NmNkNGNjYjdiYzVmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuY3BwCkBAIC02MiwxMCArNjIsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIElu
c3BlY3RvcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Xb3JrZXJHbG9iYWxTY29wZTo6V29y
a2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBX
b3JrZXJUaHJlYWQmIHRocmVhZCwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2lu
KQorV29ya2VyR2xvYmFsU2NvcGU6Oldvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkJiB0aHJlYWQsIGJvb2wgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiB0b3BPcmlnaW4pCiAgICAgOiBtX3VybCh1cmwpCiAgICAgLCBtX3VzZXJBZ2VudCh1
c2VyQWdlbnQpCi0gICAgLCBtX3NjcmlwdChzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlclNjcmlwdENv
bnRyb2xsZXI+KHRoaXMpKQorICAgICwgbV9zY3JpcHQoc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJT
Y3JpcHRDb250cm9sbGVyPih0aGlzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3kpKQogICAgICwgbV90aHJlYWQodGhyZWFkKQogICAgICwgbV9jbG9zaW5nKGZhbHNl
KQogICAgICwgbV9ldmVudFF1ZXVlKCp0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5oCmluZGV4IGQ0ZGIzNTE0MmZjMTI2NGI5NjQ2M2Y0YzA4MTA0NzAzZmQx
NzAzNzUuLmE1YWFiMjIwZWRiOTljMWZjM2M1OGRlZDIyYmQ0ZjY2NjgzMTlhOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTEzMCw3ICsxMzAsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAg
V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdv
cmtlclRocmVhZCYsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbik7CisgICAg
ICAgIFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKTsKICAgICAgICAg
dm9pZCBhcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyhjb25zdCBDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmKTsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIFJl
ZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCmluZGV4IDZiZDg4YzRi
MmQwYTg1YzQ3ZTQ3NTQ0MDczZjc2Mjg5MWY5ZmZlNzIuLmNkYjE3NDY0MDRmM2RiNGE3ZDg0OGE1
Y2IyNGVkMzNkYmRhYWZjNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGVQcm94eS5oCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgICAgICB2aXJ0dWFsIH5Xb3JrZXJHbG9iYWxTY29wZVByb3h5KCkgeyB9CiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRV
UkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIFdvcmtlclRocmVhZFN0
YXJ0TW9kZSkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29w
ZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0
cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFdv
cmtlclRocmVhZFN0YXJ0TW9kZSkgPSAwOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5h
dGVXb3JrZXJHbG9iYWxTY29wZSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCA2OTllOWI3N2Y3YmYxNjVmOWU5ODBhMDU2
M2U3YzQ5OTM1OWY3N2RkLi44MmNkMGJjOWVhZWNkYzU0YzIxMzg4NWVjYjU5ODkzMzE0MGYyZDYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cApAQCAtNzIsMTIgKzcyLDEyIEBAIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp+V29ya2VyTWVzc2Fn
aW5nUHJveHkoKQogICAgICAgICB8fCAoaXM8V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpICYmIGN1cnJlbnRUaHJlYWQoKSA9PSBkb3duY2FzdDxXb3JrZXJHbG9i
YWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkudGhyZWFkKCkudGhyZWFkSUQoKSkp
OwogfQogCi12b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3Bl
KGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgV29ya2VyVGhyZWFkU3Rh
cnRNb2RlIHN0YXJ0TW9kZSkKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2Vy
R2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29s
IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgV29ya2VyVGhyZWFk
U3RhcnRNb2RlIHN0YXJ0TW9kZSkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkIHRvIGJlIHJl
dmlzaXRlZCB3aGVuIHdlIHN1cHBvcnQgbmVzdGVkIHdvcmtlciBvbmUgZGF5CiAgICAgQVNTRVJU
KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93
bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgIFJlZlB0cjxE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3Jl
YXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMsIHN0YXJ0
TW9kZSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBkb2N1bWVudC50b3BP
cmlnaW4oKSk7CisgICAgUmVmUHRyPERlZGljYXRlZFdvcmtlclRocmVhZD4gdGhyZWFkID0gRGVk
aWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNv
ZGUsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgZG9j
dW1lbnQudG9wT3JpZ2luKCkpOwogICAgIHdvcmtlclRocmVhZENyZWF0ZWQodGhyZWFkKTsKICAg
ICB0aHJlYWQtPnN0YXJ0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmgKaW5kZXggYWE1Yjg5MWE4MjRmZTM3MWQ2ODU4MDAyMzAxZTViMmE2ZjIw
YTBmNi4uZGQ1YzA1Y2ViMzlmNjlmZTM3MGIwMTE3MGI5MjQ3NTZkZGZlMTFlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaApAQCAtNTIsNyArNTIs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9m
IFdvcmtlckdsb2JhbFNjb3BlUHJveHkuCiAgICAgICAgIC8vIChPbmx5IHVzZSB0aGVzZSBtZXRo
b2RzIGluIHRoZSB3b3JrZXIgb2JqZWN0IHRocmVhZC4pCi0gICAgICAgIHZpcnR1YWwgdm9pZCBz
dGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUpIG92ZXJyaWRl
OworICAgICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwm
IHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNl
Q29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFdvcmtlclRocmVhZFN0
YXJ0TW9kZSkgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJH
bG9iYWxTY29wZSgpIG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VU
b1dvcmtlckdsb2JhbFNjb3BlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5Pikgb3ZlcnJpZGU7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA4MTIyMzgwNWNkNzcxMzUwMDdi
ZmM4YmY2OWU5Yjk3NTg4Y2ZiNDk2Li4yOTdiZjdlNjc2NzZkNzY0Mjg2M2Y2MzdmMTZhMDIxZTI0
ZGE5NWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC03MCwz
MSArNzAsMzMgQEAgdW5zaWduZWQgV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgpCiBz
dHJ1Y3QgV29ya2VyVGhyZWFkU3RhcnR1cERhdGEgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgV29ya2VyVGhyZWFkU3RhcnR1cERhdGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlclRo
cmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
JiwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbik7CisgICAgV29ya2VyVGhyZWFkU3Rh
cnR1cERhdGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBj
b25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmln
aW4pOwogCiAgICAgVVJMIG1fc2NyaXB0VVJMOwogICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKICAg
ICBTdHJpbmcgbV9zb3VyY2VDb2RlOwogICAgIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBtX3N0YXJ0
TW9kZTsKICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgbV9jb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnM7CisgICAgYm9vbCBtX3Nob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeTsKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IG1fdG9wT3JpZ2luOwogfTsKIAotV29ya2VyVGhyZWFkU3RhcnR1cERhdGE6OldvcmtlclRocmVh
ZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRN
b2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9y
aWdpbikKK1dvcmtlclRocmVhZFN0YXJ0dXBEYXRhOjpXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShj
b25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmlu
ZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKQogICAgIDogbV9zY3JpcHRV
Ukwoc2NyaXB0VVJMLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50
Lmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9zb3VyY2VDb2RlKHNvdXJjZUNvZGUuaXNvbGF0ZWRD
b3B5KCkpCiAgICAgLCBtX3N0YXJ0TW9kZShzdGFydE1vZGUpCiAgICAgLCBtX2NvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyhjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMuaXNvbGF0ZWRDb3B5KCkpCisgICAgLCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeShzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3kpCiAgICAgLCBtX3RvcE9yaWdpbih0b3BPcmlnaW4gPyAmdG9wT3JpZ2luLT5pc29sYXRlZENv
cHkoKS5nZXQoKSA6IG51bGxwdHIpCiB7CiB9CiAKLVdvcmtlclRocmVhZDo6V29ya2VyVGhyZWFk
KGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdv
cmtlclJlcG9ydGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFkU3Rh
cnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luKiB0b3BPcmlnaW4pCitXb3JrZXJUaHJlYWQ6OldvcmtlclRocmVhZChjb25zdCBVUkwm
IHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNl
Q29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRp
bmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFy
dE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikK
ICAgICA6IG1fdGhyZWFkSUQoMCkKICAgICAsIG1fd29ya2VyTG9hZGVyUHJveHkod29ya2VyTG9h
ZGVyUHJveHkpCiAgICAgLCBtX3dvcmtlclJlcG9ydGluZ1Byb3h5KHdvcmtlclJlcG9ydGluZ1By
b3h5KQotICAgICwgbV9zdGFydHVwRGF0YShzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlclRocmVhZFN0
YXJ0dXBEYXRhPihzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgc3RhcnRNb2RlLCBj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHRvcE9yaWdpbikpCisgICAgLCBt
X3N0YXJ0dXBEYXRhKHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyVGhyZWFkU3RhcnR1cERhdGE+KHNj
cmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCB0b3BPcmlnaW4pKQogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFC
TEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAgLCBtX25vdGlmaWNhdGlvbkNsaWVudCgwKQog
I2VuZGlmCkBAIC0xNDQsNyArMTQ2LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVh
ZCgpCiAKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0
ZXgpOwotICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlID0gY3JlYXRlV29ya2VyR2xvYmFsU2Nv
cGUobV9zdGFydHVwRGF0YS0+bV9zY3JpcHRVUkwsIG1fc3RhcnR1cERhdGEtPm1fdXNlckFnZW50
LCBtX3N0YXJ0dXBEYXRhLT5tX2NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywg
bV9zdGFydHVwRGF0YS0+bV90b3BPcmlnaW4ucmVsZWFzZSgpKTsKKyAgICAgICAgbV93b3JrZXJH
bG9iYWxTY29wZSA9IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKG1fc3RhcnR1cERhdGEtPm1fc2Ny
aXB0VVJMLCBtX3N0YXJ0dXBEYXRhLT5tX3VzZXJBZ2VudCwgbV9zdGFydHVwRGF0YS0+bV9jb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIG1fc3RhcnR1cERhdGEtPm1fc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBtX3N0YXJ0dXBEYXRhLT5tX3Rv
cE9yaWdpbi5yZWxlYXNlKCkpOwogCiAgICAgICAgIGlmIChtX3J1bkxvb3AudGVybWluYXRlZCgp
KSB7CiAgICAgICAgICAgICAvLyBUaGUgd29ya2VyIHdhcyB0ZXJtaW5hdGVkIGJlZm9yZSB0aGUg
dGhyZWFkIGhhZCBhIGNoYW5jZSB0byBydW4uIFNpbmNlIHRoZSBjb250ZXh0IGRpZG4ndCBleGlz
dCB5ZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAppbmRleCBiYjc5NTgyZjY4
M2MyNWRjZGI3ZjM0OWVmMjAyM2E5YjVhM2ZkOGJkLi4xNmM4ZGI3YjY5NjBjYmYwZWE5MjllNDMx
YWYzMzhjODNlYmQ4ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAg
LTY4LDEwICs2OCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogICAgIHByb3Rl
Y3RlZDoKLSAgICAgICAgV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29y
a2VyUmVwb3J0aW5nUHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BP
cmlnaW4pOworICAgICAgICBXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBX
b3JrZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4p
OwogCiAgICAgICAgIC8vIEZhY3RvcnkgbWV0aG9kIGZvciBjcmVhdGluZyBhIG5ldyB3b3JrZXIg
Y29udGV4dCBmb3IgdGhlIHRocmVhZC4KLSAgICAgICAgdmlydHVhbCBSZWY8V29ya2VyR2xvYmFs
U2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBQ
YXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pID0gMDsKKyAgICAgICAgdmlydHVh
bCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKSA9IDA7CiAKICAg
ICAgICAgLy8gRXhlY3V0ZXMgdGhlIGV2ZW50IGxvb3AgZm9yIHRoZSB3b3JrZXIgdGhyZWFkLiBE
ZXJpdmVkIGNsYXNzZXMgY2FuIG92ZXJyaWRlIHRvIHBlcmZvcm0gYWN0aW9ucyBiZWZvcmUvYWZ0
ZXIgZW50ZXJpbmcgdGhlIGV2ZW50IGxvb3AuCiAgICAgICAgIHZpcnR1YWwgdm9pZCBydW5FdmVu
dExvb3AoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA4MDA0ZTdlNTE2ZWM5NTJlMTZmM2Y5ODNkMjllNzBkZDJkZjM3NzEx
Li41YjY0MDVjZjAyMWY1ZmUxMThhYjVlNzliNTY4YjdmNTIwMGE3YTFmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTYtMDItMDUgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgor
CisgICAgICAgIENTUDogQWxsb3cgV2ViIFdvcmtlcnMgaW5pdGlhdGVkIGZyb20gYW4gaXNvbGF0
ZWQgd29ybGQgdG8gYnlwYXNzIHRoZSBtYWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2MjIK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0NDAwMDIzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyB0byBlbnN1cmUgdGhhdCBhIFdl
YiBXb3JrZXIgaW5pdGlhdGVkIGZyb20gYW4gaXNvbGF0ZWQgd29ybGQgY2FuIGJ5cGFzcyB0aGUg
bWFpbiB3b3JsZAorICAgICAgICBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3At
d29ya2VyLWJsb2ItZXZhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJs
b2ItZXZhbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xh
dGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1ibG9iLXhoci1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9i
eXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2IteGhyLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1j
c3Atd29ya2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXIuaHRtbDogQWRk
ZWQuCisKIDIwMTYtMDItMDUgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBWDogV2ViS2l0IGhhbmdpbmcgd2hlbiBWb2ljZU92ZXIgYXR0ZW1wdHMgdG8gZm9jdXMgaW4g
b24gcGFnZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29s
YXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi1ldmFsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBh
c3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzk4ZWQ3Njg2NjM3Njc5NWY3ZGI1MTc2NmEyNjEwYzNkYmYxYjg4MAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBh
c3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACitUaGlzIHRlc3RzIHRoYXQgaW4gYW4gaXNvbGF0ZWQgd29ybGQgdGhlIENvbnRlbnQg
U2VjdXJpdHkgUG9saWN5IG9mIHRoZSBwYXJlbnQgb3JpZ2luICh0aGlzIHBhZ2UpIGlzIGJ5cGFz
c2VkIGFuZCBhIFdlYiBXb3JrZXIgaXMgYWxsb3dlZCB0byBjYWxsIGV2YWwoKS4KKworUEFTUyB3
b3JrZXIgY2FsbGVkIGV2YWwoKS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2It
ZXZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxk
L2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi1ldmFsLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTYxYmU0ZjQ3ZmUxMmYxYjE3N2EyYWU4NWMzOTNkNGE5MDBiOGYxNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3Mt
bWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
U2VjdXJpdHktUG9saWN5IiBjb250ZW50PSJzY3JpcHQtc3JjICdzZWxmJyAndW5zYWZlLWlubGlu
ZSciPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBpbiBhbiBpc29sYXRlZCB3
b3JsZCB0aGUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgb2YgdGhlIHBhcmVudCBvcmlnaW4gKHRo
aXMgcGFnZSkgaXMgYnlwYXNzZWQgYW5kIGEgV2ViIFdvcmtlciBpcyBhbGxvd2VkIHRvIGNhbGwg
PGNvZGU+ZXZhbCgpPC9jb2RlPi48L3A+Cis8cHJlIGlkPSJyZXN1bHQiPjwvcHJlPgorPHNjcmlw
dD4KK3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZlbnQpCit7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLnRleHRDb250ZW50ID0gZXZlbnQuZGF0YTsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
fQorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgc2NyaXB0ID0gWworICAgICAgICAn
dHJ5IHsnLAorICAgICAgICAnICAgIGV2YWwoIjEgKyAwIik7JywKKyAgICAgICAgJyAgICBzZWxm
LnBvc3RNZXNzYWdlKCJQQVNTIHdvcmtlciBjYWxsZWQgZXZhbCgpLiIpOycsCisgICAgICAgICd9
IGNhdGNoIChleGNlcHRpb24pIHsnLAorICAgICAgICAnICAgIHNlbGYucG9zdE1lc3NhZ2UoIkZB
SUwgc2hvdWxkIG5vdCBoYXZlIHRocm93biBhbiBleGNlcHRpb24uIFRocmV3IGV4Y2VwdGlvbiAi
ICsgZXhjZXB0aW9uICsgIi4iKTsnLAorICAgICAgICAnfScsCisgICAgXS5qb2luKCJcbiIpOwor
CisgICAgdmFyIHdvcmtlcjsKKyAgICB0cnkgeworICAgICAgICB3b3JrZXIgPSBuZXcgV29ya2Vy
KHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtzY3JpcHRdKSkpOworICAgICAg
ICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2ZW50KSB7IHdpbmRvdy5wb3N0TWVzc2Fn
ZShldmVudC5kYXRhLCAiKiIpIH07CisgICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7CisgICAgICAg
IHdpbmRvdy5wb3N0TWVzc2FnZSgiRkFJTCBzaG91bGQgbm90IGhhdmUgdGhyb3duIGFuIGV4Y2Vw
dGlvbiB3aGVuIGNyZWF0aW5nIHdvcmtlci4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24g
KyAiLiIsICIqIik7CisgICAgfQorfQorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVz
dFJ1bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgwLCBydW5UZXN0LnRvU3RyaW5n
KCkgKyAiO3J1blRlc3QoKTsiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFz
cy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi14aHItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNz
cC13b3JrZXItYmxvYi14aHItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZmIxMTBhMjVhN2Ji
NzEzYzM4ZWIwZTdhODA1YzMxZjU4MWE5YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3Nw
LXdvcmtlci1ibG9iLXhoci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3Rz
IHRoYXQgaW4gYW4gaXNvbGF0ZWQgd29ybGQgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9m
IHRoZSBwYXJlbnQgb3JpZ2luICh0aGlzIHBhZ2UpIGlzIGJ5cGFzc2VkIGFuZCBhIFdlYiBXb3Jr
ZXIgaXMgYWxsb3dlZCB0byBtYWtlIGFuIFhIUiByZXF1ZXN0LgorCitQQVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1h
aW4td29ybGQtY3NwLXdvcmtlci1ibG9iLXhoci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxv
Yi14aHIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTI0ZGU3ZTQ2M2QzMTE1YWMzN2I5YWExYTllMDM0ODQ2
YWE4MGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi14aHIuaHRt
bApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0ic2NyaXB0LXNy
YyAnc2VsZicgJ3Vuc2FmZS1pbmxpbmUnOyBjb25uZWN0LXNyYyAnbm9uZSciPgorPHNjcmlwdD4K
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBpbiBhbiBpc29sYXRlZCB3b3JsZCB0aGUgQ29udGVu
dCBTZWN1cml0eSBQb2xpY3kgb2YgdGhlIHBhcmVudCBvcmlnaW4gKHRoaXMgcGFnZSkgaXMgYnlw
YXNzZWQgYW5kIGEgV2ViIFdvcmtlciBpcyBhbGxvd2VkIHRvIG1ha2UgYW4gWEhSIHJlcXVlc3Qu
PC9wPgorPHByZSBpZD0icmVzdWx0Ij48L3ByZT4KKzxzY3JpcHQ+Cit3aW5kb3cub25tZXNzYWdl
ID0gZnVuY3Rpb24gKGV2ZW50KQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS50ZXh0Q29udGVudCA9IGV2ZW50LmRhdGE7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuVGVz
dCgpCit7CisgICAgdmFyIHNjcmlwdCA9IFsKKyAgICAgICAgJ3ZhciBleGNlcHRpb247JywKKyAg
ICAgICAgJ3ZhciB4aHI7JywKKyAgICAgICAgJ3RyeSB7JywKKyAgICAgICAgJyAgICB2YXIgaXNB
c3luY2hyb25vdXMgPSBmYWxzZTsnLAorICAgICAgICAnICAgIHhociA9IG5ldyBYTUxIdHRwUmVx
dWVzdDsnLAorICAgICAgICAnICAgIHhoci5vcGVuKCJHRVQiLCAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IiwgaXNBc3luY2hyb25vdXMpOycs
CisgICAgICAgICcgICAgeGhyLnNlbmQoKTsnLAorICAgICAgICAnfSBjYXRjaCAoZSkgeycsCisg
ICAgICAgICcgICAgZXhjZXB0aW9uID0gZTsnLAorICAgICAgICAnfScsCisgICAgICAgICdpZiAo
ZXhjZXB0aW9uKScsCisgICAgICAgICcgICAgc2VsZi5wb3N0TWVzc2FnZSgiRkFJTCBzaG91bGQg
bm90IGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlvbi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRp
b24gKyAiLiIpOycsCisgICAgICAgICdlbHNlJywKKyAgICAgICAgJyAgICBzZWxmLnBvc3RNZXNz
YWdlKHhoci5yZXNwb25zZSk7JywKKyAgICBdLmpvaW4oIlxuIik7CisKKyAgICB2YXIgd29ya2Vy
OworICAgIHRyeSB7CisgICAgICAgIHdvcmtlciA9IG5ldyBXb3JrZXIod2luZG93LlVSTC5jcmVh
dGVPYmplY3RVUkwobmV3IEJsb2IoW3NjcmlwdF0pKSk7CisgICAgICAgIHdvcmtlci5vbm1lc3Nh
Z2UgPSBmdW5jdGlvbiAoZXZlbnQpIHsgd2luZG93LnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEsICIq
IikgfTsKKyAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgd2luZG93LnBvc3RNZXNz
YWdlKCJGQUlMIHNob3VsZCBub3QgaGF2ZSB0aHJvd24gYW4gZXhjZXB0aW9uIHdoZW4gY3JlYXRp
bmcgd29ya2VyLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIiwgIioiKTsKKyAg
ICB9Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmV2YWx1YXRl
U2NyaXB0SW5Jc29sYXRlZFdvcmxkKDAsIHJ1blRlc3QudG9TdHJpbmcoKSArICI7cnVuVGVzdCgp
OyIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3Nw
LXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lz
b2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDU4MGE4Y2U4YzM1ZWJmYzhhMTJlMzEwMWI5ZDRhY2M4NjNhYTUzOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3Js
ZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKK1RoaXMgdGVzdHMgdGhhdCBpbiBhbiBpc29sYXRlZCB3b3JsZCB0aGUgQ29udGVudCBTZWN1
cml0eSBQb2xpY3kgb2YgdGhlIHBhcmVudCBvcmlnaW4gKHRoaXMgcGFnZSkgaXMgYnlwYXNzZWQg
YW5kIGEgV2ViIFdvcmtlciBpcyBhbGxvd2VkIHRvIGJlIGluc3RhbnRpYXRlZCB3aXRoIGEgc2Ny
aXB0IFVSTCBub3QgbGlzdGVkIGluIHRoZSBDU1Agb2YgdGhlIHBhZ2UuCisKK1BBU1Mgd29ya2Vy
IGluc3RhbnRpYXRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29y
bGQtY3NwLXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3OTJmZmNiN2NlMzVmNTlmODQyMzdjZjEx
YWE0OTJiMWZmNTBlZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci5odG1s
CkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0g
RklYTUU6IEFkZCBjaGlsZC1zcmMgJ25vbmUnIG9uY2Ugd2UgaW1wbGVtZW50IHRoZSBjaGlsZC1z
cmMgZGlyZWN0aXZlLiAtLT4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJpdHktUG9s
aWN5IiBjb250ZW50PSJzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyI+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhpcyB0ZXN0cyB0aGF0IGluIGFuIGlzb2xhdGVkIHdvcmxkIHRoZSBDb250ZW50IFNl
Y3VyaXR5IFBvbGljeSBvZiB0aGUgcGFyZW50IG9yaWdpbiAodGhpcyBwYWdlKSBpcyBieXBhc3Nl
ZCBhbmQgYSBXZWIgV29ya2VyIGlzIGFsbG93ZWQgdG8gYmUgaW5zdGFudGlhdGVkIHdpdGggYSBz
Y3JpcHQgVVJMIG5vdCBsaXN0ZWQgaW4gdGhlIENTUCBvZiB0aGUgcGFnZS48L3A+Cis8cHJlIGlk
PSJyZXN1bHQiPjwvcHJlPgorPHNjcmlwdD4KK3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAo
ZXZlbnQpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLnRleHRDb250
ZW50ID0gZXZlbnQuZGF0YTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2
YXIgd29ya2VyOworICAgIHRyeSB7CisgICAgICAgIHdvcmtlciA9IG5ldyBXb3JrZXIoImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2Vz
L3dvcmtlci5waHA/dHlwZT1hbGVydC1wYXNzIik7CisgICAgICAgIHdpbmRvdy5wb3N0TWVzc2Fn
ZSgiUEFTUyB3b3JrZXIgaW5zdGFudGlhdGVkLiIsICIqIik7CisgICAgfSBjYXRjaCAoZXhjZXB0
aW9uKSB7CisgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZSgiRkFJTCBzaG91bGQgbm90IGhhdmUg
dGhyb3duIGFuIGV4Y2VwdGlvbiB3aGVuIGNyZWF0aW5nIHdvcmtlci4gVGhyZXcgZXhjZXB0aW9u
ICIgKyBleGNlcHRpb24gKyAiLiIsICIqIik7CisgICAgfQorfQorCitpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgdGVzdFJ1bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgwLCBy
dW5UZXN0LnRvU3RyaW5nKCkgKyAiO3J1blRlc3QoKTsiKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270758</attachid>
            <date>2016-02-05 12:21:42 -0800</date>
            <delta_ts>2016-02-07 13:01:35 -0800</delta_ts>
            <desc>Patch and Layout Tests</desc>
            <filename>bug-153622-20160205122119.patch</filename>
            <type>text/plain</type>
            <size>41065</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2MTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2M3OWM1ZWIwZjk2ODIy
NzkzYWQyOGYyOGYzOTQ4Mzk3NDk4OTlmYi4uNTVkMjk2MWU2ZWY0ZmEzOTdlOTA1MmRjZTFmZDY5
ZDJkMGM0MWNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE2LTAyLTA1ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBDU1A6IEFsbG93IFdlYiBX
b3JrZXJzIGluaXRpYXRlZCBmcm9tIGFuIGlzb2xhdGVkIHdvcmxkIHRvIGJ5cGFzcyB0aGUgbWFp
biB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
NDQwMDAyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBXZWIgV29ya2VycyBpbml0aWF0ZWQgZnJvbSBhbiBpc29s
YXRlZCB3b3JsZCAoc2F5LCBhIFNhZmFyaSBDb250ZW50IFNjcmlwdCBFeHRlbnNpb24pCisgICAg
ICAgIHdvdWxkIGJlIHN1YmplY3QgdG8gdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9mIHRo
ZSBwYWdlLgorCisgICAgICAgIEN1cnJlbnRseSBjb2RlIGluIGFuIGlzb2xhdGVkIHdvcmxkIHRo
YXQgZG9lcyBub3QgZXhlY3V0ZSBpbiBhIFdlYiBXb3JrZXIgaXMgZXhlbXB0IGZyb20gdGhlIENT
UCBvZgorICAgICAgICB0aGUgcGFnZS4gSG93ZXZlciwgY29kZSB0aGF0IHJ1bnMgaW5zaWRlIGEg
V2ViIFdvcmtlciB0aGF0IHdhcyBpbml0aWF0ZWQgZnJvbSBhbiBpc29sYXRlZCB3b3JsZCBpcwor
ICAgICAgICBzdWJqZWN0IHRvIHRoZSBDU1Agb2YgdGhlIHBhZ2UuIEluc3RlYWQsIHN1Y2ggV2Vi
IFdvcmtlciBjb2RlIHNob3VsZCBhbHNvIGJlIGV4ZW1wdCBmcm9tIHRoZSBDU1Agb2YKKyAgICAg
ICAgdGhlIHBhZ2UuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0
ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3At
d29ya2VyLWJsb2ItZXZhbC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5
L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1ibG9iLXhoci5odG1s
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6OldvcmtlclNjcmlwdENvbnRy
b2xsZXIpOiBNb2RpZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcmd1bWVudCBhbmQKKyAgICAgICAg
YXMgdG8gd2hldGhlciB0byBieXBhc3MgdGhlIG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQ
b2xpY3kgYW5kIHN0b3JlIGl0IGluIGEgbWVtYmVyIGZpZWxkLgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNj
cmlwdENvbnRyb2xsZXI6OnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OnNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSk6IE1vZGlmaWVkIHRvIGFzayB0aGUKKyAgICAg
ICAgc2NyaXB0IGNvbnRyb2xsZXIgZm9yIHRoZSB3b3JrZXIgd2hldGhlciB0byBieXBhc3MgdGhl
IG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuCisgICAgICAgICogd29ya2Vycy9B
YnN0cmFjdFdvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBYnN0cmFjdFdvcmtlcjo6cmVz
b2x2ZVVSTCk6IEJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBp
ZiBhcHBsaWNhYmxlLgorICAgICAgICBBZGRlZCBGSVhNRSBjb21tZW50IHRvIGVuZm9yY2UgdGhl
IGNoaWxkLXNyYyBkaXJlY3RpdmUgb2YgdGhlIGRvY3VtZW50J3MgQ1NQIChhcyBvcHBvc2VkIHRv
IHRoZSBzY3JpcHQtc3JjCisgICAgICAgIGRpcmVjdGl2ZSkgb24gdGhlIHdvcmtlcidzIHNjcmlw
dCBVUkwuIEFsc28sIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNlY3VyaXR5UG9s
aWN5KCkgc2hvdWxkCisgICAgICAgIGFsd2F5cyBiZSBub24tbnVsbCBqdXN0IGFzIHdlIGV4cGVj
dCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCkgdG8gYmUgbm9uLW51
bGwuIEFzc2VydAorICAgICAgICB0aGlzIGludmFyaWFudCB0byBjYXRjaCBjYXNlcyB3aGVyZSBh
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgaXMgbm90IHByb3Blcmx5IGluaXRpYWxpemVkLgorICAg
ICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSk6IE1vZGlmaWVkIHRv
IHRha2UgYm9vbGVhbiBhcmd1bWVudCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3kKKyAgICAgICAgYXMgdG8gd2hldGhlciB0byBieXBhc3MgdGhlIG1haW4gd29ybGQg
Q29udGVudCBTZWN1cml0eSBQb2xpY3kgYW5kIG9ubHkgYXBwbHkgdGhlIENvbnRlbnQgU2VjdXJp
dHkKKyAgICAgICAgUG9saWN5IGhlYWRlcnMgd2hlbiBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3kgaXMgZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUpOiBQYXNzIHRocm91
Z2ggYSBib29sZWFuIGFyZ3VtZW50IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeQorICAgICAgICBhcyB0byB3aGV0aGVyIHRvIGJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBD
b250ZW50IFNlY3VyaXR5IFBvbGljeS4KKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVkaWNhdGVkV29ya2VyVGhyZWFkOjpEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlclRo
cmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUpOiBEaXR0by4KKyAgICAgICAgKiB3b3JrZXJz
L0RlZGljYXRlZFdvcmtlclRocmVhZC5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6Y3JlYXRlKTogU3RvcmUgd2hldGhlciB3ZSBzaG91
bGQgYnlwYXNzIHRoZSBtYWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IHNvCisgICAg
ICAgIHRoYXQgd2UgY2FuIHBhc3MgaXQgdG8gV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29y
a2VyR2xvYmFsU2NvcGUoKSBpbiBXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkuCisgICAgICAgIFdl
IG5lZWQgdG8gc3RvcmUgdGhpcyBkZWNpc2lvbiBoZXJlIGFzIG9wcG9zZWQgdG8gZGV0ZXJtaW5p
bmcgaXQgYXQgYW55IGxhdGVyIHRpbWUgKHNheSwgaW4gV29ya2VyOjpub3RpZnlGaW5pc2hlZCgp
KQorICAgICAgICBiZWNhdXNlIGl0IGlzIGRlcGVuZGVudCBvbiB0aGUgY3VycmVudCBKYXZhU2Ny
aXB0IHByb2dyYW0gc3RhY2sgYXQgdGhlIHRpbWUgdGhpcyBmdW5jdGlvbiBpcyBpbnZva2VkLgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6IFBhc3Mgd2hldGhlciB0
byBieXBhc3MgdGhlIG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuCisgICAgICAg
ICogd29ya2Vycy9Xb3JrZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxT
Y29wZSk6IFBhc3MgdGhyb3VnaCBhIGJvb2xlYW4gYXJndW1lbnQgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5CisgICAgICAgIGFzIHRvIHdoZXRoZXIgdG8gYnlwYXNz
IHRoZSBtYWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LiBBbHNvLCBhbHdheXMgaW5z
dGFudGlhdGUgYSBDb250ZW50IFNlY3VyaXR5CisgICAgICAgIFBvbGljeSBvYmplY3QgYXMgb3Vy
IGN1cnJlbnQgY29kZSBhc3N1bWVzIHRoYXQgb25lIGlzIGFsd2F5cyBjcmVhdGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmFwcGx5Q29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzKTogTW92ZWQgaW5zdGFudGlhdGVkIG9mIHRoZSBDb250ZW50U2VjdXJp
dHlQb2xpY3kgb2JqZWN0CisgICAgICAgIGZyb20gaGVyZSB0byB0aGUgY29uc3RydWN0b3IuCisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGVQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2Fn
aW5nUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnN0
YXJ0V29ya2VyR2xvYmFsU2NvcGUpOiBQYXNzIHRocm91Z2ggYSBib29sZWFuIGFyZ3VtZW50IHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeQorICAgICAgICBhcyB0byB3
aGV0aGVyIHRvIGJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4K
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkU3Rh
cnR1cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKTogTW9kaWZpZWQgdG8gdGFrZSBhIGJv
b2xlYW4gYXJndW1lbnQgYW5kCisgICAgICAgIGFzIHRvIHdoZXRoZXIgdG8gYnlwYXNzIHRoZSBt
YWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGFuZCBzdG9yZSBpdCBpbiBhIG1lbWJl
ciBmaWVsZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKTog
UGFzcyB0aHJvdWdoIGEgYm9vbGVhbiBhcmd1bWVudCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3kKKyAgICAgICAgYXMgdG8gd2hldGhlciB0byBieXBhc3MgdGhlIG1h
aW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuCisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJUaHJlYWQ6OndvcmtlclRocmVhZCk6IERpdHRvLiAgCisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuaDoKKwogMjAxNi0wMi0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gU2Nyb2xsYmFycyBpbmNvcnJlY3RseSByZW5k
ZXJlZCB3aXRoIG9sZGVyIHZlcnNpb25zIG9mIEdUSysKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggMDlkMTc4YmQx
ZjNlMjMzNjg5ODU1OTg4MmQ3MDAzNmZmMTM4NGY3Yy4uYWU2MjY1NzliMWFlMjM1YjhhM2ZiZjBm
MDFlNDQyNDQ2N2ZkN2FkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTQ5LDExICs0OSwxMiBAQCB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdvcmtlclNjcmlwdENvbnRy
b2xsZXI6OldvcmtlclNjcmlwdENvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckds
b2JhbFNjb3BlKQorV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6V29ya2VyU2NyaXB0Q29udHJvbGxl
cihXb3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFsU2NvcGUsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KQogICAgIDogbV92bShWTTo6Y3JlYXRlKCkp
CiAgICAgLCBtX3dvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKQogICAgICwgbV93
b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIoKm1fdm0pCiAgICAgLCBtX2V4ZWN1dGlvbkZvcmJpZGRl
bihmYWxzZSkKKyAgICAsIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5KHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSkKIHsKICAgICBt
X3ZtLT5lbnN1cmVXYXRjaGRvZygpOwogICAgIGluaXROb3JtYWxXb3JsZENsaWVudERhdGEobV92
bS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3Jp
cHRDb250cm9sbGVyLmgKaW5kZXggYjBiNmMwZmMyZTg1ODY1NzNhYjQ4MmE4MGUxYTJkNGNiZTI3
NTI4My4uYzI4Y2ZjMzU0Y2IxYTM3MmFiYjY1NjgzN2M4Y2RmZTg3NzBiYTEyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaApA
QCAtNTEsNyArNTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgV29ya2VyU2Ny
aXB0Q29udHJvbGxlciB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlclNjcmlw
dENvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICAgICAg
V29ya2VyU2NyaXB0Q29udHJvbGxlcihXb3JrZXJHbG9iYWxTY29wZSosIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KTsKICAgICAgICAgfldvcmtlclNjcmlw
dENvbnRyb2xsZXIoKTsKIAogICAgICAgICBKU1dvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9i
YWxTY29wZVdyYXBwZXIoKQpAQCAtODUsNiArODUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZvaWQgYXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOwogICAgICAgICB2b2lk
IGRldGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsKIAorICAgICAgICBib29sIHNob3VsZEJ5
cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OyB9CisKICAgICBwcml2YXRl
OgogICAgICAgICB2b2lkIGluaXRTY3JpcHRJZk5lZWRlZCgpCiAgICAgICAgIHsKQEAgLTk3LDYg
Kzk5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXb3JrZXJHbG9iYWxTY29wZSog
bV93b3JrZXJHbG9iYWxTY29wZTsKICAgICAgICAgSlNDOjpTdHJvbmc8SlNXb3JrZXJHbG9iYWxT
Y29wZT4gbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXI7CiAgICAgICAgIGJvb2wgbV9leGVjdXRp
b25Gb3JiaWRkZW47CisgICAgICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50
U2VjdXJpdHlQb2xpY3k7CiAgICAgICAgIGJvb2wgbV9pc1Rlcm1pbmF0aW5nRXhlY3V0aW9uIHsg
ZmFsc2UgfTsKICAgICAgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRl
eDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5jcHAKaW5kZXggYjYwMTJkMzVkYzVmYjJhYTJlYjdhMDY4ZTFiZmM5MmU3MmEwNjk4
Mi4uM2ZhODU5YzZkNjNhYTNjYmE3MDNjODJjMjI3MTNmOGEzNWUxZjUzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC00MCw2
ICs0MCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIgor
I2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3Bl
Y3RvclZhbHVlcy5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNp
bmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgpAQCAtMTc4Miw3ICsx
NzgzLDEwIEBAIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjpzaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3koU2NyaXB0RXhlCiAgICAgICAgIGF1dG8mIGRvY3VtZW50
ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOwogICAgICAgICByZXR1cm4gZG9jdW1lbnQu
ZnJhbWUoKSAmJiBkb2N1bWVudC5mcmFtZSgpLT5zY3JpcHQoKS5zaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3koKTsKICAgICB9Ci0gICAgCisKKyAgICBpZiAoaXM8V29y
a2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8V29ya2Vy
R2xvYmFsU2NvcGU+KGNvbnRleHQpLnNjcmlwdCgpLT5zaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3koKTsKKwogICAgIHJldHVybiBmYWxzZTsKIH0KICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5jcHAKaW5kZXggODAxYzhlZjU3ZDJhNDRm
ZTU2MDFlMGI5NjE5ODYyYmE5YjE1YzlhMS4uZGEwMDdhMmVmNzg1NWM0NTI5ZjY2YTVhMWVlM2U0
M2YzNDNkMDA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdv
cmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5jcHAK
QEAgLTYyLDcgKzYyLDExIEBAIFVSTCBBYnN0cmFjdFdvcmtlcjo6cmVzb2x2ZVVSTChjb25zdCBT
dHJpbmcmIHVybCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybiBVUkwoKTsKICAg
ICB9CiAKLSAgICBpZiAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQ
b2xpY3koKSAmJiAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xp
Y3koKS0+YWxsb3dTY3JpcHRGcm9tU291cmNlKHNjcmlwdFVSTCkpIHsKKyAgICAvLyBGSVhNRTog
RW5mb3JjZSB0aGUgY2hpbGQtc3JjIGRpcmVjdGl2ZSBpbnN0ZWFkIG9mIHNjcmlwdC1zcmMgcGVy
IDxodHRwczovL3czYy5naXRodWIuaW8vd2ViYXBwc2VjLWNzcC8yLyNkaXJlY3RpdmUtY2hpbGQt
c3JjLXdvcmtlcnM+ICgyOSBBdWd1c3QgMjAxNSkuCisgICAgLy8gU2VlIDxodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNTYyPi4KKyAgICBib29sIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSA9IENvbnRlbnRTZWN1cml0eVBvbGljeTo6
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOworICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRl
bnRTZWN1cml0eVBvbGljeSgpKTsKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93U2NyaXB0RnJvbVNvdXJjZShzY3JpcHRVUkws
IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSkpIHsKICAgICAgICAg
ZWMgPSBTRUNVUklUWV9FUlI7CiAgICAgICAgIHJldHVybiBVUkwoKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3Bw
CmluZGV4IDkxYzdmMjMxMWI4MmYwNTJiNmE0OGZkYTcwZGI0MTRkZGUyYzU2MjQuLjMwZmRlMWM2
MTVhZGU1MjhlMzBlMzI1NGExMWU2YTRiYWU4ZDY4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC00MCwxNSAr
NDAsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8RGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGU+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVh
ZCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRv
cE9yaWdpbikKK1JlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGU6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBjb25zdCBDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKIHsKLSAgICBSZWY8RGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGU+IGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IERlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlKHVybCwgdXNlckFnZW50LCB0aHJlYWQsIHRvcE9yaWdpbikpOwotICAgIGNvbnRl
eHQtPmFwcGx5Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKGNvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyk7CisgICAgUmVmPERlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlPiBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZSh1cmwsIHVzZXJBZ2VudCwgdGhyZWFkLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2Vj
dXJpdHlQb2xpY3ksIHRvcE9yaWdpbikpOworICAgIGlmICghc2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5KQorICAgICAgICBjb250ZXh0LT5hcHBseUNvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyhjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMpOwogICAgIHJldHVybiBjb250ZXh0OwogfQogCi1EZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgUGFzc1JlZlB0
cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQotICAgIDogV29ya2VyR2xvYmFsU2NvcGUodXJs
LCB1c2VyQWdlbnQsIHRocmVhZCwgdG9wT3JpZ2luKQorRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGJvb2wgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiB0b3BPcmlnaW4pCisgICAgOiBXb3JrZXJHbG9iYWxTY29wZSh1cmwsIHVzZXJBZ2Vu
dCwgdGhyZWFkLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIHRv
cE9yaWdpbikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDI5YjcyMmEwZDc1MzJmN2E1MzA3ZjdkMDY4M2Y0
NGRkMTNjY2NmOTEuLjAzMTU1ZjM5MjgxZmY1ZDFiM2FkMTU0NTdiZDcyZGE5M2YzNzk2ZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlckdsb2JhbFNjb3BlIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgV29ya2VyR2xvYmFsU2NvcGUgQmFzZTsKLSAgICAg
ICAgc3RhdGljIFJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBjb25z
dCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiB0b3BPcmlnaW4pOworICAgICAgICBzdGF0aWMgUmVmPERlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlPiBjcmVhdGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IERlZGljYXRlZFdvcmtlclRocmVhZCYsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pOwogICAgICAgICB2aXJ0
dWFsIH5EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSgpOwogCiAgICAgICAgIHZpcnR1YWwgYm9v
bCBpc0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQpAQCAtNjAsNyArNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERl
ZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFkKCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4g
dG9wT3JpZ2luKTsKKyAgICAgICAgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYsIGJvb2wg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNzUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhy
ZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNw
cAppbmRleCAzNjA0YmY4NjQ1NWFlMzY2OWRlMGFhNzE4ODVlODRhMTk3ODBkMTExLi4wMzk0ZjBk
Nzg3MzY0MDZlZTdlODExNzRkODMyMjg1ZThlMGMzNDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwCkBAIC0zOCw4ICszOCw4IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25z
dCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94
eSwgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5LCBXb3JrZXJUaHJlYWRTdGFy
dE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgY29uc3QgU2VjdXJpdHlP
cmlnaW4qIHRvcE9yaWdpbikKLSAgICA6IFdvcmtlclRocmVhZCh1cmwsIHVzZXJBZ2VudCwgc291
cmNlQ29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdvcmtlck9iamVjdFByb3h5LCBzdGFydE1vZGUs
IGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgdG9wT3JpZ2luKQorRGVkaWNh
dGVkV29ya2VyVGhyZWFkOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxv
YWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9i
amVjdFByb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCisgICAgOiBXb3JrZXJUaHJlYWQo
dXJsLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJPYmpl
Y3RQcm94eSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMs
IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdG9wT3JpZ2luKQog
ICAgICwgbV93b3JrZXJPYmplY3RQcm94eSh3b3JrZXJPYmplY3RQcm94eSkKIHsKIH0KQEAgLTQ4
LDkgKzQ4LDkgQEAgRGVkaWNhdGVkV29ya2VyVGhyZWFkOjp+RGVkaWNhdGVkV29ya2VyVGhyZWFk
KCkKIHsKIH0KIAotUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6
OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IHRvcE9yaWdpbikKK1JlZjxXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyVGhy
ZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYg
Y29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4g
dG9wT3JpZ2luKQogewotICAgIHJldHVybiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3Jl
YXRlKHVybCwgdXNlckFnZW50LCAqdGhpcywgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzLCB0b3BPcmlnaW4pOworICAgIHJldHVybiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZTo6Y3JlYXRlKHVybCwgdXNlckFnZW50LCAqdGhpcywgY29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IHRvcE9yaWdpbik7CiB9CiAKIHZvaWQgRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpydW5FdmVudExv
b3AoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJU
aHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgK
aW5kZXggODlkODhmMjAzNjI4OGQxMzhjODg2YTNhNzEwN2EzMzgwYmRmNjU3YS4uOWQ3ZWYwZjQ5
NDQ2ZmFmYWQ5M2JlMjZjZWNlM2Q3NWUzZWVlNmRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCkBAIC00OCwxMSArNDgsMTEgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJv
eHkoKSBjb25zdCB7IHJldHVybiBtX3dvcmtlck9iamVjdFByb3h5OyB9CiAKICAgICBwcm90ZWN0
ZWQ6Ci0gICAgICAgIHZpcnR1YWwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJH
bG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgUGFzc1JlZlB0cjxTZWN1cml0eU9y
aWdpbj4gdG9wT3JpZ2luKSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCBSZWY8V29ya2VyR2xv
YmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMm
LCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVh
bCB2b2lkIHJ1bkV2ZW50TG9vcCgpIG92ZXJyaWRlOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyT2Jq
ZWN0UHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBv
bGljeVJlc3BvbnNlSGVhZGVycyYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOwor
ICAgICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBX
b3JrZXJPYmplY3RQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOwog
CiAgICAgICAgIFdvcmtlck9iamVjdFByb3h5JiBtX3dvcmtlck9iamVjdFByb3h5OwogICAgIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggOTEwZGQ4YmU4N2ZiNjNkZGJiMDcwNGM3
N2E3ODgyZGNkNzhjMmE2ZS4uZmE4ZGQyYjM3MDY0NDUwNGE1NDllOWE2ODc1MzE3MWU2OWQ5NWIw
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtODcsNiArODcsOCBAQCBSZWZQdHI8
V29ya2VyPiBXb3JrZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBj
b25zdCBTdHJpbmcmIHVybAogICAgIGlmIChzY3JpcHRVUkwuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAorICAgIHdvcmtlci0+bV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3kgPSBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeShjb250ZXh0KTsKKwogICAgIC8vIFRoZSB3b3Jr
ZXIgY29udGV4dCBkb2VzIG5vdCBleGlzdCB3aGlsZSBsb2FkaW5nLCBzbyB3ZSBtdXN0IGVuc3Vy
ZSB0aGF0IHRoZSB3b3JrZXIgb2JqZWN0IGlzIG5vdCBjb2xsZWN0ZWQsIG5vciBhcmUgaXRzIGV2
ZW50IGxpc3RlbmVycy4KICAgICB3b3JrZXItPnNldFBlbmRpbmdBY3Rpdml0eSh3b3JrZXIucHRy
KCkpOwogCkBAIC0xNjYsNyArMTY4LDcgQEAgdm9pZCBXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkK
ICAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2
ZW50LCBmYWxzZSwgdHJ1ZSkpOwogICAgIGVsc2UgewogICAgICAgICBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyA9IG1fY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzID8gbV9jb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMudmFsdWUoKSA6IHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPnJlc3BvbnNlSGVhZGVycygpOwot
ICAgICAgICBtX2NvbnRleHRQcm94eS0+c3RhcnRXb3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdExv
YWRlci0+dXJsKCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXNlckFnZW50KG1fc2NyaXB0
TG9hZGVyLT51cmwoKSksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgY29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBEb250UGF1c2VXb3JrZXJHbG9iYWxTY29wZU9uU3RhcnQp
OworICAgICAgICBtX2NvbnRleHRQcm94eS0+c3RhcnRXb3JrZXJHbG9iYWxTY29wZShtX3Njcmlw
dExvYWRlci0+dXJsKCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXNlckFnZW50KG1fc2Ny
aXB0TG9hZGVyLT51cmwoKSksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgY29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSwgRG9udFBhdXNlV29ya2VyR2xvYmFsU2NvcGVPblN0YXJ0KTsKICAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIG1fc2NyaXB0TG9hZGVyLT5pZGVudGlmaWVyKCksIG1fc2NyaXB0TG9hZGVy
LT5zY3JpcHQoKSk7CiAgICAgfQogICAgIG1fc2NyaXB0TG9hZGVyID0gbnVsbHB0cjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlci5oCmluZGV4IGNkM2QxMTEyMjJjODQxYjJlMDRlOGZhOTc2ZDM5YWUyMDg1
YmI4ZDcuLjY0NzU2ZTlmZTVjOWViYzQ2NjNlOTVhYmM2MzZkMjk5Y2IyNWNhNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuaApAQCAtODYsNiArODYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFJlZlB0cjxXb3JrZXJTY3JpcHRMb2FkZXI+IG1fc2NyaXB0TG9hZGVyOwogICAgICAg
ICBXb3JrZXJHbG9iYWxTY29wZVByb3h5KiBtX2NvbnRleHRQcm94eTsgLy8gVGhlIHByb3h5IG91
dGxpdmVzIHRoZSB3b3JrZXIgdG8gcGVyZm9ybSB0aHJlYWQgc2h1dGRvd24uCiAgICAgICAgIE9w
dGlvbmFsPENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycz4gbV9jb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnM7CisgICAgICAgIGJvb2wgbV9zaG91bGRCeXBhc3NN
YWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kgeyBmYWxzZSB9OwogICAgIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5jcHAKaW5kZXggNjdjNmRmZTA2YWE3M2JkYTM4MTM2NjM5YzNkOWE5MjY3YmI0NjlkOS4u
OWYwZTUyYTBiNDcwOTViMmFiNjU3N2IxNzQ2Y2Q0Y2NiN2JjNWYzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTYyLDEwICs2MiwxMCBAQCB1
c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdvcmtl
ckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZCYgdGhyZWFkLCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiB0b3BPcmlnaW4pCitXb3JrZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2NvcGUo
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmIHRo
cmVhZCwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKICAgICA6IG1fdXJsKHVybCkKICAg
ICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudCkKLSAgICAsIG1fc2NyaXB0KHN0ZDo6bWFrZV91bmlx
dWU8V29ya2VyU2NyaXB0Q29udHJvbGxlcj4odGhpcykpCisgICAgLCBtX3NjcmlwdChzdGQ6Om1h
a2VfdW5pcXVlPFdvcmtlclNjcmlwdENvbnRyb2xsZXI+KHRoaXMsIHNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSkpCiAgICAgLCBtX3RocmVhZCh0aHJlYWQpCiAgICAg
LCBtX2Nsb3NpbmcoZmFsc2UpCiAgICAgLCBtX2V2ZW50UXVldWUoKnRoaXMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggZDRkYjM1MTQyZmMxMjY0Yjk2
NDYzZjRjMDgxMDQ3MDNmZDE3MDM3NS4uYTVhYWIyMjBlZGI5OWMxZmMzYzU4ZGVkMjJiZDRmNjY2
ODMxOWE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApA
QCAtMTMwLDcgKzEzMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAgcHJv
dGVjdGVkOgotICAgICAgICBXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkJiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4g
dG9wT3JpZ2luKTsKKyAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZCYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BP
cmlnaW4pOwogICAgICAgICB2b2lkIGFwcGx5Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzKGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYpOwogCiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50
IGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5
LmgKaW5kZXggNmJkODhjNGIyZDBhODVjNDdlNDc1NDQwNzNmNzYyODkxZjlmZmU3Mi4uY2RiMTc0
NjQwNGYzZGI0YTdkODQ4YTVjYjI0ZWQzM2RiZGFhZmM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgfldvcmtlckdsb2JhbFNjb3BlUHJv
eHkoKSB7IH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShj
b25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmlu
ZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzdGFy
dFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlKSA9IDA7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIHRlcm1pbmF0ZVdvcmtlckdsb2JhbFNjb3BlKCkgPSAwOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDY5OWU5Yjc3
ZjdiZjE2NWY5ZTk4MGEwNTYzZTdjNDk5MzU5Zjc3ZGQuLjgyY2QwYmM5ZWFlY2RjNTRjMjEzODg1
ZWNiNTk4OTMzMTQwZjJkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwCkBAIC03MiwxMiArNzIsMTIgQEAgV29ya2VyTWVzc2FnaW5nUHJv
eHk6On5Xb3JrZXJNZXNzYWdpbmdQcm94eSgpCiAgICAgICAgIHx8IChpczxXb3JrZXJHbG9iYWxT
Y29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgJiYgY3VycmVudFRocmVhZCgpID09IGRv
d25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJl
YWQoKS50aHJlYWRJRCgpKSk7CiB9CiAKLXZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0
V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBv
bGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlKQordm9pZCBXb3JrZXJNZXNzYWdpbmdQ
cm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlKQogewogICAgIC8vIEZJWE1FOiBU
aGlzIG5lZWQgdG8gYmUgcmV2aXNpdGVkIHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9u
ZSBkYXkKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICBEb2N1bWVu
dCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCk7Ci0gICAgUmVmUHRyPERlZGljYXRlZFdvcmtlclRocmVhZD4gdGhyZWFkID0gRGVkaWNhdGVk
V29ya2VyVGhyZWFkOjpjcmVhdGUoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsICp0
aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMsIGRvY3VtZW50LnRvcE9yaWdpbigpKTsKKyAgICBSZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhy
ZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRVUkwsIHVz
ZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNl
Y3VyaXR5UG9saWN5LCBkb2N1bWVudC50b3BPcmlnaW4oKSk7CiAgICAgd29ya2VyVGhyZWFkQ3Jl
YXRlZCh0aHJlYWQpOwogICAgIHRocmVhZC0+c3RhcnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAppbmRleCBhYTViODkxYTgyNGZlMzcxZDY4
NTgwMDIzMDFlNWIyYTZmMjBhMGY2Li5kZDVjMDVjZWIzOWY2OWZlMzcwYjAxMTcwYjkyNDc1NmRk
ZmUxMWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94
eS5oCkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBJ
bXBsZW1lbnRhdGlvbnMgb2YgV29ya2VyR2xvYmFsU2NvcGVQcm94eS4KICAgICAgICAgLy8gKE9u
bHkgdXNlIHRoZXNlIG1ldGhvZHMgaW4gdGhlIHdvcmtlciBvYmplY3QgdGhyZWFkLikKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRV
UkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIFdvcmtlclRocmVhZFN0
YXJ0TW9kZSkgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2Jh
bFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHRlcm1pbmF0ZVdvcmtlckdsb2JhbFNjb3BlKCkgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyR2xvYmFsU2NvcGUoUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+LCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KSBv
dmVycmlkZTsKICAgICAgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDgx
MjIzODA1Y2Q3NzEzNTAwN2JmYzhiZjY5ZTliOTc1ODhjZmI0OTYuLjI5N2JmN2U2NzY3NmQ3NjQy
ODYzZjYzN2YxNmEwMjFlMjRkYTk1ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5jcHAKQEAgLTcwLDMxICs3MCwzMyBAQCB1bnNpZ25lZCBXb3JrZXJUaHJlYWQ6Ondvcmtl
clRocmVhZENvdW50KCkKIHN0cnVjdCBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YSB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoV29ya2VyVGhyZWFkU3RhcnR1cERhdGEpOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBV
UkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291
cmNlQ29kZSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMmLCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKTsKKyAg
ICBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFkU3Rh
cnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29s
IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJp
dHlPcmlnaW4qIHRvcE9yaWdpbik7CiAKICAgICBVUkwgbV9zY3JpcHRVUkw7CiAgICAgU3RyaW5n
IG1fdXNlckFnZW50OwogICAgIFN0cmluZyBtX3NvdXJjZUNvZGU7CiAgICAgV29ya2VyVGhyZWFk
U3RhcnRNb2RlIG1fc3RhcnRNb2RlOwogICAgIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyBtX2NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczsKKyAgICBib29s
IG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OwogICAgIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4gbV90b3BPcmlnaW47CiB9OwogCi1Xb3JrZXJUaHJlYWRTdGFydHVw
RGF0YTo6V29ya2VyVGhyZWFkU3RhcnR1cERhdGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlclRocmVh
ZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBjb25zdCBTZWN1
cml0eU9yaWdpbiogdG9wT3JpZ2luKQorV29ya2VyVGhyZWFkU3RhcnR1cERhdGE6OldvcmtlclRo
cmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3Rh
cnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4p
CiAgICAgOiBtX3NjcmlwdFVSTChzY3JpcHRVUkwuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3Vz
ZXJBZ2VudCh1c2VyQWdlbnQuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3NvdXJjZUNvZGUoc291
cmNlQ29kZS5pc29sYXRlZENvcHkoKSkKICAgICAsIG1fc3RhcnRNb2RlKHN0YXJ0TW9kZSkKICAg
ICAsIG1fY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKGNvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycy5pc29sYXRlZENvcHkoKSkKKyAgICAsIG1fc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSkKICAgICAsIG1fdG9wT3JpZ2luKHRvcE9yaWdpbiA/ICZ0b3BP
cmlnaW4tPmlzb2xhdGVkQ29weSgpLmdldCgpIDogbnVsbHB0cikKIHsKIH0KIAotV29ya2VyVGhy
ZWFkOjpXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3Jr
ZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5
LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cywgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikKK1dvcmtlclRocmVhZDo6V29ya2Vy
VGhyZWFkKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJv
eHksIFdvcmtlclJlcG9ydGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhy
ZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9y
aWdpbiogdG9wT3JpZ2luKQogICAgIDogbV90aHJlYWRJRCgwKQogICAgICwgbV93b3JrZXJMb2Fk
ZXJQcm94eSh3b3JrZXJMb2FkZXJQcm94eSkKICAgICAsIG1fd29ya2VyUmVwb3J0aW5nUHJveHko
d29ya2VyUmVwb3J0aW5nUHJveHkpCi0gICAgLCBtX3N0YXJ0dXBEYXRhKHN0ZDo6bWFrZV91bmlx
dWU8V29ya2VyVGhyZWFkU3RhcnR1cERhdGE+KHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VD
b2RlLCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgdG9w
T3JpZ2luKSkKKyAgICAsIG1fc3RhcnR1cERhdGEoc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJUaHJl
YWRTdGFydHVwRGF0YT4oc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHN0YXJ0TW9k
ZSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIHRvcE9yaWdpbikpCiAjaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICAsIG1fbm90aWZp
Y2F0aW9uQ2xpZW50KDApCiAjZW5kaWYKQEAgLTE0NCw3ICsxNDYsNyBAQCB2b2lkIFdvcmtlclRo
cmVhZDo6d29ya2VyVGhyZWFkKCkKIAogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1f
dGhyZWFkQ3JlYXRpb25NdXRleCk7Ci0gICAgICAgIG1fd29ya2VyR2xvYmFsU2NvcGUgPSBjcmVh
dGVXb3JrZXJHbG9iYWxTY29wZShtX3N0YXJ0dXBEYXRhLT5tX3NjcmlwdFVSTCwgbV9zdGFydHVw
RGF0YS0+bV91c2VyQWdlbnQsIG1fc3RhcnR1cERhdGEtPm1fY29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzLCBtX3N0YXJ0dXBEYXRhLT5tX3RvcE9yaWdpbi5yZWxlYXNlKCkpOwor
ICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlID0gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUobV9z
dGFydHVwRGF0YS0+bV9zY3JpcHRVUkwsIG1fc3RhcnR1cERhdGEtPm1fdXNlckFnZW50LCBtX3N0
YXJ0dXBEYXRhLT5tX2NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgbV9zdGFy
dHVwRGF0YS0+bV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1f
c3RhcnR1cERhdGEtPm1fdG9wT3JpZ2luLnJlbGVhc2UoKSk7CiAKICAgICAgICAgaWYgKG1fcnVu
TG9vcC50ZXJtaW5hdGVkKCkpIHsKICAgICAgICAgICAgIC8vIFRoZSB3b3JrZXIgd2FzIHRlcm1p
bmF0ZWQgYmVmb3JlIHRoZSB0aHJlYWQgaGFkIGEgY2hhbmNlIHRvIHJ1bi4gU2luY2UgdGhlIGNv
bnRleHQgZGlkbid0IGV4aXN0IHlldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5o
CmluZGV4IGJiNzk1ODJmNjgzYzI1ZGNkYjdmMzQ5ZWYyMDIzYTliNWEzZmQ4YmQuLjE2YzhkYjdi
Njk2MGNiZjBlYTkyOWU0MzFhZjMzOGM4M2ViZDhkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuaApAQCAtNjgsMTAgKzY4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNl
bmRpZgogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2Vy
TG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9k
ZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgU2Vj
dXJpdHlPcmlnaW4qIHRvcE9yaWdpbik7CisgICAgICAgIFdvcmtlclRocmVhZChjb25zdCBVUkwm
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3Jr
ZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRN
b2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlP
cmlnaW4qIHRvcE9yaWdpbik7CiAKICAgICAgICAgLy8gRmFjdG9yeSBtZXRob2QgZm9yIGNyZWF0
aW5nIGEgbmV3IHdvcmtlciBjb250ZXh0IGZvciB0aGUgdGhyZWFkLgotICAgICAgICB2aXJ0dWFs
IFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikgPSAw
OworICAgICAgICB2aXJ0dWFsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xv
YmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BP
cmlnaW4pID0gMDsKIAogICAgICAgICAvLyBFeGVjdXRlcyB0aGUgZXZlbnQgbG9vcCBmb3IgdGhl
IHdvcmtlciB0aHJlYWQuIERlcml2ZWQgY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdG8gcGVyZm9ybSBh
Y3Rpb25zIGJlZm9yZS9hZnRlciBlbnRlcmluZyB0aGUgZXZlbnQgbG9vcC4KICAgICAgICAgdmly
dHVhbCB2b2lkIHJ1bkV2ZW50TG9vcCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDgwMDRlN2U1MTZlYzk1MmUxNmYzZjk4
M2QyOWU3MGRkMmRmMzc3MTEuLjViNjQwNWNmMDIxZjVmZTExOGFiNWU3OWI1NjhiN2Y1MjAwYTdh
MWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNi0wMi0wNSAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NQOiBBbGxvdyBXZWIgV29ya2VycyBpbml0aWF0
ZWQgZnJvbSBhbiBpc29sYXRlZCB3b3JsZCB0byBieXBhc3MgdGhlIG1haW4gd29ybGQgQ29udGVu
dCBTZWN1cml0eSBQb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1MzYyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQ0MDAwMjM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIHRv
IGVuc3VyZSB0aGF0IGEgV2ViIFdvcmtlciBpbml0aWF0ZWQgZnJvbSBhbiBpc29sYXRlZCB3b3Js
ZCBjYW4gYnlwYXNzIHRoZSBtYWluIHdvcmxkCisgICAgICAgIENvbnRlbnQgU2VjdXJpdHkgUG9s
aWN5LgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFz
cy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi1ldmFsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdv
cmxkLWNzcC13b3JrZXItYmxvYi1ldmFsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJs
b2IteGhyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi14aHIuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5
cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3Nw
LXdvcmtlci5odG1sOiBBZGRlZC4KKwogMjAxNi0wMi0wNSAgTmFuIFdhbmcgIDxuX3dhbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIEFYOiBXZWJLaXQgaGFuZ2luZyB3aGVuIFZvaWNlT3ZlciBhdHRl
bXB0cyB0byBmb2N1cyBpbiBvbiBwYWdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1i
bG9iLWV2YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9p
c29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi1ldmFsLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43OThlZDc2ODY2Mzc2Nzk1ZjdkYjUxNzY2YTI2MTBjM2RiZjFi
ODgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9p
c29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi1ldmFsLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoaXMgdGVzdHMgdGhhdCBpbiBhbiBpc29sYXRlZCB3
b3JsZCB0aGUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgb2YgdGhlIHBhcmVudCBvcmlnaW4gKHRo
aXMgcGFnZSkgaXMgYnlwYXNzZWQgYW5kIGEgV2ViIFdvcmtlciBpcyBhbGxvd2VkIHRvIGNhbGwg
ZXZhbCgpLgorCitQQVNTIHdvcmtlciBjYWxsZWQgZXZhbCgpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxk
LWNzcC13b3JrZXItYmxvYi1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1ibG9iLWV2YWwu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNjFiZTRmNDdmZTEyZjFiMTc3YTJhZTg1YzM5M2Q0YTkwMGI4ZjE1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29s
YXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi1ldmFsLmh0bWwKQEAg
LTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiIGNvbnRlbnQ9InNjcmlwdC1zcmMgJ3Nl
bGYnICd1bnNhZmUtaW5saW5lJyI+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0
IGluIGFuIGlzb2xhdGVkIHdvcmxkIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBvZiB0aGUg
cGFyZW50IG9yaWdpbiAodGhpcyBwYWdlKSBpcyBieXBhc3NlZCBhbmQgYSBXZWIgV29ya2VyIGlz
IGFsbG93ZWQgdG8gY2FsbCA8Y29kZT5ldmFsKCk8L2NvZGU+LjwvcD4KKzxwcmUgaWQ9InJlc3Vs
dCI+PC9wcmU+Cis8c2NyaXB0Pgord2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldmVudCkK
K3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikudGV4dENvbnRlbnQgPSBl
dmVudC5kYXRhOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHZhciBzY3Jp
cHQgPSBbCisgICAgICAgICd0cnkgeycsCisgICAgICAgICcgICAgZXZhbCgiMSArIDAiKTsnLAor
ICAgICAgICAnICAgIHNlbGYucG9zdE1lc3NhZ2UoIlBBU1Mgd29ya2VyIGNhbGxlZCBldmFsKCku
Iik7JywKKyAgICAgICAgJ30gY2F0Y2ggKGV4Y2VwdGlvbikgeycsCisgICAgICAgICcgICAgc2Vs
Zi5wb3N0TWVzc2FnZSgiRkFJTCBzaG91bGQgbm90IGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlvbi4g
VGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24gKyAiLiIpOycsCisgICAgICAgICd9JywKKyAg
ICBdLmpvaW4oIlxuIik7CisKKyAgICB2YXIgd29ya2VyOworICAgIHRyeSB7CisgICAgICAgIHdv
cmtlciA9IG5ldyBXb3JrZXIod2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW3Nj
cmlwdF0pKSk7CisgICAgICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZlbnQpIHsg
d2luZG93LnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEsICIqIikgfTsKKyAgICB9IGNhdGNoIChleGNl
cHRpb24pIHsKKyAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKCJGQUlMIHNob3VsZCBub3QgaGF2
ZSB0aHJvd24gYW4gZXhjZXB0aW9uIHdoZW4gY3JlYXRpbmcgd29ya2VyLiBUaHJldyBleGNlcHRp
b24gIiArIGV4Y2VwdGlvbiArICIuIiwgIioiKTsKKyAgICB9Cit9CisKK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKDAs
IHJ1blRlc3QudG9TdHJpbmcoKSArICI7cnVuVGVzdCgpOyIpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lz
b2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1ibG9iLXhoci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlw
YXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1ibG9iLXhoci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjVmYjExMGEyNWE3YmI3MTNjMzhlYjBlN2E4MDVjMzFmNTgxYTlhYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBh
c3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2IteGhyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKK1RoaXMgdGVzdHMgdGhhdCBpbiBhbiBpc29sYXRlZCB3b3JsZCB0aGUgQ29udGVudCBT
ZWN1cml0eSBQb2xpY3kgb2YgdGhlIHBhcmVudCBvcmlnaW4gKHRoaXMgcGFnZSkgaXMgYnlwYXNz
ZWQgYW5kIGEgV2ViIFdvcmtlciBpcyBhbGxvd2VkIHRvIG1ha2UgYW4gWEhSIHJlcXVlc3QuCisK
K1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0
ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2IteGhyLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29y
bGQtY3NwLXdvcmtlci1ibG9iLXhoci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhMjRkZTdlNDYzZDMxMTVh
YzM3YjlhYTFhOWUwMzQ4NDZhYTgwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdv
cmtlci1ibG9iLXhoci5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJpdHktUG9saWN5IiBj
b250ZW50PSJzY3JpcHQtc3JjICdzZWxmJyAndW5zYWZlLWlubGluZSc7IGNvbm5lY3Qtc3JjICdu
b25lJyI+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0IGluIGFuIGlzb2xhdGVk
IHdvcmxkIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBvZiB0aGUgcGFyZW50IG9yaWdpbiAo
dGhpcyBwYWdlKSBpcyBieXBhc3NlZCBhbmQgYSBXZWIgV29ya2VyIGlzIGFsbG93ZWQgdG8gbWFr
ZSBhbiBYSFIgcmVxdWVzdC48L3A+Cis8cHJlIGlkPSJyZXN1bHQiPjwvcHJlPgorPHNjcmlwdD4K
K3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZlbnQpCit7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlc3VsdCIpLnRleHRDb250ZW50ID0gZXZlbnQuZGF0YTsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQor
CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgc2NyaXB0ID0gWworICAgICAgICAndmFy
IGV4Y2VwdGlvbjsnLAorICAgICAgICAndmFyIHhocjsnLAorICAgICAgICAndHJ5IHsnLAorICAg
ICAgICAnICAgIHZhciBpc0FzeW5jaHJvbm91cyA9IGZhbHNlOycsCisgICAgICAgICcgICAgeGhy
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0OycsCisgICAgICAgICcgICAgeGhyLm9wZW4oIkdFVCIsICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiLCBp
c0FzeW5jaHJvbm91cyk7JywKKyAgICAgICAgJyAgICB4aHIuc2VuZCgpOycsCisgICAgICAgICd9
IGNhdGNoIChlKSB7JywKKyAgICAgICAgJyAgICBleGNlcHRpb24gPSBlOycsCisgICAgICAgICd9
JywKKyAgICAgICAgJ2lmIChleGNlcHRpb24pJywKKyAgICAgICAgJyAgICBzZWxmLnBvc3RNZXNz
YWdlKCJGQUlMIHNob3VsZCBub3QgaGF2ZSB0aHJvd24gYW4gZXhjZXB0aW9uLiBUaHJldyBleGNl
cHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7JywKKyAgICAgICAgJ2Vsc2UnLAorICAgICAgICAn
ICAgIHNlbGYucG9zdE1lc3NhZ2UoeGhyLnJlc3BvbnNlKTsnLAorICAgIF0uam9pbigiXG4iKTsK
KworICAgIHZhciB3b3JrZXI7CisgICAgdHJ5IHsKKyAgICAgICAgd29ya2VyID0gbmV3IFdvcmtl
cih3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbc2NyaXB0XSkpKTsKKyAgICAg
ICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldmVudCkgeyB3aW5kb3cucG9zdE1lc3Nh
Z2UoZXZlbnQuZGF0YSwgIioiKSB9OworICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAgICAg
ICB3aW5kb3cucG9zdE1lc3NhZ2UoIkZBSUwgc2hvdWxkIG5vdCBoYXZlIHRocm93biBhbiBleGNl
cHRpb24gd2hlbiBjcmVhdGluZyB3b3JrZXIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9u
ICsgIi4iLCAiKiIpOworICAgIH0KK30KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRl
c3RSdW5uZXIuZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoMCwgcnVuVGVzdC50b1N0cmlu
ZygpICsgIjtydW5UZXN0KCk7Iik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBh
c3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2Vy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTgwYThjZThjMzVlYmZjOGExMmUzMTAxYjlkNGFj
Yzg2M2FhNTM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0cyB0aGF0IGluIGFuIGlzb2xhdGVkIHdvcmxk
IHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBvZiB0aGUgcGFyZW50IG9yaWdpbiAodGhpcyBw
YWdlKSBpcyBieXBhc3NlZCBhbmQgYSBXZWIgV29ya2VyIGlzIGFsbG93ZWQgdG8gYmUgaW5zdGFu
dGlhdGVkIHdpdGggYSBzY3JpcHQgVVJMIG5vdCBsaXN0ZWQgaW4gdGhlIENTUCBvZiB0aGUgcGFn
ZS4KKworUEFTUyB3b3JrZXIgaW5zdGFudGlhdGVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13
b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3Js
ZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc5MmZmY2I3
Y2UzNWY1OWY4NDIzN2NmMTFhYTQ5MmIxZmY1MGVmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3Js
ZC1jc3Atd29ya2VyLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPCEtLSBGSVhNRTogQWRkIGNoaWxkLXNyYyAnbm9uZScgb25jZSB3ZSBpbXBs
ZW1lbnQgdGhlIGNoaWxkLXNyYyBkaXJlY3RpdmUuIC0tPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1TZWN1cml0eS1Qb2xpY3kiIGNvbnRlbnQ9InNjcmlwdC1zcmMgJ3Vuc2FmZS1pbmxpbmUn
Ij4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQgaW4gYW4gaXNvbGF0ZWQgd29y
bGQgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9mIHRoZSBwYXJlbnQgb3JpZ2luICh0aGlz
IHBhZ2UpIGlzIGJ5cGFzc2VkIGFuZCBhIFdlYiBXb3JrZXIgaXMgYWxsb3dlZCB0byBiZSBpbnN0
YW50aWF0ZWQgd2l0aCBhIHNjcmlwdCBVUkwgbm90IGxpc3RlZCBpbiB0aGUgQ1NQIG9mIHRoZSBw
YWdlLjwvcD4KKzxwcmUgaWQ9InJlc3VsdCI+PC9wcmU+Cis8c2NyaXB0Pgord2luZG93Lm9ubWVz
c2FnZSA9IGZ1bmN0aW9uIChldmVudCkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVzdWx0IikudGV4dENvbnRlbnQgPSBldmVudC5kYXRhOworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1
blRlc3QoKQoreworICAgIHZhciB3b3JrZXI7CisgICAgdHJ5IHsKKyAgICAgICAgd29ya2VyID0g
bmV3IFdvcmtlcigiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9yZXNvdXJjZXMvd29ya2VyLnBocD90eXBlPWFsZXJ0LXBhc3MiKTsKKyAgICAgICAg
d2luZG93LnBvc3RNZXNzYWdlKCJQQVNTIHdvcmtlciBpbnN0YW50aWF0ZWQuIiwgIioiKTsKKyAg
ICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKCJGQUlM
IHNob3VsZCBub3QgaGF2ZSB0aHJvd24gYW4gZXhjZXB0aW9uIHdoZW4gY3JlYXRpbmcgd29ya2Vy
LiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIiwgIioiKTsKKyAgICB9Cit9CisK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmV2YWx1YXRlU2NyaXB0SW5J
c29sYXRlZFdvcmxkKDAsIHJ1blRlc3QudG9TdHJpbmcoKSArICI7cnVuVGVzdCgpOyIpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270829</attachid>
            <date>2016-02-07 13:01:38 -0800</date>
            <delta_ts>2016-02-07 13:42:05 -0800</delta_ts>
            <desc>Patch and Layout Tests</desc>
            <filename>bug-153622-20160207130116.patch</filename>
            <type>text/plain</type>
            <size>47087</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2MTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2M3OWM1ZWIwZjk2ODIy
NzkzYWQyOGYyOGYzOTQ4Mzk3NDk4OTlmYi4uYzQ1MTQzMDViOWExNmZlNDQ2NjA3NzVlN2U5ZDIy
MDI5OWQxNGQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDE2LTAyLTA3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBDU1A6IEFsbG93IFdlYiBX
b3JrZXJzIGluaXRpYXRlZCBmcm9tIGFuIGlzb2xhdGVkIHdvcmxkIHRvIGJ5cGFzcyB0aGUgbWFp
biB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
NDQwMDAyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBXZWIgV29ya2VycyBpbml0aWF0ZWQgZnJvbSBhbiBpc29s
YXRlZCB3b3JsZCAoc2F5LCBhIFNhZmFyaSBDb250ZW50IFNjcmlwdCBFeHRlbnNpb24pCisgICAg
ICAgIHdvdWxkIGJlIHN1YmplY3QgdG8gdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9mIHRo
ZSBwYWdlLgorCisgICAgICAgIEN1cnJlbnRseSBjb2RlIGluIGFuIGlzb2xhdGVkIHdvcmxkIHRo
YXQgZG9lcyBub3QgZXhlY3V0ZSBpbiBhIFdlYiBXb3JrZXIgaXMgZXhlbXB0IGZyb20gdGhlIENT
UCBvZgorICAgICAgICB0aGUgcGFnZS4gSG93ZXZlciwgY29kZSB0aGF0IHJ1bnMgaW5zaWRlIGEg
V2ViIFdvcmtlciB0aGF0IHdhcyBpbml0aWF0ZWQgZnJvbSBhbiBpc29sYXRlZCB3b3JsZCBpcwor
ICAgICAgICBzdWJqZWN0IHRvIHRoZSBDU1Agb2YgdGhlIHBhZ2UuIEluc3RlYWQsIHN1Y2ggV2Vi
IFdvcmtlciBjb2RlIHNob3VsZCBhbHNvIGJlIGV4ZW1wdCBmcm9tIHRoZSBDU1Agb2YKKyAgICAg
ICAgdGhlIHBhZ2UuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0
ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4t
d29ybGQtY3NwLXdvcmtlci1ibG9iLXhoci5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci5odG1s
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldDo6Y29ubmVjdCk6IE1vZGlmaWVkIHRvIGFzayB0aGUgc2NyaXB0
IGV4ZWN1dGlvbiBjb250ZXh0IHdoZXRoZXIgdG8gYnlwYXNzIHRoZQorICAgICAgICBtYWluIHdv
cmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG5vdyB0aGF0IHNjcmlwdCBleGVjdXRpb24gY29u
dGV4dCBrbm93cyB0aGlzIGluZm9ybWF0aW9uLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6c2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KTogRGVsZXRlZDsgbW92ZWQg
bG9naWMgZnJvbSBoZXJlLi4uCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KTogLi4udG8g
aGVyZS4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KTogQWRkZWQ7IGRl
ZmF1bHRzIHRvIGZhbHNlIC0KKyAgICAgICAgZG8gbm90IGJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBD
b250ZW50IFNlY3VyaXR5IFBvbGljeS4KKyAgICAgICAgKiBwYWdlL0V2ZW50U291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpjcmVhdGUpOiBNb2RpZmllZCB0byBhc2sg
dGhlIHNjcmlwdCBleGVjdXRpb24gY29udGV4dCB3aGV0aGVyIHRvIGJ5cGFzcyB0aGUKKyAgICAg
ICAgbWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBub3cgdGhhdCBzY3JpcHQgZXhl
Y3V0aW9uIGNvbnRleHQga25vd3MgdGhpcyBpbmZvcm1hdGlvbi4KKyAgICAgICAgKiBwYWdlL2Nz
cC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNl
Y3VyaXR5UG9saWN5OjpzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kp
OiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oOgor
ICAgICAgICAqIHdvcmtlcnMvQWJzdHJhY3RXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWJzdHJhY3RXb3JrZXI6OnJlc29sdmVVUkwpOiBCeXBhc3MgdGhlIG1haW4gd29ybGQgQ29udGVu
dCBTZWN1cml0eSBQb2xpY3kgaWYgYXBwbGljYWJsZS4KKyAgICAgICAgQWRkZWQgRklYTUUgY29t
bWVudCB0byBlbmZvcmNlIHRoZSBjaGlsZC1zcmMgZGlyZWN0aXZlIG9mIHRoZSBkb2N1bWVudCdz
IENTUCAoYXMgb3Bwb3NlZCB0byB0aGUgc2NyaXB0LXNyYworICAgICAgICBkaXJlY3RpdmUpIG9u
IHRoZSB3b3JrZXIncyBzY3JpcHQgVVJMLiBBbHNvLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmNvbnRlbnRTZWN1cml0eVBvbGljeSgpIHNob3VsZAorICAgICAgICBhbHdheXMgYmUgbm9uLW51
bGwganVzdCBhcyB3ZSBleHBlY3Qgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9y
aWdpbigpIHRvIGJlIG5vbi1udWxsLiBBc3NlcnQKKyAgICAgICAgdGhpcyBpbnZhcmlhbnQgdG8g
Y2F0Y2ggY2FzZXMgd2hlcmUgYSBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGlzIG5vdCBwcm9wZXJs
eSBpbml0aWFsaXplZC4KKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpj
cmVhdGUpOiBNb2RpZmllZCB0byB0YWtlIGJvb2xlYW4gYXJndW1lbnQgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5CisgICAgICAgIGFzIHRvIHdoZXRoZXIgdG8gYnlw
YXNzIHRoZSBtYWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGFuZCBvbmx5IGFwcGx5
IHRoZSBDb250ZW50IFNlY3VyaXR5CisgICAgICAgIFBvbGljeSBoZWFkZXJzIHdoZW4gc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5IGlzIGZhbHNlLgorICAgICAgICAo
V2ViQ29yZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OkRlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlKTogUGFzcyB0aHJvdWdoIGEgYm9vbGVhbiBhcmd1bWVudCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kKKyAgICAgICAgYXMgdG8gd2hldGhlciB0byBieXBh
c3MgdGhlIG1haW4gd29ybGQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuCisgICAgICAgICogd29y
a2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvRGVk
aWNhdGVkV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtl
clRocmVhZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKTogRGl0dG8u
CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OmNyZWF0ZSk6IFN0
b3JlIHdoZXRoZXIgd2Ugc2hvdWxkIGJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBDb250ZW50IFNlY3Vy
aXR5IFBvbGljeSBzbworICAgICAgICB0aGF0IHdlIGNhbiBwYXNzIGl0IHRvIFdvcmtlck1lc3Nh
Z2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKCkgaW4gV29ya2VyOjpub3RpZnlGaW5p
c2hlZCgpLgorICAgICAgICBXZSBuZWVkIHRvIHN0b3JlIHRoaXMgZGVjaXNpb24gaGVyZSBhcyBv
cHBvc2VkIHRvIGRldGVybWluaW5nIGl0IGF0IGFueSBsYXRlciB0aW1lIChzYXksIGluIFdvcmtl
cjo6bm90aWZ5RmluaXNoZWQoKSkKKyAgICAgICAgYmVjYXVzZSBpdCBpcyBkZXBlbmRlbnQgb24g
dGhlIGN1cnJlbnQgSmF2YVNjcmlwdCBwcm9ncmFtIHN0YWNrIGF0IHRoZSB0aW1lIHRoaXMgZnVu
Y3Rpb24gaXMgaW52b2tlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6bm90aWZ5RmluaXNo
ZWQpOiBQYXNzIHdoZXRoZXIgdG8gYnlwYXNzIHRoZSBtYWluIHdvcmxkIENvbnRlbnQgU2VjdXJp
dHkgUG9saWN5LgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmg6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxT
Y29wZTo6V29ya2VyR2xvYmFsU2NvcGUpOiBNb2RpZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0
byB3aGV0aGVyIHRvIGJ5cGFzcyB0aGUKKyAgICAgICAgbWFpbiB3b3JsZCBDb250ZW50IFNlY3Vy
aXR5IFBvbGljeSBhbmQgc3RvcmUgaXQgaW4gYSBtZW1iZXIgZmllbGQuIEFsc28sIGFsd2F5cyBp
bnN0YW50aWF0ZSBhIENvbnRlbnQKKyAgICAgICAgU2VjdXJpdHkgUG9saWN5IG9iamVjdCBhcyBv
dXIgY3VycmVudCBjb2RlIGFzc3VtZXMgdGhhdCBvbmUgaXMgYWx3YXlzIGNyZWF0ZWQuCisgICAg
ICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGVQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5n
UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0
V29ya2VyR2xvYmFsU2NvcGUpOiBQYXNzIHRocm91Z2ggYSBib29sZWFuIGFyZ3VtZW50IHNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeQorICAgICAgICBhcyB0byB3aGV0
aGVyIHRvIGJ5cGFzcyB0aGUgbWFpbiB3b3JsZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4KKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkU3RhcnR1
cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKTogTW9kaWZpZWQgdG8gdGFrZSBhIGJvb2xl
YW4gYXJndW1lbnQgYXMgdG8KKyAgICAgICAgd2hldGhlciB0byBieXBhc3MgdGhlIG1haW4gd29y
bGQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgYW5kIHN0b3JlIGl0IGluIGEgbWVtYmVyIGZpZWxk
LgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpXb3JrZXJUaHJlYWQpOiBQYXNzIHRo
cm91Z2ggYSBib29sZWFuIGFyZ3VtZW50IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeQorICAgICAgICBhcyB0byB3aGV0aGVyIHRvIGJ5cGFzcyB0aGUgbWFpbiB3b3Js
ZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVh
ZDo6d29ya2VyVGhyZWFkKTogRGl0dG8uCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQu
aDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
WE1MSHR0cFJlcXVlc3Q6Om9wZW4pOiBNb2RpZmllZCB0byBhc2sgdGhlIHNjcmlwdCBleGVjdXRp
b24gY29udGV4dCB3aGV0aGVyIHRvIGJ5cGFzcyB0aGUKKyAgICAgICAgbWFpbiB3b3JsZCBDb250
ZW50IFNlY3VyaXR5IFBvbGljeSBub3cgdGhhdCBzY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQga25v
d3MgdGhpcyBpbmZvcm1hdGlvbi4KKwogMjAxNi0wMi0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gU2Nyb2xsYmFycyBpbmNvcnJl
Y3RseSByZW5kZXJlZCB3aXRoIG9sZGVyIHZlcnNpb25zIG9mIEdUSysKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggMDgzNzZkZTRhN2Q5
OThiNzI0YTA5NGUwMDFlNTRiZjUwMGEyY2U3OC4uMTNiYjE0Nzc5NWVmNDdlZDI0M2M2YjRmYjY3
ZjY2MjE1YzNmZjRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAKQEAgLTIzOCw4ICsyMzgsNyBAQCB2b2lkIFdlYlNvY2tldDo6Y29ubmVj
dChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHByb3RvY29scywgRXhj
ZQogICAgIH0KIAogICAgIC8vIEZJWE1FOiBDb252ZXJ0IHRoaXMgdG8gY2hlY2sgdGhlIGlzb2xh
dGVkIHdvcmxkJ3MgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgb25jZSB3ZWJraXQub3JnL2IvMTA0
NTIwIGlzIHNvbHZlZC4KLSAgICBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSA9IENvbnRlbnRTZWN1cml0eVBvbGljeTo6c2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGlm
ICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxs
b3dDb25uZWN0VG9Tb3VyY2UobV91cmwsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSkpIHsKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVu
dFNlY3VyaXR5UG9saWN5KCktPmFsbG93Q29ubmVjdFRvU291cmNlKG1fdXJsLCBzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSgpKSkgewogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwogCiAgICAgICAgIC8vIEZJWE1FOiBT
aG91bGQgdGhpcyBiZSB0aHJvd2luZyBhbiBleGNlcHRpb24/CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDM0ZTA5ZTRjZjYwNmUwYWQx
MWM0MTA2MDNiMGYyYjQ5ZGYwZWFlNjIuLmFhZTVjM2UzOGQ5Mzc3ZGJhNTk2MDYzYWU0Y2Y4YjZj
OWVkNzkxOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuY3BwCkBAIC01MTksMTcgKzUxOSw2IEBAIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNj
cmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxkKERPTVdyYXBwZXJXb3JsZCYKICAg
ICByZXR1cm4gZXZhbHVhdGVJbldvcmxkKHNvdXJjZUNvZGUsIHdvcmxkKTsKIH0KIAotYm9vbCBT
Y3JpcHRDb250cm9sbGVyOjpzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3koKQotewotICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gSlNET01XaW5kb3c6OmNvbW1vblZN
KCkudG9wQ2FsbEZyYW1lOwotICAgIGlmIChjYWxsRnJhbWUgPT0gQ2FsbEZyYW1lOjpub0NhbGxl
cigpKSAKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIERPTVdyYXBwZXJXb3JsZCYgZG9tV3Jh
cHBlcldvcmxkID0gY3VycmVudFdvcmxkKGNhbGxGcmFtZSk7Ci0gICAgaWYgKGRvbVdyYXBwZXJX
b3JsZC5pc05vcm1hbCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KIGJvb2wgU2NyaXB0Q29udHJvbGxlcjo6Y2FuRXhlY3V0ZVNjcmlwdHMoUmVhc29uRm9y
Q2FsbGluZ0NhbkV4ZWN1dGVTY3JpcHRzIHJlYXNvbikKIHsKICAgICBpZiAobV9mcmFtZS5kb2N1
bWVudCgpICYmIG1fZnJhbWUuZG9jdW1lbnQoKS0+aXNTYW5kYm94ZWQoU2FuZGJveFNjcmlwdHMp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKaW5k
ZXggMjk3NmZjMzQzNjhhNDUwOGUxODhiZDk4MTI2MDdhYzBjMTkzZDYyMy4uNjJhNTFiODU1ZTE2
YWM1MGNkOTUwOWYzMDJlMmI4ZDg1MjlkMzU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaApAQCAtMTY2LDggKzE2Niw2IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBOUE9iamVjdCogd2luZG93U2NyaXB0TlBPYmplY3QoKTsKICNlbmRp
ZgogCi0gICAgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ko
KTsKLQogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvd1NoZWxsKiBpbml0
U2NyaXB0KERPTVdyYXBwZXJXb3JsZCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBm
MDAwYjFmMjg4NTFjZDEwYWUwNjNjZGVlODg3MWI1YjcxMjYxYWNhLi42MGE4ZjhlNjU5OThhMDY1
NTMxMzQzNTQ1ZmVkN2I2NTczMjRlNjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI0
MzEsNiArMjQzMSwxNyBAQCB2b2lkIERvY3VtZW50OjpyZXN1bWVEZXZpY2VNb3Rpb25BbmRPcmll
bnRhdGlvblVwZGF0ZXMoKQogI2VuZGlmCiB9CiAKK2Jvb2wgRG9jdW1lbnQ6OnNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0Cit7CisgICAgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IEpTRE9NV2luZG93Ojpjb21tb25WTSgpLnRvcENhbGxGcmFtZTsK
KyAgICBpZiAoY2FsbEZyYW1lID09IEpTQzo6Q2FsbEZyYW1lOjpub0NhbGxlcigpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgRE9NV3JhcHBlcldvcmxkJiBkb21XcmFwcGVyV29ybGQgPSBj
dXJyZW50V29ybGQoY2FsbEZyYW1lKTsKKyAgICBpZiAoZG9tV3JhcHBlcldvcmxkLmlzTm9ybWFs
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBE
b2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0cygpCiB7CiAjaWYg
UExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBjYjYyZmU4NzYzN2MxYzdhZDA2
MGU2OTc2MDZiNzkzNDEwYzNiNjBhLi5hMjQzNTdiNWU1OTlmNTRmOWU1MGUwZWFjZmQxYWIwYzBj
ZGMwNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNjAzLDYgKzYwMyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHByZXBhcmVGb3JEZXN0cnVjdGlvbigpOwogCiAgICAgLy8gT3ZlcnJpZGUgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCBtZXRob2RzIHRvIGRvIGFkZGl0aW9uYWwgd29yaworICAgIGJv
b2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgY29uc3Qgb3Zl
cnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRBY3RpdmVET01PYmplY3RzKEFj
dGl2ZURPTU9iamVjdDo6UmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGUgZmluYWw7CiAgICAg
dmlydHVhbCB2b2lkIHJlc3VtZUFjdGl2ZURPTU9iamVjdHMoQWN0aXZlRE9NT2JqZWN0OjpSZWFz
b25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcEFj
dGl2ZURPTU9iamVjdHMoKSBvdmVycmlkZSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IGMxYjFkMGJlN2YwZjI1YzRhNzA0OWVkNGMwMzJi
MDI2OTY1MDY3NWEuLmM2YTkxMTZlMTZiMWI3MjRiZjZiOGI3NjFiNDVhMjNlNDRlYjE2ZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtODIsNiAr
ODIsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4o
KSBjb25zdCA9IDA7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29u
dGVudFNlY3VyaXR5UG9saWN5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKwogICAgIFB1Ymxp
Y1VSTE1hbmFnZXImIHB1YmxpY1VSTE1hbmFnZXIoKTsKIAogICAgIC8vIEFjdGl2ZSBvYmplY3Rz
IGFyZSBub3QgZ2FyYmFnZSBjb2xsZWN0ZWQgZXZlbiBpZiBpbmFjY2Vzc2libGUsIGUuZy4gYmVj
YXVzZSB0aGVpciBhY3Rpdml0eSBtYXkgcmVzdWx0IGluIGNhbGxiYWNrcyBiZWluZyBpbnZva2Vk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcAppbmRleCA1ZjZjOGI1NDk3M2ZiZGVlYWQ5
ZGFmNzIyNTU1YzRiNTU3MTM2M2Q1Li4yZTYxOWVhYzVkMTZjY2I4M2RmNjY1MTJjZWU3ZDg1NzM4
MThkMTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcApAQCAtODUsOCArODUsNyBA
QCBSZWZQdHI8RXZlbnRTb3VyY2U+IEV2ZW50U291cmNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgY29uc3QgUwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBDb252ZXJ0
IHRoaXMgdG8gY2hlY2sgdGhlIGlzb2xhdGVkIHdvcmxkJ3MgQ29udGVudCBTZWN1cml0eSBQb2xp
Y3kgb25jZSB3ZWJraXQub3JnL2IvMTA0NTIwIGlzIHNvbHZlZC4KLSAgICBib29sIHNob3VsZEJ5
cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSA9IENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnRleHQpOwot
ICAgIGlmICghY29udGV4dC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dDb25uZWN0VG9T
b3VyY2UoZnVsbFVSTCwgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
KSkgeworICAgIGlmICghY29udGV4dC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dDb25u
ZWN0VG9Tb3VyY2UoZnVsbFVSTCwgY29udGV4dC5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50
U2VjdXJpdHlQb2xpY3koKSkpIHsKICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIGJlIHRo
cm93aW5nIGFuIGV4Y2VwdGlvbj8KICAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7CiAgICAgICAg
IHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29u
dGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRT
ZWN1cml0eVBvbGljeS5jcHAKaW5kZXggYjYwMTJkMzVkYzVmYjJhYTJlYjdhMDY4ZTFiZmM5MmU3
MmEwNjk4Mi4uNDhlYzEzNTRhNDYxODhkZTAxYzY0OWNhNzQyNzI1ZmVmNWM0M2JhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBA
IC0xNzc1LDE1ICsxNzc1LDUgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmV4cGVyaW1l
bnRhbEZlYXR1cmVzRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9
Ci0KLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjpzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3koU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKLXsKLSAg
ICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7Ci0gICAgICAgIGF1dG8mIGRvY3VtZW50ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOwotICAgICAgICByZXR1cm4gZG9jdW1lbnQuZnJh
bWUoKSAmJiBkb2N1bWVudC5mcmFtZSgpLT5zY3JpcHQoKS5zaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3koKTsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIGZhbHNlOwot
fQogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuaAppbmRleCBkOTQyNzJkN2EyY2JlNjdlOWJjYTVmN2IwZGJmOTNiYWNlZTU4YTZjLi45
ODE3YTQ5YTM2ZTY5NjE5ODg0ZThhMzViYTA5YmY0NDJhZDY5YzAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuaApAQCAtMTAyLDggKzEwMiw2
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgZXhwZXJpbWVudGFsRmVhdHVyZXNFbmFibGVkKCkgY29u
c3Q7CiAKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3koU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwotCiAgICAgLy8gVGhlIGZvbGxvd2lu
ZyBmdW5jdGlvbnMgYXJlIHVzZWQgYnkgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVzIHRvIGNhbGwg
YmFjayBpbnRvIHRoaXMgb2JqZWN0IHdoZW4gcGFyc2luZywgdmFsaWRhdGluZywKICAgICAvLyBh
bmQgYXBwbHlpbmcgYSBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4KICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIG1ha2UgdGhlIHZhcmlvdXMgZGlyZWN0aXZlcyBzZXJ2ZSBvbmx5IGFzIHN0YXRlIHN0
b3JlcyBmb3IgdGhlIHBhcnNlZCBwb2xpY3kgYW5kIHJlbW92ZSB0aGVzZSBmdW5jdGlvbnMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuY3BwCmluZGV4IDgwMWM4ZWY1N2Qy
YTQ0ZmU1NjAxZTBiOTYxOTg2MmJhOWIxNWM5YTEuLjM5OGU3NjQ3MDNlODQ5YmU5YmZlZDI3NmRl
NmFmNWMwZjQ1ZTMxNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJh
Y3RXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIu
Y3BwCkBAIC02Miw3ICs2MiwxMCBAQCBVUkwgQWJzdHJhY3RXb3JrZXI6OnJlc29sdmVVUkwoY29u
c3QgU3RyaW5nJiB1cmwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm4gVVJMKCk7
CiAgICAgfQogCi0gICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNlY3Vy
aXR5UG9saWN5KCkgJiYgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNlY3VyaXR5
UG9saWN5KCktPmFsbG93U2NyaXB0RnJvbVNvdXJjZShzY3JpcHRVUkwpKSB7CisgICAgLy8gRklY
TUU6IEVuZm9yY2UgdGhlIGNoaWxkLXNyYyBkaXJlY3RpdmUgaW5zdGVhZCBvZiBzY3JpcHQtc3Jj
IHBlciA8aHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFwcHNlYy1jc3AvMi8jZGlyZWN0aXZlLWNo
aWxkLXNyYy13b3JrZXJzPiAoMjkgQXVndXN0IDIwMTUpLgorICAgIC8vIFNlZSA8aHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzU2Mj4uCisgICAgQVNTRVJUKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCkpOworICAgIGlmICgh
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dT
Y3JpcHRGcm9tU291cmNlKHNjcmlwdFVSTCwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSkpIHsKICAgICAgICAgZWMg
PSBTRUNVUklUWV9FUlI7CiAgICAgICAgIHJldHVybiBVUkwoKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCmlu
ZGV4IDkxYzdmMjMxMWI4MmYwNTJiNmE0OGZkYTcwZGI0MTRkZGUyYzU2MjQuLjMwZmRlMWM2MTVh
ZGU1MjhlMzBlMzI1NGExMWU2YTRiYWU4ZDY4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC00MCwxNSArNDAs
MTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGU+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoY29uc3QgVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwg
Y29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9y
aWdpbikKK1JlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGU6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywg
Ym9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFBhc3NSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKIHsKLSAgICBSZWY8RGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGU+IGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IERlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlKHVybCwgdXNlckFnZW50LCB0aHJlYWQsIHRvcE9yaWdpbikpOwotICAgIGNvbnRleHQt
PmFwcGx5Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKGNvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyk7CisgICAgUmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlPiBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSh1
cmwsIHVzZXJBZ2VudCwgdGhyZWFkLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3ksIHRvcE9yaWdpbikpOworICAgIGlmICghc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29u
dGVudFNlY3VyaXR5UG9saWN5KQorICAgICAgICBjb250ZXh0LT5hcHBseUNvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyhjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMpOwogICAgIHJldHVybiBjb250ZXh0OwogfQogCi1EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQotICAgIDogV29ya2VyR2xvYmFsU2NvcGUodXJsLCB1
c2VyQWdlbnQsIHRocmVhZCwgdG9wT3JpZ2luKQorRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6
OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiB0b3BPcmlnaW4pCisgICAgOiBXb3JrZXJHbG9iYWxTY29wZSh1cmwsIHVzZXJBZ2VudCwg
dGhyZWFkLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIHRvcE9y
aWdpbikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDI5YjcyMmEwZDc1MzJmN2E1MzA3ZjdkMDY4M2Y0NGRk
MTNjY2NmOTEuLjAzMTU1ZjM5MjgxZmY1ZDFiM2FkMTU0NTdiZDcyZGE5M2YzNzk2ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
LmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIERlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlckdsb2JhbFNjb3BlIHsKICAgICBw
dWJsaWM6CiAgICAgICAgIHR5cGVkZWYgV29ya2VyR2xvYmFsU2NvcGUgQmFzZTsKLSAgICAgICAg
c3RhdGljIFJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlKGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBjb25zdCBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiB0b3BPcmlnaW4pOworICAgICAgICBzdGF0aWMgUmVmPERlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlPiBjcmVhdGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERl
ZGljYXRlZFdvcmtlclRocmVhZCYsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pOwogICAgICAgICB2aXJ0dWFs
IH5EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSgpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBp
c0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQpAQCAtNjAsNyArNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERlZGlj
YXRlZFdvcmtlclRocmVhZCYgdGhyZWFkKCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9w
T3JpZ2luKTsKKyAgICAgICAgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYsIGJvb2wgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiB0b3BPcmlnaW4pOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcApp
bmRleCAzNjA0YmY4NjQ1NWFlMzY2OWRlMGFhNzE4ODVlODRhMTk3ODBkMTExLi4wMzk0ZjBkNzg3
MzY0MDZlZTdlODExNzRkODMyMjg1ZThlMGMzNDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwCkBAIC0zOCw4ICszOCw4IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpEZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBT
dHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwg
V29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1v
ZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMm
IGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgY29uc3QgU2VjdXJpdHlPcmln
aW4qIHRvcE9yaWdpbikKLSAgICA6IFdvcmtlclRocmVhZCh1cmwsIHVzZXJBZ2VudCwgc291cmNl
Q29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdvcmtlck9iamVjdFByb3h5LCBzdGFydE1vZGUsIGNv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgdG9wT3JpZ2luKQorRGVkaWNhdGVk
V29ya2VyVGhyZWFkOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRl
clByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVj
dFByb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCisgICAgOiBXb3JrZXJUaHJlYWQodXJs
LCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJPYmplY3RQ
cm94eSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdG9wT3JpZ2luKQogICAg
ICwgbV93b3JrZXJPYmplY3RQcm94eSh3b3JrZXJPYmplY3RQcm94eSkKIHsKIH0KQEAgLTQ4LDkg
KzQ4LDkgQEAgRGVkaWNhdGVkV29ya2VyVGhyZWFkOjp+RGVkaWNhdGVkV29ya2VyVGhyZWFkKCkK
IHsKIH0KIAotUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNy
ZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHRvcE9yaWdpbikKK1JlZjxXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyVGhyZWFk
OjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9w
T3JpZ2luKQogewotICAgIHJldHVybiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRl
KHVybCwgdXNlckFnZW50LCAqdGhpcywgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLCB0b3BPcmlnaW4pOworICAgIHJldHVybiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6
Y3JlYXRlKHVybCwgdXNlckFnZW50LCAqdGhpcywgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIHRv
cE9yaWdpbik7CiB9CiAKIHZvaWQgRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3Ao
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJl
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKaW5k
ZXggODlkODhmMjAzNjI4OGQxMzhjODg2YTNhNzEwN2EzMzgwYmRmNjU3YS4uOWQ3ZWYwZjQ5NDQ2
ZmFmYWQ5M2JlMjZjZWNlM2Q3NWUzZWVlNmRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCkBAIC00OCwxMSArNDgsMTEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHko
KSBjb25zdCB7IHJldHVybiBtX3dvcmtlck9iamVjdFByb3h5OyB9CiAKICAgICBwcm90ZWN0ZWQ6
Ci0gICAgICAgIHZpcnR1YWwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9i
YWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdp
bj4gdG9wT3JpZ2luKSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCBSZWY8V29ya2VyR2xvYmFs
U2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBi
b29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0
cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2
b2lkIHJ1bkV2ZW50TG9vcCgpIG92ZXJyaWRlOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgRGVk
aWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBj
b25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyT2JqZWN0
UHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycyYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOworICAg
ICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3Jr
ZXJPYmplY3RQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOwogCiAg
ICAgICAgIFdvcmtlck9iamVjdFByb3h5JiBtX3dvcmtlck9iamVjdFByb3h5OwogICAgIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggOTEwZGQ4YmU4N2ZiNjNkZGJiMDcwNGM3N2E3
ODgyZGNkNzhjMmE2ZS4uYWM0ZWI0YTliNjZiNDZmM2QwOTk5MDlkMTY0Yzg5ZmZhODBkMmQ5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtODcsNiArODcsOCBAQCBSZWZQdHI8V29y
a2VyPiBXb3JrZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25z
dCBTdHJpbmcmIHVybAogICAgIGlmIChzY3JpcHRVUkwuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAorICAgIHdvcmtlci0+bV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50
U2VjdXJpdHlQb2xpY3kgPSBjb250ZXh0LnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSgpOworCiAgICAgLy8gVGhlIHdvcmtlciBjb250ZXh0IGRvZXMgbm90IGV4aXN0
IHdoaWxlIGxvYWRpbmcsIHNvIHdlIG11c3QgZW5zdXJlIHRoYXQgdGhlIHdvcmtlciBvYmplY3Qg
aXMgbm90IGNvbGxlY3RlZCwgbm9yIGFyZSBpdHMgZXZlbnQgbGlzdGVuZXJzLgogICAgIHdvcmtl
ci0+c2V0UGVuZGluZ0FjdGl2aXR5KHdvcmtlci5wdHIoKSk7CiAKQEAgLTE2Niw3ICsxNjgsNyBA
QCB2b2lkIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQoKQogICAgICAgICBkaXNwYXRjaEV2ZW50KEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNlLCB0cnVlKSk7CiAgICAg
ZWxzZSB7CiAgICAgICAgIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzID0gbV9jb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgPyBtX2NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycy52YWx1ZSgpIDogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJp
dHlQb2xpY3koKS0+cmVzcG9uc2VIZWFkZXJzKCk7Ci0gICAgICAgIG1fY29udGV4dFByb3h5LT5z
dGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0TG9hZGVyLT51cmwoKSwgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnVybCgpKSwgbV9zY3JpcHRM
b2FkZXItPnNjcmlwdCgpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIERv
bnRQYXVzZVdvcmtlckdsb2JhbFNjb3BlT25TdGFydCk7CisgICAgICAgIG1fY29udGV4dFByb3h5
LT5zdGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0TG9hZGVyLT51cmwoKSwgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnVybCgpKSwgbV9zY3Jp
cHRMb2FkZXItPnNjcmlwdCgpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMs
IG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBEb250UGF1c2VX
b3JrZXJHbG9iYWxTY29wZU9uU3RhcnQpOwogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OnNjcmlwdEltcG9ydGVkKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV9zY3JpcHRMb2Fk
ZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpKTsKICAgICB9CiAgICAg
bV9zY3JpcHRMb2FkZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXggY2Qz
ZDExMTIyMmM4NDFiMmUwNGU4ZmE5NzZkMzlhZTIwODViYjhkNy4uNjQ3NTZlOWZlNWM5ZWJjNDY2
M2U5NWFiYzYzNmQyOTljYjI1Y2E3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC04Niw2
ICs4Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVmUHRyPFdvcmtlclNjcmlw
dExvYWRlcj4gbV9zY3JpcHRMb2FkZXI7CiAgICAgICAgIFdvcmtlckdsb2JhbFNjb3BlUHJveHkq
IG1fY29udGV4dFByb3h5OyAvLyBUaGUgcHJveHkgb3V0bGl2ZXMgdGhlIHdvcmtlciB0byBwZXJm
b3JtIHRocmVhZCBzaHV0ZG93bi4KICAgICAgICAgT3B0aW9uYWw8Q29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzPiBtX2NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
czsKKyAgICAgICAgYm9vbCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSB7IGZhbHNlIH07CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCA2N2M2ZGZlMDZh
YTczYmRhMzgxMzY2MzljM2Q5YTkyNjdiYjQ2OWQ5Li5jNGEyYzBlNDMyODAyNjI2YjM1MzNiOGFj
NGM3NThiZmRlMTYwNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmNwcApAQCAtNjIsMTIgKzYyLDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV29ya2VyR2xvYmFsU2NvcGU6Oldvcmtlckdsb2Jh
bFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhy
ZWFkJiB0aHJlYWQsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKK1dvcmtl
ckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZCYgdGhyZWFkLCBib29sIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4g
dG9wT3JpZ2luKQogICAgIDogbV91cmwodXJsKQogICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50
KQogICAgICwgbV9zY3JpcHQoc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJTY3JpcHRDb250cm9sbGVy
Pih0aGlzKSkKICAgICAsIG1fdGhyZWFkKHRocmVhZCkKICAgICAsIG1fY2xvc2luZyhmYWxzZSkK
KyAgICAsIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KHNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSkKICAgICAsIG1fZXZlbnRRdWV1
ZSgqdGhpcykKICAgICAsIG1fdG9wT3JpZ2luKHRvcE9yaWdpbikKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCBkNGRiMzUxNDJmYzEyNjRiOTY0NjNm
NGMwODEwNDcwM2ZkMTcwMzc1Li44OWE1ZDIyNWVkM2FkMzk0YjA4NWMzOGFjZWNlMjFhOGEzMDI4
ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC02
Nyw2ICs2Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIG92ZXJyaWRlOwogCisgICAg
ICAgIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgY29u
c3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50
U2VjdXJpdHlQb2xpY3k7IH0KKwogICAgICAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3Jp
cHQoKSB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsgfQogICAgICAgICB2b2lkIGNsZWFyU2NyaXB0
KCkgeyBtX3NjcmlwdCA9IG51bGxwdHI7IH0KIApAQCAtMTMwLDcgKzEzMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBXb3JrZXJHbG9i
YWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFk
JiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKTsKKyAgICAgICAgV29ya2Vy
R2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRo
cmVhZCYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQ
YXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pOwogICAgICAgICB2b2lkIGFwcGx5
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKGNvbnN0IENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyYpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNl
cHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3Bl
Y3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKSBvdmVycmlkZTsKQEAgLTE1OSw2ICsxNjEsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFdvcmtlclRocmVhZCYgbV90aHJlYWQ7CiAKICAg
ICAgICAgYm9vbCBtX2Nsb3Npbmc7CisgICAgICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKICAgICAgICAgSGFzaFNldDxPYnNlcnZlcio+IG1f
d29ya2VyT2JzZXJ2ZXJzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckdsb2JhbFNjb3BlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGVQcm94eS5oCmluZGV4IDZiZDg4YzRiMmQwYTg1YzQ3ZTQ3NTQ0MDczZjc2Mjg5MWY5
ZmZlNzIuLmNkYjE3NDY0MDRmM2RiNGE3ZDg0OGE1Y2IyNGVkMzNkYmRhYWZjNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCkBAIC00OSw3
ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIH5Xb3JrZXJH
bG9iYWxTY29wZVByb3h5KCkgeyB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHN0YXJ0V29ya2Vy
R2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSkgPSAwOworICAgICAgICB2aXJ0
dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSkgPSAwOwog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpID0gMDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApp
bmRleCA2OTllOWI3N2Y3YmYxNjVmOWU5ODBhMDU2M2U3YzQ5OTM1OWY3N2RkLi44MmNkMGJjOWVh
ZWNkYzU0YzIxMzg4NWVjYjU5ODkzMzE0MGYyZDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtNzIsMTIgKzcyLDEyIEBAIFdvcmtl
ck1lc3NhZ2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8fCAoaXM8
V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGN1cnJlbnRU
aHJlYWQoKSA9PSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkudGhyZWFkKCkudGhyZWFkSUQoKSkpOwogfQogCi12b2lkIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycywgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSkKK3ZvaWQgV29y
a2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3Jp
cHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUs
IGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSkKIHsKICAg
ICAvLyBGSVhNRTogVGhpcyBuZWVkIHRvIGJlIHJldmlzaXRlZCB3aGVuIHdlIHN1cHBvcnQgbmVz
dGVkIHdvcmtlciBvbmUgZGF5CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpOwotICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVh
ZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBz
b3VyY2VDb2RlLCAqdGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzLCBkb2N1bWVudC50b3BPcmlnaW4oKSk7CisgICAgUmVmUHRyPERlZGlj
YXRlZFdvcmtlclRocmVhZD4gdGhyZWFkID0gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUo
c2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcywgc3RhcnRNb2Rl
LCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgZG9jdW1lbnQudG9wT3JpZ2luKCkpOwogICAgIHdv
cmtlclRocmVhZENyZWF0ZWQodGhyZWFkKTsKICAgICB0aHJlYWQtPnN0YXJ0KCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKaW5kZXggYWE1Yjg5
MWE4MjRmZTM3MWQ2ODU4MDAyMzAxZTViMmE2ZjIwYTBmNi4uZGQ1YzA1Y2ViMzlmNjlmZTM3MGIw
MTE3MGI5MjQ3NTZkZGZlMTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJNZXNzYWdpbmdQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuaApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlckdsb2JhbFNjb3BlUHJveHkuCiAg
ICAgICAgIC8vIChPbmx5IHVzZSB0aGVzZSBtZXRob2RzIGluIHRoZSB3b3JrZXIgb2JqZWN0IHRo
cmVhZC4pCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0
IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBz
b3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBX
b3JrZXJUaHJlYWRTdGFydE1vZGUpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50
U2VjdXJpdHlQb2xpY3ksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSkgb3ZlcnJpZGU7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpIG92ZXJyaWRlOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hh
bm5lbEFycmF5Pikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0
aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcAppbmRleCA4MTIyMzgwNWNkNzcxMzUwMDdiZmM4YmY2OWU5Yjk3NTg4Y2ZiNDk2Li4yOTdi
ZjdlNjc2NzZkNzY0Mjg2M2Y2MzdmMTZhMDIxZTI0ZGE5NWVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC03MCwzMSArNzAsMzMgQEAgdW5zaWduZWQgV29ya2Vy
VGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgpCiBzdHJ1Y3QgV29ya2VyVGhyZWFkU3RhcnR1cERh
dGEgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhKTsg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV29ya2VyVGhyZWFkU3RhcnR1
cERhdGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25z
dCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRv
cE9yaWdpbik7CisgICAgV29ya2VyVGhyZWFkU3RhcnR1cERhdGEoY29uc3QgVVJMJiBzY3JpcHRV
UkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdv
cmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOwogCiAgICAgVVJMIG1fc2NyaXB0VVJM
OwogICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKICAgICBTdHJpbmcgbV9zb3VyY2VDb2RlOwogICAg
IFdvcmtlclRocmVhZFN0YXJ0TW9kZSBtX3N0YXJ0TW9kZTsKICAgICBDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMgbV9jb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnM7CisgICAgYm9vbCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eTsKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fdG9wT3JpZ2luOwogfTsKIAotV29ya2Vy
VGhyZWFkU3RhcnR1cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2Rl
LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cywgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikKK1dvcmtlclRocmVhZFN0YXJ0dXBE
YXRhOjpXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFk
U3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdp
biogdG9wT3JpZ2luKQogICAgIDogbV9zY3JpcHRVUkwoc2NyaXB0VVJMLmlzb2xhdGVkQ29weSgp
KQogICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50Lmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9z
b3VyY2VDb2RlKHNvdXJjZUNvZGUuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3N0YXJ0TW9kZShz
dGFydE1vZGUpCiAgICAgLCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyhj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaXNvbGF0ZWRDb3B5KCkpCisgICAg
LCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeShzaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kpCiAgICAgLCBtX3RvcE9yaWdpbih0b3BP
cmlnaW4gPyAmdG9wT3JpZ2luLT5pc29sYXRlZENvcHkoKS5nZXQoKSA6IG51bGxwdHIpCiB7CiB9
CiAKLVdvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2Fk
ZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9ydGluZ1Byb3h5JiB3b3JrZXJS
ZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCitXb3JrZXJU
aHJlYWQ6OldvcmtlclRocmVhZChjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdv
cmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJv
eHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgY29u
c3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikKICAgICA6IG1fdGhyZWFkSUQoMCkKICAgICAs
IG1fd29ya2VyTG9hZGVyUHJveHkod29ya2VyTG9hZGVyUHJveHkpCiAgICAgLCBtX3dvcmtlclJl
cG9ydGluZ1Byb3h5KHdvcmtlclJlcG9ydGluZ1Byb3h5KQotICAgICwgbV9zdGFydHVwRGF0YShz
dGQ6Om1ha2VfdW5pcXVlPFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhPihzY3JpcHRVUkwsIHVzZXJB
Z2VudCwgc291cmNlQ29kZSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMsIHRvcE9yaWdpbikpCisgICAgLCBtX3N0YXJ0dXBEYXRhKHN0ZDo6bWFrZV91bmlx
dWU8V29ya2VyVGhyZWFkU3RhcnR1cERhdGE+KHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VD
b2RlLCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0b3BPcmlnaW4pKQogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAg
ICAgLCBtX25vdGlmaWNhdGlvbkNsaWVudCgwKQogI2VuZGlmCkBAIC0xNDQsNyArMTQ2LDcgQEAg
dm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiAKICAgICB7CiAgICAgICAgIExvY2tI
b2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwotICAgICAgICBtX3dvcmtlckdsb2Jh
bFNjb3BlID0gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUobV9zdGFydHVwRGF0YS0+bV9zY3JpcHRV
UkwsIG1fc3RhcnR1cERhdGEtPm1fdXNlckFnZW50LCBtX3N0YXJ0dXBEYXRhLT5tX2NvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgbV9zdGFydHVwRGF0YS0+bV90b3BPcmlnaW4u
cmVsZWFzZSgpKTsKKyAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IGNyZWF0ZVdvcmtlckds
b2JhbFNjb3BlKG1fc3RhcnR1cERhdGEtPm1fc2NyaXB0VVJMLCBtX3N0YXJ0dXBEYXRhLT5tX3Vz
ZXJBZ2VudCwgbV9zdGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMsIG1fc3RhcnR1cERhdGEtPm1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCBtX3N0YXJ0dXBEYXRhLT5tX3RvcE9yaWdpbi5yZWxlYXNlKCkpOwogCiAgICAg
ICAgIGlmIChtX3J1bkxvb3AudGVybWluYXRlZCgpKSB7CiAgICAgICAgICAgICAvLyBUaGUgd29y
a2VyIHdhcyB0ZXJtaW5hdGVkIGJlZm9yZSB0aGUgdGhyZWFkIGhhZCBhIGNoYW5jZSB0byBydW4u
IFNpbmNlIHRoZSBjb250ZXh0IGRpZG4ndCBleGlzdCB5ZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuaAppbmRleCBiYjc5NTgyZjY4M2MyNWRjZGI3ZjM0OWVmMjAyM2E5YjVhM2Zk
OGJkLi4xNmM4ZGI3YjY5NjBjYmYwZWE5MjllNDMxYWYzMzhjODNlYmQ4ZDVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTY4LDEwICs2OCwxMCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAjZW5kaWYKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgV29ya2VyVGhyZWFk
KGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJj
ZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmLCBXb3JrZXJU
aHJlYWRTdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cyYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOworICAgICAgICBXb3JrZXJUaHJl
YWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291
cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtl
clRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGNv
bnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOwogCiAgICAgICAgIC8vIEZhY3RvcnkgbWV0
aG9kIGZvciBjcmVhdGluZyBhIG5ldyB3b3JrZXIgY29udGV4dCBmb3IgdGhlIHRocmVhZC4KLSAg
ICAgICAgdmlydHVhbCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNj
b3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0
b3BPcmlnaW4pID0gMDsKKyAgICAgICAgdmlydHVhbCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNy
ZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1cml0
eU9yaWdpbj4gdG9wT3JpZ2luKSA9IDA7CiAKICAgICAgICAgLy8gRXhlY3V0ZXMgdGhlIGV2ZW50
IGxvb3AgZm9yIHRoZSB3b3JrZXIgdGhyZWFkLiBEZXJpdmVkIGNsYXNzZXMgY2FuIG92ZXJyaWRl
IHRvIHBlcmZvcm0gYWN0aW9ucyBiZWZvcmUvYWZ0ZXIgZW50ZXJpbmcgdGhlIGV2ZW50IGxvb3Au
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBydW5FdmVudExvb3AoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuY3BwCmluZGV4IGYwMzQwMDcxMWU0YjI5ZGNiZDI5NTk1YTI1NWY5NmVhZDE2
MGRlNmEuLjI1OGQ2MjhmMTQ1NTgxNDI1MjUwNmVlYmIyZDkxNjhlYjE3MWVkYjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtNDk4LDggKzQ5OCw3IEBAIHZvaWQgWE1M
SHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IFVSTCYgdXJsLCBi
b29sIGFzeW5jLCBFeGNlCiAgICAgfQogCiAgICAgLy8gRklYTUU6IENvbnZlcnQgdGhpcyB0byBj
aGVjayB0aGUgaXNvbGF0ZWQgd29ybGQncyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBvbmNlIHdl
YmtpdC5vcmcvYi8xMDQ1MjAgaXMgc29sdmVkLgotICAgIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gQ29udGVudFNlY3VyaXR5UG9saWN5OjpzaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSk7Ci0gICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRlbnRTZWN1cml0
eVBvbGljeSgpLT5hbGxvd0Nvbm5lY3RUb1NvdXJjZSh1cmwsIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSkpIHsKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93Q29ubmVjdFRvU291cmNlKHVybCwg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2Vj
dXJpdHlQb2xpY3koKSkpIHsKICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIGJlIHRocm93
aW5nIGFuIGV4Y2VwdGlvbj8KICAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7CiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA4MDA0ZTdlNTE2ZWM5NTJlMTZmM2Y5ODNkMjllNzBkZDJkZjM3NzExLi5l
NDc4YTIwNGYwNThjNGRlMDhkZjAwMGUyYjFkMTRhYTMxMjBjNjE2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjEgQEAKKzIwMTYtMDItMDcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisg
ICAgICAgIENTUDogQWxsb3cgV2ViIFdvcmtlcnMgaW5pdGlhdGVkIGZyb20gYW4gaXNvbGF0ZWQg
d29ybGQgdG8gYnlwYXNzIHRoZSBtYWluIHdvcmxkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2MjIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0NDAwMDIzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyB0byBlbnN1cmUgdGhhdCBhIFdlYiBX
b3JrZXIgaW5pdGlhdGVkIGZyb20gYW4gaXNvbGF0ZWQgd29ybGQgY2FuIGJ5cGFzcyB0aGUgbWFp
biB3b3JsZAorICAgICAgICBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29y
a2VyLWJsb2ItZXZhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2It
ZXZhbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVk
V29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1ibG9iLXhoci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBh
c3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2IteGhyLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3At
d29ya2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXIuaHRtbDogQWRkZWQu
CisKIDIwMTYtMDItMDUgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBB
WDogV2ViS2l0IGhhbmdpbmcgd2hlbiBWb2ljZU92ZXIgYXR0ZW1wdHMgdG8gZm9jdXMgaW4gb24g
cGFnZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRl
ZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi1ldmFsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3Mt
bWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Nzk4ZWQ3Njg2NjM3Njc5NWY3ZGI1MTc2NmEyNjEwYzNkYmYxYjg4MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3Mt
bWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACitUaGlzIHRlc3RzIHRoYXQgaW4gYW4gaXNvbGF0ZWQgd29ybGQgdGhlIENvbnRlbnQgU2Vj
dXJpdHkgUG9saWN5IG9mIHRoZSBwYXJlbnQgb3JpZ2luICh0aGlzIHBhZ2UpIGlzIGJ5cGFzc2Vk
IGFuZCBhIFdlYiBXb3JrZXIgaXMgYWxsb3dlZCB0byBjYWxsIGV2YWwoKS4KKworUEFTUyB3b3Jr
ZXIgY2FsbGVkIGV2YWwoKS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZh
bC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5
cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi1ldmFsLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYx
YmU0ZjQ3ZmUxMmYxYjE3N2EyYWU4NWMzOTNkNGE5MDBiOGYxNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFp
bi13b3JsZC1jc3Atd29ya2VyLWJsb2ItZXZhbC5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2Vj
dXJpdHktUG9saWN5IiBjb250ZW50PSJzY3JpcHQtc3JjICdzZWxmJyAndW5zYWZlLWlubGluZSci
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBpbiBhbiBpc29sYXRlZCB3b3Js
ZCB0aGUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgb2YgdGhlIHBhcmVudCBvcmlnaW4gKHRoaXMg
cGFnZSkgaXMgYnlwYXNzZWQgYW5kIGEgV2ViIFdvcmtlciBpcyBhbGxvd2VkIHRvIGNhbGwgPGNv
ZGU+ZXZhbCgpPC9jb2RlPi48L3A+Cis8cHJlIGlkPSJyZXN1bHQiPjwvcHJlPgorPHNjcmlwdD4K
K3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZlbnQpCit7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlc3VsdCIpLnRleHRDb250ZW50ID0gZXZlbnQuZGF0YTsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQor
CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgc2NyaXB0ID0gWworICAgICAgICAndHJ5
IHsnLAorICAgICAgICAnICAgIGV2YWwoIjEgKyAwIik7JywKKyAgICAgICAgJyAgICBzZWxmLnBv
c3RNZXNzYWdlKCJQQVNTIHdvcmtlciBjYWxsZWQgZXZhbCgpLiIpOycsCisgICAgICAgICd9IGNh
dGNoIChleGNlcHRpb24pIHsnLAorICAgICAgICAnICAgIHNlbGYucG9zdE1lc3NhZ2UoIkZBSUwg
c2hvdWxkIG5vdCBoYXZlIHRocm93biBhbiBleGNlcHRpb24uIFRocmV3IGV4Y2VwdGlvbiAiICsg
ZXhjZXB0aW9uICsgIi4iKTsnLAorICAgICAgICAnfScsCisgICAgXS5qb2luKCJcbiIpOworCisg
ICAgdmFyIHdvcmtlcjsKKyAgICB0cnkgeworICAgICAgICB3b3JrZXIgPSBuZXcgV29ya2VyKHdp
bmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtzY3JpcHRdKSkpOworICAgICAgICB3
b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2ZW50KSB7IHdpbmRvdy5wb3N0TWVzc2FnZShl
dmVudC5kYXRhLCAiKiIpIH07CisgICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7CisgICAgICAgIHdp
bmRvdy5wb3N0TWVzc2FnZSgiRkFJTCBzaG91bGQgbm90IGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlv
biB3aGVuIGNyZWF0aW5nIHdvcmtlci4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24gKyAi
LiIsICIqIik7CisgICAgfQorfQorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgwLCBydW5UZXN0LnRvU3RyaW5nKCkg
KyAiO3J1blRlc3QoKTsiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1t
YWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi14aHItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13
b3JrZXItYmxvYi14aHItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZmIxMTBhMjVhN2JiNzEz
YzM4ZWIwZTdhODA1YzMxZjU4MWE5YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdv
cmtlci1ibG9iLXhoci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3RzIHRo
YXQgaW4gYW4gaXNvbGF0ZWQgd29ybGQgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9mIHRo
ZSBwYXJlbnQgb3JpZ2luICh0aGlzIHBhZ2UpIGlzIGJ5cGFzc2VkIGFuZCBhIFdlYiBXb3JrZXIg
aXMgYWxsb3dlZCB0byBtYWtlIGFuIFhIUiByZXF1ZXN0LgorCitQQVNTCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4t
d29ybGQtY3NwLXdvcmtlci1ibG9iLXhoci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9pc29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi14
aHIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44YTI0ZGU3ZTQ2M2QzMTE1YWMzN2I5YWExYTllMDM0ODQ2YWE4
MGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9p
c29sYXRlZFdvcmxkL2J5cGFzcy1tYWluLXdvcmxkLWNzcC13b3JrZXItYmxvYi14aHIuaHRtbApA
QCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0ic2NyaXB0LXNyYyAn
c2VsZicgJ3Vuc2FmZS1pbmxpbmUnOyBjb25uZWN0LXNyYyAnbm9uZSciPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBpbiBhbiBpc29sYXRlZCB3b3JsZCB0aGUgQ29udGVudCBT
ZWN1cml0eSBQb2xpY3kgb2YgdGhlIHBhcmVudCBvcmlnaW4gKHRoaXMgcGFnZSkgaXMgYnlwYXNz
ZWQgYW5kIGEgV2ViIFdvcmtlciBpcyBhbGxvd2VkIHRvIG1ha2UgYW4gWEhSIHJlcXVlc3QuPC9w
PgorPHByZSBpZD0icmVzdWx0Ij48L3ByZT4KKzxzY3JpcHQ+Cit3aW5kb3cub25tZXNzYWdlID0g
ZnVuY3Rpb24gKGV2ZW50KQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQi
KS50ZXh0Q29udGVudCA9IGV2ZW50LmRhdGE7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgp
Cit7CisgICAgdmFyIHNjcmlwdCA9IFsKKyAgICAgICAgJ3ZhciBleGNlcHRpb247JywKKyAgICAg
ICAgJ3ZhciB4aHI7JywKKyAgICAgICAgJ3RyeSB7JywKKyAgICAgICAgJyAgICB2YXIgaXNBc3lu
Y2hyb25vdXMgPSBmYWxzZTsnLAorICAgICAgICAnICAgIHhociA9IG5ldyBYTUxIdHRwUmVxdWVz
dDsnLAorICAgICAgICAnICAgIHhoci5vcGVuKCJHRVQiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IiwgaXNBc3luY2hyb25vdXMpOycsCisg
ICAgICAgICcgICAgeGhyLnNlbmQoKTsnLAorICAgICAgICAnfSBjYXRjaCAoZSkgeycsCisgICAg
ICAgICcgICAgZXhjZXB0aW9uID0gZTsnLAorICAgICAgICAnfScsCisgICAgICAgICdpZiAoZXhj
ZXB0aW9uKScsCisgICAgICAgICcgICAgc2VsZi5wb3N0TWVzc2FnZSgiRkFJTCBzaG91bGQgbm90
IGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlvbi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24g
KyAiLiIpOycsCisgICAgICAgICdlbHNlJywKKyAgICAgICAgJyAgICBzZWxmLnBvc3RNZXNzYWdl
KHhoci5yZXNwb25zZSk7JywKKyAgICBdLmpvaW4oIlxuIik7CisKKyAgICB2YXIgd29ya2VyOwor
ICAgIHRyeSB7CisgICAgICAgIHdvcmtlciA9IG5ldyBXb3JrZXIod2luZG93LlVSTC5jcmVhdGVP
YmplY3RVUkwobmV3IEJsb2IoW3NjcmlwdF0pKSk7CisgICAgICAgIHdvcmtlci5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbiAoZXZlbnQpIHsgd2luZG93LnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEsICIqIikg
fTsKKyAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgd2luZG93LnBvc3RNZXNzYWdl
KCJGQUlMIHNob3VsZCBub3QgaGF2ZSB0aHJvd24gYW4gZXhjZXB0aW9uIHdoZW4gY3JlYXRpbmcg
d29ya2VyLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIiwgIioiKTsKKyAgICB9
Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmV2YWx1YXRlU2Ny
aXB0SW5Jc29sYXRlZFdvcmxkKDAsIHJ1blRlc3QudG9TdHJpbmcoKSArICI7cnVuVGVzdCgpOyIp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdv
cmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xh
dGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDU4MGE4Y2U4YzM1ZWJmYzhhMTJlMzEwMWI5ZDRhY2M4NjNhYTUzOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9i
eXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
K1RoaXMgdGVzdHMgdGhhdCBpbiBhbiBpc29sYXRlZCB3b3JsZCB0aGUgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kgb2YgdGhlIHBhcmVudCBvcmlnaW4gKHRoaXMgcGFnZSkgaXMgYnlwYXNzZWQgYW5k
IGEgV2ViIFdvcmtlciBpcyBhbGxvd2VkIHRvIGJlIGluc3RhbnRpYXRlZCB3aXRoIGEgc2NyaXB0
IFVSTCBub3QgbGlzdGVkIGluIHRoZSBDU1Agb2YgdGhlIHBhZ2UuCisKK1BBU1Mgd29ya2VyIGlu
c3RhbnRpYXRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
aXNvbGF0ZWRXb3JsZC9ieXBhc3MtbWFpbi13b3JsZC1jc3Atd29ya2VyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQt
Y3NwLXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3OTJmZmNiN2NlMzVmNTlmODQyMzdjZjExYWE0
OTJiMWZmNTBlZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2lzb2xhdGVkV29ybGQvYnlwYXNzLW1haW4td29ybGQtY3NwLXdvcmtlci5odG1sCkBA
IC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gRklY
TUU6IEFkZCBjaGlsZC1zcmMgJ25vbmUnIG9uY2Ugd2UgaW1wbGVtZW50IHRoZSBjaGlsZC1zcmMg
ZGlyZWN0aXZlLiAtLT4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJpdHktUG9saWN5
IiBjb250ZW50PSJzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyI+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0cyB0aGF0IGluIGFuIGlzb2xhdGVkIHdvcmxkIHRoZSBDb250ZW50IFNlY3Vy
aXR5IFBvbGljeSBvZiB0aGUgcGFyZW50IG9yaWdpbiAodGhpcyBwYWdlKSBpcyBieXBhc3NlZCBh
bmQgYSBXZWIgV29ya2VyIGlzIGFsbG93ZWQgdG8gYmUgaW5zdGFudGlhdGVkIHdpdGggYSBzY3Jp
cHQgVVJMIG5vdCBsaXN0ZWQgaW4gdGhlIENTUCBvZiB0aGUgcGFnZS48L3A+Cis8cHJlIGlkPSJy
ZXN1bHQiPjwvcHJlPgorPHNjcmlwdD4KK3dpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZl
bnQpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLnRleHRDb250ZW50
ID0gZXZlbnQuZGF0YTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIg
d29ya2VyOworICAgIHRyeSB7CisgICAgICAgIHdvcmtlciA9IG5ldyBXb3JrZXIoImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3dv
cmtlci5waHA/dHlwZT1hbGVydC1wYXNzIik7CisgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZSgi
UEFTUyB3b3JrZXIgaW5zdGFudGlhdGVkLiIsICIqIik7CisgICAgfSBjYXRjaCAoZXhjZXB0aW9u
KSB7CisgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZSgiRkFJTCBzaG91bGQgbm90IGhhdmUgdGhy
b3duIGFuIGV4Y2VwdGlvbiB3aGVuIGNyZWF0aW5nIHdvcmtlci4gVGhyZXcgZXhjZXB0aW9uICIg
KyBleGNlcHRpb24gKyAiLiIsICIqIik7CisgICAgfQorfQorCitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgdGVzdFJ1bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgwLCBydW5U
ZXN0LnRvU3RyaW5nKCkgKyAiO3J1blRlc3QoKTsiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>
<flag name="review"
          id="295661"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>