<?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>203260</bug_id>
          
          <creation_ts>2019-10-22 11:46:31 -0700</creation_ts>
          <short_desc>[JSC] Remove non-LargeAllocation restriction for JSCallee</short_desc>
          <delta_ts>2019-10-22 18:25:04 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>203282</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1582464</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-22 11:46:31 -0700</bug_when>
    <thetext>[JSC] Remove non-LargeAllocation restriction for JSCallee</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582465</commentid>
    <comment_count>1</comment_count>
      <attachid>381574</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-22 11:47:54 -0700</bug_when>
    <thetext>Created attachment 381574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582466</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-22 11:48:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/56508915&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582474</commentid>
    <comment_count>3</comment_count>
      <attachid>381574</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-22 11:57:48 -0700</bug_when>
    <thetext>Comment on attachment 381574
Patch

compile errors. Fix it later</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582556</commentid>
    <comment_count>4</comment_count>
      <attachid>381600</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-22 14:11:06 -0700</bug_when>
    <thetext>Created attachment 381600
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582565</commentid>
    <comment_count>5</comment_count>
      <attachid>381600</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-10-22 14:20:44 -0700</bug_when>
    <thetext>Comment on attachment 381600
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:12
&gt; +        This patch renames `CallFrame::vm` to `CallFrame::deprecatedVM`. And we avoid using it as much as possible.

can we file a bug on doing refactoring necessary to delete this function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582567</commentid>
    <comment_count>6</comment_count>
      <attachid>381600</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-22 14:21:30 -0700</bug_when>
    <thetext>Comment on attachment 381600
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:12
&gt;&gt; +        This patch renames `CallFrame::vm` to `CallFrame::deprecatedVM`. And we avoid using it as much as possible.
&gt; 
&gt; can we file a bug on doing refactoring necessary to delete this function?

Filed, https://bugs.webkit.org/show_bug.cgi?id=203272 thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582571</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-22 14:23:32 -0700</bug_when>
    <thetext>Committed r251457: &lt;https://trac.webkit.org/changeset/251457&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582584</commentid>
    <comment_count>8</comment_count>
      <attachid>381600</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-10-22 14:30:30 -0700</bug_when>
    <thetext>Comment on attachment 381600
Patch

r=me too.  Since you&apos;re modifying CodeGeneratorJS.pm, you need to rebase the binding test results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582616</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-10-22 15:13:04 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #8)
&gt; Comment on attachment 381600 [details]
&gt; Patch
&gt; 
&gt; r=me too.  Since you&apos;re modifying CodeGeneratorJS.pm, you need to rebase the
&gt; binding test results.

I realized afterwards that the bindings tests are passing on the EWS.  So, maybe this change is not covered by the tests and no rebasing or results needed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381574</attachid>
            <date>2019-10-22 11:47:54 -0700</date>
            <delta_ts>2019-10-22 14:11:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203260-20191022114753.patch</filename>
            <type>text/plain</type>
            <size>3444</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NTVlNDRlZjQxZDdjNWE5YjMxYWM1NjcyNTgzMzdkNWU0NzQ4ZTAwLi5hOTViNDViODhjN2RkMTFi
ZjBjMWNlOTYxNTU1MDAwYWUzNTFiM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxOS0xMC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSBub24tTGFyZ2VBbGxvY2F0aW9uIHJlc3RyaWN0aW9u
IGZvciBKU0NhbGxlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzMjYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2Ugbm93IHBhc3MgSlNHbG9iYWxPYmplY3QqIGluc3RlYWQgb2YgRXhlY1N0YXRlKi4g
QW5kIHdlIGFyZSBnZXR0aW5nIFZNJiBmcm9tIEpTR2xvYmFsT2JqZWN0Ki4KKyAgICAgICAgQmVj
YXVzZSBub3cgYWNjZXNzaW5nIEV4ZWNTdGF0ZTo6dm0oKSBiZWNvbWVzIGxlc3MgZnJlcXVlbnQs
IHdlIGNhbiByZW1vdmUgdGhlIHJlc3RyaWN0aW9uIHRoYXQKKyAgICAgICAgSlNDYWxsZWUgaXMg
b25seSBhbGxvY2F0ZWQgaW4gbm9uLUxhcmdlQWxsb2NhdGlvbiwgd2hpY2ggcmVzdHJpY3Rpb24g
bWFkZSBFeGVjU3RhdGU6OnZtIGZhc3QuCisKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHA6CisgICAgICAgIChKU0M6OnNpemVPZlZhcmFyZ3MpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNDZWxsSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnZtIGNvbnN0KToK
KyAgICAgICAgKiB3YXNtL2pzL1dhc21Ub0pTLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6d2Fz
bVRvSlMpOgorCiAyMDE5LTEwLTIyICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBGaXggbm9uLXVuaWZpZWQgYnVpbGRzIGFm
dGVyIHIyNTEzMjYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwCmluZGV4IGM5OTA0Y2MwNTMyYTA0ZWVlN2RjYzAyZmJjZjc2ODQxNmYzMzZi
YWMuLjcxMmQ5OWE5MGM2ZjM2OGM3MGI3OTgzMmE3MGVkMzhkOTdmYTAzNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtMTc4
LDcgKzE3OCw3IEBAIEpTVmFsdWUgZXZhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKIAogdW5zaWduZWQgc2l6ZU9mVmFyYXJncyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBhcmd1bWVu
dHMsIHVpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KQogewotICAgIFZNJiB2bSA9IGNhbGxGcmFt
ZS0+dm0oKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKFVOTElLRUxZKCFhcmd1bWVu
dHMuaXNDZWxsKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGxJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJ
bmxpbmVzLmgKaW5kZXggNTQ4ZDIyYmFmZTc5OTc3NjEzNzljNjczNWViMTJhNGU0OTcxYTEzZi4u
OWIwYmYwMzA5NjA3ZDAwY2I4MmRhNGZiZjE1ZWIxZGQ0YzI0MDUwMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaApAQCAtMTQzLDkgKzE0Myw3IEBA
IEFMV0FZU19JTkxJTkUgVk0mIENhbGxGcmFtZTo6dm0oKSBjb25zdAogICAgIEpTQ2VsbCogY2Fs
bGVlID0gdGhpcy0+Y2FsbGVlKCkuYXNDZWxsKCk7CiAgICAgQVNTRVJUKGNhbGxlZSk7CiAgICAg
QVNTRVJUKCZjYWxsZWUtPnZtKCkpOwotICAgIEFTU0VSVCghY2FsbGVlLT5pc0xhcmdlQWxsb2Nh
dGlvbigpKTsKLSAgICAvLyBUaGlzIGlzIGFuIGltcG9ydGFudCBvcHRpbWl6YXRpb24gc2luY2Ug
d2UgYWNjZXNzIHRoaXMgc28gb2Z0ZW4uCi0gICAgcmV0dXJuIGNhbGxlZS0+bWFya2VkQmxvY2so
KS52bSgpOworICAgIHJldHVybiBjYWxsZWUtPnZtKCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IENlbGxUeXBlLCBTdWJzcGFjZUFjY2Vzcz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dhc21Ub0pTLmNwcAppbmRleCBiNTZhNzI3MzcwYzA4MzYzMGQyMTg0MTUxYzdiNWExNjg2MWQx
MDUwLi43ZTBhZDZkZDY0ZjdlZjVlNTBmNDA4ODAxYjY4N2UyYjQyY2E0ZmM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMuY3BwCkBAIC0zMDEsNyArMzAxLDggQEAg
RXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdG
YWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIEdQUlJlZyBkZXN0ID0gd2FzbUNh
bGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCk7CiAKICAgICAgICAgICAgIGludDMyX3QgKCpjb252ZXJ0
VG9JMzIpKENhbGxGcmFtZSosIEpTVmFsdWUpID0gW10gKENhbGxGcmFtZSogY2FsbEZyYW1lLCBK
U1ZhbHVlIHYpIC0+IGludDMyX3QgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FCisgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNl
KiBpbnN0ZWFkLgorICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDMyMDYKICAgICAgICAgICAgICAgICBWTSYgdm0gPSBjYWxsRnJhbWUt
PnZtKCk7CiAgICAgICAgICAgICAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdi50b0ludDMyKGNhbGxGcmFtZS0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381600</attachid>
            <date>2019-10-22 14:11:06 -0700</date>
            <delta_ts>2019-10-22 14:20:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203260-20191022141105.patch</filename>
            <type>text/plain</type>
            <size>61421</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NTVlNDRlZjQxZDdjNWE5YjMxYWM1NjcyNTgzMzdkNWU0NzQ4ZTAwLi5mMWRhNmNkMmIwMDRiOTc1
ZjllMzZkMTJmZjE5MjM2ZmFhZjczNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTMgQEAKKzIwMTktMTAtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBSZW1vdmUgbm9uLUxhcmdlQWxsb2NhdGlvbiByZXN0cmljdGlv
biBmb3IgSlNDYWxsZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMzI2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlIG5vdyBwYXNzIEpTR2xvYmFsT2JqZWN0KiBpbnN0ZWFkIG9mIEV4ZWNTdGF0ZSou
IEFuZCB3ZSBhcmUgZ2V0dGluZyBWTSYgZnJvbSBKU0dsb2JhbE9iamVjdCouCisgICAgICAgIEJl
Y2F1c2Ugbm93IGFjY2Vzc2luZyBFeGVjU3RhdGU6OnZtKCkgYmVjb21lcyBsZXNzIGZyZXF1ZW50
LCB3ZSBjYW4gcmVtb3ZlIHRoZSByZXN0cmljdGlvbiB0aGF0CisgICAgICAgIGNhbGxlZSBpcyBv
bmx5IGFsbG9jYXRlZCBpbiBub24tTGFyZ2VBbGxvY2F0aW9uLCB3aGljaCByZXN0cmljdGlvbiBt
YWRlIEV4ZWNTdGF0ZTo6dm0gZmFzdC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbmFtZXMgYENh
bGxGcmFtZTo6dm1gIHRvIGBDYWxsRnJhbWU6OmRlcHJlY2F0ZWRWTWAuIEFuZCB3ZSBhdm9pZCB1
c2luZyBpdCBhcyBtdWNoIGFzIHBvc3NpYmxlLgorICAgICAgICBBbmQgd2UgYWxzbyByZW1vdmUg
dGhlIHJlc3RyaWN0aW9uIHRoYXQgY2FsbGVlIG5lZWRzIHRvIGJlIGluIG5vbi1MYXJnZUFsbG9j
YXRpb24uCisKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKEpTQ29u
dGV4dENyZWF0ZUJhY2t0cmFjZSk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpub3RpY2VJbmNvbWluZ0NhbGwpOgorICAgICAgICAq
IGRlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJD
YWxsRnJhbWU6OmRlcHJlY2F0ZWRWTUVudHJ5R2xvYmFsT2JqZWN0IGNvbnN0KToKKyAgICAgICAg
KEpTQzo6RGVidWdnZXJDYWxsRnJhbWU6OmZ1bmN0aW9uTmFtZSBjb25zdCk6CisgICAgICAgIChK
U0M6OkRlYnVnZ2VyQ2FsbEZyYW1lOjpzY29wZSk6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQ2Fs
bEZyYW1lOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6RGVidWdnZXJDYWxsRnJhbWU6OmV2
YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKToKKyAgICAgICAgKEpTQzo6RGVidWdnZXJDYWxsRnJh
bWU6OnBvc2l0aW9uRm9yQ2FsbEZyYW1lKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdDo6ZXhlY3V0ZU9TUkV4aXQpOgorICAgICAgICAo
SlNDOjpERkc6Ok9TUkV4aXQ6OmNvbXBpbGVPU1JFeGl0KToKKyAgICAgICAgKEpTQzo6REZHOjpP
U1JFeGl0OjpkZWJ1Z09wZXJhdGlvblByaW50U3BlY3VsYXRpb25GYWlsdXJlKToKKyAgICAgICAg
KiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y29tcGlsZUZUTE9TUkV4aXQpOgorICAgICAgICAq
IGZ0bC9GVExPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlRlRMTGF6
eVNsb3dQYXRoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3Bw
OgorICAgICAgICAoSW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6ZXZhbHVhdGVXaXRo
U2NvcGVFeHRlbnNpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0
b3J5LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrKToKKyAg
ICAgICAgKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZSk6CisgICAg
ICAgICogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1l
OjpjYWxsZXJTb3VyY2VPcmlnaW4pOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OmZyaWVuZGx5
RnVuY3Rpb25OYW1lKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuaDoKKyAgICAg
ICAgKEpTQzo6Q2FsbEZyYW1lOjppdGVyYXRlKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRl
cnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OnNpemVPZlZhcmFyZ3MpOgorICAgICAgICAoSlND
OjpzaXplRnJhbWVGb3JWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmdldFN0
YWNrVHJhY2UpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6dW53aW5kKToKKyAgICAgICAg
KEpTQzo6SW50ZXJwcmV0ZXI6Om5vdGlmeURlYnVnZ2VyT2ZFeGNlcHRpb25Ub0JlVGhyb3duKToK
KyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmRlYnVnKToKKyAgICAgICAgKiBpbnRlcnByZXRl
ci9JbnRlcnByZXRlci5oOgorICAgICAgICAqIGludGVycHJldGVyL1NoYWRvd0NoaWNrZW4uY3Bw
OgorICAgICAgICAoSlNDOjpTaGFkb3dDaGlja2VuOjp1cGRhdGUpOgorICAgICAgICAqIGludGVy
cHJldGVyL1N0YWNrVmlzaXRvci5jcHA6CisgICAgICAgIChKU0M6OlN0YWNrVmlzaXRvcjo6U3Rh
Y2tWaXNpdG9yKToKKyAgICAgICAgKEpTQzo6U3RhY2tWaXNpdG9yOjpGcmFtZTo6ZnVuY3Rpb25O
YW1lIGNvbnN0KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaDoKKyAgICAg
ICAgKEpTQzo6U3RhY2tWaXNpdG9yOjp2aXNpdCk6CisgICAgICAgICogaml0L0hvc3RDYWxsUmV0
dXJuVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4
ZWNTdGF0ZSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGpp
dC9SZXBhdGNoLmNwcDoKKyAgICAgICAgKEpTQzo6bGlua0Zvcik6CisgICAgICAgIChKU0M6Omxp
bmtQb2x5bW9ycGhpY0NhbGwpOgorICAgICAgICAqIGppdC9SZXBhdGNoLmg6CisgICAgICAgICog
anNjLmNwcDoKKyAgICAgICAgKGZ1bmN0aW9uSlNDU3RhY2spOgorICAgICAgICAoZnVuY3Rpb25S
dW5TdHJpbmcpOgorICAgICAgICAoZnVuY3Rpb25Mb2FkU3RyaW5nKToKKyAgICAgICAgKGZ1bmN0
aW9uQ2FsbGVyU291cmNlT3JpZ2luKToKKyAgICAgICAgKGZ1bmN0aW9uQ2FsbGVySXNPTUdDb21w
aWxlZCk6CisgICAgICAgIChmdW5jdGlvbkRvbGxhckV2YWxTY3JpcHQpOgorICAgICAgICAqIGxs
aW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkxMSU5UX1NMT1df
UEFUSF9ERUNMKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6
Z2V0Qnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEZ1bmN0aW9uKToKKyAgICAgICAgKiBydW50
aW1lL0pTQ2VsbElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1lOjpkZXByZWNhdGVk
Vk0gY29uc3QpOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnZtIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpyZXRyaWV2
ZUFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcik6
CisgICAgICAgIChKU0M6OnJldHJpZXZlQ2FsbGVyRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpK
U0Z1bmN0aW9uOjpjYWxsZXJHZXR0ZXIpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpkZWZp
bmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OmFzc2VydENhbGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jRXZhbCk6CisgICAgICAg
IChKU0M6Omdsb2JhbEZ1bmNJbXBvcnRNb2R1bGUpOgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNl
dHRlckZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6Y2FsbGVySXNTdHJpY3QpOgorICAgICAg
ICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6Y2FsbFJldHVyblVuZGVmaW5lZCk6
CisgICAgICAgICogdG9vbHMvSlNEb2xsYXJWTS5jcHA6CisgICAgICAgIChJR05PUkVfV0FSTklO
R1NfQkVHSU4pOgorICAgICAgICAoSlNDOjpmdW5jdGlvbkxMaW50VHJ1ZSk6CisgICAgICAgIChK
U0M6OmZ1bmN0aW9uSklUVHJ1ZSk6CisgICAgICAgIChKU0M6OmZ1bmN0aW9uRHVtcFJlZ2lzdGVy
cyk6CisgICAgICAgIChKU0M6OmZ1bmN0aW9uU2hhZG93Q2hpY2tlbkZ1bmN0aW9uc09uU3RhY2sp
OgorICAgICAgICAqIHRvb2xzL1ZNSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1JbnNw
ZWN0b3I6OmNvZGVCbG9ja0ZvckZyYW1lKToKKyAgICAgICAgKEpTQzo6Vk1JbnNwZWN0b3I6OmR1
bXBDYWxsRnJhbWUpOgorICAgICAgICAoSlNDOjpWTUluc3BlY3Rvcjo6ZHVtcFJlZ2lzdGVycyk6
CisgICAgICAgIChKU0M6OlZNSW5zcGVjdG9yOjpkdW1wU3RhY2spOgorICAgICAgICAqIHdhc20v
anMvV2FzbVRvSlMuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjp3YXNtVG9KUyk6CisKIDIwMTkt
MTAtMjIgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXVtXUEVdIEZpeCBub24tdW5pZmllZCBidWlsZHMgYWZ0ZXIgcjI1MTMyNgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDZlZDA4NjdiMjUwODU1YzE0Y2IzMWM3MTQ0YWY3MTg2MTcwODA4M2YuLmQ2Mzcz
ZDUxYmJjZjJkY2Q1NTA4NDk5N2IwMWFmOGFkNjk2M2UwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAxOS0xMC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgor
CisgICAgICAgIFtKU0NdIFJlbW92ZSBub24tTGFyZ2VBbGxvY2F0aW9uIHJlc3RyaWN0aW9uIGZv
ciBKU0NhbGxlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzMjYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUGFzc2luZyBWTSYgaW5zdGVhZCBvZiBjYWxsaW5nIENhbGxGcmFtZTo6dm0uCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjYWxsZXJHbG9iYWxPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXNwb25zaWJsZURvY3VtZW50KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbFdpdGgpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6cGFyc2VyTWV0YURhdGEpOgorCiAyMDE5LTEwLTIyICB5b3Vlbm4gZmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgbWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdp
c3RlcmVkRm9yT3JpZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q29udGV4dFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKaW5kZXggNDZiZTUxOWQ1NWM5ZTQzN2NlNTJiNTVkNDAxYzhhNGE5NTI0N2QyMi4uMjIyYTRl
ZTIwZGNiYWRiMDdiN2JjNjU0ZGNmOGFhODBjZjJjMTJiZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcApAQCAtMzM0LDcgKzMzNCw3IEBAIEpTU3RyaW5nUmVm
IEpTQ29udGV4dENyZWF0ZUJhY2t0cmFjZShKU0NvbnRleHRSZWYgY3R4LCB1bnNpZ25lZCBtYXhT
dGFja1NpemUpCiAKICAgICBBU1NFUlQobWF4U3RhY2tTaXplKTsKICAgICBCYWNrdHJhY2VGdW5j
dG9yIGZ1bmN0b3IoYnVpbGRlciwgbWF4U3RhY2tTaXplKTsKLSAgICBmcmFtZS0+aXRlcmF0ZShm
dW5jdG9yKTsKKyAgICBmcmFtZS0+aXRlcmF0ZSh2bSwgZnVuY3Rvcik7CiAKICAgICByZXR1cm4g
T3BhcXVlSlNTdHJpbmc6OnRyeUNyZWF0ZShidWlsZGVyLnRvU3RyaW5nKCkpLmxlYWtSZWYoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXgg
MDlmNTA3MzhkZTVkNWVmYmYzZmQxNDE1N2IyNzVmMmJjNDJhZGUzYS4uNGU5NDdhMzdiNDgyNjhk
YzI0MDFkNWQ5MDU4YmFiZGI1M2JmNjVlNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTIyMjksNyArMjIyOSw3IEBAIHZvaWQgQ29kZUJsb2Nr
Ojpub3RpY2VJbmNvbWluZ0NhbGwoQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSkKIAogICAgIC8vIFJl
Y3Vyc2l2ZSBjYWxscyB3b24ndCBiZSBpbmxpbmVkLgogICAgIFJlY3Vyc2lvbkNoZWNrRnVuY3Rv
ciBmdW5jdG9yKGNhbGxlckZyYW1lLCB0aGlzLCBPcHRpb25zOjptYXhpbXVtSW5saW5pbmdEZXB0
aCgpKTsKLSAgICB2bSgpLnRvcENhbGxGcmFtZS0+aXRlcmF0ZShmdW5jdG9yKTsKKyAgICB2bSgp
LnRvcENhbGxGcmFtZS0+aXRlcmF0ZSh2bSgpLCBmdW5jdG9yKTsKIAogICAgIGlmIChmdW5jdG9y
LmRpZFJlY3Vyc2UoKSkgewogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZUNhbGxMaW5rKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxs
RnJhbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZy
YW1lLmNwcAppbmRleCAwMGM3NTU0ODYzMGNkZDViYjBhYWZhZjBlMjc0OThlNjk0MDgwNjdhLi4y
YWUwYjA3MjlmYWRiYWNhMmJjNDI3MzVmYmNjZTBlMWQ2NmFlODJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKQEAgLTEy
NCw3ICsxMjQsNyBAQCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBEZWJ1Z2dlckNhbGxGcmFtZTo6ZGVw
cmVjYXRlZFZNRW50cnlHbG9iYWxPYmplY3QoKSBjb25zdAogICAgIEFTU0VSVChpc1ZhbGlkKCkp
OwogICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBWTSYg
dm0gPSBtX3ZhbGlkTWFjaGluZUZyYW1lLT52bSgpOworICAgIFZNJiB2bSA9IG1fdmFsaWRNYWNo
aW5lRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIHJldHVybiB2bS5kZXByZWNhdGVkVk1FbnRy
eUdsb2JhbE9iamVjdChtX3ZhbGlkTWFjaGluZUZyYW1lLT53YXNtQXdhcmVMZXhpY2FsR2xvYmFs
T2JqZWN0KHZtKSk7CiB9CiAKQEAgLTE0NCw3ICsxNDQsNyBAQCBTdHJpbmcgRGVidWdnZXJDYWxs
RnJhbWU6OmZ1bmN0aW9uTmFtZSgpIGNvbnN0CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAg
IHJldHVybiBTdHJpbmcoKTsKIAotICAgIFZNJiB2bSA9IG1fdmFsaWRNYWNoaW5lRnJhbWUtPnZt
KCk7CisgICAgVk0mIHZtID0gbV92YWxpZE1hY2hpbmVGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAg
ICAgaWYgKGlzVGFpbERlbGV0ZWQoKSkgewogICAgICAgICBpZiAoSlNGdW5jdGlvbiogZnVuYyA9
IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KHZtLCBtX3NoYWRvd0NoaWNrZW5GcmFtZS5jYWxs
ZWUpKQogICAgICAgICAgICAgcmV0dXJuIGZ1bmMtPmNhbGN1bGF0ZWREaXNwbGF5TmFtZSh2bSk7
CkBAIC0xNjEsNyArMTYxLDcgQEAgRGVidWdnZXJTY29wZSogRGVidWdnZXJDYWxsRnJhbWU6OnNj
b3BlKCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoIW1fc2NvcGUpIHsKLSAg
ICAgICAgVk0mIHZtID0gbV92YWxpZE1hY2hpbmVGcmFtZS0+dm0oKTsKKyAgICAgICAgVk0mIHZt
ID0gbV92YWxpZE1hY2hpbmVGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgICAgIEpTU2NvcGUq
IHNjb3BlOwogICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IG1fdmFsaWRNYWNoaW5lRnJh
bWUtPmNvZGVCbG9jaygpOwogICAgICAgICBpZiAoaXNUYWlsRGVsZXRlZCgpKQpAQCAtMTg3LDcg
KzE4Nyw3IEBAIERlYnVnZ2VyQ2FsbEZyYW1lOjpUeXBlIERlYnVnZ2VyQ2FsbEZyYW1lOjp0eXBl
KCkgY29uc3QKICAgICBpZiAoaXNUYWlsRGVsZXRlZCgpKQogICAgICAgICByZXR1cm4gRnVuY3Rp
b25UeXBlOwogCi0gICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KG1fdmFsaWRNYWNo
aW5lRnJhbWUtPnZtKCksIG1fdmFsaWRNYWNoaW5lRnJhbWUtPmpzQ2FsbGVlKCkpKQorICAgIGlm
IChqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24qPihtX3ZhbGlkTWFjaGluZUZyYW1lLT5kZXByZWNh
dGVkVk0oKSwgbV92YWxpZE1hY2hpbmVGcmFtZS0+anNDYWxsZWUoKSkpCiAgICAgICAgIHJldHVy
biBGdW5jdGlvblR5cGU7CiAKICAgICByZXR1cm4gUHJvZ3JhbVR5cGU7CkBAIC0yMjYsNyArMjI2
LDcgQEAgSlNWYWx1ZSBEZWJ1Z2dlckNhbGxGcmFtZTo6ZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNp
b24oY29uc3QgU3RyaW5nJiBzY3JpcHQsIEpTT2IKICAgICBpZiAoIWNhbGxGcmFtZSkKICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7
CisgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBKU0xvY2tIb2xk
ZXIgbG9jayh2bSk7CiAgICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2
bSk7CiAKQEAgLTI1Myw3ICsyNTMsNyBAQCBKU1ZhbHVlIERlYnVnZ2VyQ2FsbEZyYW1lOjpldmFs
dWF0ZVdpdGhTY29wZUV4dGVuc2lvbihjb25zdCBTdHJpbmcmIHNjcmlwdCwgSlNPYgogICAgIFZh
cmlhYmxlRW52aXJvbm1lbnQgdmFyaWFibGVzVW5kZXJURFo7CiAgICAgSlNTY29wZTo6Y29sbGVj
dENsb3N1cmVWYXJpYWJsZXNVbmRlclREWihzY29wZSgpLT5qc1Njb3BlKCksIHZhcmlhYmxlc1Vu
ZGVyVERaKTsKIAotICAgIGF1dG8qIGV2YWwgPSBEaXJlY3RFdmFsRXhlY3V0YWJsZTo6Y3JlYXRl
KGdsb2JhbE9iamVjdCwgbWFrZVNvdXJjZShzY3JpcHQsIGNhbGxGcmFtZS0+Y2FsbGVyU291cmNl
T3JpZ2luKCkpLCBjb2RlQmxvY2stPmlzU3RyaWN0TW9kZSgpLCBjb2RlQmxvY2stPnVubGlua2Vk
Q29kZUJsb2NrKCktPmRlcml2ZWRDb250ZXh0VHlwZSgpLCBjb2RlQmxvY2stPnVubGlua2VkQ29k
ZUJsb2NrKCktPmlzQXJyb3dGdW5jdGlvbigpLCBldmFsQ29udGV4dFR5cGUsICZ2YXJpYWJsZXNV
bmRlclREWik7CisgICAgYXV0byogZXZhbCA9IERpcmVjdEV2YWxFeGVjdXRhYmxlOjpjcmVhdGUo
Z2xvYmFsT2JqZWN0LCBtYWtlU291cmNlKHNjcmlwdCwgY2FsbEZyYW1lLT5jYWxsZXJTb3VyY2VP
cmlnaW4odm0pKSwgY29kZUJsb2NrLT5pc1N0cmljdE1vZGUoKSwgY29kZUJsb2NrLT51bmxpbmtl
ZENvZGVCbG9jaygpLT5kZXJpdmVkQ29udGV4dFR5cGUoKSwgY29kZUJsb2NrLT51bmxpbmtlZENv
ZGVCbG9jaygpLT5pc0Fycm93RnVuY3Rpb24oKSwgZXZhbENvbnRleHRUeXBlLCAmdmFyaWFibGVz
VW5kZXJURFopOwogICAgIGlmIChVTkxJS0VMWShjYXRjaFNjb3BlLmV4Y2VwdGlvbigpKSkgewog
ICAgICAgICBleGNlcHRpb24gPSBjYXRjaFNjb3BlLmV4Y2VwdGlvbigpOwogICAgICAgICBjYXRj
aFNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CkBAIC0zMTEsNyArMzExLDcgQEAgVGV4dFBvc2l0aW9u
IERlYnVnZ2VyQ2FsbEZyYW1lOjpjdXJyZW50UG9zaXRpb24oVk0mIHZtKQogVGV4dFBvc2l0aW9u
IERlYnVnZ2VyQ2FsbEZyYW1lOjpwb3NpdGlvbkZvckNhbGxGcmFtZShWTSYgdm0sIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQogewogICAgIExpbmVBbmRDb2x1bW5GdW5jdG9yIGZ1bmN0b3I7Ci0gICAg
U3RhY2tWaXNpdG9yOjp2aXNpdChjYWxsRnJhbWUsICZ2bSwgZnVuY3Rvcik7CisgICAgU3RhY2tW
aXNpdG9yOjp2aXNpdChjYWxsRnJhbWUsIHZtLCBmdW5jdG9yKTsKICAgICByZXR1cm4gVGV4dFBv
c2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChmdW5jdG9yLmxpbmUoKSksIE9y
ZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChmdW5jdG9yLmNvbHVtbigpKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCmluZGV4IDhlZjc4MzQyOWFmYzNi
NTYzYWQwMTI1YzdhZmM0OGQ0Y2NhZjliZWIuLmFjNmI5Y2RhNTg1YzEwZmU1ZDA5ZjJiZmZkZjY0
NjBjZTQ5OTUzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RXhpdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcApA
QCAtMzM1LDcgKzMzNSw3IEBAIHZvaWQgT1NSRXhpdDo6ZXhlY3V0ZU9TUkV4aXQoQ29udGV4dCYg
Y29udGV4dCkKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IGNvbnRleHQuZnA8Q2FsbEZyYW1lKj4oKTsKLSAgICBB
U1NFUlQoJmNhbGxGcmFtZS0+dm0oKSA9PSAmdm0pOworICAgIEFTU0VSVCgmY2FsbEZyYW1lLT5k
ZXByZWNhdGVkVk0oKSA9PSAmdm0pOwogICAgIGF1dG8mIGNwdSA9IGNvbnRleHQuY3B1OwogCiAg
ICAgaWYgKHZhbGlkYXRlREZHRG9lc0dDKSB7CkBAIC0xMDI4LDcgKzEwMjgsNyBAQCB2b2lkIE9T
UkV4aXQ6OmVtaXRSZXN0b3JlQXJndW1lbnRzKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBPcGVy
YW5kczxWYWx1ZVJlY292ZQogCiB2b2lkIEpJVF9PUEVSQVRJT04gT1NSRXhpdDo6Y29tcGlsZU9T
UkV4aXQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7Ci0gICAgVk0mIHZtID0gY2FsbEZyYW1lLT52
bSgpOworICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKHZhbGlkYXRlREZHRG9l
c0dDKSB7CkBAIC0xNjYzLDcgKzE2NjMsNyBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBpbGVFeGl0KEND
YWxsSGVscGVycyYgaml0LCBWTSYgdm0sIGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0CiAKIHZv
aWQgSklUX09QRVJBVElPTiBPU1JFeGl0OjpkZWJ1Z09wZXJhdGlvblByaW50U3BlY3VsYXRpb25G
YWlsdXJlKENhbGxGcmFtZSogY2FsbEZyYW1lLCB2b2lkKiBkZWJ1Z0luZm9SYXcsIHZvaWQqIHNj
cmF0Y2gpCiB7Ci0gICAgVk0mIHZtID0gY2FsbEZyYW1lLT52bSgpOworICAgIFZNJiB2bSA9IGNh
bGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKIAogICAgIFNwZWN1bGF0aW9uRmFpbHVyZURlYnVnSW5mbyogZGVi
dWdJbmZvID0gc3RhdGljX2Nhc3Q8U3BlY3VsYXRpb25GYWlsdXJlRGVidWdJbmZvKj4oZGVidWdJ
bmZvUmF3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmlu
ZGV4IDVmNTczZTI4MWQ2MzJmYmZmZjY3ODlkZWJiMGIzMDRiMWVjZDhjOTUuLmQ2ZGEzZjAyNGE1
MGRjMTM4ODdjNzZhZTg2ZmFiZDgzOWQ5ZDUyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMjg0OSw3ICsyODQ5LDcgQEAgaW50MzJfdCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblNpemVPZlZhcmFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2QKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOwogICAgIEpTVmFsdWUgYXJndW1lbnRzID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1
bWVudHMpOwogICAgIAotICAgIHJldHVybiBzaXplT2ZWYXJhcmdzKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCBhcmd1bWVudHMsIGZpcnN0VmFyQXJnT2Zmc2V0KTsKKyAgICByZXR1cm4gc2l6ZU9m
VmFyYXJncyhnbG9iYWxPYmplY3QsIGFyZ3VtZW50cywgZmlyc3RWYXJBcmdPZmZzZXQpOwogfQog
CiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzT3duUHJvcGVydHkoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRLZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9T
UkV4aXRDb21waWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRD
b21waWxlci5jcHAKaW5kZXggOThiZTM4N2RmMWYwNjU3YjFiM2NkZWM5ZGI3NTFmYzRiY2IxZDAw
Yy4uZjZiM2E3NGNhM2U4NjQ1ZTExMmRjYWQ1ZWIzNjRlOWFhNGE2NzY3YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcApAQCAtNTA1LDcg
KzUwNSw3IEBAIGV4dGVybiAiQyIgdm9pZCogY29tcGlsZUZUTE9TUkV4aXQoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHVuc2lnbmVkIGV4aXRJRCkKICAgICBpZiAoc2hvdWxkRHVtcERpc2Fzc2VtYmx5
KCkgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpIHx8IE9wdGlvbnM6OnZlcmJvc2VGVExPU1JFeGl0
KCkpCiAgICAgICAgIGRhdGFMb2coIkNvbXBpbGluZyBPU1IgZXhpdCB3aXRoIGV4aXRJRCA9ICIs
IGV4aXRJRCwgIlxuIik7CiAKLSAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CisgICAgVk0m
IHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKIAogICAgIGlmICh2YWxpZGF0ZURGR0Rv
ZXNHQykgewogICAgICAgICAvLyBXZSdyZSBhYm91dCB0byBleGl0IG9wdGltaXplZCBjb2RlLiBT
bywgdGhlcmUncyBubyBsb25nZXIgYW55IG9wdGltaXplZApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT3BlcmF0aW9ucy5jcHAKaW5kZXggZGNhYmEzMTJmY2NmODE1ZjI4MTViZDBhNTQw
MDZjYmIwMjczYWE5Mi4uMjhjOTViMTY5ZDZlNzg0ODkzMjYzZWUwNDIyNWYxYTJmMTU2MTlkZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwCkBAIC02MDks
NyArNjA5LDcgQEAgZXh0ZXJuICJDIiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWF0
ZXJpYWxpemVPYmplY3RJbk9TUihKU0dsb2JhbE9iamVjdCoKIAogZXh0ZXJuICJDIiB2b2lkKiBK
SVRfT1BFUkFUSU9OIGNvbXBpbGVGVExMYXp5U2xvd1BhdGgoQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHVuc2lnbmVkIGluZGV4KQogewotICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+dm0oKTsKKyAgICBW
TSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogCiAgICAgLy8gV2UgY2Fubm90IEdD
LiBXZSd2ZSBnb3QgcG9pbnRlcnMgaW4gZXZpbCBwbGFjZXMuCiAgICAgRGVmZXJHQ0ZvckFXaGls
ZSBkZWZlckdDKHZtLmhlYXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAppbmRleCAzNDExNTY5ZTM1NDFjNzU0
OWNmNWZlMGU0ZDA4ZjhhNmZjNDliNDVlLi4yZTA0ZmExMjNkNTE1NTAwNDkzMTYwY2U3OWUzZjkz
NmYxNWMyNDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
SW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIEpTVmFsdWUg
SlNJbmplY3RlZFNjcmlwdEhvc3Q6OmV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPCiAKICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsKICAg
ICBKU09iamVjdCogc2NvcGVFeHRlbnNpb24gPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLmdldE9i
amVjdCgpOwotICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNDOjpldmFsdWF0ZVdpdGhTY29wZUV4dGVu
c2lvbihnbG9iYWxPYmplY3QsIG1ha2VTb3VyY2UocHJvZ3JhbSwgY2FsbEZyYW1lLT5jYWxsZXJT
b3VyY2VPcmlnaW4oKSksIHNjb3BlRXh0ZW5zaW9uLCBleGNlcHRpb24pOworICAgIEpTVmFsdWUg
cmVzdWx0ID0gSlNDOjpldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihnbG9iYWxPYmplY3QsIG1h
a2VTb3VyY2UocHJvZ3JhbSwgY2FsbEZyYW1lLT5jYWxsZXJTb3VyY2VPcmlnaW4odm0pKSwgc2Nv
cGVFeHRlbnNpb24sIGV4Y2VwdGlvbik7CiAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgdGhy
b3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgZXhjZXB0aW9uKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFj
dG9yeS5jcHAKaW5kZXggOGE1NjU0YzdkZDUyOTU5ZTA1ODQ5NzNhMWIxOTNlYmFkMDRhYzBkNC4u
NmQ3ZDNjNWEyZjMyODJjMzg0ZWE1MTlkODNhMjFjYTgyNjNkNzNhZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3Rv
cnkuY3BwCkBAIC05MiwxMSArOTIsMTIgQEAgUmVmPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2Ny
aXB0Q2FsbFN0YWNrKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgc2kKICAgICBK
U0xvY2tIb2xkZXIgbG9ja2VyKGdsb2JhbE9iamVjdCk7CiAgICAgVmVjdG9yPFNjcmlwdENhbGxG
cmFtZT4gZnJhbWVzOwogCi0gICAgQ2FsbEZyYW1lKiBmcmFtZSA9IGdsb2JhbE9iamVjdC0+dm0o
KS50b3BDYWxsRnJhbWU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIENh
bGxGcmFtZSogZnJhbWUgPSB2bS50b3BDYWxsRnJhbWU7CiAgICAgaWYgKCFmcmFtZSkKICAgICAg
ICAgcmV0dXJuIFNjcmlwdENhbGxTdGFjazo6Y3JlYXRlKCk7CiAgICAgQ3JlYXRlU2NyaXB0Q2Fs
bFN0YWNrRnVuY3RvciBmdW5jdG9yKGZhbHNlLCBmcmFtZXMsIG1heFN0YWNrU2l6ZSk7Ci0gICAg
ZnJhbWUtPml0ZXJhdGUoZnVuY3Rvcik7CisgICAgZnJhbWUtPml0ZXJhdGUodm0sIGZ1bmN0b3Ip
OwogCiAgICAgcmV0dXJuIFNjcmlwdENhbGxTdGFjazo6Y3JlYXRlKGZyYW1lcyk7CiB9CkBAIC0x
MDksMTUgKzExMCwxNiBAQCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3Rh
Y2tGb3JDb25zb2xlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIEpTTG9ja0hvbGRl
ciBsb2NrZXIoZ2xvYmFsT2JqZWN0KTsKICAgICBWZWN0b3I8U2NyaXB0Q2FsbEZyYW1lPiBmcmFt
ZXM7CiAKLSAgICBDYWxsRnJhbWUqIGZyYW1lID0gZ2xvYmFsT2JqZWN0LT52bSgpLnRvcENhbGxG
cmFtZTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgQ2FsbEZyYW1lKiBm
cmFtZSA9IHZtLnRvcENhbGxGcmFtZTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4g
U2NyaXB0Q2FsbFN0YWNrOjpjcmVhdGUoKTsKICAgICBDcmVhdGVTY3JpcHRDYWxsU3RhY2tGdW5j
dG9yIGZ1bmN0b3IodHJ1ZSwgZnJhbWVzLCBtYXhTdGFja1NpemUpOwotICAgIGZyYW1lLT5pdGVy
YXRlKGZ1bmN0b3IpOworICAgIGZyYW1lLT5pdGVyYXRlKHZtLCBmdW5jdG9yKTsKIAogICAgIGlm
IChmcmFtZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIENyZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0
b3IgZnVuY3RvcihmYWxzZSwgZnJhbWVzLCBtYXhTdGFja1NpemUpOwotICAgICAgICBmcmFtZS0+
aXRlcmF0ZShmdW5jdG9yKTsKKyAgICAgICAgZnJhbWUtPml0ZXJhdGUodm0sIGZ1bmN0b3IpOwog
ICAgIH0KIAogICAgIHJldHVybiBTY3JpcHRDYWxsU3RhY2s6OmNyZWF0ZShmcmFtZXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAppbmRleCA4
MDk5MGNlYzAyMWRjM2Q4NmRiMzFjZTFjYjAwNzc4ZDFmMTg3YTFjLi41MjMyMDU4NjFjY2YwNDkx
ZTIyMDcxOWM1NzM5YzUzZjA2ZWNhODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcApAQCAtMjMzLDEwICsyMzMsOSBAQCBTVVBQUkVTU19B
U0FOIENhbGxGcmFtZSogQ2FsbEZyYW1lOjp1bnNhZmVDYWxsZXJGcmFtZShFbnRyeUZyYW1lKiYg
Y3VyckVudHJ5RnJhbQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWxsRnJhbWUqPih1bnNhZmVD
YWxsZXJGcmFtZU9yRW50cnlGcmFtZSgpKTsKIH0KIAotU291cmNlT3JpZ2luIENhbGxGcmFtZTo6
Y2FsbGVyU291cmNlT3JpZ2luKCkKK1NvdXJjZU9yaWdpbiBDYWxsRnJhbWU6OmNhbGxlclNvdXJj
ZU9yaWdpbihWTSYgdm0pCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoY2FsbGVlKCkuaXNDZWxsKCkp
OwotICAgIFZNKiB2bSA9ICZ0aGlzLT52bSgpOwogICAgIFNvdXJjZU9yaWdpbiBzb3VyY2VPcmln
aW47CiAgICAgYm9vbCBoYXZlU2tpcHBlZEZpcnN0RnJhbWUgPSBmYWxzZTsKICAgICBTdGFja1Zp
c2l0b3I6OnZpc2l0KHRoaXMsIHZtLCBbJl0oU3RhY2tWaXNpdG9yJiB2aXNpdG9yKSB7CkBAIC0y
OTIsNyArMjkxLDcgQEAgU3RyaW5nIENhbGxGcmFtZTo6ZnJpZW5kbHlGdW5jdGlvbk5hbWUoKQog
ICAgICAgICByZXR1cm4gImdsb2JhbCBjb2RlIl9zOwogICAgIGNhc2UgRnVuY3Rpb25Db2RlOgog
ICAgICAgICBpZiAoanNDYWxsZWUoKSkKLSAgICAgICAgICAgIHJldHVybiBnZXRDYWxjdWxhdGVk
RGlzcGxheU5hbWUodm0oKSwganNDYWxsZWUoKSk7CisgICAgICAgICAgICByZXR1cm4gZ2V0Q2Fs
Y3VsYXRlZERpc3BsYXlOYW1lKGNvZGVCbG9jay0+dm0oKSwganNDYWxsZWUoKSk7CiAgICAgICAg
IHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0NhbGxGcmFtZS5oCmluZGV4IDEwZTQ2YTcyMzMxZDE3ZDQzNTc1YzI1ZGJm
NzQxYjUwZjQyZjlhM2QuLjY2MmE0MDg1NWE3NDYyY2Y3NmI4MmY3YjcxNGE3NDFjZWVkODg2YzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKQEAg
LTEzNiw3ICsxMzYsNyBAQCBuYW1lc3BhY2UgSlNDICB7CiAgICAgICAgIC8vIERpZmZlcnMgZnJv
bSBWTTo6ZGVwcmVjYXRlZFZNRW50cnlHbG9iYWxPYmplY3QoKSBkdXJpbmcgZnVuY3Rpb24gY2Fs
bHMgYWNyb3NzIHdlYiBicm93c2VyIGZyYW1lcy4KICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QoKSBjb25zdDsKIAotICAgICAgICBWTSYgdm0oKSBjb25zdDsKKyAg
ICAgICAgVk0mIGRlcHJlY2F0ZWRWTSgpIGNvbnN0OwogCiAgICAgICAgIHN0YXRpYyBDYWxsRnJh
bWUqIGNyZWF0ZShSZWdpc3RlciogY2FsbEZyYW1lQmFzZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
Q2FsbEZyYW1lKj4oY2FsbEZyYW1lQmFzZSk7IH0KICAgICAgICAgUmVnaXN0ZXIqIHJlZ2lzdGVy
cygpIHsgcmV0dXJuIHRoaXM7IH0KQEAgLTE1MSw3ICsxNTEsNyBAQCBuYW1lc3BhY2UgSlNDICB7
CiAgICAgICAgIENhbGxGcmFtZSogdW5zYWZlQ2FsbGVyRnJhbWUoRW50cnlGcmFtZSomKSBjb25z
dDsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZShFbnRy
eUZyYW1lKiYpIGNvbnN0OwogCi0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFNvdXJjZU9yaWdp
biBjYWxsZXJTb3VyY2VPcmlnaW4oKTsKKyAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU291cmNl
T3JpZ2luIGNhbGxlclNvdXJjZU9yaWdpbihWTSYpOwogCiAgICAgICAgIHN0YXRpYyBwdHJkaWZm
X3QgY2FsbGVyRnJhbWVPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoQ2FsbGVyRnJh
bWVBbmRQQywgY2FsbGVyRnJhbWUpOyB9CiAKQEAgLTI4MCwxNSArMjgwLDExIEBAIG5hbWVzcGFj
ZSBKU0MgIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIGlzIGltcHJvcGVyLiBXZSBy
ZWx5IG9uIHRoZSBmYWN0IHRoYXQgd2UgY2FuIGNhbGwgaXQgd2l0aCBhIG51bGwKICAgICAgICAg
Ly8gcmVjZWl2ZXIuIFdlIHNob3VsZCBhbHdheXMgYmUgdXNpbmcgU3RhY2tWaXNpdG9yIGRpcmVj
dGx5LgogICAgICAgICAvLyBJdCdzIG9ubHkgdmFsaWQgdG8gY2FsbCB0aGlzIGZyb20gYSBub24t
d2FzbSB0b3AgZnJhbWUuCi0gICAgICAgIHRlbXBsYXRlIDxTdGFja1Zpc2l0b3I6OkVtcHR5RW50
cnlGcmFtZUFjdGlvbiBhY3Rpb24gPSBTdGFja1Zpc2l0b3I6OkNvbnRpbnVlSWZUb3BFbnRyeUZy
YW1lSXNFbXB0eSwgdHlwZW5hbWUgRnVuY3Rvcj4gdm9pZCBpdGVyYXRlKGNvbnN0IEZ1bmN0b3Im
IGZ1bmN0b3IpCisgICAgICAgIHRlbXBsYXRlIDxTdGFja1Zpc2l0b3I6OkVtcHR5RW50cnlGcmFt
ZUFjdGlvbiBhY3Rpb24gPSBTdGFja1Zpc2l0b3I6OkNvbnRpbnVlSWZUb3BFbnRyeUZyYW1lSXNF
bXB0eSwgdHlwZW5hbWUgRnVuY3Rvcj4gdm9pZCBpdGVyYXRlKFZNJiB2bSwgY29uc3QgRnVuY3Rv
ciYgZnVuY3RvcikKICAgICAgICAgewotICAgICAgICAgICAgVk0qIHZtOwogICAgICAgICAgICAg
dm9pZCogcmF3VGhpcyA9IHRoaXM7Ci0gICAgICAgICAgICBpZiAoISFyYXdUaGlzKSB7CisgICAg
ICAgICAgICBpZiAoISFyYXdUaGlzKQogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNh
bGxlZSgpLmlzQ2VsbCgpKTsKLSAgICAgICAgICAgICAgICB2bSA9ICZ0aGlzLT52bSgpOwotICAg
ICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgdm0gPSBudWxscHRyOwogICAgICAgICAg
ICAgU3RhY2tWaXNpdG9yOjp2aXNpdDxhY3Rpb24sIEZ1bmN0b3I+KHRoaXMsIHZtLCBmdW5jdG9y
KTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0ludGVycHJldGVyLmNwcAppbmRleCBjOTkwNGNjMDUzMmEwNGVlZTdkY2MwMmZiY2Y3Njg0MTZm
MzM2YmFjLi5lNDNkYjI5MTQzNzUzZDY0ZjFmYTRlZDNiYjUxNjMxZTY0NGEyMGNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAg
LTE3Niw5ICsxNzYsOSBAQCBKU1ZhbHVlIGV2YWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBp
bnRlcnByZXRlci0+ZXhlY3V0ZShldmFsLCBnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgY2FsbGVy
U2NvcGVDaGFpbikpOwogfQogCi11bnNpZ25lZCBzaXplT2ZWYXJhcmdzKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIGFyZ3VtZW50cywg
dWludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQpCit1bnNpZ25lZCBzaXplT2ZWYXJhcmdzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYXJndW1lbnRzLCB1aW50MzJfdCBmaXJz
dFZhckFyZ09mZnNldCkKIHsKLSAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CisgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAogICAgIGlmIChVTkxJS0VMWSghYXJndW1lbnRzLmlzQ2VsbCgpKSkgewpA
QCAtMjQxLDcgKzI0MSw3IEBAIHVuc2lnbmVkIHNpemVGcmFtZUZvclZhcmFyZ3MoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsCiB7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgdW5zaWduZWQgbGVuZ3RoID0g
c2l6ZU9mVmFyYXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXJndW1lbnRzLCBmaXJzdFZh
ckFyZ09mZnNldCk7CisgICAgdW5zaWduZWQgbGVuZ3RoID0gc2l6ZU9mVmFyYXJncyhnbG9iYWxP
YmplY3QsIGFyZ3VtZW50cywgZmlyc3RWYXJBcmdPZmZzZXQpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIDApOwogCiAgICAgQ2FsbEZyYW1lKiBjYWxsZWVGcmFtZSA9IGNhbGxlZUZy
YW1lRm9yVmFyYXJncyhjYWxsRnJhbWUsIG51bVVzZWRTdGFja1Nsb3RzLCBsZW5ndGggKyAxKTsK
QEAgLTQ0MCw3ICs0NDAsNyBAQCB2b2lkIEludGVycHJldGVyOjpnZXRTdGFja1RyYWNlKEpTQ2Vs
bCogb3duZXIsIFZlY3RvcjxTdGFja0ZyYW1lPiYgcmVzdWx0cywgc2l6ZQogCiAgICAgc2l6ZV90
IGZyYW1lc0NvdW50ID0gMDsKICAgICBzaXplX3QgbWF4RnJhbWVzQ291bnROZWVkZWQgPSBtYXhT
dGFja1NpemUgKyBmcmFtZXNUb1NraXA7Ci0gICAgU3RhY2tWaXNpdG9yOjp2aXNpdChjYWxsRnJh
bWUsICZ2bSwgWyZdIChTdGFja1Zpc2l0b3ImKSAtPiBTdGFja1Zpc2l0b3I6OlN0YXR1cyB7Cisg
ICAgU3RhY2tWaXNpdG9yOjp2aXNpdChjYWxsRnJhbWUsIHZtLCBbJl0gKFN0YWNrVmlzaXRvciYp
IC0+IFN0YWNrVmlzaXRvcjo6U3RhdHVzIHsKICAgICAgICAgaWYgKCsrZnJhbWVzQ291bnQgPCBt
YXhGcmFtZXNDb3VudE5lZWRlZCkKICAgICAgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkNv
bnRpbnVlOwogICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9yOjpEb25lOwpAQCAtNDUyLDcgKzQ1
Miw3IEBAIHZvaWQgSW50ZXJwcmV0ZXI6OmdldFN0YWNrVHJhY2UoSlNDZWxsKiBvd25lciwgVmVj
dG9yPFN0YWNrRnJhbWU+JiByZXN1bHRzLCBzaXplCiAgICAgZnJhbWVzQ291bnQgPSBzdGQ6Om1p
bihtYXhTdGFja1NpemUsIGZyYW1lc0NvdW50KTsKIAogICAgIEdldFN0YWNrVHJhY2VGdW5jdG9y
IGZ1bmN0b3Iodm0sIG93bmVyLCByZXN1bHRzLCBmcmFtZXNUb1NraXAsIGZyYW1lc0NvdW50KTsK
LSAgICBTdGFja1Zpc2l0b3I6OnZpc2l0KGNhbGxGcmFtZSwgJnZtLCBmdW5jdG9yKTsKKyAgICBT
dGFja1Zpc2l0b3I6OnZpc2l0KGNhbGxGcmFtZSwgdm0sIGZ1bmN0b3IpOwogICAgIEFTU0VSVChy
ZXN1bHRzLnNpemUoKSA9PSByZXN1bHRzLmNhcGFjaXR5KCkpOwogfQogCkBAIC02MjcsNyArNjI3
LDcgQEAgTkVWRVJfSU5MSU5FIEhhbmRsZXJJbmZvKiBJbnRlcnByZXRlcjo6dW53aW5kKFZNJiB2
bSwgQ2FsbEZyYW1lKiYgY2FsbEZyYW1lLCBFeGMKICAgICAvLyBDYWxjdWxhdGUgYW4gZXhjZXB0
aW9uIGhhbmRsZXIgdlBDLCB1bndpbmRpbmcgY2FsbCBmcmFtZXMgYXMgbmVjZXNzYXJ5LgogICAg
IEhhbmRsZXJJbmZvKiBoYW5kbGVyID0gbnVsbHB0cjsKICAgICBVbndpbmRGdW5jdG9yIGZ1bmN0
b3Iodm0sIGNhbGxGcmFtZSwgaXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKHZtLCBleGNl
cHRpb24pLCBjb2RlQmxvY2ssIGhhbmRsZXIpOwotICAgIFN0YWNrVmlzaXRvcjo6dmlzaXQ8U3Rh
Y2tWaXNpdG9yOjpUZXJtaW5hdGVJZlRvcEVudHJ5RnJhbWVJc0VtcHR5PihjYWxsRnJhbWUsICZ2
bSwgZnVuY3Rvcik7CisgICAgU3RhY2tWaXNpdG9yOjp2aXNpdDxTdGFja1Zpc2l0b3I6OlRlcm1p
bmF0ZUlmVG9wRW50cnlGcmFtZUlzRW1wdHk+KGNhbGxGcmFtZSwgdm0sIGZ1bmN0b3IpOwogICAg
IGlmICghaGFuZGxlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTY0OSw3ICs2NDks
NyBAQCB2b2lkIEludGVycHJldGVyOjpub3RpZnlEZWJ1Z2dlck9mRXhjZXB0aW9uVG9CZVRocm93
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbAogICAgICAgICAgICAgaGFzQ2F0Y2hIYW5kbGVy
ID0gZmFsc2U7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgR2V0Q2F0Y2hIYW5kbGVyRnVu
Y3RvciBmdW5jdG9yOwotICAgICAgICAgICAgU3RhY2tWaXNpdG9yOjp2aXNpdChjYWxsRnJhbWUs
ICZ2bSwgZnVuY3Rvcik7CisgICAgICAgICAgICBTdGFja1Zpc2l0b3I6OnZpc2l0KGNhbGxGcmFt
ZSwgdm0sIGZ1bmN0b3IpOwogICAgICAgICAgICAgSGFuZGxlckluZm8qIGhhbmRsZXIgPSBmdW5j
dG9yLmhhbmRsZXIoKTsKICAgICAgICAgICAgIEFTU0VSVCghaGFuZGxlciB8fCBoYW5kbGVyLT5p
c0NhdGNoSGFuZGxlcigpKTsKICAgICAgICAgICAgIGhhc0NhdGNoSGFuZGxlciA9ICEhaGFuZGxl
cjsKQEAgLTEyMTQsNyArMTIxNCw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVNb2R1
bGVQcm9ncmFtKE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBKCiAKIE5FVkVS
X0lOTElORSB2b2lkIEludGVycHJldGVyOjpkZWJ1ZyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRGVi
dWdIb29rVHlwZSBkZWJ1Z0hvb2tUeXBlKQogewotICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+dm0o
KTsKKyAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKICAgICBEZWJ1Z2dlciogZGVidWdnZXIgPSBj
YWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZGVidWdnZXIoKTsKICAgICBpZiAoIWRl
YnVnZ2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0lu
dGVycHJldGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0
ZXIuaAppbmRleCA2MjM5ZmUxZDhjODYzY2ZkZDE5NWYxZGNhN2I3MzNmMjEwODA4NDNiLi44NmMz
MjQ2OTIwNGU5YWU1OTExZmVjZWE5MDJhZTk3Y2FiNTVkM2EwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaApAQCAtMTY3LDcgKzE2Nyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1cm4gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZy
YW1lLT5yZWdpc3RlcnMoKSAtIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0KTsKICAgICB9CiAKLSAg
ICB1bnNpZ25lZCBzaXplT2ZWYXJhcmdzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgSlNW
YWx1ZSBhcmd1bWVudHMsIHVpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KTsKKyAgICB1bnNpZ25l
ZCBzaXplT2ZWYXJhcmdzKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBhcmd1bWVudHMsIHVpbnQz
Ml90IGZpcnN0VmFyQXJnT2Zmc2V0KTsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1h
eEFyZ3VtZW50cyA9IDB4MTAwMDA7CiAgICAgdW5zaWduZWQgc2l6ZUZyYW1lRm9yVmFyYXJncyhK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSosIFZNJiwgSlNWYWx1ZSBhcmd1bWVudHMsIHVuc2ln
bmVkIG51bVVzZWRTdGFja1Nsb3RzLCB1aW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCk7CiAgICAg
dW5zaWduZWQgc2l6ZUZyYW1lRm9yRm9yd2FyZEFyZ3VtZW50cyhKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSosIFZNJiwgdW5zaWduZWQgbnVtVXNlZFN0YWNrU2xvdHMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1NoYWRvd0NoaWNrZW4uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1NoYWRvd0NoaWNrZW4uY3BwCmluZGV4IDlj
ZmRhMDliMDY5ZjU4ZTI1N2UwNTU4OTM2ZmY3NWEyNjRlY2E3MTUuLjg2NDA0MWY3MGI5MTUzMTJk
YzEzM2IxNzZiODI0MjJiMWY4MmQ4OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9TaGFkb3dDaGlja2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5jcHAKQEAgLTE3Myw3ICsxNzMsNyBAQCB2b2lk
IFNoYWRvd0NoaWNrZW46OnVwZGF0ZShWTSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAg
IGlmICghbV9zdGFjay5pc0VtcHR5KCkpIHsKICAgICAgICAgVmVjdG9yPEZyYW1lPiBzdGFja1Jp
Z2h0Tm93OwogICAgICAgICBTdGFja1Zpc2l0b3I6OnZpc2l0KAotICAgICAgICAgICAgY2FsbEZy
YW1lLCAmdm0sIFsmXSAoU3RhY2tWaXNpdG9yJiB2aXNpdG9yKSAtPiBTdGFja1Zpc2l0b3I6OlN0
YXR1cyB7CisgICAgICAgICAgICBjYWxsRnJhbWUsIHZtLCBbJl0gKFN0YWNrVmlzaXRvciYgdmlz
aXRvcikgLT4gU3RhY2tWaXNpdG9yOjpTdGF0dXMgewogICAgICAgICAgICAgICAgIGlmICh2aXNp
dG9yLT5pc0lubGluZWRGcmFtZSgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RhY2tW
aXNpdG9yOjpDb250aW51ZTsKICAgICAgICAgICAgICAgICBpZiAodmlzaXRvci0+aXNXYXNtRnJh
bWUoKSkgewpAQCAtMjk0LDcgKzI5NCw3IEBAIHZvaWQgU2hhZG93Q2hpY2tlbjo6dXBkYXRlKFZN
JiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAgICAgCiAgICAgVmVjdG9yPEZyYW1lPiB0b1B1
c2g7CiAgICAgU3RhY2tWaXNpdG9yOjp2aXNpdCgKLSAgICAgICAgY2FsbEZyYW1lLCAmdm0sIFsm
XSAoU3RhY2tWaXNpdG9yJiB2aXNpdG9yKSAtPiBTdGFja1Zpc2l0b3I6OlN0YXR1cyB7CisgICAg
ICAgIGNhbGxGcmFtZSwgdm0sIFsmXSAoU3RhY2tWaXNpdG9yJiB2aXNpdG9yKSAtPiBTdGFja1Zp
c2l0b3I6OlN0YXR1cyB7CiAgICAgICAgICAgICBpZiAodmlzaXRvci0+aXNJbmxpbmVkRnJhbWUo
KSkgewogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgaW5saW5pbmcuCiAgICAgICAg
ICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTY4
NgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlz
aXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9y
LmNwcAppbmRleCA4MjliZjBjMzgxNGQ4YjFiMjI1YjRjMjU1NDRkNjliMmFiNzZmNWYxLi44MGM4
ZjY4MmU1ZjVhYTI4YjAwZjVkNGZhZmIzNDk3ZWRhMTYyNDAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcApAQCAtMzksMjIgKzM5
LDIxIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1TdGFja1Zpc2l0b3I6OlN0YWNrVmlzaXRvcihD
YWxsRnJhbWUqIHN0YXJ0RnJhbWUsIFZNKiB2bSkKK1N0YWNrVmlzaXRvcjo6U3RhY2tWaXNpdG9y
KENhbGxGcmFtZSogc3RhcnRGcmFtZSwgVk0mIHZtKQogewogICAgIG1fZnJhbWUubV9pbmRleCA9
IDA7CiAgICAgbV9mcmFtZS5tX2lzV2FzbUZyYW1lID0gZmFsc2U7CiAgICAgQ2FsbEZyYW1lKiB0
b3BGcmFtZTsKICAgICBpZiAoc3RhcnRGcmFtZSkgewotICAgICAgICBBU1NFUlQodm0pOwotICAg
ICAgICBBU1NFUlQoIXZtLT50b3BDYWxsRnJhbWUgfHwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
dm0tPnRvcENhbGxGcmFtZSkgIT0gdm0tPnRvcEVudHJ5RnJhbWUpOworICAgICAgICBBU1NFUlQo
IXZtLnRvcENhbGxGcmFtZSB8fCByZWludGVycHJldF9jYXN0PHZvaWQqPih2bS50b3BDYWxsRnJh
bWUpICE9IHZtLnRvcEVudHJ5RnJhbWUpOwogCi0gICAgICAgIG1fZnJhbWUubV9lbnRyeUZyYW1l
ID0gdm0tPnRvcEVudHJ5RnJhbWU7Ci0gICAgICAgIHRvcEZyYW1lID0gdm0tPnRvcENhbGxGcmFt
ZTsKKyAgICAgICAgbV9mcmFtZS5tX2VudHJ5RnJhbWUgPSB2bS50b3BFbnRyeUZyYW1lOworICAg
ICAgICB0b3BGcmFtZSA9IHZtLnRvcENhbGxGcmFtZTsKIAogICAgICAgICBpZiAodG9wRnJhbWUg
JiYgdG9wRnJhbWUtPmlzU3RhY2tPdmVyZmxvd0ZyYW1lKCkpIHsKICAgICAgICAgICAgIHRvcEZy
YW1lID0gdG9wRnJhbWUtPmNhbGxlckZyYW1lKG1fZnJhbWUubV9lbnRyeUZyYW1lKTsKLSAgICAg
ICAgICAgIG1fdG9wRW50cnlGcmFtZUlzRW1wdHkgPSAobV9mcmFtZS5tX2VudHJ5RnJhbWUgIT0g
dm0tPnRvcEVudHJ5RnJhbWUpOwotICAgICAgICAgICAgaWYgKHN0YXJ0RnJhbWUgPT0gdm0tPnRv
cENhbGxGcmFtZSkKKyAgICAgICAgICAgIG1fdG9wRW50cnlGcmFtZUlzRW1wdHkgPSAobV9mcmFt
ZS5tX2VudHJ5RnJhbWUgIT0gdm0udG9wRW50cnlGcmFtZSk7CisgICAgICAgICAgICBpZiAoc3Rh
cnRGcmFtZSA9PSB2bS50b3BDYWxsRnJhbWUpCiAgICAgICAgICAgICAgICAgc3RhcnRGcmFtZSA9
IHRvcEZyYW1lOwogICAgICAgICB9CiAKQEAgLTMwMywxMSArMzAyLDExIEBAIFN0cmluZyBTdGFj
a1Zpc2l0b3I6OkZyYW1lOjpmdW5jdGlvbk5hbWUoKSBjb25zdAogICAgIGNhc2UgQ29kZVR5cGU6
Ok5hdGl2ZTogewogICAgICAgICBKU0NlbGwqIGNhbGxlZSA9IHRoaXMtPmNhbGxlZSgpLmFzQ2Vs
bCgpOwogICAgICAgICBpZiAoY2FsbGVlKQotICAgICAgICAgICAgdHJhY2VMaW5lID0gZ2V0Q2Fs
Y3VsYXRlZERpc3BsYXlOYW1lKGNhbGxGcmFtZSgpLT52bSgpLCBqc0Nhc3Q8SlNPYmplY3QqPihj
YWxsZWUpKS5pbXBsKCk7CisgICAgICAgICAgICB0cmFjZUxpbmUgPSBnZXRDYWxjdWxhdGVkRGlz
cGxheU5hbWUoY2FsbEZyYW1lKCktPmRlcHJlY2F0ZWRWTSgpLCBqc0Nhc3Q8SlNPYmplY3QqPihj
YWxsZWUpKS5pbXBsKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIENvZGVUeXBl
OjpGdW5jdGlvbjogCi0gICAgICAgIHRyYWNlTGluZSA9IGdldENhbGN1bGF0ZWREaXNwbGF5TmFt
ZShjYWxsRnJhbWUoKS0+dm0oKSwganNDYXN0PEpTT2JqZWN0Kj4odGhpcy0+Y2FsbGVlKCkuYXND
ZWxsKCkpKS5pbXBsKCk7CisgICAgICAgIHRyYWNlTGluZSA9IGdldENhbGN1bGF0ZWREaXNwbGF5
TmFtZShjYWxsRnJhbWUoKS0+ZGVwcmVjYXRlZFZNKCksIGpzQ2FzdDxKU09iamVjdCo+KHRoaXMt
PmNhbGxlZSgpLmFzQ2VsbCgpKSkuaW1wbCgpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENv
ZGVUeXBlOjpHbG9iYWw6CiAgICAgICAgIHRyYWNlTGluZSA9ICJnbG9iYWwgY29kZSJfczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaAppbmRl
eCBmMTk0MjdkNDg2ZTYzODVkNGM4Y2NmNDM5MmZkMmVkMWQ3M2U2NGViLi42M2FkNDA4Y2U3MWIw
YjhlNGVkODM2NzliODdiNjYxNzRlYzE2Y2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5oCkBAIC0xNDIsNyArMTQyLDcgQEAgY2xhc3Mg
U3RhY2tWaXNpdG9yIHsKICAgICB9OwogCiAgICAgdGVtcGxhdGUgPEVtcHR5RW50cnlGcmFtZUFj
dGlvbiBhY3Rpb24gPSBDb250aW51ZUlmVG9wRW50cnlGcmFtZUlzRW1wdHksIHR5cGVuYW1lIEZ1
bmN0b3I+Ci0gICAgc3RhdGljIHZvaWQgdmlzaXQoQ2FsbEZyYW1lKiBzdGFydEZyYW1lLCBWTSog
dm0sIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCisgICAgc3RhdGljIHZvaWQgdmlzaXQoQ2FsbEZy
YW1lKiBzdGFydEZyYW1lLCBWTSYgdm0sIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCiAgICAgewog
ICAgICAgICBTdGFja1Zpc2l0b3IgdmlzaXRvcihzdGFydEZyYW1lLCB2bSk7CiAgICAgICAgIGlm
IChhY3Rpb24gPT0gVGVybWluYXRlSWZUb3BFbnRyeUZyYW1lSXNFbXB0eSAmJiB2aXNpdG9yLnRv
cEVudHJ5RnJhbWVJc0VtcHR5KCkpCkBAIC0xNjIsNyArMTYyLDcgQEAgY2xhc3MgU3RhY2tWaXNp
dG9yIHsKICAgICBib29sIHRvcEVudHJ5RnJhbWVJc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV90
b3BFbnRyeUZyYW1lSXNFbXB0eTsgfQogCiBwcml2YXRlOgotICAgIEpTX0VYUE9SVF9QUklWQVRF
IFN0YWNrVmlzaXRvcihDYWxsRnJhbWUqIHN0YXJ0RnJhbWUsIFZNKik7CisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgU3RhY2tWaXNpdG9yKENhbGxGcmFtZSogc3RhcnRGcmFtZSwgVk0mKTsKIAogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZ290b05leHRGcmFtZSgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0hvc3RDYWxsUmV0dXJuVmFsdWUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcAppbmRleCA4MjY1OWU1
YTllMjk4NGY0NjBiY2U2Nzg0YmRmZTIzMTk0NDk4ZjJkLi4wZTI0YjM1NmNmMDRkNTM2NGViNTQz
NTUxYWJkNzg2Mjg3NTJjZGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0hvc3RDYWxsUmV0dXJuVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SG9zdENhbGxSZXR1cm5WYWx1ZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgZXh0ZXJuICJDIiBFbmNv
ZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBnZXRIb3N0Q2FsbFJldHVy
blZhbHVlV2kKIHsKICAgICBpZiAoIWNhbGxGcmFtZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1ZhbHVlKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbEZyYW1l
LT52bSgpLmhvc3RDYWxsUmV0dXJuVmFsdWUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKS5ob3N0Q2FsbFJldHVyblZhbHVlKTsKIH0KIAogI2lm
IENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBDUFUoWDg2XzY0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggYjMzYzMwNjgxMDExZmRmMWQ1YzNk
MTAyZDFhN2RlMGY2NDU1Yjg1MC4uODhkNTA4YTAzZGQwYTQ5NGY0OWViMjM0MTE0NWNjZGFjN2M5
M2RlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBA
IC0xMDk0LDcgKzEwOTQsNyBAQCBTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25MaW5rQ2FsbChDYWxsRnJhbWUqIGNhbGxlZUZyYW1lLCBKU0dsbwogICAgICAgICAgICAg
aWYgKCFjYWxsTGlua0luZm8tPnNlZW5PbmNlKCkpCiAgICAgICAgICAgICAgICAgY2FsbExpbmtJ
bmZvLT5zZXRTZWVuKCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbGlua0Zv
cihjYWxsZWVGcmFtZSwgKmNhbGxMaW5rSW5mbywgbnVsbHB0ciwgaW50ZXJuYWxGdW5jdGlvbiwg
Y29kZVB0cik7CisgICAgICAgICAgICAgICAgbGlua0Zvcih2bSwgY2FsbGVlRnJhbWUsICpjYWxs
TGlua0luZm8sIG51bGxwdHIsIGludGVybmFsRnVuY3Rpb24sIGNvZGVQdHIpOwogCiAgICAgICAg
ICAgICB2b2lkKiBsaW5rZWRUYXJnZXQgPSBjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCk7CiAg
ICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KGxpbmtlZFRhcmdldCwgcmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4oY2FsbExpbmtJbmZvLT5jYWxsTW9kZSgpID09IENhbGxNb2RlOjpUYWlsID8g
UmV1c2VUaGVGcmFtZSA6IEtlZXBUaGVGcmFtZSkpOwpAQCAtMTE0Miw3ICsxMTQyLDcgQEAgU2xv
d1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NhbGwoQ2FsbEZyYW1l
KiBjYWxsZWVGcmFtZSwgSlNHbG8KICAgICBpZiAoIWNhbGxMaW5rSW5mby0+c2Vlbk9uY2UoKSkK
ICAgICAgICAgY2FsbExpbmtJbmZvLT5zZXRTZWVuKCk7CiAgICAgZWxzZQotICAgICAgICBsaW5r
Rm9yKGNhbGxlZUZyYW1lLCAqY2FsbExpbmtJbmZvLCBjb2RlQmxvY2ssIGNhbGxlZSwgY29kZVB0
cik7CisgICAgICAgIGxpbmtGb3Iodm0sIGNhbGxlZUZyYW1lLCAqY2FsbExpbmtJbmZvLCBjb2Rl
QmxvY2ssIGNhbGxlZSwgY29kZVB0cik7CiAKICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KGNvZGVQ
dHIuZXhlY3V0YWJsZUFkZHJlc3MoKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY2FsbExpbmtJ
bmZvLT5jYWxsTW9kZSgpID09IENhbGxNb2RlOjpUYWlsID8gUmV1c2VUaGVGcmFtZSA6IEtlZXBU
aGVGcmFtZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBh
dGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKaW5kZXggN2M4
ZjQwZmI0MzYxZGMzMDNmMDBkNGRhMTQ2YWVmNmQ3MDRmOTQwMC4uYjVlYzk3Yzk0NDM4YjI4ZjYz
YjBiOWM5NmIxY2QyMWZmNDA0YzViMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2gu
Y3BwCkBAIC04MzMsNyArODMzLDcgQEAgc3RhdGljIEpTQ2VsbCogd2ViQXNzZW1ibHlPd25lcihK
U0NlbGwqIGNhbGxlZSkKIH0KIAogdm9pZCBsaW5rRm9yKAotICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxv
Y2ssCisgICAgVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ2FsbExpbmtJbmZvJiBjYWxs
TGlua0luZm8sIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLAogICAgIEpTT2JqZWN0KiBjYWxs
ZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBjb2RlUHRyKQogewogICAg
IEFTU0VSVCghY2FsbExpbmtJbmZvLnN0dWIoKSk7CkBAIC04NDMsNyArODQzLDYgQEAgdm9pZCBs
aW5rRm9yKAogICAgIC8vIHRoaXMgZnJvbSBXYXNtLCB3ZSBlbnN1cmUgdGhlIGNhbGxlZSBpcyBh
IGNlbGwuCiAgICAgQVNTRVJUKGNhbGxlckZyYW1lLT5jYWxsZWUoKS5pc0NlbGwoKSk7CiAKLSAg
ICBWTSYgdm0gPSBjYWxsZXJGcmFtZS0+dm0oKTsKICAgICBDb2RlQmxvY2sqIGNhbGxlckNvZGVC
bG9jayA9IGNhbGxlckZyYW1lLT5jb2RlQmxvY2soKTsKIAogICAgIC8vIFdlYkFzc2VtYmx5IC0+
IEpTIHN0dWJzIGRvbid0IGhhdmUgYSB2YWxpZCBDb2RlQmxvY2suCkBAIC05NjIsNyArOTYxLDcg
QEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lLCBDYWwKICAgICBSRUxFQVNFX0FTU0VSVChjYWxsTGlua0lu
Zm8uYWxsb3dTdHVicygpKTsKIAogICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUgPSBjYWxsRnJh
bWUtPmNhbGxlckZyYW1lKCk7Ci0gICAgVk0mIHZtID0gY2FsbGVyRnJhbWUtPnZtKCk7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogCiAgICAgLy8gRHVyaW5nIGV4ZWN1dGlvbiBv
ZiBsaW5rUG9seW1vcnBoaWNDYWxsLCB3ZSBzdHJvbmdseSBhc3N1bWUgdGhhdCB3ZSBuZXZlciBk
byBHQy4KICAgICAvLyBHQyBqZXR0aXNvbnMgQ29kZUJsb2NrcywgY2hhbmdlcyBDYWxsTGlua0lu
Zm8gZXRjLiBhbmQgYnJlYWtzIGFzc3VtcHRpb24gZG9uZSBiZWZvcmUgYW5kIGFmdGVyIHRoaXMg
Y2FsbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKaW5kZXggZmFiYzNmYTc0OGEzODk1
ZjczZTA5ZGViMzgyYmQ0ZGJmMzczOThjMC4uOWE1MjdjYzZkZTBlZDgyY2NiOTIwNDIxZGU5ZTM2
MTgzZTYwNWUxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNo
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKQEAgLTQzLDcgKzQz
LDcgQEAgdm9pZCByZXBhdGNoR2V0QnlJRChKU0dsb2JhbE9iamVjdCosIENvZGVCbG9jayosIEpT
VmFsdWUsIGNvbnN0IElkZW50aWZpZXImLCBjb24KIHZvaWQgcmVwYXRjaFB1dEJ5SUQoSlNHbG9i
YWxPYmplY3QqLCBDb2RlQmxvY2sqLCBKU1ZhbHVlLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlm
aWVyJiwgY29uc3QgUHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRLaW5k
KTsKIHZvaWQgcmVwYXRjaEluQnlJRChKU0dsb2JhbE9iamVjdCosIENvZGVCbG9jayosIEpTT2Jq
ZWN0KiwgY29uc3QgSWRlbnRpZmllciYsIGJvb2wgd2FzRm91bmQsIGNvbnN0IFByb3BlcnR5U2xv
dCYsIFN0cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lkIHJlcGF0Y2hJbnN0YW5jZU9mKEpTR2xvYmFs
T2JqZWN0KiwgQ29kZUJsb2NrKiwgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBwcm90b3R5cGUsIFN0
cnVjdHVyZVN0dWJJbmZvJiwgYm9vbCB3YXNGb3VuZCk7Ci12b2lkIGxpbmtGb3IoQ2FsbEZyYW1l
KiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2NrKiwgSlNPYmplY3QqIGNhbGxlZSwgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+KTsKK3ZvaWQgbGlua0ZvcihWTSYsIENhbGxGcmFt
ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayosIEpTT2JqZWN0KiBjYWxsZWUsIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPik7CiB2b2lkIGxpbmtEaXJlY3RGb3IoQ2FsbEZy
YW1lKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2NrKiwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpT
RW50cnlQdHJUYWc+KTsKIHZvaWQgbGlua1Nsb3dGb3IoQ2FsbEZyYW1lKiwgQ2FsbExpbmtJbmZv
Jik7CiB2b2lkIHVubGlua0ZvcihWTSYsIENhbGxMaW5rSW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cAppbmRleCBhNjYyZGNhOTAxYmI4Njg2NWM0MDUwMjZiY2VhZDMzMzAzNzE3ZGZiLi42MjZmZGVi
NGUzMTM2M2I2MzgyYTk2MGZkM2ZhNzMyOTNmMmZlNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApA
QCAtMTMzOCwxMyArMTMzOCwxNCBAQCBjbGFzcyBGdW5jdGlvbkpTQ1N0YWNrRnVuY3RvciB7CiAg
ICAgU3RyaW5nQnVpbGRlciYgbV90cmFjZTsKIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25KU0NTdGFjayhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkpTQ1N0YWNrKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogeworICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBTdHJpbmdCdWlsZGVyIHRyYWNlOwogICAg
IHRyYWNlLmFwcGVuZExpdGVyYWwoIi0tPiBTdGFjayB0cmFjZTpcbiIpOwogCiAgICAgRnVuY3Rp
b25KU0NTdGFja0Z1bmN0b3IgZnVuY3Rvcih0cmFjZSk7Ci0gICAgY2FsbEZyYW1lLT5pdGVyYXRl
KGZ1bmN0b3IpOworICAgIGNhbGxGcmFtZS0+aXRlcmF0ZSh2bSwgZnVuY3Rvcik7CiAgICAgZnBy
aW50ZihzdGRlcnIsICIlcyIsIHRyYWNlLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KQEAgLTE1MTQsNyArMTUx
NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SdW5TdHJpbmcoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAgICAgcmVhbG0tPnB1dERpcmVjdCh2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImFyZ3VtZW50cyIpLCBhcnJheSk7CiAKICAgICBO
YWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsKLSAgICBldmFsdWF0ZShyZWFsbSwganNjU291
cmNlKHNvdXJjZSwgY2FsbEZyYW1lLT5jYWxsZXJTb3VyY2VPcmlnaW4oKSksIEpTVmFsdWUoKSwg
ZXhjZXB0aW9uKTsKKyAgICBldmFsdWF0ZShyZWFsbSwganNjU291cmNlKHNvdXJjZSwgY2FsbEZy
YW1lLT5jYWxsZXJTb3VyY2VPcmlnaW4odm0pKSwgSlNWYWx1ZSgpLCBleGNlcHRpb24pOwogCiAg
ICAgaWYgKGV4Y2VwdGlvbikgewogICAgICAgICBzY29wZS50aHJvd0V4Y2VwdGlvbihyZWFsbSwg
ZXhjZXB0aW9uKTsKQEAgLTE1NTEsNyArMTU1Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25Mb2FkU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAg
ICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNlcHRpb247Ci0gICAgSlNWYWx1ZSBy
ZXN1bHQgPSBldmFsdWF0ZShnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzb3VyY2VDb2RlLCBjYWxs
RnJhbWUtPmNhbGxlclNvdXJjZU9yaWdpbigpKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0
aW9uKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdCwganNjU291
cmNlKHNvdXJjZUNvZGUsIGNhbGxGcmFtZS0+Y2FsbGVyU291cmNlT3JpZ2luKHZtKSksIEpTVmFs
dWUoKSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CiAgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24p
CiAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGV2YWx1YXRpb25F
eGNlcHRpb24pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTE2NjAs
MTAgKzE2NjEsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzUm9w
ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW0KIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKLSAgICBTb3VyY2VPcmlnaW4g
c291cmNlT3JpZ2luID0gY2FsbEZyYW1lLT5jYWxsZXJTb3VyY2VPcmlnaW4oKTsKKyAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgU291cmNlT3JpZ2luIHNvdXJjZU9yaWdpbiA9
IGNhbGxGcmFtZS0+Y2FsbGVyU291cmNlT3JpZ2luKHZtKTsKICAgICBpZiAoc291cmNlT3JpZ2lu
LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKLSAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGdsb2JhbE9iamVjdC0+dm0oKSwgc291
cmNlT3JpZ2luLnN0cmluZygpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmlu
Zyh2bSwgc291cmNlT3JpZ2luLnN0cmluZygpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25SZWFkbGluZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKQpAQCAtMTcyOSwxNCArMTczMSwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uQ2FsbGVySXNPTUdDb21waWxlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
TwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih0cnVlKSk7CiAKICAg
ICBDYWxsZXJGdW5jdG9yIHdhc21Ub0pTRnJhbWU7Ci0gICAgU3RhY2tWaXNpdG9yOjp2aXNpdChj
YWxsRnJhbWUsICZ2bSwgd2FzbVRvSlNGcmFtZSk7CisgICAgU3RhY2tWaXNpdG9yOjp2aXNpdChj
YWxsRnJhbWUsIHZtLCB3YXNtVG9KU0ZyYW1lKTsKICAgICBpZiAoIXdhc21Ub0pTRnJhbWUuY2Fs
bGVyRnJhbWUoKS0+aXNBbnlXYXNtQ2FsbGVlKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImNhbGxlciBpcyBub3QgYSB3YXNtLT5qcyBpbXBvcnQg
ZnVuY3Rpb24iKTsKIAogICAgIC8vIFdlIGhhdmUgYSB3cmFwcGVyIGZyYW1lIHRoYXQgd2UgZ2Vu
ZXJhdGUgZm9yIGltcG9ydHMuIElmIHdlIGV2ZXIgY2FuIGRpcmVjdCBjYWxsIGZyb20gd2FzbSB3
ZSB3b3VsZCBuZWVkIHRvIGNoYW5nZSB0aGlzLgogICAgIEFTU0VSVCghd2FzbVRvSlNGcmFtZS5j
YWxsZXJGcmFtZSgpLT5jYWxsZWUoKS5pc1dhc20oKSk7CiAgICAgQ2FsbGVyRnVuY3RvciB3YXNt
RnJhbWU7Ci0gICAgU3RhY2tWaXNpdG9yOjp2aXNpdCh3YXNtVG9KU0ZyYW1lLmNhbGxlckZyYW1l
KCksICZ2bSwgd2FzbUZyYW1lKTsKKyAgICBTdGFja1Zpc2l0b3I6OnZpc2l0KHdhc21Ub0pTRnJh
bWUuY2FsbGVyRnJhbWUoKSwgdm0sIHdhc21GcmFtZSk7CiAgICAgQVNTRVJUKHdhc21GcmFtZS5j
YWxsZXJGcmFtZSgpLT5jYWxsZWUoKS5pc1dhc20oKSk7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQogICAgIGF1dG8gbW9kZSA9IHdhc21GcmFtZS5jYWxsZXJGcmFtZSgpLT5jYWxsZWUoKS5hc1dh
c21DYWxsZWUoKS0+Y29tcGlsYXRpb25Nb2RlKCk7CkBAIC0xODc4LDcgKzE4ODAsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyRXZhbFNjcmlwdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93
RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwg
IkV4cGVjdGVkIGdsb2JhbCB0byBwb2ludCB0byBhIGdsb2JhbCBvYmplY3QiX3MpKSk7CiAgICAg
CiAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOwotICAgIEpTVmFs
dWUgcmVzdWx0ID0gZXZhbHVhdGUocmVhbG0sIGpzY1NvdXJjZShzb3VyY2VDb2RlLCBjYWxsRnJh
bWUtPmNhbGxlclNvdXJjZU9yaWdpbigpKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9u
KTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGV2YWx1YXRlKHJlYWxtLCBqc2NTb3VyY2Uoc291cmNl
Q29kZSwgY2FsbEZyYW1lLT5jYWxsZXJTb3VyY2VPcmlnaW4odm0pKSwgSlNWYWx1ZSgpLCBldmFs
dWF0aW9uRXhjZXB0aW9uKTsKICAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikKICAgICAgICAg
dGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggNTFmZjc3NjJkMDM5OGEyZjYw
MTU0YzllY2E4NzM1NGE5YzlkMGE3ZS4uNGIwNWY2OGYxNzIwMzA0MTE5OGVhMjQ3N2I2MDRlYjMw
NjgzMmFlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xv
d1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0
aHMuY3BwCkBAIC0xNzcyLDcgKzE3NzIsNyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfZGVidWcpCiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9oYW5kbGVfZXhjZXB0
aW9uKQogewotICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+dm0oKTsKKyAgICBWTSYgdm0gPSBjYWxs
RnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7CiAgICAgZ2VuZXJpY1Vud2luZCh2bSwgY2FsbEZyYW1lKTsKICAgICBM
TElOVF9FTkRfSU1QTCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCmlu
ZGV4IGVlODRjOGIyMjMyOGIxNWE2M2FjMWNlZTc1Y2MxMDdmYTBjY2Y4ZjQuLmM4ZTFhZDU3YmYw
ZDdmN2FmOWQ3OTAwZWJlNjA4NzE4NWQ0MTJjYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvci5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9y
PFN0YWNrRnJhbWU+PiBnZXRTdGFja1RyYWNlKEpTR2xvYmFsT2JqZWN0KiwgVk0mIHZtLCBKU09i
agogdm9pZCBnZXRCeXRlY29kZU9mZnNldChWTSYgdm0sIENhbGxGcmFtZSogc3RhcnRDYWxsRnJh
bWUsIFZlY3RvcjxTdGFja0ZyYW1lPiogc3RhY2tUcmFjZSwgQ2FsbEZyYW1lKiYgY2FsbEZyYW1l
LCB1bnNpZ25lZCYgYnl0ZWNvZGVPZmZzZXQpCiB7CiAgICAgRmluZEZpcnN0Q2FsbGVyRnJhbWVX
aXRoQ29kZWJsb2NrRnVuY3RvciBmdW5jdG9yKHN0YXJ0Q2FsbEZyYW1lKTsKLSAgICBTdGFja1Zp
c2l0b3I6OnZpc2l0KHZtLnRvcENhbGxGcmFtZSwgJnZtLCBmdW5jdG9yKTsKKyAgICBTdGFja1Zp
c2l0b3I6OnZpc2l0KHZtLnRvcENhbGxGcmFtZSwgdm0sIGZ1bmN0b3IpOwogICAgIGNhbGxGcmFt
ZSA9IGZ1bmN0b3IuZm91bmRDYWxsRnJhbWUoKTsKICAgICB1bnNpZ25lZCBzdGFja0luZGV4ID0g
ZnVuY3Rvci5pbmRleCgpOwogICAgIGJ5dGVjb2RlT2Zmc2V0ID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXgg
ZWNlYWE1NTVhZjRhOWI2M2U4ZmYzYWNiMWZlZDNjNDU0NDBkZWE4Yi4uZWVjMzQxNjc5MjM2Njc5
Yjg1NGEwYTg1NzRjMDRmNjYwZDRhM2I3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTE5MCw3ICsxOTAsNyBA
QCBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2soCiBK
U09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MsIEZ1bmN0aW9uQ29uc3Ry
dWN0aW9uTW9kZSBmdW5jdGlvbkNvbnN0cnVjdGlvbk1vZGUsIEpTVmFsdWUgbmV3VGFyZ2V0KQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICByZXR1cm4gY29uc3RydWN0
RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBhcmdzLCB2bS5wcm9wZXJ0eU5hbWVzLT5hbm9ueW1vdXMs
IGNhbGxGcmFtZS0+Y2FsbGVyU291cmNlT3JpZ2luKCksIFN0cmluZygpLCBUZXh0UG9zaXRpb24o
KSwgZnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlLCBuZXdUYXJnZXQpOworICAgIHJldHVybiBjb25z
dHJ1Y3RGdW5jdGlvbihnbG9iYWxPYmplY3QsIGFyZ3MsIHZtLnByb3BlcnR5TmFtZXMtPmFub255
bW91cywgY2FsbEZyYW1lLT5jYWxsZXJTb3VyY2VPcmlnaW4odm0pLCBTdHJpbmcoKSwgVGV4dFBv
c2l0aW9uKCksIGZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZSwgbmV3VGFyZ2V0KTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGxJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJ
bmxpbmVzLmgKaW5kZXggNTQ4ZDIyYmFmZTc5OTc3NjEzNzljNjczNWViMTJhNGU0OTcxYTEzZi4u
YjhjZjlkOTczMDhlODc4ZGRiYjNhMjRkODUwOGY2YjBiMjRlNTgxNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaApAQCAtMTM4LDE0ICsxMzgsMTIg
QEAgaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdE91dHB1dENvbnN0cmFpbnRzKEpTQ2VsbCosIFNs
b3RWaXNpdG9yJikKIHsKIH0KIAotQUxXQVlTX0lOTElORSBWTSYgQ2FsbEZyYW1lOjp2bSgpIGNv
bnN0CitBTFdBWVNfSU5MSU5FIFZNJiBDYWxsRnJhbWU6OmRlcHJlY2F0ZWRWTSgpIGNvbnN0CiB7
CiAgICAgSlNDZWxsKiBjYWxsZWUgPSB0aGlzLT5jYWxsZWUoKS5hc0NlbGwoKTsKICAgICBBU1NF
UlQoY2FsbGVlKTsKICAgICBBU1NFUlQoJmNhbGxlZS0+dm0oKSk7Ci0gICAgQVNTRVJUKCFjYWxs
ZWUtPmlzTGFyZ2VBbGxvY2F0aW9uKCkpOwotICAgIC8vIFRoaXMgaXMgYW4gaW1wb3J0YW50IG9w
dGltaXphdGlvbiBzaW5jZSB3ZSBhY2Nlc3MgdGhpcyBzbyBvZnRlbi4KLSAgICByZXR1cm4gY2Fs
bGVlLT5tYXJrZWRCbG9jaygpLnZtKCk7CisgICAgcmV0dXJuIGNhbGxlZS0+dm0oKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCBlNzZjYzljYzEzNzY3MGM3
ZGM1OTEwNWFhZThkM2Q0OGZiMTI1MDVkLi4wNGI4NzFlMjk5MjgyN2M1NjMzZDM3MzQyOTRhNzA0
OWUzY2E0ZjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmNwcApAQCAtMjk3LDIwICsyOTcsMjEgQEAgY2xhc3MgUmV0cmlldmVBcmd1bWVudHNGdW5jdG9y
IHsKICAgICBtdXRhYmxlIEpTVmFsdWUgbV9yZXN1bHQ7CiB9OwogCi1zdGF0aWMgSlNWYWx1ZSBy
ZXRyaWV2ZUFyZ3VtZW50cyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNGdW5jdGlvbiogZnVuY3Rp
b25PYmopCitzdGF0aWMgSlNWYWx1ZSByZXRyaWV2ZUFyZ3VtZW50cyhWTSYgdm0sIENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKIHsKICAgICBSZXRyaWV2ZUFy
Z3VtZW50c0Z1bmN0b3IgZnVuY3RvcihmdW5jdGlvbk9iaik7CiAgICAgaWYgKGNhbGxGcmFtZSkK
LSAgICAgICAgY2FsbEZyYW1lLT5pdGVyYXRlKGZ1bmN0b3IpOworICAgICAgICBjYWxsRnJhbWUt
Pml0ZXJhdGUodm0sIGZ1bmN0b3IpOwogICAgIHJldHVybiBmdW5jdG9yLnJlc3VsdCgpOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjphcmd1bWVudHNHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEpTRnVuY3Rpb24qIHRo
aXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwogCi0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXRyaWV2ZUFyZ3VtZW50cyhnbG9iYWxPYmplY3QtPnZtKCkudG9wQ2Fs
bEZyYW1lLCB0aGlzT2JqKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXRyaWV2ZUFy
Z3VtZW50cyh2bSwgdm0udG9wQ2FsbEZyYW1lLCB0aGlzT2JqKSk7CiB9CiAKIGNsYXNzIFJldHJp
ZXZlQ2FsbGVyRnVuY3Rpb25GdW5jdG9yIHsKQEAgLTM1NiwxMSArMzU3LDExIEBAIGNsYXNzIFJl
dHJpZXZlQ2FsbGVyRnVuY3Rpb25GdW5jdG9yIHsKICAgICBtdXRhYmxlIEpTVmFsdWUgbV9yZXN1
bHQ7CiB9OwogCi1zdGF0aWMgSlNWYWx1ZSByZXRyaWV2ZUNhbGxlckZ1bmN0aW9uKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKK3N0YXRpYyBKU1ZhbHVlIHJl
dHJpZXZlQ2FsbGVyRnVuY3Rpb24oVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNGdW5j
dGlvbiogZnVuY3Rpb25PYmopCiB7CiAgICAgUmV0cmlldmVDYWxsZXJGdW5jdGlvbkZ1bmN0b3Ig
ZnVuY3RvcihmdW5jdGlvbk9iaik7CiAgICAgaWYgKGNhbGxGcmFtZSkKLSAgICAgICAgY2FsbEZy
YW1lLT5pdGVyYXRlKGZ1bmN0b3IpOworICAgICAgICBjYWxsRnJhbWUtPml0ZXJhdGUodm0sIGZ1
bmN0b3IpOwogICAgIHJldHVybiBmdW5jdG9yLnJlc3VsdCgpOwogfQogCkBAIC0zNzEsNyArMzcy
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1YKIAogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmog
PSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBB
U1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwotICAgIEpTVmFsdWUgY2FsbGVyID0g
cmV0cmlldmVDYWxsZXJGdW5jdGlvbih2bS50b3BDYWxsRnJhbWUsIHRoaXNPYmopOworICAgIEpT
VmFsdWUgY2FsbGVyID0gcmV0cmlldmVDYWxsZXJGdW5jdGlvbih2bSwgdm0udG9wQ2FsbEZyYW1l
LCB0aGlzT2JqKTsKIAogICAgIC8vIFNlZSBFUzUuMSAxNS4zLjUuNCAtIEZ1bmN0aW9uLmNhbGxl
ciBtYXkgbm90IGJlIHVzZWQgdG8gcmV0cmlldmUgYSBzdHJpY3QgY2FsbGVyLgogICAgIGlmICgh
Y2FsbGVyLmlzT2JqZWN0KCkgfHwgIWFzT2JqZWN0KGNhbGxlciktPmluaGVyaXRzPEpTRnVuY3Rp
b24+KHZtKSkgewpAQCAtNTk1LDcgKzU5Niw3IEBAIGJvb2wgSlNGdW5jdGlvbjo6ZGVmaW5lT3du
UHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAK
ICAgICAgICAgdmFsdWVDaGVjayA9ICFkZXNjcmlwdG9yLnZhbHVlKCk7CiAgICAgICAgIGlmICgh
dmFsdWVDaGVjaykgewotICAgICAgICAgICAgdmFsdWVDaGVjayA9IHNhbWVWYWx1ZShnbG9iYWxP
YmplY3QsIGRlc2NyaXB0b3IudmFsdWUoKSwgcmV0cmlldmVBcmd1bWVudHModm0udG9wQ2FsbEZy
YW1lLCB0aGlzT2JqZWN0KSk7CisgICAgICAgICAgICB2YWx1ZUNoZWNrID0gc2FtZVZhbHVlKGds
b2JhbE9iamVjdCwgZGVzY3JpcHRvci52YWx1ZSgpLCByZXRyaWV2ZUFyZ3VtZW50cyh2bSwgdm0u
dG9wQ2FsbEZyYW1lLCB0aGlzT2JqZWN0KSk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKHByb3BlcnR5TmFt
ZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5jYWxsZXIpIHsKQEAgLTYwNCw3ICs2MDUsNyBAQCBib29s
IEpTRnVuY3Rpb246OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplYwogCiAgICAgICAgIHZhbHVlQ2hlY2sgPSAhZGVzY3JpcHRvci52
YWx1ZSgpOwogICAgICAgICBpZiAoIXZhbHVlQ2hlY2spIHsKLSAgICAgICAgICAgIHZhbHVlQ2hl
Y2sgPSBzYW1lVmFsdWUoZ2xvYmFsT2JqZWN0LCBkZXNjcmlwdG9yLnZhbHVlKCksIHJldHJpZXZl
Q2FsbGVyRnVuY3Rpb24odm0udG9wQ2FsbEZyYW1lLCB0aGlzT2JqZWN0KSk7CisgICAgICAgICAg
ICB2YWx1ZUNoZWNrID0gc2FtZVZhbHVlKGdsb2JhbE9iamVjdCwgZGVzY3JpcHRvci52YWx1ZSgp
LCByZXRyaWV2ZUNhbGxlckZ1bmN0aW9uKHZtLCB2bS50b3BDYWxsRnJhbWUsIHRoaXNPYmplY3Qp
KTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKICAgICAg
ICAgfQogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAKaW5kZXggYWU5MjY2NzAyZWRhZjFkNjQ3OGZjM2Y0ZmJlYTM0MmVk
ZjBjNGEwYi4uNjNlM2M4NmMxZThkZDE3MDcxYzI1ZGNlNmMwOWI5N2Y5OTMwYmM1MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAt
Mjk2LDcgKzI5Niw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGhhc093
bkxlbmd0aFByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiB9CiAKICNpZiAhQVNTRVJU
X0RJU0FCTEVECi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhc3NlcnRDYWxs
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBhc3NlcnRDYWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFJFTEVBU0VfQVNTRVJUKGNhbGxGcmFt
ZS0+YXJndW1lbnQoMCkuaXNCb29sZWFuKCkpOwogICAgIGlmIChjYWxsRnJhbWUtPmFyZ3VtZW50
KDApLmFzQm9vbGVhbigpKQpAQCAtMzA1LDcgKzMwNSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFzc2VydENhbGwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNh
bGxGCiAgICAgYm9vbCBpdGVyYXRlZE9uY2UgPSBmYWxzZTsKICAgICBDb2RlQmxvY2sqIGNvZGVC
bG9jayA9IG51bGxwdHI7CiAgICAgdW5zaWduZWQgbGluZTsKLSAgICBjYWxsRnJhbWUtPml0ZXJh
dGUoWyZdIChTdGFja1Zpc2l0b3ImIHZpc2l0b3IpIHsKKyAgICBjYWxsRnJhbWUtPml0ZXJhdGUo
Z2xvYmFsT2JqZWN0LT52bSgpLCBbJl0gKFN0YWNrVmlzaXRvciYgdmlzaXRvcikgewogICAgICAg
ICBpZiAoIWl0ZXJhdGVkT25jZSkgewogICAgICAgICAgICAgaXRlcmF0ZWRPbmNlID0gdHJ1ZTsK
ICAgICAgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMu
Y3BwCmluZGV4IGJmYzZmNTU4MzY0YTM2MWYwYjVmNzFiNjZiNTRhZGIwYzdmYjg4YTEuLmFkNmI5
MzQwOTJiMWFiMDgxZGU4Zjg5MWI4MDVkMzYxMjAzOGM4ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAK
QEAgLTUwNyw3ICs1MDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1
bmNFdmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcgogICAgIGlmIChwYXJz
ZWRPYmplY3QpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocGFyc2VkT2JqZWN0KTsK
IAotICAgIFNvdXJjZU9yaWdpbiBzb3VyY2VPcmlnaW4gPSBjYWxsRnJhbWUtPmNhbGxlclNvdXJj
ZU9yaWdpbigpOworICAgIFNvdXJjZU9yaWdpbiBzb3VyY2VPcmlnaW4gPSBjYWxsRnJhbWUtPmNh
bGxlclNvdXJjZU9yaWdpbih2bSk7CiAgICAgRXZhbEV4ZWN1dGFibGUqIGV2YWwgPSBJbmRpcmVj
dEV2YWxFeGVjdXRhYmxlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBtYWtlU291cmNlKHMsIHNvdXJj
ZU9yaWdpbiksIGZhbHNlLCBEZXJpdmVkQ29udGV4dFR5cGU6Ok5vbmUsIGZhbHNlLCBFdmFsQ29u
dGV4dFR5cGU6Ok5vbmUpOwogICAgIEVYQ0VQVElPTl9BU1NFUlQoISFzY29wZS5leGNlcHRpb24o
KSA9PSAhZXZhbCk7CiAgICAgaWYgKCFldmFsKQpAQCAtODIwLDcgKzgyMCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0ltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJvbWlzZS0+
cHJvbWlzZSgpKTsKICAgICB9OwogCi0gICAgYXV0byBzb3VyY2VPcmlnaW4gPSBjYWxsRnJhbWUt
PmNhbGxlclNvdXJjZU9yaWdpbigpOworICAgIGF1dG8gc291cmNlT3JpZ2luID0gY2FsbEZyYW1l
LT5jYWxsZXJTb3VyY2VPcmlnaW4odm0pOwogICAgIFJFTEVBU0VfQVNTRVJUKGNhbGxGcmFtZS0+
YXJndW1lbnRDb3VudCgpID09IDEpOwogICAgIGF1dG8qIHNwZWNpZmllciA9IGNhbGxGcmFtZS0+
dW5jaGVja2VkQXJndW1lbnQoMCkudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAoRXhj
ZXB0aW9uKiBleGNlcHRpb24gPSBjYXRjaFNjb3BlLmV4Y2VwdGlvbigpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKaW5kZXgg
ODk0MjBhYTBjMzg4NjZmZDFhODg4MmE5YjBlYWI3NDI1ZmU4MmM5Yi4uMTBmODg3MjVhYzAwMmQy
NTNhOWM4NjM3MWQ0NTM5ODUwZGZjYWEyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCkBAIC02MywxMCArNjMsMTAgQEAg
Y2xhc3MgR2V0Q2FsbGVyU3RyaWN0bmVzc0Z1bmN0b3IgewogICAgIG11dGFibGUgYm9vbCBtX2Nh
bGxlcklzU3RyaWN0OwogfTsKIAotc3RhdGljIGJvb2wgY2FsbGVySXNTdHJpY3QoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitzdGF0aWMgYm9vbCBjYWxsZXJJc1N0cmljdChWTSYgdm0sIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQogewogICAgIEdldENhbGxlclN0cmljdG5lc3NGdW5jdG9yIGl0ZXI7Ci0g
ICAgY2FsbEZyYW1lLT5pdGVyYXRlKGl0ZXIpOworICAgIGNhbGxGcmFtZS0+aXRlcmF0ZSh2bSwg
aXRlcik7CiAgICAgcmV0dXJuIGl0ZXIuY2FsbGVySXNTdHJpY3QoKTsKIH0KIApAQCAtNzYsNyAr
NzYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmV0dXJuVW5k
ZWZpbmVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAg
ICBpZiAoY2FsbGVySXNTdHJpY3QoY2FsbEZyYW1lKSkKKyAgICBpZiAoY2FsbGVySXNTdHJpY3Qo
dm0sIGNhbGxGcmFtZSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlNldHRpbmcgYSBwcm9wZXJ0eSB0aGF0IGhhcyBv
bmx5IGEgZ2V0dGVyIl9zKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxh
clZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAppbmRl
eCAxOGQ3NGYyODQ1NDdmNjViN2YwNWY4NmIxOTQ0OWMxNDE1MWFmZTkxLi4xOWM4ODk5Nzk0ODky
YjBiNWNkYmZkOTkwZjVmOWY5MDZkOGRiZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rv
b2xzL0pTRG9sbGFyVk0uY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgY2xhc3MgSlNEb2xsYXJWTUNh
bGxGcmFtZSA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAKICAgICAgICAgdW5zaWdu
ZWQgZnJhbWVJbmRleCA9IDA7CiAgICAgICAgIGJvb2wgaXNWYWxpZCA9IGZhbHNlOwotICAgICAg
ICBjYWxsRnJhbWUtPml0ZXJhdGUoWyZdIChTdGFja1Zpc2l0b3ImIHZpc2l0b3IpIHsKKyAgICAg
ICAgY2FsbEZyYW1lLT5pdGVyYXRlKHZtLCBbJl0gKFN0YWNrVmlzaXRvciYgdmlzaXRvcikgewog
ICAgICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKIAogICAgICAgICAg
ICAgaWYgKGZyYW1lSW5kZXgrKyAhPSByZXF1ZXN0ZWRGcmFtZUluZGV4KQpAQCAtMTU3OCwyNSAr
MTU3OCwyNyBAQCBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBnZXRFeGVjdXRhYmxlRm9yRnVu
Y3Rpb24oSlNWYWx1ZSB0aGVGdW5jdGlvblZhbHVlKQogCiAvLyBSZXR1cm5zIHRydWUgaWYgdGhl
IGN1cnJlbnQgZnJhbWUgaXMgYSBMTEludCBmcmFtZS4KIC8vIFVzYWdlOiBpc0xMSW50ID0gJHZt
LmxsaW50VHJ1ZSgpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkxMaW50VHJ1ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25MTGludFRydWUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgaWYgKCFjYWxsRnJhbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiAgICAgQ2FsbGVyRnJhbWVKSVRUeXBlRnVuY3RvciBmdW5jdG9yOwot
ICAgIGNhbGxGcmFtZS0+aXRlcmF0ZShmdW5jdG9yKTsKKyAgICBjYWxsRnJhbWUtPml0ZXJhdGUo
dm0sIGZ1bmN0b3IpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZ1bmN0
b3Iuaml0VHlwZSgpID09IEpJVFR5cGU6OkludGVycHJldGVyVGh1bmspKTsKIH0KIAogLy8gUmV0
dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGZyYW1lIGlzIGEgYmFzZWxpbmUgSklUIGZyYW1lLgog
Ly8gVXNhZ2U6IGlzQmFzZWxpbmVKSVQgPSAkdm0uaml0VHJ1ZSgpCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkpJVFRydWUoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uSklUVHJ1ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOworICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBpZiAoIWNhbGxGcmFtZSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBDYWxsZXJGcmFtZUpJ
VFR5cGVGdW5jdG9yIGZ1bmN0b3I7Ci0gICAgY2FsbEZyYW1lLT5pdGVyYXRlKGZ1bmN0b3IpOwor
ICAgIGNhbGxGcmFtZS0+aXRlcmF0ZSh2bSwgZnVuY3Rvcik7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0Jvb2xlYW4oZnVuY3Rvci5qaXRUeXBlKCkgPT0gSklUVHlwZTo6QmFzZWxpbmVK
SVQpKTsKIH0KIApAQCAtMTgzNyw5ICsxODM5LDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcFN0YWNrKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
CiAvLyBVc2FnZTogJHZtLmR1bXBSZWdpc3RlcnMoKSAvLyBkdW1wIHRoZSByZWdpc3RlcnMgb2Yg
dGhlIGN1cnJlbnQgQ2FsbEZyYW1lLgogLy8gRklYTUU6IEN1cnJlbnRseSwgdGhpcyBmdW5jdGlv
biBkdW1wcyB0aGUgcGh5c2ljYWwgZnJhbWUuIFdlIHNob3VsZCBtYWtlCiAvLyBpdCBkdW1wIHRo
ZSBsb2dpY2FsIGZyYW1lIChpLmUuIGJlIGFibGUgdG8gZHVtcCBpbmxpbmVkIGZyYW1lcyBhcyB3
ZWxsKS4KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcFJl
Z2lzdGVycyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wUmVnaXN0ZXJzKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIERvbGxh
clZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIHVuc2lnbmVkIHJlcXVlc3RlZEZyYW1lSW5kZXggPSAxOwogICAgIGlmIChjYWxs
RnJhbWUtPmFyZ3VtZW50Q291bnQoKSA+PSAxKSB7CiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBj
YWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwpAQCAtMTg1Myw3ICsxODU2LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wUmVnaXN0ZXJzKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEYKICAgICB9CiAKICAgICB1bnNpZ25lZCBmcmFtZUluZGV4ID0g
MDsKLSAgICBjYWxsRnJhbWUtPml0ZXJhdGUoWyZdIChTdGFja1Zpc2l0b3ImIHZpc2l0b3IpIHsK
KyAgICBjYWxsRnJhbWUtPml0ZXJhdGUodm0sIFsmXSAoU3RhY2tWaXNpdG9yJiB2aXNpdG9yKSB7
CiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgICAgIGlmIChm
cmFtZUluZGV4KysgIT0gcmVxdWVzdGVkRnJhbWVJbmRleCkKICAgICAgICAgICAgIHJldHVybiBT
dGFja1Zpc2l0b3I6OkNvbnRpbnVlOwpAQCAtMjI1Myw3ICsyMjU2LDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TaGFkb3dDaGlja2VuRnVuY3Rpb25zT25T
dGFjayhKU0dsb2IKIAogICAgIEpTQXJyYXkqIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5QXJyYXko
Z2xvYmFsT2JqZWN0LCAwKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwot
ICAgIFN0YWNrVmlzaXRvcjo6dmlzaXQoY2FsbEZyYW1lLCAmdm0sIFsmXSAoU3RhY2tWaXNpdG9y
JiB2aXNpdG9yKSAtPiBTdGFja1Zpc2l0b3I6OlN0YXR1cyB7CisgICAgU3RhY2tWaXNpdG9yOjp2
aXNpdChjYWxsRnJhbWUsIHZtLCBbJl0gKFN0YWNrVmlzaXRvciYgdmlzaXRvcikgLT4gU3RhY2tW
aXNpdG9yOjpTdGF0dXMgewogICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3Bl
OwogICAgICAgICBpZiAodmlzaXRvci0+aXNJbmxpbmVkRnJhbWUoKSkKICAgICAgICAgICAgIHJl
dHVybiBTdGFja1Zpc2l0b3I6OkNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29s
cy9WTUluc3BlY3Rvci5jcHAKaW5kZXggMzY0ZWE0NDkxNDI4MGE5MTFjNTA1Yzg3YThkZTAyZTMw
ZDZmYTIyMC4uMjQ0ZDIyZWIxNmQ2NzIyNzA5NjFhMzIwMmU5NDBlYTA1NzNmOTgyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCkBAIC0yOTQsNiArMjk0
LDcgQEAgYm9vbCBWTUluc3BlY3Rvcjo6aXNWYWxpZENvZGVCbG9jayhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqIGNhbmQKIAogQ29kZUJsb2NrKiBWTUluc3BlY3Rvcjo6
Y29kZUJsb2NrRm9yRnJhbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiB0b3BDYWxsRnJhbWUsIHVuc2lnbmVkIGZyYW1lTnVtYmVyKQogeworICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBpZiAoIWVuc3VyZUN1cnJlbnRUaHJlYWRPd25zSlNMb2Nr
KGdsb2JhbE9iamVjdCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC0zMjMsNyArMzI0
LDcgQEAgQ29kZUJsb2NrKiBWTUluc3BlY3Rvcjo6Y29kZUJsb2NrRm9yRnJhbWUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW0KICAgICB9OwogCiAgICAgRmV0Y2hDb2RlQmxv
Y2tGdW5jdG9yIGZ1bmN0b3IoZnJhbWVOdW1iZXIpOwotICAgIHRvcENhbGxGcmFtZS0+aXRlcmF0
ZShmdW5jdG9yKTsKKyAgICB0b3BDYWxsRnJhbWUtPml0ZXJhdGUodm0sIGZ1bmN0b3IpOwogICAg
IHJldHVybiBmdW5jdG9yLmNvZGVCbG9jazsKIH0KIApAQCAtMzY0LDcgKzM2NSw3IEBAIHZvaWQg
Vk1JbnNwZWN0b3I6OmR1bXBDYWxsRnJhbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhCiAgICAgaWYgKCFlbnN1cmVDdXJyZW50VGhyZWFkT3duc0pTTG9j
ayhnbG9iYWxPYmplY3QpKQogICAgICAgICByZXR1cm47CiAgICAgRHVtcEZyYW1lRnVuY3RvciBm
dW5jdG9yKER1bXBGcmFtZUZ1bmN0b3I6OkR1bXBPbmUsIGZyYW1lc1RvU2tpcCk7Ci0gICAgY2Fs
bEZyYW1lLT5pdGVyYXRlKGZ1bmN0b3IpOworICAgIGNhbGxGcmFtZS0+aXRlcmF0ZShnbG9iYWxP
YmplY3QtPnZtKCksIGZ1bmN0b3IpOwogfQogCiB2b2lkIFZNSW5zcGVjdG9yOjpkdW1wUmVnaXN0
ZXJzKENhbGxGcmFtZSogY2FsbEZyYW1lKQpAQCAtNDAyLDcgKzQwMyw3IEBAIHZvaWQgVk1JbnNw
ZWN0b3I6OmR1bXBSZWdpc3RlcnMoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAgICAgZGF0YUxvZ0Yo
Ii0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgICBkYXRhTG9nRigiW0FyZ3VtZW50Q291bnRd
ICAgICAgICAgICAgfCAlMTBwIHwgJWx1IFxuIiwgaXQsICh1bnNpZ25lZCBsb25nKSBjYWxsRnJh
bWUtPmFyZ3VtZW50Q291bnQoKSk7CiAKLSAgICBjYWxsRnJhbWUtPml0ZXJhdGUoWyZdIChTdGFj
a1Zpc2l0b3ImIHZpc2l0b3IpIHsKKyAgICBjYWxsRnJhbWUtPml0ZXJhdGUodm0sIFsmXSAoU3Rh
Y2tWaXNpdG9yJiB2aXNpdG9yKSB7CiAgICAgICAgIGlmICh2aXNpdG9yLT5jYWxsRnJhbWUoKSA9
PSBjYWxsRnJhbWUpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGxpbmUgPSAwOwogICAgICAgICAg
ICAgdW5zaWduZWQgdW51c2VkQ29sdW1uID0gMDsKQEAgLTQyMCw3ICs0MjEsNyBAQCB2b2lkIFZN
SW5zcGVjdG9yOjpkdW1wUmVnaXN0ZXJzKENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAgIGRhdGFM
b2dMbihjb2RlQmxvY2spOwogICAgIC0taXQ7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBBYnN0cmFj
dFBDIHBjID0gY2FsbEZyYW1lLT5hYnN0cmFjdFJldHVyblBDKGNhbGxGcmFtZS0+dm0oKSk7Cisg
ICAgQWJzdHJhY3RQQyBwYyA9IGNhbGxGcmFtZS0+YWJzdHJhY3RSZXR1cm5QQyhjYWxsRnJhbWUt
PmRlcHJlY2F0ZWRWTSgpKTsKICAgICBpZiAocGMuaGFzSklUUmV0dXJuQWRkcmVzcygpKQogICAg
ICAgICBkYXRhTG9nRigiW1JldHVyblBDXSAgICAgICAgICAgICAgICAgfCAlMTBwIHwgJXAgXG4i
LCBpdCwgcGMuaml0UmV0dXJuQWRkcmVzcygpLnZhbHVlKCkpOwogICAgIC0taXQ7CkBAIC00NjUs
NyArNDY2LDcgQEAgdm9pZCBWTUluc3BlY3Rvcjo6ZHVtcFN0YWNrKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogdG9wQ2FsbEZyYW0KICAgICBpZiAoIXRvcENhbGxGcmFt
ZSkKICAgICAgICAgcmV0dXJuOwogICAgIER1bXBGcmFtZUZ1bmN0b3IgZnVuY3RvcihEdW1wRnJh
bWVGdW5jdG9yOjpEdW1wQWxsLCBmcmFtZXNUb1NraXApOwotICAgIHRvcENhbGxGcmFtZS0+aXRl
cmF0ZShmdW5jdG9yKTsKKyAgICB0b3BDYWxsRnJhbWUtPml0ZXJhdGUoZ2xvYmFsT2JqZWN0LT52
bSgpLCBmdW5jdG9yKTsKIH0KIAogdm9pZCBWTUluc3BlY3Rvcjo6ZHVtcFZhbHVlKEpTVmFsdWUg
dmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9K
Uy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKaW5kZXgg
YjU2YTcyNzM3MGMwODM2MzBkMjE4NDE1MWM3YjVhMTY4NjFkMTA1MC4uOTBjNjI3NzQzNDY3ZWZj
NjhjYzRkMzZmN2U1NzMyNTY0OWVhM2ZkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2FzbVRvSlMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dhc21Ub0pTLmNwcApAQCAtMzAxLDggKzMwMSw5IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0m
IHZtCiAgICAgICAgICAgICBHUFJSZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdw
cigpOwogCiAgICAgICAgICAgICBpbnQzMl90ICgqY29udmVydFRvSTMyKShDYWxsRnJhbWUqLCBK
U1ZhbHVlKSA9IFtdIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSAtPiBpbnQzMl90
IHsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRQotICAgICAgICAgICAgICAgIFZNJiB2bSA9IGNh
bGxGcmFtZS0+dm0oKTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2lu
ZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCisgICAgICAgICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgorICAgICAgICAgICAg
ICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgICAgICAgICAgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gdi50b0ludDMyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsK
ICAgICAgICAgICAgIH07CkBAIC0zMzYsNyArMzM3LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYg
dm0KICAgICAgICAgICAgIGZsb2F0ICgqY29udmVydFRvRjMyKShDYWxsRnJhbWUqLCBKU1ZhbHVl
KSA9IFtdIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSAtPiBmbG9hdCB7CiAgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3Rh
bmNlKiBpbnN0ZWFkLgogICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKLSAgICAgICAgICAgICAgICBWTSYgdm0gPSBjYWxsRnJh
bWUtPnZtKCk7CisgICAgICAgICAgICAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVk
Vk0oKTsKICAgICAgICAgICAgICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOwogICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odi50
b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKSkpOwogICAgICAgICAgICAg
fTsKQEAgLTM3NSw3ICszNzYsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2Fz
bUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAg
ICAgZG91YmxlICgqY29udmVydFRvRjY0KShDYWxsRnJhbWUqLCBKU1ZhbHVlKSA9IFtdIChDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSAtPiBkb3VibGUgewogICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVh
ZC4KICAgICAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzMjA2Ci0gICAgICAgICAgICAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT52bSgpOwor
ICAgICAgICAgICAgICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAg
ICAgICAgICAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gdi50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9i
YWxPYmplY3QoKSk7CiAgICAgICAgICAgICB9OwpAQCAtNDkxLDcgKzQ5Miw3IEBAIEV4cGVjdGVk
PE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4g
d2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIHZvaWQgKCpkb1Vud2luZGluZykoQ2FsbEZyYW1lKikg
PSBbXSAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIC0+IHZvaWQgewogICAgICAgICAgICAgLy8gRklY
TUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAg
ICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIw
NgotICAgICAgICAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT52bSgpOworICAgICAgICAgICAgVk0m
IHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICAgICAgICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgICAgICAgICBnZW5lcmljVW53
aW5kKHZtLCBjYWxsRnJhbWUpOwogICAgICAgICAgICAgQVNTRVJUKCEhdm0uY2FsbEZyYW1lRm9y
Q2F0Y2gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuY3BwCmluZGV4IGU2MzU2NTIzNjJmZjVlZWZhZTJkZGRkZmE5MzQ5YzZjOTNlMmYxZjcuLjcy
ZWQ4OTMxOTdmMjVkZDJlYjE0MjBlZGU3Yjc2NTViODhkNzQ1NjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTI2OCw3ICsyNjgs
NyBAQCBKU0RPTUdsb2JhbE9iamVjdCYgY2FsbGVyR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRgogICAgIH07CiAKICAgICBHZXRDYWxsZXJHbG9i
YWxPYmplY3RGdW5jdG9yIGl0ZXI7Ci0gICAgY2FsbEZyYW1lLml0ZXJhdGUoaXRlcik7CisgICAg
Y2FsbEZyYW1lLml0ZXJhdGUobGV4aWNhbEdsb2JhbE9iamVjdC52bSgpLCBpdGVyKTsKICAgICBp
ZiAoaXRlci5nbG9iYWxPYmplY3QoKSkKICAgICAgICAgcmV0dXJuICpqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihpdGVyLmdsb2JhbE9iamVjdCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggM2U5ODMwNDA5MDZmODU1OThkYjQ3
MjU4ODA1M2ZiMmI2MGVkNmQxZC4uNDA2YmFiMzBiZDY0ZjgyMTM5ODBjNTJiNWIxNGY0NjdjYWM3
MGRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwCkBAIC0yNzMsMTAgKzI3MywxMCBAQCBET01XaW5kb3cmIGZpcnN0RE9NV2luZG93KEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0KQogICAgIHJldHVybiBhc0pTRE9NV2luZG93
KHZtLmRlcHJlY2F0ZWRWTUVudHJ5R2xvYmFsT2JqZWN0KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSkt
PndyYXBwZWQoKTsKIH0KIAotRG9jdW1lbnQqIHJlc3BvbnNpYmxlRG9jdW1lbnQoQ2FsbEZyYW1l
JiBjYWxsRnJhbWUpCitEb2N1bWVudCogcmVzcG9uc2libGVEb2N1bWVudChWTSYgdm0sIENhbGxG
cmFtZSYgY2FsbEZyYW1lKQogewogICAgIENhbGxlckZ1bmN0b3IgZnVuY3RvcjsKLSAgICBjYWxs
RnJhbWUuaXRlcmF0ZShmdW5jdG9yKTsKKyAgICBjYWxsRnJhbWUuaXRlcmF0ZSh2bSwgZnVuY3Rv
cik7CiAgICAgYXV0byogY2FsbGVyRnJhbWUgPSBmdW5jdG9yLmNhbGxlckZyYW1lKCk7CiAgICAg
aWYgKCFjYWxsZXJGcmFtZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDVjYTE3OWFiNDliMWQ3ODU3
OGY0NzUxM2I1N2JjZjhhZjIyMjNlMWMuLjZhMGY3ZDc3ODRhODk5ZjgxOGUwNThjNDczOTNmYzBl
NWQ3NWNmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5oCkBAIC0xMzMsNiArMTMzLDYgQEAgRE9NV2luZG93JiBmaXJzdERPTVdpbmRvdyhKU0M6OkpT
R2xvYmFsT2JqZWN0Jik7CiAvLyAgICAgICAgKGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL2R5bmFtaWMtbWFya3VwLWluc2VydGlvbi5odG1sI2RvY3VtZW50LW9wZW4tc3Rl
cHMgc3RlcHMgNAogLy8gICAgICAgIGFuZCAyMyBhbmQgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI3Jlc3BvbnNpYmxlLWRvY3VtZW50KS4gSXQg
aXMgb25seQogLy8gICAgICAgIHVzZWQgYnkgSlNEb2N1bWVudC4KLURvY3VtZW50KiByZXNwb25z
aWJsZURvY3VtZW50KEpTQzo6Q2FsbEZyYW1lJik7CitEb2N1bWVudCogcmVzcG9uc2libGVEb2N1
bWVudChKU0M6OlZNJiwgSlNDOjpDYWxsRnJhbWUmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQppbmRleCBmMjQwNDQ2YjQ1NDQ1MjU0YTU4M2M2MzBjNDA2YWIwZWY1OTc0ZmUwLi5kZjFi
ODFjZmI4NjNiOWU5ZmU3OTkwMmE4YWUwYzM5YzZkNDJlYTZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNTY3Miw3ICs1
NjcyLDcgQEAgc3ViIEdlbmVyYXRlQ2FsbFdpdGgKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4
dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiUmVzcG9uc2libGVEb2N1bWVudCIp
KSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJET01XaW5kb3cuaCIpOwogICAgICAgICBB
ZGRUb0ltcGxJbmNsdWRlcygiSlNET01XaW5kb3dCYXNlLmgiKTsKLSAgICAgICAgcHVzaChAY2Fs
bFdpdGhBcmdzLCAicmVzcG9uc2libGVEb2N1bWVudCgkY2FsbEZyYW1lUmVmZXJlbmNlKSIpOwor
ICAgICAgICBwdXNoKEBjYWxsV2l0aEFyZ3MsICJyZXNwb25zaWJsZURvY3VtZW50KCR7Z2xvYmFs
T2JqZWN0fS0+dm0oKSwgJGNhbGxGcmFtZVJlZmVyZW5jZSkiKTsKICAgICB9CiAgICAgaWYgKCRj
b2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRjYWxsV2l0aCwgIkFjdGl2
ZVdpbmRvdyIpKSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJET01XaW5kb3cuaCIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGU5YTVhMDljMDZkNzk2MGQ3NTZh
ZTRhNDY2ZTBlZTQzNDE2ODQ5NDcuLjRmMWYxNGY0YTk4N2U1MTc5ZmVmNzY1ZGUwYjU2NDkzNDIw
OWI0YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTIyMTEsNyArMjIx
MSw3IEBAIFN0cmluZyBJbnRlcm5hbHM6OnBhcnNlck1ldGFEYXRhKEpTQzo6SlNWYWx1ZSBjb2Rl
KQogCiAgICAgaWYgKCFjb2RlIHx8IGNvZGUuaXNOdWxsKCkgfHwgY29kZS5pc1VuZGVmaW5lZCgp
KSB7CiAgICAgICAgIEdldENhbGxlckNvZGVCbG9ja0Z1bmN0b3IgaXRlcjsKLSAgICAgICAgY2Fs
bEZyYW1lLT5pdGVyYXRlKGl0ZXIpOworICAgICAgICBjYWxsRnJhbWUtPml0ZXJhdGUodm0sIGl0
ZXIpOwogICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGl0ZXIuY29kZUJsb2NrKCk7CiAg
ICAgICAgIGV4ZWN1dGFibGUgPSBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpOwogICAgIH0g
ZWxzZSBpZiAoY29kZS5pc0Z1bmN0aW9uKHZtKSkgewo=
</data>
<flag name="review"
          id="397341"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>