<?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>203358</bug_id>
          
          <creation_ts>2019-10-24 01:38:07 -0700</creation_ts>
          <short_desc>[JSC] Get 32-bit ports back into building order</short_desc>
          <delta_ts>2019-10-30 18:41:09 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=203276</see_also>
          <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>203290</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jbedard</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>psaavedra</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1583272</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-10-24 01:38:07 -0700</bug_when>
    <thetext>[JSC] Get 32-bit ports back into building order</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583274</commentid>
    <comment_count>1</comment_count>
      <attachid>381787</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-10-24 01:47:16 -0700</bug_when>
    <thetext>Created attachment 381787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583281</commentid>
    <comment_count>2</comment_count>
      <attachid>381788</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-10-24 01:58:53 -0700</bug_when>
    <thetext>Created attachment 381788
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583287</commentid>
    <comment_count>3</comment_count>
      <attachid>381788</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-10-24 02:07:00 -0700</bug_when>
    <thetext>Comment on attachment 381788
Patch for landing

Clearing flags on attachment: 381788

Committed r251534: &lt;https://trac.webkit.org/changeset/251534&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583288</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-10-24 02:07:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583290</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-24 02:09:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/56572554&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583293</commentid>
    <comment_count>6</comment_count>
      <attachid>381788</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2019-10-24 02:27:31 -0700</bug_when>
    <thetext>Comment on attachment 381788
Patch for landing

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

LGTM

&gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1891
&gt; +#if USE(JSVALUE64)

Good catch. I didn&apos;t see this yesterday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583409</commentid>
    <comment_count>7</comment_count>
      <attachid>381788</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-10-24 10:20:31 -0700</bug_when>
    <thetext>Comment on attachment 381788
Patch for landing

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

&gt; Source/JavaScriptCore/dfg/DFGOSRExit.cpp:828
&gt; +        uint32_t locationBits = CallSiteIndex(BytecodeIndex(bitwise_cast&lt;uint32_t&gt;(instruction))).bits();

This seems wrong... my change made CallSiteIndex always use the bytecode index rather than the instruction pointer on 32-bit.

I think you want: 
uint32_t locationBits = CallSiteIndex(BytecodeIndex(codeOrigin-&gt;bytecodeIndex())).bits();

&gt; Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:332
&gt; +        uint32_t locationBits = CallSiteIndex(BytecodeIndex(bitwise_cast&lt;uint32_t&gt;(instruction))).bits();

ditto.

&gt; Source/JavaScriptCore/interpreter/CallFrame.cpp:119
&gt; +    CallSiteIndex callSite(BytecodeIndex(bitwise_cast&lt;uint32_t&gt;(vpc)));

ditto.

&gt; Source/JavaScriptCore/jit/JITCall32_64.cpp:291
&gt; +    uint32_t locationBits = CallSiteIndex(BytecodeIndex(bitwise_cast&lt;uint32_t&gt;(instruction))).bits();

ditto.

&gt; Source/JavaScriptCore/jit/JITInlines.h:131
&gt; +#if USE(JSVALUE32_64)
&gt; +    const Instruction* instruction = m_codeBlock-&gt;instructions().at(m_bytecodeIndex.offset()).ptr();
&gt; +    uint32_t locationBits = CallSiteIndex(BytecodeIndex(bitwise_cast&lt;uint32_t&gt;(instruction))).bits();
&gt; +#else

I think this is wrong.

&gt; Source/JavaScriptCore/jit/JITOpcodes32_64.cpp:1389
&gt; +    logShadowChickenTailPacket(shadowPacketReg, thisRegs, regT3, m_codeBlock, CallSiteIndex(BytecodeIndex(bitwise_cast&lt;uint32_t&gt;(currentInstruction))));

ditto.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:210
&gt; +        m_codeBlock, CodeOrigin(m_bytecodeIndex), CallSiteIndex(BytecodeIndex(bitwise_cast&lt;uint32_t&gt;(currentInstruction))), RegisterSet::stubUnavailableRegisters(),

ditto.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:440
&gt; +        m_codeBlock, CodeOrigin(m_bytecodeIndex), CallSiteIndex(BytecodeIndex(bitwise_cast&lt;uint32_t&gt;(currentInstruction))), RegisterSet::stubUnavailableRegisters(),

ditto.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:504
&gt; +        m_codeBlock, CodeOrigin(m_bytecodeIndex), CallSiteIndex(BytecodeIndex(bitwise_cast&lt;uint32_t&gt;(currentInstruction))), RegisterSet::stubUnavailableRegisters(),

ditto.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:543
&gt; +        m_codeBlock, CodeOrigin(m_bytecodeIndex), CallSiteIndex(BytecodeIndex(bitwise_cast&lt;uint32_t&gt;(currentInstruction))), RegisterSet::stubUnavailableRegisters(),

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584911</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-10-29 08:05:43 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #7)
&gt; Comment on attachment 381788 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=381788&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGOSRExit.cpp:828
&gt; &gt; +        uint32_t locationBits = CallSiteIndex(BytecodeIndex(bitwise_cast&lt;uint32_t&gt;(instruction))).bits();
&gt; 
&gt; This seems wrong... my change made CallSiteIndex always use the bytecode
&gt; index rather than the instruction pointer on 32-bit.
&gt; 
&gt; I think you want: 
&gt; uint32_t locationBits =
&gt; CallSiteIndex(BytecodeIndex(codeOrigin-&gt;bytecodeIndex())).bits();
&gt; 

Besides the building errors, these changes were additionally causing plenty of test errors.

Problem is that on 32-bit platforms we don&apos;t yet have a PC base register that would hold the base address of the instructions data. Ideally we would fish out a register we could use for this, and eliminate the different approach here.

I opened bug #203563 to cover this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585705</commentid>
    <comment_count>9</comment_count>
      <attachid>381788</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-10-30 18:41:09 -0700</bug_when>
    <thetext>Comment on attachment 381788
Patch for landing

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

&gt;&gt;&gt; Source/JavaScriptCore/dfg/DFGOSRExit.cpp:828
&gt;&gt;&gt; +        uint32_t locationBits = CallSiteIndex(BytecodeIndex(bitwise_cast&lt;uint32_t&gt;(instruction))).bits();
&gt;&gt; 
&gt;&gt; This seems wrong... my change made CallSiteIndex always use the bytecode index rather than the instruction pointer on 32-bit.
&gt;&gt; 
&gt;&gt; I think you want: 
&gt;&gt; uint32_t locationBits = CallSiteIndex(BytecodeIndex(codeOrigin-&gt;bytecodeIndex())).bits();
&gt; 
&gt; Besides the building errors, these changes were additionally causing plenty of test errors.
&gt; 
&gt; Problem is that on 32-bit platforms we don&apos;t yet have a PC base register that would hold the base address of the instructions data. Ideally we would fish out a register we could use for this, and eliminate the different approach here.
&gt; 
&gt; I opened bug #203563 to cover this.

Keith, are you sure you made that change? ToT says:

const Instruction* CallFrame::currentVPC() const
{
    return bitwise_cast&lt;Instruction*&gt;(callSiteIndex().bits());
}</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381787</attachid>
            <date>2019-10-24 01:47:16 -0700</date>
            <delta_ts>2019-10-24 01:58:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203358-20191024104714.patch</filename>
            <type>text/plain</type>
            <size>17526</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
Yzg0NTllNzc1NzJiMjk3MjVjY2YxODM5OGUzODk2MDk1MmUyNjhiLi5lNDMwY2VlMmY0ZTcwODRk
YjdmMzNjMGQyNDhlM2M2YjU5ZDZjYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0xMC0yNCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0pTQ10gR2V0IDMyLWJpdCBwb3J0cyBiYWNrIGludG8gYnVpbGRpbmcg
b3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MzM1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdl
dCBKU0MgYnVpbGRpbmcgYWdhaW4gb24gMzItYml0IGFyY2hpdGVjdHVyZXMgYWZ0ZXIgY2hhbmdl
cyBpbiByMjUxNDY4LgorICAgICAgICBTb21lIDMyLWJpdCBjb2RlIGluIExMaW50IGFuZCBKSVQg
aXMgYnJvdWdodCBiYWNrLCBhbmQgYWRkaXRpb25hbCBjYXN0cworICAgICAgICBhcm91bmQgQnl0
ZWNvZGVJbmRleCBjb25zdHJ1Y3Rpb24gYXJlIGFkZGVkIGFzIG5lY2Vzc2FyeS4KKworICAgICAg
ICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpyZWlmeUlubGluZWRD
YWxsRnJhbWVzKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpyZWlmeUlubGluZWRDYWxsRnJhbWVzKToKKyAgICAgICAgKiBp
bnRlcnByZXRlci9DYWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnNldEN1
cnJlbnRWUEMpOgorICAgICAgICAqIGppdC9KSVRDYWxsMzJfNjQuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmNvbXBpbGVDYWxsRXZhbFNsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21w
aWxlT3BDYWxsKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpK
SVQ6OnVwZGF0ZVRvcENhbGxGcmFtZSk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5j
cHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9sb2dfc2hhZG93X2NoaWNrZW5fdGFpbCk6
CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldEJ5
VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV92YWwp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRQdXRCeVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdF9vcF90cnlfZ2V0X2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX2dldF9ieV9pZF9kaXJlY3QpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0
X2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV9pZF93aXRoX3RoaXMp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKToKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0X29wX2luX2J5X2lkKToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5j
cHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisKIDIwMTkt
MTAtMjMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlND
XSBSZW1vdmUgd2FzbUF3YXJlTGV4aWNhbEdsb2JhbE9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT1NSRXhpdC5jcHAKaW5kZXggNTEwYTdhYjMxNTBiOWM2NzNhOTFhYmY4NzYzOWM0
OTdmNmZkOWQxNy4uMDQzOGYyZmRmMjNmOWUzYTk3NTcwZjRmNzRkMmIzMGVlNDAxOGY4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCkBAIC04MjUsNyArODI1LDcg
QEAgc3RhdGljIHZvaWQgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhDb250ZXh0JiBjb250ZXh0LCBD
b2RlQmxvY2sqIG91dGVybW9zdEJhc2VsaW4KICAgICAgICAgICAgIGZyYW1lLnNldE9wZXJhbmQo
aW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwgSlNW
YWx1ZShpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpKTsKICNlbHNlIC8vIFVTRShK
U1ZBTFVFNjQpIC8vIHNvIHRoaXMgaXMgdGhlIDMyLWJpdCBwYXJ0CiAgICAgICAgIGNvbnN0IElu
c3RydWN0aW9uKiBpbnN0cnVjdGlvbiA9IGJhc2VsaW5lQ29kZUJsb2NrLT5pbnN0cnVjdGlvbnMo
KS5hdChjb2RlT3JpZ2luLT5ieXRlY29kZUluZGV4KCkpLnB0cigpOwotICAgICAgICB1aW50MzJf
dCBsb2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KGluc3RydWN0aW9uKS5iaXRzKCk7CisgICAg
ICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChi
aXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGluc3RydWN0aW9uKSkpLmJpdHMoKTsKICAgICAgICAgZnJh
bWUuc2V0T3BlcmFuZDx1aW50MzJfdD4oaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENh
bGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnQsIFRhZ09mZnNldCwgbG9jYXRpb25CaXRzKTsKICAg
ICAgICAgZnJhbWUuc2V0T3BlcmFuZDx1aW50MzJfdD4oaW5saW5lQ2FsbEZyYW1lLT5zdGFja09m
ZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwgVGFnT2Zmc2V0LCBzdGF0aWNfY2FzdDx1aW50
MzJfdD4oSlNWYWx1ZTo6Q2VsbFRhZykpOwogICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+
aXNDbG9zdXJlQ2FsbCkKQEAgLTgzOSw3ICs4MzksNyBAQCBzdGF0aWMgdm9pZCByZWlmeUlubGlu
ZWRDYWxsRnJhbWVzKENvbnRleHQmIGNvbnRleHQsIENvZGVCbG9jayogb3V0ZXJtb3N0QmFzZWxp
bgogICAgICAgICB1aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KGNvZGVPcmln
aW4tPmJ5dGVjb2RlSW5kZXgoKSkuYml0cygpOwogI2Vsc2UKICAgICAgICAgY29uc3QgSW5zdHJ1
Y3Rpb24qIGluc3RydWN0aW9uID0gb3V0ZXJtb3N0QmFzZWxpbmVDb2RlQmxvY2stPmluc3RydWN0
aW9ucygpLmF0KGNvZGVPcmlnaW4tPmJ5dGVjb2RlSW5kZXgoKSkucHRyKCk7Ci0gICAgICAgIHVp
bnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoaW5zdHJ1Y3Rpb24pLmJpdHMoKTsK
KyAgICAgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUlu
ZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oaW5zdHJ1Y3Rpb24pKSkuYml0cygpOwogI2VuZGlm
CiAgICAgICAgIGZyYW1lLnNldE9wZXJhbmQ8dWludDMyX3Q+KENhbGxGcmFtZVNsb3Q6OmFyZ3Vt
ZW50Q291bnQsIFRhZ09mZnNldCwgbG9jYXRpb25CaXRzKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKaW5k
ZXggMDFlZTFiN2M4MDNmZThkNGE2ZWU5MjNjZmUyYzQ1MmRmYTIwMWZhYy4uZjBhMGMzZDdmN2Mz
ZWY0ZTM1MDM4ZWU3Mjk4YTU4MGJmZWJjMjAzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcApAQCAtMzE1LDcgKzMx
NSw3IEBAIHZvaWQgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhDQ2FsbEhlbHBlcnMmIGppdCwgY29u
c3QgT1NSRXhpdEJhc2UmIGV4aXQpCiAjZWxzZSAvLyBVU0UoSlNWQUxVRTY0KSAvLyBzbyB0aGlz
IGlzIHRoZSAzMi1iaXQgcGFydAogICAgICAgICBqaXQuc3RvcmVQdHIoY2FsbGVyRnJhbWVHUFIs
IEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvckJ5dGVPZmZzZXQoaW5saW5lQ2FsbEZyYW1lLT5j
YWxsZXJGcmFtZU9mZnNldCgpKSk7CiAgICAgICAgIGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVj
dGlvbiA9IGJhc2VsaW5lQ29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5hdChjb2RlT3JpZ2luLT5i
eXRlY29kZUluZGV4KCkpLnB0cigpOwotICAgICAgICB1aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBD
YWxsU2l0ZUluZGV4KGluc3RydWN0aW9uKS5iaXRzKCk7CisgICAgICAgIHVpbnQzMl90IGxvY2F0
aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMy
X3Q+KGluc3RydWN0aW9uKSkpLmJpdHMoKTsKICAgICAgICAgaml0LnN0b3JlMzIoQXNzZW1ibHlI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdG
b3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxG
cmFtZVNsb3Q6OmFyZ3VtZW50Q291bnQpKSk7CiAgICAgICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5
SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6
OnRhZ0ZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsg
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSkpOwogICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+
aXNDbG9zdXJlQ2FsbCkKQEAgLTMyOSw3ICszMjksNyBAQCB2b2lkIHJlaWZ5SW5saW5lZENhbGxG
cmFtZXMoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IE9TUkV4aXRCYXNlJiBleGl0KQogICAgICAg
ICB1aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KGNvZGVPcmlnaW4tPmJ5dGVj
b2RlSW5kZXgoKSkuYml0cygpOwogI2Vsc2UKICAgICAgICAgY29uc3QgSW5zdHJ1Y3Rpb24qIGlu
c3RydWN0aW9uID0gaml0LmJhc2VsaW5lQ29kZUJsb2NrKCktPmluc3RydWN0aW9ucygpLmF0KGNv
ZGVPcmlnaW4tPmJ5dGVjb2RlSW5kZXgoKSkucHRyKCk7Ci0gICAgICAgIHVpbnQzMl90IGxvY2F0
aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoaW5zdHJ1Y3Rpb24pLmJpdHMoKTsKKyAgICAgICAgdWlu
dDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KGJpdHdpc2Vf
Y2FzdDx1aW50MzJfdD4oaW5zdHJ1Y3Rpb24pKSkuYml0cygpOwogI2VuZGlmCiAgICAgICAgIGpp
dC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIEFz
c2VtYmx5SGVscGVyczo6dGFnRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKENhbGxGcmFtZVNsb3Q6OmFy
Z3VtZW50Q291bnQpKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvQ2FsbEZyYW1lLmNwcAppbmRleCBiZTA5OGExMTdhZDEwOTFjZGMxYTQ1MDljNzc5YmU3
MjgyMTQ1MDM4Li42YmY0NTdmNDQ3MWIyY2ZkNjVlNjMzOWQzM2I1NjAzNmE3ZjNlMWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcApAQCAt
MTE2LDcgKzExNiw3IEBAIGNvbnN0IEluc3RydWN0aW9uKiBDYWxsRnJhbWU6OmN1cnJlbnRWUEMo
KSBjb25zdAogCiB2b2lkIENhbGxGcmFtZTo6c2V0Q3VycmVudFZQQyhjb25zdCBJbnN0cnVjdGlv
biogdnBjKQogewotICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUoY29kZUJsb2NrKCktPmJ5dGVj
b2RlSW5kZXgodnBjKSk7CisgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZShCeXRlY29kZUluZGV4
KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4odnBjKSkpOwogICAgIHRoaXNbQ2FsbEZyYW1lU2xvdDo6
YXJndW1lbnRDb3VudF0udGFnKCkgPSBjYWxsU2l0ZS5iaXRzKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAppbmRleCBhN2RjODI1YmM5MmFkMTE1NGNm
YTMzYTQ4YjJiMzE2MTg5NTg2ZTMwLi43ZjZjOTEwODkwNzk4ZWY2MTFiODdlYjQ0MWRmMDU1ZDRi
MTNiMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCkBA
IC0yNDYsNyArMjQ2LDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVDYWxsRXZhbFNsb3dDYXNlKGNvbnN0
IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKIAogICAgIGF1dG8gYnl0
ZWNvZGUgPSBpbnN0cnVjdGlvbi0+YXM8T3BDYWxsRXZhbD4oKTsKICAgICBDYWxsTGlua0luZm8q
IGluZm8gPSBtX2NvZGVCbG9jay0+YWRkQ2FsbExpbmtJbmZvKCk7Ci0gICAgaW5mby0+c2V0VXBD
YWxsKENhbGxMaW5rSW5mbzo6Q2FsbCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgcmVn
VDApOworICAgIGluZm8tPnNldFVwQ2FsbChDYWxsTGlua0luZm86OkNhbGwsIENvZGVPcmlnaW4o
bV9ieXRlY29kZUluZGV4KSwgcmVnVDApOwogCiAgICAgaW50IHJlZ2lzdGVyT2Zmc2V0ID0gLWJ5
dGVjb2RlLm1fYXJndjsKICAgICBpbnQgY2FsbGVlID0gYnl0ZWNvZGUubV9jYWxsZWUub2Zmc2V0
KCk7CkBAIC0yODgsNyArMjg4LDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoY29uc3QgSW5z
dHJ1Y3Rpb24qIGluc3RydWN0aW9uLCB1bnNpZ25lZCBjYWxsTGlua0luZm9JbmQKICAgICBjb21w
aWxlU2V0dXBGcmFtZShieXRlY29kZSwgaW5mbyk7CiAgICAgLy8gU1AgaG9sZHMgbmV3Q2FsbEZy
YW1lICsgc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpLCB3aXRoIEFyZ3VtZW50Q291bnQgaW5pdGlh
bGl6ZWQuCiAgICAgCi0gICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChp
bnN0cnVjdGlvbikuYml0cygpOworICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRl
SW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGluc3RydWN0aW9uKSkp
LmJpdHMoKTsKICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLCB0YWdGb3Io
Q2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudCkpOwogICAgIGVtaXRMb2FkKGNhbGxlZSwgcmVn
VDEsIHJlZ1QwKTsgLy8gcmVnVDEsIHJlZ1QwIGhvbGRzIGNhbGxlZS4KIApAQCAtMzA5LDcgKzMw
OSw3IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsKGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVj
dGlvbiwgdW5zaWduZWQgY2FsbExpbmtJbmZvSW5kCiAgICAgYWRkU2xvd0Nhc2Uoc2xvd0Nhc2Up
OwogCiAgICAgQVNTRVJUKG1fY2FsbENvbXBpbGF0aW9uSW5mby5zaXplKCkgPT0gY2FsbExpbmtJ
bmZvSW5kZXgpOwotICAgIGluZm8tPnNldFVwQ2FsbChDYWxsTGlua0luZm86OmNhbGxUeXBlRm9y
KG9wY29kZUlEKSwgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgcmVnVDApOworICAgIGlu
Zm8tPnNldFVwQ2FsbChDYWxsTGlua0luZm86OmNhbGxUeXBlRm9yKG9wY29kZUlEKSwgQ29kZU9y
aWdpbihtX2J5dGVjb2RlSW5kZXgpLCByZWdUMCk7CiAgICAgbV9jYWxsQ29tcGlsYXRpb25JbmZv
LmFwcGVuZChDYWxsQ29tcGlsYXRpb25JbmZvKCkpOwogICAgIG1fY2FsbENvbXBpbGF0aW9uSW5m
b1tjYWxsTGlua0luZm9JbmRleF0uaG90UGF0aEJlZ2luID0gYWRkcmVzc09mTGlua2VkRnVuY3Rp
b25DaGVjazsKICAgICBtX2NhbGxDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNh
bGxMaW5rSW5mbyA9IGluZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCmlu
ZGV4IDEwODAwNDYzYmFjOTc4YWFiYmIxYWFkNGVhNTZjNjc4Yzc1MWI2MDEuLjYyZWFiOWI5N2Zh
MjdmNzM2MmI2YWNmYjQ1MzE1ZDQzOTAyYzQxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lcy5oCkBAIC0xMjUsNyArMTI1LDEyIEBAIEFMV0FZU19JTkxJTkUgSklUOjpDYWxs
IEpJVDo6ZW1pdE5ha2VkVGFpbENhbGwoQ29kZVB0cjxOb1B0clRhZz4gdGFyZ2V0KQogCiBBTFdB
WVNfSU5MSU5FIHZvaWQgSklUOjp1cGRhdGVUb3BDYWxsRnJhbWUoKQogeworI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gbV9jb2RlQmxv
Y2stPmluc3RydWN0aW9ucygpLmF0KG1fYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSkucHRyKCk7Cisg
ICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KGJp
dHdpc2VfY2FzdDx1aW50MzJfdD4oaW5zdHJ1Y3Rpb24pKSkuYml0cygpOworI2Vsc2UKICAgICB1
aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCkuYml0
cygpOworI2VuZGlmCiAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgdGFn
Rm9yKENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnQpKTsKICAgICAKICAgICAvLyBGSVhNRTog
SXQncyBub3QgY2xlYXIgdGhhdCB0aGlzIGlzIG5lZWRlZC4gSklUT3BlcmF0aW9ucyB0ZW5kIHRv
IHVwZGF0ZSB0aGUgdG9wIGNhbGwgZnJhbWUgb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCBlYjUxZTRlM2E0ZTc0NzQ3ZTgwYzg1MDFjMTQ5
YTlhZWMyNzc5NDI5Li4zZTBjZWI0NjkzYTU4OTVmM2FmZWJjOTYyYTljMTQzZjA4MjhjNTMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC0x
Mzg2LDcgKzEzODYsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9sb2dfc2hhZG93X2NoaWNrZW5fdGFp
bChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRMb2FkVGFn
KGJ5dGVjb2RlLm1fdGhpc1ZhbHVlLm9mZnNldCgpLCByZWdUMSk7CiAgICAgSlNWYWx1ZVJlZ3Mg
dGhpc1JlZ3MocmVnVDEsIHJlZ1QyKTsKICAgICBlbWl0TG9hZFBheWxvYWQoYnl0ZWNvZGUubV9z
Y29wZS5vZmZzZXQoKSwgcmVnVDMpOwotICAgIGxvZ1NoYWRvd0NoaWNrZW5UYWlsUGFja2V0KHNo
YWRvd1BhY2tldFJlZywgdGhpc1JlZ3MsIHJlZ1QzLCBtX2NvZGVCbG9jaywgQ2FsbFNpdGVJbmRl
eChjdXJyZW50SW5zdHJ1Y3Rpb24pKTsKKyAgICBsb2dTaGFkb3dDaGlja2VuVGFpbFBhY2tldChz
aGFkb3dQYWNrZXRSZWcsIHRoaXNSZWdzLCByZWdUMywgbV9jb2RlQmxvY2ssIENhbGxTaXRlSW5k
ZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGN1cnJlbnRJbnN0cnVjdGlv
bikpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggYzg4YmM3MDZlZDY0
MmU2OTQ3ZWU5NTE2MTg0YmU3MWRiY2RiOTlkZS4uOGJmNzI0MzhjZTY4YzAxMjE3MWM2YWIxNTQx
MjdmYWVhOGRlY2YwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
CiAgICAgTGFiZWwgbmV4dEhvdFBhdGggPSBsYWJlbCgpOwogICAgIAotICAgIG1fYnlWYWxDb21w
aWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5VmFsSW5mbywgbV9ieXRl
Y29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIHByb2ZpbGUsIGRvbmUsIG5leHRI
b3RQYXRoKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxh
dGlvbkluZm8oYnlWYWxJbmZvLCBtX2J5dGVjb2RlSW5kZXgsIG5vdEluZGV4LCBiYWRUeXBlLCBt
b2RlLCBwcm9maWxlLCBkb25lLCBuZXh0SG90UGF0aCkpOwogfQogCiBKSVRHZXRCeUlkR2VuZXJh
dG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBP
cEdldEJ5VmFsIGJ5dGVjb2RlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEp1bXAm
IGZhc3REb25lQ2FzZSwgSnVtcCYgc2xvd0RvbmVDYXNlLCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQpA
QCAtMjA3LDcgKzIwNyw3IEBAIEpJVEdldEJ5SWRHZW5lcmF0b3IgSklUOjplbWl0R2V0QnlWYWxX
aXRoQ2FjaGVkSWQoQnlWYWxJbmZvKiBieVZhbEluZm8sIE9wR2V0QnlWCiAKICAgICBjb25zdCBJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uID0gbV9jb2RlQmxvY2stPmluc3RydWN0aW9u
cygpLmF0KGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleCkucHRyKCk7CiAgICAgSklUR2V0QnlJZEdl
bmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVP
ZmZzZXQpLCBDYWxsU2l0ZUluZGV4KGN1cnJlbnRJbnN0cnVjdGlvbiksIFJlZ2lzdGVyU2V0Ojpz
dHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmln
aW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KGJpdHdpc2Vf
Y2FzdDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0aW9uKSkpLCBSZWdpc3RlclNldDo6c3R1YlVu
YXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIHByb3BlcnR5TmFtZS5pbXBsKCksIEpTVmFs
dWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEFj
Y2Vzc1R5cGU6OkdldCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogCkBAIC0z
MTQsNyArMzE0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChjb25zdCBJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUgPSBsYWJlbCgp
OwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRp
b25JbmZvKGJ5VmFsSW5mbywgbV9ieXRlY29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1v
ZGUsIHByb2ZpbGUsIGRvbmUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFw
cGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVJbmRleCwgbm90
SW5kZXgsIGJhZFR5cGUsIG1vZGUsIHByb2ZpbGUsIGRvbmUsIGRvbmUpKTsKIH0KIAogdGVtcGxh
dGUgPHR5cGVuYW1lIE9wPgpAQCAtNDM3LDcgKzQzNyw3IEBAIEpJVFB1dEJ5SWRHZW5lcmF0b3Ig
SklUOjplbWl0UHV0QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJbmZvKiBieVZhbEluZm8sIE9wIGJ5
dGVjCiAKICAgICBjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uID0gbV9jb2Rl
QmxvY2stPmluc3RydWN0aW9ucygpLmF0KGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleCkucHRyKCk7
CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2Rl
T3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBDYWxsU2l0ZUluZGV4KGN1cnJlbnRJbnN0cnVjdGlv
biksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9j
b2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRl
Y29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0aW9uKSkpLCBS
ZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIEpTVmFsdWVS
ZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMiksIHJlZ1Qx
LCBtX2NvZGVCbG9jay0+ZWNtYU1vZGUoKSwgcHV0S2luZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFz
dFBhdGgoKnRoaXMpOwogICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKQEAgLTUwMSw3ICs1
MDEsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90cnlfZ2V0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJh
c2UsIHJlZ1QxKTsKIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2Nv
ZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgQ2FsbFNpdGVJbmRleChjdXJy
ZW50SW5zdHJ1Y3Rpb24pLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCks
CisgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxT
aXRlSW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGN1cnJlbnRJbnN0
cnVjdGlvbikpKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAg
ICAgICBpZGVudC0+aW1wbCgpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1Zh
bHVlUmVncyhyZWdUMSwgcmVnVDApLCBBY2Nlc3NUeXBlOjpUcnlHZXQpOwogICAgIGdlbi5nZW5l
cmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkp
OwpAQCAtNTQwLDcgKzU0MCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZF9kaXJlY3Qo
Y29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0SnVtcFNsb3dD
YXNlSWZOb3RKU0NlbGwoYmFzZSwgcmVnVDEpOwogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBn
ZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBD
YWxsU2l0ZUluZGV4KGN1cnJlbnRJbnN0cnVjdGlvbiksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFp
bGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRl
Y29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50
MzJfdD4oY3VycmVudEluc3RydWN0aW9uKSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxl
UmVnaXN0ZXJzKCksCiAgICAgICAgIGlkZW50LT5pbXBsKCksIEpTVmFsdWVSZWdzOjpwYXlsb2Fk
T25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEFjY2Vzc1R5cGU6OkdldERp
cmVjdCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNl
KGdlbi5zbG93UGF0aEp1bXAoKSk7CkBAIC01ODYsNyArNTg2LDcgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfZ2V0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAg
fQogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBD
b2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBDYWxsU2l0ZUluZGV4KGN1cnJlbnRJbnN0cnVj
dGlvbiksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAg
bV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChC
eXRlY29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0aW9uKSkp
LCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIGlkZW50
LT5pbXBsKCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJl
Z1QxLCByZWdUMCksIEFjY2Vzc1R5cGU6OkdldCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgo
KnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CkBAIC02MjcsNyAr
NjI3LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX3dpdGhfdGhpcyhjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpT
Q2VsbCh0aGlzVlJlZywgcmVnVDQpOwogCiAgICAgSklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9y
IGdlbigKLSAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCks
IENhbGxTaXRlSW5kZXgoY3VycmVudEluc3RydWN0aW9uKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2
YWlsYWJsZVJlZ2lzdGVycygpLAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5
dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgoYml0d2lzZV9jYXN0PHVp
bnQzMl90PihjdXJyZW50SW5zdHJ1Y3Rpb24pKSksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFi
bGVSZWdpc3RlcnMoKSwKICAgICAgICAgaWRlbnQtPmltcGwoKSwgSlNWYWx1ZVJlZ3MocmVnVDEs
IHJlZ1QwKSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVn
VDQsIHJlZ1QzKSwgQWNjZXNzVHlwZTo6R2V0V2l0aFRoaXMpOwogICAgIGdlbi5nZW5lcmF0ZUZh
c3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwpAQCAt
NjcwLDcgKzY3MCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV9pZChjb25zdCBJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2Vs
bChiYXNlLCByZWdUMSk7CiAKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAg
bV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIENhbGxTaXRlSW5kZXgo
Y3VycmVudEluc3RydWN0aW9uKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVy
cygpLAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBD
YWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgoYml0d2lzZV9jYXN0PHVpbnQzMl90PihjdXJyZW50
SW5zdHJ1Y3Rpb24pKSksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwK
ICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVn
VDMsIHJlZ1QyKSwKICAgICAgICAgcmVnVDEsIG1fY29kZUJsb2NrLT5lY21hTW9kZSgpLCBkaXJl
Y3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpOwogICAgIApAQCAtNzE0LDcgKzcxNCw3IEBAIHZvaWQg
SklUOjplbWl0X29wX2luX2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKIAogICAg
IEpJVEluQnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2lu
KG1fYnl0ZWNvZGVPZmZzZXQpLCBDYWxsU2l0ZUluZGV4KGN1cnJlbnRJbnN0cnVjdGlvbiksIFJl
Z2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9jb2RlQmxv
Y2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRlY29kZUlu
ZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0aW9uKSkpLCBSZWdpc3Rl
clNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIGlkZW50LT5pbXBsKCks
IEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdU
MCkpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShn
ZW4uc2xvd1BhdGhKdW1wKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFNsb3dQYXRocy5jcHAKaW5kZXggNGJkOGZhZWE5Mjc3ZWIxZGY4MjViZmJjNTI5OTZmZTdhMDU4
Y2I0NC4uMzRmNjdkNWMwYzgwYmRlNzY3ZmZjNDVjMzYzNmNmY2E5YzhiYzBjNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC0xODg4LDgg
KzE4ODgsMTEgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2xvZ19zaGFkb3dfY2hp
Y2tlbl90YWlsKQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZ2V0Tm9uQ29uc3RhbnRPcGVyYW5k
KGNhbGxGcmFtZSwgYnl0ZWNvZGUubV90aGlzVmFsdWUpOwogICAgIEpTU2NvcGUqIHNjb3BlID0g
Y2FsbEZyYW1lLT51bmNoZWNrZWRSKGJ5dGVjb2RlLm1fc2NvcGUpLlJlZ2lzdGVyOjpzY29wZSgp
OwogICAgIAotICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KGNv
ZGVCbG9jay0+Ynl0ZWNvZGVPZmZzZXQocGMpKSk7Ci0KKyNpZiBVU0UoSlNWQUxVRTY0KQorICAg
IENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleChjb2RlQmxvY2stPmJ5dGVjb2RlT2Zmc2V0KHBj
KSk7CisjZWxzZQorICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4
KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4ocGMpKSk7CisjZW5kaWYKICAgICBTaGFkb3dDaGlja2Vu
KiBzaGFkb3dDaGlja2VuID0gdm0uc2hhZG93Q2hpY2tlbigpOwogICAgIFJFTEVBU0VfQVNTRVJU
KHNoYWRvd0NoaWNrZW4pOwogICAgIHNoYWRvd0NoaWNrZW4tPmxvZyh2bSwgY2FsbEZyYW1lLCBT
aGFkb3dDaGlja2VuOjpQYWNrZXQ6OnRhaWwoY2FsbEZyYW1lLCB0aGlzVmFsdWUsIHNjb3BlLCBj
b2RlQmxvY2ssIGNhbGxTaXRlSW5kZXgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381788</attachid>
            <date>2019-10-24 01:58:53 -0700</date>
            <delta_ts>2019-10-24 01:58:53 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-203358-20191024105852.patch</filename>
            <type>text/plain</type>
            <size>17343</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
Yzg0NTllNzc1NzJiMjk3MjVjY2YxODM5OGUzODk2MDk1MmUyNjhiLi4xOTU1ZDM4NmEwNmYzYTE2
M2QxYTkzMDhlMzJlNzczOTRiNzY2ZmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0xMC0yNCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0pTQ10gR2V0IDMyLWJpdCBwb3J0cyBiYWNrIGludG8gYnVpbGRpbmcg
b3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MzM1OAorCisgICAgICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgorCisgICAg
ICAgIEdldCBKU0MgYnVpbGRpbmcgYWdhaW4gb24gMzItYml0IGFyY2hpdGVjdHVyZXMgYWZ0ZXIg
Y2hhbmdlcyBpbiByMjUxNDY4LgorICAgICAgICBTb21lIDMyLWJpdCBjb2RlIGluIExMaW50IGFu
ZCBKSVQgaXMgYnJvdWdodCBiYWNrLCBhbmQgYWRkaXRpb25hbCBjYXN0cworICAgICAgICBhcm91
bmQgQnl0ZWNvZGVJbmRleCBjb25zdHJ1Y3Rpb24gYXJlIGFkZGVkIGFzIG5lY2Vzc2FyeS4KKwor
ICAgICAgICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpyZWlmeUlu
bGluZWRDYWxsRnJhbWVzKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpyZWlmeUlubGluZWRDYWxsRnJhbWVzKToKKyAgICAg
ICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6
OnNldEN1cnJlbnRWUEMpOgorICAgICAgICAqIGppdC9KSVRDYWxsMzJfNjQuY3BwOgorICAgICAg
ICAoSlNDOjpKSVQ6OmNvbXBpbGVDYWxsRXZhbFNsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6SklU
Ojpjb21waWxlT3BDYWxsKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpKSVQ6OnVwZGF0ZVRvcENhbGxGcmFtZSk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9sb2dfc2hhZG93X2NoaWNrZW5f
dGFpbCk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dEdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9i
eV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRQdXRCeVZhbFdpdGhDYWNoZWRJZCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF90cnlfZ2V0X2J5X2lkKToKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0X29wX2dldF9ieV9pZF9kaXJlY3QpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRf
b3BfZ2V0X2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV9pZF93aXRo
X3RoaXMpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0X29wX2luX2J5X2lkKToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQ
YXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisK
IDIwMTktMTAtMjMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbSlNDXSBSZW1vdmUgd2FzbUF3YXJlTGV4aWNhbEdsb2JhbE9iamVjdApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKaW5kZXggNTEwYTdhYjMxNTBiOWM2NzNhOTFhYmY4
NzYzOWM0OTdmNmZkOWQxNy4uMDQzOGYyZmRmMjNmOWUzYTk3NTcwZjRmNzRkMmIzMGVlNDAxOGY4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCkBAIC04MjUsNyAr
ODI1LDcgQEAgc3RhdGljIHZvaWQgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhDb250ZXh0JiBjb250
ZXh0LCBDb2RlQmxvY2sqIG91dGVybW9zdEJhc2VsaW4KICAgICAgICAgICAgIGZyYW1lLnNldE9w
ZXJhbmQoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSwgSlNWYWx1ZShpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpKTsKICNlbHNlIC8v
IFVTRShKU1ZBTFVFNjQpIC8vIHNvIHRoaXMgaXMgdGhlIDMyLWJpdCBwYXJ0CiAgICAgICAgIGNv
bnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiA9IGJhc2VsaW5lQ29kZUJsb2NrLT5pbnN0cnVj
dGlvbnMoKS5hdChjb2RlT3JpZ2luLT5ieXRlY29kZUluZGV4KCkpLnB0cigpOwotICAgICAgICB1
aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KGluc3RydWN0aW9uKS5iaXRzKCk7
CisgICAgICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJ
bmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGluc3RydWN0aW9uKSkpLmJpdHMoKTsKICAgICAg
ICAgZnJhbWUuc2V0T3BlcmFuZDx1aW50MzJfdD4oaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNl
dCArIENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnQsIFRhZ09mZnNldCwgbG9jYXRpb25CaXRz
KTsKICAgICAgICAgZnJhbWUuc2V0T3BlcmFuZDx1aW50MzJfdD4oaW5saW5lQ2FsbEZyYW1lLT5z
dGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwgVGFnT2Zmc2V0LCBzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oSlNWYWx1ZTo6Q2VsbFRhZykpOwogICAgICAgICBpZiAoIWlubGluZUNhbGxG
cmFtZS0+aXNDbG9zdXJlQ2FsbCkKQEAgLTgzOSw3ICs4MzksNyBAQCBzdGF0aWMgdm9pZCByZWlm
eUlubGluZWRDYWxsRnJhbWVzKENvbnRleHQmIGNvbnRleHQsIENvZGVCbG9jayogb3V0ZXJtb3N0
QmFzZWxpbgogICAgICAgICB1aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KGNv
ZGVPcmlnaW4tPmJ5dGVjb2RlSW5kZXgoKSkuYml0cygpOwogI2Vsc2UKICAgICAgICAgY29uc3Qg
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gb3V0ZXJtb3N0QmFzZWxpbmVDb2RlQmxvY2stPmlu
c3RydWN0aW9ucygpLmF0KGNvZGVPcmlnaW4tPmJ5dGVjb2RlSW5kZXgoKSkucHRyKCk7Ci0gICAg
ICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoaW5zdHJ1Y3Rpb24pLmJp
dHMoKTsKKyAgICAgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChCeXRl
Y29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oaW5zdHJ1Y3Rpb24pKSkuYml0cygpOwog
I2VuZGlmCiAgICAgICAgIGZyYW1lLnNldE9wZXJhbmQ8dWludDMyX3Q+KENhbGxGcmFtZVNsb3Q6
OmFyZ3VtZW50Q291bnQsIFRhZ09mZnNldCwgbG9jYXRpb25CaXRzKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5j
cHAKaW5kZXggMDFlZTFiN2M4MDNmZThkNGE2ZWU5MjNjZmUyYzQ1MmRmYTIwMWZhYy4uZjBhMGMz
ZDdmN2MzZWY0ZTM1MDM4ZWU3Mjk4YTU4MGJmZWJjMjAzYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcApAQCAtMzE1
LDcgKzMxNSw3IEBAIHZvaWQgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhDQ2FsbEhlbHBlcnMmIGpp
dCwgY29uc3QgT1NSRXhpdEJhc2UmIGV4aXQpCiAjZWxzZSAvLyBVU0UoSlNWQUxVRTY0KSAvLyBz
byB0aGlzIGlzIHRoZSAzMi1iaXQgcGFydAogICAgICAgICBqaXQuc3RvcmVQdHIoY2FsbGVyRnJh
bWVHUFIsIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvckJ5dGVPZmZzZXQoaW5saW5lQ2FsbEZy
YW1lLT5jYWxsZXJGcmFtZU9mZnNldCgpKSk7CiAgICAgICAgIGNvbnN0IEluc3RydWN0aW9uKiBp
bnN0cnVjdGlvbiA9IGJhc2VsaW5lQ29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5hdChjb2RlT3Jp
Z2luLT5ieXRlY29kZUluZGV4KCkpLnB0cigpOwotICAgICAgICB1aW50MzJfdCBsb2NhdGlvbkJp
dHMgPSBDYWxsU2l0ZUluZGV4KGluc3RydWN0aW9uKS5iaXRzKCk7CisgICAgICAgIHVpbnQzMl90
IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8
dWludDMyX3Q+KGluc3RydWN0aW9uKSkpLmJpdHMoKTsKICAgICAgICAgaml0LnN0b3JlMzIoQXNz
ZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgQXNzZW1ibHlIZWxwZXJz
Ojp0YWdGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAr
IENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnQpKSk7CiAgICAgICAgIGppdC5zdG9yZTMyKEFz
c2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBc3NlbWJseUhl
bHBlcnM6OnRhZ0ZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zm
c2V0ICsgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSkpOwogICAgICAgICBpZiAoIWlubGluZUNhbGxG
cmFtZS0+aXNDbG9zdXJlQ2FsbCkKQEAgLTMyOSw3ICszMjksNyBAQCB2b2lkIHJlaWZ5SW5saW5l
ZENhbGxGcmFtZXMoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IE9TUkV4aXRCYXNlJiBleGl0KQog
ICAgICAgICB1aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KGNvZGVPcmlnaW4t
PmJ5dGVjb2RlSW5kZXgoKSkuYml0cygpOwogI2Vsc2UKICAgICAgICAgY29uc3QgSW5zdHJ1Y3Rp
b24qIGluc3RydWN0aW9uID0gaml0LmJhc2VsaW5lQ29kZUJsb2NrKCktPmluc3RydWN0aW9ucygp
LmF0KGNvZGVPcmlnaW4tPmJ5dGVjb2RlSW5kZXgoKSkucHRyKCk7Ci0gICAgICAgIHVpbnQzMl90
IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoaW5zdHJ1Y3Rpb24pLmJpdHMoKTsKKyAgICAg
ICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KGJp
dHdpc2VfY2FzdDx1aW50MzJfdD4oaW5zdHJ1Y3Rpb24pKSkuYml0cygpOwogI2VuZGlmCiAgICAg
ICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0
cyksIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKENhbGxGcmFtZVNs
b3Q6OmFyZ3VtZW50Q291bnQpKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAppbmRleCBiZTA5OGExMTdhZDEwOTFjZGMxYTQ1MDlj
Nzc5YmU3MjgyMTQ1MDM4Li42YmY0NTdmNDQ3MWIyY2ZkNjVlNjMzOWQzM2I1NjAzNmE3ZjNlMWRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNw
cApAQCAtMTE2LDcgKzExNiw3IEBAIGNvbnN0IEluc3RydWN0aW9uKiBDYWxsRnJhbWU6OmN1cnJl
bnRWUEMoKSBjb25zdAogCiB2b2lkIENhbGxGcmFtZTo6c2V0Q3VycmVudFZQQyhjb25zdCBJbnN0
cnVjdGlvbiogdnBjKQogewotICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUoY29kZUJsb2NrKCkt
PmJ5dGVjb2RlSW5kZXgodnBjKSk7CisgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZShCeXRlY29k
ZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4odnBjKSkpOwogICAgIHRoaXNbQ2FsbEZyYW1l
U2xvdDo6YXJndW1lbnRDb3VudF0udGFnKCkgPSBjYWxsU2l0ZS5iaXRzKCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAppbmRleCBhN2RjODI1YmM5MmFk
MTE1NGNmYTMzYTQ4YjJiMzE2MTg5NTg2ZTMwLi43ZjZjOTEwODkwNzk4ZWY2MTFiODdlYjQ0MWRm
MDU1ZDRiMTNiMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENh
bGwzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQu
Y3BwCkBAIC0yNDYsNyArMjQ2LDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVDYWxsRXZhbFNsb3dDYXNl
KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKIAogICAgIGF1
dG8gYnl0ZWNvZGUgPSBpbnN0cnVjdGlvbi0+YXM8T3BDYWxsRXZhbD4oKTsKICAgICBDYWxsTGlu
a0luZm8qIGluZm8gPSBtX2NvZGVCbG9jay0+YWRkQ2FsbExpbmtJbmZvKCk7Ci0gICAgaW5mby0+
c2V0VXBDYWxsKENhbGxMaW5rSW5mbzo6Q2FsbCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0
KSwgcmVnVDApOworICAgIGluZm8tPnNldFVwQ2FsbChDYWxsTGlua0luZm86OkNhbGwsIENvZGVP
cmlnaW4obV9ieXRlY29kZUluZGV4KSwgcmVnVDApOwogCiAgICAgaW50IHJlZ2lzdGVyT2Zmc2V0
ID0gLWJ5dGVjb2RlLm1fYXJndjsKICAgICBpbnQgY2FsbGVlID0gYnl0ZWNvZGUubV9jYWxsZWUu
b2Zmc2V0KCk7CkBAIC0yODgsNyArMjg4LDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoY29u
c3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCB1bnNpZ25lZCBjYWxsTGlua0luZm9JbmQKICAg
ICBjb21waWxlU2V0dXBGcmFtZShieXRlY29kZSwgaW5mbyk7CiAgICAgLy8gU1AgaG9sZHMgbmV3
Q2FsbEZyYW1lICsgc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpLCB3aXRoIEFyZ3VtZW50Q291bnQg
aW5pdGlhbGl6ZWQuCiAgICAgCi0gICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJ
bmRleChpbnN0cnVjdGlvbikuYml0cygpOworICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENh
bGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGluc3RydWN0
aW9uKSkpLmJpdHMoKTsKICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLCB0
YWdGb3IoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudCkpOwogICAgIGVtaXRMb2FkKGNhbGxl
ZSwgcmVnVDEsIHJlZ1QwKTsgLy8gcmVnVDEsIHJlZ1QwIGhvbGRzIGNhbGxlZS4KIApAQCAtMzA5
LDcgKzMwOSw3IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsKGNvbnN0IEluc3RydWN0aW9uKiBp
bnN0cnVjdGlvbiwgdW5zaWduZWQgY2FsbExpbmtJbmZvSW5kCiAgICAgYWRkU2xvd0Nhc2Uoc2xv
d0Nhc2UpOwogCiAgICAgQVNTRVJUKG1fY2FsbENvbXBpbGF0aW9uSW5mby5zaXplKCkgPT0gY2Fs
bExpbmtJbmZvSW5kZXgpOwotICAgIGluZm8tPnNldFVwQ2FsbChDYWxsTGlua0luZm86OmNhbGxU
eXBlRm9yKG9wY29kZUlEKSwgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgcmVnVDApOwor
ICAgIGluZm8tPnNldFVwQ2FsbChDYWxsTGlua0luZm86OmNhbGxUeXBlRm9yKG9wY29kZUlEKSwg
Q29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCByZWdUMCk7CiAgICAgbV9jYWxsQ29tcGlsYXRp
b25JbmZvLmFwcGVuZChDYWxsQ29tcGlsYXRpb25JbmZvKCkpOwogICAgIG1fY2FsbENvbXBpbGF0
aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uaG90UGF0aEJlZ2luID0gYWRkcmVzc09mTGlua2Vk
RnVuY3Rpb25DaGVjazsKICAgICBtX2NhbGxDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5k
ZXhdLmNhbGxMaW5rSW5mbyA9IGluZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5l
cy5oCmluZGV4IDEwODAwNDYzYmFjOTc4YWFiYmIxYWFkNGVhNTZjNjc4Yzc1MWI2MDEuLjYyZWFi
OWI5N2ZhMjdmNzM2MmI2YWNmYjQ1MzE1ZDQzOTAyYzQxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lcy5oCkBAIC0xMjUsNyArMTI1LDEyIEBAIEFMV0FZU19JTkxJTkUgSklU
OjpDYWxsIEpJVDo6ZW1pdE5ha2VkVGFpbENhbGwoQ29kZVB0cjxOb1B0clRhZz4gdGFyZ2V0KQog
CiBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjp1cGRhdGVUb3BDYWxsRnJhbWUoKQogeworI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCisgICAgY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gbV9j
b2RlQmxvY2stPmluc3RydWN0aW9ucygpLmF0KG1fYnl0ZWNvZGVJbmRleC5vZmZzZXQoKSkucHRy
KCk7CisgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChCeXRlY29kZUlu
ZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oaW5zdHJ1Y3Rpb24pKSkuYml0cygpOworI2Vsc2UK
ICAgICB1aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRl
eCkuYml0cygpOworI2VuZGlmCiAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRz
KSwgdGFnRm9yKENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnQpKTsKICAgICAKICAgICAvLyBG
SVhNRTogSXQncyBub3QgY2xlYXIgdGhhdCB0aGlzIGlzIG5lZWRlZC4gSklUT3BlcmF0aW9ucyB0
ZW5kIHRvIHVwZGF0ZSB0aGUgdG9wIGNhbGwgZnJhbWUgb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCBlYjUxZTRlM2E0ZTc0NzQ3ZTgwYzg1
MDFjMTQ5YTlhZWMyNzc5NDI5Li4zZTBjZWI0NjkzYTU4OTVmM2FmZWJjOTYyYTljMTQzZjA4Mjhj
NTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3Bw
CkBAIC0xMzg2LDcgKzEzODYsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9sb2dfc2hhZG93X2NoaWNr
ZW5fdGFpbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRM
b2FkVGFnKGJ5dGVjb2RlLm1fdGhpc1ZhbHVlLm9mZnNldCgpLCByZWdUMSk7CiAgICAgSlNWYWx1
ZVJlZ3MgdGhpc1JlZ3MocmVnVDEsIHJlZ1QyKTsKICAgICBlbWl0TG9hZFBheWxvYWQoYnl0ZWNv
ZGUubV9zY29wZS5vZmZzZXQoKSwgcmVnVDMpOwotICAgIGxvZ1NoYWRvd0NoaWNrZW5UYWlsUGFj
a2V0KHNoYWRvd1BhY2tldFJlZywgdGhpc1JlZ3MsIHJlZ1QzLCBtX2NvZGVCbG9jaywgQ2FsbFNp
dGVJbmRleChjdXJyZW50SW5zdHJ1Y3Rpb24pKTsKKyAgICBsb2dTaGFkb3dDaGlja2VuVGFpbFBh
Y2tldChzaGFkb3dQYWNrZXRSZWcsIHRoaXNSZWdzLCByZWdUMywgbV9jb2RlQmxvY2ssIENhbGxT
aXRlSW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGN1cnJlbnRJbnN0
cnVjdGlvbikpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggYzg4YmM3
MDZlZDY0MmU2OTQ3ZWU5NTE2MTg0YmU3MWRiY2RiOTlkZS4uOGJmNzI0MzhjZTY4YzAxMjE3MWM2
YWIxNTQxMjdmYWVhOGRlY2YwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogCiAgICAgTGFiZWwgbmV4dEhvdFBhdGggPSBsYWJlbCgpOwogICAgIAotICAgIG1fYnlW
YWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5VmFsSW5mbywg
bV9ieXRlY29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIHByb2ZpbGUsIGRvbmUs
IG5leHRIb3RQYXRoKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxD
b21waWxhdGlvbkluZm8oYnlWYWxJbmZvLCBtX2J5dGVjb2RlSW5kZXgsIG5vdEluZGV4LCBiYWRU
eXBlLCBtb2RlLCBwcm9maWxlLCBkb25lLCBuZXh0SG90UGF0aCkpOwogfQogCiBKSVRHZXRCeUlk
R2VuZXJhdG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKEJ5VmFsSW5mbyogYnlWYWxJ
bmZvLCBPcEdldEJ5VmFsIGJ5dGVjb2RlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEp1bXAmIGZhc3REb25lQ2FzZSwgSnVtcCYgc2xvd0RvbmVDYXNlLCBKdW1wTGlzdCYgc2xvd0Nh
c2VzKQpAQCAtMjA3LDcgKzIwNyw3IEBAIEpJVEdldEJ5SWRHZW5lcmF0b3IgSklUOjplbWl0R2V0
QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJbmZvKiBieVZhbEluZm8sIE9wR2V0QnlWCiAKICAgICBj
b25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uID0gbV9jb2RlQmxvY2stPmluc3Ry
dWN0aW9ucygpLmF0KGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleCkucHRyKCk7CiAgICAgSklUR2V0
QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0
ZWNvZGVPZmZzZXQpLCBDYWxsU2l0ZUluZGV4KGN1cnJlbnRJbnN0cnVjdGlvbiksIFJlZ2lzdGVy
U2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENv
ZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KGJp
dHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0aW9uKSkpLCBSZWdpc3RlclNldDo6
c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIHByb3BlcnR5TmFtZS5pbXBsKCks
IEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdU
MCksIEFjY2Vzc1R5cGU6OkdldCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwog
CkBAIC0zMTQsNyArMzE0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChjb25zdCBJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUgPSBs
YWJlbCgpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29t
cGlsYXRpb25JbmZvKGJ5VmFsSW5mbywgbV9ieXRlY29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5
cGUsIG1vZGUsIHByb2ZpbGUsIGRvbmUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25J
bmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVJbmRl
eCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIHByb2ZpbGUsIGRvbmUsIGRvbmUpKTsKIH0KIAog
dGVtcGxhdGUgPHR5cGVuYW1lIE9wPgpAQCAtNDM3LDcgKzQzNyw3IEBAIEpJVFB1dEJ5SWRHZW5l
cmF0b3IgSklUOjplbWl0UHV0QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJbmZvKiBieVZhbEluZm8s
IE9wIGJ5dGVjCiAKICAgICBjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uID0g
bV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmF0KGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleCku
cHRyKCk7CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2Nr
LCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBDYWxsU2l0ZUluZGV4KGN1cnJlbnRJbnN0
cnVjdGlvbiksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAg
ICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRl
eChCeXRlY29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0aW9u
KSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIEpT
VmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMiks
IHJlZ1QxLCBtX2NvZGVCbG9jay0+ZWNtYU1vZGUoKSwgcHV0S2luZCk7CiAgICAgZ2VuLmdlbmVy
YXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKQEAgLTUw
MSw3ICs1MDEsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90cnlfZ2V0X2J5X2lkKGNvbnN0IEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlND
ZWxsKGJhc2UsIHJlZ1QxKTsKIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAg
ICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgQ2FsbFNpdGVJbmRl
eChjdXJyZW50SW5zdHJ1Y3Rpb24pLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0
ZXJzKCksCisgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCks
IENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGN1cnJl
bnRJbnN0cnVjdGlvbikpKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygp
LAogICAgICAgICBpZGVudC0+aW1wbCgpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDAp
LCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBBY2Nlc3NUeXBlOjpUcnlHZXQpOwogICAgIGdl
bi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhK
dW1wKCkpOwpAQCAtNTQwLDcgKzU0MCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZF9k
aXJlY3QoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0SnVt
cFNsb3dDYXNlSWZOb3RKU0NlbGwoYmFzZSwgcmVnVDEpOwogCiAgICAgSklUR2V0QnlJZEdlbmVy
YXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZz
ZXQpLCBDYWxsU2l0ZUluZGV4KGN1cnJlbnRJbnN0cnVjdGlvbiksIFJlZ2lzdGVyU2V0OjpzdHVi
VW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4o
bV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KGJpdHdpc2VfY2Fz
dDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0aW9uKSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZh
aWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIGlkZW50LT5pbXBsKCksIEpTVmFsdWVSZWdzOjpw
YXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEFjY2Vzc1R5cGU6
OkdldERpcmVjdCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNs
b3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CkBAIC01ODYsNyArNTg2LDcgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfZ2V0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAgICAgfQogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJs
b2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBDYWxsU2l0ZUluZGV4KGN1cnJlbnRJ
bnN0cnVjdGlvbiksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAg
ICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJ
bmRleChCeXRlY29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0
aW9uKSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAg
IGlkZW50LT5pbXBsKCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVS
ZWdzKHJlZ1QxLCByZWdUMCksIEFjY2Vzc1R5cGU6OkdldCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFz
dFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CkBAIC02
MjcsNyArNjI3LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX3dpdGhfdGhpcyhjb25z
dCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRKdW1wU2xvd0Nhc2VJ
Zk5vdEpTQ2VsbCh0aGlzVlJlZywgcmVnVDQpOwogCiAgICAgSklUR2V0QnlJZFdpdGhUaGlzR2Vu
ZXJhdG9yIGdlbigKLSAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9m
ZnNldCksIENhbGxTaXRlSW5kZXgoY3VycmVudEluc3RydWN0aW9uKSwgUmVnaXN0ZXJTZXQ6OnN0
dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdp
bihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgoYml0d2lzZV9j
YXN0PHVpbnQzMl90PihjdXJyZW50SW5zdHJ1Y3Rpb24pKSksIFJlZ2lzdGVyU2V0OjpzdHViVW5h
dmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgaWRlbnQtPmltcGwoKSwgSlNWYWx1ZVJlZ3Mo
cmVnVDEsIHJlZ1QwKSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJl
Z3MocmVnVDQsIHJlZ1QzKSwgQWNjZXNzVHlwZTo6R2V0V2l0aFRoaXMpOwogICAgIGdlbi5nZW5l
cmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkp
OwpAQCAtNjcwLDcgKzY3MCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV9pZChjb25zdCBJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5v
dEpTQ2VsbChiYXNlLCByZWdUMSk7CiAKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigKLSAg
ICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIENhbGxTaXRl
SW5kZXgoY3VycmVudEluc3RydWN0aW9uKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJl
Z2lzdGVycygpLAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5k
ZXgpLCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgoYml0d2lzZV9jYXN0PHVpbnQzMl90Pihj
dXJyZW50SW5zdHJ1Y3Rpb24pKSksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3Rl
cnMoKSwKICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJl
Z3MocmVnVDMsIHJlZ1QyKSwKICAgICAgICAgcmVnVDEsIG1fY29kZUJsb2NrLT5lY21hTW9kZSgp
LCBkaXJlY3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpOwogICAgIApAQCAtNzE0LDcgKzcxNCw3IEBA
IHZvaWQgSklUOjplbWl0X29wX2luX2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsK
IAogICAgIEpJVEluQnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2Rl
T3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBDYWxsU2l0ZUluZGV4KGN1cnJlbnRJbnN0cnVjdGlv
biksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbV9j
b2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRl
Y29kZUluZGV4KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0aW9uKSkpLCBS
ZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIGlkZW50LT5p
bXBsKCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1Qx
LCByZWdUMCkpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93
Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggNGJkOGZhZWE5Mjc3ZWIxZGY4MjViZmJjNTI5OTZm
ZTdhMDU4Y2I0NC4uMjMxMjlmYTUxZTMyMTMyNTg1MmU0ODk5NDk0NmI4NDNhMzQyNjYyYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC0x
ODg4LDcgKzE4ODgsMTEgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2xvZ19zaGFk
b3dfY2hpY2tlbl90YWlsKQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZ2V0Tm9uQ29uc3RhbnRP
cGVyYW5kKGNhbGxGcmFtZSwgYnl0ZWNvZGUubV90aGlzVmFsdWUpOwogICAgIEpTU2NvcGUqIHNj
b3BlID0gY2FsbEZyYW1lLT51bmNoZWNrZWRSKGJ5dGVjb2RlLm1fc2NvcGUpLlJlZ2lzdGVyOjpz
Y29wZSgpOwogICAgIAorI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgQ2FsbFNpdGVJbmRleCBjYWxs
U2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgoY29kZUJsb2NrLT5ieXRlY29kZU9mZnNldChwYykpKTsK
KyNlbHNlCisgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgoYml0
d2lzZV9jYXN0PHVpbnQzMl90PihwYykpKTsKKyNlbmRpZgogCiAgICAgU2hhZG93Q2hpY2tlbiog
c2hhZG93Q2hpY2tlbiA9IHZtLnNoYWRvd0NoaWNrZW4oKTsKICAgICBSRUxFQVNFX0FTU0VSVChz
aGFkb3dDaGlja2VuKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>