<?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>130003</bug_id>
          
          <creation_ts>2014-03-09 23:08:42 -0700</creation_ts>
          <short_desc>Start splitting CSS Selectors&apos;s pseudo types</short_desc>
          <delta_ts>2014-03-10 13:54:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>988807</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-03-09 23:08:42 -0700</bug_when>
    <thetext>Start splitting CSS Selectors&apos;s pseudo types</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988811</commentid>
    <comment_count>1</comment_count>
      <attachid>226282</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-03-09 23:27:32 -0700</bug_when>
    <thetext>Created attachment 226282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988812</commentid>
    <comment_count>2</comment_count>
      <attachid>226282</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-09 23:36:06 -0700</bug_when>
    <thetext>Comment on attachment 226282
Patch

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

Great that you are working on this!

gtk ews looks unimpressed :|

&gt; Source/WebCore/css/CSSSelector.cpp:304
&gt; +    case CSSSelector::PseudoNot:
&gt; +        if (const CSSSelectorList* selectorList = selector-&gt;selectorList())
&gt; +        str.append(selectorList-&gt;first()-&gt;selectorText());
&gt; +        str.append(&apos;)&apos;);

Indentation is off here.

&gt; Source/WebCore/css/CSSSelector.cpp:319
&gt; +            if (subSelector != firstSubSelector)
&gt; +            str.append(&apos;,&apos;);
&gt; +            str.append(subSelector-&gt;selectorText());

And here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988822</commentid>
    <comment_count>3</comment_count>
      <attachid>226284</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-03-10 00:41:08 -0700</bug_when>
    <thetext>Created attachment 226284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988830</commentid>
    <comment_count>4</comment_count>
      <attachid>226284</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-10 01:37:22 -0700</bug_when>
    <thetext>Comment on attachment 226284
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989043</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-03-10 13:54:41 -0700</bug_when>
    <thetext>Committed r165402: &lt;http://trac.webkit.org/changeset/165402&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226282</attachid>
            <date>2014-03-09 23:27:32 -0700</date>
            <delta_ts>2014-03-10 00:41:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130003-20140309232731.patch</filename>
            <type>text/plain</type>
            <size>55667</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1MzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDYzNmY1NjE0NDZjYjY3
Y2IyNzQ2OGZjOTk1ZTY3Mjk1MzgxZGUzMi4uNzg2Y2Y2NmM2YTBlNjE1YWE1Yjg3ZGIzYjY1YjA3
ZTkwNTc5MjgzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE0LTAzLTA5ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBTdGFydCBzcGxp
dHRpbmcgQ1NTIFNlbGVjdG9ycydzIHBzZXVkbyB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMDAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ1NTIFNlbGVjdG9ycyBwc2V1ZG8gdHlwZXMgY29t
ZSBpbiAzIGZsYXZvcnM6IHBhZ2UsIHBzZXVkbyBjbGFzcywgcHNldWRvIGVsZW1lbnRzLgorCisg
ICAgICAgIFRoZSB0aHJlZSB0eXBlcyBhcmUgbWl4ZWQgdG9nZXRoZXIgaW4gYSBzaW5nbGUgZW51
bSBsaXN0IG5hbWVkIFBzZXVkb1R5cGUuIE9ubHkgc29tZSBjb21iaW5hdGlvbnMKKyAgICAgICAg
b2YgbWF0Y2ggdHlwZSArIHBzZXVkbyB0eXBlIGFyZSB2YWxpZCwgYnV0IHRoaXMgaXMgaW1wbGlj
aXRseSBkZWZpbmVkIGZyb20gdGhlIGNvZGUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyB0aGUg
YmVnaW5uaW5nIG9mIGEgcmVmYWN0b3JpbmcgdG8gYWRkIG1vcmUgY2xlYXIgYm91bmRhcmllcyBi
ZXR3ZWVuCisgICAgICAgIHZhbGlkIGFuZCBpbnZhbGlkIGNvbWJpbmF0aW9ucy4KKworICAgICAg
ICBGaXJzdCwgdGhlIGhhbmRsaW5nIG9mIHBhZ2UgcHNldWRvIHR5cGVzIGlzIGNvbXBsZXRlbHkg
c3BsaXQgZnJvbSB0aGUgb3RoZXIgdmFsdWVzLgorICAgICAgICBUaGUgcGFyc2VyIHVzZSBhIGRp
ZmZlcmVudCBtZXRob2QgZm9yIGhhbmRsaW5nIHRoZSB2YWx1ZSBDU1NQYXJzZXJTZWxlY3Rvcjo6
cGFyc2VQYWdlUHNldWRvU2VsZWN0b3IoKS4KKworICAgICAgICBQYWdlUHNldWRvIHR5cGVzIG5v
IGxvbmdlciBzdG9yZSB0aGVpciBzdHJpbmcgaW4gdGhlIENTU1NlbGVjdG9yIGVpdGhlciB0byBy
ZWR1Y2UgdGhlIHJlZHVuZGFuY3kKKyAgICAgICAgd2l0aCBtX3BzZXVkb1R5cGUuCisgICAgICAg
IFdoZW4gd2UgbmVlZCB0byBnZW5lcmF0ZSB0aGUgc3RyaW5nIGZvciB0aG9zZSBDU1NTZWxlY3Rv
ciwgd2UgcmVjcmVhdGUgdGhlIHN0cmluZyBhcyBuZWVkZWQgaW4KKyAgICAgICAgQ1NTU2VsZWN0
b3I6OnNlbGVjdG9yVGV4dCgpLgorCisgICAgICAgIFRoZSByZW1haW5pbmcgdHdvIHR5cGVzIGFy
ZSBub3QgeWV0IHNwbGl0IGluIHRoaXMgcGF0Y2ggYnV0IHRoaXMgaW50cm9kdWNlIHRoZSBwcmVs
aW1pbmFyeSBjbGVhbiB1cAorICAgICAgICB0b3dhcmQgdGhhdCBnb2FsLgorICAgICAgICBUaGUg
bGlzdCBvZiBwYXJzZWQgcHNldWRvIHR5cGVzIGlzIG5vdyBnZW5lcmF0ZWQgYXQgY29tcGlsZSB0
aW1lIGZyb20gdGhlIHNvdXJjZSBpbiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4uCisKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICBUaGUgbWFwcGluZyBvZiBzdHJpbmdz
IHRvIHBzZXVkbyB0eXBlcyBpcyBnZW5lcmF0ZWQgZnJvbSBTZWxlY3RvclBzZXVkb1R5cGVNYXAu
aW4KKyAgICAgICAgYnkgdGhlIG5ldyBzY3JpcHQgbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5w
eS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBjc3MvQ1NTR3JhbW1hci55LmluOgorICAgICAgICBTcGxpdCB0aGUgcGFyc2luZyBvZiBQ
c2V1ZG8gVHlwZXMuIFBzZXVkbyBwYWdlIGdldCBpdHMgb3duIG1ldGhvZC4gVGhlIG90aGVycyB3
aWxsIG5lZWQgc29tZSB3b3JrLgorCisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6cGFyc2VQYWdlUHNldWRvU2Vs
ZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyU2VsZWN0b3I6OnNldFBzZXVkb1R5
cGVWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5oOgorICAgICAgICAqIGNz
cy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c3BlY2lm
aWNpdHlGb3JQYWdlKToKKyAgICAgICAgVGhpcyBpcyBhbiBleGFtcGxlIG9mIGludmFsaWQgY29t
YmluYXRpb24gdGhhdCBpcyBoaWRkZW4gYnkgdGhlIGN1cnJlbnQgY29kZS4KKyAgICAgICAgRmly
c3QsIExlZnQgYW5kIFJpZ2h0IGNvdWxkIG5ldmVyIGFwcGVhciBpbiBhIHBzZXVkbyBjbGFzcyBt
YXRjaC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpwc2V1ZG9JZCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9UeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OmFwcGVuZFBzZXVkb1R5cGVUYWlsSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6cHNldWRvVHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTZWxlY3Rvcjo6bWF0Y2hlc1BzZXVkb0VsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU2VsZWN0b3I6OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVj
dG9yOjpDU1NTZWxlY3Rvcik6CisgICAgICAgICogY3NzL1BhZ2VSdWxlQ29sbGVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNoZWNrUGFnZVNlbGVjdG9yQ29tcG9uZW50cyk6CisgICAgICAg
ICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNo
ZWNrZXI6OmNoZWNrT25lKToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmg6
IEFkZGVkLgorICAgICAgICAqIGNzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaW46IEFkZGVkLgor
ICAgICAgICAqIGNzcy9tYWtlU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLnB5OiBBZGRlZC4KKyAgICAg
ICAgKGVudW1lcmFibGVQc2V1ZG9UeXBlKToKKyAgICAgICAgKGV4cGFuZF9pZmRlZl9jb25kaXRp
b24pOgorICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OmFkZFBzZXVkb1R5cGUpOgorCiAyMDE0LTAzLTA2ICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIERvbid0
IHBlcmZvcm0gYSByb3VuZC10cmlwIHRocm91Z2ggV2ViUHJvY2VzcyBiZWZvcmUgaW50ZXJwcmV0
aW5nIGtleSBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGFmZTA0NTg3
MTU0YTNmMTlkOWViMmEwMGM3MmJkOTliNGI1YmJkZTcuLjliMmI0N2JiYTU5ODAyYmFkY2FjNjUy
NjdiZGNhNjViZjEyM2FkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNzQ5
LDYgKzc0OSw3IEBAIGFsbCA6IFwKICAgICBQbHVnSW5zUmVzb3VyY2VzLmggXAogICAgIFNWR0Vs
ZW1lbnRGYWN0b3J5LmNwcCBcCiAgICAgU1ZHTmFtZXMuY3BwIFwKKyAgICBTZWxlY3RvclBzZXVk
b1R5cGVNYXAuY3BwIFwKICAgICBVc2VyQWdlbnRTY3JpcHRzLmggXAogICAgIFVzZXJBZ2VudFN0
eWxlU2hlZXRzLmggXAogICAgIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAgXApAQCAtNzkyLDYg
Kzc5MywxNCBAQCBDU1NWYWx1ZUtleXdvcmRzLmggOiAkKFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdP
UkRTKSBjc3MvbWFrZXZhbHVlcy5wbCBiaW5kaW5ncy9zYwogCiAjIC0tLS0tLS0tCiAKKyMgQ1NT
IFNlbGVjdG9yIHBzZXVkbyB0eXBlIG5hbWUgdG8gdmFsdWUgbWFwLgorCitXRUJDT1JFX0NTU19T
RUxFQ1RPUl9QU0VVRE9fVFlQRV9NQVBfS0VZV09SRFMgOj0gJChXZWJDb3JlKS9jc3MvU2VsZWN0
b3JQc2V1ZG9UeXBlTWFwLmluCitTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwIDogJChXZWJDb3Jl
KS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weSAkKFdFQkNPUkVfQ1NTX1NFTEVDVE9S
X1BTRVVET19UWVBFX01BUF9LRVlXT1JEUykKKwlweXRob24gIiQoV2ViQ29yZSkvY3NzL21ha2VT
ZWxlY3RvclBzZXVkb1R5cGVNYXAucHkiICQoV0VCQ09SRV9DU1NfU0VMRUNUT1JfUFNFVURPX1RZ
UEVfTUFQX0tFWVdPUkRTKSAiJChGRUFUVVJFX0RFRklORVMpIgorCisjIC0tLS0tLS0tCisKICMg
WE1MVmlld2VyIENTUwogCiBhbGwgOiBYTUxWaWV3ZXJDU1MuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ0OTBmMWU0ODBkZTM0
ODJkNzBjMzA3MmMyMmUwNTZkODNlYTY5NjIuLmVhMGQyZDY3ZjQ3YTUzYjYxNGMyOTdmN2JmZWY0
Njk0OWUyMDU5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEzOTMsNiArMTM5Myw3IEBACiAJCTQxRkEzMDNFMTMxNkMyOUMw
MEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkEzMDNDMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5k
ZXJNZWRpYUNvbnRyb2xzLmNwcCAqLzsgfTsKIAkJNDFGQTMwM0YxMzE2QzI5QzAwQzBCRkM1IC8q
IFJlbmRlck1lZGlhQ29udHJvbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxRkEzMDNEMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRy
b2xzLmggKi87IH07CiAJCTQzMDZFNEU2MTQ5NTU1NDMwMDdGMTdBQyAvKiBLaWxsUmluZ05vbmUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMwNkU0
RTUxNDk1NTU0MzAwN0YxN0FDIC8qIEtpbGxSaW5nTm9uZS5jcHAgKi87IH07CisJCTQzMTA3QkUy
MThDQzE5REUwMENDMThFOCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzMTA3QkUxMThDQzE5REUwMENDMThF
OCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaCAqLzsgfTsKIAkJNDMxNDJFN0ExM0IxRTk3NzAw
RjFDODcxIC8qIFNWR0FuaW1hdGVkUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MzE0MkU3OTEzQjFFOTc3MDBGMUM4NzEgLyogU1ZHQW5pbWF0
ZWRSZWN0LmNwcCAqLzsgfTsKIAkJNDMxQTJGOUMxM0I2RjJCMDAwNzc5MUU0IC8qIFNWR0FuaW1h
dGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQzMUEyRjlBMTNCNkYyQjAwMDc3OTFFNCAvKiBTVkdBbmltYXRlZE51
bWJlck9wdGlvbmFsTnVtYmVyLmggKi87IH07CiAJCTQzMUEyRjlEMTNCNkYyQjAwMDc3OTFFNCAv
KiBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzMUEyRjlCMTNCNkYyQjAwMDc3OTFFNCAvKiBT
VkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcCAqLzsgfTsKQEAgLTE0NjYsNiArMTQ2
Nyw4IEBACiAJCTQzQTYyNUY4MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZENvbG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0E2MjVGNjEz
QjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRDb2xvci5oICovOyB9OwogCQk0M0E2MjVGOTEz
QjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRDb2xvci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0E2MjVGNzEzQjMzMDQwMDBBQzk0QjggLyog
U1ZHQW5pbWF0ZWRDb2xvci5jcHAgKi87IH07CiAJCTQzQTYyNjY3MTNCM0QxMTAwMEFDOTRCOCAv
KiBTVkdBbmltYXRlZFN0cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0M0E2MjY2NjEzQjNEMTEwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRTdHJp
bmcuY3BwICovOyB9OworCQk0M0I4NUVEMTE4Q0JFQUNFMDBFMzFBRjQgLyogbWFrZVNlbGVjdG9y
UHNldWRvVHlwZU1hcC5weSBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDNCODVFRDAxOENCRUFDRTAwRTMxQUY0IC8qIG1ha2VTZWxlY3RvclBzZXVkb1R5
cGVNYXAucHkgKi87IH07CisJCTQzQjg1RUQ0MThDQkVDNTIwMEUzMUFGNCAvKiBTZWxlY3RvclBz
ZXVkb1R5cGVNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDNCODVFRDIxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5j
cHAgKi87IH07CiAJCTQzQjkzMzY5MTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBvaW50
TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNC
OTMzNjcxM0IyNjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmggKi87IH07CiAJ
CTQzQjkzMzZBMTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBvaW50TGlzdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0I5MzM2ODEzQjI2
MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwICovOyB9OwogCQk0M0MwOTJC
QzEyRDlFNEVFMDBBOTg5QzMgLyogUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNDMDkyQkExMkQ5RTRFRTAwQTk4
OUMzIC8qIFJlbmRlclNWR0ZvcmVpZ25PYmplY3QuaCAqLzsgfTsKQEAgLTgyNTcsNiArODI2MCw3
IEBACiAJCTQxRkEzMDNDMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlck1lZGlhQ29udHJv
bHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZBMzAzRDEzMTZDMjlDMDBD
MEJGQzUgLyogUmVuZGVyTWVkaWFDb250cm9scy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJNZWRpYUNvbnRyb2xzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQzMDZFNEU1MTQ5NTU1NDMwMDdGMTdBQyAvKiBLaWxsUmluZ05vbmUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS2lsbFJpbmdOb25lLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDMxMDdCRTExOENDMTlERTAwQ0MxOEU4IC8qIFNlbGVjdG9y
UHNldWRvVHlwZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3Rv
clBzZXVkb1R5cGVNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDMxNDJFNzkx
M0IxRTk3NzAwRjFDODcxIC8qIFNWR0FuaW1hdGVkUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MzFBMkY5QTEzQjZGMkIwMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWROdW1i
ZXJPcHRpb25hbE51bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdB
bmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQzMUEyRjlCMTNCNkYyQjAwMDc3OTFFNCAvKiBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFs
TnVtYmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1h
dGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtODM1Nyw2ICs4MzYxLDEwIEBACiAJCTQzQTYyNUY2MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdB
bmltYXRlZENvbG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1h
dGVkQ29sb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNBNjI1RjcxM0IzMzA0
MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQzQTYyNjY2MTNCM0QxMTAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZFN0cmluZy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFN0cmlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzQjg1RUQwMThDQkVBQ0UwMEUz
MUFGNCAvKiBtYWtlU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLnB5ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3Jp
cHQucHl0aG9uOyBwYXRoID0gbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDNCODVFRDIxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9y
UHNldWRvVHlwZU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
ZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
M0I4NUVEMzE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmdwZXJmICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNlbGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDNCODVFRDYxOENCRUM5NzAwRTMxQUY0IC8qIFNlbGVj
dG9yUHNldWRvVHlwZU1hcC5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZWxlY3RvclBzZXVk
b1R5cGVNYXAuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQjkzMzY3MTNCMjYx
QjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBvaW50TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFBvaW50TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0M0I5MzM2ODEzQjI2MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExp
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRQ
b2ludExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0MwOTJCOTEyRDlF
NEVFMDBBOTg5QzMgLyogUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1ODM0LDYgKzE1ODQyLDggQEAKIAkJCQk0NEEyOEFB
RTEyREZCOEJGMDBBRTkyM0IgLyogTWF0aE1MTmFtZXMuaCAqLywKIAkJCQk3MUUyMTgzODE3MzU5
RkI4MDA2RTZFNEQgLyogUGx1Z0luc1Jlc291cmNlcy5oICovLAogCQkJCTcxRTIxODM5MTczNTlG
QjgwMDZFNkU0RCAvKiBQbHVnSW5zUmVzb3VyY2VzRGF0YS5jcHAgKi8sCisJCQkJNDNCODVFRDIx
OENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5jcHAgKi8sCisJCQkJNDNC
ODVFRDMxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZiAqLywK
IAkJCQk1M0VGNzY2QTE2NTMwQTYxMDA0Q0JFNDkgLyogU2V0dGluZ3NNYWNyb3MuaCAqLywKIAkJ
CQk2NTY1ODFFNjA5RDE1MDhEMDAwRTYxRDcgLyogU1ZHRWxlbWVudEZhY3RvcnkuY3BwICovLAog
CQkJCTY1NjU4MUU3MDlEMTUwOEQwMDBFNjFENyAvKiBTVkdFbGVtZW50RmFjdG9yeS5oICovLApA
QCAtMjE1NDYsNiArMjE1NTYsNyBAQAogCQkJCTRBOUNDODFGMTZCRjlCQjQwMEVDNjQ1QSAvKiBJ
bnNwZWN0b3JDU1NPTVdyYXBwZXJzLmggKi8sCiAJCQkJRTU1RjQ5NzkxNTFCODg4MDAwQkI2N0RC
IC8qIExlbmd0aEZ1bmN0aW9ucy5jcHAgKi8sCiAJCQkJRTVCQTdENjIxNTE0MzdDQTAwRkUxRTNG
IC8qIExlbmd0aEZ1bmN0aW9ucy5oICovLAorCQkJCTQzQjg1RUQwMThDQkVBQ0UwMEUzMUFGNCAv
KiBtYWtlU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLnB5ICovLAogCQkJCTkzQ0E0QzlBMDlERjkzRkEw
MERGODY3NyAvKiBtYWtlLWNzcy1maWxlLWFycmF5cy5wbCAqLywKIAkJCQk5M0NBNEM5QjA5REY5
M0ZBMDBERjg2NzcgLyogbWFrZXByb3AucGwgKi8sCiAJCQkJOTNDQTRDOUQwOURGOTNGQTAwREY4
Njc3IC8qIG1ha2V2YWx1ZXMucGwgKi8sCkBAIC0yMTU5Miw2ICsyMTYwMyw4IEBACiAJCQkJNDMy
RDNGRTcxOEE4NjU4NDAwRDdEQzAzIC8qIFNlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaCAq
LywKIAkJCQk0MTUwNzE1NTE2ODUwNjczMDBDM0M3QjMgLyogU2VsZWN0b3JGaWx0ZXIuY3BwICov
LAogCQkJCTQxNTA3MTU2MTY4NTA2NzMwMEMzQzdCMyAvKiBTZWxlY3RvckZpbHRlci5oICovLAor
CQkJCTQzQjg1RUQ2MThDQkVDOTcwMEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4g
Ki8sCisJCQkJNDMxMDdCRTExOENDMTlERTAwQ0MxOEU4IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1h
cC5oICovLAogCQkJCUU0N0E5N0NFMTYzMDU5RkMwMDVEQ0Q5OSAvKiBTdHlsZUludmFsaWRhdGlv
bkFuYWx5c2lzLmNwcCAqLywKIAkJCQlFNDdBOTdDRjE2MzA1OUZDMDA1RENEOTkgLyogU3R5bGVJ
bnZhbGlkYXRpb25BbmFseXNpcy5oICovLAogCQkJCTBGRjUwMjZFMTAyQkE5NjYwMDY2RjM5QSAv
KiBTdHlsZU1lZGlhLmNwcCAqLywKQEAgLTIzODcxLDYgKzIzODg0LDcgQEAKIAkJCQlBODcxREIz
MTBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlUm93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM0NDJDOUUwRDJCMzM1QzAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREIyNTBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQzMTA3QkUyMThDQzE5REUw
MENDMThFOCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUQ2
NjgxN0ZCMTY2RkU2RDcwMEZBMDdCNCAvKiBIVE1MVGVtcGxhdGVFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODEzNjlENjA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTFRleHRBcmVhRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUJDNkMyMUIxM0NDQzk3QjAwOEUwMzM3IC8qIEhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MjA1LDYgKzI2MjE5
LDcgQEAKIAkJCWZpbGVzID0gKAogCQkJCTQ2RjlENUREMEIwRDYwMTcwMDI4RUUzNiAvKiBhbGlh
c0N1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTQ2RDRGMjQ5MEFGOTdFODEwMDM1Mzg1
QSAvKiBjZWxsQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJNDNCODVFRDExOENCRUFD
RTAwRTMxQUY0IC8qIG1ha2VTZWxlY3RvclBzZXVkb1R5cGVNYXAucHkgaW4gUmVzb3VyY2VzICov
LAogCQkJCTkzMTUzQkRFMTQxOTU5RjQwMEZDRjVCRSAvKiBkZWxldGVCdXR0b24ucG5nIGluIFJl
c291cmNlcyAqLywKIAkJCQk5MzE1M0JDRDE0MTdGQkJGMDBGQ0Y1QkUgLyogZGVsZXRlQnV0dG9u
QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJOTMxNTNCRTAxNDE5NUEyODAwRkNGNUJFIC8q
IGRlbGV0ZUJ1dHRvblByZXNzZWQucG5nIGluIFJlc291cmNlcyAqLywKQEAgLTI3MDIzLDYgKzI3
MDM4LDcgQEAKIAkJCQk2RTY3RDJBNjEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9uczNET3Bl
bkdMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAvKiBF
eHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcyODY5NEUx
NEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk0M0I4NUVENDE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9U
eXBlTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4Qjg4MEUxREUyRDYwMDdGMjQ4MSAv
KiBGRUJsZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4QjhBMEUxREUyRDYwMDdGMjQ4
MSAvKiBGRUNvbG9yTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4QjhDMEUxREUy
RDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KaW5kZXggNzQ2ODYxZWJjNDA1OGYwZTY4MTY4YzA1ZTRi
ZjBiNGRhYmE4MjU5Zi4uMTdjYTljNDk1YjRkZjhmYTU4MzUxMThmNzc4MmQ5NTU2Y2NmYTBhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCkBAIC0xMTcwLDEzICsxMTcwLDcgQEAgaWRl
bnRfb3Jfc3RyaW5nOiBJREVOVCB8IFNUUklORyA7CiAKIHBzZXVkb19wYWdlOgogICAgICc6JyBJ
REVOVCB7Ci0gICAgICAgICQkID0gbnVsbHB0cjsKLSAgICAgICAgYXV0byBzZWxlY3RvciA9IHN0
ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0b3I+KCk7Ci0gICAgICAgIHNlbGVjdG9yLT5z
ZXRNYXRjaChDU1NTZWxlY3Rvcjo6UGFnZVBzZXVkb0NsYXNzKTsKLSAgICAgICAgJDIubG93ZXIo
KTsKLSAgICAgICAgc2VsZWN0b3ItPnNldFZhbHVlKCQyKTsKLSAgICAgICAgaWYgKHNlbGVjdG9y
LT5wc2V1ZG9UeXBlKCkgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24pCi0gICAgICAgICAg
ICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKKyAgICAgICAgJCQgPSBDU1NQYXJzZXJTZWxlY3Rv
cjo6cGFyc2VQYWdlUHNldWRvU2VsZWN0b3IoJDIpOwogICAgIH0KIAogcHNldWRvOgpAQCAtMTE4
NSw3ICsxMTc5LDcgQEAgcHNldWRvOgogICAgICAgICBhdXRvIHNlbGVjdG9yID0gc3RkOjptYWtl
X3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKICAgICAgICAgc2VsZWN0b3ItPnNldE1hdGNo
KENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CiAgICAgICAgICQyLmxvd2VyKCk7Ci0gICAgICAg
IHNlbGVjdG9yLT5zZXRWYWx1ZSgkMik7CisgICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9UeXBl
VmFsdWUoJDIpOwogICAgICAgICBpZiAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSAhPSBDU1NTZWxl
Y3Rvcjo6UHNldWRvVW5rbm93bikKICAgICAgICAgICAgICQkID0gc2VsZWN0b3IucmVsZWFzZSgp
OwogICAgIH0KQEAgLTExOTQsNyArMTE4OCw3IEBAIHBzZXVkbzoKICAgICAgICAgYXV0byBzZWxl
Y3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0b3I+KCk7CiAgICAgICAgIHNl
bGVjdG9yLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudCk7CiAgICAgICAgICQz
Lmxvd2VyKCk7Ci0gICAgICAgIHNlbGVjdG9yLT5zZXRWYWx1ZSgkMyk7CisgICAgICAgIHNlbGVj
dG9yLT5zZXRQc2V1ZG9UeXBlVmFsdWUoJDMpOwogICAgICAgICBpZiAoc2VsZWN0b3ItPnBzZXVk
b1R5cGUoKSAhPSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bikKICAgICAgICAgICAgICQkID0g
c2VsZWN0b3IucmVsZWFzZSgpOwogICAgIH0KQEAgLTEyMDYsNyArMTIwMCw3IEBAIHBzZXVkbzoK
ICAgICAgICAgICAgIGF1dG8gc2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENTU1BhcnNlclNl
bGVjdG9yPigpOwogICAgICAgICAgICAgc2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQ
c2V1ZG9DbGFzcyk7CiAgICAgICAgICAgICBzZWxlY3Rvci0+YWRvcHRTZWxlY3RvclZlY3Rvcigq
c3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+
Pj4oJDUpKTsKLSAgICAgICAgICAgIHNlbGVjdG9yLT5zZXRWYWx1ZSgkMyk7CisgICAgICAgICAg
ICBzZWxlY3Rvci0+c2V0UHNldWRvVHlwZVZhbHVlKCQzKTsKICAgICAgICAgICAgIGlmIChzZWxl
Y3Rvci0+cHNldWRvVHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DdWUpCiAgICAgICAgICAg
ICAgICAgJCQgPSBzZWxlY3Rvci5yZWxlYXNlKCk7CiAgICAgICAgIH0KQEAgLTEyMjQsNyArMTIx
OCw3IEBAIHBzZXVkbzoKICAgICAgICAgICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3MpOwogICAgICAgICAgICAgc2VsZWN0b3ItPmFkb3B0U2VsZWN0b3JWZWN0
b3IoKnN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVj
dG9yPj4+KCQ0KSk7CiAgICAgICAgICAgICAkMi5sb3dlcigpOwotICAgICAgICAgICAgc2VsZWN0
b3ItPnNldFZhbHVlKCQyKTsKKyAgICAgICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9UeXBlVmFs
dWUoJDIpOwogICAgICAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkgPT0gQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0FueSkKICAgICAgICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2Uo
KTsKICAgICAgICAgfQpAQCAtMTIzNSw3ICsxMjI5LDcgQEAgcHNldWRvOgogICAgICAgICBhdXRv
IHNlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKICAgICAg
ICAgc2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CiAgICAgICAg
IHNlbGVjdG9yLT5zZXRBcmd1bWVudCgkNCk7Ci0gICAgICAgIHNlbGVjdG9yLT5zZXRWYWx1ZSgk
Mik7CisgICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9UeXBlVmFsdWUoJDIpOwogICAgICAgICBp
ZiAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSAhPSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bikK
ICAgICAgICAgICAgICQkID0gc2VsZWN0b3IucmVsZWFzZSgpOwogICAgIH0KQEAgLTEyNDUsNyAr
MTIzOSw3IEBAIHBzZXVkbzoKICAgICAgICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlx
dWU8Q1NTUGFyc2VyU2VsZWN0b3I+KCk7CiAgICAgICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOwogICAgICAgICBzZWxlY3Rvci0+c2V0QXJndW1lbnQoQXRv
bWljU3RyaW5nOjpudW1iZXIoJDQgKiAkNSkpOwotICAgICAgICBzZWxlY3Rvci0+c2V0VmFsdWUo
JDIpOworICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvVHlwZVZhbHVlKCQyKTsKICAgICAgICAg
aWYgKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24p
CiAgICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKICAgICB9CkBAIC0xMjU1LDcg
KzEyNDksNyBAQCBwc2V1ZG86CiAgICAgICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3MpOwogICAgICAgICBzZWxlY3Rvci0+c2V0QXJndW1lbnQoJDQpOwogICAg
ICAgICAkMi5sb3dlcigpOwotICAgICAgICBzZWxlY3Rvci0+c2V0VmFsdWUoJDIpOworICAgICAg
ICBzZWxlY3Rvci0+c2V0UHNldWRvVHlwZVZhbHVlKCQyKTsKICAgICAgICAgQ1NTU2VsZWN0b3I6
OlBzZXVkb1R5cGUgdHlwZSA9IHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCk7CiAgICAgICAgIGlmICh0
eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duKQogICAgICAgICAgICAgc2VsZWN0b3Ig
PSBudWxscHRyOwpAQCAtMTI4MSw3ICsxMjc1LDcgQEAgcHNldWRvOgogICAgICAgICAgICAgJCQt
PmFkb3B0U2VsZWN0b3JWZWN0b3Ioc2VsZWN0b3JWZWN0b3IpOwogCiAgICAgICAgICAgICAkMi5s
b3dlcigpOwotICAgICAgICAgICAgJCQtPnNldFZhbHVlKCQyKTsKKyAgICAgICAgICAgICQkLT5z
ZXRQc2V1ZG9UeXBlVmFsdWUoJDIpOwogICAgICAgICB9CiAgICAgfQogICA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCmluZGV4IGIyYjBkNjQ0MjZkZjQ1YTcyNzkxNjdjMmE5
YzNmMGM0ODA5ZmU5MzYuLmYyZDcyNDQzMTYzNDNmYWUxZjIyYzM0NGM4MDNhZDU0MmIzZTc3ZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCkBAIC0xNDYsNiArMTQ2LDI0
IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlclZhbHVlOjpjcmVhdGVDU1NWYWx1ZSgp
CiAgICAgcmV0dXJuIDA7CiB9CiAKK0NTU1BhcnNlclNlbGVjdG9yKiBDU1NQYXJzZXJTZWxlY3Rv
cjo6cGFyc2VQYWdlUHNldWRvU2VsZWN0b3IoY29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9U
eXBlU3RyaW5nKQoreworICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBzZXVkb1R5cGU7Cisg
ICAgaWYgKHBzZXVkb1R5cGVTdHJpbmcuZXF1YWxJZ25vcmluZ0Nhc2UoImZpcnN0IikpCisgICAg
ICAgIHBzZXVkb1R5cGUgPSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3Q7CisgICAgZWxzZSBpZiAo
cHNldWRvVHlwZVN0cmluZy5lcXVhbElnbm9yaW5nQ2FzZSgibGVmdCIpKQorICAgICAgICBwc2V1
ZG9UeXBlID0gQ1NTU2VsZWN0b3I6OlBzZXVkb0xlZnQ7CisgICAgZWxzZSBpZiAocHNldWRvVHlw
ZVN0cmluZy5lcXVhbElnbm9yaW5nQ2FzZSgicmlnaHQiKSkKKyAgICAgICAgcHNldWRvVHlwZSA9
IENTU1NlbGVjdG9yOjpQc2V1ZG9SaWdodDsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2Vs
ZWN0b3I+KCk7CisgICAgc2VsZWN0b3ItPm1fc2VsZWN0b3ItPm1fbWF0Y2ggPSBDU1NTZWxlY3Rv
cjo6UGFnZVBzZXVkb0NsYXNzOworICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5tX3BzZXVkb1R5
cGUgPSBwc2V1ZG9UeXBlOworICAgIHJldHVybiBzZWxlY3Rvci5yZWxlYXNlKCk7Cit9CisKIENT
U1BhcnNlclNlbGVjdG9yOjpDU1NQYXJzZXJTZWxlY3RvcigpCiAgICAgOiBtX3NlbGVjdG9yKHN0
ZDo6bWFrZV91bmlxdWU8Q1NTU2VsZWN0b3I+KCkpCiB7CkBAIC0xNzgsNiArMTk2LDEyMSBAQCB2
b2lkIENTU1BhcnNlclNlbGVjdG9yOjphZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZQogICAgIG1fc2VsZWN0b3ItPnNldFNlbGVjdG9yTGlzdChz
dGQ6Om1vdmUoc2VsZWN0b3JMaXN0KSk7CiB9CiAKK3ZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OnNl
dFBzZXVkb1R5cGVWYWx1ZShjb25zdCBDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcp
Cit7CisgICAgQXRvbWljU3RyaW5nIG5hbWUgPSBwc2V1ZG9UeXBlU3RyaW5nOworICAgIG1fc2Vs
ZWN0b3ItPnNldFZhbHVlKG5hbWUpOworCisgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcHNl
dWRvVHlwZSA9IENTU1NlbGVjdG9yOjpwYXJzZVBzZXVkb1R5cGUobmFtZSk7CisgICAgYm9vbCBl
bGVtZW50ID0gZmFsc2U7IC8vIHBzZXVkby1lbGVtZW50CisgICAgYm9vbCBjb21wYXQgPSBmYWxz
ZTsgLy8gc2luZ2xlIGNvbG9uIGNvbXBhdGJpbGl0eSBtb2RlCisKKyAgICBzd2l0Y2ggKHBzZXVk
b1R5cGUpIHsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9BZnRlcjoKKyAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9CZWZvcmU6CisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0N1ZToKKyNlbmRpZgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0ZpcnN0TGV0dGVyOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0TGlu
ZToKKyAgICAgICAgY29tcGF0ID0gdHJ1ZTsKKyAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvUmVzaXplcjoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9TY3JvbGxiYXI6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2Nyb2xsYmFyQ29ybmVy
OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhckJ1dHRvbjoKKyAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9TY3JvbGxiYXJUaHVtYjoKKyAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9TY3JvbGxiYXJUcmFjazoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TY3Jv
bGxiYXJUcmFja1BpZWNlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1NlbGVjdGlvbjoK
KyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Vc2VyQWdlbnRDdXN0b21FbGVtZW50OgorICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQ6CisgICAgICAgIGVs
ZW1lbnQgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9Vbmtub3duOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VtcHR5OgorICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvRmlyc3RPZlR5cGU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFzdENoaWxkOgor
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RPZlR5cGU6CisgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvT25seUNoaWxkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlP
ZlR5cGU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoQ2hpbGQ6CisgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvTnRoT2ZUeXBlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b050aExhc3RDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0T2ZUeXBl
OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xpbms6CisgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvVmlzaXRlZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Bbnk6CisgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55TGluazoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9BdXRvZmlsbDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ib3ZlcjoKKyAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EcmFnOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0ZvY3VzOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FjdGl2ZToKKyAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9DaGVja2VkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Vu
YWJsZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFBhZ2VNZWRpYToKKyAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EZWZhdWx0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0Rpc2FibGVkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09wdGlvbmFsOgorICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1JlcXVpcmVkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb1JlYWRPbmx5OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1JlYWRXcml0ZToK
KyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TY29wZToKKyAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9WYWxpZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbnZhbGlkOgorICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luZGV0ZXJtaW5hdGU6CisgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvVGFyZ2V0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhbmc6Cisg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTm90OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb1Jvb3Q6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2Nyb2xsYmFyQmFjazoKKyAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TY3JvbGxiYXJGb3J3YXJkOgorICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb1dpbmRvd0luYWN0aXZlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0Nvcm5lclByZXNlbnQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGVjcmVtZW50
OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luY3JlbWVudDoKKyAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9Ib3Jpem9udGFsOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Zl
cnRpY2FsOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1N0YXJ0OgorICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0VuZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Eb3VibGVC
dXR0b246CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2luZ2xlQnV0dG9uOgorICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb05vQnV0dG9uOgorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuOgorICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0Z1bGxTY3JlZW5Eb2N1bWVudDoKKyAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9GdWxsU2NyZWVuQW5jZXN0b3I6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
QW5pbWF0aW5nRnVsbFNjcmVlblRyYW5zaXRpb246CisjZW5kaWYKKyAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9JblJhbmdlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb091dE9mUmFu
Z2U6CisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0Z1dHVyZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9QYXN0OgorI2VuZGlmCisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0OgorICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0xlZnQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvUmln
aHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICB1bnNpZ25lZCBtYXRjaFR5cGUgPSBtX3NlbGVjdG9yLT5tX21hdGNoOworICAgIGlm
IChtYXRjaFR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzICYmIGVsZW1lbnQpIHsKKyAg
ICAgICAgaWYgKCFjb21wYXQpCisgICAgICAgICAgICBwc2V1ZG9UeXBlID0gQ1NTU2VsZWN0b3I6
OlBzZXVkb1Vua25vd247CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1hdGNoVHlwZSA9IENT
U1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50OworICAgIH0gZWxzZSBpZiAobWF0Y2hUeXBlID09IENT
U1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50ICYmICFlbGVtZW50KQorICAgICAgICBwc2V1ZG9UeXBl
ID0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd247CisKKyAgICBtX3NlbGVjdG9yLT5tX21hdGNo
ID0gbWF0Y2hUeXBlOworICAgIG1fc2VsZWN0b3ItPm1fcHNldWRvVHlwZSA9IHBzZXVkb1R5cGU7
Cit9CisKIGJvb2wgQ1NTUGFyc2VyU2VsZWN0b3I6OmlzU2ltcGxlKCkgY29uc3QKIHsKICAgICBp
ZiAobV9zZWxlY3Rvci0+c2VsZWN0b3JMaXN0KCkgfHwgbV9zZWxlY3Rvci0+bWF0Y2hlc1BzZXVk
b0VsZW1lbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaAppbmRleCBjYjM0ZTlk
Yjc5NGVjNTY0YTkwNDUwNGM5Y2NkY2NkNWU2Yjc4OTJjLi42YjFiMDlkZDIzZTMzNjQ0M2M0ODI2
NmVlZTc0NWRjMzQ2YTk4ZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyVmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCkBA
IC0xNzEsNiArMTcxLDggQEAgcHVibGljOgogY2xhc3MgQ1NTUGFyc2VyU2VsZWN0b3IgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIHN0YXRpYyBDU1NQYXJzZXJT
ZWxlY3RvciogcGFyc2VQYWdlUHNldWRvU2VsZWN0b3IoY29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBw
c2V1ZG9UeXBlU3RyaW5nKTsKKwogICAgIENTU1BhcnNlclNlbGVjdG9yKCk7CiAgICAgZXhwbGlj
aXQgQ1NTUGFyc2VyU2VsZWN0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIH5DU1NQYXJz
ZXJTZWxlY3RvcigpOwpAQCAtMTg0LDggKzE4NiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRS
ZWxhdGlvbihDU1NTZWxlY3Rvcjo6UmVsYXRpb24gdmFsdWUpIHsgbV9zZWxlY3Rvci0+bV9yZWxh
dGlvbiA9IHZhbHVlOyB9CiAgICAgdm9pZCBzZXRGb3JQYWdlKCkgeyBtX3NlbGVjdG9yLT5zZXRG
b3JQYWdlKCk7IH0KIAorCiAgICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6
OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0b3JWZWN0b3IpOwogCisgICAg
dm9pZCBzZXRQc2V1ZG9UeXBlVmFsdWUoY29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9UeXBl
U3RyaW5nKTsKICAgICBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBwc2V1ZG9UeXBlKCkgY29uc3Qg
eyByZXR1cm4gbV9zZWxlY3Rvci0+cHNldWRvVHlwZSgpOyB9CiAgICAgYm9vbCBpc0N1c3RvbVBz
ZXVkb0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdG9yLT5pc0N1c3RvbVBzZXVkb0Vs
ZW1lbnQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCBlYjM3MjM3ZmY0
YTY4MGY3ZGIwNGU0NzkwZWY1Yjk0ZTdlZDVlY2IzLi4wM2Y4MTlkNmQ0YjAzZWE4NWVkYWQxNWZk
MjJhNzQ3YmE4ZjRkYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJDU1NPTVV0aWxzLmgiCiAjaW5jbHVkZSAiQ1NTU2VsZWN0b3JM
aXN0LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiU2VsZWN0b3JQc2V1ZG9U
eXBlTWFwLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMTIxLDE3ICsxMjIs
MTUgQEAgdW5zaWduZWQgQ1NTU2VsZWN0b3I6OnNwZWNpZmljaXR5Rm9yUGFnZSgpIGNvbnN0CiAg
ICAgICAgIGNhc2UgVGFnOgogICAgICAgICAgICAgcyArPSB0YWdRTmFtZSgpLmxvY2FsTmFtZSgp
ID09IHN0YXJBdG9tID8gMCA6IDQ7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQ
c2V1ZG9DbGFzczoKKyAgICAgICAgY2FzZSBQYWdlUHNldWRvQ2xhc3M6CiAgICAgICAgICAgICBz
d2l0Y2ggKGNvbXBvbmVudC0+cHNldWRvVHlwZSgpKSB7Ci0gICAgICAgICAgICBjYXNlIFBzZXVk
b0ZpcnN0UGFnZToKKyAgICAgICAgICAgIGNhc2UgUHNldWRvRmlyc3Q6CiAgICAgICAgICAgICAg
ICAgcyArPSAyOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBQc2V1
ZG9MZWZ0UGFnZToKLSAgICAgICAgICAgIGNhc2UgUHNldWRvUmlnaHRQYWdlOgorICAgICAgICAg
ICAgY2FzZSBQc2V1ZG9MZWZ0OgorICAgICAgICAgICAgY2FzZSBQc2V1ZG9SaWdodDoKICAgICAg
ICAgICAgICAgICBzICs9IDE7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBj
YXNlIFBzZXVkb05vdFBhcnNlZDoKLSAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
ICAgICB9CkBAIC0yMzEsMjY1ICsyMzAsNDMgQEAgUHNldWRvSWQgQ1NTU2VsZWN0b3I6OnBzZXVk
b0lkKFBzZXVkb1R5cGUgdHlwZSkKICAgICBjYXNlIFBzZXVkb0RvdWJsZUJ1dHRvbjoKICAgICBj
YXNlIFBzZXVkb1NpbmdsZUJ1dHRvbjoKICAgICBjYXNlIFBzZXVkb05vQnV0dG9uOgotICAgIGNh
c2UgUHNldWRvRmlyc3RQYWdlOgotICAgIGNhc2UgUHNldWRvTGVmdFBhZ2U6Ci0gICAgY2FzZSBQ
c2V1ZG9SaWdodFBhZ2U6CisgICAgY2FzZSBQc2V1ZG9GaXJzdDoKKyAgICBjYXNlIFBzZXVkb0xl
ZnQ6CisgICAgY2FzZSBQc2V1ZG9SaWdodDoKICAgICBjYXNlIFBzZXVkb0luUmFuZ2U6CiAgICAg
Y2FzZSBQc2V1ZG9PdXRPZlJhbmdlOgogICAgIGNhc2UgUHNldWRvVXNlckFnZW50Q3VzdG9tRWxl
bWVudDoKICAgICBjYXNlIFBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQ6CiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogICAgIGNhc2UgUHNldWRvQ3VlOgotICAgIGNhc2UgUHNldWRvRnV0dXJlQ3Vl
OgotICAgIGNhc2UgUHNldWRvUGFzdEN1ZToKKyAgICBjYXNlIFBzZXVkb0Z1dHVyZToKKyAgICBj
YXNlIFBzZXVkb1Bhc3Q6CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIE5PUFNFVURPOwotICAgIGNh
c2UgUHNldWRvTm90UGFyc2VkOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgcmV0dXJuIE5PUFNFVURPOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIHJldHVybiBOT1BTRVVETzsKIH0KIAotc3RhdGljIE5FVkVSX0lOTElORSB2b2lkIHBvcHVs
YXRlUHNldWRvVHlwZUJ5TmFtZU1hcChIYXNoTWFwPEF0b21pY1N0cmluZywgQ1NTU2VsZWN0b3I6
OlBzZXVkb1R5cGU+JiBtYXApCi17Ci0gICAgc3RydWN0IFRhYmxlRW50cnkgewotICAgICAgICBj
b25zdCBjaGFyKiBuYW1lOwotICAgICAgICB1bnNpZ25lZCBuYW1lTGVuZ3RoOwotICAgICAgICBD
U1NTZWxlY3Rvcjo6UHNldWRvVHlwZSB0eXBlOwotICAgIH07Ci0KLSAgICAvLyBDb3VsZCB1c2Ug
c3RybGVuIGluIHRoaXMgbWFjcm8gYnV0IG5vdCBhbGwgY29tcGlsZXJzIGNhbiBjb25zdGFudC1m
b2xkIGl0LgotI2RlZmluZSBUQUJMRV9FTlRSWShuYW1lLCB0eXBlKSB7IG5hbWUsIHNpemVvZihu
YW1lKSAtIDEsIENTU1NlbGVjdG9yOjp0eXBlIH0sCi0KLSAgICBzdGF0aWMgY29uc3QgVGFibGVF
bnRyeSB0YWJsZVtdID0gewotICAgICAgICBUQUJMRV9FTlRSWSgiLWtodG1sLWRyYWciLCBQc2V1
ZG9EcmFnKQotICAgICAgICBUQUJMRV9FTlRSWSgiLXdlYmtpdC1hbnkoIiwgUHNldWRvQW55KQot
ICAgICAgICBUQUJMRV9FTlRSWSgiLXdlYmtpdC1hbnktbGluayIsIFBzZXVkb0FueUxpbmspCi0g
ICAgICAgIFRBQkxFX0VOVFJZKCItd2Via2l0LWF1dG9maWxsIiwgUHNldWRvQXV0b2ZpbGwpCi0g
ICAgICAgIFRBQkxFX0VOVFJZKCItd2Via2l0LWRyYWciLCBQc2V1ZG9EcmFnKQotICAgICAgICBU
QUJMRV9FTlRSWSgiLXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWEiLCBQc2V1ZG9GdWxsUGFnZU1lZGlh
KQotICAgICAgICBUQUJMRV9FTlRSWSgiLXdlYmtpdC1yZXNpemVyIiwgUHNldWRvUmVzaXplcikK
LSAgICAgICAgVEFCTEVfRU5UUlkoIi13ZWJraXQtc2Nyb2xsYmFyIiwgUHNldWRvU2Nyb2xsYmFy
KQotICAgICAgICBUQUJMRV9FTlRSWSgiLXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIiwgUHNldWRv
U2Nyb2xsYmFyQnV0dG9uKQotICAgICAgICBUQUJMRV9FTlRSWSgiLXdlYmtpdC1zY3JvbGxiYXIt
Y29ybmVyIiwgUHNldWRvU2Nyb2xsYmFyQ29ybmVyKQotICAgICAgICBUQUJMRV9FTlRSWSgiLXdl
YmtpdC1zY3JvbGxiYXItdGh1bWIiLCBQc2V1ZG9TY3JvbGxiYXJUaHVtYikKLSAgICAgICAgVEFC
TEVfRU5UUlkoIi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIiwgUHNldWRvU2Nyb2xsYmFyVHJhY2sp
Ci0gICAgICAgIFRBQkxFX0VOVFJZKCItd2Via2l0LXNjcm9sbGJhci10cmFjay1waWVjZSIsIFBz
ZXVkb1Njcm9sbGJhclRyYWNrUGllY2UpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJhY3RpdmUiLCBQ
c2V1ZG9BY3RpdmUpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJhZnRlciIsIFBzZXVkb0FmdGVyKQot
ICAgICAgICBUQUJMRV9FTlRSWSgiYmVmb3JlIiwgUHNldWRvQmVmb3JlKQotICAgICAgICBUQUJM
RV9FTlRSWSgiY2hlY2tlZCIsIFBzZXVkb0NoZWNrZWQpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJj
b3JuZXItcHJlc2VudCIsIFBzZXVkb0Nvcm5lclByZXNlbnQpCi0gICAgICAgIFRBQkxFX0VOVFJZ
KCJkZWNyZW1lbnQiLCBQc2V1ZG9EZWNyZW1lbnQpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJkZWZh
dWx0IiwgUHNldWRvRGVmYXVsdCkKLSAgICAgICAgVEFCTEVfRU5UUlkoImRpc2FibGVkIiwgUHNl
dWRvRGlzYWJsZWQpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJkb3VibGUtYnV0dG9uIiwgUHNldWRv
RG91YmxlQnV0dG9uKQotICAgICAgICBUQUJMRV9FTlRSWSgiZW1wdHkiLCBQc2V1ZG9FbXB0eSkK
LSAgICAgICAgVEFCTEVfRU5UUlkoImVuYWJsZWQiLCBQc2V1ZG9FbmFibGVkKQotICAgICAgICBU
QUJMRV9FTlRSWSgiZW5kIiwgUHNldWRvRW5kKQotICAgICAgICBUQUJMRV9FTlRSWSgiZmlyc3Qi
LCBQc2V1ZG9GaXJzdFBhZ2UpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJmaXJzdC1jaGlsZCIsIFBz
ZXVkb0ZpcnN0Q2hpbGQpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJmaXJzdC1sZXR0ZXIiLCBQc2V1
ZG9GaXJzdExldHRlcikKLSAgICAgICAgVEFCTEVfRU5UUlkoImZpcnN0LWxpbmUiLCBQc2V1ZG9G
aXJzdExpbmUpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJmaXJzdC1vZi10eXBlIiwgUHNldWRvRmly
c3RPZlR5cGUpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJmb2N1cyIsIFBzZXVkb0ZvY3VzKQotICAg
ICAgICBUQUJMRV9FTlRSWSgiaG9yaXpvbnRhbCIsIFBzZXVkb0hvcml6b250YWwpCi0gICAgICAg
IFRBQkxFX0VOVFJZKCJob3ZlciIsIFBzZXVkb0hvdmVyKQotICAgICAgICBUQUJMRV9FTlRSWSgi
aW4tcmFuZ2UiLCBQc2V1ZG9JblJhbmdlKQotICAgICAgICBUQUJMRV9FTlRSWSgiaW5jcmVtZW50
IiwgUHNldWRvSW5jcmVtZW50KQotICAgICAgICBUQUJMRV9FTlRSWSgiaW5kZXRlcm1pbmF0ZSIs
IFBzZXVkb0luZGV0ZXJtaW5hdGUpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJpbnZhbGlkIiwgUHNl
dWRvSW52YWxpZCkKLSAgICAgICAgVEFCTEVfRU5UUlkoImxhbmcoIiwgUHNldWRvTGFuZykKLSAg
ICAgICAgVEFCTEVfRU5UUlkoImxhc3QtY2hpbGQiLCBQc2V1ZG9MYXN0Q2hpbGQpCi0gICAgICAg
IFRBQkxFX0VOVFJZKCJsYXN0LW9mLXR5cGUiLCBQc2V1ZG9MYXN0T2ZUeXBlKQotICAgICAgICBU
QUJMRV9FTlRSWSgibGVmdCIsIFBzZXVkb0xlZnRQYWdlKQotICAgICAgICBUQUJMRV9FTlRSWSgi
bGluayIsIFBzZXVkb0xpbmspCi0gICAgICAgIFRBQkxFX0VOVFJZKCJuby1idXR0b24iLCBQc2V1
ZG9Ob0J1dHRvbikKLSAgICAgICAgVEFCTEVfRU5UUlkoIm5vdCgiLCBQc2V1ZG9Ob3QpCi0gICAg
ICAgIFRBQkxFX0VOVFJZKCJudGgtY2hpbGQoIiwgUHNldWRvTnRoQ2hpbGQpCi0gICAgICAgIFRB
QkxFX0VOVFJZKCJudGgtbGFzdC1jaGlsZCgiLCBQc2V1ZG9OdGhMYXN0Q2hpbGQpCi0gICAgICAg
IFRBQkxFX0VOVFJZKCJudGgtbGFzdC1vZi10eXBlKCIsIFBzZXVkb050aExhc3RPZlR5cGUpCi0g
ICAgICAgIFRBQkxFX0VOVFJZKCJudGgtb2YtdHlwZSgiLCBQc2V1ZG9OdGhPZlR5cGUpCi0gICAg
ICAgIFRBQkxFX0VOVFJZKCJvbmx5LWNoaWxkIiwgUHNldWRvT25seUNoaWxkKQotICAgICAgICBU
QUJMRV9FTlRSWSgib25seS1vZi10eXBlIiwgUHNldWRvT25seU9mVHlwZSkKLSAgICAgICAgVEFC
TEVfRU5UUlkoIm9wdGlvbmFsIiwgUHNldWRvT3B0aW9uYWwpCi0gICAgICAgIFRBQkxFX0VOVFJZ
KCJvdXQtb2YtcmFuZ2UiLCBQc2V1ZG9PdXRPZlJhbmdlKQotICAgICAgICBUQUJMRV9FTlRSWSgi
cmVhZC1vbmx5IiwgUHNldWRvUmVhZE9ubHkpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJyZWFkLXdy
aXRlIiwgUHNldWRvUmVhZFdyaXRlKQotICAgICAgICBUQUJMRV9FTlRSWSgicmVxdWlyZWQiLCBQ
c2V1ZG9SZXF1aXJlZCkKLSAgICAgICAgVEFCTEVfRU5UUlkoInJpZ2h0IiwgUHNldWRvUmlnaHRQ
YWdlKQotICAgICAgICBUQUJMRV9FTlRSWSgicm9vdCIsIFBzZXVkb1Jvb3QpCi0gICAgICAgIFRB
QkxFX0VOVFJZKCJzY29wZSIsIFBzZXVkb1Njb3BlKQotICAgICAgICBUQUJMRV9FTlRSWSgic2Vs
ZWN0aW9uIiwgUHNldWRvU2VsZWN0aW9uKQotICAgICAgICBUQUJMRV9FTlRSWSgic2luZ2xlLWJ1
dHRvbiIsIFBzZXVkb1NpbmdsZUJ1dHRvbikKLSAgICAgICAgVEFCTEVfRU5UUlkoInN0YXJ0Iiwg
UHNldWRvU3RhcnQpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJ0YXJnZXQiLCBQc2V1ZG9UYXJnZXQp
Ci0gICAgICAgIFRBQkxFX0VOVFJZKCJ2YWxpZCIsIFBzZXVkb1ZhbGlkKQotICAgICAgICBUQUJM
RV9FTlRSWSgidmVydGljYWwiLCBQc2V1ZG9WZXJ0aWNhbCkKLSAgICAgICAgVEFCTEVfRU5UUlko
InZpc2l0ZWQiLCBQc2V1ZG9WaXNpdGVkKQotICAgICAgICBUQUJMRV9FTlRSWSgid2luZG93LWlu
YWN0aXZlIiwgUHNldWRvV2luZG93SW5hY3RpdmUpCi0KLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCi0gICAgICAgIFRBQkxFX0VOVFJZKCItd2Via2l0LWFuaW1hdGluZy1mdWxsLXNjcmVlbi10
cmFuc2l0aW9uIiwgUHNldWRvQW5pbWF0aW5nRnVsbFNjcmVlblRyYW5zaXRpb24pCi0gICAgICAg
IFRBQkxFX0VOVFJZKCItd2Via2l0LWZ1bGwtc2NyZWVuIiwgUHNldWRvRnVsbFNjcmVlbikKLSAg
ICAgICAgVEFCTEVfRU5UUlkoIi13ZWJraXQtZnVsbC1zY3JlZW4tYW5jZXN0b3IiLCBQc2V1ZG9G
dWxsU2NyZWVuQW5jZXN0b3IpCi0gICAgICAgIFRBQkxFX0VOVFJZKCItd2Via2l0LWZ1bGwtc2Ny
ZWVuLWRvY3VtZW50IiwgUHNldWRvRnVsbFNjcmVlbkRvY3VtZW50KQotI2VuZGlmCi0KLSNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCi0gICAgICAgIFRBQkxFX0VOVFJZKCJjdWUoIiwgUHNldWRvQ3Vl
KQotICAgICAgICBUQUJMRV9FTlRSWSgiZnV0dXJlIiwgUHNldWRvRnV0dXJlQ3VlKQotICAgICAg
ICBUQUJMRV9FTlRSWSgicGFzdCIsIFBzZXVkb1Bhc3RDdWUpCi0jZW5kaWYKLSAgICB9OwotCi0j
dW5kZWYgVEFCTEVfRU5UUlkKLQotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJS
QVlfTEVOR1RIKHRhYmxlKTsgKytpKQotICAgICAgICBtYXAuYWRkKEF0b21pY1N0cmluZyh0YWJs
ZVtpXS5uYW1lLCB0YWJsZVtpXS5uYW1lTGVuZ3RoLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSwgdGFibGVbaV0udHlwZSk7Ci19Ci0KLUNTU1NlbGVjdG9yOjpQc2V1ZG9UeXBl
IENTU1NlbGVjdG9yOjpwYXJzZVBzZXVkb1R5cGUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQor
Q1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgQ1NTU2VsZWN0b3I6OnBhcnNlUHNldWRvVHlwZShjb25z
dCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgaWYgKG5hbWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVy
biBQc2V1ZG9Vbmtub3duOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8QXRv
bWljU3RyaW5nLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZT4+IHR5cGVzOwotICAgIGlmICh0eXBl
cy5nZXQoKS5pc0VtcHR5KCkpCi0gICAgICAgIHBvcHVsYXRlUHNldWRvVHlwZUJ5TmFtZU1hcCh0
eXBlcyk7Ci0gICAgaWYgKFBzZXVkb1R5cGUgdHlwZSA9IHR5cGVzLmdldCgpLmdldChuYW1lKSkK
LSAgICAgICAgcmV0dXJuIHR5cGU7Ci0KLSAgICBpZiAobmFtZS5zdGFydHNXaXRoKCItd2Via2l0
LSIpKQotICAgICAgICByZXR1cm4gUHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVudDsKLQotICAgIC8v
IEZJWE1FOiBUaGlzIGlzIHN0cmFuZ2UuIFdoeSB3b3VsZCBhbGwgc3RyaW5ncyB0aGF0IHN0YXJ0
IHdpdGggImN1ZSIgYmUgInVzZXIgYWdlbnQgY3VzdG9tIj8KLSAgICBpZiAobmFtZS5zdGFydHNX
aXRoKCJ4LSIpIHx8IG5hbWUuc3RhcnRzV2l0aCgiY3VlIikpCi0gICAgICAgIHJldHVybiBQc2V1
ZG9Vc2VyQWdlbnRDdXN0b21FbGVtZW50OworICAgIFBzZXVkb1R5cGUgdHlwZSA9IHBhcnNlUHNl
dWRvVHlwZVN0cmluZygqbmFtZS5pbXBsKCkpOworICAgIGlmICh0eXBlID09IFBzZXVkb1Vua25v
d24pIHsKKyAgICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aCgiLXdlYmtpdC0iKSkKKyAgICAgICAg
ICAgIHR5cGUgPSBQc2V1ZG9XZWJLaXRDdXN0b21FbGVtZW50OwogCi0gICAgcmV0dXJuIFBzZXVk
b1Vua25vd247Ci19Ci0KLXZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29u
c3QKLXsKLSAgICBpZiAobV9tYXRjaCAhPSBQc2V1ZG9DbGFzcyAmJiBtX21hdGNoICE9IFBzZXVk
b0VsZW1lbnQgJiYgbV9tYXRjaCAhPSBQYWdlUHNldWRvQ2xhc3MpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fcHNldWRvVHlwZSA9IHBhcnNlUHNldWRvVHlwZSh2YWx1ZSgpKTsKLQotICAgIGJv
b2wgZWxlbWVudCA9IGZhbHNlOyAvLyBwc2V1ZG8tZWxlbWVudAotICAgIGJvb2wgY29tcGF0ID0g
ZmFsc2U7IC8vIHNpbmdsZSBjb2xvbiBjb21wYXRiaWxpdHkgbW9kZQotICAgIGJvb2wgaXNQYWdl
UHNldWRvQ2xhc3MgPSBmYWxzZTsgLy8gUGFnZSBwc2V1ZG8tY2xhc3MKLQotICAgIHN3aXRjaCAo
bV9wc2V1ZG9UeXBlKSB7Ci0gICAgY2FzZSBQc2V1ZG9BZnRlcjoKLSAgICBjYXNlIFBzZXVkb0Jl
Zm9yZToKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgY2FzZSBQc2V1ZG9DdWU6Ci0jZW5k
aWYKLSAgICBjYXNlIFBzZXVkb0ZpcnN0TGV0dGVyOgotICAgIGNhc2UgUHNldWRvRmlyc3RMaW5l
OgotICAgICAgICBjb21wYXQgPSB0cnVlOwotICAgICAgICBGQUxMVEhST1VHSDsKLSAgICBjYXNl
IFBzZXVkb1Jlc2l6ZXI6Ci0gICAgY2FzZSBQc2V1ZG9TY3JvbGxiYXI6Ci0gICAgY2FzZSBQc2V1
ZG9TY3JvbGxiYXJDb3JuZXI6Ci0gICAgY2FzZSBQc2V1ZG9TY3JvbGxiYXJCdXR0b246Ci0gICAg
Y2FzZSBQc2V1ZG9TY3JvbGxiYXJUaHVtYjoKLSAgICBjYXNlIFBzZXVkb1Njcm9sbGJhclRyYWNr
OgotICAgIGNhc2UgUHNldWRvU2Nyb2xsYmFyVHJhY2tQaWVjZToKLSAgICBjYXNlIFBzZXVkb1Nl
bGVjdGlvbjoKLSAgICBjYXNlIFBzZXVkb1VzZXJBZ2VudEN1c3RvbUVsZW1lbnQ6Ci0gICAgY2Fz
ZSBQc2V1ZG9XZWJLaXRDdXN0b21FbGVtZW50OgotICAgICAgICBlbGVtZW50ID0gdHJ1ZTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQc2V1ZG9Vbmtub3duOgotICAgIGNhc2UgUHNldWRvRW1w
dHk6Ci0gICAgY2FzZSBQc2V1ZG9GaXJzdENoaWxkOgotICAgIGNhc2UgUHNldWRvRmlyc3RPZlR5
cGU6Ci0gICAgY2FzZSBQc2V1ZG9MYXN0Q2hpbGQ6Ci0gICAgY2FzZSBQc2V1ZG9MYXN0T2ZUeXBl
OgotICAgIGNhc2UgUHNldWRvT25seUNoaWxkOgotICAgIGNhc2UgUHNldWRvT25seU9mVHlwZToK
LSAgICBjYXNlIFBzZXVkb050aENoaWxkOgotICAgIGNhc2UgUHNldWRvTnRoT2ZUeXBlOgotICAg
IGNhc2UgUHNldWRvTnRoTGFzdENoaWxkOgotICAgIGNhc2UgUHNldWRvTnRoTGFzdE9mVHlwZToK
LSAgICBjYXNlIFBzZXVkb0xpbms6Ci0gICAgY2FzZSBQc2V1ZG9WaXNpdGVkOgotICAgIGNhc2Ug
UHNldWRvQW55OgotICAgIGNhc2UgUHNldWRvQW55TGluazoKLSAgICBjYXNlIFBzZXVkb0F1dG9m
aWxsOgotICAgIGNhc2UgUHNldWRvSG92ZXI6Ci0gICAgY2FzZSBQc2V1ZG9EcmFnOgotICAgIGNh
c2UgUHNldWRvRm9jdXM6Ci0gICAgY2FzZSBQc2V1ZG9BY3RpdmU6Ci0gICAgY2FzZSBQc2V1ZG9D
aGVja2VkOgotICAgIGNhc2UgUHNldWRvRW5hYmxlZDoKLSAgICBjYXNlIFBzZXVkb0Z1bGxQYWdl
TWVkaWE6Ci0gICAgY2FzZSBQc2V1ZG9EZWZhdWx0OgotICAgIGNhc2UgUHNldWRvRGlzYWJsZWQ6
Ci0gICAgY2FzZSBQc2V1ZG9PcHRpb25hbDoKLSAgICBjYXNlIFBzZXVkb1JlcXVpcmVkOgotICAg
IGNhc2UgUHNldWRvUmVhZE9ubHk6Ci0gICAgY2FzZSBQc2V1ZG9SZWFkV3JpdGU6Ci0gICAgY2Fz
ZSBQc2V1ZG9TY29wZToKLSAgICBjYXNlIFBzZXVkb1ZhbGlkOgotICAgIGNhc2UgUHNldWRvSW52
YWxpZDoKLSAgICBjYXNlIFBzZXVkb0luZGV0ZXJtaW5hdGU6Ci0gICAgY2FzZSBQc2V1ZG9UYXJn
ZXQ6Ci0gICAgY2FzZSBQc2V1ZG9MYW5nOgotICAgIGNhc2UgUHNldWRvTm90OgotICAgIGNhc2Ug
UHNldWRvUm9vdDoKLSAgICBjYXNlIFBzZXVkb1Njcm9sbGJhckJhY2s6Ci0gICAgY2FzZSBQc2V1
ZG9TY3JvbGxiYXJGb3J3YXJkOgotICAgIGNhc2UgUHNldWRvV2luZG93SW5hY3RpdmU6Ci0gICAg
Y2FzZSBQc2V1ZG9Db3JuZXJQcmVzZW50OgotICAgIGNhc2UgUHNldWRvRGVjcmVtZW50OgotICAg
IGNhc2UgUHNldWRvSW5jcmVtZW50OgotICAgIGNhc2UgUHNldWRvSG9yaXpvbnRhbDoKLSAgICBj
YXNlIFBzZXVkb1ZlcnRpY2FsOgotICAgIGNhc2UgUHNldWRvU3RhcnQ6Ci0gICAgY2FzZSBQc2V1
ZG9FbmQ6Ci0gICAgY2FzZSBQc2V1ZG9Eb3VibGVCdXR0b246Ci0gICAgY2FzZSBQc2V1ZG9TaW5n
bGVCdXR0b246Ci0gICAgY2FzZSBQc2V1ZG9Ob0J1dHRvbjoKLSAgICBjYXNlIFBzZXVkb05vdFBh
cnNlZDoKLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgY2FzZSBQc2V1ZG9GdWxsU2Ny
ZWVuOgotICAgIGNhc2UgUHNldWRvRnVsbFNjcmVlbkRvY3VtZW50OgotICAgIGNhc2UgUHNldWRv
RnVsbFNjcmVlbkFuY2VzdG9yOgotICAgIGNhc2UgUHNldWRvQW5pbWF0aW5nRnVsbFNjcmVlblRy
YW5zaXRpb246Ci0jZW5kaWYKLSAgICBjYXNlIFBzZXVkb0luUmFuZ2U6Ci0gICAgY2FzZSBQc2V1
ZG9PdXRPZlJhbmdlOgotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBjYXNlIFBzZXVkb0Z1
dHVyZUN1ZToKLSAgICBjYXNlIFBzZXVkb1Bhc3RDdWU6Ci0jZW5kaWYKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBQc2V1ZG9GaXJzdFBhZ2U6Ci0gICAgY2FzZSBQc2V1ZG9MZWZ0UGFnZToKLSAg
ICBjYXNlIFBzZXVkb1JpZ2h0UGFnZToKLSAgICAgICAgaXNQYWdlUHNldWRvQ2xhc3MgPSB0cnVl
OwotICAgICAgICBicmVhazsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgc3RyYW5nZS4gV2h5
IHdvdWxkIGFsbCBzdHJpbmdzIHRoYXQgc3RhcnQgd2l0aCAiY3VlIiBiZSAidXNlciBhZ2VudCBj
dXN0b20iPworICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKCJ4LSIpIHx8IG5hbWUuc3RhcnRz
V2l0aCgiY3VlIikpCisgICAgICAgICAgICB0eXBlID0gUHNldWRvVXNlckFnZW50Q3VzdG9tRWxl
bWVudDsKICAgICB9Ci0KLSAgICBib29sIG1hdGNoUGFnZVBzZXVkb0NsYXNzID0gKG1fbWF0Y2gg
PT0gUGFnZVBzZXVkb0NsYXNzKTsKLSAgICBpZiAobWF0Y2hQYWdlUHNldWRvQ2xhc3MgIT0gaXNQ
YWdlUHNldWRvQ2xhc3MpCi0gICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb1Vua25vd247Ci0g
ICAgZWxzZSBpZiAobV9tYXRjaCA9PSBQc2V1ZG9DbGFzcyAmJiBlbGVtZW50KSB7Ci0gICAgICAg
IGlmICghY29tcGF0KQotICAgICAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvVW5rbm93bjsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICBtX21hdGNoID0gUHNldWRvRWxlbWVudDsKLSAgICB9
IGVsc2UgaWYgKG1fbWF0Y2ggPT0gUHNldWRvRWxlbWVudCAmJiAhZWxlbWVudCkKLSAgICAgICAg
bV9wc2V1ZG9UeXBlID0gUHNldWRvVW5rbm93bjsKKyAgICByZXR1cm4gdHlwZTsKIH0KIAorCiBi
b29sIENTU1NlbGVjdG9yOjpvcGVyYXRvcj09KGNvbnN0IENTU1NlbGVjdG9yJiBvdGhlcikgY29u
c3QKIHsKICAgICBjb25zdCBDU1NTZWxlY3Rvciogc2VsMSA9IHRoaXM7CkBAIC01MTgsNiArMjk1
LDM3IEBAIGJvb2wgQ1NTU2VsZWN0b3I6Om9wZXJhdG9yPT0oY29uc3QgQ1NTU2VsZWN0b3ImIG90
aGVyKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdm9pZCBhcHBlbmRQc2V1
ZG9UeXBlVGFpbElmTmVjZXNzYXJ5KFN0cmluZ0J1aWxkZXImIHN0ciwgY29uc3QgQ1NTU2VsZWN0
b3IqIHNlbGVjdG9yKQoreworICAgIHN3aXRjaCAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSkgewor
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb05vdDoKKyAgICAgICAgaWYgKGNvbnN0IENTU1Nl
bGVjdG9yTGlzdCogc2VsZWN0b3JMaXN0ID0gc2VsZWN0b3ItPnNlbGVjdG9yTGlzdCgpKQorICAg
ICAgICBzdHIuYXBwZW5kKHNlbGVjdG9yTGlzdC0+Zmlyc3QoKS0+c2VsZWN0b3JUZXh0KCkpOwor
ICAgICAgICBzdHIuYXBwZW5kKCcpJyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0xhbmc6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoQ2hpbGQ6
CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFzdENoaWxkOgorICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb050aE9mVHlwZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9O
dGhMYXN0T2ZUeXBlOgorICAgICAgICBzdHIuYXBwZW5kKHNlbGVjdG9yLT5hcmd1bWVudCgpKTsK
KyAgICAgICAgc3RyLmFwcGVuZCgnKScpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9Bbnk6IHsKKyAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3IqIGZpcnN0U3Vi
U2VsZWN0b3IgPSBzZWxlY3Rvci0+c2VsZWN0b3JMaXN0KCktPmZpcnN0KCk7CisgICAgICAgIGZv
ciAoY29uc3QgQ1NTU2VsZWN0b3IqIHN1YlNlbGVjdG9yID0gZmlyc3RTdWJTZWxlY3Rvcjsgc3Vi
U2VsZWN0b3I7IHN1YlNlbGVjdG9yID0gQ1NTU2VsZWN0b3JMaXN0OjpuZXh0KHN1YlNlbGVjdG9y
KSkgeworICAgICAgICAgICAgaWYgKHN1YlNlbGVjdG9yICE9IGZpcnN0U3ViU2VsZWN0b3IpCisg
ICAgICAgICAgICBzdHIuYXBwZW5kKCcsJyk7CisgICAgICAgICAgICBzdHIuYXBwZW5kKHN1YlNl
bGVjdG9yLT5zZWxlY3RvclRleHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgc3RyLmFwcGVuZCgn
KScpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CisgICAgfQorfQorCiBTdHJpbmcgQ1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dChjb25zdCBTdHJp
bmcmIHJpZ2h0U2lkZSkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIHN0cjsKQEAgLTU0MSwz
NCArMzQ5LDIwIEBAIFN0cmluZyBDU1NTZWxlY3Rvcjo6c2VsZWN0b3JUZXh0KGNvbnN0IFN0cmlu
ZyYgcmlnaHRTaWRlKSBjb25zdAogICAgICAgICAgICAgc3RyLmFwcGVuZCgnLicpOwogICAgICAg
ICAgICAgc2VyaWFsaXplSWRlbnRpZmllcihjcy0+dmFsdWUoKSwgc3RyKTsKICAgICAgICAgfSBl
bHNlIGlmIChjcy0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MgfHwgY3MtPm1f
bWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBhZ2VQc2V1ZG9DbGFzcykgewotICAgICAgICAgICAgc3Ry
LmFwcGVuZCgnOicpOwotICAgICAgICAgICAgc3RyLmFwcGVuZChjcy0+dmFsdWUoKSk7Ci0KICAg
ICAgICAgICAgIHN3aXRjaCAoY3MtPnBzZXVkb1R5cGUoKSkgewotICAgICAgICAgICAgY2FzZSBQ
c2V1ZG9Ob3Q6Ci0gICAgICAgICAgICAgICAgaWYgKGNvbnN0IENTU1NlbGVjdG9yTGlzdCogc2Vs
ZWN0b3JMaXN0ID0gY3MtPnNlbGVjdG9yTGlzdCgpKQotICAgICAgICAgICAgICAgICAgICBzdHIu
YXBwZW5kKHNlbGVjdG9yTGlzdC0+Zmlyc3QoKS0+c2VsZWN0b3JUZXh0KCkpOwotICAgICAgICAg
ICAgICAgIHN0ci5hcHBlbmQoJyknKTsKKyAgICAgICAgICAgIGNhc2UgUHNldWRvRmlyc3Q6Cisg
ICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpmaXJzdCIpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBQc2V1ZG9MYW5nOgotICAgICAgICAgICAgY2Fz
ZSBQc2V1ZG9OdGhDaGlsZDoKLSAgICAgICAgICAgIGNhc2UgUHNldWRvTnRoTGFzdENoaWxkOgot
ICAgICAgICAgICAgY2FzZSBQc2V1ZG9OdGhPZlR5cGU6Ci0gICAgICAgICAgICBjYXNlIFBzZXVk
b050aExhc3RPZlR5cGU6Ci0gICAgICAgICAgICAgICAgc3RyLmFwcGVuZChjcy0+YXJndW1lbnQo
KSk7Ci0gICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgnKScpOworICAgICAgICAgICAgY2FzZSBQ
c2V1ZG9MZWZ0OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6bGVmdCIpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBQc2V1ZG9Bbnk6IHsKLSAg
ICAgICAgICAgICAgICBjb25zdCBDU1NTZWxlY3RvciogZmlyc3RTdWJTZWxlY3RvciA9IGNzLT5z
ZWxlY3Rvckxpc3QoKS0+Zmlyc3QoKTsKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IENTU1Nl
bGVjdG9yKiBzdWJTZWxlY3RvciA9IGZpcnN0U3ViU2VsZWN0b3I7IHN1YlNlbGVjdG9yOyBzdWJT
ZWxlY3RvciA9IENTU1NlbGVjdG9yTGlzdDo6bmV4dChzdWJTZWxlY3RvcikpIHsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKHN1YlNlbGVjdG9yICE9IGZpcnN0U3ViU2VsZWN0b3IpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCcsJyk7Ci0gICAgICAgICAgICAgICAgICAgIHN0
ci5hcHBlbmQoc3ViU2VsZWN0b3ItPnNlbGVjdG9yVGV4dCgpKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgnKScpOworICAgICAgICAgICAgY2FzZSBQc2V1
ZG9SaWdodDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnJpZ2h0Iik7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoJzonKTsKKyAgICAgICAgICAgICAgICBzdHIu
YXBwZW5kKGNzLT52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRQc2V1ZG9UeXBlVGFp
bElmTmVjZXNzYXJ5KHN0ciwgY3MpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQogICAgICAgICB9IGVsc2UgaWYgKGNzLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQc2V1
ZG9FbGVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDA2OTFmYWM3NzBjMjlh
ZTdjZTI3ODJmYzJkYjIyMmY0YzJkMGIwMjUuLjY5ZmUyNzlhZmRhYWE4MGUyMzhlNWUwMzQ4M2Zh
NjZkNDU5ZWU3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC03OSw4ICs3OSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfTsKIAogICAgICAgICBlbnVtIFBzZXVkb1R5
cGUgewotICAgICAgICAgICAgUHNldWRvTm90UGFyc2VkID0gMCwKLSAgICAgICAgICAgIFBzZXVk
b1Vua25vd24sCisgICAgICAgICAgICBQc2V1ZG9Vbmtub3duID0gMCwKICAgICAgICAgICAgIFBz
ZXVkb0VtcHR5LAogICAgICAgICAgICAgUHNldWRvRmlyc3RDaGlsZCwKICAgICAgICAgICAgIFBz
ZXVkb0ZpcnN0T2ZUeXBlLApAQCAtMTQzLDkgKzE0Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgICAgIFBzZXVkb1NpbmdsZUJ1dHRvbiwKICAgICAgICAgICAgIFBzZXVkb05vQnV0
dG9uLAogICAgICAgICAgICAgUHNldWRvU2VsZWN0aW9uLAotICAgICAgICAgICAgUHNldWRvTGVm
dFBhZ2UsCi0gICAgICAgICAgICBQc2V1ZG9SaWdodFBhZ2UsCi0gICAgICAgICAgICBQc2V1ZG9G
aXJzdFBhZ2UsCisgICAgICAgICAgICBQc2V1ZG9MZWZ0LAorICAgICAgICAgICAgUHNldWRvUmln
aHQsCisgICAgICAgICAgICBQc2V1ZG9GaXJzdCwKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgICAgICAgICBQc2V1ZG9GdWxsU2NyZWVuLAogICAgICAgICAgICAgUHNldWRvRnVsbFNj
cmVlbkRvY3VtZW50LApAQCAtMTU4LDggKzE1Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgICAgIFBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQsCiAjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQogICAgICAgICAgICAgUHNldWRvQ3VlLAotICAgICAgICAgICAgUHNldWRvRnV0dXJlQ3Vl
LAotICAgICAgICAgICAgUHNldWRvUGFzdEN1ZSwKKyAgICAgICAgICAgIFBzZXVkb0Z1dHVyZSwK
KyAgICAgICAgICAgIFBzZXVkb1Bhc3QsCiAjZW5kaWYKICAgICAgICAgfTsKIApAQCAtMTg0LDEy
ICsxODMsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFBzZXVkb1R5cGUgcHNl
dWRvVHlwZSgpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChtX3BzZXVkb1R5cGUg
PT0gUHNldWRvTm90UGFyc2VkKQotICAgICAgICAgICAgICAgIGV4dHJhY3RQc2V1ZG9UeXBlKCk7
CiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHNldWRvVHlwZT4obV9wc2V1ZG9UeXBl
KTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQc2V1ZG9UeXBlIHBhcnNlUHNldWRvVHlw
ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICAgICAgc3RhdGljIFBzZXVkb1R5cGUgcGFyc2VQ
c2V1ZG9UeXBlKGNvbnN0IFN0cmluZyYpOwogICAgICAgICBzdGF0aWMgUHNldWRvSWQgcHNldWRv
SWQoUHNldWRvVHlwZSk7CiAKICAgICAgICAgLy8gU2VsZWN0b3JzIGFyZSBrZXB0IGluIGFuIGFy
cmF5IGJ5IENTU1NlbGVjdG9yTGlzdC4gVGhlIG5leHQgY29tcG9uZW50IG9mIHRoZSBzZWxlY3Rv
ciBpcwpAQCAtMjQzLDcgKzI0MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB1
bnNpZ25lZCBzcGVjaWZpY2l0eUZvck9uZVNlbGVjdG9yKCkgY29uc3Q7CiAgICAgICAgIHVuc2ln
bmVkIHNwZWNpZmljaXR5Rm9yUGFnZSgpIGNvbnN0OwotICAgICAgICB2b2lkIGV4dHJhY3RQc2V1
ZG9UeXBlKCkgY29uc3Q7CiAKICAgICAgICAgLy8gSGlkZS4KICAgICAgICAgQ1NTU2VsZWN0b3Im
IG9wZXJhdG9yPShjb25zdCBDU1NTZWxlY3RvciYpOwpAQCAtMjkyLDggKzI4OCw2IEBAIGlubGlu
ZSBjb25zdCBBdG9taWNTdHJpbmcmIENTU1NlbGVjdG9yOjphdHRyaWJ1dGVDYW5vbmljYWxMb2Nh
bE5hbWUoKSBjb25zdAogCiBpbmxpbmUgYm9vbCBDU1NTZWxlY3Rvcjo6bWF0Y2hlc1BzZXVkb0Vs
ZW1lbnQoKSBjb25zdAogewotICAgIGlmIChtX3BzZXVkb1R5cGUgPT0gUHNldWRvVW5rbm93bikK
LSAgICAgICAgZXh0cmFjdFBzZXVkb1R5cGUoKTsKICAgICByZXR1cm4gbV9tYXRjaCA9PSBQc2V1
ZG9FbGVtZW50OwogfQogCkBAIC0zMzksNyArMzMzLDYgQEAgaW5saW5lIGJvb2wgQ1NTU2VsZWN0
b3I6OmlzQXR0cmlidXRlU2VsZWN0b3IoKSBjb25zdAogaW5saW5lIHZvaWQgQ1NTU2VsZWN0b3I6
OnNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgQVNTRVJUKG1fbWF0
Y2ggIT0gVGFnKTsKLSAgICBBU1NFUlQobV9wc2V1ZG9UeXBlID09IFBzZXVkb05vdFBhcnNlZCk7
CiAgICAgLy8gTmVlZCB0byBkbyByZWYgY291bnRpbmcgbWFudWFsbHkgZm9yIHRoZSB1bmlvbi4K
ICAgICBpZiAobV9oYXNSYXJlRGF0YSkgewogICAgICAgICBpZiAobV9kYXRhLm1fcmFyZURhdGEt
Pm1fdmFsdWUpCkBAIC0zNTcsNyArMzUwLDcgQEAgaW5saW5lIHZvaWQgQ1NTU2VsZWN0b3I6OnNl
dFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiBpbmxpbmUgQ1NTU2VsZWN0b3I6OkNT
U1NlbGVjdG9yKCkKICAgICA6IG1fcmVsYXRpb24oRGVzY2VuZGFudCkKICAgICAsIG1fbWF0Y2go
VW5rbm93bikKLSAgICAsIG1fcHNldWRvVHlwZShQc2V1ZG9Ob3RQYXJzZWQpCisgICAgLCBtX3Bz
ZXVkb1R5cGUoUHNldWRvVW5rbm93bikKICAgICAsIG1fcGFyc2VkTnRoKGZhbHNlKQogICAgICwg
bV9pc0xhc3RJblNlbGVjdG9yTGlzdChmYWxzZSkKICAgICAsIG1faXNMYXN0SW5UYWdIaXN0b3J5
KHRydWUpCkBAIC0zNzAsNyArMzYzLDcgQEAgaW5saW5lIENTU1NlbGVjdG9yOjpDU1NTZWxlY3Rv
cigpCiBpbmxpbmUgQ1NTU2VsZWN0b3I6OkNTU1NlbGVjdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ1FOYW1lLCBib29sIHRhZ0lzRm9yTmFtZXNwYWNlUnVsZSkKICAgICA6IG1fcmVsYXRpb24o
RGVzY2VuZGFudCkKICAgICAsIG1fbWF0Y2goVGFnKQotICAgICwgbV9wc2V1ZG9UeXBlKFBzZXVk
b05vdFBhcnNlZCkKKyAgICAsIG1fcHNldWRvVHlwZShQc2V1ZG9Vbmtub3duKQogICAgICwgbV9w
YXJzZWROdGgoZmFsc2UpCiAgICAgLCBtX2lzTGFzdEluU2VsZWN0b3JMaXN0KGZhbHNlKQogICAg
ICwgbV9pc0xhc3RJblRhZ0hpc3RvcnkodHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9QYWdlUnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUGFnZVJ1bGVD
b2xsZWN0b3IuY3BwCmluZGV4IGQ3ZjcwNDAzZWZiNTcxNmMzOGI2MGQ5ZjliZGEyNmY1NmI5OTU2
MGEuLmQwYmE1N2ZjNmUzMjc3ZWMyNjU2ZDc0ZDNjODlkMWM0NDVjZGU0YzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9QYWdlUnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1BhZ2VSdWxlQ29sbGVjdG9yLmNwcApAQCAtOTksOSArOTksOSBAQCBzdGF0aWMg
Ym9vbCBjaGVja1BhZ2VTZWxlY3RvckNvbXBvbmVudHMoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVj
dG9yLCBib29sIGlzTGVmdAogICAgICAgICB9CiAKICAgICAgICAgQ1NTU2VsZWN0b3I6OlBzZXVk
b1R5cGUgcHNldWRvVHlwZSA9IGNvbXBvbmVudC0+cHNldWRvVHlwZSgpOwotICAgICAgICBpZiAo
KHBzZXVkb1R5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0xlZnRQYWdlICYmICFpc0xlZnRQYWdl
KQotICAgICAgICAgICAgfHwgKHBzZXVkb1R5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1JpZ2h0
UGFnZSAmJiBpc0xlZnRQYWdlKQotICAgICAgICAgICAgfHwgKHBzZXVkb1R5cGUgPT0gQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0ZpcnN0UGFnZSAmJiAhaXNGaXJzdFBhZ2UpKQorICAgICAgICBpZiAoKHBz
ZXVkb1R5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0xlZnQgJiYgIWlzTGVmdFBhZ2UpCisgICAg
ICAgICAgICB8fCAocHNldWRvVHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvUmlnaHQgJiYgaXNM
ZWZ0UGFnZSkKKyAgICAgICAgICAgIHx8IChwc2V1ZG9UeXBlID09IENTU1NlbGVjdG9yOjpQc2V1
ZG9GaXJzdCAmJiAhaXNGaXJzdFBhZ2UpKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3Rv
ckNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5k
ZXggNzllMGQ5OTI2ZDUyN2IzNjUzNmExODY3MmJkMDNhOWVjMzlmNGI3ZS4uNTNjNTBkOGNkYWJj
N2ZlMzY0NzhlODE4MTRkMDMxY2FkNzhjY2EwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
Q2hlY2tlci5jcHAKQEAgLTY5OSw5ICs2OTksOSBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hl
Y2tPbmUoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiAgICAg
ICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnNldENvbnRhaW5zVmFsaWRpdHlTdHlsZVJ1bGVz
KCk7CiAgICAgICAgICAgICByZXR1cm4gZWxlbWVudC0+aXNPdXRPZlJhbmdlKCk7CiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdXR1cmVD
dWU6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1dHVyZToKICAgICAgICAgICAg
IHJldHVybiBtYXRjaGVzRnV0dXJlQ3VlUHNldWRvQ2xhc3MoZWxlbWVudCk7Ci0gICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Bhc3RDdWU6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb1Bhc3Q6CiAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlc1Bhc3RDdWVQc2V1ZG9DbGFz
cyhlbGVtZW50KTsKICNlbmRpZgogCkBAIC03MjYsNyArNzI2LDYgQEAgYm9vbCBTZWxlY3RvckNo
ZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0KSBj
b25zdAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb1Vua25vd246Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb05vdFBh
cnNlZDoKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2Vs
ZWN0b3JQc2V1ZG9UeXBlTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9U
eXBlTWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ4ZjNlZTA1YTUxMmE1NjczMmQ3NDJkZTllZGZhOWVkZDBk
MTBhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVk
b1R5cGVNYXAuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTZWxlY3Rv
clBzZXVkb1R5cGVNYXBfaAorI2RlZmluZSBTZWxlY3RvclBzZXVkb1R5cGVNYXBfaAorCisjaW5j
bHVkZSAiQ1NTUGFyc2VyVmFsdWVzLmgiCisjaW5jbHVkZSAiQ1NTU2VsZWN0b3IuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBwYXJzZVBzZXVkb1R5
cGVTdHJpbmcoY29uc3QgU3RyaW5nSW1wbCYgcHNldWRvVHlwZVN0cmluZyk7CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNlbGVjdG9yUHNldWRvVHlwZU1hcF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmluIGIvU291
cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5pbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDhj
ZjgwYTBjNWJlZmIzZGFhYjQyOWE3ZjVhMjIwYjE3OTQ4M2RkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5pbgpAQCAtMCwwICsxLDc2
IEBACista2h0bWwtZHJhZworLXdlYmtpdC1hbnkoCistd2Via2l0LWFueS1saW5rCistd2Via2l0
LWF1dG9maWxsCistd2Via2l0LWRyYWcKKy13ZWJraXQtZnVsbC1wYWdlLW1lZGlhCistd2Via2l0
LXJlc2l6ZXIKKy13ZWJraXQtc2Nyb2xsYmFyCistd2Via2l0LXNjcm9sbGJhci1idXR0b24KKy13
ZWJraXQtc2Nyb2xsYmFyLWNvcm5lcgorLXdlYmtpdC1zY3JvbGxiYXItdGh1bWIKKy13ZWJraXQt
c2Nyb2xsYmFyLXRyYWNrCistd2Via2l0LXNjcm9sbGJhci10cmFjay1waWVjZQorYWN0aXZlCith
ZnRlcgorYmVmb3JlCitjaGVja2VkCitjb3JuZXItcHJlc2VudAorZGVjcmVtZW50CitkZWZhdWx0
CitkaXNhYmxlZAorZG91YmxlLWJ1dHRvbgorZW1wdHkKK2VuYWJsZWQKK2VuZAorZmlyc3QtY2hp
bGQKK2ZpcnN0LWxldHRlcgorZmlyc3QtbGluZQorZmlyc3Qtb2YtdHlwZQorZm9jdXMKK2hvcml6
b250YWwKK2hvdmVyCitpbi1yYW5nZQoraW5jcmVtZW50CitpbmRldGVybWluYXRlCitpbnZhbGlk
CitsYW5nKAorbGFzdC1jaGlsZAorbGFzdC1vZi10eXBlCitsaW5rCituby1idXR0b24KK25vdCgK
K250aC1jaGlsZCgKK250aC1sYXN0LWNoaWxkKAorbnRoLWxhc3Qtb2YtdHlwZSgKK250aC1vZi10
eXBlKAorb25seS1jaGlsZAorb25seS1vZi10eXBlCitvcHRpb25hbAorb3V0LW9mLXJhbmdlCity
ZWFkLW9ubHkKK3JlYWQtd3JpdGUKK3JlcXVpcmVkCityb290CitzY29wZQorc2VsZWN0aW9uCitz
aW5nbGUtYnV0dG9uCitzdGFydAordGFyZ2V0Cit2YWxpZAordmVydGljYWwKK3Zpc2l0ZWQKK3dp
bmRvdy1pbmFjdGl2ZQorCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorLXdlYmtpdC1hbmlt
YXRpbmctZnVsbC1zY3JlZW4tdHJhbnNpdGlvbgorLXdlYmtpdC1mdWxsLXNjcmVlbgorLXdlYmtp
dC1mdWxsLXNjcmVlbi1hbmNlc3RvcgorLXdlYmtpdC1mdWxsLXNjcmVlbi1kb2N1bWVudAorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCitjdWUoCitmdXR1cmUKK3Bhc3QKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb1R5cGVN
YXAucHkgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZTliZTRhOTA5NTY2ZmQyNTI5ZDcxNjM0ZDNlNWNlOGU0YzIyZWIzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb1R5cGVN
YXAucHkKQEAgLTAsMCArMSwyMDUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
IyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisK
KworZGVmIGVudW1lcmFibGVQc2V1ZG9UeXBlKHN0cmluZ1BzZXVkb1R5cGUpOgorICAgIG91dHB1
dCA9IFsnQ1NTU2VsZWN0b3I6OlBzZXVkbyddCisKKyAgICBpZiBzdHJpbmdQc2V1ZG9UeXBlLmVu
ZHN3aXRoKCcoJyk6CisgICAgICAgIHN0cmluZ1BzZXVkb1R5cGUgPSBzdHJpbmdQc2V1ZG9UeXBl
WzotMV0KKworICAgIHdlYmtpdFByZWZpeCA9ICctd2Via2l0LScKKyAgICBpZiAoc3RyaW5nUHNl
dWRvVHlwZS5zdGFydHN3aXRoKHdlYmtpdFByZWZpeCkpOgorICAgICAgICBzdHJpbmdQc2V1ZG9U
eXBlID0gc3RyaW5nUHNldWRvVHlwZVtsZW4od2Via2l0UHJlZml4KTpdCisKKyAgICBraHRtbFBy
ZWZpeCA9ICcta2h0bWwtJworICAgIGlmIChzdHJpbmdQc2V1ZG9UeXBlLnN0YXJ0c3dpdGgoa2h0
bWxQcmVmaXgpKToKKyAgICAgICAgc3RyaW5nUHNldWRvVHlwZSA9IHN0cmluZ1BzZXVkb1R5cGVb
bGVuKGtodG1sUHJlZml4KTpdCisKKyAgICBzdWJzdHJpbmdfc3RhcnQgPSAwCisgICAgbmV4dF9k
YXNoX3Bvc2l0aW9uID0gc3RyaW5nUHNldWRvVHlwZS5maW5kKCctJykKKyAgICB3aGlsZSAobmV4
dF9kYXNoX3Bvc2l0aW9uICE9IC0xKToKKyAgICAgICAgb3V0cHV0LmFwcGVuZChzdHJpbmdQc2V1
ZG9UeXBlW3N1YnN0cmluZ19zdGFydF0udXBwZXIoKSkKKyAgICAgICAgb3V0cHV0LmFwcGVuZChz
dHJpbmdQc2V1ZG9UeXBlW3N1YnN0cmluZ19zdGFydCArIDE6bmV4dF9kYXNoX3Bvc2l0aW9uXSkK
KyAgICAgICAgc3Vic3RyaW5nX3N0YXJ0ID0gbmV4dF9kYXNoX3Bvc2l0aW9uICsgMQorICAgICAg
ICBuZXh0X2Rhc2hfcG9zaXRpb24gPSBzdHJpbmdQc2V1ZG9UeXBlLmZpbmQoJy0nLCBzdWJzdHJp
bmdfc3RhcnQpCisKKyAgICBvdXRwdXQuYXBwZW5kKHN0cmluZ1BzZXVkb1R5cGVbc3Vic3RyaW5n
X3N0YXJ0XS51cHBlcigpKQorICAgIG91dHB1dC5hcHBlbmQoc3RyaW5nUHNldWRvVHlwZVtzdWJz
dHJpbmdfc3RhcnQgKyAxOl0pCisgICAgcmV0dXJuICcnLmpvaW4ob3V0cHV0KQorCisKK2RlZiBl
eHBhbmRfaWZkZWZfY29uZGl0aW9uKGNvbmRpdGlvbik6CisgICAgcmV0dXJuIGNvbmRpdGlvbi5y
ZXBsYWNlKCcoJywgJ18nKS5yZXBsYWNlKCcpJywgJycpCisKK291dHB1dF9maWxlID0gb3Blbign
U2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmdwZXJmJywgJ3cnKQorCitvdXRwdXRfZmlsZS53cml0ZSgi
IiIKKyV7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworLy8gVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJh
dGVkIGZyb20gU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmluIGJ5IG1ha2Vwcm9wLCBkbyBub3QgZWRp
dCBieSBoYW5kLgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2VsZWN0b3JQc2V1
ZG9UeXBlTWFwLmgiCisKKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykKKyNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3du
LXByYWdtYXMiCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LXJlZ2lzdGVyIgorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW1wbGljaXQt
ZmFsbHRocm91Z2giCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU2Vs
ZWN0b3JQc2V1ZG9UeXBlRW50cnkgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1R5cGUgdHlwZTsKK307CisKKyV9Cislc3RydWN0LXR5cGUKKyVkZWZpbmUg
aW5pdGlhbGl6ZXItc3VmZml4ICxDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bgorJWRlZmluZSBj
bGFzcy1uYW1lIFNlbGVjdG9yUHNldWRvVHlwZU1hcEhhc2gKKyVvbWl0LXN0cnVjdC10eXBlCisl
bGFuZ3VhZ2U9QysrCislcmVhZG9ubHktdGFibGVzCislZ2xvYmFsLXRhYmxlCislaWdub3JlLWNh
c2UKKyVjb21wYXJlLXN0cm5jbXAKKyVlbnVtCisKK3N0cnVjdCBTZWxlY3RvclBzZXVkb1R5cGVF
bnRyeTsKKworJSUKKyIiIikKKword2ViY29yZV9kZWZpbmVzID0gW2kuc3RyaXAoKSBmb3IgaSBp
biBzeXMuYXJndlstMV0uc3BsaXQoJyAnKV0KKworbG9uZ2VzdF9rZXl3b3JkID0gMAorCitpZ25v
cmVfdW50aWxfZW5kaWYgPSBGYWxzZQoraW5wdXRfZmlsZSA9IG9wZW4oc3lzLmFyZ3ZbMV0sICdy
JykKK2ZvciBsaW5lIGluIGlucHV0X2ZpbGU6CisgICAga2V5d29yZCA9IGxpbmUuc3RyaXAoKQor
ICAgIGlmIG5vdCBrZXl3b3JkOgorICAgICAgICBjb250aW51ZQorCisgICAgaWYga2V5d29yZC5z
dGFydHN3aXRoKCcjaWYgJyk6CisgICAgICAgIGNvbmRpdGlvbiA9IGtleXdvcmRbNDpdLnN0cmlw
KCkKKyAgICAgICAgaWYgZXhwYW5kX2lmZGVmX2NvbmRpdGlvbihjb25kaXRpb24pIG5vdCBpbiB3
ZWJjb3JlX2RlZmluZXM6CisgICAgICAgICAgICBpZ25vcmVfdW50aWxfZW5kaWYgPSBUcnVlCisg
ICAgICAgIGNvbnRpbnVlCisKKyAgICBpZiBrZXl3b3JkLnN0YXJ0c3dpdGgoJyNlbmRpZicpOgor
ICAgICAgICBpZ25vcmVfdW50aWxfZW5kaWYgPSBGYWxzZQorICAgICAgICBjb250aW51ZQorCisg
ICAgaWYgaWdub3JlX3VudGlsX2VuZGlmOgorICAgICAgICBjb250aW51ZQorCisgICAgb3V0cHV0
X2ZpbGUud3JpdGUoJyIlcyIsICVzXG4nICUgKGtleXdvcmQsIGVudW1lcmFibGVQc2V1ZG9UeXBl
KGtleXdvcmQpKSkKKyAgICBsb25nZXN0X2tleXdvcmQgPSBtYXgobG9uZ2VzdF9rZXl3b3JkLCBs
ZW4oa2V5d29yZCkpCisKK291dHB1dF9maWxlLndyaXRlKCIiIiUlCisKK3N0YXRpYyBpbmxpbmUg
Q1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcGFyc2VQc2V1ZG9UeXBlU3RyaW5nKGNvbnN0IExDaGFy
KiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgaWYgKGNvbnN0IFNlbGVjdG9y
UHNldWRvVHlwZUVudHJ5KiBlbnRyeSA9IFNlbGVjdG9yUHNldWRvVHlwZU1hcEhhc2g6OmluX3dv
cmRfc2V0KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGNoYXJhY3RlcnMpLCBsZW5ndGgp
KQorICAgICAgICByZXR1cm4gZW50cnktPnR5cGU7CisgICAgcmV0dXJuIENTU1NlbGVjdG9yOjpQ
c2V1ZG9Vbmtub3duOworfSIiIikKKworb3V0cHV0X2ZpbGUud3JpdGUoIiIiCisKK3N0YXRpYyBp
bmxpbmUgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcGFyc2VQc2V1ZG9UeXBlU3RyaW5nKGNvbnN0
IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgY29uc3QgdW5zaWdu
ZWQgbWF4S2V5d29yZExlbmd0aCA9ICVzOworICAgIExDaGFyIGJ1ZmZlclttYXhLZXl3b3JkTGVu
Z3RoXTsKKyAgICBpZiAobGVuZ3RoID4gbWF4S2V5d29yZExlbmd0aCkKKyAgICAgICAgcmV0dXJu
IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIFVDaGFyIGNoYXJhY3RlciA9IGNoYXJhY3RlcnNb
aV07CisgICAgICAgIGlmIChjaGFyYWN0ZXIgJiB+MHhmZikKKyAgICAgICAgICAgIHJldHVybiBD
U1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bjsKKworICAgICAgICBidWZmZXJbaV0gPSBzdGF0aWNf
Y2FzdDxMQ2hhcj4oY2hhcmFjdGVyKTsKKyAgICB9CisgICAgcmV0dXJuIHBhcnNlUHNldWRvVHlw
ZVN0cmluZyhidWZmZXIsIGxlbmd0aCk7Cit9CisiIiIgJSBsb25nZXN0X2tleXdvcmQpCisKK291
dHB1dF9maWxlLndyaXRlKCIiIgorQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcGFyc2VQc2V1ZG9U
eXBlU3RyaW5nKGNvbnN0IFN0cmluZ0ltcGwmIHBzZXVkb1R5cGVTdHJpbmcpCit7CisgICAgaWYg
KHBzZXVkb1R5cGVTdHJpbmcuaXM4Qml0KCkpCisgICAgICAgIHJldHVybiBwYXJzZVBzZXVkb1R5
cGVTdHJpbmcocHNldWRvVHlwZVN0cmluZy5jaGFyYWN0ZXJzOCgpLCBwc2V1ZG9UeXBlU3RyaW5n
Lmxlbmd0aCgpKTsKKyAgICByZXR1cm4gcGFyc2VQc2V1ZG9UeXBlU3RyaW5nKHBzZXVkb1R5cGVT
dHJpbmcuY2hhcmFjdGVyczE2KCksIHBzZXVkb1R5cGVTdHJpbmcubGVuZ3RoKCkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykKKyNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgorCisiIiIpCitvdXRwdXRfZmlsZS5jbG9zZSgp
CisKK2dwZXJmX2NvbW1hbmQgPSAnZ3BlcmYnCitpZiAnR1BFUkYnIGluIG9zLmVudmlyb246Cisg
ICAgZ3BlcmZfY29tbWFuZCA9IG9zLmVudmlyb25bJ0dQRVJGJ10KKworZ3BlcmZfcmV0dXJuID0g
b3Muc3lzdGVtKCIlcyAtLWtleS1wb3NpdGlvbnM9JyonIC1tIDEwIC1zIDIgU2VsZWN0b3JQc2V1
ZG9UeXBlTWFwLmdwZXJmIC0tb3V0cHV0LWZpbGU9U2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcCIg
JSBncGVyZl9jb21tYW5kKQoraWYgZ3BlcmZfcmV0dXJuICE9IDA6CisgICAgcHJpbnQoIkVycm9y
IHdoZW4gZ2VuZXJhdGluZyBTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwIGZyb20gU2VsZWN0b3JQ
c2V1ZG9UeXBlTWFwLmdwZXJmIDooIikKKyAgICBzeXMuZXhpdChncGVyZl9yZXR1cm4pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXggZGZiM2NmMzA3NDY1
NTQzMzJkODMwMzBjZTdkY2VkOWQxZWE2MGNjNS4uZGRkNjQ1ZGQwZTI1ZjRiNTAyZjdhNzY5OGUx
MTU5OTRlM2M2MzgyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9y
Q29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVy
LmNwcApAQCAtMjg3LDEwICsyODcsMTAgQEAgc3RhdGljIGlubGluZSBGdW5jdGlvblR5cGUgYWRk
UHNldWRvVHlwZShDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSB0eXBlLCBTZWxlY3RvckYKICAgICAg
ICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOwogI2VuZGlmCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1dHVy
ZUN1ZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdXR1cmU6CiAgICAgICAgIHBzZXVk
b0NsYXNzZXMudW5vcHRpbWl6ZWRQc2V1ZG9DbGFzc2VzLmFwcGVuZChKU0M6OkZ1bmN0aW9uUHRy
KG1hdGNoZXNGdXR1cmVDdWVQc2V1ZG9DbGFzcykpOwogICAgICAgICByZXR1cm4gRnVuY3Rpb25U
eXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
UGFzdEN1ZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9QYXN0OgogICAgICAgICBwc2V1
ZG9DbGFzc2VzLnVub3B0aW1pemVkUHNldWRvQ2xhc3Nlcy5hcHBlbmQoSlNDOjpGdW5jdGlvblB0
cihtYXRjaGVzUGFzdEN1ZVBzZXVkb0NsYXNzKSk7CiAgICAgICAgIHJldHVybiBGdW5jdGlvblR5
cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcjsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226284</attachid>
            <date>2014-03-10 00:41:08 -0700</date>
            <delta_ts>2014-03-10 01:37:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130003-20140310004106.patch</filename>
            <type>text/plain</type>
            <size>60065</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1MzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDYzNmY1NjE0NDZjYjY3
Y2IyNzQ2OGZjOTk1ZTY3Mjk1MzgxZGUzMi4uNzg2Y2Y2NmM2YTBlNjE1YWE1Yjg3ZGIzYjY1YjA3
ZTkwNTc5MjgzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE0LTAzLTA5ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBTdGFydCBzcGxp
dHRpbmcgQ1NTIFNlbGVjdG9ycydzIHBzZXVkbyB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMDAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ1NTIFNlbGVjdG9ycyBwc2V1ZG8gdHlwZXMgY29t
ZSBpbiAzIGZsYXZvcnM6IHBhZ2UsIHBzZXVkbyBjbGFzcywgcHNldWRvIGVsZW1lbnRzLgorCisg
ICAgICAgIFRoZSB0aHJlZSB0eXBlcyBhcmUgbWl4ZWQgdG9nZXRoZXIgaW4gYSBzaW5nbGUgZW51
bSBsaXN0IG5hbWVkIFBzZXVkb1R5cGUuIE9ubHkgc29tZSBjb21iaW5hdGlvbnMKKyAgICAgICAg
b2YgbWF0Y2ggdHlwZSArIHBzZXVkbyB0eXBlIGFyZSB2YWxpZCwgYnV0IHRoaXMgaXMgaW1wbGlj
aXRseSBkZWZpbmVkIGZyb20gdGhlIGNvZGUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyB0aGUg
YmVnaW5uaW5nIG9mIGEgcmVmYWN0b3JpbmcgdG8gYWRkIG1vcmUgY2xlYXIgYm91bmRhcmllcyBi
ZXR3ZWVuCisgICAgICAgIHZhbGlkIGFuZCBpbnZhbGlkIGNvbWJpbmF0aW9ucy4KKworICAgICAg
ICBGaXJzdCwgdGhlIGhhbmRsaW5nIG9mIHBhZ2UgcHNldWRvIHR5cGVzIGlzIGNvbXBsZXRlbHkg
c3BsaXQgZnJvbSB0aGUgb3RoZXIgdmFsdWVzLgorICAgICAgICBUaGUgcGFyc2VyIHVzZSBhIGRp
ZmZlcmVudCBtZXRob2QgZm9yIGhhbmRsaW5nIHRoZSB2YWx1ZSBDU1NQYXJzZXJTZWxlY3Rvcjo6
cGFyc2VQYWdlUHNldWRvU2VsZWN0b3IoKS4KKworICAgICAgICBQYWdlUHNldWRvIHR5cGVzIG5v
IGxvbmdlciBzdG9yZSB0aGVpciBzdHJpbmcgaW4gdGhlIENTU1NlbGVjdG9yIGVpdGhlciB0byBy
ZWR1Y2UgdGhlIHJlZHVuZGFuY3kKKyAgICAgICAgd2l0aCBtX3BzZXVkb1R5cGUuCisgICAgICAg
IFdoZW4gd2UgbmVlZCB0byBnZW5lcmF0ZSB0aGUgc3RyaW5nIGZvciB0aG9zZSBDU1NTZWxlY3Rv
ciwgd2UgcmVjcmVhdGUgdGhlIHN0cmluZyBhcyBuZWVkZWQgaW4KKyAgICAgICAgQ1NTU2VsZWN0
b3I6OnNlbGVjdG9yVGV4dCgpLgorCisgICAgICAgIFRoZSByZW1haW5pbmcgdHdvIHR5cGVzIGFy
ZSBub3QgeWV0IHNwbGl0IGluIHRoaXMgcGF0Y2ggYnV0IHRoaXMgaW50cm9kdWNlIHRoZSBwcmVs
aW1pbmFyeSBjbGVhbiB1cAorICAgICAgICB0b3dhcmQgdGhhdCBnb2FsLgorICAgICAgICBUaGUg
bGlzdCBvZiBwYXJzZWQgcHNldWRvIHR5cGVzIGlzIG5vdyBnZW5lcmF0ZWQgYXQgY29tcGlsZSB0
aW1lIGZyb20gdGhlIHNvdXJjZSBpbiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4uCisKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICBUaGUgbWFwcGluZyBvZiBzdHJpbmdz
IHRvIHBzZXVkbyB0eXBlcyBpcyBnZW5lcmF0ZWQgZnJvbSBTZWxlY3RvclBzZXVkb1R5cGVNYXAu
aW4KKyAgICAgICAgYnkgdGhlIG5ldyBzY3JpcHQgbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5w
eS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBjc3MvQ1NTR3JhbW1hci55LmluOgorICAgICAgICBTcGxpdCB0aGUgcGFyc2luZyBvZiBQ
c2V1ZG8gVHlwZXMuIFBzZXVkbyBwYWdlIGdldCBpdHMgb3duIG1ldGhvZC4gVGhlIG90aGVycyB3
aWxsIG5lZWQgc29tZSB3b3JrLgorCisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6cGFyc2VQYWdlUHNldWRvU2Vs
ZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyU2VsZWN0b3I6OnNldFBzZXVkb1R5
cGVWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5oOgorICAgICAgICAqIGNz
cy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c3BlY2lm
aWNpdHlGb3JQYWdlKToKKyAgICAgICAgVGhpcyBpcyBhbiBleGFtcGxlIG9mIGludmFsaWQgY29t
YmluYXRpb24gdGhhdCBpcyBoaWRkZW4gYnkgdGhlIGN1cnJlbnQgY29kZS4KKyAgICAgICAgRmly
c3QsIExlZnQgYW5kIFJpZ2h0IGNvdWxkIG5ldmVyIGFwcGVhciBpbiBhIHBzZXVkbyBjbGFzcyBt
YXRjaC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpwc2V1ZG9JZCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9UeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OmFwcGVuZFBzZXVkb1R5cGVUYWlsSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6cHNldWRvVHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTZWxlY3Rvcjo6bWF0Y2hlc1BzZXVkb0VsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU2VsZWN0b3I6OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVj
dG9yOjpDU1NTZWxlY3Rvcik6CisgICAgICAgICogY3NzL1BhZ2VSdWxlQ29sbGVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNoZWNrUGFnZVNlbGVjdG9yQ29tcG9uZW50cyk6CisgICAgICAg
ICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNo
ZWNrZXI6OmNoZWNrT25lKToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmg6
IEFkZGVkLgorICAgICAgICAqIGNzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaW46IEFkZGVkLgor
ICAgICAgICAqIGNzcy9tYWtlU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLnB5OiBBZGRlZC4KKyAgICAg
ICAgKGVudW1lcmFibGVQc2V1ZG9UeXBlKToKKyAgICAgICAgKGV4cGFuZF9pZmRlZl9jb25kaXRp
b24pOgorICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OmFkZFBzZXVkb1R5cGUpOgorCiAyMDE0LTAzLTA2ICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIERvbid0
IHBlcmZvcm0gYSByb3VuZC10cmlwIHRocm91Z2ggV2ViUHJvY2VzcyBiZWZvcmUgaW50ZXJwcmV0
aW5nIGtleSBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggN2M2NTU4OGU1ZmZiMzAzMjE1
MDE5YTViZjAxNTIxNThkNjU0OTIwZi4uMTdiZTQzN2ZkMmQ3NWQxN2M5NGQ5YzVkOWJjMGZjMWIz
NGI0OGQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMxMTksNiArMzExOSwxNSBAQCBBRERf
U09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtXRUJDT1JFX0RJUn0vY3NzL0NT
U1BhcnNlci5jcHAgQ1NTVmFsdQogQUREX1NPVVJDRV9XRUJDT1JFX0RFUklWRURfREVQRU5ERU5D
SUVTKCR7V0VCQ09SRV9ESVJ9L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggQ1NTVmFs
dWVLZXl3b3Jkcy5oKQogQUREX1NPVVJDRV9XRUJDT1JFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7
REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9DU1NHcmFtbWFyLmNwcCBDU1NWYWx1ZUtleXdv
cmRzLmgpCiAKKyMgR2VuZXJhdGUgQ1NTIFNlbGVjdG9yIHBzZXVkbyB0eXBlIG5hbWUgdG8gdmFs
dWUgbWFwLgorYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmdwZXJmICR7REVSSVZFRF9TT1VS
Q0VTX1dFQkNPUkVfRElSfS9TZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwCisgICAgTUFJTl9ERVBF
TkRFTkNZICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLnB5Cisg
ICAgV09SS0lOR19ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9CisgICAg
Q09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9jc3MvbWFrZVNlbGVj
dG9yUHNldWRvVHlwZU1hcC5weSAke1dFQkNPUkVfRElSfS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBl
TWFwLmluICIke0ZFQVRVUkVfREVGSU5FU19XSVRIX1NQQUNFX1NFUEFSQVRPUn0iCisgICAgVkVS
QkFUSU0pCitsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9L1NlbGVjdG9yUHNldWRvVHlwZU1hcC5jcHApCisKICMgR2VuZXJhdGUgdXNlciBh
Z2VudCBzdHlsZXMKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQgJHtERVJJVkVEX1NP
VVJDRVNfV0VCQ09SRV9ESVJ9L1VzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHAgJHtERVJJVkVE
X1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1VzZXJBZ2VudFN0eWxlU2hlZXRzLmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCmluZGV4IGFmZTA0NTg3MTU0YTNmMTlkOWViMmEwMGM3MmJkOTliNGI1
YmJkZTcuLjliMmI0N2JiYTU5ODAyYmFkY2FjNjUyNjdiZGNhNjViZjEyM2FkYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNzQ5LDYgKzc0OSw3IEBAIGFsbCA6IFwKICAgICBQ
bHVnSW5zUmVzb3VyY2VzLmggXAogICAgIFNWR0VsZW1lbnRGYWN0b3J5LmNwcCBcCiAgICAgU1ZH
TmFtZXMuY3BwIFwKKyAgICBTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwIFwKICAgICBVc2VyQWdl
bnRTY3JpcHRzLmggXAogICAgIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmggXAogICAgIFdlYktpdEZv
bnRGYW1pbHlOYW1lcy5jcHAgXApAQCAtNzkyLDYgKzc5MywxNCBAQCBDU1NWYWx1ZUtleXdvcmRz
LmggOiAkKFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRTKSBjc3MvbWFrZXZhbHVlcy5wbCBiaW5k
aW5ncy9zYwogCiAjIC0tLS0tLS0tCiAKKyMgQ1NTIFNlbGVjdG9yIHBzZXVkbyB0eXBlIG5hbWUg
dG8gdmFsdWUgbWFwLgorCitXRUJDT1JFX0NTU19TRUxFQ1RPUl9QU0VVRE9fVFlQRV9NQVBfS0VZ
V09SRFMgOj0gJChXZWJDb3JlKS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmluCitTZWxlY3Rv
clBzZXVkb1R5cGVNYXAuY3BwIDogJChXZWJDb3JlKS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlw
ZU1hcC5weSAkKFdFQkNPUkVfQ1NTX1NFTEVDVE9SX1BTRVVET19UWVBFX01BUF9LRVlXT1JEUykK
KwlweXRob24gIiQoV2ViQ29yZSkvY3NzL21ha2VTZWxlY3RvclBzZXVkb1R5cGVNYXAucHkiICQo
V0VCQ09SRV9DU1NfU0VMRUNUT1JfUFNFVURPX1RZUEVfTUFQX0tFWVdPUkRTKSAiJChGRUFUVVJF
X0RFRklORVMpIgorCisjIC0tLS0tLS0tCisKICMgWE1MVmlld2VyIENTUwogCiBhbGwgOiBYTUxW
aWV3ZXJDU1MuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMzA0YTA0MTg0YmIy
ZTRhMzI2ZWZkYzQ0YWFiNWYzMmIzNjMzZTQ1Ny4uMTBiNzQ0MDA1YTQwMjViOTgzZDVmODI5ZGE2
OTRmYWU4NDk3ODIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04NTUsNiAr
ODU1LDcgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL1BsdWdJbnNSZXNvdXJjZXNEYXRhLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Q
bHVnSW5zUmVzb3VyY2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU2V0dGluZ3NNYWNy
b3MuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9TZWxlY3RvclBzZXVkb1R5cGVNYXAuY3Bw
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1VzZXJBZ2VudFNjcmlwdHNEYXRhLmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRTY3JpcHRzLmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvVXNlckFnZW50U3R5bGVTaGVldHNEYXRhLmNwcCBcCkBAIC0yNjg4LDYgKzI2
ODksNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3Rv
ckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZp
bHRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZUludmFsaWRhdGlvbkFuYWx5c2lzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlSW52YWxpZGF0aW9uQW5hbHlzaXMuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
TWVkaWEuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCmluZGV4IGVhMzAzMDQxYzcwOWVmM2Q1ODEwNDk0YjM2OGJlYjJjMTNlMzExZjAuLjFh
NjUwMzAxYWZmNmRkODI0YWQzNDIxN2Y5MGRhNjA0ZGEyOGQzZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMjkwLDYgKzI5MCw3IEBA
CiAgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcQ1NTUHJvcGVydHlOYW1lcy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcQ1NTVmFsdWVLZXl3b3Jkcy5jcHAiIC8+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0
Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcU2VsZWN0b3JQ
c2V1ZG9UeXBlTWFwLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVxXZWJDb3JlXERlcml2ZWRT
b3VyY2VzXEpTQU5HTEVJbnN0YW5jZWRBcnJheXMuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCAxZWI5ZmFkNDY0MDIzNWVi
ZjY2MDQzOWEyZTEzZDg1ZmZmNDk4OTkzLi42NTY1YjBkOWI2ODhmZjRiZmY5Mzk1MDcyNDk4MTdi
NjI4YTA4YjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC01MTUyLDYgKzUxNTIsOSBAQAogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXENTU1ZhbHVlS2V5d29yZHMu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xT
ZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwIj4KKyAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xFdmVudEZhY3RvcnkuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVy
aXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNDkwZjFlNDgwZGUz
NDgyZDcwYzMwNzJjMjJlMDU2ZDgzZWE2OTYyLi5lYTBkMmQ2N2Y0N2E1M2I2MTRjMjk3ZjdiZmVm
NDY5NDllMjA1OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMzkzLDYgKzEzOTMsNyBAQAogCQk0MUZBMzAzRTEzMTZDMjlD
MDBDMEJGQzUgLyogUmVuZGVyTWVkaWFDb250cm9scy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBMzAzQzEzMTZDMjlDMDBDMEJGQzUgLyogUmVu
ZGVyTWVkaWFDb250cm9scy5jcHAgKi87IH07CiAJCTQxRkEzMDNGMTMxNkMyOUMwMEMwQkZDNSAv
KiBSZW5kZXJNZWRpYUNvbnRyb2xzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MUZBMzAzRDEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVkaWFDb250
cm9scy5oICovOyB9OwogCQk0MzA2RTRFNjE0OTU1NTQzMDA3RjE3QUMgLyogS2lsbFJpbmdOb25l
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzMDZF
NEU1MTQ5NTU1NDMwMDdGMTdBQyAvKiBLaWxsUmluZ05vbmUuY3BwICovOyB9OworCQk0MzEwN0JF
MjE4Q0MxOURFMDBDQzE4RTggLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzEwN0JFMTE4Q0MxOURFMDBDQzE4
RTggLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmggKi87IH07CiAJCTQzMTQyRTdBMTNCMUU5Nzcw
MEYxQzg3MSAvKiBTVkdBbmltYXRlZFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDMxNDJFNzkxM0IxRTk3NzAwRjFDODcxIC8qIFNWR0FuaW1h
dGVkUmVjdC5jcHAgKi87IH07CiAJCTQzMUEyRjlDMTNCNkYyQjAwMDc3OTFFNCAvKiBTVkdBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MzFBMkY5QTEzQjZGMkIwMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRO
dW1iZXJPcHRpb25hbE51bWJlci5oICovOyB9OwogCQk0MzFBMkY5RDEzQjZGMkIwMDA3NzkxRTQg
LyogU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzFBMkY5QjEzQjZGMkIwMDA3NzkxRTQgLyog
U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHAgKi87IH07CkBAIC0xNDY2LDYgKzE0
NjcsOCBAQAogCQk0M0E2MjVGODEzQjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRDb2xvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNBNjI1RjYx
M0IzMzA0MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29sb3IuaCAqLzsgfTsKIAkJNDNBNjI1Rjkx
M0IzMzA0MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNBNjI1RjcxM0IzMzA0MDAwQUM5NEI4IC8q
IFNWR0FuaW1hdGVkQ29sb3IuY3BwICovOyB9OwogCQk0M0E2MjY2NzEzQjNEMTEwMDBBQzk0Qjgg
LyogU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDNBNjI2NjYxM0IzRDExMDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkU3Ry
aW5nLmNwcCAqLzsgfTsKKwkJNDNCODVFRDExOENCRUFDRTAwRTMxQUY0IC8qIG1ha2VTZWxlY3Rv
clBzZXVkb1R5cGVNYXAucHkgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQzQjg1RUQwMThDQkVBQ0UwMEUzMUFGNCAvKiBtYWtlU2VsZWN0b3JQc2V1ZG9U
eXBlTWFwLnB5ICovOyB9OworCQk0M0I4NUVENDE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQ
c2V1ZG9UeXBlTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQzQjg1RUQyMThDQkVDNTIwMEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAu
Y3BwICovOyB9OwogCQk0M0I5MzM2OTEzQjI2MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2lu
dExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQz
QjkzMzY3MTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBvaW50TGlzdC5oICovOyB9Owog
CQk0M0I5MzM2QTEzQjI2MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNCOTMzNjgxM0Iy
NjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcCAqLzsgfTsKIAkJNDNDMDky
QkMxMkQ5RTRFRTAwQTk4OUMzIC8qIFJlbmRlclNWR0ZvcmVpZ25PYmplY3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzQzA5MkJBMTJEOUU0RUUwMEE5
ODlDMyAvKiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmggKi87IH07CkBAIC04MjU3LDYgKzgyNjAs
NyBAQAogCQk0MUZBMzAzQzEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVkaWFDb250cm9scy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJNZWRpYUNvbnRy
b2xzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQTMwM0QxMzE2QzI5QzAw
QzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyTWVkaWFDb250cm9scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MzA2RTRFNTE0OTU1NTQzMDA3RjE3QUMgLyogS2lsbFJpbmdOb25lLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtpbGxSaW5nTm9uZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzMTA3QkUxMThDQzE5REUwMENDMThFOCAvKiBTZWxlY3Rv
clBzZXVkb1R5cGVNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VsZWN0
b3JQc2V1ZG9UeXBlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzMTQyRTc5
MTNCMUU5NzcwMEYxQzg3MSAvKiBTVkdBbmltYXRlZFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDMxQTJGOUExM0I2RjJCMDAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkTnVt
YmVyT3B0aW9uYWxOdW1iZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MzFBMkY5QjEzQjZGMkIwMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25h
bE51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTgzNTcsNiArODM2MSwxMCBAQAogCQk0M0E2MjVGNjEzQjMzMDQwMDBBQzk0QjggLyogU1ZH
QW5pbWF0ZWRDb2xvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmlt
YXRlZENvbG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQTYyNUY3MTNCMzMw
NDAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZENvbG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0M0E2MjY2NjEzQjNEMTEwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRTdHJpbmcu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRTdHJp
bmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0M0I4NUVEMDE4Q0JFQUNFMDBF
MzFBRjQgLyogbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2Ny
aXB0LnB5dGhvbjsgcGF0aCA9IG1ha2VTZWxlY3RvclBzZXVkb1R5cGVNYXAucHk7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzQjg1RUQyMThDQkVDNTIwMEUzMUFGNCAvKiBTZWxlY3Rv
clBzZXVkb1R5cGVNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDNCODVFRDMxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZWxlY3RvclBzZXVkb1R5cGVNYXAuZ3BlcmY7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzQjg1RUQ2MThDQkVDOTcwMEUzMUFGNCAvKiBTZWxl
Y3RvclBzZXVkb1R5cGVNYXAuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2VsZWN0b3JQc2V1
ZG9UeXBlTWFwLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0I5MzM2NzEzQjI2
MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQb2ludExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDNCOTMzNjgxM0IyNjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRM
aXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVk
UG9pbnRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNDMDkyQjkxMkQ5
RTRFRTAwQTk4OUMzIC8qIFJlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTgzNCw2ICsxNTg0Miw4IEBACiAJCQkJNDRBMjhB
QUUxMkRGQjhCRjAwQUU5MjNCIC8qIE1hdGhNTE5hbWVzLmggKi8sCiAJCQkJNzFFMjE4MzgxNzM1
OUZCODAwNkU2RTREIC8qIFBsdWdJbnNSZXNvdXJjZXMuaCAqLywKIAkJCQk3MUUyMTgzOTE3MzU5
RkI4MDA2RTZFNEQgLyogUGx1Z0luc1Jlc291cmNlc0RhdGEuY3BwICovLAorCQkJCTQzQjg1RUQy
MThDQkVDNTIwMEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwICovLAorCQkJCTQz
Qjg1RUQzMThDQkVDNTIwMEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuZ3BlcmYgKi8s
CiAJCQkJNTNFRjc2NkExNjUzMEE2MTAwNENCRTQ5IC8qIFNldHRpbmdzTWFjcm9zLmggKi8sCiAJ
CQkJNjU2NTgxRTYwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR0VsZW1lbnRGYWN0b3J5LmNwcCAqLywK
IAkJCQk2NTY1ODFFNzA5RDE1MDhEMDAwRTYxRDcgLyogU1ZHRWxlbWVudEZhY3RvcnkuaCAqLywK
QEAgLTIxNTQ2LDYgKzIxNTU2LDcgQEAKIAkJCQk0QTlDQzgxRjE2QkY5QkI0MDBFQzY0NUEgLyog
SW5zcGVjdG9yQ1NTT01XcmFwcGVycy5oICovLAogCQkJCUU1NUY0OTc5MTUxQjg4ODAwMEJCNjdE
QiAvKiBMZW5ndGhGdW5jdGlvbnMuY3BwICovLAogCQkJCUU1QkE3RDYyMTUxNDM3Q0EwMEZFMUUz
RiAvKiBMZW5ndGhGdW5jdGlvbnMuaCAqLywKKwkJCQk0M0I4NUVEMDE4Q0JFQUNFMDBFMzFBRjQg
LyogbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weSAqLywKIAkJCQk5M0NBNEM5QTA5REY5M0ZB
MDBERjg2NzcgLyogbWFrZS1jc3MtZmlsZS1hcnJheXMucGwgKi8sCiAJCQkJOTNDQTRDOUIwOURG
OTNGQTAwREY4Njc3IC8qIG1ha2Vwcm9wLnBsICovLAogCQkJCTkzQ0E0QzlEMDlERjkzRkEwMERG
ODY3NyAvKiBtYWtldmFsdWVzLnBsICovLApAQCAtMjE1OTIsNiArMjE2MDMsOCBAQAogCQkJCTQz
MkQzRkU3MThBODY1ODQwMEQ3REMwMyAvKiBTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmgg
Ki8sCiAJCQkJNDE1MDcxNTUxNjg1MDY3MzAwQzNDN0IzIC8qIFNlbGVjdG9yRmlsdGVyLmNwcCAq
LywKIAkJCQk0MTUwNzE1NjE2ODUwNjczMDBDM0M3QjMgLyogU2VsZWN0b3JGaWx0ZXIuaCAqLywK
KwkJCQk0M0I4NUVENjE4Q0JFQzk3MDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmlu
ICovLAorCQkJCTQzMTA3QkUxMThDQzE5REUwMENDMThFOCAvKiBTZWxlY3RvclBzZXVkb1R5cGVN
YXAuaCAqLywKIAkJCQlFNDdBOTdDRTE2MzA1OUZDMDA1RENEOTkgLyogU3R5bGVJbnZhbGlkYXRp
b25BbmFseXNpcy5jcHAgKi8sCiAJCQkJRTQ3QTk3Q0YxNjMwNTlGQzAwNURDRDk5IC8qIFN0eWxl
SW52YWxpZGF0aW9uQW5hbHlzaXMuaCAqLywKIAkJCQkwRkY1MDI2RTEwMkJBOTY2MDA2NkYzOUEg
LyogU3R5bGVNZWRpYS5jcHAgKi8sCkBAIC0yMzg3MSw2ICsyMzg4NCw3IEBACiAJCQkJQTg3MURC
MzEwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZVJvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzNDQyQzlFMEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3MURCMjUwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MzEwN0JFMjE4Q0MxOURF
MDBDQzE4RTggLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
NjY4MTdGQjE2NkZFNkQ3MDBGQTA3QjQgLyogSFRNTFRlbXBsYXRlRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTgxMzY5RDYwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxUZXh0QXJlYUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCQzZDMjFCMTNDQ0M5N0IwMDhFMDMzNyAvKiBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjIwNSw2ICsyNjIx
OSw3IEBACiAJCQlmaWxlcyA9ICgKIAkJCQk0NkY5RDVERDBCMEQ2MDE3MDAyOEVFMzYgLyogYWxp
YXNDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk0NkQ0RjI0OTBBRjk3RTgxMDAzNTM4
NUEgLyogY2VsbEN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAorCQkJCTQzQjg1RUQxMThDQkVB
Q0UwMEUzMUFGNCAvKiBtYWtlU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLnB5IGluIFJlc291cmNlcyAq
LywKIAkJCQk5MzE1M0JERTE0MTk1OUY0MDBGQ0Y1QkUgLyogZGVsZXRlQnV0dG9uLnBuZyBpbiBS
ZXNvdXJjZXMgKi8sCiAJCQkJOTMxNTNCQ0QxNDE3RkJCRjAwRkNGNUJFIC8qIGRlbGV0ZUJ1dHRv
bkAyeC5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTkzMTUzQkUwMTQxOTVBMjgwMEZDRjVCRSAv
KiBkZWxldGVCdXR0b25QcmVzc2VkLnBuZyBpbiBSZXNvdXJjZXMgKi8sCkBAIC0yNzAyMyw2ICsy
NzAzOCw3IEBACiAJCQkJNkU2N0QyQTYxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9w
ZW5HTC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyog
RXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRF
MTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNDNCODVFRDQxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRv
VHlwZU1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4ODBFMURFMkQ2MDA3RjI0ODEg
LyogRkVCbGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4QTBFMURFMkQ2MDA3RjI0
ODEgLyogRkVDb2xvck1hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4QzBFMURF
MkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55LmluCmluZGV4IDc0Njg2MWViYzQwNThmMGU2ODE2OGMwNWU0
YmYwYjRkYWJhODI1OWYuLjE3Y2E5YzQ5NWI0ZGY4ZmE1ODM1MTE4Zjc3ODJkOTU1NmNjZmEwYTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgpAQCAtMTE3MCwxMyArMTE3MCw3IEBAIGlk
ZW50X29yX3N0cmluZzogSURFTlQgfCBTVFJJTkcgOwogCiBwc2V1ZG9fcGFnZToKICAgICAnOicg
SURFTlQgewotICAgICAgICAkJCA9IG51bGxwdHI7Ci0gICAgICAgIGF1dG8gc2VsZWN0b3IgPSBz
dGQ6Om1ha2VfdW5pcXVlPENTU1BhcnNlclNlbGVjdG9yPigpOwotICAgICAgICBzZWxlY3Rvci0+
c2V0TWF0Y2goQ1NTU2VsZWN0b3I6OlBhZ2VQc2V1ZG9DbGFzcyk7Ci0gICAgICAgICQyLmxvd2Vy
KCk7Ci0gICAgICAgIHNlbGVjdG9yLT5zZXRWYWx1ZSgkMik7Ci0gICAgICAgIGlmIChzZWxlY3Rv
ci0+cHNldWRvVHlwZSgpICE9IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duKQotICAgICAgICAg
ICAgJCQgPSBzZWxlY3Rvci5yZWxlYXNlKCk7CisgICAgICAgICQkID0gQ1NTUGFyc2VyU2VsZWN0
b3I6OnBhcnNlUGFnZVBzZXVkb1NlbGVjdG9yKCQyKTsKICAgICB9CiAKIHBzZXVkbzoKQEAgLTEx
ODUsNyArMTE3OSw3IEBAIHBzZXVkbzoKICAgICAgICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFr
ZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0b3I+KCk7CiAgICAgICAgIHNlbGVjdG9yLT5zZXRNYXRj
aChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOwogICAgICAgICAkMi5sb3dlcigpOwotICAgICAg
ICBzZWxlY3Rvci0+c2V0VmFsdWUoJDIpOworICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvVHlw
ZVZhbHVlKCQyKTsKICAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkgIT0gQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1Vua25vd24pCiAgICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2Uo
KTsKICAgICB9CkBAIC0xMTk0LDcgKzExODgsNyBAQCBwc2V1ZG86CiAgICAgICAgIGF1dG8gc2Vs
ZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENTU1BhcnNlclNlbGVjdG9yPigpOwogICAgICAgICBz
ZWxlY3Rvci0+c2V0TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQpOwogICAgICAgICAk
My5sb3dlcigpOwotICAgICAgICBzZWxlY3Rvci0+c2V0VmFsdWUoJDMpOworICAgICAgICBzZWxl
Y3Rvci0+c2V0UHNldWRvVHlwZVZhbHVlKCQzKTsKICAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1
ZG9UeXBlKCkgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24pCiAgICAgICAgICAgICAkJCA9
IHNlbGVjdG9yLnJlbGVhc2UoKTsKICAgICB9CkBAIC0xMjA2LDcgKzEyMDAsNyBAQCBwc2V1ZG86
CiAgICAgICAgICAgICBhdXRvIHNlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJT
ZWxlY3Rvcj4oKTsKICAgICAgICAgICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6
UHNldWRvQ2xhc3MpOwogICAgICAgICAgICAgc2VsZWN0b3ItPmFkb3B0U2VsZWN0b3JWZWN0b3Io
KnN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9y
Pj4+KCQ1KSk7Ci0gICAgICAgICAgICBzZWxlY3Rvci0+c2V0VmFsdWUoJDMpOworICAgICAgICAg
ICAgc2VsZWN0b3ItPnNldFBzZXVkb1R5cGVWYWx1ZSgkMyk7CiAgICAgICAgICAgICBpZiAoc2Vs
ZWN0b3ItPnBzZXVkb1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ3VlKQogICAgICAgICAg
ICAgICAgICQkID0gc2VsZWN0b3IucmVsZWFzZSgpOwogICAgICAgICB9CkBAIC0xMjI0LDcgKzEy
MTgsNyBAQCBwc2V1ZG86CiAgICAgICAgICAgICBzZWxlY3Rvci0+c2V0TWF0Y2goQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzKTsKICAgICAgICAgICAgIHNlbGVjdG9yLT5hZG9wdFNlbGVjdG9yVmVj
dG9yKCpzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxl
Y3Rvcj4+PigkNCkpOwogICAgICAgICAgICAgJDIubG93ZXIoKTsKLSAgICAgICAgICAgIHNlbGVj
dG9yLT5zZXRWYWx1ZSgkMik7CisgICAgICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvVHlwZVZh
bHVlKCQyKTsKICAgICAgICAgICAgIGlmIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpID09IENTU1Nl
bGVjdG9yOjpQc2V1ZG9BbnkpCiAgICAgICAgICAgICAgICAgJCQgPSBzZWxlY3Rvci5yZWxlYXNl
KCk7CiAgICAgICAgIH0KQEAgLTEyMzUsNyArMTIyOSw3IEBAIHBzZXVkbzoKICAgICAgICAgYXV0
byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0b3I+KCk7CiAgICAg
ICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOwogICAgICAg
ICBzZWxlY3Rvci0+c2V0QXJndW1lbnQoJDQpOwotICAgICAgICBzZWxlY3Rvci0+c2V0VmFsdWUo
JDIpOworICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvVHlwZVZhbHVlKCQyKTsKICAgICAgICAg
aWYgKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24p
CiAgICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKICAgICB9CkBAIC0xMjQ1LDcg
KzEyMzksNyBAQCBwc2V1ZG86CiAgICAgICAgIGF1dG8gc2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5p
cXVlPENTU1BhcnNlclNlbGVjdG9yPigpOwogICAgICAgICBzZWxlY3Rvci0+c2V0TWF0Y2goQ1NT
U2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKICAgICAgICAgc2VsZWN0b3ItPnNldEFyZ3VtZW50KEF0
b21pY1N0cmluZzo6bnVtYmVyKCQ0ICogJDUpKTsKLSAgICAgICAgc2VsZWN0b3ItPnNldFZhbHVl
KCQyKTsKKyAgICAgICAgc2VsZWN0b3ItPnNldFBzZXVkb1R5cGVWYWx1ZSgkMik7CiAgICAgICAg
IGlmIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpICE9IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3du
KQogICAgICAgICAgICAgJCQgPSBzZWxlY3Rvci5yZWxlYXNlKCk7CiAgICAgfQpAQCAtMTI1NSw3
ICsxMjQ5LDcgQEAgcHNldWRvOgogICAgICAgICBzZWxlY3Rvci0+c2V0TWF0Y2goQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzKTsKICAgICAgICAgc2VsZWN0b3ItPnNldEFyZ3VtZW50KCQ0KTsKICAg
ICAgICAgJDIubG93ZXIoKTsKLSAgICAgICAgc2VsZWN0b3ItPnNldFZhbHVlKCQyKTsKKyAgICAg
ICAgc2VsZWN0b3ItPnNldFBzZXVkb1R5cGVWYWx1ZSgkMik7CiAgICAgICAgIENTU1NlbGVjdG9y
OjpQc2V1ZG9UeXBlIHR5cGUgPSBzZWxlY3Rvci0+cHNldWRvVHlwZSgpOwogICAgICAgICBpZiAo
dHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bikKICAgICAgICAgICAgIHNlbGVjdG9y
ID0gbnVsbHB0cjsKQEAgLTEyODEsNyArMTI3NSw3IEBAIHBzZXVkbzoKICAgICAgICAgICAgICQk
LT5hZG9wdFNlbGVjdG9yVmVjdG9yKHNlbGVjdG9yVmVjdG9yKTsKIAogICAgICAgICAgICAgJDIu
bG93ZXIoKTsKLSAgICAgICAgICAgICQkLT5zZXRWYWx1ZSgkMik7CisgICAgICAgICAgICAkJC0+
c2V0UHNldWRvVHlwZVZhbHVlKCQyKTsKICAgICAgICAgfQogICAgIH0KICAgOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcAppbmRleCBiMmIwZDY0NDI2ZGY0NWE3Mjc5MTY3YzJh
OWMzZjBjNDgwOWZlOTM2Li5mMmQ3MjQ0MzE2MzQzZmFlMWYyMmMzNDRjODAzYWQ1NDJiM2U3N2Q5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcApAQCAtMTQ2LDYgKzE0Niwy
NCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXJWYWx1ZTo6Y3JlYXRlQ1NTVmFsdWUo
KQogICAgIHJldHVybiAwOwogfQogCitDU1NQYXJzZXJTZWxlY3RvciogQ1NTUGFyc2VyU2VsZWN0
b3I6OnBhcnNlUGFnZVBzZXVkb1NlbGVjdG9yKGNvbnN0IENTU1BhcnNlclN0cmluZyYgcHNldWRv
VHlwZVN0cmluZykKK3sKKyAgICBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBwc2V1ZG9UeXBlOwor
ICAgIGlmIChwc2V1ZG9UeXBlU3RyaW5nLmVxdWFsSWdub3JpbmdDYXNlKCJmaXJzdCIpKQorICAg
ICAgICBwc2V1ZG9UeXBlID0gQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0OworICAgIGVsc2UgaWYg
KHBzZXVkb1R5cGVTdHJpbmcuZXF1YWxJZ25vcmluZ0Nhc2UoImxlZnQiKSkKKyAgICAgICAgcHNl
dWRvVHlwZSA9IENTU1NlbGVjdG9yOjpQc2V1ZG9MZWZ0OworICAgIGVsc2UgaWYgKHBzZXVkb1R5
cGVTdHJpbmcuZXF1YWxJZ25vcmluZ0Nhc2UoInJpZ2h0IikpCisgICAgICAgIHBzZXVkb1R5cGUg
PSBDU1NTZWxlY3Rvcjo6UHNldWRvUmlnaHQ7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIGF1dG8gc2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENTU1BhcnNlclNl
bGVjdG9yPigpOworICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5tX21hdGNoID0gQ1NTU2VsZWN0
b3I6OlBhZ2VQc2V1ZG9DbGFzczsKKyAgICBzZWxlY3Rvci0+bV9zZWxlY3Rvci0+bV9wc2V1ZG9U
eXBlID0gcHNldWRvVHlwZTsKKyAgICByZXR1cm4gc2VsZWN0b3IucmVsZWFzZSgpOworfQorCiBD
U1NQYXJzZXJTZWxlY3Rvcjo6Q1NTUGFyc2VyU2VsZWN0b3IoKQogICAgIDogbV9zZWxlY3Rvcihz
dGQ6Om1ha2VfdW5pcXVlPENTU1NlbGVjdG9yPigpKQogewpAQCAtMTc4LDYgKzE5NiwxMjEgQEAg
dm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6YWRvcHRTZWxlY3RvclZlY3RvcihWZWN0b3I8c3RkOjp1
bmlxdWVfcHRyPENTU1BhcnNlclNlbGUKICAgICBtX3NlbGVjdG9yLT5zZXRTZWxlY3Rvckxpc3Qo
c3RkOjptb3ZlKHNlbGVjdG9yTGlzdCkpOwogfQogCit2b2lkIENTU1BhcnNlclNlbGVjdG9yOjpz
ZXRQc2V1ZG9UeXBlVmFsdWUoY29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9UeXBlU3RyaW5n
KQoreworICAgIEF0b21pY1N0cmluZyBuYW1lID0gcHNldWRvVHlwZVN0cmluZzsKKyAgICBtX3Nl
bGVjdG9yLT5zZXRWYWx1ZShuYW1lKTsKKworICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBz
ZXVkb1R5cGUgPSBDU1NTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9UeXBlKG5hbWUpOworICAgIGJvb2wg
ZWxlbWVudCA9IGZhbHNlOyAvLyBwc2V1ZG8tZWxlbWVudAorICAgIGJvb2wgY29tcGF0ID0gZmFs
c2U7IC8vIHNpbmdsZSBjb2xvbiBjb21wYXRiaWxpdHkgbW9kZQorCisgICAgc3dpdGNoIChwc2V1
ZG9UeXBlKSB7CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQWZ0ZXI6CisgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvQmVmb3JlOgorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DdWU6CisjZW5kaWYKKyAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9GaXJzdExldHRlcjoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdExp
bmU6CisgICAgICAgIGNvbXBhdCA9IHRydWU7CisgICAgICAgIEZBTExUSFJPVUdIOworICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Jlc2l6ZXI6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvU2Nyb2xsYmFyOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhckNvcm5l
cjoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TY3JvbGxiYXJCdXR0b246CisgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2Nyb2xsYmFyVGh1bWI6CisgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvU2Nyb2xsYmFyVHJhY2s6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2Ny
b2xsYmFyVHJhY2tQaWVjZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TZWxlY3Rpb246
CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVXNlckFnZW50Q3VzdG9tRWxlbWVudDoKKyAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9XZWJLaXRDdXN0b21FbGVtZW50OgorICAgICAgICBl
bGVtZW50ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvVW5rbm93bjoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbXB0eToKKyAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdENoaWxkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0ZpcnN0T2ZUeXBlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RDaGlsZDoK
KyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0T2ZUeXBlOgorICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb09ubHlDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Pbmx5
T2ZUeXBlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aENoaWxkOgorICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb050aE9mVHlwZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9OdGhMYXN0Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFzdE9mVHlw
ZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MaW5rOgorICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb1Zpc2l0ZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55OgorICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FueUxpbms6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvQXV0b2ZpbGw6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSG92ZXI6CisgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRHJhZzoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9Gb2N1czoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9BY3RpdmU6CisgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2hlY2tlZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9F
bmFibGVkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1bGxQYWdlTWVkaWE6CisgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGVmYXVsdDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9EaXNhYmxlZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9PcHRpb25hbDoKKyAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9SZXF1aXJlZDoKKyAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9SZWFkT25seToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9SZWFkV3JpdGU6
CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2NvcGU6CisgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvVmFsaWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW52YWxpZDoKKyAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbmRldGVybWluYXRlOgorICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1RhcmdldDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYW5nOgor
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb05vdDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9Sb290OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhckJhY2s6Cisg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2Nyb2xsYmFyRm9yd2FyZDoKKyAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9XaW5kb3dJbmFjdGl2ZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9Db3JuZXJQcmVzZW50OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0RlY3JlbWVu
dDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbmNyZW1lbnQ6CisgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvSG9yaXpvbnRhbDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9W
ZXJ0aWNhbDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TdGFydDoKKyAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9FbmQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRG91Ymxl
QnV0dG9uOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1NpbmdsZUJ1dHRvbjoKKyAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ob0J1dHRvbjoKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFNjcmVlbjoKKyAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuRG9jdW1lbnQ6CisgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvRnVsbFNjcmVlbkFuY2VzdG9yOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0FuaW1hdGluZ0Z1bGxTY3JlZW5UcmFuc2l0aW9uOgorI2VuZGlmCisgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvSW5SYW5nZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9PdXRPZlJh
bmdlOgorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9GdXR1cmU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvUGFzdDoKKyNlbmRpZgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdDoKKyAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9MZWZ0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Jp
Z2h0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgdW5zaWduZWQgbWF0Y2hUeXBlID0gbV9zZWxlY3Rvci0+bV9tYXRjaDsKKyAgICBp
ZiAobWF0Y2hUeXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyAmJiBlbGVtZW50KSB7Cisg
ICAgICAgIGlmICghY29tcGF0KQorICAgICAgICAgICAgcHNldWRvVHlwZSA9IENTU1NlbGVjdG9y
OjpQc2V1ZG9Vbmtub3duOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtYXRjaFR5cGUgPSBD
U1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudDsKKyAgICB9IGVsc2UgaWYgKG1hdGNoVHlwZSA9PSBD
U1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudCAmJiAhZWxlbWVudCkKKyAgICAgICAgcHNldWRvVHlw
ZSA9IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duOworCisgICAgbV9zZWxlY3Rvci0+bV9tYXRj
aCA9IG1hdGNoVHlwZTsKKyAgICBtX3NlbGVjdG9yLT5tX3BzZXVkb1R5cGUgPSBwc2V1ZG9UeXBl
OworfQorCiBib29sIENTU1BhcnNlclNlbGVjdG9yOjppc1NpbXBsZSgpIGNvbnN0CiB7CiAgICAg
aWYgKG1fc2VsZWN0b3ItPnNlbGVjdG9yTGlzdCgpIHx8IG1fc2VsZWN0b3ItPm1hdGNoZXNQc2V1
ZG9FbGVtZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFs
dWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKaW5kZXggY2IzNGU5
ZGI3OTRlYzU2NGE5MDQ1MDRjOWNjZGNjZDVlNmI3ODkyYy4uNmIxYjA5ZGQyM2UzMzY0NDNjNDgy
NjZlZWU3NDVkYzM0NmE5OGYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlclZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaApA
QCAtMTcxLDYgKzE3MSw4IEBAIHB1YmxpYzoKIGNsYXNzIENTU1BhcnNlclNlbGVjdG9yIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBzdGF0aWMgQ1NTUGFyc2Vy
U2VsZWN0b3IqIHBhcnNlUGFnZVBzZXVkb1NlbGVjdG9yKGNvbnN0IENTU1BhcnNlclN0cmluZyYg
cHNldWRvVHlwZVN0cmluZyk7CisKICAgICBDU1NQYXJzZXJTZWxlY3RvcigpOwogICAgIGV4cGxp
Y2l0IENTU1BhcnNlclNlbGVjdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB+Q1NTUGFy
c2VyU2VsZWN0b3IoKTsKQEAgLTE4NCw4ICsxODYsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
UmVsYXRpb24oQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIHZhbHVlKSB7IG1fc2VsZWN0b3ItPm1fcmVs
YXRpb24gPSB2YWx1ZTsgfQogICAgIHZvaWQgc2V0Rm9yUGFnZSgpIHsgbV9zZWxlY3Rvci0+c2V0
Rm9yUGFnZSgpOyB9CiAKKwogICAgIHZvaWQgYWRvcHRTZWxlY3RvclZlY3RvcihWZWN0b3I8c3Rk
Ojp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4mIHNlbGVjdG9yVmVjdG9yKTsKIAorICAg
IHZvaWQgc2V0UHNldWRvVHlwZVZhbHVlKGNvbnN0IENTU1BhcnNlclN0cmluZyYgcHNldWRvVHlw
ZVN0cmluZyk7CiAgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcHNldWRvVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc2VsZWN0b3ItPnBzZXVkb1R5cGUoKTsgfQogICAgIGJvb2wgaXNDdXN0b21Q
c2V1ZG9FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rvci0+aXNDdXN0b21Qc2V1ZG9F
bGVtZW50KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXggZWIzNzIzN2Zm
NGE2ODBmN2RiMDRlNDc5MGVmNWI5NGU3ZWQ1ZWNiMy4uODc0OGI0NjJjNzYyYTliOGQ0YTQzNDQz
YTk1MDczY2VmOTJmNWIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiQ1NTT01VdGlscy5oIgogI2luY2x1ZGUgIkNTU1NlbGVjdG9y
TGlzdC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlNlbGVjdG9yUHNldWRv
VHlwZU1hcC5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTEyMSwxNyArMTIy
LDE1IEBAIHVuc2lnbmVkIENTU1NlbGVjdG9yOjpzcGVjaWZpY2l0eUZvclBhZ2UoKSBjb25zdAog
ICAgICAgICBjYXNlIFRhZzoKICAgICAgICAgICAgIHMgKz0gdGFnUU5hbWUoKS5sb2NhbE5hbWUo
KSA9PSBzdGFyQXRvbSA/IDAgOiA0OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
UHNldWRvQ2xhc3M6CisgICAgICAgIGNhc2UgUGFnZVBzZXVkb0NsYXNzOgogICAgICAgICAgICAg
c3dpdGNoIChjb21wb25lbnQtPnBzZXVkb1R5cGUoKSkgewotICAgICAgICAgICAgY2FzZSBQc2V1
ZG9GaXJzdFBhZ2U6CisgICAgICAgICAgICBjYXNlIFBzZXVkb0ZpcnN0OgogICAgICAgICAgICAg
ICAgIHMgKz0gMjsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUHNl
dWRvTGVmdFBhZ2U6Ci0gICAgICAgICAgICBjYXNlIFBzZXVkb1JpZ2h0UGFnZToKKyAgICAgICAg
ICAgIGNhc2UgUHNldWRvTGVmdDoKKyAgICAgICAgICAgIGNhc2UgUHNldWRvUmlnaHQ6CiAgICAg
ICAgICAgICAgICAgcyArPSAxOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSBQc2V1ZG9Ob3RQYXJzZWQ6Ci0gICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICAgICAgfQpAQCAtMjMxLDI2NSArMjMwLDQzIEBAIFBzZXVkb0lkIENTU1NlbGVjdG9yOjpwc2V1
ZG9JZChQc2V1ZG9UeXBlIHR5cGUpCiAgICAgY2FzZSBQc2V1ZG9Eb3VibGVCdXR0b246CiAgICAg
Y2FzZSBQc2V1ZG9TaW5nbGVCdXR0b246CiAgICAgY2FzZSBQc2V1ZG9Ob0J1dHRvbjoKLSAgICBj
YXNlIFBzZXVkb0ZpcnN0UGFnZToKLSAgICBjYXNlIFBzZXVkb0xlZnRQYWdlOgotICAgIGNhc2Ug
UHNldWRvUmlnaHRQYWdlOgorICAgIGNhc2UgUHNldWRvRmlyc3Q6CisgICAgY2FzZSBQc2V1ZG9M
ZWZ0OgorICAgIGNhc2UgUHNldWRvUmlnaHQ6CiAgICAgY2FzZSBQc2V1ZG9JblJhbmdlOgogICAg
IGNhc2UgUHNldWRvT3V0T2ZSYW5nZToKICAgICBjYXNlIFBzZXVkb1VzZXJBZ2VudEN1c3RvbUVs
ZW1lbnQ6CiAgICAgY2FzZSBQc2V1ZG9XZWJLaXRDdXN0b21FbGVtZW50OgogI2lmIEVOQUJMRShW
SURFT19UUkFDSykKICAgICBjYXNlIFBzZXVkb0N1ZToKLSAgICBjYXNlIFBzZXVkb0Z1dHVyZUN1
ZToKLSAgICBjYXNlIFBzZXVkb1Bhc3RDdWU6CisgICAgY2FzZSBQc2V1ZG9GdXR1cmU6CisgICAg
Y2FzZSBQc2V1ZG9QYXN0OgogI2VuZGlmCiAgICAgICAgIHJldHVybiBOT1BTRVVETzsKLSAgICBj
YXNlIFBzZXVkb05vdFBhcnNlZDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIHJldHVybiBOT1BTRVVETzsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICByZXR1cm4gTk9QU0VVRE87CiB9CiAKLXN0YXRpYyBORVZFUl9JTkxJTkUgdm9pZCBwb3B1
bGF0ZVBzZXVkb1R5cGVCeU5hbWVNYXAoSGFzaE1hcDxBdG9taWNTdHJpbmcsIENTU1NlbGVjdG9y
OjpQc2V1ZG9UeXBlPiYgbWFwKQotewotICAgIHN0cnVjdCBUYWJsZUVudHJ5IHsKLSAgICAgICAg
Y29uc3QgY2hhciogbmFtZTsKLSAgICAgICAgdW5zaWduZWQgbmFtZUxlbmd0aDsKLSAgICAgICAg
Q1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgdHlwZTsKLSAgICB9OwotCi0gICAgLy8gQ291bGQgdXNl
IHN0cmxlbiBpbiB0aGlzIG1hY3JvIGJ1dCBub3QgYWxsIGNvbXBpbGVycyBjYW4gY29uc3RhbnQt
Zm9sZCBpdC4KLSNkZWZpbmUgVEFCTEVfRU5UUlkobmFtZSwgdHlwZSkgeyBuYW1lLCBzaXplb2Yo
bmFtZSkgLSAxLCBDU1NTZWxlY3Rvcjo6dHlwZSB9LAotCi0gICAgc3RhdGljIGNvbnN0IFRhYmxl
RW50cnkgdGFibGVbXSA9IHsKLSAgICAgICAgVEFCTEVfRU5UUlkoIi1raHRtbC1kcmFnIiwgUHNl
dWRvRHJhZykKLSAgICAgICAgVEFCTEVfRU5UUlkoIi13ZWJraXQtYW55KCIsIFBzZXVkb0FueSkK
LSAgICAgICAgVEFCTEVfRU5UUlkoIi13ZWJraXQtYW55LWxpbmsiLCBQc2V1ZG9BbnlMaW5rKQot
ICAgICAgICBUQUJMRV9FTlRSWSgiLXdlYmtpdC1hdXRvZmlsbCIsIFBzZXVkb0F1dG9maWxsKQot
ICAgICAgICBUQUJMRV9FTlRSWSgiLXdlYmtpdC1kcmFnIiwgUHNldWRvRHJhZykKLSAgICAgICAg
VEFCTEVfRU5UUlkoIi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhIiwgUHNldWRvRnVsbFBhZ2VNZWRp
YSkKLSAgICAgICAgVEFCTEVfRU5UUlkoIi13ZWJraXQtcmVzaXplciIsIFBzZXVkb1Jlc2l6ZXIp
Ci0gICAgICAgIFRBQkxFX0VOVFJZKCItd2Via2l0LXNjcm9sbGJhciIsIFBzZXVkb1Njcm9sbGJh
cikKLSAgICAgICAgVEFCTEVfRU5UUlkoIi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiIsIFBzZXVk
b1Njcm9sbGJhckJ1dHRvbikKLSAgICAgICAgVEFCTEVfRU5UUlkoIi13ZWJraXQtc2Nyb2xsYmFy
LWNvcm5lciIsIFBzZXVkb1Njcm9sbGJhckNvcm5lcikKLSAgICAgICAgVEFCTEVfRU5UUlkoIi13
ZWJraXQtc2Nyb2xsYmFyLXRodW1iIiwgUHNldWRvU2Nyb2xsYmFyVGh1bWIpCi0gICAgICAgIFRB
QkxFX0VOVFJZKCItd2Via2l0LXNjcm9sbGJhci10cmFjayIsIFBzZXVkb1Njcm9sbGJhclRyYWNr
KQotICAgICAgICBUQUJMRV9FTlRSWSgiLXdlYmtpdC1zY3JvbGxiYXItdHJhY2stcGllY2UiLCBQ
c2V1ZG9TY3JvbGxiYXJUcmFja1BpZWNlKQotICAgICAgICBUQUJMRV9FTlRSWSgiYWN0aXZlIiwg
UHNldWRvQWN0aXZlKQotICAgICAgICBUQUJMRV9FTlRSWSgiYWZ0ZXIiLCBQc2V1ZG9BZnRlcikK
LSAgICAgICAgVEFCTEVfRU5UUlkoImJlZm9yZSIsIFBzZXVkb0JlZm9yZSkKLSAgICAgICAgVEFC
TEVfRU5UUlkoImNoZWNrZWQiLCBQc2V1ZG9DaGVja2VkKQotICAgICAgICBUQUJMRV9FTlRSWSgi
Y29ybmVyLXByZXNlbnQiLCBQc2V1ZG9Db3JuZXJQcmVzZW50KQotICAgICAgICBUQUJMRV9FTlRS
WSgiZGVjcmVtZW50IiwgUHNldWRvRGVjcmVtZW50KQotICAgICAgICBUQUJMRV9FTlRSWSgiZGVm
YXVsdCIsIFBzZXVkb0RlZmF1bHQpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJkaXNhYmxlZCIsIFBz
ZXVkb0Rpc2FibGVkKQotICAgICAgICBUQUJMRV9FTlRSWSgiZG91YmxlLWJ1dHRvbiIsIFBzZXVk
b0RvdWJsZUJ1dHRvbikKLSAgICAgICAgVEFCTEVfRU5UUlkoImVtcHR5IiwgUHNldWRvRW1wdHkp
Ci0gICAgICAgIFRBQkxFX0VOVFJZKCJlbmFibGVkIiwgUHNldWRvRW5hYmxlZCkKLSAgICAgICAg
VEFCTEVfRU5UUlkoImVuZCIsIFBzZXVkb0VuZCkKLSAgICAgICAgVEFCTEVfRU5UUlkoImZpcnN0
IiwgUHNldWRvRmlyc3RQYWdlKQotICAgICAgICBUQUJMRV9FTlRSWSgiZmlyc3QtY2hpbGQiLCBQ
c2V1ZG9GaXJzdENoaWxkKQotICAgICAgICBUQUJMRV9FTlRSWSgiZmlyc3QtbGV0dGVyIiwgUHNl
dWRvRmlyc3RMZXR0ZXIpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJmaXJzdC1saW5lIiwgUHNldWRv
Rmlyc3RMaW5lKQotICAgICAgICBUQUJMRV9FTlRSWSgiZmlyc3Qtb2YtdHlwZSIsIFBzZXVkb0Zp
cnN0T2ZUeXBlKQotICAgICAgICBUQUJMRV9FTlRSWSgiZm9jdXMiLCBQc2V1ZG9Gb2N1cykKLSAg
ICAgICAgVEFCTEVfRU5UUlkoImhvcml6b250YWwiLCBQc2V1ZG9Ib3Jpem9udGFsKQotICAgICAg
ICBUQUJMRV9FTlRSWSgiaG92ZXIiLCBQc2V1ZG9Ib3ZlcikKLSAgICAgICAgVEFCTEVfRU5UUlko
ImluLXJhbmdlIiwgUHNldWRvSW5SYW5nZSkKLSAgICAgICAgVEFCTEVfRU5UUlkoImluY3JlbWVu
dCIsIFBzZXVkb0luY3JlbWVudCkKLSAgICAgICAgVEFCTEVfRU5UUlkoImluZGV0ZXJtaW5hdGUi
LCBQc2V1ZG9JbmRldGVybWluYXRlKQotICAgICAgICBUQUJMRV9FTlRSWSgiaW52YWxpZCIsIFBz
ZXVkb0ludmFsaWQpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJsYW5nKCIsIFBzZXVkb0xhbmcpCi0g
ICAgICAgIFRBQkxFX0VOVFJZKCJsYXN0LWNoaWxkIiwgUHNldWRvTGFzdENoaWxkKQotICAgICAg
ICBUQUJMRV9FTlRSWSgibGFzdC1vZi10eXBlIiwgUHNldWRvTGFzdE9mVHlwZSkKLSAgICAgICAg
VEFCTEVfRU5UUlkoImxlZnQiLCBQc2V1ZG9MZWZ0UGFnZSkKLSAgICAgICAgVEFCTEVfRU5UUlko
ImxpbmsiLCBQc2V1ZG9MaW5rKQotICAgICAgICBUQUJMRV9FTlRSWSgibm8tYnV0dG9uIiwgUHNl
dWRvTm9CdXR0b24pCi0gICAgICAgIFRBQkxFX0VOVFJZKCJub3QoIiwgUHNldWRvTm90KQotICAg
ICAgICBUQUJMRV9FTlRSWSgibnRoLWNoaWxkKCIsIFBzZXVkb050aENoaWxkKQotICAgICAgICBU
QUJMRV9FTlRSWSgibnRoLWxhc3QtY2hpbGQoIiwgUHNldWRvTnRoTGFzdENoaWxkKQotICAgICAg
ICBUQUJMRV9FTlRSWSgibnRoLWxhc3Qtb2YtdHlwZSgiLCBQc2V1ZG9OdGhMYXN0T2ZUeXBlKQot
ICAgICAgICBUQUJMRV9FTlRSWSgibnRoLW9mLXR5cGUoIiwgUHNldWRvTnRoT2ZUeXBlKQotICAg
ICAgICBUQUJMRV9FTlRSWSgib25seS1jaGlsZCIsIFBzZXVkb09ubHlDaGlsZCkKLSAgICAgICAg
VEFCTEVfRU5UUlkoIm9ubHktb2YtdHlwZSIsIFBzZXVkb09ubHlPZlR5cGUpCi0gICAgICAgIFRB
QkxFX0VOVFJZKCJvcHRpb25hbCIsIFBzZXVkb09wdGlvbmFsKQotICAgICAgICBUQUJMRV9FTlRS
WSgib3V0LW9mLXJhbmdlIiwgUHNldWRvT3V0T2ZSYW5nZSkKLSAgICAgICAgVEFCTEVfRU5UUlko
InJlYWQtb25seSIsIFBzZXVkb1JlYWRPbmx5KQotICAgICAgICBUQUJMRV9FTlRSWSgicmVhZC13
cml0ZSIsIFBzZXVkb1JlYWRXcml0ZSkKLSAgICAgICAgVEFCTEVfRU5UUlkoInJlcXVpcmVkIiwg
UHNldWRvUmVxdWlyZWQpCi0gICAgICAgIFRBQkxFX0VOVFJZKCJyaWdodCIsIFBzZXVkb1JpZ2h0
UGFnZSkKLSAgICAgICAgVEFCTEVfRU5UUlkoInJvb3QiLCBQc2V1ZG9Sb290KQotICAgICAgICBU
QUJMRV9FTlRSWSgic2NvcGUiLCBQc2V1ZG9TY29wZSkKLSAgICAgICAgVEFCTEVfRU5UUlkoInNl
bGVjdGlvbiIsIFBzZXVkb1NlbGVjdGlvbikKLSAgICAgICAgVEFCTEVfRU5UUlkoInNpbmdsZS1i
dXR0b24iLCBQc2V1ZG9TaW5nbGVCdXR0b24pCi0gICAgICAgIFRBQkxFX0VOVFJZKCJzdGFydCIs
IFBzZXVkb1N0YXJ0KQotICAgICAgICBUQUJMRV9FTlRSWSgidGFyZ2V0IiwgUHNldWRvVGFyZ2V0
KQotICAgICAgICBUQUJMRV9FTlRSWSgidmFsaWQiLCBQc2V1ZG9WYWxpZCkKLSAgICAgICAgVEFC
TEVfRU5UUlkoInZlcnRpY2FsIiwgUHNldWRvVmVydGljYWwpCi0gICAgICAgIFRBQkxFX0VOVFJZ
KCJ2aXNpdGVkIiwgUHNldWRvVmlzaXRlZCkKLSAgICAgICAgVEFCTEVfRU5UUlkoIndpbmRvdy1p
bmFjdGl2ZSIsIFBzZXVkb1dpbmRvd0luYWN0aXZlKQotCi0jaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKQotICAgICAgICBUQUJMRV9FTlRSWSgiLXdlYmtpdC1hbmltYXRpbmctZnVsbC1zY3JlZW4t
dHJhbnNpdGlvbiIsIFBzZXVkb0FuaW1hdGluZ0Z1bGxTY3JlZW5UcmFuc2l0aW9uKQotICAgICAg
ICBUQUJMRV9FTlRSWSgiLXdlYmtpdC1mdWxsLXNjcmVlbiIsIFBzZXVkb0Z1bGxTY3JlZW4pCi0g
ICAgICAgIFRBQkxFX0VOVFJZKCItd2Via2l0LWZ1bGwtc2NyZWVuLWFuY2VzdG9yIiwgUHNldWRv
RnVsbFNjcmVlbkFuY2VzdG9yKQotICAgICAgICBUQUJMRV9FTlRSWSgiLXdlYmtpdC1mdWxsLXNj
cmVlbi1kb2N1bWVudCIsIFBzZXVkb0Z1bGxTY3JlZW5Eb2N1bWVudCkKLSNlbmRpZgotCi0jaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQotICAgICAgICBUQUJMRV9FTlRSWSgiY3VlKCIsIFBzZXVkb0N1
ZSkKLSAgICAgICAgVEFCTEVfRU5UUlkoImZ1dHVyZSIsIFBzZXVkb0Z1dHVyZUN1ZSkKLSAgICAg
ICAgVEFCTEVfRU5UUlkoInBhc3QiLCBQc2V1ZG9QYXN0Q3VlKQotI2VuZGlmCi0gICAgfTsKLQot
I3VuZGVmIFRBQkxFX0VOVFJZCi0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FS
UkFZX0xFTkdUSCh0YWJsZSk7ICsraSkKLSAgICAgICAgbWFwLmFkZChBdG9taWNTdHJpbmcodGFi
bGVbaV0ubmFtZSwgdGFibGVbaV0ubmFtZUxlbmd0aCwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCksIHRhYmxlW2ldLnR5cGUpOwotfQotCi1DU1NTZWxlY3Rvcjo6UHNldWRvVHlw
ZSBDU1NTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9UeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkK
K0NTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIENTU1NlbGVjdG9yOjpwYXJzZVBzZXVkb1R5cGUoY29u
c3QgU3RyaW5nJiBuYW1lKQogewogICAgIGlmIChuYW1lLmlzTnVsbCgpKQogICAgICAgICByZXR1
cm4gUHNldWRvVW5rbm93bjsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPEF0
b21pY1N0cmluZywgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGU+PiB0eXBlczsKLSAgICBpZiAodHlw
ZXMuZ2V0KCkuaXNFbXB0eSgpKQotICAgICAgICBwb3B1bGF0ZVBzZXVkb1R5cGVCeU5hbWVNYXAo
dHlwZXMpOwotICAgIGlmIChQc2V1ZG9UeXBlIHR5cGUgPSB0eXBlcy5nZXQoKS5nZXQobmFtZSkp
Ci0gICAgICAgIHJldHVybiB0eXBlOwotCi0gICAgaWYgKG5hbWUuc3RhcnRzV2l0aCgiLXdlYmtp
dC0iKSkKLSAgICAgICAgcmV0dXJuIFBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQ7Ci0KLSAgICAv
LyBGSVhNRTogVGhpcyBpcyBzdHJhbmdlLiBXaHkgd291bGQgYWxsIHN0cmluZ3MgdGhhdCBzdGFy
dCB3aXRoICJjdWUiIGJlICJ1c2VyIGFnZW50IGN1c3RvbSI/Ci0gICAgaWYgKG5hbWUuc3RhcnRz
V2l0aCgieC0iKSB8fCBuYW1lLnN0YXJ0c1dpdGgoImN1ZSIpKQotICAgICAgICByZXR1cm4gUHNl
dWRvVXNlckFnZW50Q3VzdG9tRWxlbWVudDsKKyAgICBQc2V1ZG9UeXBlIHR5cGUgPSBwYXJzZVBz
ZXVkb1R5cGVTdHJpbmcoKm5hbWUuaW1wbCgpKTsKKyAgICBpZiAodHlwZSA9PSBQc2V1ZG9Vbmtu
b3duKSB7CisgICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoIi13ZWJraXQtIikpCisgICAgICAg
ICAgICB0eXBlID0gUHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVudDsKIAotICAgIHJldHVybiBQc2V1
ZG9Vbmtub3duOwotfQotCi12b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNv
bnN0Ci17Ci0gICAgaWYgKG1fbWF0Y2ggIT0gUHNldWRvQ2xhc3MgJiYgbV9tYXRjaCAhPSBQc2V1
ZG9FbGVtZW50ICYmIG1fbWF0Y2ggIT0gUGFnZVBzZXVkb0NsYXNzKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBtX3BzZXVkb1R5cGUgPSBwYXJzZVBzZXVkb1R5cGUodmFsdWUoKSk7Ci0KLSAgICBi
b29sIGVsZW1lbnQgPSBmYWxzZTsgLy8gcHNldWRvLWVsZW1lbnQKLSAgICBib29sIGNvbXBhdCA9
IGZhbHNlOyAvLyBzaW5nbGUgY29sb24gY29tcGF0YmlsaXR5IG1vZGUKLSAgICBib29sIGlzUGFn
ZVBzZXVkb0NsYXNzID0gZmFsc2U7IC8vIFBhZ2UgcHNldWRvLWNsYXNzCi0KLSAgICBzd2l0Y2gg
KG1fcHNldWRvVHlwZSkgewotICAgIGNhc2UgUHNldWRvQWZ0ZXI6Ci0gICAgY2FzZSBQc2V1ZG9C
ZWZvcmU6Ci0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIGNhc2UgUHNldWRvQ3VlOgotI2Vu
ZGlmCi0gICAgY2FzZSBQc2V1ZG9GaXJzdExldHRlcjoKLSAgICBjYXNlIFBzZXVkb0ZpcnN0TGlu
ZToKLSAgICAgICAgY29tcGF0ID0gdHJ1ZTsKLSAgICAgICAgRkFMTFRIUk9VR0g7Ci0gICAgY2Fz
ZSBQc2V1ZG9SZXNpemVyOgotICAgIGNhc2UgUHNldWRvU2Nyb2xsYmFyOgotICAgIGNhc2UgUHNl
dWRvU2Nyb2xsYmFyQ29ybmVyOgotICAgIGNhc2UgUHNldWRvU2Nyb2xsYmFyQnV0dG9uOgotICAg
IGNhc2UgUHNldWRvU2Nyb2xsYmFyVGh1bWI6Ci0gICAgY2FzZSBQc2V1ZG9TY3JvbGxiYXJUcmFj
azoKLSAgICBjYXNlIFBzZXVkb1Njcm9sbGJhclRyYWNrUGllY2U6Ci0gICAgY2FzZSBQc2V1ZG9T
ZWxlY3Rpb246Ci0gICAgY2FzZSBQc2V1ZG9Vc2VyQWdlbnRDdXN0b21FbGVtZW50OgotICAgIGNh
c2UgUHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVudDoKLSAgICAgICAgZWxlbWVudCA9IHRydWU7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHNldWRvVW5rbm93bjoKLSAgICBjYXNlIFBzZXVkb0Vt
cHR5OgotICAgIGNhc2UgUHNldWRvRmlyc3RDaGlsZDoKLSAgICBjYXNlIFBzZXVkb0ZpcnN0T2ZU
eXBlOgotICAgIGNhc2UgUHNldWRvTGFzdENoaWxkOgotICAgIGNhc2UgUHNldWRvTGFzdE9mVHlw
ZToKLSAgICBjYXNlIFBzZXVkb09ubHlDaGlsZDoKLSAgICBjYXNlIFBzZXVkb09ubHlPZlR5cGU6
Ci0gICAgY2FzZSBQc2V1ZG9OdGhDaGlsZDoKLSAgICBjYXNlIFBzZXVkb050aE9mVHlwZToKLSAg
ICBjYXNlIFBzZXVkb050aExhc3RDaGlsZDoKLSAgICBjYXNlIFBzZXVkb050aExhc3RPZlR5cGU6
Ci0gICAgY2FzZSBQc2V1ZG9MaW5rOgotICAgIGNhc2UgUHNldWRvVmlzaXRlZDoKLSAgICBjYXNl
IFBzZXVkb0FueToKLSAgICBjYXNlIFBzZXVkb0FueUxpbms6Ci0gICAgY2FzZSBQc2V1ZG9BdXRv
ZmlsbDoKLSAgICBjYXNlIFBzZXVkb0hvdmVyOgotICAgIGNhc2UgUHNldWRvRHJhZzoKLSAgICBj
YXNlIFBzZXVkb0ZvY3VzOgotICAgIGNhc2UgUHNldWRvQWN0aXZlOgotICAgIGNhc2UgUHNldWRv
Q2hlY2tlZDoKLSAgICBjYXNlIFBzZXVkb0VuYWJsZWQ6Ci0gICAgY2FzZSBQc2V1ZG9GdWxsUGFn
ZU1lZGlhOgotICAgIGNhc2UgUHNldWRvRGVmYXVsdDoKLSAgICBjYXNlIFBzZXVkb0Rpc2FibGVk
OgotICAgIGNhc2UgUHNldWRvT3B0aW9uYWw6Ci0gICAgY2FzZSBQc2V1ZG9SZXF1aXJlZDoKLSAg
ICBjYXNlIFBzZXVkb1JlYWRPbmx5OgotICAgIGNhc2UgUHNldWRvUmVhZFdyaXRlOgotICAgIGNh
c2UgUHNldWRvU2NvcGU6Ci0gICAgY2FzZSBQc2V1ZG9WYWxpZDoKLSAgICBjYXNlIFBzZXVkb0lu
dmFsaWQ6Ci0gICAgY2FzZSBQc2V1ZG9JbmRldGVybWluYXRlOgotICAgIGNhc2UgUHNldWRvVGFy
Z2V0OgotICAgIGNhc2UgUHNldWRvTGFuZzoKLSAgICBjYXNlIFBzZXVkb05vdDoKLSAgICBjYXNl
IFBzZXVkb1Jvb3Q6Ci0gICAgY2FzZSBQc2V1ZG9TY3JvbGxiYXJCYWNrOgotICAgIGNhc2UgUHNl
dWRvU2Nyb2xsYmFyRm9yd2FyZDoKLSAgICBjYXNlIFBzZXVkb1dpbmRvd0luYWN0aXZlOgotICAg
IGNhc2UgUHNldWRvQ29ybmVyUHJlc2VudDoKLSAgICBjYXNlIFBzZXVkb0RlY3JlbWVudDoKLSAg
ICBjYXNlIFBzZXVkb0luY3JlbWVudDoKLSAgICBjYXNlIFBzZXVkb0hvcml6b250YWw6Ci0gICAg
Y2FzZSBQc2V1ZG9WZXJ0aWNhbDoKLSAgICBjYXNlIFBzZXVkb1N0YXJ0OgotICAgIGNhc2UgUHNl
dWRvRW5kOgotICAgIGNhc2UgUHNldWRvRG91YmxlQnV0dG9uOgotICAgIGNhc2UgUHNldWRvU2lu
Z2xlQnV0dG9uOgotICAgIGNhc2UgUHNldWRvTm9CdXR0b246Ci0gICAgY2FzZSBQc2V1ZG9Ob3RQ
YXJzZWQ6Ci0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGNhc2UgUHNldWRvRnVsbFNj
cmVlbjoKLSAgICBjYXNlIFBzZXVkb0Z1bGxTY3JlZW5Eb2N1bWVudDoKLSAgICBjYXNlIFBzZXVk
b0Z1bGxTY3JlZW5BbmNlc3RvcjoKLSAgICBjYXNlIFBzZXVkb0FuaW1hdGluZ0Z1bGxTY3JlZW5U
cmFuc2l0aW9uOgotI2VuZGlmCi0gICAgY2FzZSBQc2V1ZG9JblJhbmdlOgotICAgIGNhc2UgUHNl
dWRvT3V0T2ZSYW5nZToKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgY2FzZSBQc2V1ZG9G
dXR1cmVDdWU6Ci0gICAgY2FzZSBQc2V1ZG9QYXN0Q3VlOgotI2VuZGlmCi0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUHNldWRvRmlyc3RQYWdlOgotICAgIGNhc2UgUHNldWRvTGVmdFBhZ2U6Ci0g
ICAgY2FzZSBQc2V1ZG9SaWdodFBhZ2U6Ci0gICAgICAgIGlzUGFnZVBzZXVkb0NsYXNzID0gdHJ1
ZTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHN0cmFuZ2UuIFdo
eSB3b3VsZCBhbGwgc3RyaW5ncyB0aGF0IHN0YXJ0IHdpdGggImN1ZSIgYmUgInVzZXIgYWdlbnQg
Y3VzdG9tIj8KKyAgICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aCgieC0iKSB8fCBuYW1lLnN0YXJ0
c1dpdGgoImN1ZSIpKQorICAgICAgICAgICAgdHlwZSA9IFBzZXVkb1VzZXJBZ2VudEN1c3RvbUVs
ZW1lbnQ7CiAgICAgfQotCi0gICAgYm9vbCBtYXRjaFBhZ2VQc2V1ZG9DbGFzcyA9IChtX21hdGNo
ID09IFBhZ2VQc2V1ZG9DbGFzcyk7Ci0gICAgaWYgKG1hdGNoUGFnZVBzZXVkb0NsYXNzICE9IGlz
UGFnZVBzZXVkb0NsYXNzKQotICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9Vbmtub3duOwot
ICAgIGVsc2UgaWYgKG1fbWF0Y2ggPT0gUHNldWRvQ2xhc3MgJiYgZWxlbWVudCkgewotICAgICAg
ICBpZiAoIWNvbXBhdCkKLSAgICAgICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb1Vua25vd247
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgbV9tYXRjaCA9IFBzZXVkb0VsZW1lbnQ7Ci0gICAg
fSBlbHNlIGlmIChtX21hdGNoID09IFBzZXVkb0VsZW1lbnQgJiYgIWVsZW1lbnQpCi0gICAgICAg
IG1fcHNldWRvVHlwZSA9IFBzZXVkb1Vua25vd247CisgICAgcmV0dXJuIHR5cGU7CiB9CiAKKwog
Ym9vbCBDU1NTZWxlY3Rvcjo6b3BlcmF0b3I9PShjb25zdCBDU1NTZWxlY3RvciYgb3RoZXIpIGNv
bnN0CiB7CiAgICAgY29uc3QgQ1NTU2VsZWN0b3IqIHNlbDEgPSB0aGlzOwpAQCAtNTE4LDYgKzI5
NSwzNyBAQCBib29sIENTU1NlbGVjdG9yOjpvcGVyYXRvcj09KGNvbnN0IENTU1NlbGVjdG9yJiBv
dGhlcikgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIHZvaWQgYXBwZW5kUHNl
dWRvVHlwZVRhaWxJZk5lY2Vzc2FyeShTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IENTU1NlbGVj
dG9yKiBzZWxlY3RvcikKK3sKKyAgICBzd2l0Y2ggKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkpIHsK
KyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ob3Q6CisgICAgICAgIGlmIChjb25zdCBDU1NT
ZWxlY3Rvckxpc3QqIHNlbGVjdG9yTGlzdCA9IHNlbGVjdG9yLT5zZWxlY3Rvckxpc3QoKSkKKyAg
ICAgICAgICAgIHN0ci5hcHBlbmQoc2VsZWN0b3JMaXN0LT5maXJzdCgpLT5zZWxlY3RvclRleHQo
KSk7CisgICAgICAgIHN0ci5hcHBlbmQoJyknKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvTGFuZzoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhD
aGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0Q2hpbGQ6CisgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoT2ZUeXBlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb050aExhc3RPZlR5cGU6CisgICAgICAgIHN0ci5hcHBlbmQoc2VsZWN0b3ItPmFyZ3VtZW50
KCkpOworICAgICAgICBzdHIuYXBwZW5kKCcpJyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0FueTogeworICAgICAgICBjb25zdCBDU1NTZWxlY3RvciogZmly
c3RTdWJTZWxlY3RvciA9IHNlbGVjdG9yLT5zZWxlY3Rvckxpc3QoKS0+Zmlyc3QoKTsKKyAgICAg
ICAgZm9yIChjb25zdCBDU1NTZWxlY3Rvciogc3ViU2VsZWN0b3IgPSBmaXJzdFN1YlNlbGVjdG9y
OyBzdWJTZWxlY3Rvcjsgc3ViU2VsZWN0b3IgPSBDU1NTZWxlY3Rvckxpc3Q6Om5leHQoc3ViU2Vs
ZWN0b3IpKSB7CisgICAgICAgICAgICBpZiAoc3ViU2VsZWN0b3IgIT0gZmlyc3RTdWJTZWxlY3Rv
cikKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCcsJyk7CisgICAgICAgICAgICBzdHIuYXBw
ZW5kKHN1YlNlbGVjdG9yLT5zZWxlY3RvclRleHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgc3Ry
LmFwcGVuZCgnKScpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorfQorCiBTdHJpbmcgQ1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dChj
b25zdCBTdHJpbmcmIHJpZ2h0U2lkZSkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIHN0cjsK
QEAgLTU0MSwzNCArMzQ5LDIwIEBAIFN0cmluZyBDU1NTZWxlY3Rvcjo6c2VsZWN0b3JUZXh0KGNv
bnN0IFN0cmluZyYgcmlnaHRTaWRlKSBjb25zdAogICAgICAgICAgICAgc3RyLmFwcGVuZCgnLicp
OwogICAgICAgICAgICAgc2VyaWFsaXplSWRlbnRpZmllcihjcy0+dmFsdWUoKSwgc3RyKTsKICAg
ICAgICAgfSBlbHNlIGlmIChjcy0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3Mg
fHwgY3MtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBhZ2VQc2V1ZG9DbGFzcykgewotICAgICAg
ICAgICAgc3RyLmFwcGVuZCgnOicpOwotICAgICAgICAgICAgc3RyLmFwcGVuZChjcy0+dmFsdWUo
KSk7Ci0KICAgICAgICAgICAgIHN3aXRjaCAoY3MtPnBzZXVkb1R5cGUoKSkgewotICAgICAgICAg
ICAgY2FzZSBQc2V1ZG9Ob3Q6Ci0gICAgICAgICAgICAgICAgaWYgKGNvbnN0IENTU1NlbGVjdG9y
TGlzdCogc2VsZWN0b3JMaXN0ID0gY3MtPnNlbGVjdG9yTGlzdCgpKQotICAgICAgICAgICAgICAg
ICAgICBzdHIuYXBwZW5kKHNlbGVjdG9yTGlzdC0+Zmlyc3QoKS0+c2VsZWN0b3JUZXh0KCkpOwot
ICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoJyknKTsKKyAgICAgICAgICAgIGNhc2UgUHNldWRv
Rmlyc3Q6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpmaXJzdCIpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBQc2V1ZG9MYW5nOgotICAgICAg
ICAgICAgY2FzZSBQc2V1ZG9OdGhDaGlsZDoKLSAgICAgICAgICAgIGNhc2UgUHNldWRvTnRoTGFz
dENoaWxkOgotICAgICAgICAgICAgY2FzZSBQc2V1ZG9OdGhPZlR5cGU6Ci0gICAgICAgICAgICBj
YXNlIFBzZXVkb050aExhc3RPZlR5cGU6Ci0gICAgICAgICAgICAgICAgc3RyLmFwcGVuZChjcy0+
YXJndW1lbnQoKSk7Ci0gICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgnKScpOworICAgICAgICAg
ICAgY2FzZSBQc2V1ZG9MZWZ0OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6
bGVmdCIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBQc2V1ZG9B
bnk6IHsKLSAgICAgICAgICAgICAgICBjb25zdCBDU1NTZWxlY3RvciogZmlyc3RTdWJTZWxlY3Rv
ciA9IGNzLT5zZWxlY3Rvckxpc3QoKS0+Zmlyc3QoKTsKLSAgICAgICAgICAgICAgICBmb3IgKGNv
bnN0IENTU1NlbGVjdG9yKiBzdWJTZWxlY3RvciA9IGZpcnN0U3ViU2VsZWN0b3I7IHN1YlNlbGVj
dG9yOyBzdWJTZWxlY3RvciA9IENTU1NlbGVjdG9yTGlzdDo6bmV4dChzdWJTZWxlY3RvcikpIHsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKHN1YlNlbGVjdG9yICE9IGZpcnN0U3ViU2VsZWN0b3Ip
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCcsJyk7Ci0gICAgICAgICAgICAg
ICAgICAgIHN0ci5hcHBlbmQoc3ViU2VsZWN0b3ItPnNlbGVjdG9yVGV4dCgpKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgnKScpOworICAgICAgICAgICAg
Y2FzZSBQc2V1ZG9SaWdodDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnJp
Z2h0Iik7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoJzonKTsKKyAgICAgICAgICAg
ICAgICBzdHIuYXBwZW5kKGNzLT52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRQc2V1
ZG9UeXBlVGFpbElmTmVjZXNzYXJ5KHN0ciwgY3MpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKGNzLT5tX21hdGNoID09IENTU1NlbGVj
dG9yOjpQc2V1ZG9FbGVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDA2OTFm
YWM3NzBjMjlhZTdjZTI3ODJmYzJkYjIyMmY0YzJkMGIwMjUuLjY5ZmUyNzlhZmRhYWE4MGUyMzhl
NWUwMzQ4M2ZhNjZkNDU5ZWU3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
ZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC03OSw4
ICs3OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfTsKIAogICAgICAgICBlbnVt
IFBzZXVkb1R5cGUgewotICAgICAgICAgICAgUHNldWRvTm90UGFyc2VkID0gMCwKLSAgICAgICAg
ICAgIFBzZXVkb1Vua25vd24sCisgICAgICAgICAgICBQc2V1ZG9Vbmtub3duID0gMCwKICAgICAg
ICAgICAgIFBzZXVkb0VtcHR5LAogICAgICAgICAgICAgUHNldWRvRmlyc3RDaGlsZCwKICAgICAg
ICAgICAgIFBzZXVkb0ZpcnN0T2ZUeXBlLApAQCAtMTQzLDkgKzE0Miw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgICAgIFBzZXVkb1NpbmdsZUJ1dHRvbiwKICAgICAgICAgICAgIFBz
ZXVkb05vQnV0dG9uLAogICAgICAgICAgICAgUHNldWRvU2VsZWN0aW9uLAotICAgICAgICAgICAg
UHNldWRvTGVmdFBhZ2UsCi0gICAgICAgICAgICBQc2V1ZG9SaWdodFBhZ2UsCi0gICAgICAgICAg
ICBQc2V1ZG9GaXJzdFBhZ2UsCisgICAgICAgICAgICBQc2V1ZG9MZWZ0LAorICAgICAgICAgICAg
UHNldWRvUmlnaHQsCisgICAgICAgICAgICBQc2V1ZG9GaXJzdCwKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCiAgICAgICAgICAgICBQc2V1ZG9GdWxsU2NyZWVuLAogICAgICAgICAgICAgUHNl
dWRvRnVsbFNjcmVlbkRvY3VtZW50LApAQCAtMTU4LDggKzE1Nyw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgICAgIFBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQsCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogICAgICAgICAgICAgUHNldWRvQ3VlLAotICAgICAgICAgICAgUHNldWRv
RnV0dXJlQ3VlLAotICAgICAgICAgICAgUHNldWRvUGFzdEN1ZSwKKyAgICAgICAgICAgIFBzZXVk
b0Z1dHVyZSwKKyAgICAgICAgICAgIFBzZXVkb1Bhc3QsCiAjZW5kaWYKICAgICAgICAgfTsKIApA
QCAtMTg0LDEyICsxODMsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFBzZXVk
b1R5cGUgcHNldWRvVHlwZSgpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChtX3Bz
ZXVkb1R5cGUgPT0gUHNldWRvTm90UGFyc2VkKQotICAgICAgICAgICAgICAgIGV4dHJhY3RQc2V1
ZG9UeXBlKCk7CiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHNldWRvVHlwZT4obV9w
c2V1ZG9UeXBlKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQc2V1ZG9UeXBlIHBhcnNl
UHNldWRvVHlwZShjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICAgICAgc3RhdGljIFBzZXVkb1R5
cGUgcGFyc2VQc2V1ZG9UeXBlKGNvbnN0IFN0cmluZyYpOwogICAgICAgICBzdGF0aWMgUHNldWRv
SWQgcHNldWRvSWQoUHNldWRvVHlwZSk7CiAKICAgICAgICAgLy8gU2VsZWN0b3JzIGFyZSBrZXB0
IGluIGFuIGFycmF5IGJ5IENTU1NlbGVjdG9yTGlzdC4gVGhlIG5leHQgY29tcG9uZW50IG9mIHRo
ZSBzZWxlY3RvciBpcwpAQCAtMjQzLDcgKzI0MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICB1bnNpZ25lZCBzcGVjaWZpY2l0eUZvck9uZVNlbGVjdG9yKCkgY29uc3Q7CiAgICAg
ICAgIHVuc2lnbmVkIHNwZWNpZmljaXR5Rm9yUGFnZSgpIGNvbnN0OwotICAgICAgICB2b2lkIGV4
dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3Q7CiAKICAgICAgICAgLy8gSGlkZS4KICAgICAgICAgQ1NT
U2VsZWN0b3ImIG9wZXJhdG9yPShjb25zdCBDU1NTZWxlY3RvciYpOwpAQCAtMjkyLDggKzI4OCw2
IEBAIGlubGluZSBjb25zdCBBdG9taWNTdHJpbmcmIENTU1NlbGVjdG9yOjphdHRyaWJ1dGVDYW5v
bmljYWxMb2NhbE5hbWUoKSBjb25zdAogCiBpbmxpbmUgYm9vbCBDU1NTZWxlY3Rvcjo6bWF0Y2hl
c1BzZXVkb0VsZW1lbnQoKSBjb25zdAogewotICAgIGlmIChtX3BzZXVkb1R5cGUgPT0gUHNldWRv
VW5rbm93bikKLSAgICAgICAgZXh0cmFjdFBzZXVkb1R5cGUoKTsKICAgICByZXR1cm4gbV9tYXRj
aCA9PSBQc2V1ZG9FbGVtZW50OwogfQogCkBAIC0zMzksNyArMzMzLDYgQEAgaW5saW5lIGJvb2wg
Q1NTU2VsZWN0b3I6OmlzQXR0cmlidXRlU2VsZWN0b3IoKSBjb25zdAogaW5saW5lIHZvaWQgQ1NT
U2VsZWN0b3I6OnNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgQVNT
RVJUKG1fbWF0Y2ggIT0gVGFnKTsKLSAgICBBU1NFUlQobV9wc2V1ZG9UeXBlID09IFBzZXVkb05v
dFBhcnNlZCk7CiAgICAgLy8gTmVlZCB0byBkbyByZWYgY291bnRpbmcgbWFudWFsbHkgZm9yIHRo
ZSB1bmlvbi4KICAgICBpZiAobV9oYXNSYXJlRGF0YSkgewogICAgICAgICBpZiAobV9kYXRhLm1f
cmFyZURhdGEtPm1fdmFsdWUpCkBAIC0zNTcsNyArMzUwLDcgQEAgaW5saW5lIHZvaWQgQ1NTU2Vs
ZWN0b3I6OnNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiBpbmxpbmUgQ1NTU2Vs
ZWN0b3I6OkNTU1NlbGVjdG9yKCkKICAgICA6IG1fcmVsYXRpb24oRGVzY2VuZGFudCkKICAgICAs
IG1fbWF0Y2goVW5rbm93bikKLSAgICAsIG1fcHNldWRvVHlwZShQc2V1ZG9Ob3RQYXJzZWQpCisg
ICAgLCBtX3BzZXVkb1R5cGUoUHNldWRvVW5rbm93bikKICAgICAsIG1fcGFyc2VkTnRoKGZhbHNl
KQogICAgICwgbV9pc0xhc3RJblNlbGVjdG9yTGlzdChmYWxzZSkKICAgICAsIG1faXNMYXN0SW5U
YWdIaXN0b3J5KHRydWUpCkBAIC0zNzAsNyArMzYzLDcgQEAgaW5saW5lIENTU1NlbGVjdG9yOjpD
U1NTZWxlY3RvcigpCiBpbmxpbmUgQ1NTU2VsZWN0b3I6OkNTU1NlbGVjdG9yKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ1FOYW1lLCBib29sIHRhZ0lzRm9yTmFtZXNwYWNlUnVsZSkKICAgICA6IG1f
cmVsYXRpb24oRGVzY2VuZGFudCkKICAgICAsIG1fbWF0Y2goVGFnKQotICAgICwgbV9wc2V1ZG9U
eXBlKFBzZXVkb05vdFBhcnNlZCkKKyAgICAsIG1fcHNldWRvVHlwZShQc2V1ZG9Vbmtub3duKQog
ICAgICwgbV9wYXJzZWROdGgoZmFsc2UpCiAgICAgLCBtX2lzTGFzdEluU2VsZWN0b3JMaXN0KGZh
bHNlKQogICAgICwgbV9pc0xhc3RJblRhZ0hpc3RvcnkodHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9QYWdlUnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
UGFnZVJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IGQ3ZjcwNDAzZWZiNTcxNmMzOGI2MGQ5ZjliZGEy
NmY1NmI5OTU2MGEuLmQwYmE1N2ZjNmUzMjc3ZWMyNjU2ZDc0ZDNjODlkMWM0NDVjZGU0YzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9QYWdlUnVsZUNvbGxlY3Rvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1BhZ2VSdWxlQ29sbGVjdG9yLmNwcApAQCAtOTksOSArOTksOSBA
QCBzdGF0aWMgYm9vbCBjaGVja1BhZ2VTZWxlY3RvckNvbXBvbmVudHMoY29uc3QgQ1NTU2VsZWN0
b3IqIHNlbGVjdG9yLCBib29sIGlzTGVmdAogICAgICAgICB9CiAKICAgICAgICAgQ1NTU2VsZWN0
b3I6OlBzZXVkb1R5cGUgcHNldWRvVHlwZSA9IGNvbXBvbmVudC0+cHNldWRvVHlwZSgpOwotICAg
ICAgICBpZiAoKHBzZXVkb1R5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0xlZnRQYWdlICYmICFp
c0xlZnRQYWdlKQotICAgICAgICAgICAgfHwgKHBzZXVkb1R5cGUgPT0gQ1NTU2VsZWN0b3I6OlBz
ZXVkb1JpZ2h0UGFnZSAmJiBpc0xlZnRQYWdlKQotICAgICAgICAgICAgfHwgKHBzZXVkb1R5cGUg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0UGFnZSAmJiAhaXNGaXJzdFBhZ2UpKQorICAgICAg
ICBpZiAoKHBzZXVkb1R5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0xlZnQgJiYgIWlzTGVmdFBh
Z2UpCisgICAgICAgICAgICB8fCAocHNldWRvVHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvUmln
aHQgJiYgaXNMZWZ0UGFnZSkKKyAgICAgICAgICAgIHx8IChwc2V1ZG9UeXBlID09IENTU1NlbGVj
dG9yOjpQc2V1ZG9GaXJzdCAmJiAhaXNGaXJzdFBhZ2UpKQogICAgICAgICB7CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tl
ci5jcHAKaW5kZXggNzllMGQ5OTI2ZDUyN2IzNjUzNmExODY3MmJkMDNhOWVjMzlmNGI3ZS4uNTNj
NTBkOGNkYWJjN2ZlMzY0NzhlODE4MTRkMDMxY2FkNzhjY2EwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTY5OSw5ICs2OTksOSBAQCBib29sIFNlbGVjdG9yQ2hl
Y2tlcjo6Y2hlY2tPbmUoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQpIGNv
bnN0CiAgICAgICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnNldENvbnRhaW5zVmFsaWRpdHlT
dHlsZVJ1bGVzKCk7CiAgICAgICAgICAgICByZXR1cm4gZWxlbWVudC0+aXNPdXRPZlJhbmdlKCk7
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9GdXR1cmVDdWU6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1dHVyZToKICAg
ICAgICAgICAgIHJldHVybiBtYXRjaGVzRnV0dXJlQ3VlUHNldWRvQ2xhc3MoZWxlbWVudCk7Ci0g
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Bhc3RDdWU6CisgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb1Bhc3Q6CiAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlc1Bhc3RDdWVQ
c2V1ZG9DbGFzcyhlbGVtZW50KTsKICNlbmRpZgogCkBAIC03MjYsNyArNzI2LDYgQEAgYm9vbCBT
ZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBj
b250ZXh0KSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd246Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb05vdFBhcnNlZDoKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0
b3JQc2V1ZG9UeXBlTWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ4ZjNlZTA1YTUxMmE1NjczMmQ3NDJkZTll
ZGZhOWVkZDBkMTBhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxl
Y3RvclBzZXVkb1R5cGVNYXAuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBTZWxlY3RvclBzZXVkb1R5cGVNYXBfaAorI2RlZmluZSBTZWxlY3RvclBzZXVkb1R5cGVNYXBf
aAorCisjaW5jbHVkZSAiQ1NTUGFyc2VyVmFsdWVzLmgiCisjaW5jbHVkZSAiQ1NTU2VsZWN0b3Iu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBwYXJz
ZVBzZXVkb1R5cGVTdHJpbmcoY29uc3QgU3RyaW5nSW1wbCYgcHNldWRvVHlwZVN0cmluZyk7CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNlbGVjdG9yUHNldWRvVHlwZU1h
cF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFw
LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5pbgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40NDhjZjgwYTBjNWJlZmIzZGFhYjQyOWE3ZjVhMjIwYjE3OTQ4M2RkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5pbgpAQCAt
MCwwICsxLDc2IEBACista2h0bWwtZHJhZworLXdlYmtpdC1hbnkoCistd2Via2l0LWFueS1saW5r
Cistd2Via2l0LWF1dG9maWxsCistd2Via2l0LWRyYWcKKy13ZWJraXQtZnVsbC1wYWdlLW1lZGlh
Cistd2Via2l0LXJlc2l6ZXIKKy13ZWJraXQtc2Nyb2xsYmFyCistd2Via2l0LXNjcm9sbGJhci1i
dXR0b24KKy13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lcgorLXdlYmtpdC1zY3JvbGxiYXItdGh1bWIK
Ky13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrCistd2Via2l0LXNjcm9sbGJhci10cmFjay1waWVjZQor
YWN0aXZlCithZnRlcgorYmVmb3JlCitjaGVja2VkCitjb3JuZXItcHJlc2VudAorZGVjcmVtZW50
CitkZWZhdWx0CitkaXNhYmxlZAorZG91YmxlLWJ1dHRvbgorZW1wdHkKK2VuYWJsZWQKK2VuZAor
Zmlyc3QtY2hpbGQKK2ZpcnN0LWxldHRlcgorZmlyc3QtbGluZQorZmlyc3Qtb2YtdHlwZQorZm9j
dXMKK2hvcml6b250YWwKK2hvdmVyCitpbi1yYW5nZQoraW5jcmVtZW50CitpbmRldGVybWluYXRl
CitpbnZhbGlkCitsYW5nKAorbGFzdC1jaGlsZAorbGFzdC1vZi10eXBlCitsaW5rCituby1idXR0
b24KK25vdCgKK250aC1jaGlsZCgKK250aC1sYXN0LWNoaWxkKAorbnRoLWxhc3Qtb2YtdHlwZSgK
K250aC1vZi10eXBlKAorb25seS1jaGlsZAorb25seS1vZi10eXBlCitvcHRpb25hbAorb3V0LW9m
LXJhbmdlCityZWFkLW9ubHkKK3JlYWQtd3JpdGUKK3JlcXVpcmVkCityb290CitzY29wZQorc2Vs
ZWN0aW9uCitzaW5nbGUtYnV0dG9uCitzdGFydAordGFyZ2V0Cit2YWxpZAordmVydGljYWwKK3Zp
c2l0ZWQKK3dpbmRvdy1pbmFjdGl2ZQorCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorLXdl
YmtpdC1hbmltYXRpbmctZnVsbC1zY3JlZW4tdHJhbnNpdGlvbgorLXdlYmtpdC1mdWxsLXNjcmVl
bgorLXdlYmtpdC1mdWxsLXNjcmVlbi1hbmNlc3RvcgorLXdlYmtpdC1mdWxsLXNjcmVlbi1kb2N1
bWVudAorI2VuZGlmCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCitjdWUoCitmdXR1cmUKK3Bh
c3QKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBz
ZXVkb1R5cGVNYXAucHkgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlw
ZU1hcC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iZTliZTRhOTA5NTY2ZmQyNTI5ZDcxNjM0ZDNlNWNlOGU0YzIy
ZWIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBz
ZXVkb1R5cGVNYXAucHkKQEAgLTAsMCArMSwyMDUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgor
IworIyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IG9zCitpbXBv
cnQgc3lzCisKKworZGVmIGVudW1lcmFibGVQc2V1ZG9UeXBlKHN0cmluZ1BzZXVkb1R5cGUpOgor
ICAgIG91dHB1dCA9IFsnQ1NTU2VsZWN0b3I6OlBzZXVkbyddCisKKyAgICBpZiBzdHJpbmdQc2V1
ZG9UeXBlLmVuZHN3aXRoKCcoJyk6CisgICAgICAgIHN0cmluZ1BzZXVkb1R5cGUgPSBzdHJpbmdQ
c2V1ZG9UeXBlWzotMV0KKworICAgIHdlYmtpdFByZWZpeCA9ICctd2Via2l0LScKKyAgICBpZiAo
c3RyaW5nUHNldWRvVHlwZS5zdGFydHN3aXRoKHdlYmtpdFByZWZpeCkpOgorICAgICAgICBzdHJp
bmdQc2V1ZG9UeXBlID0gc3RyaW5nUHNldWRvVHlwZVtsZW4od2Via2l0UHJlZml4KTpdCisKKyAg
ICBraHRtbFByZWZpeCA9ICcta2h0bWwtJworICAgIGlmIChzdHJpbmdQc2V1ZG9UeXBlLnN0YXJ0
c3dpdGgoa2h0bWxQcmVmaXgpKToKKyAgICAgICAgc3RyaW5nUHNldWRvVHlwZSA9IHN0cmluZ1Bz
ZXVkb1R5cGVbbGVuKGtodG1sUHJlZml4KTpdCisKKyAgICBzdWJzdHJpbmdfc3RhcnQgPSAwCisg
ICAgbmV4dF9kYXNoX3Bvc2l0aW9uID0gc3RyaW5nUHNldWRvVHlwZS5maW5kKCctJykKKyAgICB3
aGlsZSAobmV4dF9kYXNoX3Bvc2l0aW9uICE9IC0xKToKKyAgICAgICAgb3V0cHV0LmFwcGVuZChz
dHJpbmdQc2V1ZG9UeXBlW3N1YnN0cmluZ19zdGFydF0udXBwZXIoKSkKKyAgICAgICAgb3V0cHV0
LmFwcGVuZChzdHJpbmdQc2V1ZG9UeXBlW3N1YnN0cmluZ19zdGFydCArIDE6bmV4dF9kYXNoX3Bv
c2l0aW9uXSkKKyAgICAgICAgc3Vic3RyaW5nX3N0YXJ0ID0gbmV4dF9kYXNoX3Bvc2l0aW9uICsg
MQorICAgICAgICBuZXh0X2Rhc2hfcG9zaXRpb24gPSBzdHJpbmdQc2V1ZG9UeXBlLmZpbmQoJy0n
LCBzdWJzdHJpbmdfc3RhcnQpCisKKyAgICBvdXRwdXQuYXBwZW5kKHN0cmluZ1BzZXVkb1R5cGVb
c3Vic3RyaW5nX3N0YXJ0XS51cHBlcigpKQorICAgIG91dHB1dC5hcHBlbmQoc3RyaW5nUHNldWRv
VHlwZVtzdWJzdHJpbmdfc3RhcnQgKyAxOl0pCisgICAgcmV0dXJuICcnLmpvaW4ob3V0cHV0KQor
CisKK2RlZiBleHBhbmRfaWZkZWZfY29uZGl0aW9uKGNvbmRpdGlvbik6CisgICAgcmV0dXJuIGNv
bmRpdGlvbi5yZXBsYWNlKCcoJywgJ18nKS5yZXBsYWNlKCcpJywgJycpCisKK291dHB1dF9maWxl
ID0gb3BlbignU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmdwZXJmJywgJ3cnKQorCitvdXRwdXRfZmls
ZS53cml0ZSgiIiIKKyV7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2Fs
bHkgZ2VuZXJhdGVkIGZyb20gU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmluIGJ5IG1ha2Vwcm9wLCBk
byBub3QgZWRpdCBieSBoYW5kLgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Vs
ZWN0b3JQc2V1ZG9UeXBlTWFwLmgiCisKKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykKKyNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVd1bmtub3duLXByYWdtYXMiCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLXJlZ2lzdGVyIgorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
aW1wbGljaXQtZmFsbHRocm91Z2giCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dHJ1Y3QgU2VsZWN0b3JQc2V1ZG9UeXBlRW50cnkgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7Cisg
ICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgdHlwZTsKK307CisKKyV9Cislc3RydWN0LXR5cGUK
KyVkZWZpbmUgaW5pdGlhbGl6ZXItc3VmZml4ICxDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bgor
JWRlZmluZSBjbGFzcy1uYW1lIFNlbGVjdG9yUHNldWRvVHlwZU1hcEhhc2gKKyVvbWl0LXN0cnVj
dC10eXBlCislbGFuZ3VhZ2U9QysrCislcmVhZG9ubHktdGFibGVzCislZ2xvYmFsLXRhYmxlCisl
aWdub3JlLWNhc2UKKyVjb21wYXJlLXN0cm5jbXAKKyVlbnVtCisKK3N0cnVjdCBTZWxlY3RvclBz
ZXVkb1R5cGVFbnRyeTsKKworJSUKKyIiIikKKword2ViY29yZV9kZWZpbmVzID0gW2kuc3RyaXAo
KSBmb3IgaSBpbiBzeXMuYXJndlstMV0uc3BsaXQoJyAnKV0KKworbG9uZ2VzdF9rZXl3b3JkID0g
MAorCitpZ25vcmVfdW50aWxfZW5kaWYgPSBGYWxzZQoraW5wdXRfZmlsZSA9IG9wZW4oc3lzLmFy
Z3ZbMV0sICdyJykKK2ZvciBsaW5lIGluIGlucHV0X2ZpbGU6CisgICAga2V5d29yZCA9IGxpbmUu
c3RyaXAoKQorICAgIGlmIG5vdCBrZXl3b3JkOgorICAgICAgICBjb250aW51ZQorCisgICAgaWYg
a2V5d29yZC5zdGFydHN3aXRoKCcjaWYgJyk6CisgICAgICAgIGNvbmRpdGlvbiA9IGtleXdvcmRb
NDpdLnN0cmlwKCkKKyAgICAgICAgaWYgZXhwYW5kX2lmZGVmX2NvbmRpdGlvbihjb25kaXRpb24p
IG5vdCBpbiB3ZWJjb3JlX2RlZmluZXM6CisgICAgICAgICAgICBpZ25vcmVfdW50aWxfZW5kaWYg
PSBUcnVlCisgICAgICAgIGNvbnRpbnVlCisKKyAgICBpZiBrZXl3b3JkLnN0YXJ0c3dpdGgoJyNl
bmRpZicpOgorICAgICAgICBpZ25vcmVfdW50aWxfZW5kaWYgPSBGYWxzZQorICAgICAgICBjb250
aW51ZQorCisgICAgaWYgaWdub3JlX3VudGlsX2VuZGlmOgorICAgICAgICBjb250aW51ZQorCisg
ICAgb3V0cHV0X2ZpbGUud3JpdGUoJyIlcyIsICVzXG4nICUgKGtleXdvcmQsIGVudW1lcmFibGVQ
c2V1ZG9UeXBlKGtleXdvcmQpKSkKKyAgICBsb25nZXN0X2tleXdvcmQgPSBtYXgobG9uZ2VzdF9r
ZXl3b3JkLCBsZW4oa2V5d29yZCkpCisKK291dHB1dF9maWxlLndyaXRlKCIiIiUlCisKK3N0YXRp
YyBpbmxpbmUgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcGFyc2VQc2V1ZG9UeXBlU3RyaW5nKGNv
bnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgaWYgKGNvbnN0
IFNlbGVjdG9yUHNldWRvVHlwZUVudHJ5KiBlbnRyeSA9IFNlbGVjdG9yUHNldWRvVHlwZU1hcEhh
c2g6OmluX3dvcmRfc2V0KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGNoYXJhY3RlcnMp
LCBsZW5ndGgpKQorICAgICAgICByZXR1cm4gZW50cnktPnR5cGU7CisgICAgcmV0dXJuIENTU1Nl
bGVjdG9yOjpQc2V1ZG9Vbmtub3duOworfSIiIikKKworb3V0cHV0X2ZpbGUud3JpdGUoIiIiCisK
K3N0YXRpYyBpbmxpbmUgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcGFyc2VQc2V1ZG9UeXBlU3Ry
aW5nKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgY29u
c3QgdW5zaWduZWQgbWF4S2V5d29yZExlbmd0aCA9ICVzOworICAgIExDaGFyIGJ1ZmZlclttYXhL
ZXl3b3JkTGVuZ3RoXTsKKyAgICBpZiAobGVuZ3RoID4gbWF4S2V5d29yZExlbmd0aCkKKyAgICAg
ICAgcmV0dXJuIENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duOworCisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIFVDaGFyIGNoYXJhY3RlciA9IGNo
YXJhY3RlcnNbaV07CisgICAgICAgIGlmIChjaGFyYWN0ZXIgJiB+MHhmZikKKyAgICAgICAgICAg
IHJldHVybiBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bjsKKworICAgICAgICBidWZmZXJbaV0g
PSBzdGF0aWNfY2FzdDxMQ2hhcj4oY2hhcmFjdGVyKTsKKyAgICB9CisgICAgcmV0dXJuIHBhcnNl
UHNldWRvVHlwZVN0cmluZyhidWZmZXIsIGxlbmd0aCk7Cit9CisiIiIgJSBsb25nZXN0X2tleXdv
cmQpCisKK291dHB1dF9maWxlLndyaXRlKCIiIgorQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcGFy
c2VQc2V1ZG9UeXBlU3RyaW5nKGNvbnN0IFN0cmluZ0ltcGwmIHBzZXVkb1R5cGVTdHJpbmcpCit7
CisgICAgaWYgKHBzZXVkb1R5cGVTdHJpbmcuaXM4Qml0KCkpCisgICAgICAgIHJldHVybiBwYXJz
ZVBzZXVkb1R5cGVTdHJpbmcocHNldWRvVHlwZVN0cmluZy5jaGFyYWN0ZXJzOCgpLCBwc2V1ZG9U
eXBlU3RyaW5nLmxlbmd0aCgpKTsKKyAgICByZXR1cm4gcGFyc2VQc2V1ZG9UeXBlU3RyaW5nKHBz
ZXVkb1R5cGVTdHJpbmcuY2hhcmFjdGVyczE2KCksIHBzZXVkb1R5cGVTdHJpbmcubGVuZ3RoKCkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykK
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgorCisiIiIpCitvdXRwdXRfZmls
ZS5jbG9zZSgpCisKK2dwZXJmX2NvbW1hbmQgPSAnZ3BlcmYnCitpZiAnR1BFUkYnIGluIG9zLmVu
dmlyb246CisgICAgZ3BlcmZfY29tbWFuZCA9IG9zLmVudmlyb25bJ0dQRVJGJ10KKworZ3BlcmZf
cmV0dXJuID0gb3Muc3lzdGVtKCIlcyAtLWtleS1wb3NpdGlvbnM9JyonIC1tIDEwIC1zIDIgU2Vs
ZWN0b3JQc2V1ZG9UeXBlTWFwLmdwZXJmIC0tb3V0cHV0LWZpbGU9U2VsZWN0b3JQc2V1ZG9UeXBl
TWFwLmNwcCIgJSBncGVyZl9jb21tYW5kKQoraWYgZ3BlcmZfcmV0dXJuICE9IDA6CisgICAgcHJp
bnQoIkVycm9yIHdoZW4gZ2VuZXJhdGluZyBTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwIGZyb20g
U2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmdwZXJmIDooIikKKyAgICBzeXMuZXhpdChncGVyZl9yZXR1
cm4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXggZGZi
M2NmMzA3NDY1NTQzMzJkODMwMzBjZTdkY2VkOWQxZWE2MGNjNS4uZGRkNjQ1ZGQwZTI1ZjRiNTAy
ZjdhNzY5OGUxMTU5OTRlM2M2MzgyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0
L1NlbGVjdG9yQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3Rv
ckNvbXBpbGVyLmNwcApAQCAtMjg3LDEwICsyODcsMTAgQEAgc3RhdGljIGlubGluZSBGdW5jdGlv
blR5cGUgYWRkUHNldWRvVHlwZShDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSB0eXBlLCBTZWxlY3Rv
ckYKICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOwog
I2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0Z1dHVyZUN1ZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdXR1cmU6CiAgICAg
ICAgIHBzZXVkb0NsYXNzZXMudW5vcHRpbWl6ZWRQc2V1ZG9DbGFzc2VzLmFwcGVuZChKU0M6OkZ1
bmN0aW9uUHRyKG1hdGNoZXNGdXR1cmVDdWVQc2V1ZG9DbGFzcykpOwogICAgICAgICByZXR1cm4g
RnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7Ci0gICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvUGFzdEN1ZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9QYXN0OgogICAg
ICAgICBwc2V1ZG9DbGFzc2VzLnVub3B0aW1pemVkUHNldWRvQ2xhc3Nlcy5hcHBlbmQoSlNDOjpG
dW5jdGlvblB0cihtYXRjaGVzUGFzdEN1ZVBzZXVkb0NsYXNzKSk7CiAgICAgICAgIHJldHVybiBG
dW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcjsKICNlbmRpZgo=
</data>
<flag name="review"
          id="250505"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>