<?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>206577</bug_id>
          
          <creation_ts>2020-01-22 03:25:58 -0800</creation_ts>
          <short_desc>[JSC] Attempt to fix BytecodeIndex handling in 32bit</short_desc>
          <delta_ts>2020-01-22 15:59:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>206602</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>angelos</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>guijemont</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pmatos</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1609501</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-22 03:25:58 -0800</bug_when>
    <thetext>[JSC] Attempt to fix BytecodeIndex handling in 32bit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609502</commentid>
    <comment_count>1</comment_count>
      <attachid>388411</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-22 03:29:36 -0800</bug_when>
    <thetext>Created attachment 388411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609504</commentid>
    <comment_count>2</comment_count>
      <attachid>388413</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-22 03:37:20 -0800</bug_when>
    <thetext>Created attachment 388413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609505</commentid>
    <comment_count>3</comment_count>
      <attachid>388414</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-22 03:48:11 -0800</bug_when>
    <thetext>Created attachment 388414
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609510</commentid>
    <comment_count>4</comment_count>
      <attachid>388414</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-01-22 04:45:50 -0800</bug_when>
    <thetext>Comment on attachment 388414
Patch

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

LGTM besides an issue I&apos;ve found. Regarding 32-bits changes, EWS bots won&apos;t test them, but we have a WIP patch to re-enable JIT on ARMv7 and MIPS and we&apos;ve applies those changes as well.

&gt; Source/JavaScriptCore/llint/LLIntData.cpp:132
&gt; +    ASSERT(CodeBlock::llintBaselineCalleeSaveSpaceAsVirtualRegisters() == 2);

The way we calculate `llintBaselineCalleeSaveSpaceAsVirtualRegisters` will make this fail. The problem is that on `roundCalleeSaveSpaceAsVirtualRegisters` we are using `WTF::roundUpToMultipleOf(sizeof(Register), calleeSaveRegisters * sizeof(CPURegister)) / sizeof(Register)`. Having 2 callee-save registers on 32-bits still returns 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609517</commentid>
    <comment_count>5</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-01-22 06:20:48 -0800</bug_when>
    <thetext>BTW, I just noticed that we missed adding entries `preserveCalleeSavesUsedByLLInt()` and `restoreCalleeSavesUsedByLLInt()` for the new callee-save PB. Could you add those there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609595</commentid>
    <comment_count>6</comment_count>
      <attachid>388414</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-01-22 10:02:58 -0800</bug_when>
    <thetext>Comment on attachment 388414
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609681</commentid>
    <comment_count>7</comment_count>
      <attachid>388414</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-22 12:28:20 -0800</bug_when>
    <thetext>Comment on attachment 388414
Patch

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

Fixed preserveCalleeSavesUsedByLLInt etc. I&apos;m thinking this is also wrong in CLoop. We should fix it in a separate patch.

&gt;&gt; Source/JavaScriptCore/llint/LLIntData.cpp:132
&gt;&gt; +    ASSERT(CodeBlock::llintBaselineCalleeSaveSpaceAsVirtualRegisters() == 2);
&gt; 
&gt; The way we calculate `llintBaselineCalleeSaveSpaceAsVirtualRegisters` will make this fail. The problem is that on `roundCalleeSaveSpaceAsVirtualRegisters` we are using `WTF::roundUpToMultipleOf(sizeof(Register), calleeSaveRegisters * sizeof(CPURegister)) / sizeof(Register)`. Having 2 callee-save registers on 32-bits still returns 1.

Right. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609682</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-22 12:28:43 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #7)
&gt; Comment on attachment 388414 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=388414&amp;action=review
&gt; 
&gt; Fixed preserveCalleeSavesUsedByLLInt etc. I&apos;m thinking this is also wrong in
&gt; CLoop. We should fix it in a separate patch.

Maybe no. Need to check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609685</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-22 12:31:37 -0800</bug_when>
    <thetext>Committed r254934: &lt;https://trac.webkit.org/changeset/254934&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609817</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-22 15:57:50 -0800</bug_when>
    <thetext>&lt;rdar://problem/58814703&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388411</attachid>
            <date>2020-01-22 03:29:36 -0800</date>
            <delta_ts>2020-01-22 03:37:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206577-20200122032935.patch</filename>
            <type>text/plain</type>
            <size>19257</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZmE0N2M4M2FkMWY4YjE1ZmZjNTdjNzdmNzQ4YTEyYWIyZWFhMDkxLi4yYWFlMzkyYjc3NWUyYTk2
YmIzMWRjM2NjMTE0NzQyZDA2ODE3M2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAyMC0wMS0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEF0dGVtcHQgdG8gZml4IEJ5dGVjb2RlSW5kZXggaGFuZGxpbmcg
aW4gMzJiaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNjU3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggbWVjaGFuaWNhbGx5IGxpc3RzIHVwIHBsYWNlcyB1c2luZyBJbnN0cnVjdGlv
biogYXMgQnl0ZWNvZGVJbmRleCBhbmQgYXR0ZW1wdHMgdG8gZml4IGl0LgorICAgICAgICBUaGlz
IHBhdGNoIGFsc28gZml4ZXMgc2V2ZXJhbCBwbGFjZXMgd2hlcmUgTExJbnQgUEIgaXMgbm90IGhh
bmRsZWQgd2VsbCBpbiAzMmJpdC4KKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6
CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Ynl0ZWNvZGVJbmRleEZyb21DYWxsU2l0ZUluZGV4
KToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpyZWlmeUlubGluZWRDYWxsRnJhbWVzKToKKyAgICAgICAgKEpTQzo6REZHOjph
ZGp1c3RBbmRKdW1wVG9UYXJnZXQpOgorICAgICAgICAqIGppdC9KSVRDYWxsMzJfNjQuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOgorICAgICAgICAqIGppdC9KSVRJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6dXBkYXRlVG9wQ2FsbEZyYW1lKToKKyAgICAgICAg
KiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2xv
Z19zaGFkb3dfY2hpY2tlbl90YWlsKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0UHV0QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9n
ZXRfYnlfaWRfZGlyZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV9pZCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfd2l0aF90aGlzKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9pbl9ieV9pZCk6CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAgICAgICAg
KEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBsbGludC9M
b3dMZXZlbEludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Q0xvb3A6OmV4ZWN1dGUpOgor
ICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OnRy
eUdldEJ5dGVjb2RlSW5kZXgpOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpwcm9j
ZXNzVW52ZXJpZmllZFN0YWNrVHJhY2VzKToKKwogMjAyMC0wMS0yMSAgUm9zcyBLaXJzbGluZyAg
PHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW0pTQ10gRGF0ZSBwYXJzZSBsb2dp
YyBzaG91bGQgYmUgbGVzcyByZWR1bmRhbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKaW5kZXggZDIwNGJkMmVlZDJiNWYwZDU4YWI1YjNiM2JjOGM1NDU4
YTc2NTQxNS4uNjFmM2Y3OTk4NDVhNDNmNGUwYzk2NTZiNTkxZWEzZmI3Y2JhNmQ0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTMyNDcsMTQg
KzMyNDcsOSBAQCBPcHRpb25hbDxCeXRlY29kZUluZGV4PiBDb2RlQmxvY2s6OmJ5dGVjb2RlSW5k
ZXhGcm9tQ2FsbFNpdGVJbmRleChDYWxsU2l0ZUluZGV4CiB7CiAgICAgT3B0aW9uYWw8Qnl0ZWNv
ZGVJbmRleD4gYnl0ZWNvZGVJbmRleDsKICAgICBKSVRUeXBlIGppdFR5cGUgPSB0aGlzLT5qaXRU
eXBlKCk7Ci0gICAgaWYgKGppdFR5cGUgPT0gSklUVHlwZTo6SW50ZXJwcmV0ZXJUaHVuayB8fCBq
aXRUeXBlID09IEpJVFR5cGU6OkJhc2VsaW5lSklUKSB7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICBpZiAoaml0VHlwZSA9PSBKSVRUeXBlOjpJbnRlcnByZXRlclRodW5rIHx8IGppdFR5cGUgPT0g
SklUVHlwZTo6QmFzZWxpbmVKSVQpCiAgICAgICAgIGJ5dGVjb2RlSW5kZXggPSBjYWxsU2l0ZUlu
ZGV4LmJ5dGVjb2RlSW5kZXgoKTsKLSNlbHNlCi0gICAgICAgIEluc3RydWN0aW9uKiBpbnN0cnVj
dGlvbiA9IGJpdHdpc2VfY2FzdDxJbnN0cnVjdGlvbio+KGNhbGxTaXRlSW5kZXguYml0cygpKTsK
LSAgICAgICAgYnl0ZWNvZGVJbmRleCA9IHRoaXMtPmJ5dGVjb2RlSW5kZXgoaW5zdHJ1Y3Rpb24p
OwotI2VuZGlmCi0gICAgfSBlbHNlIGlmIChqaXRUeXBlID09IEpJVFR5cGU6OkRGR0pJVCB8fCBq
aXRUeXBlID09IEpJVFR5cGU6OkZUTEpJVCkgeworICAgIGVsc2UgaWYgKGppdFR5cGUgPT0gSklU
VHlwZTo6REZHSklUIHx8IGppdFR5cGUgPT0gSklUVHlwZTo6RlRMSklUKSB7CiAjaWYgRU5BQkxF
KERGR19KSVQpCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNhbkdldENvZGVPcmlnaW4oY2FsbFNp
dGVJbmRleCkpOwogICAgICAgICBDb2RlT3JpZ2luIG9yaWdpbiA9IGNvZGVPcmlnaW4oY2FsbFNp
dGVJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4
aXRDb21waWxlckNvbW1vbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4
aXRDb21waWxlckNvbW1vbi5jcHAKaW5kZXggMjdlMmFhOGQ5OGY3N2MyY2JmZGQzN2UyYWNkYzcy
ZjQ4ZGM1ZTlkOS4uNDc5ZGZkYTNmMWZjYTg5ZjkxMGU0NjJkYjZlMzAyM2M0M2QwYmFiZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21t
b24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVy
Q29tbW9uLmNwcApAQCAtMzA1LDI0ICszMDUsMTggQEAgdm9pZCByZWlmeUlubGluZWRDYWxsRnJh
bWVzKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBPU1JFeGl0QmFzZSYgZXhpdCkKICAgICAgICAg
aWYgKGNhbGxlcklzTExJbnQpIHsKICAgICAgICAgICAgIENvZGVCbG9jayogYmFzZWxpbmVDb2Rl
QmxvY2tGb3JDYWxsZXIgPSBqaXQuYmFzZWxpbmVDb2RlQmxvY2tGb3IoKnRydWVDYWxsZXIpOwog
ICAgICAgICAgICAgaml0LnN0b3JlUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihiYXNl
bGluZUNvZGVCbG9ja0ZvckNhbGxlci0+bWV0YWRhdGFUYWJsZSgpKSwgY2FsbGVlU2F2ZVNsb3Qo
aW5saW5lQ2FsbEZyYW1lLCBiYXNlbGluZUNvZGVCbG9jaywgTExJbnQ6OlJlZ2lzdGVyczo6bWV0
YWRhdGFUYWJsZUdQUikpOwotI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBqaXQuc3Rv
cmVQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJhc2VsaW5lQ29kZUJsb2NrRm9yQ2Fs
bGVyLT5pbnN0cnVjdGlvbnNSYXdQb2ludGVyKCkpLCBjYWxsZWVTYXZlU2xvdChpbmxpbmVDYWxs
RnJhbWUsIGJhc2VsaW5lQ29kZUJsb2NrLCBMTEludDo6UmVnaXN0ZXJzOjpwYkdQUikpOwotI2Vu
ZGlmCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+aXNWYXJhcmdz
KCkpCiAgICAgICAgICAgICBqaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0z
MihpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSwgQXNzZW1ibHlI
ZWxwZXJzOjpwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNr
T2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKSk7Ci0j
aWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaml0LnN0b3JlUHRyKGNhbGxlckZyYW1lR1BSLCBB
c3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3JCeXRlT2Zmc2V0KGlubGluZUNhbGxGcmFtZS0+Y2Fs
bGVyRnJhbWVPZmZzZXQoKSkpOwogICAgICAgICB1aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxs
U2l0ZUluZGV4KGJhc2VsaW5lQ29kZUJsb2NrLT5ieXRlY29kZUluZGV4Rm9yRXhpdChjb2RlT3Jp
Z2luLT5ieXRlY29kZUluZGV4KCkpKS5iaXRzKCk7CiAgICAgICAgIGppdC5zdG9yZTMyKEFzc2Vt
Ymx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIEFzc2VtYmx5SGVscGVyczo6
dGFnRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgQ2Fs
bEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKSk7CisjaWYgVVNFKEpTVkFM
VUU2NCkKICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwpCiAgICAg
ICAgICAgICBqaXQuc3RvcmU2NChBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChKU1ZhbHVl
OjplbmNvZGUoSlNWYWx1ZShpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpKSksIEFz
c2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1l
LT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKICNlbHNlIC8vIFVTRShK
U1ZBTFVFNjQpIC8vIHNvIHRoaXMgaXMgdGhlIDMyLWJpdCBwYXJ0Ci0gICAgICAgIGppdC5zdG9y
ZVB0cihjYWxsZXJGcmFtZUdQUiwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yQnl0ZU9mZnNl
dChpbmxpbmVDYWxsRnJhbWUtPmNhbGxlckZyYW1lT2Zmc2V0KCkpKTsKLSAgICAgICAgY29uc3Qg
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gYmFzZWxpbmVDb2RlQmxvY2stPmluc3RydWN0aW9u
cygpLmF0KGNvZGVPcmlnaW4tPmJ5dGVjb2RlSW5kZXgoKSkucHRyKCk7Ci0gICAgICAgIHVpbnQz
Ml90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoKS5iaXRzKCk7Ci0gICAgICAgIGppdC5z
dG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIEFzc2Vt
Ymx5SGVscGVyczo6dGFnRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNr
T2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKSk7CiAg
ICAgICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5l
Q2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKICAgICAg
ICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwpCiAgICAgICAgICAgICBqaXQu
c3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlubGluZUNhbGxGcmFtZS0+
Y2FsbGVlQ29uc3RhbnQoKSksIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihWaXJ0dWFsUmVn
aXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSkpKTsKQEAgLTMzMSwxMyArMzI1LDcgQEAgdm9pZCByZWlmeUlubGluZWRDYWxsRnJhbWVzKEND
YWxsSGVscGVycyYgaml0LCBjb25zdCBPU1JFeGl0QmFzZSYgZXhpdCkKIAogICAgIC8vIERvbid0
IG5lZWQgdG8gc2V0IHRoZSB0b3BsZXZlbCBjb2RlIG9yaWdpbiBpZiB3ZSBvbmx5IGRpZCBpbmxp
bmUgdGFpbCBjYWxscwogICAgIGlmIChjb2RlT3JpZ2luKSB7Ci0jaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUlu
ZGV4KGNvZGVPcmlnaW4tPmJ5dGVjb2RlSW5kZXgoKS5vZmZzZXQoKSkpLmJpdHMoKTsKLSNlbHNl
Ci0gICAgICAgIGF1dG8gYnl0ZWNvZGVJbmRleCA9IGppdC5iYXNlbGluZUNvZGVCbG9jaygpLT5i
eXRlY29kZUluZGV4Rm9yRXhpdChjb2RlT3JpZ2luLT5ieXRlY29kZUluZGV4KCkpOwotICAgICAg
ICBjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSBqaXQuYmFzZWxpbmVDb2RlQmxvY2so
KS0+aW5zdHJ1Y3Rpb25zKGJ5dGVjb2RlSW5kZXgpLmF0KCkucHRyKCk7Ci0gICAgICAgIHVpbnQz
Ml90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoYml0d2lzZV9jYXN0PHVpbnQzMl90Pihp
bnN0cnVjdGlvbikpLmJpdHMoKTsKLSNlbmRpZgogICAgICAgICBqaXQuc3RvcmUzMihBc3NlbWJs
eUhlbHBlcnM6OlRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLCBBc3NlbWJseUhlbHBlcnM6OnRh
Z0ZvcihDYWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykpOwogICAgIH0K
IH0KQEAgLTQwNSwxMiArMzkzLDggQEAgdm9pZCBhZGp1c3RBbmRKdW1wVG9UYXJnZXQoVk0mIHZt
LCBDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgT1NSRXhpdEJhc2UmIGV4aXQpCiAgICAgICAgIH0K
IAogICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoY29kZUJsb2Nr
Rm9yRXhpdC0+bWV0YWRhdGFUYWJsZSgpKSwgTExJbnQ6OlJlZ2lzdGVyczo6bWV0YWRhdGFUYWJs
ZUdQUik7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKGNvZGVCbG9ja0ZvckV4aXQtPmluc3RydWN0aW9uc1Jhd1BvaW50ZXIo
KSksIExMSW50OjpSZWdpc3RlcnM6OnBiR1BSKTsKICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSksIExMSW50OjpSZWdpc3Rl
cnM6OnBjR1BSKTsKLSNlbHNlCi0gICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbVB0cigmY3VycmVudEluc3RydWN0aW9uKSwgTExJbnQ6OlJlZ2lzdGVyczo6cGNHUFIpOwot
I2VuZGlmCiAgICAgICAgIGp1bXBUYXJnZXQgPSBkZXN0aW5hdGlvbi5yZXRhZ2dlZDxPU1JFeGl0
UHRyVGFnPigpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQnl0
ZWNvZGVJbmRleCBleGl0SW5kZXggPSBleGl0Lm1fY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKaW5kZXggZDZkYmUw
OTA4ZTRlOGFkYWVhZTYyNGQ2MDU0Yjk4YTdjYzE1MTI4NC4uZDcxN2UxODRkMmM1OTk5YWFiMmNl
YWY0MzgwMmYxNjZiODBlY2QxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRDYWxsMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2Fs
bDMyXzY0LmNwcApAQCAtMjg4LDcgKzI4OCw4IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsKGNv
bnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgdW5zaWduZWQgY2FsbExpbmtJbmZvSW5kCiAg
ICAgY29tcGlsZVNldHVwRnJhbWUoYnl0ZWNvZGUsIGluZm8pOwogICAgIC8vIFNQIGhvbGRzIG5l
d0NhbGxGcmFtZSArIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSwgd2l0aCBBcmd1bWVudENvdW50
IGluaXRpYWxpemVkLgogICAgIAotICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRl
SW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGluc3RydWN0aW9uKSkp
LmJpdHMoKTsKKyAgICBhdXRvIGJ5dGVjb2RlSW5kZXggPSBtX2NvZGVCbG9jay0+Ynl0ZWNvZGVJ
bmRleChpbnN0cnVjdGlvbik7CisgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJ
bmRleChieXRlY29kZUluZGV4KS5iaXRzKCk7CiAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9j
YXRpb25CaXRzKSwgdGFnRm9yKENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzKSk7CiAgICAgZW1pdExvYWQoY2FsbGVlLCByZWdUMSwgcmVnVDApOyAvLyByZWdUMSwgcmVn
VDAgaG9sZHMgY2FsbGVlLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCmlu
ZGV4IDljMTE3MzQzNDBjMzY0NzIxYjM1OGI5NTE2ZjY4NzA5MzM0YzVhMDQuLmE3ZmZhNDNkODNi
MTQ0Y2EwYWJmOGNmM2NmZWE5YTg0OWZmOGY3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lcy5oCkBAIC0xMDQsMTIgKzEwNCw3IEBAIEFMV0FZU19JTkxJTkUgSklUOjpDYWxs
IEpJVDo6ZW1pdE5ha2VkVGFpbENhbGwoQ29kZVB0cjxOb1B0clRhZz4gdGFyZ2V0KQogCiBBTFdB
WVNfSU5MSU5FIHZvaWQgSklUOjp1cGRhdGVUb3BDYWxsRnJhbWUoKQogewotI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCi0gICAgY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gbV9jb2RlQmxv
Y2stPmluc3RydWN0aW9ucygpLmF0KG1fYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSkucHRyKCk7Ci0g
ICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KGJp
dHdpc2VfY2FzdDx1aW50MzJfdD4oaW5zdHJ1Y3Rpb24pKSkuYml0cygpOwotI2Vsc2UKICAgICB1
aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCkuYml0
cygpOwotI2VuZGlmCiAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgdGFn
Rm9yKENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSk7CiAgICAgCiAg
ICAgLy8gRklYTUU6IEl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcyBpcyBuZWVkZWQuIEpJVE9wZXJh
dGlvbnMgdGVuZCB0byB1cGRhdGUgdGhlIHRvcCBjYWxsIGZyYW1lIG9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggMzAyODZjZDMyOWIzMWY5
NzRiOGVkODRmNTFhZjZmYmM3NjM4MGM0My4uYTc2N2M5MTc4YTVhNjQ4OTJiZTAwYmRmNzU0NjU5
NTMxMGIzMmM0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMy
XzY0LmNwcApAQCAtMTQyNiw3ICsxNDI2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbG9nX3NoYWRv
d19jaGlja2VuX3RhaWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAg
ICBlbWl0TG9hZFRhZyhieXRlY29kZS5tX3RoaXNWYWx1ZS5vZmZzZXQoKSwgcmVnVDEpOwogICAg
IEpTVmFsdWVSZWdzIHRoaXNSZWdzKHJlZ1QxLCByZWdUMik7CiAgICAgZW1pdExvYWRQYXlsb2Fk
KGJ5dGVjb2RlLm1fc2NvcGUub2Zmc2V0KCksIHJlZ1QzKTsKLSAgICBsb2dTaGFkb3dDaGlja2Vu
VGFpbFBhY2tldChzaGFkb3dQYWNrZXRSZWcsIHRoaXNSZWdzLCByZWdUMywgbV9jb2RlQmxvY2ss
IENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGN1cnJl
bnRJbnN0cnVjdGlvbikpKSk7CisgICAgbG9nU2hhZG93Q2hpY2tlblRhaWxQYWNrZXQoc2hhZG93
UGFja2V0UmVnLCB0aGlzUmVncywgcmVnVDMsIG1fY29kZUJsb2NrLCBDYWxsU2l0ZUluZGV4KG1f
Ynl0ZWNvZGVJbmRleCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCmluZGV4IGIw
MjRiNjVhZmMxMGNjYjIyZWFkOWMzMDRiNTlhZTkyMzAyODIwMzkuLmRkY2E3MWFhYjEzYjAyMTE0
YzU5NzEwNDJhOTEzYWJiOGM5YTFmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIHZv
aWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKICAgICAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCBy
ZWdUNCwgcHJvZmlsZSk7CiAKICAgICAgICAgSklUR2V0QnlWYWxHZW5lcmF0b3IgZ2VuKAotICAg
ICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNp
dGVJbmRleChCeXRlY29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3Ry
dWN0aW9uKSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAg
ICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0
ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdp
c3RlcnMoKSwKICAgICAgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpT
VmFsdWVSZWdzKHJlZ1QzLCByZWdUMiksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOwogICAg
ICAgICBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQocHJvcGVydHkpKQogICAgICAgICAgICAgZ2Vu
LnN0dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7CkBAIC0zNjUsNyArMzY1LDcgQEAg
SklUUHV0QnlJZEdlbmVyYXRvciBKSVQ6OmVtaXRQdXRCeVZhbFdpdGhDYWNoZWRJZChCeVZhbElu
Zm8qIGJ5VmFsSW5mbywgT3AgYnl0ZWMKIAogICAgIGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24gPSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYXQoYnlWYWxJbmZvLT5i
eXRlY29kZUluZGV4KS5wdHIoKTsKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAg
ICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRl
eChCeXRlY29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0aW9u
KSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAgICAgIG1f
Y29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9i
eXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAog
ICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdU
MywgcmVnVDIpLCByZWdUMSwgbV9jb2RlQmxvY2stPmVjbWFNb2RlKCksIHB1dEtpbmQpOwogICAg
IGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAo
KSk7CkBAIC00MjksNyArNDI5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZChj
b25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRKdW1wU2xvd0Nh
c2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CiAKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdl
bigKLSAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2Fs
bFNpdGVJbmRleChCeXRlY29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudElu
c3RydWN0aW9uKSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisg
ICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRl
SW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lz
dGVycygpLAogICAgICAgICBpZGVudC0+aW1wbCgpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHko
cmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBBY2Nlc3NUeXBlOjpUcnlHZXRCeUlk
KTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2Vu
LnNsb3dQYXRoSnVtcCgpKTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9n
ZXRfYnlfaWRfZGlyZWN0KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKIAogICAgIEpJVEdl
dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5
dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgoYml0d2lzZV9jYXN0PHVp
bnQzMl90PihjdXJyZW50SW5zdHJ1Y3Rpb24pKSksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFi
bGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29k
ZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1
YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIGlkZW50LT5pbXBsKCksIEpTVmFsdWVS
ZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEFjY2Vz
c1R5cGU6OkdldEJ5SWREaXJlY3QpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsK
ICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwpAQCAtNTE0LDcgKzUxNCw3IEBA
IHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIH0KIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAg
ICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4
KEJ5dGVjb2RlSW5kZXgoYml0d2lzZV9jYXN0PHVpbnQzMl90PihjdXJyZW50SW5zdHJ1Y3Rpb24p
KSksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9j
b2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5
dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAg
ICAgICAgIGlkZW50LT5pbXBsKCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpT
VmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEFjY2Vzc1R5cGU6OkdldEJ5SWQpOwogICAgIGdlbi5n
ZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1w
KCkpOwpAQCAtNTU1LDcgKzU1NSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZF93aXRo
X3RoaXMoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0SnVt
cFNsb3dDYXNlSWZOb3RKU0NlbGwodGhpc1ZSZWcsIHJlZ1Q0KTsKIAogICAgIEpJVEdldEJ5SWRX
aXRoVGhpc0dlbmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1f
Ynl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8
dWludDMyX3Q+KGN1cnJlbnRJbnN0cnVjdGlvbikpKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWls
YWJsZVJlZ2lzdGVycygpLAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVj
b2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0Ojpz
dHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgaWRlbnQtPmltcGwoKSwgSlNWYWx1
ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNW
YWx1ZVJlZ3MocmVnVDQsIHJlZ1QzKSk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMp
OwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CkBAIC01OTgsNyArNTk4LDcg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1Qx
KTsKIAogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2NvZGVCbG9jaywg
Q29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgo
Yml0d2lzZV9jYXN0PHVpbnQzMl90PihjdXJyZW50SW5zdHJ1Y3Rpb24pKSksIFJlZ2lzdGVyU2V0
OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVP
cmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBS
ZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIEpTVmFsdWVS
ZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMiksCiAgICAg
ICAgIHJlZ1QxLCBtX2NvZGVCbG9jay0+ZWNtYU1vZGUoKSwgZGlyZWN0ID8gRGlyZWN0IDogTm90
RGlyZWN0KTsKICAgICAKQEAgLTY0Miw3ICs2NDIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pbl9i
eV9pZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRKdW1w
U2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CiAKICAgICBKSVRJbkJ5SWRHZW5lcmF0
b3IgZ2VuKAotICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgp
LCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgoYml0d2lzZV9jYXN0PHVpbnQzMl90PihjdXJy
ZW50SW5zdHJ1Y3Rpb24pKSksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMo
KSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2Fs
bFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxl
UmVnaXN0ZXJzKCksCiAgICAgICAgIGlkZW50LT5pbXBsKCksIEpTVmFsdWVSZWdzOjpwYXlsb2Fk
T25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOwogICAgIGdlbi5nZW5lcmF0
ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAppbmRleCAzOWE1NDEyYjY5
MWUwMjJjYWYwMjNkODBiZTU2NTczMWExNjhlOTBjLi5iNDgwYTM4NWE3ZDk5ZGU1NDlhZjNmYzBh
NThjNDkyYzQxNzk5N2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRh
LmNwcApAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0m
IHZtKQogI2lmIEVOQUJMRShDX0xPT1ApCiAgICAgQVNTRVJUKENvZGVCbG9jazo6bGxpbnRCYXNl
bGluZUNhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycygpID09IDEpOwogI2VsaWYgVVNF
KEpTVkFMVUUzMl82NCkKLSAgICBBU1NFUlQoQ29kZUJsb2NrOjpsbGludEJhc2VsaW5lQ2FsbGVl
U2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzKCkgPT0gMSk7CisgICAgQVNTRVJUKENvZGVCbG9j
azo6bGxpbnRCYXNlbGluZUNhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycygpID09IDIp
OwogI2VsaWYgKENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkgIHx8IENQVShBUk02NCkKICAg
ICBBU1NFUlQoQ29kZUJsb2NrOjpsbGludEJhc2VsaW5lQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFs
UmVnaXN0ZXJzKCkgPT0gNCk7CiAjZWxpZiAoQ1BVKFg4Nl82NCkgJiYgT1MoV0lORE9XUykpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5j
cHAKaW5kZXggYTZkZDEwZmUyOTc0YjZmYmI2Njg1M2MyNWNkMGI5OWUxY2I0M2QwMS4uMTA3YWRj
MDhlZjQyNzNhZjVlNmE2NWFjZDE4OTU5MmMzNzYwMzI4MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcApAQCAtMzgzLDExICsz
ODMsNyBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKE9wY29kZUlEIGVudHJ5T3Bjb2RlSUQsIHZv
aWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSogdm0sCiAjZGVmaW5lIFJFQ09SRF9PUENPREVfU1RB
VFMoX19vcGNvZGUpCiAjZW5kaWYKIAotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0jZGVmaW5lIEZF
VENIX09QQ09ERSgpICpwYy5pOHAKLSNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpCiAjZGVmaW5lIEZF
VENIX09QQ09ERSgpICpiaXR3aXNlX2Nhc3Q8T3Bjb2RlSUQqPihwY0Jhc2UuaThwICsgcGMuaSkK
LSNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogCiAjZGVmaW5lIE5FWFRfSU5TVFJVQ1RJT04oKSBc
CiAgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDYxZDcxZTJmOGI4
Y2M2MDFlYTM3NjFiZmY1ZmQzYzQ5OWI5MWFkNDAuLmJlYzE3NjA3ZGMxZjI3ZDMzZDNiNDRkZWFm
YmYzYWViMmRlN2QzOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBAIC00NTUsMTggKzQ1NSwxMCBAQCBzdGF0aWMgQUxXQVlT
X0lOTElORSBCeXRlY29kZUluZGV4IHRyeUdldEJ5dGVjb2RlSW5kZXgodW5zaWduZWQgbGxpbnRQ
QywgQ29kZUJsbwogICAgIFJFTEVBU0VfQVNTRVJUKCFjb2RlQmxvY2stPmhhc0NvZGVPcmlnaW5z
KCkpOwogI2VuZGlmCiAKLSNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHVuc2lnbmVkIGJ5dGVjb2Rl
T2Zmc2V0ID0gbGxpbnRQQzsKICAgICBpZiAoYnl0ZWNvZGVPZmZzZXQgPCBjb2RlQmxvY2stPmlu
c3RydWN0aW9uc1NpemUoKSkKICAgICAgICAgcmV0dXJuIEJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVP
ZmZzZXQpOwogICAgIHJldHVybiBCeXRlY29kZUluZGV4KCk7Ci0jZWxzZQotICAgIEluc3RydWN0
aW9uKiBpbnN0cnVjdGlvbiA9IGJpdHdpc2VfY2FzdDxJbnN0cnVjdGlvbio+KGxsaW50UEMpOwot
Ci0gICAgaWYgKGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuY29udGFpbnMoaW5zdHJ1Y3Rpb24p
KQotICAgICAgICByZXR1cm4gQnl0ZWNvZGVJbmRleChjb2RlQmxvY2stPmJ5dGVjb2RlT2Zmc2V0
KGluc3RydWN0aW9uKSk7Ci0gICAgcmV0dXJuIEJ5dGVjb2RlSW5kZXgoKTsKLSNlbmRpZgogfQog
CiB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnByb2Nlc3NVbnZlcmlmaWVkU3RhY2tUcmFjZXMoY29u
c3QgQWJzdHJhY3RMb2NrZXImKQpAQCAtNjEzLDEyICs2MDUsNyBAQCB2b2lkIFNhbXBsaW5nUHJv
ZmlsZXI6OnByb2Nlc3NVbnZlcmlmaWVkU3RhY2tUcmFjZXMoY29uc3QgQWJzdHJhY3RMb2NrZXIm
KQogICAgICAgICAgICAgICAgIC8vIGJ5IGlnbm9yaW5nIGl0LgogICAgICAgICAgICAgICAgIEJ5
dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleCA9IEJ5dGVjb2RlSW5kZXgoMCk7CiAgICAgICAgICAg
ICAgICAgaWYgKHRvcENvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVFR5cGU6OkludGVycHJldGVy
VGh1bmsgfHwgdG9wQ29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUVHlwZTo6QmFzZWxpbmVKSVQp
IHsKLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYml0czsKLSNpZiBVU0UoSlNWQUxVRTY0
KQotICAgICAgICAgICAgICAgICAgICBiaXRzID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGJpdHdp
c2VfY2FzdDx1aW50cHRyX3Q+KHVucHJvY2Vzc2VkU3RhY2tUcmFjZS5sbGludFBDKSk7Ci0jZWxz
ZQotICAgICAgICAgICAgICAgICAgICBiaXRzID0gYml0d2lzZV9jYXN0PHVuc2lnbmVkPih1bnBy
b2Nlc3NlZFN0YWNrVHJhY2UubGxpbnRQQyk7Ci0jZW5kaWYKKyAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgYml0cyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihiaXR3aXNlX2Nhc3Q8dWludHB0
cl90Pih1bnByb2Nlc3NlZFN0YWNrVHJhY2UubGxpbnRQQykpOwogICAgICAgICAgICAgICAgICAg
ICBieXRlY29kZUluZGV4ID0gdHJ5R2V0Qnl0ZWNvZGVJbmRleChiaXRzLCB0b3BDb2RlQmxvY2sp
OwogCiAgICAgICAgICAgICAgICAgICAgIFVOVVNFRF9QQVJBTShieXRlY29kZUluZGV4KTsgLy8g
RklYTUU6IGRvIHNvbWV0aGluZyB3aXRoIHRoaXMgaW5mbyBmb3IgdGhlIHdlYiBpbnNwZWN0b3I6
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM0NTUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388413</attachid>
            <date>2020-01-22 03:37:20 -0800</date>
            <delta_ts>2020-01-22 03:48:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206577-20200122033719.patch</filename>
            <type>text/plain</type>
            <size>19712</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZmE0N2M4M2FkMWY4YjE1ZmZjNTdjNzdmNzQ4YTEyYWIyZWFhMDkxLi4yYWFlMzkyYjc3NWUyYTk2
YmIzMWRjM2NjMTE0NzQyZDA2ODE3M2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAyMC0wMS0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEF0dGVtcHQgdG8gZml4IEJ5dGVjb2RlSW5kZXggaGFuZGxpbmcg
aW4gMzJiaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNjU3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggbWVjaGFuaWNhbGx5IGxpc3RzIHVwIHBsYWNlcyB1c2luZyBJbnN0cnVjdGlv
biogYXMgQnl0ZWNvZGVJbmRleCBhbmQgYXR0ZW1wdHMgdG8gZml4IGl0LgorICAgICAgICBUaGlz
IHBhdGNoIGFsc28gZml4ZXMgc2V2ZXJhbCBwbGFjZXMgd2hlcmUgTExJbnQgUEIgaXMgbm90IGhh
bmRsZWQgd2VsbCBpbiAzMmJpdC4KKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6
CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Ynl0ZWNvZGVJbmRleEZyb21DYWxsU2l0ZUluZGV4
KToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpyZWlmeUlubGluZWRDYWxsRnJhbWVzKToKKyAgICAgICAgKEpTQzo6REZHOjph
ZGp1c3RBbmRKdW1wVG9UYXJnZXQpOgorICAgICAgICAqIGppdC9KSVRDYWxsMzJfNjQuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOgorICAgICAgICAqIGppdC9KSVRJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6dXBkYXRlVG9wQ2FsbEZyYW1lKToKKyAgICAgICAg
KiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2xv
Z19zaGFkb3dfY2hpY2tlbl90YWlsKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0UHV0QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9n
ZXRfYnlfaWRfZGlyZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV9pZCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfd2l0aF90aGlzKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9pbl9ieV9pZCk6CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAgICAgICAg
KEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBsbGludC9M
b3dMZXZlbEludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Q0xvb3A6OmV4ZWN1dGUpOgor
ICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OnRy
eUdldEJ5dGVjb2RlSW5kZXgpOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpwcm9j
ZXNzVW52ZXJpZmllZFN0YWNrVHJhY2VzKToKKwogMjAyMC0wMS0yMSAgUm9zcyBLaXJzbGluZyAg
PHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW0pTQ10gRGF0ZSBwYXJzZSBsb2dp
YyBzaG91bGQgYmUgbGVzcyByZWR1bmRhbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKaW5kZXggZDIwNGJkMmVlZDJiNWYwZDU4YWI1YjNiM2JjOGM1NDU4
YTc2NTQxNS4uNjFmM2Y3OTk4NDVhNDNmNGUwYzk2NTZiNTkxZWEzZmI3Y2JhNmQ0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTMyNDcsMTQg
KzMyNDcsOSBAQCBPcHRpb25hbDxCeXRlY29kZUluZGV4PiBDb2RlQmxvY2s6OmJ5dGVjb2RlSW5k
ZXhGcm9tQ2FsbFNpdGVJbmRleChDYWxsU2l0ZUluZGV4CiB7CiAgICAgT3B0aW9uYWw8Qnl0ZWNv
ZGVJbmRleD4gYnl0ZWNvZGVJbmRleDsKICAgICBKSVRUeXBlIGppdFR5cGUgPSB0aGlzLT5qaXRU
eXBlKCk7Ci0gICAgaWYgKGppdFR5cGUgPT0gSklUVHlwZTo6SW50ZXJwcmV0ZXJUaHVuayB8fCBq
aXRUeXBlID09IEpJVFR5cGU6OkJhc2VsaW5lSklUKSB7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICBpZiAoaml0VHlwZSA9PSBKSVRUeXBlOjpJbnRlcnByZXRlclRodW5rIHx8IGppdFR5cGUgPT0g
SklUVHlwZTo6QmFzZWxpbmVKSVQpCiAgICAgICAgIGJ5dGVjb2RlSW5kZXggPSBjYWxsU2l0ZUlu
ZGV4LmJ5dGVjb2RlSW5kZXgoKTsKLSNlbHNlCi0gICAgICAgIEluc3RydWN0aW9uKiBpbnN0cnVj
dGlvbiA9IGJpdHdpc2VfY2FzdDxJbnN0cnVjdGlvbio+KGNhbGxTaXRlSW5kZXguYml0cygpKTsK
LSAgICAgICAgYnl0ZWNvZGVJbmRleCA9IHRoaXMtPmJ5dGVjb2RlSW5kZXgoaW5zdHJ1Y3Rpb24p
OwotI2VuZGlmCi0gICAgfSBlbHNlIGlmIChqaXRUeXBlID09IEpJVFR5cGU6OkRGR0pJVCB8fCBq
aXRUeXBlID09IEpJVFR5cGU6OkZUTEpJVCkgeworICAgIGVsc2UgaWYgKGppdFR5cGUgPT0gSklU
VHlwZTo6REZHSklUIHx8IGppdFR5cGUgPT0gSklUVHlwZTo6RlRMSklUKSB7CiAjaWYgRU5BQkxF
KERGR19KSVQpCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNhbkdldENvZGVPcmlnaW4oY2FsbFNp
dGVJbmRleCkpOwogICAgICAgICBDb2RlT3JpZ2luIG9yaWdpbiA9IGNvZGVPcmlnaW4oY2FsbFNp
dGVJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4
aXRDb21waWxlckNvbW1vbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4
aXRDb21waWxlckNvbW1vbi5jcHAKaW5kZXggMjdlMmFhOGQ5OGY3N2MyY2JmZGQzN2UyYWNkYzcy
ZjQ4ZGM1ZTlkOS4uNDc5ZGZkYTNmMWZjYTg5ZjkxMGU0NjJkYjZlMzAyM2M0M2QwYmFiZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21t
b24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVy
Q29tbW9uLmNwcApAQCAtMzA1LDI0ICszMDUsMTggQEAgdm9pZCByZWlmeUlubGluZWRDYWxsRnJh
bWVzKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBPU1JFeGl0QmFzZSYgZXhpdCkKICAgICAgICAg
aWYgKGNhbGxlcklzTExJbnQpIHsKICAgICAgICAgICAgIENvZGVCbG9jayogYmFzZWxpbmVDb2Rl
QmxvY2tGb3JDYWxsZXIgPSBqaXQuYmFzZWxpbmVDb2RlQmxvY2tGb3IoKnRydWVDYWxsZXIpOwog
ICAgICAgICAgICAgaml0LnN0b3JlUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihiYXNl
bGluZUNvZGVCbG9ja0ZvckNhbGxlci0+bWV0YWRhdGFUYWJsZSgpKSwgY2FsbGVlU2F2ZVNsb3Qo
aW5saW5lQ2FsbEZyYW1lLCBiYXNlbGluZUNvZGVCbG9jaywgTExJbnQ6OlJlZ2lzdGVyczo6bWV0
YWRhdGFUYWJsZUdQUikpOwotI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBqaXQuc3Rv
cmVQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJhc2VsaW5lQ29kZUJsb2NrRm9yQ2Fs
bGVyLT5pbnN0cnVjdGlvbnNSYXdQb2ludGVyKCkpLCBjYWxsZWVTYXZlU2xvdChpbmxpbmVDYWxs
RnJhbWUsIGJhc2VsaW5lQ29kZUJsb2NrLCBMTEludDo6UmVnaXN0ZXJzOjpwYkdQUikpOwotI2Vu
ZGlmCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+aXNWYXJhcmdz
KCkpCiAgICAgICAgICAgICBqaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0z
MihpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSwgQXNzZW1ibHlI
ZWxwZXJzOjpwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNr
T2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKSk7Ci0j
aWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaml0LnN0b3JlUHRyKGNhbGxlckZyYW1lR1BSLCBB
c3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3JCeXRlT2Zmc2V0KGlubGluZUNhbGxGcmFtZS0+Y2Fs
bGVyRnJhbWVPZmZzZXQoKSkpOwogICAgICAgICB1aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxs
U2l0ZUluZGV4KGJhc2VsaW5lQ29kZUJsb2NrLT5ieXRlY29kZUluZGV4Rm9yRXhpdChjb2RlT3Jp
Z2luLT5ieXRlY29kZUluZGV4KCkpKS5iaXRzKCk7CiAgICAgICAgIGppdC5zdG9yZTMyKEFzc2Vt
Ymx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIEFzc2VtYmx5SGVscGVyczo6
dGFnRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgQ2Fs
bEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKSk7CisjaWYgVVNFKEpTVkFM
VUU2NCkKICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwpCiAgICAg
ICAgICAgICBqaXQuc3RvcmU2NChBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChKU1ZhbHVl
OjplbmNvZGUoSlNWYWx1ZShpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpKSksIEFz
c2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1l
LT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKICNlbHNlIC8vIFVTRShK
U1ZBTFVFNjQpIC8vIHNvIHRoaXMgaXMgdGhlIDMyLWJpdCBwYXJ0Ci0gICAgICAgIGppdC5zdG9y
ZVB0cihjYWxsZXJGcmFtZUdQUiwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yQnl0ZU9mZnNl
dChpbmxpbmVDYWxsRnJhbWUtPmNhbGxlckZyYW1lT2Zmc2V0KCkpKTsKLSAgICAgICAgY29uc3Qg
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gYmFzZWxpbmVDb2RlQmxvY2stPmluc3RydWN0aW9u
cygpLmF0KGNvZGVPcmlnaW4tPmJ5dGVjb2RlSW5kZXgoKSkucHRyKCk7Ci0gICAgICAgIHVpbnQz
Ml90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoKS5iaXRzKCk7Ci0gICAgICAgIGppdC5z
dG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIEFzc2Vt
Ymx5SGVscGVyczo6dGFnRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNr
T2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKSk7CiAg
ICAgICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5l
Q2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKICAgICAg
ICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwpCiAgICAgICAgICAgICBqaXQu
c3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlubGluZUNhbGxGcmFtZS0+
Y2FsbGVlQ29uc3RhbnQoKSksIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihWaXJ0dWFsUmVn
aXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSkpKTsKQEAgLTMzMSwxMyArMzI1LDcgQEAgdm9pZCByZWlmeUlubGluZWRDYWxsRnJhbWVzKEND
YWxsSGVscGVycyYgaml0LCBjb25zdCBPU1JFeGl0QmFzZSYgZXhpdCkKIAogICAgIC8vIERvbid0
IG5lZWQgdG8gc2V0IHRoZSB0b3BsZXZlbCBjb2RlIG9yaWdpbiBpZiB3ZSBvbmx5IGRpZCBpbmxp
bmUgdGFpbCBjYWxscwogICAgIGlmIChjb2RlT3JpZ2luKSB7Ci0jaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUlu
ZGV4KGNvZGVPcmlnaW4tPmJ5dGVjb2RlSW5kZXgoKS5vZmZzZXQoKSkpLmJpdHMoKTsKLSNlbHNl
Ci0gICAgICAgIGF1dG8gYnl0ZWNvZGVJbmRleCA9IGppdC5iYXNlbGluZUNvZGVCbG9jaygpLT5i
eXRlY29kZUluZGV4Rm9yRXhpdChjb2RlT3JpZ2luLT5ieXRlY29kZUluZGV4KCkpOwotICAgICAg
ICBjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSBqaXQuYmFzZWxpbmVDb2RlQmxvY2so
KS0+aW5zdHJ1Y3Rpb25zKGJ5dGVjb2RlSW5kZXgpLmF0KCkucHRyKCk7Ci0gICAgICAgIHVpbnQz
Ml90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoYml0d2lzZV9jYXN0PHVpbnQzMl90Pihp
bnN0cnVjdGlvbikpLmJpdHMoKTsKLSNlbmRpZgogICAgICAgICBqaXQuc3RvcmUzMihBc3NlbWJs
eUhlbHBlcnM6OlRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLCBBc3NlbWJseUhlbHBlcnM6OnRh
Z0ZvcihDYWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykpOwogICAgIH0K
IH0KQEAgLTQwNSwxMiArMzkzLDggQEAgdm9pZCBhZGp1c3RBbmRKdW1wVG9UYXJnZXQoVk0mIHZt
LCBDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgT1NSRXhpdEJhc2UmIGV4aXQpCiAgICAgICAgIH0K
IAogICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoY29kZUJsb2Nr
Rm9yRXhpdC0+bWV0YWRhdGFUYWJsZSgpKSwgTExJbnQ6OlJlZ2lzdGVyczo6bWV0YWRhdGFUYWJs
ZUdQUik7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKGNvZGVCbG9ja0ZvckV4aXQtPmluc3RydWN0aW9uc1Jhd1BvaW50ZXIo
KSksIExMSW50OjpSZWdpc3RlcnM6OnBiR1BSKTsKICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSksIExMSW50OjpSZWdpc3Rl
cnM6OnBjR1BSKTsKLSNlbHNlCi0gICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbVB0cigmY3VycmVudEluc3RydWN0aW9uKSwgTExJbnQ6OlJlZ2lzdGVyczo6cGNHUFIpOwot
I2VuZGlmCiAgICAgICAgIGp1bXBUYXJnZXQgPSBkZXN0aW5hdGlvbi5yZXRhZ2dlZDxPU1JFeGl0
UHRyVGFnPigpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQnl0
ZWNvZGVJbmRleCBleGl0SW5kZXggPSBleGl0Lm1fY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKaW5kZXggZDZkYmUw
OTA4ZTRlOGFkYWVhZTYyNGQ2MDU0Yjk4YTdjYzE1MTI4NC4uZDcxN2UxODRkMmM1OTk5YWFiMmNl
YWY0MzgwMmYxNjZiODBlY2QxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRDYWxsMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2Fs
bDMyXzY0LmNwcApAQCAtMjg4LDcgKzI4OCw4IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsKGNv
bnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgdW5zaWduZWQgY2FsbExpbmtJbmZvSW5kCiAg
ICAgY29tcGlsZVNldHVwRnJhbWUoYnl0ZWNvZGUsIGluZm8pOwogICAgIC8vIFNQIGhvbGRzIG5l
d0NhbGxGcmFtZSArIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSwgd2l0aCBBcmd1bWVudENvdW50
IGluaXRpYWxpemVkLgogICAgIAotICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRl
SW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGluc3RydWN0aW9uKSkp
LmJpdHMoKTsKKyAgICBhdXRvIGJ5dGVjb2RlSW5kZXggPSBtX2NvZGVCbG9jay0+Ynl0ZWNvZGVJ
bmRleChpbnN0cnVjdGlvbik7CisgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJ
bmRleChieXRlY29kZUluZGV4KS5iaXRzKCk7CiAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9j
YXRpb25CaXRzKSwgdGFnRm9yKENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzKSk7CiAgICAgZW1pdExvYWQoY2FsbGVlLCByZWdUMSwgcmVnVDApOyAvLyByZWdUMSwgcmVn
VDAgaG9sZHMgY2FsbGVlLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCmlu
ZGV4IDljMTE3MzQzNDBjMzY0NzIxYjM1OGI5NTE2ZjY4NzA5MzM0YzVhMDQuLmE3ZmZhNDNkODNi
MTQ0Y2EwYWJmOGNmM2NmZWE5YTg0OWZmOGY3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lcy5oCkBAIC0xMDQsMTIgKzEwNCw3IEBAIEFMV0FZU19JTkxJTkUgSklUOjpDYWxs
IEpJVDo6ZW1pdE5ha2VkVGFpbENhbGwoQ29kZVB0cjxOb1B0clRhZz4gdGFyZ2V0KQogCiBBTFdB
WVNfSU5MSU5FIHZvaWQgSklUOjp1cGRhdGVUb3BDYWxsRnJhbWUoKQogewotI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCi0gICAgY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gbV9jb2RlQmxv
Y2stPmluc3RydWN0aW9ucygpLmF0KG1fYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSkucHRyKCk7Ci0g
ICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KGJp
dHdpc2VfY2FzdDx1aW50MzJfdD4oaW5zdHJ1Y3Rpb24pKSkuYml0cygpOwotI2Vsc2UKICAgICB1
aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCkuYml0
cygpOwotI2VuZGlmCiAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgdGFn
Rm9yKENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSk7CiAgICAgCiAg
ICAgLy8gRklYTUU6IEl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcyBpcyBuZWVkZWQuIEpJVE9wZXJh
dGlvbnMgdGVuZCB0byB1cGRhdGUgdGhlIHRvcCBjYWxsIGZyYW1lIG9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggMzAyODZjZDMyOWIzMWY5
NzRiOGVkODRmNTFhZjZmYmM3NjM4MGM0My4uYTc2N2M5MTc4YTVhNjQ4OTJiZTAwYmRmNzU0NjU5
NTMxMGIzMmM0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMy
XzY0LmNwcApAQCAtMTQyNiw3ICsxNDI2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbG9nX3NoYWRv
d19jaGlja2VuX3RhaWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAg
ICBlbWl0TG9hZFRhZyhieXRlY29kZS5tX3RoaXNWYWx1ZS5vZmZzZXQoKSwgcmVnVDEpOwogICAg
IEpTVmFsdWVSZWdzIHRoaXNSZWdzKHJlZ1QxLCByZWdUMik7CiAgICAgZW1pdExvYWRQYXlsb2Fk
KGJ5dGVjb2RlLm1fc2NvcGUub2Zmc2V0KCksIHJlZ1QzKTsKLSAgICBsb2dTaGFkb3dDaGlja2Vu
VGFpbFBhY2tldChzaGFkb3dQYWNrZXRSZWcsIHRoaXNSZWdzLCByZWdUMywgbV9jb2RlQmxvY2ss
IENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGN1cnJl
bnRJbnN0cnVjdGlvbikpKSk7CisgICAgbG9nU2hhZG93Q2hpY2tlblRhaWxQYWNrZXQoc2hhZG93
UGFja2V0UmVnLCB0aGlzUmVncywgcmVnVDMsIG1fY29kZUJsb2NrLCBDYWxsU2l0ZUluZGV4KG1f
Ynl0ZWNvZGVJbmRleCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCmluZGV4IGIw
MjRiNjVhZmMxMGNjYjIyZWFkOWMzMDRiNTlhZTkyMzAyODIwMzkuLmRkY2E3MWFhYjEzYjAyMTE0
YzU5NzEwNDJhOTEzYWJiOGM5YTFmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIHZv
aWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKICAgICAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCBy
ZWdUNCwgcHJvZmlsZSk7CiAKICAgICAgICAgSklUR2V0QnlWYWxHZW5lcmF0b3IgZ2VuKAotICAg
ICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNp
dGVJbmRleChCeXRlY29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3Ry
dWN0aW9uKSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAg
ICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0
ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdp
c3RlcnMoKSwKICAgICAgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpT
VmFsdWVSZWdzKHJlZ1QzLCByZWdUMiksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOwogICAg
ICAgICBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQocHJvcGVydHkpKQogICAgICAgICAgICAgZ2Vu
LnN0dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7CkBAIC0zNjUsNyArMzY1LDcgQEAg
SklUUHV0QnlJZEdlbmVyYXRvciBKSVQ6OmVtaXRQdXRCeVZhbFdpdGhDYWNoZWRJZChCeVZhbElu
Zm8qIGJ5VmFsSW5mbywgT3AgYnl0ZWMKIAogICAgIGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24gPSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYXQoYnlWYWxJbmZvLT5i
eXRlY29kZUluZGV4KS5wdHIoKTsKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAg
ICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRl
eChCeXRlY29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0aW9u
KSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAgICAgIG1f
Y29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9i
eXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAog
ICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdU
MywgcmVnVDIpLCByZWdUMSwgbV9jb2RlQmxvY2stPmVjbWFNb2RlKCksIHB1dEtpbmQpOwogICAg
IGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAo
KSk7CkBAIC00MjksNyArNDI5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZChj
b25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRKdW1wU2xvd0Nh
c2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CiAKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdl
bigKLSAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2Fs
bFNpdGVJbmRleChCeXRlY29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudElu
c3RydWN0aW9uKSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisg
ICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRl
SW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lz
dGVycygpLAogICAgICAgICBpZGVudC0+aW1wbCgpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHko
cmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBBY2Nlc3NUeXBlOjpUcnlHZXRCeUlk
KTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2Vu
LnNsb3dQYXRoSnVtcCgpKTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9n
ZXRfYnlfaWRfZGlyZWN0KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKIAogICAgIEpJVEdl
dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5
dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgoYml0d2lzZV9jYXN0PHVp
bnQzMl90PihjdXJyZW50SW5zdHJ1Y3Rpb24pKSksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFi
bGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29k
ZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1
YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIGlkZW50LT5pbXBsKCksIEpTVmFsdWVS
ZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEFjY2Vz
c1R5cGU6OkdldEJ5SWREaXJlY3QpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsK
ICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwpAQCAtNTE0LDcgKzUxNCw3IEBA
IHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIH0KIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAg
ICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4
KEJ5dGVjb2RlSW5kZXgoYml0d2lzZV9jYXN0PHVpbnQzMl90PihjdXJyZW50SW5zdHJ1Y3Rpb24p
KSksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9j
b2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5
dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAg
ICAgICAgIGlkZW50LT5pbXBsKCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpT
VmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEFjY2Vzc1R5cGU6OkdldEJ5SWQpOwogICAgIGdlbi5n
ZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1w
KCkpOwpAQCAtNTU1LDcgKzU1NSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZF93aXRo
X3RoaXMoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0SnVt
cFNsb3dDYXNlSWZOb3RKU0NlbGwodGhpc1ZSZWcsIHJlZ1Q0KTsKIAogICAgIEpJVEdldEJ5SWRX
aXRoVGhpc0dlbmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1f
Ynl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8
dWludDMyX3Q+KGN1cnJlbnRJbnN0cnVjdGlvbikpKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWls
YWJsZVJlZ2lzdGVycygpLAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVj
b2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0Ojpz
dHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgaWRlbnQtPmltcGwoKSwgSlNWYWx1
ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNW
YWx1ZVJlZ3MocmVnVDQsIHJlZ1QzKSk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMp
OwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CkBAIC01OTgsNyArNTk4LDcg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1Qx
KTsKIAogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2NvZGVCbG9jaywg
Q29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgo
Yml0d2lzZV9jYXN0PHVpbnQzMl90PihjdXJyZW50SW5zdHJ1Y3Rpb24pKSksIFJlZ2lzdGVyU2V0
OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVP
cmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBS
ZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIEpTVmFsdWVS
ZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMiksCiAgICAg
ICAgIHJlZ1QxLCBtX2NvZGVCbG9jay0+ZWNtYU1vZGUoKSwgZGlyZWN0ID8gRGlyZWN0IDogTm90
RGlyZWN0KTsKICAgICAKQEAgLTY0Miw3ICs2NDIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pbl9i
eV9pZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRKdW1w
U2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CiAKICAgICBKSVRJbkJ5SWRHZW5lcmF0
b3IgZ2VuKAotICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgp
LCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgoYml0d2lzZV9jYXN0PHVpbnQzMl90PihjdXJy
ZW50SW5zdHJ1Y3Rpb24pKSksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMo
KSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2Fs
bFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxl
UmVnaXN0ZXJzKCksCiAgICAgICAgIGlkZW50LT5pbXBsKCksIEpTVmFsdWVSZWdzOjpwYXlsb2Fk
T25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOwogICAgIGdlbi5nZW5lcmF0
ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAppbmRleCAzOWE1NDEyYjY5
MWUwMjJjYWYwMjNkODBiZTU2NTczMWExNjhlOTBjLi5iNDgwYTM4NWE3ZDk5ZGU1NDlhZjNmYzBh
NThjNDkyYzQxNzk5N2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRh
LmNwcApAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0m
IHZtKQogI2lmIEVOQUJMRShDX0xPT1ApCiAgICAgQVNTRVJUKENvZGVCbG9jazo6bGxpbnRCYXNl
bGluZUNhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycygpID09IDEpOwogI2VsaWYgVVNF
KEpTVkFMVUUzMl82NCkKLSAgICBBU1NFUlQoQ29kZUJsb2NrOjpsbGludEJhc2VsaW5lQ2FsbGVl
U2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzKCkgPT0gMSk7CisgICAgQVNTRVJUKENvZGVCbG9j
azo6bGxpbnRCYXNlbGluZUNhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycygpID09IDIp
OwogI2VsaWYgKENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkgIHx8IENQVShBUk02NCkKICAg
ICBBU1NFUlQoQ29kZUJsb2NrOjpsbGludEJhc2VsaW5lQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFs
UmVnaXN0ZXJzKCkgPT0gNCk7CiAjZWxpZiAoQ1BVKFg4Nl82NCkgJiYgT1MoV0lORE9XUykpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5j
cHAKaW5kZXggYTZkZDEwZmUyOTc0YjZmYmI2Njg1M2MyNWNkMGI5OWUxY2I0M2QwMS4uNDA5YmE0
OTY2OTBkZTJiY2U2NmM2NWIwMTU4Mzk0YzcxYzBmZTc2NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcApAQCAtMzgzLDE4ICsz
ODMsNiBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKE9wY29kZUlEIGVudHJ5T3Bjb2RlSUQsIHZv
aWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSogdm0sCiAjZGVmaW5lIFJFQ09SRF9PUENPREVfU1RB
VFMoX19vcGNvZGUpCiAjZW5kaWYKIAotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0jZGVmaW5lIEZF
VENIX09QQ09ERSgpICpwYy5pOHAKLSNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpCi0jZGVmaW5lIEZF
VENIX09QQ09ERSgpICpiaXR3aXNlX2Nhc3Q8T3Bjb2RlSUQqPihwY0Jhc2UuaThwICsgcGMuaSkK
LSNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQotCi0jZGVmaW5lIE5FWFRfSU5TVFJVQ1RJT04oKSBc
Ci0gICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIG9wY29kZSA9IEZF
VENIX09QQ09ERSgpOyBcCi0gICAgICAgIERJU1BBVENIX09QQ09ERSgpOyAgICAgICBcCi0gICAg
fSB3aGlsZSAoZmFsc2UpCi0KICNpZiBFTkFCTEUoQ09NUFVURURfR09UT19PUENPREVTKQogCiAg
ICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KQEAgLTQ4NSw3ICs0NzMsNiBAQCBKU1ZhbHVlIENMb29wOjpl
eGVjdXRlKE9wY29kZUlEIGVudHJ5T3Bjb2RlSUQsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBW
TSogdm0sCiAgICAgI3VuZGVmIExMSU5UX09QQ09ERV9FTlRSWQogI2VuZGlmCiAKLSAgICAjdW5k
ZWYgTkVYVF9JTlNUUlVDVElPTgogICAgICN1bmRlZiBERUZJTkVfT1BDT0RFCiAgICAgI3VuZGVm
IENIRUNLX0ZPUl9USU1FT1VUCiAgICAgI3VuZGVmIENBU1QKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggNjFkNzFlMmY4Yjhj
YzYwMWVhMzc2MWJmZjVmZDNjNDk5YjkxYWQ0MC4uYmVjMTc2MDdkYzFmMjdkMzNkM2I0NGRlYWZi
ZjNhZWIyZGU3ZDM5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2FtcGxpbmdQcm9maWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2FtcGxpbmdQcm9maWxlci5jcHAKQEAgLTQ1NSwxOCArNDU1LDEwIEBAIHN0YXRpYyBBTFdBWVNf
SU5MSU5FIEJ5dGVjb2RlSW5kZXggdHJ5R2V0Qnl0ZWNvZGVJbmRleCh1bnNpZ25lZCBsbGludFBD
LCBDb2RlQmxvCiAgICAgUkVMRUFTRV9BU1NFUlQoIWNvZGVCbG9jay0+aGFzQ29kZU9yaWdpbnMo
KSk7CiAjZW5kaWYKIAotI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgdW5zaWduZWQgYnl0ZWNvZGVP
ZmZzZXQgPSBsbGludFBDOwogICAgIGlmIChieXRlY29kZU9mZnNldCA8IGNvZGVCbG9jay0+aW5z
dHJ1Y3Rpb25zU2l6ZSgpKQogICAgICAgICByZXR1cm4gQnl0ZWNvZGVJbmRleChieXRlY29kZU9m
ZnNldCk7CiAgICAgcmV0dXJuIEJ5dGVjb2RlSW5kZXgoKTsKLSNlbHNlCi0gICAgSW5zdHJ1Y3Rp
b24qIGluc3RydWN0aW9uID0gYml0d2lzZV9jYXN0PEluc3RydWN0aW9uKj4obGxpbnRQQyk7Ci0K
LSAgICBpZiAoY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5jb250YWlucyhpbnN0cnVjdGlvbikp
Ci0gICAgICAgIHJldHVybiBCeXRlY29kZUluZGV4KGNvZGVCbG9jay0+Ynl0ZWNvZGVPZmZzZXQo
aW5zdHJ1Y3Rpb24pKTsKLSAgICByZXR1cm4gQnl0ZWNvZGVJbmRleCgpOwotI2VuZGlmCiB9CiAK
IHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6cHJvY2Vzc1VudmVyaWZpZWRTdGFja1RyYWNlcyhjb25z
dCBBYnN0cmFjdExvY2tlciYpCkBAIC02MTMsMTIgKzYwNSw3IEBAIHZvaWQgU2FtcGxpbmdQcm9m
aWxlcjo6cHJvY2Vzc1VudmVyaWZpZWRTdGFja1RyYWNlcyhjb25zdCBBYnN0cmFjdExvY2tlciYp
CiAgICAgICAgICAgICAgICAgLy8gYnkgaWdub3JpbmcgaXQuCiAgICAgICAgICAgICAgICAgQnl0
ZWNvZGVJbmRleCBieXRlY29kZUluZGV4ID0gQnl0ZWNvZGVJbmRleCgwKTsKICAgICAgICAgICAg
ICAgICBpZiAodG9wQ29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUVHlwZTo6SW50ZXJwcmV0ZXJU
aHVuayB8fCB0b3BDb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGluZUpJVCkg
ewotICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBiaXRzOwotI2lmIFVTRShKU1ZBTFVFNjQp
Ci0gICAgICAgICAgICAgICAgICAgIGJpdHMgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oYml0d2lz
ZV9jYXN0PHVpbnRwdHJfdD4odW5wcm9jZXNzZWRTdGFja1RyYWNlLmxsaW50UEMpKTsKLSNlbHNl
Ci0gICAgICAgICAgICAgICAgICAgIGJpdHMgPSBiaXR3aXNlX2Nhc3Q8dW5zaWduZWQ+KHVucHJv
Y2Vzc2VkU3RhY2tUcmFjZS5sbGludFBDKTsKLSNlbmRpZgorICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBiaXRzID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGJpdHdpc2VfY2FzdDx1aW50cHRy
X3Q+KHVucHJvY2Vzc2VkU3RhY2tUcmFjZS5sbGludFBDKSk7CiAgICAgICAgICAgICAgICAgICAg
IGJ5dGVjb2RlSW5kZXggPSB0cnlHZXRCeXRlY29kZUluZGV4KGJpdHMsIHRvcENvZGVCbG9jayk7
CiAKICAgICAgICAgICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5kZXgpOyAvLyBG
SVhNRTogZG8gc29tZXRoaW5nIHdpdGggdGhpcyBpbmZvIGZvciB0aGUgd2ViIGluc3BlY3Rvcjog
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzQ1NQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388414</attachid>
            <date>2020-01-22 03:48:11 -0800</date>
            <delta_ts>2020-01-22 10:02:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206577-20200122034810.patch</filename>
            <type>text/plain</type>
            <size>19830</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZmE0N2M4M2FkMWY4YjE1ZmZjNTdjNzdmNzQ4YTEyYWIyZWFhMDkxLi5lNTZhODhkMWQ0ZWUzMTk1
MjdhNmFhOTU0OTE4ODE5ODcyNTU5MzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAyMC0wMS0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEF0dGVtcHQgdG8gZml4IEJ5dGVjb2RlSW5kZXggaGFuZGxpbmcg
aW4gMzJiaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNjU3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggbWVjaGFuaWNhbGx5IGxpc3RzIHVwIHBsYWNlcyB1c2luZyBJbnN0cnVjdGlv
biogYXMgQnl0ZWNvZGVJbmRleCBhbmQgZml4ZXMgaXQsCisgICAgICAgIHNpbmNlIDMyYml0IGFs
c28gc3RhcnRzIHVzaW5nIGFuIG9mZnNldCBhcyBCeXRlY29kZUluZGV4LiBUaGlzIHBhdGNoIGFs
c28gZml4ZXMgc2V2ZXJhbAorICAgICAgICBwbGFjZXMgd2hlcmUgTExJbnQgUEIgaXMgbm90IGhh
bmRsZWQgY29ycmVjdGx5IGluIDMyYml0IGFmdGVyIHdlIHN0YXJ0IHVzaW5nIFBCIHJlZ2lzdGVy
CisgICAgICAgIGV2ZW4gaW4gMzJiaXQuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2su
Y3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmJ5dGVjb2RlSW5kZXhGcm9tQ2FsbFNpdGVJ
bmRleCk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6cmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyk6CisgICAgICAgIChKU0M6OkRG
Rzo6YWRqdXN0QW5kSnVtcFRvVGFyZ2V0KToKKyAgICAgICAgKiBqaXQvSklUQ2FsbDMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BDYWxsKToKKyAgICAgICAgKiBqaXQvSklU
SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OnVwZGF0ZVRvcENhbGxGcmFtZSk6CisgICAg
ICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9sb2dfc2hhZG93X2NoaWNrZW5fdGFpbCk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNj
ZXNzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdFB1dEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX3RyeV9nZXRfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRf
b3BfZ2V0X2J5X2lkX2RpcmVjdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlf
aWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX3dpdGhfdGhpcyk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfaW5fYnlfaWQpOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAg
ICAgIChKU0M6OkxMSW50OjpEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyk6CisgICAgICAgICogbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkNMb29wOjpleGVjdXRl
KToKKyAgICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlND
Ojp0cnlHZXRCeXRlY29kZUluZGV4KToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
cHJvY2Vzc1VudmVyaWZpZWRTdGFja1RyYWNlcyk6CisKIDIwMjAtMDEtMjEgIFJvc3MgS2lyc2xp
bmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtKU0NdIERhdGUgcGFyc2Ug
bG9naWMgc2hvdWxkIGJlIGxlc3MgcmVkdW5kYW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGQyMDRiZDJlZWQyYjVmMGQ1OGFiNWIzYjNiYzhj
NTQ1OGE3NjU0MTUuLjYxZjNmNzk5ODQ1YTQzZjRlMGM5NjU2YjU5MWVhM2ZiN2NiYTZkNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0zMjQ3
LDE0ICszMjQ3LDkgQEAgT3B0aW9uYWw8Qnl0ZWNvZGVJbmRleD4gQ29kZUJsb2NrOjpieXRlY29k
ZUluZGV4RnJvbUNhbGxTaXRlSW5kZXgoQ2FsbFNpdGVJbmRleAogewogICAgIE9wdGlvbmFsPEJ5
dGVjb2RlSW5kZXg+IGJ5dGVjb2RlSW5kZXg7CiAgICAgSklUVHlwZSBqaXRUeXBlID0gdGhpcy0+
aml0VHlwZSgpOwotICAgIGlmIChqaXRUeXBlID09IEpJVFR5cGU6OkludGVycHJldGVyVGh1bmsg
fHwgaml0VHlwZSA9PSBKSVRUeXBlOjpCYXNlbGluZUpJVCkgewotI2lmIFVTRShKU1ZBTFVFNjQp
CisgICAgaWYgKGppdFR5cGUgPT0gSklUVHlwZTo6SW50ZXJwcmV0ZXJUaHVuayB8fCBqaXRUeXBl
ID09IEpJVFR5cGU6OkJhc2VsaW5lSklUKQogICAgICAgICBieXRlY29kZUluZGV4ID0gY2FsbFNp
dGVJbmRleC5ieXRlY29kZUluZGV4KCk7Ci0jZWxzZQotICAgICAgICBJbnN0cnVjdGlvbiogaW5z
dHJ1Y3Rpb24gPSBiaXR3aXNlX2Nhc3Q8SW5zdHJ1Y3Rpb24qPihjYWxsU2l0ZUluZGV4LmJpdHMo
KSk7Ci0gICAgICAgIGJ5dGVjb2RlSW5kZXggPSB0aGlzLT5ieXRlY29kZUluZGV4KGluc3RydWN0
aW9uKTsKLSNlbmRpZgotICAgIH0gZWxzZSBpZiAoaml0VHlwZSA9PSBKSVRUeXBlOjpERkdKSVQg
fHwgaml0VHlwZSA9PSBKSVRUeXBlOjpGVExKSVQpIHsKKyAgICBlbHNlIGlmIChqaXRUeXBlID09
IEpJVFR5cGU6OkRGR0pJVCB8fCBqaXRUeXBlID09IEpJVFR5cGU6OkZUTEpJVCkgewogI2lmIEVO
QUJMRShERkdfSklUKQogICAgICAgICBSRUxFQVNFX0FTU0VSVChjYW5HZXRDb2RlT3JpZ2luKGNh
bGxTaXRlSW5kZXgpKTsKICAgICAgICAgQ29kZU9yaWdpbiBvcmlnaW4gPSBjb2RlT3JpZ2luKGNh
bGxTaXRlSW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCmluZGV4IDI3ZTJhYThkOThmNzdjMmNiZmRkMzdlMmFj
ZGM3MmY0OGRjNWU5ZDkuLjQ3OWRmZGEzZjFmY2E4OWY5MTBlNDYyZGI2ZTMwMjNjNDNkMGJhYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVy
Q29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21w
aWxlckNvbW1vbi5jcHAKQEAgLTMwNSwyNCArMzA1LDE4IEBAIHZvaWQgcmVpZnlJbmxpbmVkQ2Fs
bEZyYW1lcyhDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgT1NSRXhpdEJhc2UmIGV4aXQpCiAgICAg
ICAgIGlmIChjYWxsZXJJc0xMSW50KSB7CiAgICAgICAgICAgICBDb2RlQmxvY2sqIGJhc2VsaW5l
Q29kZUJsb2NrRm9yQ2FsbGVyID0gaml0LmJhc2VsaW5lQ29kZUJsb2NrRm9yKCp0cnVlQ2FsbGVy
KTsKICAgICAgICAgICAgIGppdC5zdG9yZVB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIo
YmFzZWxpbmVDb2RlQmxvY2tGb3JDYWxsZXItPm1ldGFkYXRhVGFibGUoKSksIGNhbGxlZVNhdmVT
bG90KGlubGluZUNhbGxGcmFtZSwgYmFzZWxpbmVDb2RlQmxvY2ssIExMSW50OjpSZWdpc3RlcnM6
Om1ldGFkYXRhVGFibGVHUFIpKTsKLSNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0
LnN0b3JlUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihiYXNlbGluZUNvZGVCbG9ja0Zv
ckNhbGxlci0+aW5zdHJ1Y3Rpb25zUmF3UG9pbnRlcigpKSwgY2FsbGVlU2F2ZVNsb3QoaW5saW5l
Q2FsbEZyYW1lLCBiYXNlbGluZUNvZGVCbG9jaywgTExJbnQ6OlJlZ2lzdGVyczo6cGJHUFIpKTsK
LSNlbmRpZgogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzVmFy
YXJncygpKQogICAgICAgICAgICAgaml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyksIEFzc2Vt
Ymx5SGVscGVyczo6cGF5bG9hZEZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5z
dGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSkp
OwotI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIGppdC5zdG9yZVB0cihjYWxsZXJGcmFtZUdQ
UiwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yQnl0ZU9mZnNldChpbmxpbmVDYWxsRnJhbWUt
PmNhbGxlckZyYW1lT2Zmc2V0KCkpKTsKICAgICAgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0g
Q2FsbFNpdGVJbmRleChiYXNlbGluZUNvZGVCbG9jay0+Ynl0ZWNvZGVJbmRleEZvckV4aXQoY29k
ZU9yaWdpbi0+Ynl0ZWNvZGVJbmRleCgpKSkuYml0cygpOwogICAgICAgICBqaXQuc3RvcmUzMihB
c3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLCBBc3NlbWJseUhlbHBl
cnM6OnRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAr
IENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSkpOworI2lmIFVTRShK
U1ZBTFVFNjQpCiAgICAgICAgIGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQog
ICAgICAgICAgICAgaml0LnN0b3JlNjQoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tNjQoSlNW
YWx1ZTo6ZW5jb2RlKEpTVmFsdWUoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVDb25zdGFudCgpKSkp
LCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxG
cmFtZS0+c3RhY2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7CiAjZWxzZSAvLyBV
U0UoSlNWQUxVRTY0KSAvLyBzbyB0aGlzIGlzIHRoZSAzMi1iaXQgcGFydAotICAgICAgICBqaXQu
c3RvcmVQdHIoY2FsbGVyRnJhbWVHUFIsIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvckJ5dGVP
ZmZzZXQoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXJGcmFtZU9mZnNldCgpKSk7Ci0gICAgICAgIGNv
bnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiA9IGJhc2VsaW5lQ29kZUJsb2NrLT5pbnN0cnVj
dGlvbnMoKS5hdChjb2RlT3JpZ2luLT5ieXRlY29kZUluZGV4KCkpLnB0cigpOwotICAgICAgICB1
aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KCkuYml0cygpOwotICAgICAgICBq
aXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLCBB
c3NlbWJseUhlbHBlcnM6OnRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5z
dGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSkp
OwogICAgICAgICBqaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpDZWxsVGFnKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoVmlydHVhbFJlZ2lzdGVyKGlu
bGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7CiAg
ICAgICAgIGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQogICAgICAgICAgICAg
aml0LnN0b3JlUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cihpbmxpbmVDYWxsRnJh
bWUtPmNhbGxlZUNvbnN0YW50KCkpLCBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IoVmlydHVh
bFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90Ojpj
YWxsZWUpKSk7CkBAIC0zMzEsMTMgKzMyNSw3IEBAIHZvaWQgcmVpZnlJbmxpbmVkQ2FsbEZyYW1l
cyhDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgT1NSRXhpdEJhc2UmIGV4aXQpCiAKICAgICAvLyBE
b24ndCBuZWVkIHRvIHNldCB0aGUgdG9wbGV2ZWwgY29kZSBvcmlnaW4gaWYgd2Ugb25seSBkaWQg
aW5saW5lIHRhaWwgY2FsbHMKICAgICBpZiAoY29kZU9yaWdpbikgewotI2lmIFVTRShKU1ZBTFVF
NjQpCiAgICAgICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoQnl0ZWNv
ZGVJbmRleChjb2RlT3JpZ2luLT5ieXRlY29kZUluZGV4KCkub2Zmc2V0KCkpKS5iaXRzKCk7Ci0j
ZWxzZQotICAgICAgICBhdXRvIGJ5dGVjb2RlSW5kZXggPSBqaXQuYmFzZWxpbmVDb2RlQmxvY2so
KS0+Ynl0ZWNvZGVJbmRleEZvckV4aXQoY29kZU9yaWdpbi0+Ynl0ZWNvZGVJbmRleCgpKTsKLSAg
ICAgICAgY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gaml0LmJhc2VsaW5lQ29kZUJs
b2NrKCktPmluc3RydWN0aW9ucyhieXRlY29kZUluZGV4KS5hdCgpLnB0cigpOwotICAgICAgICB1
aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJf
dD4oaW5zdHJ1Y3Rpb24pKS5iaXRzKCk7Ci0jZW5kaWYKICAgICAgICAgaml0LnN0b3JlMzIoQXNz
ZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgQXNzZW1ibHlIZWxwZXJz
Ojp0YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKTsKICAg
ICB9CiB9CkBAIC00MDUsMTIgKzM5Myw4IEBAIHZvaWQgYWRqdXN0QW5kSnVtcFRvVGFyZ2V0KFZN
JiB2bSwgQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IE9TUkV4aXRCYXNlJiBleGl0KQogICAgICAg
ICB9CiAKICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGNvZGVC
bG9ja0ZvckV4aXQtPm1ldGFkYXRhVGFibGUoKSksIExMSW50OjpSZWdpc3RlcnM6Om1ldGFkYXRh
VGFibGVHUFIpOwotI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cihjb2RlQmxvY2tGb3JFeGl0LT5pbnN0cnVjdGlvbnNSYXdQb2lu
dGVyKCkpLCBMTEludDo6UmVnaXN0ZXJzOjpwYkdQUik7CiAgICAgICAgIGppdC5tb3ZlKENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKGJ5dGVjb2RlSW5kZXgub2Zmc2V0KCkpLCBMTEludDo6UmVn
aXN0ZXJzOjpwY0dQUik7Ci0jZWxzZQotICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoJmN1cnJlbnRJbnN0cnVjdGlvbiksIExMSW50OjpSZWdpc3RlcnM6OnBjR1BS
KTsKLSNlbmRpZgogICAgICAgICBqdW1wVGFyZ2V0ID0gZGVzdGluYXRpb24ucmV0YWdnZWQ8T1NS
RXhpdFB0clRhZz4oKS5leGVjdXRhYmxlQWRkcmVzcygpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IEJ5dGVjb2RlSW5kZXggZXhpdEluZGV4ID0gZXhpdC5tX2NvZGVPcmlnaW4uYnl0ZWNvZGVJbmRl
eCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCmluZGV4IGQ2
ZGJlMDkwOGU0ZThhZGFlYWU2MjRkNjA1NGI5OGE3Y2MxNTEyODQuLmQ3MTdlMTg0ZDJjNTk5OWFh
YjJjZWFmNDM4MDJmMTY2YjgwZWNkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENhbGwzMl82NC5jcHAKQEAgLTI4OCw3ICsyODgsOCBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2Fs
bChjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIHVuc2lnbmVkIGNhbGxMaW5rSW5mb0lu
ZAogICAgIGNvbXBpbGVTZXR1cEZyYW1lKGJ5dGVjb2RlLCBpbmZvKTsKICAgICAvLyBTUCBob2xk
cyBuZXdDYWxsRnJhbWUgKyBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQyksIHdpdGggQXJndW1lbnRD
b3VudCBpbml0aWFsaXplZC4KICAgICAKLSAgICB1aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxs
U2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgoYml0d2lzZV9jYXN0PHVpbnQzMl90PihpbnN0cnVjdGlv
bikpKS5iaXRzKCk7CisgICAgYXV0byBieXRlY29kZUluZGV4ID0gbV9jb2RlQmxvY2stPmJ5dGVj
b2RlSW5kZXgoaW5zdHJ1Y3Rpb24pOworICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxT
aXRlSW5kZXgoYnl0ZWNvZGVJbmRleCkuYml0cygpOwogICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMy
KGxvY2F0aW9uQml0cyksIHRhZ0ZvcihDYWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcykpOwogICAgIGVtaXRMb2FkKGNhbGxlZSwgcmVnVDEsIHJlZ1QwKTsgLy8gcmVnVDEs
IHJlZ1QwIGhvbGRzIGNhbGxlZS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMu
aAppbmRleCA5YzExNzM0MzQwYzM2NDcyMWIzNThiOTUxNmY2ODcwOTMzNGM1YTA0Li5hN2ZmYTQz
ZDgzYjE0NGNhMGFiZjhjZjNjZmVhOWE4NDlmZjhmNzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZXMuaApAQCAtMTA0LDEyICsxMDQsNyBAQCBBTFdBWVNfSU5MSU5FIEpJVDo6
Q2FsbCBKSVQ6OmVtaXROYWtlZFRhaWxDYWxsKENvZGVQdHI8Tm9QdHJUYWc+IHRhcmdldCkKIAog
QUxXQVlTX0lOTElORSB2b2lkIEpJVDo6dXBkYXRlVG9wQ2FsbEZyYW1lKCkKIHsKLSNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQotICAgIGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiA9IG1fY29k
ZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5hdChtX2J5dGVjb2RlSW5kZXgub2Zmc2V0KCkpLnB0cigp
OwotICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRl
eChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGluc3RydWN0aW9uKSkpLmJpdHMoKTsKLSNlbHNlCiAg
ICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgp
LmJpdHMoKTsKLSNlbmRpZgogICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyks
IHRhZ0ZvcihDYWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykpOwogICAg
IAogICAgIC8vIEZJWE1FOiBJdCdzIG5vdCBjbGVhciB0aGF0IHRoaXMgaXMgbmVlZGVkLiBKSVRP
cGVyYXRpb25zIHRlbmQgdG8gdXBkYXRlIHRoZSB0b3AgY2FsbCBmcmFtZSBvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IDMwMjg2Y2QzMjli
MzFmOTc0YjhlZDg0ZjUxYWY2ZmJjNzYzODBjNDMuLmE3NjdjOTE3OGE1YTY0ODkyYmUwMGJkZjc1
NDY1OTUzMTBiMzJjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMzMl82NC5jcHAKQEAgLTE0MjYsNyArMTQyNiw3IEBAIHZvaWQgSklUOjplbWl0X29wX2xvZ19z
aGFkb3dfY2hpY2tlbl90YWlsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAgICAgZW1pdExvYWRUYWcoYnl0ZWNvZGUubV90aGlzVmFsdWUub2Zmc2V0KCksIHJlZ1QxKTsK
ICAgICBKU1ZhbHVlUmVncyB0aGlzUmVncyhyZWdUMSwgcmVnVDIpOwogICAgIGVtaXRMb2FkUGF5
bG9hZChieXRlY29kZS5tX3Njb3BlLm9mZnNldCgpLCByZWdUMyk7Ci0gICAgbG9nU2hhZG93Q2hp
Y2tlblRhaWxQYWNrZXQoc2hhZG93UGFja2V0UmVnLCB0aGlzUmVncywgcmVnVDMsIG1fY29kZUJs
b2NrLCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgoYml0d2lzZV9jYXN0PHVpbnQzMl90Pihj
dXJyZW50SW5zdHJ1Y3Rpb24pKSkpOworICAgIGxvZ1NoYWRvd0NoaWNrZW5UYWlsUGFja2V0KHNo
YWRvd1BhY2tldFJlZywgdGhpc1JlZ3MsIHJlZ1QzLCBtX2NvZGVCbG9jaywgQ2FsbFNpdGVJbmRl
eChtX2J5dGVjb2RlSW5kZXgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRl
eCBiMDI0YjY1YWZjMTBjY2IyMmVhZDljMzA0YjU5YWU5MjMwMjgyMDM5Li5kZGNhNzFhYWIxM2Iw
MjExNGM1OTcxMDQyYTkxM2FiYjhjOWExZjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdU
MCwgcmVnVDQsIHByb2ZpbGUpOwogCiAgICAgICAgIEpJVEdldEJ5VmFsR2VuZXJhdG9yIGdlbigK
LSAgICAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENh
bGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGN1cnJlbnRJ
bnN0cnVjdGlvbikpKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAor
ICAgICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2Fs
bFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxl
UmVnaXN0ZXJzKCksCiAgICAgICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDAp
LCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsK
ICAgICAgICAgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KHByb3BlcnR5KSkKICAgICAgICAgICAg
IGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVlOwpAQCAtMzY1LDcgKzM2NSw3
IEBAIEpJVFB1dEJ5SWRHZW5lcmF0b3IgSklUOjplbWl0UHV0QnlWYWxXaXRoQ2FjaGVkSWQoQnlW
YWxJbmZvKiBieVZhbEluZm8sIE9wIGJ5dGVjCiAKICAgICBjb25zdCBJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uID0gbV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmF0KGJ5VmFsSW5m
by0+Ynl0ZWNvZGVJbmRleCkucHRyKCk7CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCi0g
ICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRl
SW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGN1cnJlbnRJbnN0cnVj
dGlvbikpKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAorICAgICAg
ICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4
KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMo
KSwKICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3Mo
cmVnVDMsIHJlZ1QyKSwgcmVnVDEsIG1fY29kZUJsb2NrLT5lY21hTW9kZSgpLCBwdXRLaW5kKTsK
ICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgZG9uZUNhc2VzLmFwcGVuZChq
dW1wKCkpOwpAQCAtNDI5LDcgKzQyOSw3IEBAIHZvaWQgSklUOjplbWl0X29wX3RyeV9nZXRfYnlf
aWQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0SnVtcFNs
b3dDYXNlSWZOb3RKU0NlbGwoYmFzZSwgcmVnVDEpOwogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRv
ciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCks
IENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGN1cnJl
bnRJbnN0cnVjdGlvbikpKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygp
LAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxs
U2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVS
ZWdpc3RlcnMoKSwKICAgICAgICAgaWRlbnQtPmltcGwoKSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRP
bmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgQWNjZXNzVHlwZTo6VHJ5R2V0
QnlJZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNl
KGdlbi5zbG93UGF0aEp1bXAoKSk7CkBAIC00NjgsNyArNDY4LDcgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfZ2V0X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CiAKICAgICBK
SVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4o
bV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KGJpdHdpc2VfY2Fz
dDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0aW9uKSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZh
aWxhYmxlUmVnaXN0ZXJzKCksCisgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0
ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6
OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAgICAgICBpZGVudC0+aW1wbCgpLCBKU1Zh
bHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBB
Y2Nlc3NUeXBlOjpHZXRCeUlkRGlyZWN0KTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhp
cyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKQEAgLTUxNCw3ICs1MTQs
NyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKICAgICB9CiAKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAg
ICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJ
bmRleChCeXRlY29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0
aW9uKSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAgICAg
IG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgo
bV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygp
LAogICAgICAgICBpZGVudC0+aW1wbCgpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDAp
LCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBBY2Nlc3NUeXBlOjpHZXRCeUlkKTsKICAgICBn
ZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRo
SnVtcCgpKTsKQEAgLTU1NSw3ICs1NTUsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRf
d2l0aF90aGlzKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1p
dEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHRoaXNWUmVnLCByZWdUNCk7CiAKICAgICBKSVRHZXRC
eUlkV2l0aFRoaXNHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdp
bihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgoYml0d2lzZV9j
YXN0PHVpbnQzMl90PihjdXJyZW50SW5zdHJ1Y3Rpb24pKSksIFJlZ2lzdGVyU2V0OjpzdHViVW5h
dmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9i
eXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNl
dDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIGlkZW50LT5pbXBsKCksIEpT
VmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCks
IEpTVmFsdWVSZWdzKHJlZ1Q0LCByZWdUMykpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0
aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwpAQCAtNTk4LDcgKzU5
OCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV9pZChjb25zdCBJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCBy
ZWdUMSk7CiAKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9jb2RlQmxv
Y2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRlY29kZUlu
ZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0aW9uKSkpLCBSZWdpc3Rl
clNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAgICAgIG1fY29kZUJsb2NrLCBD
b2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4
KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAgICAgICBKU1Zh
bHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpLAog
ICAgICAgICByZWdUMSwgbV9jb2RlQmxvY2stPmVjbWFNb2RlKCksIGRpcmVjdCA/IERpcmVjdCA6
IE5vdERpcmVjdCk7CiAgICAgCkBAIC02NDIsNyArNjQyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
aW5fYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0
SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwoYmFzZSwgcmVnVDEpOwogCiAgICAgSklUSW5CeUlkR2Vu
ZXJhdG9yIGdlbigKLSAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUlu
ZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4o
Y3VycmVudEluc3RydWN0aW9uKSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0
ZXJzKCksCisgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCks
IENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWls
YWJsZVJlZ2lzdGVycygpLAogICAgICAgICBpZGVudC0+aW1wbCgpLCBKU1ZhbHVlUmVnczo6cGF5
bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKICAgICBnZW4uZ2Vu
ZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKaW5kZXggMzlhNTQx
MmI2OTFlMDIyY2FmMDIzZDgwYmU1NjU3MzFhMTY4ZTkwYy4uYjQ4MGEzODVhN2Q5OWRlNTQ5YWYz
ZmMwYTU4YzQ5MmM0MTc5OTdmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50RGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
RGF0YS5jcHAKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25z
KFZNJiB2bSkKICNpZiBFTkFCTEUoQ19MT09QKQogICAgIEFTU0VSVChDb2RlQmxvY2s6OmxsaW50
QmFzZWxpbmVDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMoKSA9PSAxKTsKICNlbGlm
IFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgQVNTRVJUKENvZGVCbG9jazo6bGxpbnRCYXNlbGluZUNh
bGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycygpID09IDEpOworICAgIEFTU0VSVChDb2Rl
QmxvY2s6OmxsaW50QmFzZWxpbmVDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMoKSA9
PSAyKTsKICNlbGlmIChDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykpICB8fCBDUFUoQVJNNjQp
CiAgICAgQVNTRVJUKENvZGVCbG9jazo6bGxpbnRCYXNlbGluZUNhbGxlZVNhdmVTcGFjZUFzVmly
dHVhbFJlZ2lzdGVycygpID09IDQpOwogI2VsaWYgKENQVShYODZfNjQpICYmIE9TKFdJTkRPV1Mp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuY3BwCmluZGV4IGE2ZGQxMGZlMjk3NGI2ZmJiNjY4NTNjMjVjZDBiOTllMWNiNDNkMDEuLjQw
OWJhNDk2NjkwZGUyYmNlNjZjNjViMDE1ODM5NGM3MWMwZmU3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAKQEAgLTM4Mywx
OCArMzgzLDYgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShPcGNvZGVJRCBlbnRyeU9wY29kZUlE
LCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgVk0qIHZtLAogI2RlZmluZSBSRUNPUkRfT1BDT0RF
X1NUQVRTKF9fb3Bjb2RlKQogI2VuZGlmCiAKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotI2RlZmlu
ZSBGRVRDSF9PUENPREUoKSAqcGMuaThwCi0jZWxzZSAvLyBVU0UoSlNWQUxVRTY0KQotI2RlZmlu
ZSBGRVRDSF9PUENPREUoKSAqYml0d2lzZV9jYXN0PE9wY29kZUlEKj4ocGNCYXNlLmk4cCArIHBj
LmkpCi0jZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKLQotI2RlZmluZSBORVhUX0lOU1RSVUNUSU9O
KCkgXAotICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBvcGNvZGUg
PSBGRVRDSF9PUENPREUoKTsgXAotICAgICAgICBESVNQQVRDSF9PUENPREUoKTsgICAgICAgXAot
ICAgIH0gd2hpbGUgKGZhbHNlKQotCiAjaWYgRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykK
IAogICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC00ODUsNyArNDczLDYgQEAgSlNWYWx1ZSBDTG9v
cDo6ZXhlY3V0ZShPcGNvZGVJRCBlbnRyeU9wY29kZUlELCB2b2lkKiBleGVjdXRhYmxlQWRkcmVz
cywgVk0qIHZtLAogICAgICN1bmRlZiBMTElOVF9PUENPREVfRU5UUlkKICNlbmRpZgogCi0gICAg
I3VuZGVmIE5FWFRfSU5TVFJVQ1RJT04KICAgICAjdW5kZWYgREVGSU5FX09QQ09ERQogICAgICN1
bmRlZiBDSEVDS19GT1JfVElNRU9VVAogICAgICN1bmRlZiBDQVNUCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDYxZDcxZTJm
OGI4Y2M2MDFlYTM3NjFiZmY1ZmQzYzQ5OWI5MWFkNDAuLmJlYzE3NjA3ZGMxZjI3ZDMzZDNiNDRk
ZWFmYmYzYWViMmRlN2QzOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBAIC00NTUsMTggKzQ1NSwxMCBAQCBzdGF0aWMgQUxX
QVlTX0lOTElORSBCeXRlY29kZUluZGV4IHRyeUdldEJ5dGVjb2RlSW5kZXgodW5zaWduZWQgbGxp
bnRQQywgQ29kZUJsbwogICAgIFJFTEVBU0VfQVNTRVJUKCFjb2RlQmxvY2stPmhhc0NvZGVPcmln
aW5zKCkpOwogI2VuZGlmCiAKLSNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHVuc2lnbmVkIGJ5dGVj
b2RlT2Zmc2V0ID0gbGxpbnRQQzsKICAgICBpZiAoYnl0ZWNvZGVPZmZzZXQgPCBjb2RlQmxvY2st
Pmluc3RydWN0aW9uc1NpemUoKSkKICAgICAgICAgcmV0dXJuIEJ5dGVjb2RlSW5kZXgoYnl0ZWNv
ZGVPZmZzZXQpOwogICAgIHJldHVybiBCeXRlY29kZUluZGV4KCk7Ci0jZWxzZQotICAgIEluc3Ry
dWN0aW9uKiBpbnN0cnVjdGlvbiA9IGJpdHdpc2VfY2FzdDxJbnN0cnVjdGlvbio+KGxsaW50UEMp
OwotCi0gICAgaWYgKGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuY29udGFpbnMoaW5zdHJ1Y3Rp
b24pKQotICAgICAgICByZXR1cm4gQnl0ZWNvZGVJbmRleChjb2RlQmxvY2stPmJ5dGVjb2RlT2Zm
c2V0KGluc3RydWN0aW9uKSk7Ci0gICAgcmV0dXJuIEJ5dGVjb2RlSW5kZXgoKTsKLSNlbmRpZgog
fQogCiB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnByb2Nlc3NVbnZlcmlmaWVkU3RhY2tUcmFjZXMo
Y29uc3QgQWJzdHJhY3RMb2NrZXImKQpAQCAtNjEzLDEyICs2MDUsNyBAQCB2b2lkIFNhbXBsaW5n
UHJvZmlsZXI6OnByb2Nlc3NVbnZlcmlmaWVkU3RhY2tUcmFjZXMoY29uc3QgQWJzdHJhY3RMb2Nr
ZXImKQogICAgICAgICAgICAgICAgIC8vIGJ5IGlnbm9yaW5nIGl0LgogICAgICAgICAgICAgICAg
IEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleCA9IEJ5dGVjb2RlSW5kZXgoMCk7CiAgICAgICAg
ICAgICAgICAgaWYgKHRvcENvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVFR5cGU6OkludGVycHJl
dGVyVGh1bmsgfHwgdG9wQ29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUVHlwZTo6QmFzZWxpbmVK
SVQpIHsKLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYml0czsKLSNpZiBVU0UoSlNWQUxV
RTY0KQotICAgICAgICAgICAgICAgICAgICBiaXRzID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGJp
dHdpc2VfY2FzdDx1aW50cHRyX3Q+KHVucHJvY2Vzc2VkU3RhY2tUcmFjZS5sbGludFBDKSk7Ci0j
ZWxzZQotICAgICAgICAgICAgICAgICAgICBiaXRzID0gYml0d2lzZV9jYXN0PHVuc2lnbmVkPih1
bnByb2Nlc3NlZFN0YWNrVHJhY2UubGxpbnRQQyk7Ci0jZW5kaWYKKyAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgYml0cyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihiaXR3aXNlX2Nhc3Q8dWlu
dHB0cl90Pih1bnByb2Nlc3NlZFN0YWNrVHJhY2UubGxpbnRQQykpOwogICAgICAgICAgICAgICAg
ICAgICBieXRlY29kZUluZGV4ID0gdHJ5R2V0Qnl0ZWNvZGVJbmRleChiaXRzLCB0b3BDb2RlQmxv
Y2spOwogCiAgICAgICAgICAgICAgICAgICAgIFVOVVNFRF9QQVJBTShieXRlY29kZUluZGV4KTsg
Ly8gRklYTUU6IGRvIHNvbWV0aGluZyB3aXRoIHRoaXMgaW5mbyBmb3IgdGhlIHdlYiBpbnNwZWN0
b3I6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM0NTUK
</data>
<flag name="review"
          id="404141"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>