<?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>157454</bug_id>
          
          <creation_ts>2016-05-07 15:02:53 -0700</creation_ts>
          <short_desc>Reduce special handling of XPathNSResolver type in the bindings</short_desc>
          <delta_ts>2016-05-07 21:38:36 -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>Bindings</component>
          <version>WebKit 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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>darin</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1190984</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-07 15:02:53 -0700</bug_when>
    <thetext>Reduce special handling of XPathNSResolver type in the bindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191001</commentid>
    <comment_count>1</comment_count>
      <attachid>278349</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-07 20:28:09 -0700</bug_when>
    <thetext>Created attachment 278349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191003</commentid>
    <comment_count>2</comment_count>
      <attachid>278349</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-05-07 21:34:43 -0700</bug_when>
    <thetext>Comment on attachment 278349
Patch

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

&gt; Source/WebCore/xml/XPathParser.h:75
&gt; +            RefPtr&lt;XPathNSResolver&gt; m_resolver;

Is this safe? No reference cycles or anything?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191004</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-07 21:37:09 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 278349 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=278349&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/xml/XPathParser.h:75
&gt; &gt; +            RefPtr&lt;XPathNSResolver&gt; m_resolver;
&gt; 
&gt; Is this safe? No reference cycles or anything?

Yes, looks safe to me. XPath::Parser is only used as a local variable in Parser::parseStatement(). XPathNSResolver holds no reference to the Parser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191005</commentid>
    <comment_count>4</comment_count>
      <attachid>278349</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-07 21:38:30 -0700</bug_when>
    <thetext>Comment on attachment 278349
Patch

Clearing flags on attachment: 278349

Committed r200550: &lt;http://trac.webkit.org/changeset/200550&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191006</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-07 21:38:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278349</attachid>
            <date>2016-05-07 20:28:09 -0700</date>
            <delta_ts>2016-05-07 21:38:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157454-20160507202853.patch</filename>
            <type>text/plain</type>
            <size>54841</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwNTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdmMTNhMDRkNjczYzg4
YjA2OGFhZTA1OWE1ZjZmZTc0YTUyODFkMC4uOGUxNDliZTEwZmUxYTJiMmY3MzI4NDRhZDBiZWU0
ODllZDA4Yjk0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNi0wNS0wNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlZHVjZSBzcGVjaWFsIGhh
bmRsaW5nIG9mIFhQYXRoTlNSZXNvbHZlciB0eXBlIGluIHRoZSBiaW5kaW5ncworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3NDU0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVkdWNlIHNwZWNpYWwgaGFu
ZGxpbmcgb2YgWFBhdGhOU1Jlc29sdmVyIHR5cGUgaW4gdGhlIGJpbmRpbmdzLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6Cisg
ICAgICAgIEFkZCBuZXcgSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwIGZpbGUuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01TdHJpbmdMaXN0Ojp0b1dyYXBwZWQpOgorICAgICAgICBUYWtlIHRoZSBFeGVj
U3RhdGUgYnkgcmVmZXJlbmNlIGluc3RlYWQgb2YgcG9pbnRlci4KKworICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93Ojp0b1dyYXBwZWQpOgorICAgICAgICBVcGRhdGUgdG8gdGFrZSBhbiBFeGVjU3RhdGUmIHBh
cmFtZXRlci4gVGhlIGJpbmRpbmdzIG5vdyBwYXNzCisgICAgICAgIGFuIEV4ZWNTdGF0ZSB0byBh
bGwgY3VzdG9tIHRvV3JhcHBlZCgpIG1ldGhvZHMgZm9yIGNvbnNpc3RlbmN5CisgICAgICAgIGFu
ZCBmbGV4aWJpbGl0eS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZSk6CisgICAgICAg
IFBhc3MgYW4gRXhlY1N0YXRlIG5vdyB0aGF0IHRob3NlIHRvV3JhcHBlZCgpIG1ldGhvZHMgZXhw
ZWN0CisgICAgICAgIGl0LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0V2ZW50VGFyZ2V0Ojp0b1dyYXBwZWQpOgor
ICAgICAgICBVcGRhdGUgdG8gdGFrZSBhbiBFeGVjU3RhdGUmIHBhcmFtZXRlci4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTSURCRGF0YWJhc2VDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24pOgorICAgICAgICBQYXNzIEV4ZWNTdGF0ZSBi
eSByZWZlcmVuY2UgaW5zdGVhZCBvZiBwb2ludGVyLgorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFuZGxlSW5pdE1l
c3NhZ2VFdmVudCk6CisgICAgICAgIFBhc3MgRXhlY1N0YXRlIHRvIEpTRE9NV2luZG93Ojp0b1dy
YXBwZWQoKS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9t
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU1hQYXRoTlNSZXNvbHZlcjo6dG9XcmFw
cGVkKToKKyAgICAgICAgUHJvdmlkZSBhIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBvZiBKU1hQYXRo
TlNSZXNvbHZlcjo6dG9XcmFwcGVkKCkKKyAgICAgICAgaW5zdGVhZCBvZiBoYXZpbmcgdGhlIGN1
c3RvbSBjb2RlIGluIHRoZSBiaW5kaW5ncyBnZW5lcmF0b3IuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEFkZEluY2x1ZGVzRm9yVHlw
ZSk6CisgICAgICAgIERyb3Agc3BlY2lhbCBpbmNsdWRlcyBmb3IgWFBhdGhOU1Jlc29sdmVyIGFz
IHRoZXkgYXJlIG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToK
KyAgICAgICAgRHJvcCBzcGVjaWFsIGNhc2luZyBvZiBjZXJ0YWluIHR5cGVzIGZvciBnZW5lcmF0
aW5nIHRoZSB0b1dyYXBwZWQoKQorICAgICAgICBkZWNsYXJhdGlvbiBieToKKyAgICAgICAgMS4g
UmVseWluZyBvbiBHZXROYXRpdmVUeXBlKCkgZm9yIHRoZSByZXR1cm4gdmFsdWUgYXMgY2VydGFp
biB0eXBlcworICAgICAgICAgICByZXR1cm4gYSBSZWZQdHIgaW5zdGVhZCBvZiBhIHJhdyBwb2lu
dGVyLgorICAgICAgICAyLiBBZGRpbmcgYW4gZXh0cmEgRXhlY1N0YXRlIHBhcmFtZXRlciB3aGVu
IGEgY3VzdG9tIGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgICAgIHRvV3JhcHBlZCgpIGlzIHBy
b3ZpZGVkLCBnaXZlbiB0aGF0IHNvbWUgb2YgdGhlbSBuZWVkIGl0LgorCisgICAgICAgIChHZW5l
cmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAgIERyb3AgY3VzdG9tIGNvZGUgZm9yIFhQYXRo
TlNSZXNvbHZlciBhbmQgdXNlIHRoZSBub3JtYWwgY29kZSBwYXRoIGZvcgorICAgICAgICB0aGlz
IHR5cGUgbm93LiBUaGUgY3VzdG9tIGNvZGUgbm93IHJlc2lkZXMgaW4gdGhlIGN1c3RvbSBpbXBs
ZW1lbnRhdGlvbgorICAgICAgICBvZiBKU1hQYXRoTlNSZXNvbHZlcjo6dG9XcmFwcGVkKCksIGlu
IGN1c3RvbSBiaW5kaW5ncy4KKworICAgICAgICAoSlNWYWx1ZVRvTmF0aXZlKToKKyAgICAgICAg
LSBEcm9wIE5vZGVGaWx0ZXIgZnJvbSB0aGUgbmF0aXZlVHlwZSBoYXNoIG1hcCBhcyBpdCB3YXMg
dXBkYXRlZCB0bworICAgICAgICAgIGJlIGEgY2FsbGJhY2sgaW50ZXJmYWNlIGEgd2hpbGUgYmFj
ay4KKyAgICAgICAgLSBBZGQgWFBhdGhOU1Jlc29sdmVyIHRvIG5hdGl2ZVR5cGUgaGFzaCBtYXAg
c28gdGhhdCB3ZSBub3cgdG8gdXNlCisgICAgICAgICAgYSBSZWZQdHI8PiBpbnN0ZWFkIG9mIGEg
cmF3IHBvaW50ZXIgaW4gdGhlIGJpbmRpbmdzLiBXZSBzaG91bGQKKyAgICAgICAgICBwcm9iYWJs
eSBhZGQgYW4gSURMIGV4dGVuZGVkIGF0dHJpYnV0ZSBmb3IgdGhpcyBhdCBzb21lIHBvaW50Lgor
ICAgICAgICAtIERyb3Agc3BlY2lhbCBjYXNpbmcgZm9yIERPTVN0cmluZ0xpc3Qgd2hpY2ggd2Fz
IG91dGRhdGVkIHNpbmNlIHRoZXJlCisgICAgICAgICAgaXMgbm8gdG9ET01TdHJpbmdMaXN0KCkg
ZnVuY3Rpb24uIERPTVN0cmluZ0xpc3QgaGFzIGEgY3VzdG9tCisgICAgICAgICAgdG9XcmFwcGVk
KCkgZnVuY3Rpb24gaW5zdGVhZCBub3dhZGF5cyBzbyB3ZSBub3cgY2FsbCB0aGlzIG9uZQorICAg
ICAgICAgIGluc3RlYWQuIFdlIGFwcGFyZW50bHkgZG8gbm90IGhhdmUgYW55IERPTVN0cmluZ0xp
c3QgcGFyYW1ldGVycworICAgICAgICAgIG91dHNpZGUgb3VyIGJpbmRpbmdzIHRlc3RzIGF0IHRo
ZSBtb21lbnQsIHdoaWNoIGlzIHdoeSBubyBvbmUKKyAgICAgICAgICBub3RpY2VkLgorICAgICAg
ICAtIFBhc3MgYW4gRXhlY1N0YXRlIHRvIHRvV3JhcHBlZCgpIGlmIHRoZSBpbnRlcmZhY2UgaGFz
IHRoZQorICAgICAgICAgIEpTQ3VzdG9tVG9OYXRpdmVPYmplY3QgSURMIGV4dGVuZGVkIGF0dHJp
YnV0ZS4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5t
bToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAg
IEFkZCBiaW5kaW5ncyB0ZXN0IGNvdmVyYWdlIGZvciBoYXZpbmcgYW4gb3BlcmF0aW9uIHdpdGgg
YW4KKyAgICAgICAgWFBhdGhOU1Jlc29sdmVyIHBhcmFtZXRlci4KKworICAgICAgICAqIGRvbS9E
b2N1bWVudC5pZGw6CisgICAgICAgICogeG1sL1hQYXRoRXZhbHVhdG9yLmlkbDoKKyAgICAgICAg
RHJvcCBzb21lIHVubmVjZXNzYXJ5IGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlcy4KKworICAgICAg
ICAqIHhtbC9YUGF0aE5TUmVzb2x2ZXIuaWRsOgorICAgICAgICBBZGQgSlNDdXN0b21Ub05hdGl2
ZU9iamVjdCBJREwgZXh0ZW5kZWQgYXR0cmlidXRlIHNvIHRoYXQgd2UgY2FuCisgICAgICAgIHBy
b3ZpZGUgb3VyIG93biBjdXN0b20gaW1wbGVtZW50YXRpb24gb2YgSlNYUGF0aE5TUmVzb2x2ZXI6
OnRvV3JhcHBlZCgpLAorICAgICAgICBpbnN0ZWFkIG9mIGhhdmluZyB0aGUgY3VzdG9tIGNvZGUg
aW4gdGhlIGJpbmRpbmdzIGdlbmVyYXRvci4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRXhwcmVzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6ZXZhbHVhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JOb2RlRmluZGVyLmNwcDoKKyAgICAgICAg
KiB4bWwvWFBhdGhFdmFsdWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGhFdmFsdWF0
b3I6OmNyZWF0ZUV4cHJlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGhFdmFsdWF0b3I6
OmV2YWx1YXRlKToKKyAgICAgICAgKiB4bWwvWFBhdGhFdmFsdWF0b3IuaDoKKyAgICAgICAgKiB4
bWwvWFBhdGhFeHByZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoRXhwcmVzc2lv
bjo6Y3JlYXRlRXhwcmVzc2lvbik6CisgICAgICAgICogeG1sL1hQYXRoRXhwcmVzc2lvbi5oOgor
ICAgICAgICAqIHhtbC9YUGF0aFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6
UGFyc2VyOjpQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OlBhcnNlcjo6cGFyc2VT
dGF0ZW1lbnQpOgorICAgICAgICAqIHhtbC9YUGF0aFBhcnNlci5oOgorICAgICAgICBUYWtlIFhQ
YXRoTlNSZXNvbHZlciBwYXJhbWV0ZXIgYXMgYSBSZWY8WFBhdGhOU1Jlc29sdmVyPiYmIGFzIHRo
aXMgaXMKKyAgICAgICAgd2hhdCB0aGUgZ2VuZXJhdGVkIGJpbmRpbmdzIG5vdyBwcm92aWRlIHVz
LCBnaXZlbiB0aGF0IHRoaXMgc29tZXRpbWVzCisgICAgICAgIGhhdmUgdG8gY3JlYXRlIGEgd3Jh
cHBlciBhcm91bmQgYSBKU09iamVjdC4KKwogMjAxNi0wNS0wNyAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGNyYXNoIGludHJvZHVjZWQgYnkgdGhlIGxhc3Qg
cGF0Y2guCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDlmMTk1OGI0NGFiZjUyM2I2NWQ2ZmEyNjcz
NGZhOTQyZjY3ZDliMTYuLmYwNWI3MGUxYmU3MGIyYmZhY2I0ZDEwZGY3OGYzNTNjOWZlNWUxNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjI0LDYgKzEyMjQsNyBAQCBzZXQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCiAgICAg
YmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTWFBhdGhOU1Jl
c29sdmVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3Bw
CiAgICAgYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNDRhNTI5Njc4ZGQwNjFjNTVm
MDA2NWRjZWM2MmM0NjVjMzI1OGI3Li5jYWM3MjQ3YmQ3OTM3Y2NhYjEyZWMyNGVjOTk0MmZhZTRk
Y2E5MjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yODczLDYgKzI4NzMsNyBAQAogCQk4MzY3NTg3RjFDNTZFOTlCMDA4QTEw
ODcgLyogSlNIVE1MRGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzNEI4NkE4MUM1NkU5M0UwMEYzRjBFMyAvKiBKU0hUTUxEYXRhRWxl
bWVudC5oICovOyB9OwogCQk4MzZCQUQyMTFCRDFDQTY3MDAzNzM1NkEgLyogSFRNTFRhYmxlSGVh
ZGVyQ2VsbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzNkJBRDFGMUJEMUNBNjcwMDM3MzU2QSAvKiBIVE1MVGFibGVIZWFkZXJDZWxsRWxl
bWVudC5oICovOyB9OwogCQk4MzZCQUQyMjFCRDFDQTY3MDAzNzM1NkEgLyogSFRNTFRhYmxlRGF0
YUNlbGxFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzZCQUQyMDFCRDFDQTY3MDAzNzM1NkEgLyogSFRNTFRhYmxlRGF0YUNlbGxFbGVtZW50
LmggKi87IH07CisJCTgzNkMxNDQzMUNERUFGRDgwMDczNDkzRiAvKiBKU1hQYXRoTlNSZXNvbHZl
ckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MzZDMTQ0MjFDREVBRkNBMDA3MzQ5M0YgLyogSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3Bw
ICovOyB9OwogCQk4MzZDQjFGNjFCRDFFNDE4MDBBRjE1OTEgLyogSlNIVE1MVGFibGVIZWFkZXJD
ZWxsRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM2Q0IxRjIxQkQxRTQxODAwQUYxNTkxIC8qIEpTSFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1l
bnQuaCAqLzsgfTsKIAkJODM2Q0IxRjcxQkQxRTQxODAwQUYxNTkxIC8qIEpTSFRNTFRhYmxlSGVh
ZGVyQ2VsbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM2Q0IxRjMxQkQxRTQxODAwQUYxNTkxIC8qIEpTSFRNTFRhYmxlSGVhZGVyQ2Vs
bEVsZW1lbnQuY3BwICovOyB9OwogCQk4MzZDQjFGODFCRDFFNDE4MDBBRjE1OTEgLyogSlNIVE1M
VGFibGVEYXRhQ2VsbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzNkNCMUY0MUJEMUU0MTgwMEFGMTU5MSAvKiBKU0hUTUxUYWJsZURhdGFD
ZWxsRWxlbWVudC5oICovOyB9OwpAQCAtMTA1NDUsNiArMTA1NDYsNyBAQAogCQk4MzY5RTU4RjFB
RkREMDMwMDA4N0RGNjggLyogTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOb25E
b2N1bWVudFR5cGVDaGlsZE5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzZCQUQxRjFCRDFDQTY3MDAzNzM1NkEgLyogSFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM2QkFEMjAxQkQxQ0E2NzAwMzcz
NTZBIC8qIEhUTUxUYWJsZURhdGFDZWxsRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJODM2QzE0NDIxQ0RFQUZDQTAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29sdmVy
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWFBhdGhO
U1Jlc29sdmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM2Q0Ix
RjIxQkQxRTQxODAwQUYxNTkxIC8qIEpTSFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzZDQjFGMzFCRDFFNDE4MDBBRjE1
OTEgLyogSlNIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxUYWJsZUhlYWRlckNlbGxFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM2Q0IxRjQxQkQxRTQxODAwQUYxNTkxIC8qIEpT
SFRNTFRhYmxlRGF0YUNlbGxFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTSFRNTFRhYmxlRGF0YUNlbGxFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMjM0Miw2ICsyMjM0NCw3IEBACiAJCQkJNDE4QzM5NUQxQzhGMEFBQjAwNTFDOEEz
IC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwICovLAogCQkJCUUxQzM2RDMyMEVC
MEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgKi8sCiAJCQkJRTFD
MzZEMzMwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmggKi8sCisJ
CQkJODM2QzE0NDIxQ0RFQUZDQTAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNw
cCAqLywKIAkJCQk0MThDMzk1RTFDOEYwQUFCMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyLmNwcCAqLywKIAkJCQk0MThDMzk1RjFDOEYwQUFCMDA1MUM4QTMgLyogUmVhZGFibGVT
dHJlYW1Db250cm9sbGVyLmggKi8sCiAJCQkJQkNBMzc4QkEwRDE1RjY0MjAwQjc5M0Q2IC8qIFNj
aGVkdWxlZEFjdGlvbi5jcHAgKi8sCkBAIC0zMDA5NCw2ICszMDA5Nyw3IEBACiAJCQkJREIyM0My
Q0IwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxNzEzOEVGMUJFRDFEMUEwMDBENUYwMSAvKiBJbmRleEtleS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MUVFQUE3MzFCRUZGQUIxMDAyMTgwMDggLyogSW5kZXhWYWx1ZUVudHJ5
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgzNkMxNDQzMUNERUFGRDgwMDczNDkzRiAvKiBKU1hQ
YXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTcxMzhGNzFCRjEy
OEJCMDAwRDVGMDEgLyogSW5kZXhWYWx1ZVN0b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
Q0ZGNUU2MEExNTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVCb3guY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjU3Q0I1MkQxODJBM0VFRDAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRp
bmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0Fs
bEluT25lLmNwcAppbmRleCA4YTlmMzZjODhiZjNhOWI4NzJkYzc2YmU5YjRmZDcxZTZlNDJhZmMy
Li4zMGI2ZmMwZGQxNDc0ZWFhOGU5OTA2Y2YyOTQwYzgzNjJjYmRjODM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTEzOCw2
ICsxMzgsNyBAQAogI2luY2x1ZGUgIkpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcCIKICNpbmNs
dWRlICJKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1hNTEh0dHBS
ZXF1ZXN0Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYU0xUUHJv
Y2Vzc29yQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJTY2hlZHVsZWRBY3Rpb24uY3BwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAK
aW5kZXggNWJkMzNjYjJlNTAzODNjYjczZWZhN2IyMWVlNWM2MWI3YjZlYWExYy4uMDE4MWRlN2Vl
NzgzMmEwN2YwOGZlOThkMTFiNTI3NTc1MTk4ZGNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwCkBAIC0yNiw3ICsyNiw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmUHRy
PERPTVN0cmluZ0xpc3Q+IEpTRE9NU3RyaW5nTGlzdDo6dG9XcmFwcGVkKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSB2YWx1ZSkKK1JlZlB0cjxET01TdHJpbmdMaXN0PiBKU0RPTVN0cmluZ0xpc3Q6
OnRvV3JhcHBlZChFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2
YWx1ZS5pbmhlcml0cyhKU0RPTVN0cmluZ0xpc3Q6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiAm
anNDYXN0PEpTRE9NU3RyaW5nTGlzdCo+KGFzT2JqZWN0KHZhbHVlKSktPndyYXBwZWQoKTsKQEAg
LTM3LDcgKzM3LDcgQEAgUmVmUHRyPERPTVN0cmluZ0xpc3Q+IEpTRE9NU3RyaW5nTGlzdDo6dG9X
cmFwcGVkKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKICAgICBKU0FycmF5KiBhcnJh
eSA9IGFzQXJyYXkodmFsdWUpOwogICAgIFJlZlB0cjxET01TdHJpbmdMaXN0PiBzdHJpbmdMaXN0
ID0gRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGFycmF5LT5sZW5ndGgoKTsgKytpKQotICAgICAgICBzdHJpbmdMaXN0LT5hcHBlbmQoYXJyYXkt
PmdldEluZGV4KGV4ZWMsIGkpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CisgICAgICAg
IHN0cmluZ0xpc3QtPmFwcGVuZChhcnJheS0+Z2V0SW5kZXgoJnN0YXRlLCBpKS50b1N0cmluZygm
c3RhdGUpLT52YWx1ZSgmc3RhdGUpKTsKIAogICAgIHJldHVybiBzdHJpbmdMaXN0OwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4
IDNiMjZkZmRkMWJmZTcyODk4MGQzYWU4MTU3MDMyOTQxZmNhNjRkYjAuLmY3ZWEwMTdhNjg0Zjdm
MTVkOWU5ZTFmM2Y1ZDlkN2M0NzI3NGQwZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTYxMiwxNiArNjEyLDE2IEBAIEpTVmFs
dWUgSlNET01XaW5kb3c6OnNldEludGVydmFsKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgcmV0dXJu
IGpzTnVtYmVyKHJlc3VsdCk7CiB9CiAKLURPTVdpbmRvdyogSlNET01XaW5kb3c6OnRvV3JhcHBl
ZChKU1ZhbHVlIHZhbHVlKQorRE9NV2luZG93KiBKU0RPTVdpbmRvdzo6dG9XcmFwcGVkKEV4ZWNT
dGF0ZSYsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgSlNPYmplY3QqIG9i
amVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKICAgICBpZiAob2JqZWN0LT5pbmhlcml0cyhKU0RPTVdp
bmRvdzo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuICZqc0Nhc3Q8SlNET01XaW5kb3cqPihvYmpl
Y3QpLT53cmFwcGVkKCk7CiAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHMoSlNET01XaW5kb3dTaGVs
bDo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuICZqc0Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KG9i
amVjdCktPndyYXBwZWQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RGljdGlvbmFyeS5jcHAKaW5kZXggNTFlMDQ1YzEyYTBhMjA0ZWExYjBmZDAzOTZhY2FlNzIxYjJm
MzA0Ni4uZjI3YjBjNjAxNDRiNGMwZDdiNjU3NDczYzY2MmQzMzI0YWVmNjE5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCkBAIC0xNzMsMTQgKzE3Mywx
NCBAQCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSB2YWx1ZSwgUmVmUHRyPFNlcmlhbGl6ZQogICAgIHJlc3VsdCA9IFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTo6Y3JlYXRlKGV4ZWMsIHZhbHVlLCAwLCAwKTsKIH0KIAotdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8RE9NV2lu
ZG93PiYgcmVzdWx0KQordm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUq
IHN0YXRlLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8RE9NV2luZG93PiYgcmVzdWx0KQogewotICAg
IHJlc3VsdCA9IEpTRE9NV2luZG93Ojp0b1dyYXBwZWQodmFsdWUpOworICAgIHJlc3VsdCA9IEpT
RE9NV2luZG93Ojp0b1dyYXBwZWQoKnN0YXRlLCB2YWx1ZSk7CiB9CiAKLXZvaWQgSlNEaWN0aW9u
YXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPEV2ZW50
VGFyZ2V0PiYgcmVzdWx0KQordm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3Rh
dGUqIHN0YXRlLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8RXZlbnRUYXJnZXQ+JiByZXN1bHQpCiB7
Ci0gICAgcmVzdWx0ID0gSlNFdmVudFRhcmdldDo6dG9XcmFwcGVkKHZhbHVlKTsKKyAgICByZXN1
bHQgPSBKU0V2ZW50VGFyZ2V0Ojp0b1dyYXBwZWQoKnN0YXRlLCB2YWx1ZSk7CiB9CiAKIHZvaWQg
SlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwgUmVm
UHRyPE5vZGU+JiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RXZlbnRUYXJnZXRDdXN0b20uY3BwCmluZGV4IGU1NzQ5OWE5MDRkZTU2NjhhMjBiYjA0YmMwZmU0
Y2EyYmQ1MjIzYzAuLjQyMjk2NzdkZGUzMDI3NzJjMjcxOGExNmZlMzNmMTY4ZDdkNWMyMDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20u
Y3BwCkBAIC02Myw3ICs2Myw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV2ZW50VGFyZ2V0KiB0YXJnCiAgICAgaWYgKHZh
bHVlLmluaGVyaXRzKEpTIyNpbnRlcmZhY2VOYW1lOjppbmZvKCkpKSAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgICAgIHJldHVybiAmanNDYXN0PEpTIyNpbnRlcmZhY2VOYW1lKj4oYXNPYmpl
Y3QodmFsdWUpKS0+d3JhcHBlZCgpOwogCi1FdmVudFRhcmdldCogSlNFdmVudFRhcmdldDo6dG9X
cmFwcGVkKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK0V2ZW50VGFyZ2V0KiBKU0V2ZW50VGFyZ2V0Ojp0
b1dyYXBwZWQoRXhlY1N0YXRlJiwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBUUllfVE9fVU5XUkFQ
X1dJVEhfSU5URVJGQUNFKERPTVdpbmRvd1NoZWxsKQogICAgIFRSWV9UT19VTldSQVBfV0lUSF9J
TlRFUkZBQ0UoRE9NV2luZG93KQpAQCAtNzQsOSArNzQsOSBAQCBFdmVudFRhcmdldCogSlNFdmVu
dFRhcmdldDo6dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIAogI3VuZGVmIFRSWV9UT19V
TldSQVBfV0lUSF9JTlRFUkZBQ0UKIAotc3RkOjp1bmlxdWVfcHRyPEpTRXZlbnRUYXJnZXRXcmFw
cGVyPiBqc0V2ZW50VGFyZ2V0Q2FzdChKU0M6OkpTVmFsdWUgdGhpc1ZhbHVlKQorc3RkOjp1bmlx
dWVfcHRyPEpTRXZlbnRUYXJnZXRXcmFwcGVyPiBqc0V2ZW50VGFyZ2V0Q2FzdChKU1ZhbHVlIHRo
aXNWYWx1ZSkKIHsKLSAgICBpZiAoYXV0byogdGFyZ2V0ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpT
RXZlbnRUYXJnZXQqPih0aGlzVmFsdWUpKQorICAgIGlmIChhdXRvKiB0YXJnZXQgPSBqc0R5bmFt
aWNDYXN0PEpTRXZlbnRUYXJnZXQqPih0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxKU0V2ZW50VGFyZ2V0V3JhcHBlcj4odGFyZ2V0LT53cmFwcGVkKCksICp0YXJn
ZXQpOwogICAgIGlmIChhdXRvKiB3aW5kb3cgPSB0b0pTRE9NV2luZG93KHRoaXNWYWx1ZSkpCiAg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEpTRXZlbnRUYXJnZXRXcmFwcGVyPih3aW5k
b3ctPndyYXBwZWQoKSwgKndpbmRvdyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0lEQkRhdGFiYXNlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSURCRGF0YWJhc2VDdXN0b20uY3BwCmluZGV4IDRhZGVmZTA0NDhmN2NhNjIxNzM0NGJh
ZmMzNThhZTUwZjQyZjA1MzQuLjE5ZmYwZWRmZjVlMTZiMzMxMDBmYTY5YTVkNWU2YzM5NjA3Y2Fh
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCRGF0YWJhc2VD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCRGF0YWJhc2VD
dXN0b20uY3BwCkBAIC05NCw3ICs5NCw3IEBAIEpTVmFsdWUgSlNJREJEYXRhYmFzZTo6dHJhbnNh
Y3Rpb24oRXhlY1N0YXRlJiBleGVjKQogCiAgICAgVmVjdG9yPFN0cmluZz4gc2NvcGU7CiAgICAg
SlNWYWx1ZSBzY29wZUFyZyhleGVjLmFyZ3VtZW50KDApKTsKLSAgICBhdXRvIGRvbVN0cmluZ0xp
c3QgPSBKU0RPTVN0cmluZ0xpc3Q6OnRvV3JhcHBlZCgmZXhlYywgc2NvcGVBcmcpOworICAgIGF1
dG8gZG9tU3RyaW5nTGlzdCA9IEpTRE9NU3RyaW5nTGlzdDo6dG9XcmFwcGVkKGV4ZWMsIHNjb3Bl
QXJnKTsKICAgICBpZiAoZXhlYy5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2Fn
ZUV2ZW50Q3VzdG9tLmNwcAppbmRleCA0ZjMyYTFlODk2M2I5MjE2MGFkMTdmMTUyOGQ1MWQ1ZjJk
MTk2MWJiLi5mOGMxZDgwOWQzZDg1OWM0YmEyNWZhNDZhNWY2ZTNlMWMxOTYwMmYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3Bw
CkBAIC0xMDksNyArMTA5LDcgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBoYW5kbGVJbml0TWVzc2Fn
ZUV2ZW50KEpTTWVzc2FnZUV2ZW50KiBqc0V2ZW50LCBKU0M6OkV4ZWNTdGEKICAgICBib29sIGNh
bmNlbGFibGVBcmcgPSBzdGF0ZS5hcmd1bWVudCgyKS50b0Jvb2xlYW4oJnN0YXRlKTsKICAgICBj
b25zdCBTdHJpbmcgb3JpZ2luQXJnID0gc3RhdGUuYXJndW1lbnQoNCkudG9TdHJpbmcoJnN0YXRl
KS0+dmFsdWUoJnN0YXRlKTsKICAgICBjb25zdCBTdHJpbmcgbGFzdEV2ZW50SWRBcmcgPSBzdGF0
ZS5hcmd1bWVudCg1KS50b1N0cmluZygmc3RhdGUpLT52YWx1ZSgmc3RhdGUpOwotICAgIERPTVdp
bmRvdyogc291cmNlQXJnID0gSlNET01XaW5kb3c6OnRvV3JhcHBlZChzdGF0ZS5hcmd1bWVudCg2
KSk7CisgICAgRE9NV2luZG93KiBzb3VyY2VBcmcgPSBKU0RPTVdpbmRvdzo6dG9XcmFwcGVkKHN0
YXRlLCBzdGF0ZS5hcmd1bWVudCg2KSk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0
QXJyYXk+IG1lc3NhZ2VQb3J0czsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJBcnJh
eT4gYXJyYXlCdWZmZXJzOwogICAgIGlmICghc3RhdGUuYXJndW1lbnQoNykuaXNVbmRlZmluZWRP
ck51bGwoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0
aE5TUmVzb2x2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0
aE5TUmVzb2x2ZXJDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhZWQxM2FkNTgwNjk2NjU0YTc2OWFk
ZmMwMmUwZTQ0NmUyNTk0NmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1hQYXRoTlNSZXNvbHZl
ci5oIgorCisjaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKKwordXNpbmcgbmFt
ZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQdHI8WFBhdGhOU1Jlc29s
dmVyPiBKU1hQYXRoTlNSZXNvbHZlcjo6dG9XcmFwcGVkKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFs
dWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTWFBhdGhOU1Jlc29sdmVyOjpp
bmZvKCkpKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxKU1hQYXRoTlNSZXNvbHZlcio+KGFzT2Jq
ZWN0KHZhbHVlKSktPndyYXBwZWQoKTsKKworICAgIHJldHVybiBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlcjo6Y3JlYXRlKCZzdGF0ZSwgdmFsdWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCmluZGV4IDhkNWEzNjllZTkxMDFkYzBmNzY1MjEzZWYyODM4ODhhMmUwN2U1ODQuLjRhOTRj
OGI0MTQ4NWE1NzRiYWMzODZlMjJiZDEwNzJiYmY3YTg5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0yMjAsMTAgKzIy
MCw3IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKICAgICByZXR1cm4gaWYgJGNvZGVHZW5lcmF0
b3ItPlNraXBJbmNsdWRlSGVhZGVyKCR0eXBlKTsKICAgICAKICAgICAjIFdoZW4gd2UncmUgZmlu
aXNoZWQgd2l0aCB0aGUgb25lLWZpbGUtcGVyLWNsYXNzIHJlb3JnYW5pemF0aW9uLCB3ZSB3b24n
dCBuZWVkIHRoZXNlIHNwZWNpYWwgY2FzZXMuCi0gICAgaWYgKCR0eXBlIGVxICJYUGF0aE5TUmVz
b2x2ZXIiKSB7Ci0gICAgICAgICRpbmNsdWRlc1JlZi0+eyJKU1hQYXRoTlNSZXNvbHZlci5oIn0g
PSAxOwotICAgICAgICAkaW5jbHVkZXNSZWYtPnsiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCJ9
ID0gMTsKLSAgICB9IGVsc2lmICgkaXNDYWxsYmFjayAmJiAkY29kZUdlbmVyYXRvci0+SXNXcmFw
cGVyVHlwZSgkdHlwZSkpIHsKKyAgICBpZiAoJGlzQ2FsbGJhY2sgJiYgJGNvZGVHZW5lcmF0b3It
PklzV3JhcHBlclR5cGUoJHR5cGUpKSB7CiAgICAgICAgICRpbmNsdWRlc1JlZi0+eyJKUyR7dHlw
ZX0uaCJ9ID0gMTsKICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+R2V0QXJyYXlPclNlcXVl
bmNlVHlwZSgkdHlwZSkpIHsKICAgICAgICAgbXkgJGFycmF5VHlwZSA9ICRjb2RlR2VuZXJhdG9y
LT5HZXRBcnJheVR5cGUoJHR5cGUpOwpAQCAtMTExNSwxMiArMTExMiwxMSBAQCBzdWIgR2VuZXJh
dGVIZWFkZXIKIAogICAgICMgSlNWYWx1ZSB0byBpbXBsZW1lbnRhdGlvbiB0eXBlCiAgICAgaWYg
KFNob3VsZEdlbmVyYXRlVG9XcmFwcGVkKCRoYXNQYXJlbnQsICRpbnRlcmZhY2UpKSB7Ci0gICAg
ICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTm9kZUZpbHRlciIpIHsKLSAgICAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIFJlZlB0cjxOb2RlRmlsdGVyPiB0b1dyYXBw
ZWQoSlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSk7XG4iKTsKLSAgICAgICAgfSBlbHNpZiAoJGludGVy
ZmFjZU5hbWUgZXEgIkRPTVN0cmluZ0xpc3QiKSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHN0YXRpYyBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gdG9XcmFwcGVkKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAgICBteSAkbmF0aXZlVHlwZSA9
IEdldE5hdGl2ZVR5cGUoJGludGVyZmFjZSwgJGltcGxUeXBlKTsKKyAgICAgICAgaWYgKCRpbnRl
cmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbVRvTmF0aXZlT2JqZWN0In0pIHsK
KyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljICRuYXRpdmVUeXBl
IHRvV3JhcHBlZChKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSk7XG4iKTsKICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljICRp
bXBsVHlwZSogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljICRuYXRpdmVUeXBlIHRvV3JhcHBlZChKU0M6OkpT
VmFsdWUpO1xuIik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM2MjMsMTYgKzM2MTksNyBAQCBz
dWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAgbXkgJG5hbWUgPSAkcGFyYW1ldGVy
LT5uYW1lOwogICAgICAgICBteSAkdmFsdWUgPSAkbmFtZTsKIAotICAgICAgICBpZiAoJGFyZ1R5
cGUgZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBSZWZQdHI8WFBhdGhOU1Jlc29sdmVyPiBjdXN0b21SZXNvbHZlcjtcbiIpOwotICAg
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFhQYXRoTlNSZXNvbHZlciogcmVzb2x2
ZXIgPSBKU1hQYXRoTlNSZXNvbHZlcjo6dG9XcmFwcGVkKHN0YXRlLT5hcmd1bWVudCgkYXJnc0lu
ZGV4KSk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIXJl
c29sdmVyKSB7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAg
Y3VzdG9tUmVzb2x2ZXIgPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKHN0YXRlLCBz
dGF0ZS0+YXJndW1lbnQoJGFyZ3NJbmRleCkpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKVxu
Iik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgICAgIHJlc29sdmVyID0gY3VzdG9tUmVzb2x2ZXIuZ2V0KCk7XG4i
KTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKLSAgICAgICAg
fSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzQ2FsbGJhY2tJbnRlcmZhY2UoJGFyZ1R5cGUpKSB7
CisgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNDYWxsYmFja0ludGVyZmFjZSgkYXJnVHlw
ZSkpIHsKICAgICAgICAgICAgIG15ICRjYWxsYmFja0NsYXNzTmFtZSA9IEdldENhbGxiYWNrQ2xh
c3NOYW1lKCRhcmdUeXBlKTsKICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiRjYWxsYmFja0Ns
YXNzTmFtZS5oIn0gPSAxOwogICAgICAgICAgICAgaWYgKCRwYXJhbWV0ZXItPmlzT3B0aW9uYWwp
IHsKQEAgLTQyNDIsOCArNDIyOSw4IEBAIG15ICVuYXRpdmVUeXBlID0gKAogICAgICJET01UaW1l
U3RhbXAiID0+ICJET01UaW1lU3RhbXAiLAogICAgICJEYXRlIiA9PiAiZG91YmxlIiwKICAgICAi
RGljdGlvbmFyeSIgPT4gIkRpY3Rpb25hcnkiLAotICAgICJOb2RlRmlsdGVyIiA9PiAiUmVmUHRy
PE5vZGVGaWx0ZXI+IiwKICAgICAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiA9PiAiUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4iLAorICAgICJYUGF0aE5TUmVzb2x2ZXIiID0+ICJSZWZQdHI8
WFBhdGhOU1Jlc29sdmVyPiIsCiAgICAgImFueSIgPT4gIkpTQzo6SlNWYWx1ZSIsCiAgICAgImJv
b2xlYW4iID0+ICJib29sIiwKICAgICAiYnl0ZSIgPT4gImludDhfdCIsCkBAIC00NDMzLDkgKzQ0
MjAsOCBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMk
dHlwZS5oIiwgJGNvbmRpdGlvbmFsKTsKIAotICAgIHJldHVybiAoInRvRE9NU3RyaW5nTGlzdChz
dGF0ZSwgJHZhbHVlKSIsIDEpIGlmICR0eXBlIGVxICJET01TdHJpbmdMaXN0IjsKLSAgICByZXR1
cm4gKCJKU05vZGVGaWx0ZXI6OnRvV3JhcHBlZChzdGF0ZS0+dm0oKSwgJHZhbHVlKSIsIDEpIGlm
ICR0eXBlIGVxICJOb2RlRmlsdGVyIjsKLQorICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSAk
Y29kZUdlbmVyYXRvci0+Z2V0SW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzRnJvbU5hbWUoJHR5
cGUpOworICAgIHJldHVybiAoIkpTJHt0eXBlfTo6dG9XcmFwcGVkKCpzdGF0ZSwgJHZhbHVlKSIs
IDEpIGlmICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21Ub05hdGl2ZU9iamVjdCJ9Owog
ICAgIHJldHVybiAoIkpTJHt0eXBlfTo6dG9XcmFwcGVkKCR2YWx1ZSkiLCAwKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAppbmRleCBkNjA5MWRlYWJlMjg1NjM3MmJjZDY0
ZDkwZGE0ODNmMDIxZWYzNWU1Li44YTU2Y2QxNzIyY2YyOGFkYzZhZTQ5N2U1MGM2MDVjMjllOWRj
MjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcApAQCAtMzgsNiArMzgsNyBA
QAogI2luY2x1ZGUgIldlYktpdERPTVRlc3RFbnVtVHlwZVByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJLaXRET01UZXN0Tm9kZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01UZXN0T2JqUHJp
dmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTVhQYXRoTlNSZXNvbHZlclByaXZhdGUuaCIKICNp
bmNsdWRlICJnb2JqZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvR2V0
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMTM3NCw2ICsxMzc1LDE2IEBAIHZv
aWQgd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9hcmdfdHJlYXRpbmdfbnVsbF9hc19l
bXB0eV9zdHJpbmcoV2ViS2l0RE9NCiAgICAgaXRlbS0+bWV0aG9kV2l0aEFyZ1RyZWF0aW5nTnVs
bEFzRW1wdHlTdHJpbmcoY29udmVydGVkQXJnKTsKIH0KIAordm9pZCB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX21ldGhvZF93aXRoX3hwYXRoX25zX3Jlc29sdmVyX3BhcmFtZXRlcihXZWJLaXRET01UZXN0
T2JqKiBzZWxmLCBXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyKQoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl9pZl9mYWls
KFdFQktJVF9ET01fSVNfVEVTVF9PQkooc2VsZikpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VC
S0lUX0RPTV9JU19YUEFUSF9OU19SRVNPTFZFUihyZXNvbHZlcikpOworICAgIFdlYkNvcmU6OlRl
c3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgUmVmUHRyPFdlYkNvcmU6OlhQ
YXRoTlNSZXNvbHZlcj4gY29udmVydGVkUmVzb2x2ZXIgPSBXZWJLaXQ6OmNvcmUocmVzb2x2ZXIp
OworICAgIGl0ZW0tPm1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIoV1RGOjpnZXRQ
dHIoKmNvbnZlcnRlZFJlc29sdmVyKSk7Cit9CisKIGdjaGFyKiB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X251bGxhYmxlX3N0cmluZ19tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0xODA0LDYgKzE4MTUsMTYg
QEAgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX29wdGlvbmFsX251bGxhYmxl
X3dyYXBwZXJfaXNfbnVsbChXZWJLaXRET00KICAgICBpdGVtLT5tZXRob2RXaXRoT3B0aW9uYWxO
dWxsYWJsZVdyYXBwZXJJc051bGwoY29udmVydGVkT2JqKTsKIH0KIAordm9pZCB3ZWJraXRfZG9t
X3Rlc3Rfb2JqX21ldGhvZF93aXRoX29wdGlvbmFsX3hwYXRoX25zX3Jlc29sdmVyKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVhQYXRoTlNSZXNvbHZlciogcmVzb2x2ZXIpCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihzZWxmKSk7CisgICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfRE9NX0lTX1hQQVRIX05TX1JFU09MVkVSKHJlc29sdmVyKSk7CisgICAgV2ViQ29y
ZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2ViQ29y
ZTo6WFBhdGhOU1Jlc29sdmVyPiBjb252ZXJ0ZWRSZXNvbHZlciA9IFdlYktpdDo6Y29yZShyZXNv
bHZlcik7CisgICAgaXRlbS0+bWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyKFdURjo6
Z2V0UHRyKGNvbnZlcnRlZFJlc29sdmVyKSk7Cit9CisKIGdjaGFyKiB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2NvbmRpdGlvbmFsX21ldGhvZDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAppbmRleCBjNzUy
Y2FiNjMxNTdmOTkwMzI0MDZkZjQ1OTNmMTA3MzhhYTJkMTAxLi5lNWZmYTUxN2ExMzc2NzFjZWVj
ODM3MTVjNWZjMWJiMjQ2NDY0YTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCkBA
IC0yNzcsNiArMjc3LDE2IEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial9t
ZXRob2Rfd2l0aF9hcmdfdHJlYXRpbmdfbnVsbF9hc19lbXB0eV9zdHJpbmcoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIGFyZyk7CiAKIC8qKgorICogd2Via2l0X2RvbV90ZXN0
X29ial9tZXRob2Rfd2l0aF94cGF0aF9uc19yZXNvbHZlcl9wYXJhbWV0ZXI6CisgKiBAc2VsZjog
QSAjV2ViS2l0RE9NVGVzdE9iagorICogQHJlc29sdmVyOiBBICNXZWJLaXRET01YUGF0aE5TUmVz
b2x2ZXIKKyAqCisgKiBTdGFiaWxpdHk6IFVuc3RhYmxlCisqKi8KK1dFQktJVF9BUEkgdm9pZAor
d2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF94cGF0aF9uc19yZXNvbHZlcl9wYXJhbWV0
ZXIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyKiByZXNv
bHZlcik7CisKKy8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9udWxsYWJsZV9zdHJpbmdfbWV0
aG9kOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCkBAIC03MjksNiArNzM5LDE2
IEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9vcHRp
b25hbF9udWxsYWJsZV93cmFwcGVyX2lzX251bGwoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2Vi
S2l0RE9NVGVzdE9iaiogb2JqKTsKIAogLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhv
ZF93aXRoX29wdGlvbmFsX3hwYXRoX25zX3Jlc29sdmVyOgorICogQHNlbGY6IEEgI1dlYktpdERP
TVRlc3RPYmoKKyAqIEByZXNvbHZlcjogQSAjV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyCisgKgor
ICogU3RhYmlsaXR5OiBVbnN0YWJsZQorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21f
dGVzdF9vYmpfbWV0aG9kX3dpdGhfb3B0aW9uYWxfeHBhdGhfbnNfcmVzb2x2ZXIoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyKiByZXNvbHZlcik7CisKKy8q
KgogICogd2Via2l0X2RvbV90ZXN0X29ial9jb25kaXRpb25hbF9tZXRob2QxOgogICogQHNlbGY6
IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDc5ZjI0ZGFlMjc5MGI5MjQw
NDUyZTVlZDE0ZDljNThmNDAzNzllZmMuLmYwMjYwYzVkYzM2ODdmZThlYjg5M2UzZTM0ZDAzNDk5
ZDg2ZjQxN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiSlNUZXN0
Tm9kZS5oIgogI2luY2x1ZGUgIkpTVGVzdE9iai5oIgogI2luY2x1ZGUgIkpTVGVzdFN1Yk9iai5o
IgorI2luY2x1ZGUgIkpTWFBhdGhOU1Jlc29sdmVyLmgiCiAjaW5jbHVkZSAiTGlmZWN5Y2xlQ2Fs
bGJhY2tRdWV1ZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNs
dWRlICJTVkdEb2N1bWVudC5oIgpAQCAtNTI3LDYgKzUyOCw3IEBAIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZChKU0M6
OkV4ZWNTCiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakluc3RhbmNlRnVuY3Rpb25VbmZvcmdl
YWJsZU1ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ1RyZWF0aW5nTnVs
bEFzRW1wdHlTdHJpbmcoSlNDOjpFeGVjU3RhdGUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5TUmVz
b2x2ZXJQYXJhbWV0ZXIoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nTWV0aG9k
KEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3RhdGljTWV0aG9kKEpTQzo6
RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2QoSlNDOjpFeGVjU3Rh
dGUqKTsKQEAgLTU4MSw2ICs1ODMsNyBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCbwogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsQW55KEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxOdWxsYWJsZVdyYXBwZXIoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bE51bGxhYmxlV3JhcHBlcklzTnVsbChKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsWFBhdGhOU1Jlc29sdmVyKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2Fs
bGJhY2tBcmcoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0Fu
ZENhbGxiYWNrQXJnKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBbmRP
cHRpb25hbEFyZyhKU0M6OkV4ZWNTdGF0ZSopOwpAQCAtMTA5Niw2ICsxMDk5LDcgQEAgc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQog
ICAgIHsgIm9iak1ldGhvZCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
YmpNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAib2JqTWV0aG9kV2l0aEFyZ3Mi
LCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3Mp
LCAoaW50cHRyX3QpICgzKSB9IH0sCiAgICAgeyAibWV0aG9kV2l0aEFyZ1RyZWF0aW5nTnVsbEFz
RW1wdHlTdHJpbmciLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aEFyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpLCAoaW50cHRyX3QpICgxKSB9IH0sCisg
ICAgeyAibWV0aG9kV2l0aFhQYXRoTlNSZXNvbHZlclBhcmFtZXRlciIsIEpTQzo6RnVuY3Rpb24s
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVy
KSwgKGludHB0cl90KSAoMSkgfSB9LAogICAgIHsgIm51bGxhYmxlU3RyaW5nTWV0aG9kIiwgSlND
OjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nTWV0aG9kKSwg
KGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgIm51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZCIs
IEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNp
YWxNZXRob2QpLCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAibWV0aG9kV2l0aFNlcXVlbmNl
QXJnIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1
ZW5jZUFyZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKQEAgLTExNTgsNiArMTE2Miw3IEBAIHN0YXRp
YyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0K
ICAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxBbnkiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQW55KSwgKGludHB0cl90KSAoMCkgfSB9LAog
ICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlciIsIEpTQzo6RnVuY3Rpb24s
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXIp
LCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVX
cmFwcGVySXNOdWxsIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlcklzTnVsbCksIChpbnRwdHJfdCkgKDApIH0gfSwK
KyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIiLCBKU0M6OkZ1bmN0aW9u
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVy
KSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgIm1ldGhvZFdpdGhDYWxsYmFja0FyZyIsIEpT
Qzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBcmcp
LCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAibWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5k
Q2FsbGJhY2tBcmciLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmcpLCAoaW50cHRyX3QpICgyKSB9IH0sCiAg
ICAgeyAibWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmciLCBKU0M6OkZ1bmN0aW9uLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcpLCAo
aW50cHRyX3QpICgwKSB9IH0sCkBAIC00MDcyLDYgKzQwNzcsMjUgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdUcmVh
dGluZ051bGwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aFhQYXRoTlNSZXNvbHZlclBhcmFtZXRlcihFeGVjU3RhdGUqIHN0YXRlKQorewor
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gc3RhdGUtPnRoaXNWYWx1ZSgpOworICAgIGF1dG8gY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKKyAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKQorICAgICAgICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9y
KCpzdGF0ZSwgIlRlc3RPYmoiLCAibWV0aG9kV2l0aFhQYXRoTlNSZXNvbHZlclBhcmFtZXRlciIp
OworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjpp
bmZvKCkpOworICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7CisgICAgaWYg
KFVOTElLRUxZKHN0YXRlLT5hcmd1bWVudENvdW50KCkgPCAxKSkKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Ioc3RhdGUpKTsK
KyAgICBhdXRvIHJlc29sdmVyID0gSlNYUGF0aE5TUmVzb2x2ZXI6OnRvV3JhcHBlZCgqc3RhdGUs
IHN0YXRlLT5hcmd1bWVudCgwKSk7CisgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRp
b24oKSkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cisg
ICAgaWYgKFVOTElLRUxZKCFyZXNvbHZlcikpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKHN0YXRlKTsKKyAgICBpbXBsLm1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIo
KnJlc29sdmVyKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
fQorCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTnVsbGFibGVTdHJpbmdNZXRob2QoRXhlY1N0YXRlKiBzdGF0ZSkKIHsKICAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IHN0YXRlLT50aGlzVmFsdWUoKTsKQEAgLTQ5MDQsNiArNDkyOCwyMSBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsTnVsbGFibAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIoRXhlY1N0YXRl
KiBzdGF0ZSkKK3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IHN0YXRlLT50aGlzVmFsdWUoKTsK
KyAgICBhdXRvIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1
ZSk7CisgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKKyAgICAgICAgcmV0dXJuIHRocm93
VGhpc1R5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgIm1ldGhvZFdpdGhPcHRpb25hbFhQYXRo
TlNSZXNvbHZlciIpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywg
SlNUZXN0T2JqOjppbmZvKCkpOworICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVk
KCk7CisgICAgYXV0byByZXNvbHZlciA9IEpTWFBhdGhOU1Jlc29sdmVyOjp0b1dyYXBwZWQoKnN0
YXRlLCBzdGF0ZS0+YXJndW1lbnQoMCkpOworICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhj
ZXB0aW9uKCkpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OworICAgIGltcGwubWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyKFdURk1vdmUocmVz
b2x2ZXIpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQor
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aENhbGxiYWNrQXJnKEV4ZWNTdGF0ZSogc3RhdGUpCiB7CiAgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBzdGF0ZS0+dGhpc1ZhbHVlKCk7CkBAIC01MTc5LDcgKzUyMTgsNyBAQCBzdGF0
aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDYoRXhlY1N0YQogICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVk
KCk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5hcmd1bWVudENvdW50KCkgPCAxKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3Ioc3RhdGUpKTsKLSAgICBhdXRvIGxpc3RBcmcgPSB0b0RPTVN0cmluZ0xpc3Qoc3RhdGUsIHN0
YXRlLT5hcmd1bWVudCgwKSk7CisgICAgYXV0byBsaXN0QXJnID0gSlNET01TdHJpbmdMaXN0Ojp0
b1dyYXBwZWQoKnN0YXRlLCBzdGF0ZS0+YXJndW1lbnQoMCkpOwogICAgIGlmIChVTkxJS0VMWShz
dGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogICAgIGltcGwub3ZlcmxvYWRlZE1ldGhvZChXVEZNb3ZlKGxpc3RBcmcp
KTsKQEAgLTU1MjgsNyArNTU2Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJpbmdMaXN0RnVuY3Rpb24oRXhlCiAgICAgaWYg
KFVOTElLRUxZKHN0YXRlLT5hcmd1bWVudENvdW50KCkgPCAxKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Ioc3RhdGUpKTsK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBhdXRvIHZhbHVlcyA9IHRvRE9NU3RyaW5n
TGlzdChzdGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDApKTsKKyAgICBhdXRvIHZhbHVlcyA9IEpTRE9N
U3RyaW5nTGlzdDo6dG9XcmFwcGVkKCpzdGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDApKTsKICAgICBp
ZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpZiAoVU5MSUtFTFkoIXZhbHVlcykpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01U
ZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01U
ZXN0T2JqLmgKaW5kZXggOGE0YjgwMTI2MjIzOTQxZjg4YjNmZWIxMDk5YmZmZjBmYzBiZTc2My4u
YjQ2OTI1MzhiZTQ3MGRlYjllNWQ5MGIzNjZkZWRkYzM5NjIzMDkyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApA
QCAtNDIsNiArNDIsNyBAQAogQGNsYXNzIERPTWFueTsKIEBjbGFzcyBOU1N0cmluZzsKIEBwcm90
b2NvbCBET01FdmVudExpc3RlbmVyOworQHByb3RvY29sIERPTVhQYXRoTlNSZXNvbHZlcjsKIAog
ZW51bSB7CiAgICAgRE9NX0NPTlNUX1ZBTFVFXzAgPSAwLApAQCAtMTQ5LDYgKzE1MCw3IEBAIFdF
QkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NVGVzdE9iaiA6IERPTU9iamVjdAogLSAoRE9NVGVz
dE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICop
c3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIC0gKGludCl1bmZvcmdlYWJsZU1l
dGhvZDsKIC0gKHZvaWQpbWV0aG9kV2l0aEFyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmc6KE5T
U3RyaW5nICopYXJnOworLSAodm9pZCltZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVy
OihpZCA8RE9NWFBhdGhOU1Jlc29sdmVyPilyZXNvbHZlcjsKIC0gKE5TU3RyaW5nICopbnVsbGFi
bGVTdHJpbmdNZXRob2Q7CiAtIChOU1N0cmluZyAqKW51bGxhYmxlU3RyaW5nU3RhdGljTWV0aG9k
OwogLSAoTlNTdHJpbmcgKiludWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2Q6KHVuc2lnbmVkKWlu
ZGV4OwpAQCAtMTk3LDYgKzE5OSw3IEBAIFdFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NVGVz
dE9iaiA6IERPTU9iamVjdAogLSAodm9pZCltZXRob2RXaXRoT3B0aW9uYWxBbnk6KERPTWFueSAq
KWE7CiAtICh2b2lkKW1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlcjooRE9NVGVzdE9i
aiAqKW9iajsKIC0gKHZvaWQpbWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVySXNOdWxs
OihET01UZXN0T2JqICopb2JqOworLSAodm9pZCltZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVz
b2x2ZXI6KGlkIDxET01YUGF0aE5TUmVzb2x2ZXI+KXJlc29sdmVyOwogLSAodm9pZCljbGFzc01l
dGhvZDsKIC0gKGludCljbGFzc01ldGhvZFdpdGhPcHRpb25hbDooaW50KWFyZzsKIC0gKHZvaWQp
Y2xhc3NNZXRob2QyOihpbnQpYXJnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXggMGUzNWViNjNhYTJlM2Yw
ODg1OTQyYWRjOTMwMjE1NWJjYmQ3YThmYS4uNzU0NjQ4NWNhMzhmOThiZTFiMzk2ZjhmN2MzMzA0
OWM1ZDlkMDI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbXBvcnQg
IkRPTVRlc3RPYmouaCIKIAorI2ltcG9ydCAiRE9NQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCiAj
aW1wb3J0ICJET01EaWN0aW9uYXJ5SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTURvY3VtZW50SW50
ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgpAQCAtNjYsNiArNjcsNyBAQAog
I2ltcG9ydCAiVVJMLmgiCiAjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgogI2ltcG9ydCAi
V2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCAiWFBhdGhOU1Jlc29sdmVyLmgiCiAj
aW1wb3J0IDx3dGYvR2V0UHRyLmg+CiAKICNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdl
YkNvcmU6OlRlc3RPYmoqPihfaW50ZXJuYWwpCkBAIC0xMTEwLDYgKzExMTIsMjQgQEAgLSAodm9p
ZCltZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZzooTlNTdHJpbmcgKilhcmcK
ICAgICBJTVBMLT5tZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhhcmcpOwog
fQogCistICh2b2lkKW1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXI6KGlkIDxET01Y
UGF0aE5TUmVzb2x2ZXI+KXJlc29sdmVyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIGlmICghcmVzb2x2ZXIpCisgICAgICAgIFdlYkNvcmU6OnJhaXNl
VHlwZUVycm9yRXhjZXB0aW9uKCk7CisgICAgV2ViQ29yZTo6WFBhdGhOU1Jlc29sdmVyKiBuYXRp
dmVSZXNvbHZlciA9IDA7CisgICAgUmVmUHRyPFdlYkNvcmU6OlhQYXRoTlNSZXNvbHZlcj4gY3Vz
dG9tUmVzb2x2ZXI7CisgICAgaWYgKHJlc29sdmVyKSB7CisgICAgICAgIGlmIChbcmVzb2x2ZXIg
aXNNZW1iZXJPZkNsYXNzOltET01OYXRpdmVYUGF0aE5TUmVzb2x2ZXIgY2xhc3NdXSkKKyAgICAg
ICAgICAgIG5hdGl2ZVJlc29sdmVyID0gY29yZShzdGF0aWNfY2FzdDxET01OYXRpdmVYUGF0aE5T
UmVzb2x2ZXIgKj4ocmVzb2x2ZXIpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBjdXN0
b21SZXNvbHZlciA9IFdlYkNvcmU6OkRPTUN1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKHJl
c29sdmVyKTsKKyAgICAgICAgICAgIG5hdGl2ZVJlc29sdmVyID0gV1RGOjpnZXRQdHIoY3VzdG9t
UmVzb2x2ZXIpOworICAgICAgICB9CisgICAgfQorICAgIElNUEwtPm1ldGhvZFdpdGhYUGF0aE5T
UmVzb2x2ZXJQYXJhbWV0ZXIoKldURjo6Z2V0UHRyKG5hdGl2ZVJlc29sdmVyKSk7Cit9CisKIC0g
KE5TU3RyaW5nICopbnVsbGFibGVTdHJpbmdNZXRob2QKIHsKICAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0xNDQzLDYgKzE0NjMsMjIgQEAgLSAodm9pZCltZXRo
b2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051bGw6KERPTVRlc3RPYmogKilvYmoKICAg
ICBJTVBMLT5tZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051bGwoY29yZShvYmop
KTsKIH0KIAorLSAodm9pZCltZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXI6KGlkIDxE
T01YUGF0aE5TUmVzb2x2ZXI+KXJlc29sdmVyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OlhQYXRoTlNSZXNvbHZlciogbmF0aXZlUmVz
b2x2ZXIgPSAwOworICAgIFJlZlB0cjxXZWJDb3JlOjpYUGF0aE5TUmVzb2x2ZXI+IGN1c3RvbVJl
c29sdmVyOworICAgIGlmIChyZXNvbHZlcikgeworICAgICAgICBpZiAoW3Jlc29sdmVyIGlzTWVt
YmVyT2ZDbGFzczpbRE9NTmF0aXZlWFBhdGhOU1Jlc29sdmVyIGNsYXNzXV0pCisgICAgICAgICAg
ICBuYXRpdmVSZXNvbHZlciA9IGNvcmUoc3RhdGljX2Nhc3Q8RE9NTmF0aXZlWFBhdGhOU1Jlc29s
dmVyICo+KHJlc29sdmVyKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY3VzdG9tUmVz
b2x2ZXIgPSBXZWJDb3JlOjpET01DdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZShyZXNvbHZl
cik7CisgICAgICAgICAgICBuYXRpdmVSZXNvbHZlciA9IFdURjo6Z2V0UHRyKGN1c3RvbVJlc29s
dmVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBJTVBMLT5tZXRob2RXaXRoT3B0aW9uYWxYUGF0
aE5TUmVzb2x2ZXIoV1RGOjpnZXRQdHIobmF0aXZlUmVzb2x2ZXIpKTsKK30KKwogCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjEpCiAtIChOU1N0cmluZyAqKWNvbmRpdGlvbmFsTWV0aG9kMQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IGJk
ZTBiN2QzMTNhZWI4Njk3OGZjMmFjOTkyOGQ3MmU5MmMwODU0OGIuLjVlOGJjNmE5MDc3MGViNzlj
N2U1YTAzMTM4NWFhMjljYzRmOWU4ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTExMCw2ICsxMTAsNyBAQCBlbnVtIFRlc3RD
b25maWRlbmNlIHsgImhpZ2giLCAia2luZGEtbG93IiB9OwogICAgIFRlc3RPYmogb2JqTWV0aG9k
V2l0aEFyZ3MobG9uZyBsb25nQXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7
CiAgICAgW1VuZm9yZ2VhYmxlXSBsb25nIHVuZm9yZ2VhYmxlTWV0aG9kKCk7CiAgICAgdm9pZCBt
ZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhbVHJlYXROdWxsQXM9RW1wdHlT
dHJpbmddIERPTVN0cmluZyBhcmcpOworICAgIHZvaWQgbWV0aG9kV2l0aFhQYXRoTlNSZXNvbHZl
clBhcmFtZXRlcihYUGF0aE5TUmVzb2x2ZXIgcmVzb2x2ZXIpOwogCiAgICAgLy8gTnVsbGFibGUg
U3RyaW5nIHJldHVybiB2YWx1ZXMuCiAgICAgRE9NU3RyaW5nPyBudWxsYWJsZVN0cmluZ01ldGhv
ZCgpOwpAQCAtMjA4LDYgKzIwOSw3IEBAIGVudW0gVGVzdENvbmZpZGVuY2UgeyAiaGlnaCIsICJr
aW5kYS1sb3ciIH07CiAgICAgdm9pZCAgICBtZXRob2RXaXRoT3B0aW9uYWxBbnkob3B0aW9uYWwg
YW55IGEpOwogICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVyKG9w
dGlvbmFsIFRlc3RPYmo/IG9iaik7CiAgICAgdm9pZCAgICBtZXRob2RXaXRoT3B0aW9uYWxOdWxs
YWJsZVdyYXBwZXJJc051bGwob3B0aW9uYWwgVGVzdE9iaj8gb2JqID0gbnVsbCk7CisgICAgdm9p
ZCAgICBtZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIob3B0aW9uYWwgWFBhdGhOU1Jl
c29sdmVyPyByZXNvbHZlcik7CiAKICNpZiBkZWZpbmVkKFRFU1RJTkdfSlMpCiAgICAgLy8gQ2Fs
bGJhY2sgaW50ZXJmYWNlIHBhcmFtZXRlcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA1
NzM3ZmQ5NTQ5YWY1MWYyZmQxZDY2YjExZTU0N2QyNzY1ZTNjMWYzLi42ZmVhZTJhYzAxZTg5NDRk
ODBjZDUyMGU3NGE4MzFmMDRkYjAzNmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTUw
ODEsMTMgKzUwODEsMTEgQEAgYm9vbCBEb2N1bWVudDo6aXNUZWxlcGhvbmVOdW1iZXJQYXJzaW5n
QWxsb3dlZCgpIGNvbnN0CiB9CiAjZW5kaWYKIAotUmVmUHRyPFhQYXRoRXhwcmVzc2lvbj4gRG9j
dW1lbnQ6OmNyZWF0ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhQYXRoTlNS
ZXNvbHZlciogcmVzb2x2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8WFBhdGhFeHByZXNz
aW9uPiBEb2N1bWVudDo6Y3JlYXRlRXhwcmVzc2lvbihjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24s
IFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+JiYgcmVzb2x2ZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIGlmICghbV94cGF0aEV2YWx1YXRvcikKICAgICAgICAgbV94cGF0aEV2YWx1YXRvciA9
IFhQYXRoRXZhbHVhdG9yOjpjcmVhdGUoKTsKLSAgICByZXR1cm4gbV94cGF0aEV2YWx1YXRvci0+
Y3JlYXRlRXhwcmVzc2lvbihleHByZXNzaW9uLCByZXNvbHZlciwgZWMpOworICAgIHJldHVybiBt
X3hwYXRoRXZhbHVhdG9yLT5jcmVhdGVFeHByZXNzaW9uKGV4cHJlc3Npb24sIFdURk1vdmUocmVz
b2x2ZXIpLCBlYyk7CiB9CiAKIFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IERvY3VtZW50OjpjcmVh
dGVOU1Jlc29sdmVyKE5vZGUqIG5vZGVSZXNvbHZlcikKQEAgLTUwOTcsMTEgKzUwOTUsMTEgQEAg
UmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4gRG9jdW1lbnQ6OmNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSog
bm9kZVJlc29sdmVyKQogICAgIHJldHVybiBtX3hwYXRoRXZhbHVhdG9yLT5jcmVhdGVOU1Jlc29s
dmVyKG5vZGVSZXNvbHZlcik7CiB9CiAKLVJlZlB0cjxYUGF0aFJlc3VsdD4gRG9jdW1lbnQ6OmV2
YWx1YXRlKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgTm9kZSogY29udGV4dE5vZGUsIFhQYXRo
TlNSZXNvbHZlciogcmVzb2x2ZXIsIHVuc2lnbmVkIHNob3J0IHR5cGUsIFhQYXRoUmVzdWx0KiBy
ZXN1bHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPFhQYXRoUmVzdWx0PiBEb2N1bWVudDo6
ZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBOb2RlKiBjb250ZXh0Tm9kZSwgUmVm
UHRyPFhQYXRoTlNSZXNvbHZlcj4mJiByZXNvbHZlciwgdW5zaWduZWQgc2hvcnQgdHlwZSwgWFBh
dGhSZXN1bHQqIHJlc3VsdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFtX3hwYXRo
RXZhbHVhdG9yKQogICAgICAgICBtX3hwYXRoRXZhbHVhdG9yID0gWFBhdGhFdmFsdWF0b3I6OmNy
ZWF0ZSgpOwotICAgIHJldHVybiBtX3hwYXRoRXZhbHVhdG9yLT5ldmFsdWF0ZShleHByZXNzaW9u
LCBjb250ZXh0Tm9kZSwgcmVzb2x2ZXIsIHR5cGUsIHJlc3VsdCwgZWMpOworICAgIHJldHVybiBt
X3hwYXRoRXZhbHVhdG9yLT5ldmFsdWF0ZShleHByZXNzaW9uLCBjb250ZXh0Tm9kZSwgV1RGTW92
ZShyZXNvbHZlciksIHR5cGUsIHJlc3VsdCwgZWMpOwogfQogCiB2b2lkIERvY3VtZW50Ojppbml0
U2VjdXJpdHlDb250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMmQzZTg2MmJlMmVhNDI4
MDMzODcxZDdjOTk0NmI0YjJhMDlhNGVkYi4uZWFiOWM4ZDg5Y2E3Mzk5NDM0YWZlZmQ2ZjQ2ZTUz
MGU3NTc3NmJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTk1Miw5ICs5NTIsOSBAQCBwdWJs
aWM6CiAgICAgdWludDY0X3QgZG9tVHJlZVZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtX2RvbVRy
ZWVWZXJzaW9uOyB9CiAKICAgICAvLyBYUGF0aEV2YWx1YXRvciBtZXRob2RzCi0gICAgUmVmUHRy
PFhQYXRoRXhwcmVzc2lvbj4gY3JlYXRlRXhwcmVzc2lvbihjb25zdCBTdHJpbmcmIGV4cHJlc3Np
b24sIFhQYXRoTlNSZXNvbHZlciosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQdHI8WFBhdGhF
eHByZXNzaW9uPiBjcmVhdGVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgUmVm
UHRyPFhQYXRoTlNSZXNvbHZlcj4mJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxYUGF0
aE5TUmVzb2x2ZXI+IGNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSogbm9kZVJlc29sdmVyKTsKLSAgICBS
ZWZQdHI8WFBhdGhSZXN1bHQ+IGV2YWx1YXRlKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgTm9k
ZSogY29udGV4dE5vZGUsIFhQYXRoTlNSZXNvbHZlciosIHVuc2lnbmVkIHNob3J0IHR5cGUsIFhQ
YXRoUmVzdWx0KiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxYUGF0aFJlc3VsdD4gZXZh
bHVhdGUoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBOb2RlKiBjb250ZXh0Tm9kZSwgUmVmUHRy
PFhQYXRoTlNSZXNvbHZlcj4mJiwgdW5zaWduZWQgc2hvcnQgdHlwZSwgWFBhdGhSZXN1bHQqLCBF
eGNlcHRpb25Db2RlJik7CiAKICAgICBlbnVtIFBlbmRpbmdTaGVldExheW91dCB7IE5vTGF5b3V0
V2l0aFBlbmRpbmdTaGVldHMsIERpZExheW91dFdpdGhQZW5kaW5nU2hlZXRzLCBJZ25vcmVMYXlv
dXRXaXRoUGVuZGluZ1NoZWV0cyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCAxODZh
N2VlMjI1OWVlZTNhYWMyZWJmMDM5MjM2NTMyOWMwYTc2ZGEwLi5lMTNkNzBkOGNmMGY5ZjA5ZTJk
NmQ0MjFkYjU1MDc5YzcwMzVlZDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTE0MSwx
NiArMTQxLDE1IEBACiAKICAgICAvLyBET00gTGV2ZWwgMyBYUGF0aCAoWFBhdGhFdmFsdWF0b3Ig
aW50ZXJmYWNlKQogICAgIC8vIEZJWE1FOiBVc2luZyAidW5kZWZpbmVkIiBhcyBkZWZhdWx0IHBh
cmFtZXRlciB2YWx1ZSBpcyB3cm9uZy4KLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJz
LCBSYWlzZXNFeGNlcHRpb25dIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHByZXNzaW9uKG9wdGlv
bmFsIERPTVN0cmluZyBleHByZXNzaW9uID0gInVuZGVmaW5lZCIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgWFBhdGhOU1Jlc29s
dmVyPyByZXNvbHZlciA9IG51bGwpOwotICAgIFhQYXRoTlNSZXNvbHZlciAgICBjcmVhdGVOU1Jl
c29sdmVyKE5vZGU/IG5vZGVSZXNvbHZlcik7CisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1l
dGVycywgUmFpc2VzRXhjZXB0aW9uXSBYUGF0aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihv
cHRpb25hbCBET01TdHJpbmcgZXhwcmVzc2lvbiA9ICJ1bmRlZmluZWQiLCBvcHRpb25hbCBYUGF0
aE5TUmVzb2x2ZXI/IHJlc29sdmVyKTsKKyAgICBYUGF0aE5TUmVzb2x2ZXIgY3JlYXRlTlNSZXNv
bHZlcihOb2RlPyBub2RlUmVzb2x2ZXIpOwogCiAgICAgLy8gRklYTUU6IFVzaW5nICJ1bmRlZmlu
ZWQiIGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGlzIHdyb25nLgogICAgIFtPYmpDTGVnYWN5
VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gWFBhdGhSZXN1bHQgZXZhbHVhdGUo
b3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVkIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgTm9kZT8gY29u
dGV4dE5vZGUgPSBudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29sdmVyID0gbnVsbCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwg
Tm9kZT8gY29udGV4dE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIHVuc2ln
bmVkIHNob3J0IHR5cGUgPSAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcHRpb25hbCBYUGF0aFJlc3VsdD8gaW5SZXN1bHQgPSBudWxsKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwg
WFBhdGhSZXN1bHQ/IGluUmVzdWx0KTsKIAogICAgIC8vIENvbW1vbiBleHRlbnNpb25zCiAgICAg
Ly8gRklYTUU6IFVzaW5nICJ1bmRlZmluZWQiIGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGlz
IHdyb25nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5v
ZGVGaW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5vZGVGaW5k
ZXIuY3BwCmluZGV4IGQzN2U4NTVjOTNmM2QwZjE5NjQwMzcyYzIwMjBhZGY2M2I1Mjg0MGQuLjY0
NTYzNmU3OGQzZmIxY2EzNjQxZTk1ODNjM2ZjNDAzNDVjNWU4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOb2RlRmluZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTm9kZUZpbmRlci5jcHAKQEAgLTM4LDYgKzM4LDcg
QEAKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlTGlz
dC5oIgogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKKyNpbmNsdWRlICJYUGF0aE5TUmVzb2x2
ZXIuaCIKICNpbmNsdWRlICJYUGF0aFJlc3VsdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmNwcAppbmRleCBkZTBhYTBkMTc2ZWRkOGQwNzM1
N2RhZmY5YTlmMmJiN2MxMzU4ZGQ3Li5mYzc1YzMxNmEyZDQ5MWRmMmZiN2JhYjE1ZmIyZjcwNmQ4
NTA4NzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5jcHAKQEAgLTM3LDExICsz
Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIFhQYXRoOwogCi1S
ZWZQdHI8WFBhdGhFeHByZXNzaW9uPiBYUGF0aEV2YWx1YXRvcjo6Y3JlYXRlRXhwcmVzc2lvbihj
b25zdCBTdHJpbmcmIGV4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWFBhdGhOU1Jlc29sdmVyKiByZXNvbHZlciwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxYUGF0aEV4cHJlc3Npb24+IFhQYXRoRXZh
bHVhdG9yOjpjcmVhdGVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgUmVmUHRy
PFhQYXRoTlNSZXNvbHZlcj4mJiByZXNvbHZlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAg
cmV0dXJuIFhQYXRoRXhwcmVzc2lvbjo6Y3JlYXRlRXhwcmVzc2lvbihleHByZXNzaW9uLCByZXNv
bHZlciwgZWMpOworICAgIHJldHVybiBYUGF0aEV4cHJlc3Npb246OmNyZWF0ZUV4cHJlc3Npb24o
ZXhwcmVzc2lvbiwgV1RGTW92ZShyZXNvbHZlciksIGVjKTsKIH0KIAogUmVmPFhQYXRoTlNSZXNv
bHZlcj4gWFBhdGhFdmFsdWF0b3I6OmNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSogbm9kZVJlc29sdmVy
KQpAQCAtNDksMTIgKzQ3LDcgQEAgUmVmPFhQYXRoTlNSZXNvbHZlcj4gWFBhdGhFdmFsdWF0b3I6
OmNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSogbm9kZVJlc29sdmVyKQogICAgIHJldHVybiBOYXRpdmVY
UGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZShub2RlUmVzb2x2ZXIpOwogfQogCi1SZWZQdHI8WFBhdGhS
ZXN1bHQ+IFhQYXRoRXZhbHVhdG9yOjpldmFsdWF0ZShjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9kZSog
Y29udGV4dE5vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWFBhdGhOU1Jlc29sdmVyKiByZXNvbHZlciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhQYXRoUmVzdWx0KiByZXN1
bHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhj
ZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8WFBhdGhSZXN1bHQ+IFhQYXRoRXZhbHVhdG9yOjpldmFs
dWF0ZShjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIE5vZGUqIGNvbnRleHROb2RlLCBSZWZQdHI8
WFBhdGhOU1Jlc29sdmVyPiYmIHJlc29sdmVyLCB1bnNpZ25lZCBzaG9ydCB0eXBlLCBYUGF0aFJl
c3VsdCogcmVzdWx0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWlzVmFsaWRDb250
ZXh0Tm9kZShjb250ZXh0Tm9kZSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsK
QEAgLTYyLDcgKzU1LDcgQEAgUmVmUHRyPFhQYXRoUmVzdWx0PiBYUGF0aEV2YWx1YXRvcjo6ZXZh
bHVhdGUoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLAogICAgIH0KIAogICAgIGVjID0gMDsKLSAg
ICBSZWZQdHI8WFBhdGhFeHByZXNzaW9uPiBleHByID0gY3JlYXRlRXhwcmVzc2lvbihleHByZXNz
aW9uLCByZXNvbHZlciwgZWMpOworICAgIFJlZlB0cjxYUGF0aEV4cHJlc3Npb24+IGV4cHIgPSBj
cmVhdGVFeHByZXNzaW9uKGV4cHJlc3Npb24sIFdURk1vdmUocmVzb2x2ZXIpLCBlYyk7CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRo
RXZhbHVhdG9yLmgKaW5kZXggYjE2YzI0OGE2ZDIxODRhMTdjNzlhOWM1YjBkYjczODFmYjkxY2Ix
NC4uZjJiYjVjYjc0NGI3OWU1NjBmODBhZTczYjg5MDVjMWU1OTIxYTU1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hQYXRoRXZhbHVhdG9yLmgKQEAgLTQ0LDEwICs0NCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUmVmPFhQYXRoRXZhbHVhdG9yPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFhQYXRoRXZhbHVhdG9yKTsgfQogICAgICAgICAK
LSAgICAgICAgUmVmUHRyPFhQYXRoRXhwcmVzc2lvbj4gY3JlYXRlRXhwcmVzc2lvbihjb25zdCBT
dHJpbmcmIGV4cHJlc3Npb24sIFhQYXRoTlNSZXNvbHZlciosIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICAgICAgUmVmUHRyPFhQYXRoRXhwcmVzc2lvbj4gY3JlYXRlRXhwcmVzc2lvbihjb25zdCBTdHJp
bmcmIGV4cHJlc3Npb24sIFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+JiYsIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICAgICAgUmVmPFhQYXRoTlNSZXNvbHZlcj4gY3JlYXRlTlNSZXNvbHZlcihOb2RlKiBu
b2RlUmVzb2x2ZXIpOwogICAgICAgICBSZWZQdHI8WFBhdGhSZXN1bHQ+IGV2YWx1YXRlKGNvbnN0
IFN0cmluZyYgZXhwcmVzc2lvbiwgTm9kZSogY29udGV4dE5vZGUsCi0gICAgICAgICAgICBYUGF0
aE5TUmVzb2x2ZXIqLCB1bnNpZ25lZCBzaG9ydCB0eXBlLCBYUGF0aFJlc3VsdCosIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICAgICAgICAgIFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+JiYsIHVuc2lnbmVk
IHNob3J0IHR5cGUsIFhQYXRoUmVzdWx0KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgWFBhdGhFdmFsdWF0b3IoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFs
dWF0b3IuaWRsCmluZGV4IDc0ZDk1MGU3NTVmZDA5ZTdlYzg0ZmJmOTRkZmExNmVmNTZhODliN2Yu
LjM1MDQwZWMyM2JjYTJlZDg2NWNjZWNmMjAwNzhhZDAzYTIyNjgxMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hQYXRoRXZhbHVhdG9yLmlkbApAQCAtMjIsMTUgKzIyLDE0IEBACiAgICAgSW1wbGVtZW50
YXRpb25MYWNrc1ZUYWJsZSwKIF0gaW50ZXJmYWNlIFhQYXRoRXZhbHVhdG9yIHsKICAgICAvLyBG
SVhNRTogVXNpbmcgInVuZGVmaW5lZCIgYXMgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3Jv
bmcuCi0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhFeHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Np
b24ob3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVkIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJl
c29sdmVyID0gbnVsbCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhFeHByZXNzaW9uIGNy
ZWF0ZUV4cHJlc3Npb24ob3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVk
Iiwgb3B0aW9uYWwgWFBhdGhOU1Jlc29sdmVyPyByZXNvbHZlcik7CiAKLSAgICBYUGF0aE5TUmVz
b2x2ZXIgY3JlYXRlTlNSZXNvbHZlcihvcHRpb25hbCBOb2RlPyBub2RlUmVzb2x2ZXIgPSBudWxs
KTsKKyAgICBYUGF0aE5TUmVzb2x2ZXIgY3JlYXRlTlNSZXNvbHZlcihvcHRpb25hbCBOb2RlPyBu
b2RlUmVzb2x2ZXIpOwogCiAgICAgLy8gRklYTUU6IFVzaW5nICJ1bmRlZmluZWQiIGFzIGRlZmF1
bHQgcGFyYW1ldGVyIHZhbHVlIGlzIHdyb25nLgogICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRo
UmVzdWx0IGV2YWx1YXRlKG9wdGlvbmFsIERPTVN0cmluZyBleHByZXNzaW9uID0gInVuZGVmaW5l
ZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgTm9kZT8gY29udGV4dE5vZGUg
PSBudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZl
cj8gcmVzb2x2ZXIgPSBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIE5v
ZGU/IGNvbnRleHROb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFhQYXRo
TlNSZXNvbHZlcj8gcmVzb2x2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwg
dW5zaWduZWQgc2hvcnQgdHlwZSA9IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9u
YWwgWFBhdGhSZXN1bHQ/IGluUmVzdWx0ID0gbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgb3B0aW9uYWwgWFBhdGhSZXN1bHQ/IGluUmVzdWx0KTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aEV4cHJlc3Npb24uY3BwCmluZGV4IDE0NDkwOTNhZjM3YWRlMjM2MWU5MTM5MDRkMDhlNjAx
NjNlZDZmZGIuLjhkNTNmMDM5ZWQ3YWU0NjEwYzNiNTBlNjdiZGRmNGUyOGJiZmE2MDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb24uY3BwCkBAIC00NSw5ICs0NSw5IEBAIGlubGlu
ZSBYUGF0aEV4cHJlc3Npb246OlhQYXRoRXhwcmVzc2lvbihzdGQ6OnVuaXF1ZV9wdHI8WFBhdGg6
OkV4cHJlc3Npb24+IGV4cHJlCiB7CiB9CiAKLVJlZlB0cjxYUGF0aEV4cHJlc3Npb24+IFhQYXRo
RXhwcmVzc2lvbjo6Y3JlYXRlRXhwcmVzc2lvbihjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIFhQ
YXRoTlNSZXNvbHZlciogcmVzb2x2ZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPFhQYXRo
RXhwcmVzc2lvbj4gWFBhdGhFeHByZXNzaW9uOjpjcmVhdGVFeHByZXNzaW9uKGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbiwgUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4mJiByZXNvbHZlciwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7Ci0gICAgYXV0byBwYXJzZWRFeHByZXNzaW9uID0gUGFyc2VyOjpwYXJz
ZVN0YXRlbWVudChleHByZXNzaW9uLCByZXNvbHZlciwgZWMpOworICAgIGF1dG8gcGFyc2VkRXhw
cmVzc2lvbiA9IFBhcnNlcjo6cGFyc2VTdGF0ZW1lbnQoZXhwcmVzc2lvbiwgV1RGTW92ZShyZXNv
bHZlciksIGVjKTsKICAgICBpZiAoIXBhcnNlZEV4cHJlc3Npb24pCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9uLmgKaW5kZXggOTBkYTY3NWM1
NDRmNDkzZWYxNmE0NWQwNzAxYTZkZTNkNzYxMjBiYS4uZDA2MTRjNGM5Mzg0MzJmODFlNmJjYjA5
MzViNWQ1NzJmNDU4ODdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXhw
cmVzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb24uaApAQCAt
NDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBYUGF0aEV4cHJl
c3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxYUGF0aEV4cHJlc3Npb24+IHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIHN0YXRpYyBSZWZQdHI8WFBhdGhFeHByZXNzaW9uPiBjcmVhdGVFeHByZXNzaW9u
KGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgWFBhdGhOU1Jlc29sdmVyKiwgRXhjZXB0aW9uQ29k
ZSYpOworICAgICAgICBzdGF0aWMgUmVmUHRyPFhQYXRoRXhwcmVzc2lvbj4gY3JlYXRlRXhwcmVz
c2lvbihjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+JiYs
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgflhQYXRoRXhwcmVzc2lvbigpOwogICAgICAgICAK
ICAgICAgICAgUmVmUHRyPFhQYXRoUmVzdWx0PiBldmFsdWF0ZShOb2RlKiBjb250ZXh0Tm9kZSwg
dW5zaWduZWQgc2hvcnQgdHlwZSwgWFBhdGhSZXN1bHQqLCBFeGNlcHRpb25Db2RlJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOU1Jlc29sdmVyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YUGF0aE5TUmVzb2x2ZXIuaWRsCmluZGV4IDg2OWIzZDY2M2FmYjYyNjBjZjUx
ZmI4ZDliNzNjMDRkOWY5ZTUyODUuLjUyZTE1ZTMxMTAyN2JjOTgwOGE0YjU4MDI3NTQxYzBjNzk3
NTJhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5TUmVzb2x2ZXIuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5TUmVzb2x2ZXIuaWRsCkBAIC0xOSw2ICsx
OSw3IEBACiAgKi8KIAogWworICAgIEpTQ3VzdG9tVG9OYXRpdmVPYmplY3QsCiAgICAgTm9JbnRl
cmZhY2VPYmplY3QsCiAgICAgT2JqQ1Byb3RvY29sLAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9u
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YUGF0aFBhcnNlci5jcHAKaW5kZXggYzMwZTlmYjFmMTRhZmIxNDNkN2I5
NWE4ODMxNjk0YTU3NzMzOGExMS4uMTA3ZDZhZTRjZmY0ZTBkNGI4OTgwMWRkYzU4ZjkzODQ4OWM0
NGI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQYXJzZXIuY3BwCkBAIC0zOTksOSArMzk5LDkgQEAg
aW5saW5lIFBhcnNlcjo6VG9rZW4gUGFyc2VyOjpuZXh0VG9rZW4oKQogICAgIHJldHVybiB0b2tl
bjsKIH0KIAotUGFyc2VyOjpQYXJzZXIoY29uc3QgU3RyaW5nJiBzdGF0ZW1lbnQsIFhQYXRoTlNS
ZXNvbHZlciogcmVzb2x2ZXIpCitQYXJzZXI6OlBhcnNlcihjb25zdCBTdHJpbmcmIHN0YXRlbWVu
dCwgUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4mJiByZXNvbHZlcikKICAgICA6IG1fZGF0YShzdGF0
ZW1lbnQpCi0gICAgLCBtX3Jlc29sdmVyKHJlc29sdmVyKQorICAgICwgbV9yZXNvbHZlcihXVEZN
b3ZlKHJlc29sdmVyKSkKICAgICAsIG1fbmV4dFBvcygwKQogICAgICwgbV9sYXN0VG9rZW5UeXBl
KDApCiAgICAgLCBtX3Nhd05hbWVzcGFjZUVycm9yKGZhbHNlKQpAQCAtNDU2LDkgKzQ1Niw5IEBA
IGJvb2wgUGFyc2VyOjpleHBhbmRRdWFsaWZpZWROYW1lKGNvbnN0IFN0cmluZyYgcXVhbGlmaWVk
TmFtZSwgU3RyaW5nJiBsb2NhbE5hbWUsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0ZDo6dW5p
cXVlX3B0cjxFeHByZXNzaW9uPiBQYXJzZXI6OnBhcnNlU3RhdGVtZW50KGNvbnN0IFN0cmluZyYg
c3RhdGVtZW50LCBYUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyLCBFeGNlcHRpb25Db2RlJiBlYykK
K3N0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPiBQYXJzZXI6OnBhcnNlU3RhdGVtZW50KGNvbnN0
IFN0cmluZyYgc3RhdGVtZW50LCBSZWZQdHI8WFBhdGhOU1Jlc29sdmVyPiYmIHJlc29sdmVyLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBQYXJzZXIgcGFyc2VyKHN0YXRlbWVudCwgcmVzb2x2
ZXIpOworICAgIFBhcnNlciBwYXJzZXIoc3RhdGVtZW50LCBXVEZNb3ZlKHJlc29sdmVyKSk7CiAK
ICAgICBpbnQgcGFyc2VFcnJvciA9IHhwYXRoeXlwYXJzZShwYXJzZXIpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aFBhcnNlci5oCmluZGV4IGU1NWRkYmJiNzJmYjRmMmRhZDk1MjdhMzQwZGE0ZjgyNWMwODRl
NDMuLmU0MTk1OTE2M2ZkMjlhMWIwYTk3OTJjNjBiYWZkMTIyOTA1ODU2YmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aFBhcnNlci5oCkBAIC00MywxNCArNDMsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBjbGFzcyBQYXJzZXIgewogICAgICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
UGFyc2VyKTsKICAgICAgICAgcHVibGljOgotICAgICAgICAgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxFeHByZXNzaW9uPiBwYXJzZVN0YXRlbWVudChjb25zdCBTdHJpbmcmIHN0YXRlbWVudCwg
WFBhdGhOU1Jlc29sdmVyKiwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICAgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPiBwYXJzZVN0YXRlbWVudChjb25zdCBTdHJpbmcmIHN0
YXRlbWVudCwgUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4mJiwgRXhjZXB0aW9uQ29kZSYpOwogCiAg
ICAgICAgICAgICBpbnQgbGV4KFlZU1RZUEUmKTsKICAgICAgICAgICAgIGJvb2wgZXhwYW5kUXVh
bGlmaWVkTmFtZShjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIFN0cmluZyYgbG9jYWxOYW1l
LCBTdHJpbmcmIG5hbWVzcGFjZVVSSSk7CiAgICAgICAgICAgICB2b2lkIHNldFBhcnNlUmVzdWx0
KHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPiBleHByZXNzaW9uKSB7IG1fcmVzdWx0ID0gV1RG
TW92ZShleHByZXNzaW9uKTsgfQogCiAgICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICBQYXJz
ZXIoY29uc3QgU3RyaW5nJiwgWFBhdGhOU1Jlc29sdmVyKik7CisgICAgICAgICAgICBQYXJzZXIo
Y29uc3QgU3RyaW5nJiwgUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4mJik7CiAKICAgICAgICAgICAg
IHN0cnVjdCBUb2tlbjsKIApAQCAtNzIsNyArNzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgICAgICBUb2tlbiBuZXh0VG9rZW5JbnRlcm5hbCgpOwogCiAgICAgICAgICAgICBjb25z
dCBTdHJpbmcmIG1fZGF0YTsKLSAgICAgICAgICAgIFhQYXRoTlNSZXNvbHZlciogbV9yZXNvbHZl
cjsKKyAgICAgICAgICAgIFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IG1fcmVzb2x2ZXI7CiAKICAg
ICAgICAgICAgIHVuc2lnbmVkIG1fbmV4dFBvczsKICAgICAgICAgICAgIGludCBtX2xhc3RUb2tl
blR5cGU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>