<?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>234387</bug_id>
          
          <creation_ts>2021-12-16 03:45:47 -0800</creation_ts>
          <short_desc>[JSC][ARMv7] Minor code size improvements</short_desc>
          <delta_ts>2022-02-10 16:37:43 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geza Lore">glore</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1824717</commentid>
    <comment_count>0</comment_count>
    <who name="Geza Lore">glore</who>
    <bug_when>2021-12-16 03:45:47 -0800</bug_when>
    <thetext>[JSC][ARMv7] Minor code size improvements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824718</commentid>
    <comment_count>1</comment_count>
      <attachid>447342</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2021-12-16 03:47:17 -0800</bug_when>
    <thetext>Created attachment 447342
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824721</commentid>
    <comment_count>2</comment_count>
      <attachid>447343</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2021-12-16 04:36:44 -0800</bug_when>
    <thetext>Created attachment 447343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824722</commentid>
    <comment_count>3</comment_count>
      <attachid>447344</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2021-12-16 04:38:29 -0800</bug_when>
    <thetext>Created attachment 447344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825332</commentid>
    <comment_count>4</comment_count>
      <attachid>447344</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-18 03:29:55 -0800</bug_when>
    <thetext>Comment on attachment 447344
Patch

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

Nice. Commented.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:-696
&gt; -        GPRReg thisArgumentTagGPR = thisArgument.tagGPR();
&gt; -        GPRReg thisArgumentPayloadGPR = thisArgument.payloadGPR();
&gt;          thisArgument.use();
&gt;          
&gt; -        m_jit.store32(thisArgumentTagGPR, JITCompiler::calleeArgumentTagSlot(0));
&gt; -        m_jit.store32(thisArgumentPayloadGPR, JITCompiler::calleeArgumentPayloadSlot(0));

Ditto.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:-758
&gt; -                GPRReg argTagGPR = arg.tagGPR();
&gt; -                GPRReg argPayloadGPR = arg.payloadGPR();
&gt;                  use(argEdge);
&gt; -            
&gt; -                m_jit.store32(argTagGPR, m_jit.calleeArgumentTagSlot(i));
&gt; -                m_jit.store32(argPayloadGPR, m_jit.calleeArgumentPayloadSlot(i));

This is not correct. Need to call arg.jsValueRegs() first before calling use() IIRC.
So, please follow the original way of the code, do not pass `arg.jsValueRegs()` arg directly, and instead, first define the following.

JSValueRegs argsRegs = args.jsValueRegs();

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:763
&gt;          calleePayloadGPR = callee.payloadGPR();

Let&apos;s follow the protocol the other DFG part uses.

First, define

JSValueRegs calleeRegs = callee.jsValueRegs();

before calling use.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:2193
&gt;              GPRTemporary result(this);
&gt;              GPRTemporary tag(this);

How about using JSValueRegsTemporary?

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:2194
&gt; +            m_jit.loadValue(JITCompiler::addressFor(node-&gt;machineLocal()), JSValueRegs { tag.gpr(), result.gpr() });

Ditto.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:2263
&gt; -            m_jit.store32(value.payloadGPR(), JITCompiler::payloadFor(node-&gt;machineLocal()));
&gt; -            m_jit.store32(value.tagGPR(), JITCompiler::tagFor(node-&gt;machineLocal()));
&gt; +            m_jit.storeValue(value.jsValueRegs(), JITCompiler::addressFor(node-&gt;machineLocal()));

First define JSValueRegs valueRegs = value.jsValueRegs();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825552</commentid>
    <comment_count>5</comment_count>
      <attachid>447589</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2021-12-20 01:01:33 -0800</bug_when>
    <thetext>Created attachment 447589
Fix review feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825555</commentid>
    <comment_count>6</comment_count>
      <attachid>447344</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2021-12-20 01:42:44 -0800</bug_when>
    <thetext>Comment on attachment 447344
Patch

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

Thanks these are very helpful. Fixed all.

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:2263
&gt;&gt; +            m_jit.storeValue(value.jsValueRegs(), JITCompiler::addressFor(node-&gt;machineLocal()));
&gt; 
&gt; First define JSValueRegs valueRegs = value.jsValueRegs();

Not sure this is necessary, most other cases don&apos;t do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825890</commentid>
    <comment_count>7</comment_count>
      <attachid>447589</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-21 00:10:39 -0800</bug_when>
    <thetext>Comment on attachment 447589
Fix review feedback

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825898</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-21 00:34:32 -0800</bug_when>
    <thetext>Committed r287301 (245453@main): &lt;https://commits.webkit.org/245453@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447589.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825899</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-21 00:35:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/86757902&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447342</attachid>
            <date>2021-12-16 03:47:17 -0800</date>
            <delta_ts>2021-12-16 04:37:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234387-20211216114716.patch</filename>
            <type>text/plain</type>
            <size>27569</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZWRjMmM5MDlhNjFjNDlkMjk4MmJkM2JkOTUyOTNlM2NmNDI5Y2ZjLi5jYjE0ZTg0MjQ2NmFhMDUy
YWE1OWQ0ZjUzNTdhNTY1OTBmOGQ4NGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0xNiAgR2V6YSBMb3JlICA8Z2xvcmVAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbSlNDXVtBUk12N10gTWlub3IgY29kZSBzaXplIGltcHJvdmVtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0Mzg3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBmZXcgbWV3IGNvZGUg
c2l6ZSBpbXByb3ZlbWVudHMgdG8gQVJNdjcvVGh1bWItMgorCisgICAgICAgIC0gVXNlIGxkcmQv
c3RyZCBpbiBtb2RlIHBsYWNlcyAodmlhIEFzc2VtYmx5SGVscGVyczpsb2FkVmFsdWUKKyAgICAg
ICAgYW5kIEFzc2VtYmx5SGVscGVyczo6c3RvcmVWYWx1ZSkKKworICAgICAgICAtIFVzZSBCSUMg
aW1tZWRpYXRlIGluc3RydWN0aW9uIGluc3RlYWQgb2YgQU5EIHdoZXJlIGFwcHJvcHJpYXRlCisK
KyAgICAgICAgLSBVc2UgYSAyLWJ5dGUgQUREUyBpbnN0ZWFkIG9mIGEgNC1ieXRlIENNTiB3aGVu
IHBvc3NpYmxlLiBUaGlzCisgICAgICAgIGFwcGxpZXMgdmVyeSBvZnRlbiBhcyBpdCBoYW5kbGVz
IHRlc3RpbmcgSlNWYWx1ZSB0YWdzLgorCisgICAgICAgIC0gVXNlIGFkZHJlc3NUZW1wUmVnaXN0
ZXIgaW4gYnJhbmNoMzIKKworICAgICAgIE92ZXJhbGwgc2F2aW5nIG9mIGFib3V0IDMuNSUgY29k
ZSBzaXplIG9uIEpldFN0cmVhbTIsIGFjY29yZGluZyB0bworICAgICAgIC0tZHVtcExpbmtCdWZm
ZXJTdGF0cy4KKworICAgICAgICAqIGFzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oOgorICAgICAg
ICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6YmljKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjphbmQz
Mik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN0b3JlUGFpcjMyKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29tcGFyZTMyQW5kU2V0RmxhZ3MpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpicmFuY2gzMik6CisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
Ymxlck1JUFM6OnN0b3JlUGFpcjMyKToKKyAgICAgICAgKiBieXRlY29kZS9BY2Nlc3NDYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKToKKyAgICAgICAgKiBk
ZmcvREZHT1NSRXhpdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdDo6Y29tcGlsZUV4
aXQpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbEpTVmFsdWUpOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAg
ICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpzdG9yZVZhbHVlKToKKyAgICAgICAgKiBqaXQvSklU
T3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9tb3YpOgorCiAyMDIxLTEy
LTAyICBHZXphIExvcmUgIDxnbG9yZUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0NdIEdlbmVy
YXRlZCBjb2RlIHNpemUgcmVkdWN0aW9ucyBmb3IgYmFzZWxpbmUgSklUIChhbGwgYXJjaGl0ZWN0
dXJlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdB
c3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJs
ZXIuaAppbmRleCA3NzY0ZGYxZTE5ZTRiYTc2NjVlODgxZjJiM2Y4ZDRkMWE1ZWVjZmVmLi40MzVi
NjY4YTcwMWRjYzY0MTg0NjM1Y2IyN2IyZGVjOGUyN2JhMTY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCkBAIC02MDksNiArNjA5LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgT1BfQl9UNGEgICAgICAgID0gMHhGMDAwLAogICAgICAgICBP
UF9BTkRfaW1tX1QxICAgPSAweEYwMDAsCiAgICAgICAgIE9QX1RTVF9pbW0gICAgICA9IDB4RjAx
MCwKKyAgICAgICAgT1BfQklDX2ltbV9UMSAgID0gMHhGMDIwLAogICAgICAgICBPUF9PUlJfaW1t
X1QxICAgPSAweEYwNDAsCiAgICAgICAgIE9QX01PVl9pbW1fVDIgICA9IDB4RjA0MCwKICAgICAg
ICAgT1BfTVZOX2ltbSAgICAgID0gMHhGMDYwLApAQCAtOTMyLDYgKzkzMywxNCBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBtX2Zvcm1hdHRlci5sYWJlbCgpOwogICAgIH0KIAorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBiaWMoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBybiwgQVJNVGh1bWJJ
bW1lZGlhdGUgaW1tKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFCYWRSZWcocmQpKTsKKyAgICAg
ICAgQVNTRVJUKCFCYWRSZWcocm4pKTsKKyAgICAgICAgQVNTRVJUKGltbS5pc0VuY29kZWRJbW0o
KSk7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDVpNkltbTRSZWc0RW5jb2RlZEltbShP
UF9CSUNfaW1tX1QxLCBybiwgcmQsIGltbSk7CisgICAgfQorCiAgICAgdm9pZCBia3B0KHVpbnQ4
X3QgaW1tID0gMCkKICAgICB7CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZVdvcmRPcDhJbW04KE9Q
X0JLUFQsIGltbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDI5ZGZmYzhiMzU2NjBmZWRiMTI3MmEzMzgyYTUy
MWY1YWIyMTExYjUuLmNkMTI5ZjZkOWE4N2UwNjlhZWNmYTQyNGFmZTcwZjBmMTE1Y2QxNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5oCkBAIC0yNzksMTIgKzI3OSwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBhbmQzMihU
cnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsK
ICAgICAgICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1h
a2VFbmNvZGVkSW1tKGltbS5tX3ZhbHVlKTsKLSAgICAgICAgaWYgKGFybUltbS5pc1ZhbGlkKCkp
CisgICAgICAgIGlmIChhcm1JbW0uaXNWYWxpZCgpKSB7CiAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5BUk1fYW5kKGRlc3QsIHNyYywgYXJtSW1tKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICBtb3ZlKGltbSwgZGF0YVRlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5B
Uk1fYW5kKGRlc3QsIHNyYywgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KKworICAgICAgICBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVu
Y29kZWRJbW0ofmltbS5tX3ZhbHVlKTsKKyAgICAgICAgaWYgKGFybUltbS5pc1ZhbGlkKCkpIHsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJpYyhkZXN0LCBzcmMsIGFybUltbSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBtb3ZlKGltbSwgZGF0YVRlbXBSZWdp
c3Rlcik7CisgICAgICAgIG1fYXNzZW1ibGVyLkFSTV9hbmQoZGVzdCwgc3JjLCBkYXRhVGVtcFJl
Z2lzdGVyKTsKICAgICB9CiAKICAgICB2b2lkIGFuZDMyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3Rl
cklEIGRlc3QpCkBAIC0xMDI2LDYgKzEwMzMsMTIgQEAgcHVibGljOgogICAgICAgICBzdG9yZVBh
aXIzMihzcmMxLCBzcmMyLCBBZGRyZXNzKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0
KSk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lz
dGVySUQgc3JjMiwgY29uc3Qgdm9pZCogYWRkcmVzcykKKyAgICB7CisgICAgICAgIG1vdmUoVHJ1
c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgIHN0b3Jl
UGFpcjMyKHNyYzEsIHNyYzIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgIH0KKwogICAgIC8v
IFBvc3NpYmx5IGNsb2JiZXJzIHNyYywgYnV0IG5vdCBvbiB0aGlzIGFyY2hpdGVjdHVyZS4KICAg
ICB2b2lkIG1vdmVEb3VibGVUb0ludHMoRlBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0
MSwgUmVnaXN0ZXJJRCBkZXN0MikKICAgICB7CkBAIC0xNTg3LDE1ICsxNjAwLDI1IEBAIHByaXZh
dGU6CiAgICAgewogICAgICAgICBpbnQzMl90IGltbSA9IHJpZ2h0Lm1fdmFsdWU7CiAgICAgICAg
IEFSTVRodW1iSW1tZWRpYXRlIGFybUltbSA9IEFSTVRodW1iSW1tZWRpYXRlOjptYWtlRW5jb2Rl
ZEltbShpbW0pOwotICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkKKyAgICAgICAgaWYgKGFy
bUltbS5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcChsZWZ0LCBhcm1J
bW0pOwotICAgICAgICBlbHNlIGlmICgoYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VF
bmNvZGVkSW1tKC1pbW0pKS5pc1ZhbGlkKCkpCi0gICAgICAgICAgICBtX2Fzc2VtYmxlci5jbW4o
bGVmdCwgYXJtSW1tKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBSZWdpc3RlcklEIHNj
cmF0Y2ggPSBiZXN0VGVtcFJlZ2lzdGVyKGxlZnQpOwotICAgICAgICAgICAgbW92ZShUcnVzdGVk
SW1tMzIoaW1tKSwgc2NyYXRjaCk7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5jbXAobGVmdCwg
c2NyYXRjaCk7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKworICAgICAgICBhcm1J
bW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJbW0oLWltbSk7CisgICAgICAgIGlm
IChhcm1JbW0uaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBpZiAoIShsZWZ0ICYgOCkgJiYgYXJt
SW1tLmlzVUludDMoKSAmJiAobGVmdCAhPSBhZGRyZXNzVGVtcFJlZ2lzdGVyKSkgeworICAgICAg
ICAgICAgICAgIC8vIFRoaXMgaXMgY29tbW9uIGVub3VnaCB0byB3YXJyYW50IGEgc3BlY2lhbCBj
YXNlIHRvIHNhdmUgMiBieXRlcworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZF9TKGFk
ZHJlc3NUZW1wUmVnaXN0ZXIsIGxlZnQsIGFybUltbSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21uKGxlZnQsIGFybUlt
bSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBSZWdpc3RlcklE
IHNjcmF0Y2ggPSBiZXN0VGVtcFJlZ2lzdGVyKGxlZnQpOworICAgICAgICBtb3ZlKFRydXN0ZWRJ
bW0zMihpbW0pLCBzY3JhdGNoKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuY21wKGxlZnQsIHNjcmF0
Y2gpOwogICAgIH0KIAogICAgIHZvaWQgYWRkMzJJbXBsKFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJl
c3MgYWRkcmVzcywgYm9vbCB1cGRhdGVGbGFncyA9IGZhbHNlKQpAQCAtMTY3OSwxMSArMTcwMiwx
MSBAQCBwdWJsaWM6CiAgICAgSnVtcCBicmFuY2gzMihSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQs
IFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0ZXJJRCByaWdodCkKICAgICB7CiAgICAgICAgIGlmIChs
ZWZ0ID09IEFSTVJlZ2lzdGVyczo6c3ApIHsKLSAgICAgICAgICAgIG1vdmUobGVmdCwgZGF0YVRl
bXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5jbXAoZGF0YVRlbXBSZWdpc3Rl
ciwgcmlnaHQpOworICAgICAgICAgICAgbW92ZShsZWZ0LCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcChhZGRyZXNzVGVtcFJlZ2lzdGVyLCByaWdodCk7
CiAgICAgICAgIH0gZWxzZSBpZiAocmlnaHQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgewotICAgICAg
ICAgICAgbW92ZShyaWdodCwgZGF0YVRlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5jbXAobGVmdCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtb3ZlKHJpZ2h0
LCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcChsZWZ0
LCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX2Fz
c2VtYmxlci5jbXAobGVmdCwgcmlnaHQpOwogICAgICAgICByZXR1cm4gSnVtcChtYWtlQnJhbmNo
KGNvbmQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyTUlQUy5oCmluZGV4IDRhMzA5NTNiZjNmZjBlNjlhNzE2Y2ZhYmYxYTM0ZTlkMGE5
NTQyYjkuLmE0MDhmYzU4OTllZGM5YmZhYWEzNjQ5Y2YzYWU5ZWY1ZTFhMTE0MDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMu
aApAQCAtMTY2NSw2ICsxNjY1LDEyIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihzcmMyLCBh
ZGRyZXNzLndpdGhPZmZzZXQoNCkpOwogICAgIH0KIAorICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVn
aXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCisgICAg
eworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGFkZHJUZW1wUmVnaXN0ZXIp
OworICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBzcmMyLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAg
ICB9CisKICAgICAvLyBGbG9hdGluZy1wb2ludCBvcGVyYXRpb25zOgogCiAgICAgc3RhdGljIGJv
b2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9BY2Nlc3NDYXNlLmNwcAppbmRleCAxMzI1MGVjNDg0MmY3OTAzNTk5Y2I1ODdmZDhiZTI4
NDhjNjc2YTgzLi40ODljMWRjZGQ4YzliMjc1NmZlNmUzMWY2NTQ4N2YxMzAwZjY1N2I1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCkBAIC0xOTIw
LDEzICsxOTIwLDE1IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmVy
YXRpb25TdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KHN0b3JhZ2VHUFIsIG9mZnNldFJlbGF0aXZlVG9CYXNlKG1fb2Zmc2V0KSksIGxvYWRlZFZhbHVl
R1BSKTsKICNlbHNlCiAgICAgICAgICAgICBpZiAobV90eXBlID09IExvYWQgfHwgbV90eXBlID09
IEdldEdldHRlcikgeworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoCisgICAgICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdG9yYWdlR1BSLCBvZmZzZXRSZWxhdGl2
ZVRvQmFzZShtX29mZnNldCkpLAorICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyB7IHZh
bHVlUmVncy50YWdHUFIoKSwgbG9hZGVkVmFsdWVHUFIgfSk7CisKKyAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgaml0LmxvYWQzMigKLSAgICAgICAgICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKHN0b3JhZ2VHUFIsIG9mZnNldFJlbGF0aXZlVG9CYXNlKG1fb2Zm
c2V0KSArIFRhZ09mZnNldCksCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlUmVncy50YWdHUFIo
KSk7CisgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdG9yYWdlR1BS
LCBvZmZzZXRSZWxhdGl2ZVRvQmFzZShtX29mZnNldCkgKyBQYXlsb2FkT2Zmc2V0KSwKKyAgICAg
ICAgICAgICAgICAgICAgbG9hZGVkVmFsdWVHUFIpOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaml0LmxvYWQzMigKLSAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3Rv
cmFnZUdQUiwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2UobV9vZmZzZXQpICsgUGF5bG9hZE9mZnNldCks
Ci0gICAgICAgICAgICAgICAgbG9hZGVkVmFsdWVHUFIpOwogI2VuZGlmCiAgICAgICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKaW5kZXggM2ZhYTdmN2ZhYWU4
MzlhY2FiODhmM2U2ODExZmFkYzAyMDM2MTExNC4uMjliNWUxNTcyMDlmNzI4NDAzYWUzMTg0MmMy
ZWI0ZTcyNzc2MzdhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3Bw
CkBAIC01MjMsMTIgKzUyMyw3IEBAIHZvaWQgT1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0NhbGxIZWxw
ZXJzJiBqaXQsIFZNJiB2bSwgY29uc3QgT1NSRXhpdCYgZXhpdCwgY29uc3QKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgSW5QYWlyOgotICAgICAgICAgICAg
aml0LnN0b3JlMzIoCi0gICAgICAgICAgICAgICAgcmVjb3ZlcnkudGFnR1BSKCksCi0gICAgICAg
ICAgICAgICAgJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCAr
IGluZGV4KS0+YXNCaXRzLnRhZyk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAg
ICAgICAgICByZWNvdmVyeS5wYXlsb2FkR1BSKCksCi0gICAgICAgICAgICAgICAgJmJpdHdpc2Vf
Y2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4KS0+YXNCaXRzLnBh
eWxvYWQpOworICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUocmVjb3ZlcnkuanNWYWx1ZVJlZ3Mo
KSwgc2NyYXRjaCArIGluZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAKQEAgLTU3
OSwyNCArNTc0LDEwIEBAIHZvaWQgT1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0NhbGxIZWxwZXJzJiBq
aXQsIFZNJiB2bSwgY29uc3QgT1NSRXhpdCYgZXhpdCwgY29uc3QKICNpZiBVU0UoSlNWQUxVRTY0
KQogICAgICAgICBjYXNlIENlbGxEaXNwbGFjZWRJbkpTU3RhY2s6CiAgICAgICAgIGNhc2UgQm9v
bGVhbkRpc3BsYWNlZEluSlNTdGFjazoKLSAgICAgICAgICAgIGppdC5sb2FkNjQoQXNzZW1ibHlI
ZWxwZXJzOjphZGRyZXNzRm9yKHJlY292ZXJ5LnZpcnR1YWxSZWdpc3RlcigpKSwgR1BSSW5mbzo6
cmVnVDApOwotICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIHNjcmF0Y2gg
KyBpbmRleCk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbHNlCi0gICAgICAgICAgICBqaXQubG9h
ZDMyKAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKHJlY292ZXJ5LnZp
cnR1YWxSZWdpc3RlcigpKSwKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMCk7Ci0gICAg
ICAgICAgICBqaXQubG9hZDMyKAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6cGF5
bG9hZEZvcihyZWNvdmVyeS52aXJ0dWFsUmVnaXN0ZXIoKSksCi0gICAgICAgICAgICAgICAgR1BS
SW5mbzo6cmVnVDEpOwotICAgICAgICAgICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICAgICAg
R1BSSW5mbzo6cmVnVDAsCi0gICAgICAgICAgICAgICAgJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFs
dWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4KS0+YXNCaXRzLnRhZyk7Ci0gICAgICAgICAg
ICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMSwKLSAgICAgICAg
ICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNoICsg
aW5kZXgpLT5hc0JpdHMucGF5bG9hZCk7Ci0gICAgICAgICAgICBicmVhazsKICNlbmRpZgorICAg
ICAgICAgICAgaml0LmxvYWRWYWx1ZShBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IocmVjb3Zl
cnkudmlydHVhbFJlZ2lzdGVyKCkpLCBKU1JJbmZvOjpqc1JlZ1QxMCk7CisgICAgICAgICAgICBq
aXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpqc1JlZ1QxMCwgc2NyYXRjaCArIGluZGV4KTsKKyAgICAg
ICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgQ29uc3RhbnQ6IHsKICNpZiBVU0UoSlNWQUxV
RTY0KQpAQCAtNjA3LDEyICs1ODgsNyBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBpbGVFeGl0KENDYWxs
SGVscGVycyYgaml0LCBWTSYgdm0sIGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0CiAgICAgICAg
ICAgICB9CiAjZWxzZSAvLyBub3QgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIFVOVVNFRF9W
QVJJQUJMRShmaXJzdFRtcFRvUmVzdG9yZUVhcmx5KTsKLSAgICAgICAgICAgIGppdC5zdG9yZTMy
KAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKHJlY292ZXJ5
LmNvbnN0YW50KCkudGFnKCkpLAotICAgICAgICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5jb2Rl
ZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0Y2ggKyBpbmRleCktPmFzQml0cy50YWcpOwotICAgICAg
ICAgICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVz
dGVkSW1tMzIocmVjb3ZlcnkuY29uc3RhbnQoKS5wYXlsb2FkKCkpLAotICAgICAgICAgICAgICAg
ICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0Y2ggKyBpbmRleCkt
PmFzQml0cy5wYXlsb2FkKTsKKyAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHJlY292ZXJ5LmNv
bnN0YW50KCksIHNjcmF0Y2ggKyBpbmRleCwgSlNSSW5mbzo6anNSZWdUMTApOwogI2VuZGlmCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNjM5LDEzICs2MTUsOSBAQCB2b2lkIE9T
UkV4aXQ6OmNvbXBpbGVFeGl0KENDYWxsSGVscGVycyYgaml0LCBWTSYgdm0sIGNvbnN0IE9TUkV4
aXQmIGV4aXQsIGNvbnN0CiAjZWxzZQogICAgICAgICAgICAgaml0LmxvYWQzMigKICAgICAgICAg
ICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IocmVjb3ZlcnkudmlydHVhbFJlZ2lz
dGVyKCkpLAotICAgICAgICAgICAgICAgIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgICAgIGpp
dC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkludDMyVGFnKSwKLSAgICAgICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29k
ZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNoICsgaW5kZXgpLT5hc0JpdHMudGFnKTsKLSAgICAg
ICAgICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIEdQUkluZm86OnJlZ1QwLAotICAg
ICAgICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0
Y2ggKyBpbmRleCktPmFzQml0cy5wYXlsb2FkKTsKKyAgICAgICAgICAgICAgICBKU1JJbmZvOjpq
c1JlZ1QxMC5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgaml0Lm1vdmUoQXNzZW1ibHlIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpLCBKU1JJbmZvOjpqc1JlZ1QxMC50
YWdHUFIoKSk7CisgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpqc1JlZ1QxMCwg
c2NyYXRjaCArIGluZGV4KTsKICNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTY1OSwx
MyArNjMxLDkgQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxlRXhpdChDQ2FsbEhlbHBlcnMmIGppdCwg
Vk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdAogICAgICAgICBjYXNlIEJvb2xlYW5E
aXNwbGFjZWRJbkpTU3RhY2s6CiAgICAgICAgICAgICBqaXQubG9hZDMyKAogICAgICAgICAgICAg
ICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihyZWNvdmVyeS52aXJ0dWFsUmVnaXN0ZXIo
KSksCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAgaml0LnN0
b3JlMzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6Qm9vbGVhblRhZyksCi0gICAgICAgICAgICAgICAgJmJpdHdpc2VfY2FzdDxFbmNvZGVk
VmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4KS0+YXNCaXRzLnRhZyk7Ci0gICAgICAg
ICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMCwKLSAgICAg
ICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNo
ICsgaW5kZXgpLT5hc0JpdHMucGF5bG9hZCk7CisgICAgICAgICAgICAgICAgSlNSSW5mbzo6anNS
ZWdUMTAucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVscGVy
czo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkJvb2xlYW5UYWcpLCBKU1JJbmZvOjpqc1JlZ1QxMC50
YWdHUFIoKSk7CisgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpqc1JlZ1QxMCwg
c2NyYXRjaCArIGluZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgVW5i
b3hlZENlbGxJbkdQUjoKQEAgLTY3NywxMyArNjQ1LDkgQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxl
RXhpdChDQ2FsbEhlbHBlcnMmIGppdCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBjb25z
dAogICAgICAgICBjYXNlIENlbGxEaXNwbGFjZWRJbkpTU3RhY2s6CiAgICAgICAgICAgICBqaXQu
bG9hZDMyKAogICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihyZWNv
dmVyeS52aXJ0dWFsUmVnaXN0ZXIoKSksCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDAp
OwotICAgICAgICAgICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCi0gICAgICAgICAgICAgICAgJmJp
dHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4KS0+YXNC
aXRzLnRhZyk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBHUFJJ
bmZvOjpyZWdUMCwKLSAgICAgICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURl
c2NyaXB0b3IqPihzY3JhdGNoICsgaW5kZXgpLT5hc0JpdHMucGF5bG9hZCk7CisgICAgICAgICAg
ICAgICAgSlNSSW5mbzo6anNSZWdUMTAucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgIGppdC5t
b3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBKU1JJ
bmZvOjpqc1JlZ1QxMC50YWdHUFIoKSk7CisgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJ
bmZvOjpqc1JlZ1QxMCwgc2NyYXRjaCArIGluZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwogI2Vu
ZGlmCiAKQEAgLTg0OCwxOCArODEyLDggQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxlRXhpdChDQ2Fs
bEhlbHBlcnMmIGppdCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdAogICAgICAg
ICAgICAgYnJlYWs7CiAjZWxzZSAvLyBub3QgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgY2FzZSBJ
blBhaXI6Ci0gICAgICAgICAgICBqaXQubG9hZDMyKAotICAgICAgICAgICAgICAgICZiaXR3aXNl
X2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0Y2ggKyBpbmRleCktPmFzQml0cy50
YWcsCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAgaml0Lmxv
YWQzMigKLSAgICAgICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0
b3IqPihzY3JhdGNoICsgaW5kZXgpLT5hc0JpdHMucGF5bG9hZCwKLSAgICAgICAgICAgICAgICBH
UFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAg
ICBHUFJJbmZvOjpyZWdUMCwKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnRhZ0Zv
cihvcGVyYW5kKSk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBH
UFJJbmZvOjpyZWdUMSwKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRG
b3Iob3BlcmFuZCkpOworICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShzY3JhdGNoICsgaW5kZXgs
IEpTUkluZm86OmpzUmVnVDEwKTsKKyAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86
OmpzUmVnVDEwLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3Iob3BlcmFuZCkpOwogICAgICAg
ICAgICAgYnJlYWs7CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggZTYx
Zjg5NGJlMTA4Y2NiZmExMmRiMjA4OTI5ZWNkZTJjM2RmMGYyNC4uMmQyZjhhMDYxYzhmM2I5MDVm
Y2Y1MTIwM2IyMmI4NTEyNTNjNjRmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC02NCwxMCArNjQsMTAgQEAgYm9v
bCBTcGVjdWxhdGl2ZUpJVDo6ZmlsbEpTVmFsdWUoRWRnZSBlZGdlLCBHUFJSZWcmIHRhZ0dQUiwg
R1BSUmVnJiBwYXlsb2FkR1BSLAogCiAgICAgc3dpdGNoIChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkp
IHsKICAgICBjYXNlIERhdGFGb3JtYXROb25lOiB7CisgICAgICAgIHBheWxvYWRHUFIgPSBhbGxv
Y2F0ZSgpOworICAgICAgICB0YWdHUFIgPSBhbGxvY2F0ZSgpOwogCiAgICAgICAgIGlmIChlZGdl
LT5oYXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICB0YWdHUFIgPSBhbGxvY2F0ZSgpOwotICAg
ICAgICAgICAgcGF5bG9hZEdQUiA9IGFsbG9jYXRlKCk7CiAgICAgICAgICAgICBKU1ZhbHVlIHZh
bHVlID0gZWRnZS0+YXNKU1ZhbHVlKCk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTMyKHZh
bHVlLnRhZygpKSwgdGFnR1BSKTsKICAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWUu
cGF5bG9hZCgpKSwgcGF5bG9hZEdQUik7CkBAIC03NywyNiArNzcsMjYgQEAgYm9vbCBTcGVjdWxh
dGl2ZUpJVDo6ZmlsbEpTVmFsdWUoRWRnZSBlZGdlLCBHUFJSZWcmIHRhZ0dQUiwgR1BSUmVnJiBw
YXlsb2FkR1BSLAogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgRGF0YUZvcm1hdCBzcGls
bEZvcm1hdCA9IGluZm8uc3BpbGxGb3JtYXQoKTsKICAgICAgICAgICAgIEFTU0VSVChzcGlsbEZv
cm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSAmJiBzcGlsbEZvcm1hdCAhPSBEYXRhRm9ybWF0U3RvcmFn
ZSk7Ci0gICAgICAgICAgICB0YWdHUFIgPSBhbGxvY2F0ZSgpOwotICAgICAgICAgICAgcGF5bG9h
ZEdQUiA9IGFsbG9jYXRlKCk7CiAgICAgICAgICAgICBzd2l0Y2ggKHNwaWxsRm9ybWF0KSB7CiAg
ICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRJbnQzMjoKICAgICAgICAgICAgICAgICBtX2ppdC5t
b3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHRhZ0dQUik7CisgICAgICAgICAg
ICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3Rl
ciksIHBheWxvYWRHUFIpOwogICAgICAgICAgICAgICAgIHNwaWxsRm9ybWF0ID0gRGF0YUZvcm1h
dEpTSW50MzI7IC8vIFRoaXMgd2lsbCBiZSB1c2VkIGFzIHRoZSBuZXcgcmVnaXN0ZXIgZm9ybWF0
LgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0Q2Vs
bDoKICAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwgdGFnR1BSKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IodmlydHVhbFJlZ2lzdGVyKSwgcGF5bG9hZEdQUik7CiAgICAgICAgICAgICAg
ICAgc3BpbGxGb3JtYXQgPSBEYXRhRm9ybWF0SlNDZWxsOyAvLyBUaGlzIHdpbGwgYmUgdXNlZCBh
cyB0aGUgbmV3IHJlZ2lzdGVyIGZvcm1hdC4KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46CiAgICAgICAgICAgICAgICAgbV9qaXQubW92
ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVhblRhZyksIHRhZ0dQUik7CisgICAgICAgICAg
ICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3Rl
ciksIHBheWxvYWRHUFIpOwogICAgICAgICAgICAgICAgIHNwaWxsRm9ybWF0ID0gRGF0YUZvcm1h
dEpTQm9vbGVhbjsgLy8gVGhpcyB3aWxsIGJlIHVzZWQgYXMgdGhlIG5ldyByZWdpc3RlciBmb3Jt
YXQuCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6dGFnRm9yKHZpcnR1YWxSZWdpc3Rl
ciksIHRhZ0dQUik7CisgICAgICAgICAgICAgICAgbV9qaXQubG9hZFZhbHVlKEpJVENvbXBpbGVy
OjphZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3RlciksIEpTVmFsdWVSZWdzIHsgdGFnR1BSLCBwYXls
b2FkR1BSIH0pOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3Rl
ciksIHBheWxvYWRHUFIpOwogICAgICAgICAgICAgbV9ncHJzLnJldGFpbih0YWdHUFIsIHZpcnR1
YWxSZWdpc3RlciwgU3BpbGxPcmRlclNwaWxsZWQpOwogICAgICAgICAgICAgbV9ncHJzLnJldGFp
bihwYXlsb2FkR1BSLCB2aXJ0dWFsUmVnaXN0ZXIsIFNwaWxsT3JkZXJTcGlsbGVkKTsKICAgICAg
ICAgICAgIGluZm8uZmlsbEpTVmFsdWUoKm1fc3RyZWFtLCB0YWdHUFIsIHBheWxvYWRHUFIsIHNw
aWxsRm9ybWF0ID09IERhdGFGb3JtYXRKU0RvdWJsZSA/IERhdGFGb3JtYXRKUyA6IHNwaWxsRm9y
bWF0KTsKQEAgLTY4OCwxMyArNjg4LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxs
KE5vZGUqIG5vZGUpCiAKICAgICAgICAgLy8gTm93IHNldCB1cCB0aGUgInRoaXMiIGFyZ3VtZW50
LgogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB0aGlzQXJndW1lbnQodGhpcywgbm9kZS0+Y2hpbGQy
KCkpOwotICAgICAgICBHUFJSZWcgdGhpc0FyZ3VtZW50VGFnR1BSID0gdGhpc0FyZ3VtZW50LnRh
Z0dQUigpOwotICAgICAgICBHUFJSZWcgdGhpc0FyZ3VtZW50UGF5bG9hZEdQUiA9IHRoaXNBcmd1
bWVudC5wYXlsb2FkR1BSKCk7CiAgICAgICAgIHRoaXNBcmd1bWVudC51c2UoKTsKICAgICAgICAg
Ci0gICAgICAgIG1faml0LnN0b3JlMzIodGhpc0FyZ3VtZW50VGFnR1BSLCBKSVRDb21waWxlcjo6
Y2FsbGVlQXJndW1lbnRUYWdTbG90KDApKTsKLSAgICAgICAgbV9qaXQuc3RvcmUzMih0aGlzQXJn
dW1lbnRQYXlsb2FkR1BSLCBKSVRDb21waWxlcjo6Y2FsbGVlQXJndW1lbnRQYXlsb2FkU2xvdCgw
KSk7Ci0gICAgfSBlbHNlIHsgICAgICAgIAorICAgICAgICBtX2ppdC5zdG9yZVZhbHVlKHRoaXNB
cmd1bWVudC5qc1ZhbHVlUmVncygpLCBKSVRDb21waWxlcjo6Y2FsbGVlQXJndW1lbnRTbG90KDAp
KTsKKyAgICB9IGVsc2UgewogICAgICAgICAvLyBUaGUgY2FsbCBpbnN0cnVjdGlvbidzIGZpcnN0
IGNoaWxkIGlzIGVpdGhlciB0aGUgZnVuY3Rpb24gKG5vcm1hbCBjYWxsKSBvciB0aGUKICAgICAg
ICAgLy8gcmVjZWl2ZXIgKG1ldGhvZCBjYWxsKS4gc3Vic2VxdWVudCBjaGlsZHJlbiBhcmUgdGhl
IGFyZ3VtZW50cy4KICAgICAgICAgbnVtUGFzc2VkQXJncyA9IG5vZGUtPm51bUNoaWxkcmVuKCkg
LSAxOwpAQCAtNzUwLDEyICs3NDcsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChO
b2RlKiBub2RlKQogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bVBhc3Nl
ZEFyZ3M7IGkrKykgewogICAgICAgICAgICAgICAgIEVkZ2UgYXJnRWRnZSA9IG1faml0LmdyYXBo
KCkubV92YXJBcmdDaGlsZHJlbltub2RlLT5maXJzdENoaWxkKCkgKyAxICsgaV07CiAgICAgICAg
ICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYXJnKHRoaXMsIGFyZ0VkZ2UpOwotICAgICAgICAgICAg
ICAgIEdQUlJlZyBhcmdUYWdHUFIgPSBhcmcudGFnR1BSKCk7Ci0gICAgICAgICAgICAgICAgR1BS
UmVnIGFyZ1BheWxvYWRHUFIgPSBhcmcucGF5bG9hZEdQUigpOwogICAgICAgICAgICAgICAgIHVz
ZShhcmdFZGdlKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIo
YXJnVGFnR1BSLCBtX2ppdC5jYWxsZWVBcmd1bWVudFRhZ1Nsb3QoaSkpOwotICAgICAgICAgICAg
ICAgIG1faml0LnN0b3JlMzIoYXJnUGF5bG9hZEdQUiwgbV9qaXQuY2FsbGVlQXJndW1lbnRQYXls
b2FkU2xvdChpKSk7CisKKyAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZVZhbHVlKGFyZy5qc1Zh
bHVlUmVncygpLCBtX2ppdC5jYWxsZWVBcmd1bWVudFNsb3QoaSkpOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1QYXNzZWRBcmdz
OyBpIDwgbnVtQWxsb2NhdGVkQXJnczsgKytpKQpAQCAtNzY4LDggKzc2Miw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUpCiAgICAgICAgIGNhbGxlZVRhZ0dQUiA9
IGNhbGxlZS50YWdHUFIoKTsKICAgICAgICAgY2FsbGVlUGF5bG9hZEdQUiA9IGNhbGxlZS5wYXls
b2FkR1BSKCk7CiAgICAgICAgIHVzZShjYWxsZWVFZGdlKTsKLSAgICAgICAgbV9qaXQuc3RvcmUz
MihjYWxsZWVQYXlsb2FkR1BSLCBtX2ppdC5jYWxsZWVGcmFtZVBheWxvYWRTbG90KENhbGxGcmFt
ZVNsb3Q6OmNhbGxlZSkpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKGNhbGxlZVRhZ0dQUiwgbV9q
aXQuY2FsbGVlRnJhbWVUYWdTbG90KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpOworICAgICAgICBt
X2ppdC5zdG9yZVZhbHVlKGNhbGxlZS5qc1ZhbHVlUmVncygpLCBtX2ppdC5jYWxsZWVGcmFtZVNs
b3QoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSk7CiAKICAgICAgICAgaWYgKCFpc1RhaWwpCiAgICAg
ICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwpAQCAtODI3LDggKzgyMCw3IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUpCiAgICAgICAgIAogICAgICAgICAvLyBUaGlz
IGlzIHRoZSBwYXJ0IHdoZXJlIHdlIG1lYW50IHRvIG1ha2UgYSBub3JtYWwgY2FsbC4gT29wcy4K
ICAgICAgICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0zMihyZXF1aXJlZEJ5dGVzKSwgSklUQ29t
cGlsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICAgICAgbV9qaXQubG9hZDMyKEpJVENv
bXBpbGVyOjpjYWxsZWVGcmFtZVNsb3QoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKS53aXRoT2Zmc2V0
KFBheWxvYWRPZmZzZXQpLCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgIG1faml0LmxvYWQzMihK
SVRDb21waWxlcjo6Y2FsbGVlRnJhbWVTbG90KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkud2l0aE9m
ZnNldChUYWdPZmZzZXQpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgICAgIG1faml0LmxvYWRWYWx1
ZShKSVRDb21waWxlcjo6Y2FsbGVlRnJhbWVTbG90KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSksIEpT
VmFsdWVSZWdzIHsgR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86OnJlZ1QwIH0pOwogICAgICAgICBt
X2ppdC5lbWl0VmlydHVhbENhbGwodm0oKSwgZ2xvYmFsT2JqZWN0LCBpbmZvKTsKICAgICAgICAg
CiAgICAgICAgIGRvbmUubGluaygmbV9qaXQpOwpAQCAtMTkwNiwxOCArMTg5OCwxMiBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVk
TGFtYmRhPHN0ZDo6dHVwbGU8SgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBBU1NFUlQo
Zm9ybWF0ID09IERhdGFGb3JtYXRKUyk7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoCi0gICAg
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleCgKLSAgICAgICAgICAgICAgICAg
ICAgc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBU
YWdPZmZzZXQpLAotICAgICAgICAgICAgICAgIHJlc3VsdFJlZ3MudGFnR1BSKCkpOwotICAgICAg
ICAgICAgbV9qaXQubG9hZDMyKAotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoCi0gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgUGF5bG9hZE9mZnNldCksCi0gICAgICAgICAgICAgICAg
cmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgbV9qaXQubG9hZFZhbHVlKAor
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSwKKyAgICAgICAgICAgICAgICBy
ZXN1bHRSZWdzKTsKICAgICAgICAgICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRz
U2FuZUNoYWluKCkpIHsKICAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBub3RIb2xl
ID0gbV9qaXQuYnJhbmNoSWZOb3RFbXB0eShyZXN1bHRSZWdzLnRhZ0dQUigpKTsKLSAgICAgICAg
ICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpVbmRlZmluZWRUYWcpLCBy
ZXN1bHRSZWdzLnRhZ0dQUigpKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJ
bW0zMigwKSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgIG1faml0
Lm1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmluZWQoKSwgcmVzdWx0UmVncyk7CiAgICAgICAgICAg
ICAgICAgbm90SG9sZS5saW5rKCZtX2ppdCk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCkBAIC0yMjA1LDkgKzIxOTEsOCBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNhc2UgRmx1c2hlZEpT
VmFsdWU6IHsKICAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CiAgICAgICAg
ICAgICBHUFJUZW1wb3JhcnkgdGFnKHRoaXMpOwotICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJ
VENvbXBpbGVyOjpwYXlsb2FkRm9yKG5vZGUtPm1hY2hpbmVMb2NhbCgpKSwgcmVzdWx0Lmdwcigp
KTsKLSAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6dGFnRm9yKG5vZGUtPm1h
Y2hpbmVMb2NhbCgpKSwgdGFnLmdwcigpKTsKLSAgICAgICAgICAgIAorICAgICAgICAgICAgbV9q
aXQubG9hZFZhbHVlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKG5vZGUtPm1hY2hpbmVMb2NhbCgp
KSwgSlNWYWx1ZVJlZ3MgeyB0YWcuZ3ByKCksIHJlc3VsdC5ncHIoKSB9KTsKKwogICAgICAgICAg
ICAgLy8gTGlrZSBqc1ZhbHVlUmVzdWx0LCBidXQgZG9uJ3QgdXNlQ2hpbGRyZW4gLSBvdXIgY2hp
bGRyZW4gYXJlIHBoaSBub2RlcywKICAgICAgICAgICAgIC8vIGFuZCBkb24ndCByZXByZXNlbnQg
dmFsdWVzIHdpdGhpbiB0aGlzIGRhdGFmbG93IHdpdGggdmlydHVhbCByZWdpc3RlcnMuCiAgICAg
ICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gbm9kZS0+dmlydHVhbFJl
Z2lzdGVyKCk7CkBAIC0yMjc1LDggKzIyNjAsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBGbHVzaGVkSlNWYWx1
ZTogewogICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQx
KCkpOwotICAgICAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZS5wYXlsb2FkR1BSKCksIEpJVENv
bXBpbGVyOjpwYXlsb2FkRm9yKG5vZGUtPm1hY2hpbmVMb2NhbCgpKSk7Ci0gICAgICAgICAgICBt
X2ppdC5zdG9yZTMyKHZhbHVlLnRhZ0dQUigpLCBKSVRDb21waWxlcjo6dGFnRm9yKG5vZGUtPm1h
Y2hpbmVMb2NhbCgpKSk7CisgICAgICAgICAgICBtX2ppdC5zdG9yZVZhbHVlKHZhbHVlLmpzVmFs
dWVSZWdzKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKG5vZGUtPm1hY2hpbmVMb2NhbCgpKSk7
CiAgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKICAgICAgICAgICAgIHJlY29yZFNldExvY2Fs
KGRhdGFGb3JtYXRGb3Iobm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCktPmZsdXNoRm9ybWF0KCkp
KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjc4NywxMiArMjc3MSw5IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgICAgICB0ZW1wRlBSKTsK
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dDYXNlID0gbV9qaXQuYnJhbmNo
SWZOYU4odGVtcEZQUik7CiAgICAgICAgICAgICBKU1ZhbHVlIG5hbiA9IEpTVmFsdWUoSlNWYWx1
ZTo6RW5jb2RlQXNEb3VibGUsIFBOYU4pOwotICAgICAgICAgICAgbV9qaXQuc3RvcmUzMigKLSAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG5hbi51LmFzQml0cy50
YWcpLAotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQ
UiwgdmFsdWVQYXlsb2FkR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09G
RlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSAgICAgICAgICAgIG1faml0LnN0b3Jl
MzIoCi0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihuYW4udS5h
c0JpdHMucGF5bG9hZCksCi0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlR1BSLCB2YWx1ZVBheWxvYWRHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0
LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpKTsKKyAgICAgICAg
ICAgIG1faml0LnN0b3JlVHJ1c3RlZFZhbHVlKAorICAgICAgICAgICAgICAgIG5hbiwKKyAgICAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIHZhbHVlUGF5
bG9hZEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpKTsKICAgICAgICAgICAgIGJveERv
dWJsZSh0ZW1wRlBSLCB2YWx1ZVRhZ0dQUiwgdmFsdWVQYXlsb2FkR1BSKTsKIAogICAgICAgICAg
ICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCkBAIC0yODIxLDkgKzI4MDIsOCBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBtX2ppdC5zdWIzMihU
cnVzdGVkSW1tMzIoMSksIHN0b3JhZ2VMZW5ndGhHUFIpOwogICAgICAgICAKICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dDYXNlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3Nl
bWJsZXI6OkFib3ZlT3JFcXVhbCwgc3RvcmFnZUxlbmd0aEdQUiwgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3Moc3RvcmFnZUdQUiwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JMZW5ndGhPZmZzZXQoKSkpOwot
ICAgICAgICAKLSAgICAgICAgICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QmFzZUlu
ZGV4KHN0b3JhZ2VHUFIsIHN0b3JhZ2VMZW5ndGhHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0Vp
Z2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFs
dWUsIHUuYXNCaXRzLnRhZykpLCB2YWx1ZVRhZ0dQUik7Ci0gICAgICAgICAgICBtX2ppdC5sb2Fk
MzIoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBzdG9yYWdlTGVuZ3RoR1BS
LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQo
KSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSksIHZhbHVlUGF5
bG9hZEdQUik7CisKKyAgICAgICAgICAgIG1faml0LmxvYWRWYWx1ZShNYWNyb0Fzc2VtYmxlcjo6
QmFzZUluZGV4KHN0b3JhZ2VHUFIsIHN0b3JhZ2VMZW5ndGhHUFIsIE1hY3JvQXNzZW1ibGVyOjpU
aW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSwgSlNWYWx1ZVJlZ3MgeyB2
YWx1ZVRhZ0dQUiwgdmFsdWVQYXlsb2FkR1BSIH0pOwogICAgICAgICAKICAgICAgICAgICAgIG1f
aml0LnN0b3JlMzIoc3RvcmFnZUxlbmd0aEdQUiwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3Rv
cmFnZUdQUiwgQXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZzZXQoKSkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCA3ZWY1MWNkODFkMDkyY2EzZWY3
NGRjMjMyODljNjU2ZjNmOTQzNTI2Li5lNDNiNjNiMjMxYTBkZDYxYjZlYmU2ZmEyNDFkMDE3ZGFj
OTMwYjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgK
QEAgLTE4NCw4ICsxODQsOCBAQCBwdWJsaWM6CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAg
c3RvcmU2NChyZWdzLmdwcigpLCBhZGRyZXNzKTsKICNlbHNlCi0gICAgICAgIHN0b3JlMzIocmVn
cy5wYXlsb2FkR1BSKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oYml0d2lzZV9jYXN0PHVpbnRwdHJf
dD4oYWRkcmVzcykgKyBQYXlsb2FkT2Zmc2V0KSk7Ci0gICAgICAgIHN0b3JlMzIocmVncy50YWdH
UFIoKSwgYml0d2lzZV9jYXN0PHZvaWQqPihiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihhZGRyZXNz
KSArIFRhZ09mZnNldCkpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KCFQYXlsb2FkT2Zmc2V0ICYm
IFRhZ09mZnNldCA9PSA0LCAiQXNzdW1lcyBsaXR0bGUtZW5kaWFuIHN5c3RlbSIpOworICAgICAg
ICBzdG9yZVBhaXIzMihyZWdzLnBheWxvYWRHUFIoKSwgcmVncy50YWdHUFIoKSwgYWRkcmVzcyk7
CiAjZW5kaWYKICAgICB9CiAKQEAgLTI2MiwxMyArMjYyLDI3IEBAIHB1YmxpYzoKICNlbmRpZgog
ICAgIH0KIAotICAgIHZvaWQgc3RvcmVWYWx1ZShKU1ZhbHVlIHZhbHVlLCBBZGRyZXNzIGFkZHJl
c3MpCisgICAgdm9pZCBzdG9yZVZhbHVlKEpTVmFsdWUgdmFsdWUsIEFkZHJlc3MgYWRkcmVzcywg
SlNWYWx1ZVJlZ3MgdG1wSlNSKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBV
TlVTRURfUEFSQU0odG1wSlNSKTsKICAgICAgICAgc3RvcmU2NChJbW02NChKU1ZhbHVlOjplbmNv
ZGUodmFsdWUpKSwgYWRkcmVzcyk7CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICBz
dG9yZTMyKEltbTMyKHZhbHVlLnRhZygpKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkp
OwotICAgICAgICBzdG9yZTMyKEltbTMyKHZhbHVlLnBheWxvYWQoKSksIGFkZHJlc3Mud2l0aE9m
ZnNldChQYXlsb2FkT2Zmc2V0KSk7CisgICAgICAgIC8vIENhbiBpbXBsZW1lbnQgdGhpcyB3aXRo
b3V0IHRoZSB0bXBKU1IsIGJ1dCB1c2luZyBpdCB5aWVsZHMgZGVuc2VyIGNvZGUuCisgICAgICAg
IG1vdmVWYWx1ZSh2YWx1ZSwgdG1wSlNSKTsKKyAgICAgICAgc3RvcmVWYWx1ZSh0bXBKU1IsIGFk
ZHJlc3MpOworI2VuZGlmCisgICAgfQorCisgICAgdm9pZCBzdG9yZVZhbHVlKEpTVmFsdWUgdmFs
dWUsIHZvaWQqIGFkZHJlc3MsIEpTVmFsdWVSZWdzIHRtcEpTUikKKyAgICB7CisjaWYgVVNFKEpT
VkFMVUU2NCkKKyAgICAgICAgVU5VU0VEX1BBUkFNKHRtcEpTUik7CisgICAgICAgIHN0b3JlNjQo
SW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSksIGFkZHJlc3MpOworI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgLy8gQ2FuIGltcGxlbWVudCB0aGlzIHdpdGhvdXQgdGhlIHRtcEpT
UiwgYnV0IHVzaW5nIGl0IHlpZWxkcyBkZW5zZXIgY29kZS4KKyAgICAgICAgbW92ZVZhbHVlKHZh
bHVlLCB0bXBKU1IpOworICAgICAgICBzdG9yZVZhbHVlKHRtcEpTUiwgYWRkcmVzcyk7CiAjZW5k
aWYKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4
IDBiM2I1ZmNkOTNhYjEyZWQ0NDA2MmUyZWJlZTY4Yzg2ZjRkZmYyZWQuLmM4MDEzOWI3OWI1ZTNh
MWUzNThiY2RlZGYzYTI3MDJlN2UxN2U3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tb3YoY29u
c3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIGlmIChzcmMuaXNDb25z
dGFudCgpKSB7CiAgICAgICAgIGlmIChtX3Byb2ZpbGVkQ29kZUJsb2NrLT5pc0NvbnN0YW50T3du
ZWRCeVVubGlua2VkQ29kZUJsb2NrKHNyYykpIHsKLSAgICAgICAgICAgIHN0b3JlVmFsdWUobV91
bmxpbmtlZENvZGVCbG9jay0+Z2V0Q29uc3RhbnQoc3JjKSwgYWRkcmVzc0Zvcihkc3QpKTsKKyAg
ICAgICAgICAgIHN0b3JlVmFsdWUobV91bmxpbmtlZENvZGVCbG9jay0+Z2V0Q29uc3RhbnQoc3Jj
KSwgYWRkcmVzc0Zvcihkc3QpLCBqc1JlZ1QxMCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBsb2FkQ29kZUJsb2NrQ29uc3RhbnQoc3JjLCBqc1JlZ1QxMCk7CiAgICAgICAgICAgICBz
dG9yZVZhbHVlKGpzUmVnVDEwLCBhZGRyZXNzRm9yKGRzdCkpOwo=
</data>
<flag name="commit-queue"
          id="472941"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447343</attachid>
            <date>2021-12-16 04:36:44 -0800</date>
            <delta_ts>2021-12-16 04:38:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234387-20211216123643.patch</filename>
            <type>text/plain</type>
            <size>27545</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZWRjMmM5MDlhNjFjNDlkMjk4MmJkM2JkOTUyOTNlM2NmNDI5Y2ZjLi5jYjE0ZTg0MjQ2NmFhMDUy
YWE1OWQ0ZjUzNTdhNTY1OTBmOGQ4NGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0xNiAgR2V6YSBMb3JlICA8Z2xvcmVAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbSlNDXVtBUk12N10gTWlub3IgY29kZSBzaXplIGltcHJvdmVtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0Mzg3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBmZXcgbWV3IGNvZGUg
c2l6ZSBpbXByb3ZlbWVudHMgdG8gQVJNdjcvVGh1bWItMgorCisgICAgICAgIC0gVXNlIGxkcmQv
c3RyZCBpbiBtb2RlIHBsYWNlcyAodmlhIEFzc2VtYmx5SGVscGVyczpsb2FkVmFsdWUKKyAgICAg
ICAgYW5kIEFzc2VtYmx5SGVscGVyczo6c3RvcmVWYWx1ZSkKKworICAgICAgICAtIFVzZSBCSUMg
aW1tZWRpYXRlIGluc3RydWN0aW9uIGluc3RlYWQgb2YgQU5EIHdoZXJlIGFwcHJvcHJpYXRlCisK
KyAgICAgICAgLSBVc2UgYSAyLWJ5dGUgQUREUyBpbnN0ZWFkIG9mIGEgNC1ieXRlIENNTiB3aGVu
IHBvc3NpYmxlLiBUaGlzCisgICAgICAgIGFwcGxpZXMgdmVyeSBvZnRlbiBhcyBpdCBoYW5kbGVz
IHRlc3RpbmcgSlNWYWx1ZSB0YWdzLgorCisgICAgICAgIC0gVXNlIGFkZHJlc3NUZW1wUmVnaXN0
ZXIgaW4gYnJhbmNoMzIKKworICAgICAgIE92ZXJhbGwgc2F2aW5nIG9mIGFib3V0IDMuNSUgY29k
ZSBzaXplIG9uIEpldFN0cmVhbTIsIGFjY29yZGluZyB0bworICAgICAgIC0tZHVtcExpbmtCdWZm
ZXJTdGF0cy4KKworICAgICAgICAqIGFzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oOgorICAgICAg
ICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6YmljKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjphbmQz
Mik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN0b3JlUGFpcjMyKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29tcGFyZTMyQW5kU2V0RmxhZ3MpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpicmFuY2gzMik6CisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
Ymxlck1JUFM6OnN0b3JlUGFpcjMyKToKKyAgICAgICAgKiBieXRlY29kZS9BY2Nlc3NDYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKToKKyAgICAgICAgKiBk
ZmcvREZHT1NSRXhpdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdDo6Y29tcGlsZUV4
aXQpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbEpTVmFsdWUpOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAg
ICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpzdG9yZVZhbHVlKToKKyAgICAgICAgKiBqaXQvSklU
T3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9tb3YpOgorCiAyMDIxLTEy
LTAyICBHZXphIExvcmUgIDxnbG9yZUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0NdIEdlbmVy
YXRlZCBjb2RlIHNpemUgcmVkdWN0aW9ucyBmb3IgYmFzZWxpbmUgSklUIChhbGwgYXJjaGl0ZWN0
dXJlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdB
c3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJs
ZXIuaAppbmRleCA3NzY0ZGYxZTE5ZTRiYTc2NjVlODgxZjJiM2Y4ZDRkMWE1ZWVjZmVmLi40MzVi
NjY4YTcwMWRjYzY0MTg0NjM1Y2IyN2IyZGVjOGUyN2JhMTY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCkBAIC02MDksNiArNjA5LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgT1BfQl9UNGEgICAgICAgID0gMHhGMDAwLAogICAgICAgICBP
UF9BTkRfaW1tX1QxICAgPSAweEYwMDAsCiAgICAgICAgIE9QX1RTVF9pbW0gICAgICA9IDB4RjAx
MCwKKyAgICAgICAgT1BfQklDX2ltbV9UMSAgID0gMHhGMDIwLAogICAgICAgICBPUF9PUlJfaW1t
X1QxICAgPSAweEYwNDAsCiAgICAgICAgIE9QX01PVl9pbW1fVDIgICA9IDB4RjA0MCwKICAgICAg
ICAgT1BfTVZOX2ltbSAgICAgID0gMHhGMDYwLApAQCAtOTMyLDYgKzkzMywxNCBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBtX2Zvcm1hdHRlci5sYWJlbCgpOwogICAgIH0KIAorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBiaWMoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBybiwgQVJNVGh1bWJJ
bW1lZGlhdGUgaW1tKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFCYWRSZWcocmQpKTsKKyAgICAg
ICAgQVNTRVJUKCFCYWRSZWcocm4pKTsKKyAgICAgICAgQVNTRVJUKGltbS5pc0VuY29kZWRJbW0o
KSk7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDVpNkltbTRSZWc0RW5jb2RlZEltbShP
UF9CSUNfaW1tX1QxLCBybiwgcmQsIGltbSk7CisgICAgfQorCiAgICAgdm9pZCBia3B0KHVpbnQ4
X3QgaW1tID0gMCkKICAgICB7CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZVdvcmRPcDhJbW04KE9Q
X0JLUFQsIGltbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDI5ZGZmYzhiMzU2NjBmZWRiMTI3MmEzMzgyYTUy
MWY1YWIyMTExYjUuLmNkMTI5ZjZkOWE4N2UwNjlhZWNmYTQyNGFmZTcwZjBmMTE1Y2QxNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5oCkBAIC0yNzksMTIgKzI3OSwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBhbmQzMihU
cnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsK
ICAgICAgICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1h
a2VFbmNvZGVkSW1tKGltbS5tX3ZhbHVlKTsKLSAgICAgICAgaWYgKGFybUltbS5pc1ZhbGlkKCkp
CisgICAgICAgIGlmIChhcm1JbW0uaXNWYWxpZCgpKSB7CiAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5BUk1fYW5kKGRlc3QsIHNyYywgYXJtSW1tKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICBtb3ZlKGltbSwgZGF0YVRlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5B
Uk1fYW5kKGRlc3QsIHNyYywgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KKworICAgICAgICBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVu
Y29kZWRJbW0ofmltbS5tX3ZhbHVlKTsKKyAgICAgICAgaWYgKGFybUltbS5pc1ZhbGlkKCkpIHsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJpYyhkZXN0LCBzcmMsIGFybUltbSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBtb3ZlKGltbSwgZGF0YVRlbXBSZWdp
c3Rlcik7CisgICAgICAgIG1fYXNzZW1ibGVyLkFSTV9hbmQoZGVzdCwgc3JjLCBkYXRhVGVtcFJl
Z2lzdGVyKTsKICAgICB9CiAKICAgICB2b2lkIGFuZDMyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3Rl
cklEIGRlc3QpCkBAIC0xMDI2LDYgKzEwMzMsMTIgQEAgcHVibGljOgogICAgICAgICBzdG9yZVBh
aXIzMihzcmMxLCBzcmMyLCBBZGRyZXNzKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0
KSk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lz
dGVySUQgc3JjMiwgY29uc3Qgdm9pZCogYWRkcmVzcykKKyAgICB7CisgICAgICAgIG1vdmUoVHJ1
c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgIHN0b3Jl
UGFpcjMyKHNyYzEsIHNyYzIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgIH0KKwogICAgIC8v
IFBvc3NpYmx5IGNsb2JiZXJzIHNyYywgYnV0IG5vdCBvbiB0aGlzIGFyY2hpdGVjdHVyZS4KICAg
ICB2b2lkIG1vdmVEb3VibGVUb0ludHMoRlBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0
MSwgUmVnaXN0ZXJJRCBkZXN0MikKICAgICB7CkBAIC0xNTg3LDE1ICsxNjAwLDI1IEBAIHByaXZh
dGU6CiAgICAgewogICAgICAgICBpbnQzMl90IGltbSA9IHJpZ2h0Lm1fdmFsdWU7CiAgICAgICAg
IEFSTVRodW1iSW1tZWRpYXRlIGFybUltbSA9IEFSTVRodW1iSW1tZWRpYXRlOjptYWtlRW5jb2Rl
ZEltbShpbW0pOwotICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkKKyAgICAgICAgaWYgKGFy
bUltbS5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcChsZWZ0LCBhcm1J
bW0pOwotICAgICAgICBlbHNlIGlmICgoYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VF
bmNvZGVkSW1tKC1pbW0pKS5pc1ZhbGlkKCkpCi0gICAgICAgICAgICBtX2Fzc2VtYmxlci5jbW4o
bGVmdCwgYXJtSW1tKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBSZWdpc3RlcklEIHNj
cmF0Y2ggPSBiZXN0VGVtcFJlZ2lzdGVyKGxlZnQpOwotICAgICAgICAgICAgbW92ZShUcnVzdGVk
SW1tMzIoaW1tKSwgc2NyYXRjaCk7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5jbXAobGVmdCwg
c2NyYXRjaCk7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKworICAgICAgICBhcm1J
bW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJbW0oLWltbSk7CisgICAgICAgIGlm
IChhcm1JbW0uaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBpZiAoIShsZWZ0ICYgOCkgJiYgYXJt
SW1tLmlzVUludDMoKSAmJiAobGVmdCAhPSBhZGRyZXNzVGVtcFJlZ2lzdGVyKSkgeworICAgICAg
ICAgICAgICAgIC8vIFRoaXMgaXMgY29tbW9uIGVub3VnaCB0byB3YXJyYW50IGEgc3BlY2lhbCBj
YXNlIHRvIHNhdmUgMiBieXRlcworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZF9TKGFk
ZHJlc3NUZW1wUmVnaXN0ZXIsIGxlZnQsIGFybUltbSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21uKGxlZnQsIGFybUlt
bSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBSZWdpc3RlcklE
IHNjcmF0Y2ggPSBiZXN0VGVtcFJlZ2lzdGVyKGxlZnQpOworICAgICAgICBtb3ZlKFRydXN0ZWRJ
bW0zMihpbW0pLCBzY3JhdGNoKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuY21wKGxlZnQsIHNjcmF0
Y2gpOwogICAgIH0KIAogICAgIHZvaWQgYWRkMzJJbXBsKFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJl
c3MgYWRkcmVzcywgYm9vbCB1cGRhdGVGbGFncyA9IGZhbHNlKQpAQCAtMTY3OSwxMSArMTcwMiwx
MSBAQCBwdWJsaWM6CiAgICAgSnVtcCBicmFuY2gzMihSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQs
IFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0ZXJJRCByaWdodCkKICAgICB7CiAgICAgICAgIGlmIChs
ZWZ0ID09IEFSTVJlZ2lzdGVyczo6c3ApIHsKLSAgICAgICAgICAgIG1vdmUobGVmdCwgZGF0YVRl
bXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5jbXAoZGF0YVRlbXBSZWdpc3Rl
ciwgcmlnaHQpOworICAgICAgICAgICAgbW92ZShsZWZ0LCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsK
KyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcChhZGRyZXNzVGVtcFJlZ2lzdGVyLCByaWdodCk7
CiAgICAgICAgIH0gZWxzZSBpZiAocmlnaHQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgewotICAgICAg
ICAgICAgbW92ZShyaWdodCwgZGF0YVRlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5jbXAobGVmdCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtb3ZlKHJpZ2h0
LCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcChsZWZ0
LCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX2Fz
c2VtYmxlci5jbXAobGVmdCwgcmlnaHQpOwogICAgICAgICByZXR1cm4gSnVtcChtYWtlQnJhbmNo
KGNvbmQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyTUlQUy5oCmluZGV4IDRhMzA5NTNiZjNmZjBlNjlhNzE2Y2ZhYmYxYTM0ZTlkMGE5
NTQyYjkuLmE0MDhmYzU4OTllZGM5YmZhYWEzNjQ5Y2YzYWU5ZWY1ZTFhMTE0MDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMu
aApAQCAtMTY2NSw2ICsxNjY1LDEyIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihzcmMyLCBh
ZGRyZXNzLndpdGhPZmZzZXQoNCkpOwogICAgIH0KIAorICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVn
aXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCisgICAg
eworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGFkZHJUZW1wUmVnaXN0ZXIp
OworICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBzcmMyLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAg
ICB9CisKICAgICAvLyBGbG9hdGluZy1wb2ludCBvcGVyYXRpb25zOgogCiAgICAgc3RhdGljIGJv
b2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9BY2Nlc3NDYXNlLmNwcAppbmRleCAxMzI1MGVjNDg0MmY3OTAzNTk5Y2I1ODdmZDhiZTI4
NDhjNjc2YTgzLi40ODljMWRjZGQ4YzliMjc1NmZlNmUzMWY2NTQ4N2YxMzAwZjY1N2I1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCkBAIC0xOTIw
LDEzICsxOTIwLDE1IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmVy
YXRpb25TdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KHN0b3JhZ2VHUFIsIG9mZnNldFJlbGF0aXZlVG9CYXNlKG1fb2Zmc2V0KSksIGxvYWRlZFZhbHVl
R1BSKTsKICNlbHNlCiAgICAgICAgICAgICBpZiAobV90eXBlID09IExvYWQgfHwgbV90eXBlID09
IEdldEdldHRlcikgeworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoCisgICAgICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdG9yYWdlR1BSLCBvZmZzZXRSZWxhdGl2
ZVRvQmFzZShtX29mZnNldCkpLAorICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyB7IHZh
bHVlUmVncy50YWdHUFIoKSwgbG9hZGVkVmFsdWVHUFIgfSk7CisKKyAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgaml0LmxvYWQzMigKLSAgICAgICAgICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKHN0b3JhZ2VHUFIsIG9mZnNldFJlbGF0aXZlVG9CYXNlKG1fb2Zm
c2V0KSArIFRhZ09mZnNldCksCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlUmVncy50YWdHUFIo
KSk7CisgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdG9yYWdlR1BS
LCBvZmZzZXRSZWxhdGl2ZVRvQmFzZShtX29mZnNldCkgKyBQYXlsb2FkT2Zmc2V0KSwKKyAgICAg
ICAgICAgICAgICAgICAgbG9hZGVkVmFsdWVHUFIpOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaml0LmxvYWQzMigKLSAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3Rv
cmFnZUdQUiwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2UobV9vZmZzZXQpICsgUGF5bG9hZE9mZnNldCks
Ci0gICAgICAgICAgICAgICAgbG9hZGVkVmFsdWVHUFIpOwogI2VuZGlmCiAgICAgICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKaW5kZXggM2ZhYTdmN2ZhYWU4
MzlhY2FiODhmM2U2ODExZmFkYzAyMDM2MTExNC4uMjliNWUxNTcyMDlmNzI4NDAzYWUzMTg0MmMy
ZWI0ZTcyNzc2MzdhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3Bw
CkBAIC01MjMsMTIgKzUyMyw3IEBAIHZvaWQgT1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0NhbGxIZWxw
ZXJzJiBqaXQsIFZNJiB2bSwgY29uc3QgT1NSRXhpdCYgZXhpdCwgY29uc3QKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgSW5QYWlyOgotICAgICAgICAgICAg
aml0LnN0b3JlMzIoCi0gICAgICAgICAgICAgICAgcmVjb3ZlcnkudGFnR1BSKCksCi0gICAgICAg
ICAgICAgICAgJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCAr
IGluZGV4KS0+YXNCaXRzLnRhZyk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAg
ICAgICAgICByZWNvdmVyeS5wYXlsb2FkR1BSKCksCi0gICAgICAgICAgICAgICAgJmJpdHdpc2Vf
Y2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4KS0+YXNCaXRzLnBh
eWxvYWQpOworICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUocmVjb3ZlcnkuanNWYWx1ZVJlZ3Mo
KSwgc2NyYXRjaCArIGluZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAKQEAgLTU3
OSwyNCArNTc0LDEwIEBAIHZvaWQgT1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0NhbGxIZWxwZXJzJiBq
aXQsIFZNJiB2bSwgY29uc3QgT1NSRXhpdCYgZXhpdCwgY29uc3QKICNpZiBVU0UoSlNWQUxVRTY0
KQogICAgICAgICBjYXNlIENlbGxEaXNwbGFjZWRJbkpTU3RhY2s6CiAgICAgICAgIGNhc2UgQm9v
bGVhbkRpc3BsYWNlZEluSlNTdGFjazoKLSAgICAgICAgICAgIGppdC5sb2FkNjQoQXNzZW1ibHlI
ZWxwZXJzOjphZGRyZXNzRm9yKHJlY292ZXJ5LnZpcnR1YWxSZWdpc3RlcigpKSwgR1BSSW5mbzo6
cmVnVDApOwotICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIHNjcmF0Y2gg
KyBpbmRleCk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbHNlCi0gICAgICAgICAgICBqaXQubG9h
ZDMyKAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKHJlY292ZXJ5LnZp
cnR1YWxSZWdpc3RlcigpKSwKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMCk7Ci0gICAg
ICAgICAgICBqaXQubG9hZDMyKAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6cGF5
bG9hZEZvcihyZWNvdmVyeS52aXJ0dWFsUmVnaXN0ZXIoKSksCi0gICAgICAgICAgICAgICAgR1BS
SW5mbzo6cmVnVDEpOwotICAgICAgICAgICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICAgICAg
R1BSSW5mbzo6cmVnVDAsCi0gICAgICAgICAgICAgICAgJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFs
dWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4KS0+YXNCaXRzLnRhZyk7Ci0gICAgICAgICAg
ICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMSwKLSAgICAgICAg
ICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNoICsg
aW5kZXgpLT5hc0JpdHMucGF5bG9hZCk7Ci0gICAgICAgICAgICBicmVhazsKICNlbmRpZgorICAg
ICAgICAgICAgaml0LmxvYWRWYWx1ZShBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IocmVjb3Zl
cnkudmlydHVhbFJlZ2lzdGVyKCkpLCBKU1JJbmZvOjpqc1JlZ1QxMCk7CisgICAgICAgICAgICBq
aXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpqc1JlZ1QxMCwgc2NyYXRjaCArIGluZGV4KTsKKyAgICAg
ICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgQ29uc3RhbnQ6IHsKICNpZiBVU0UoSlNWQUxV
RTY0KQpAQCAtNjA3LDEyICs1ODgsNyBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBpbGVFeGl0KENDYWxs
SGVscGVycyYgaml0LCBWTSYgdm0sIGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0CiAgICAgICAg
ICAgICB9CiAjZWxzZSAvLyBub3QgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIFVOVVNFRF9W
QVJJQUJMRShmaXJzdFRtcFRvUmVzdG9yZUVhcmx5KTsKLSAgICAgICAgICAgIGppdC5zdG9yZTMy
KAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKHJlY292ZXJ5
LmNvbnN0YW50KCkudGFnKCkpLAotICAgICAgICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5jb2Rl
ZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0Y2ggKyBpbmRleCktPmFzQml0cy50YWcpOwotICAgICAg
ICAgICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVz
dGVkSW1tMzIocmVjb3ZlcnkuY29uc3RhbnQoKS5wYXlsb2FkKCkpLAotICAgICAgICAgICAgICAg
ICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0Y2ggKyBpbmRleCkt
PmFzQml0cy5wYXlsb2FkKTsKKyAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHJlY292ZXJ5LmNv
bnN0YW50KCksIHNjcmF0Y2ggKyBpbmRleCwgSlNSSW5mbzo6anNSZWdUMTApOwogI2VuZGlmCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNjM5LDEzICs2MTUsOSBAQCB2b2lkIE9T
UkV4aXQ6OmNvbXBpbGVFeGl0KENDYWxsSGVscGVycyYgaml0LCBWTSYgdm0sIGNvbnN0IE9TUkV4
aXQmIGV4aXQsIGNvbnN0CiAjZWxzZQogICAgICAgICAgICAgaml0LmxvYWQzMigKICAgICAgICAg
ICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IocmVjb3ZlcnkudmlydHVhbFJlZ2lz
dGVyKCkpLAotICAgICAgICAgICAgICAgIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgICAgIGpp
dC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkludDMyVGFnKSwKLSAgICAgICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29k
ZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNoICsgaW5kZXgpLT5hc0JpdHMudGFnKTsKLSAgICAg
ICAgICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIEdQUkluZm86OnJlZ1QwLAotICAg
ICAgICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0
Y2ggKyBpbmRleCktPmFzQml0cy5wYXlsb2FkKTsKKyAgICAgICAgICAgICAgICBKU1JJbmZvOjpq
c1JlZ1QxMC5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgaml0Lm1vdmUoQXNzZW1ibHlIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpLCBKU1JJbmZvOjpqc1JlZ1QxMC50
YWdHUFIoKSk7CisgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpqc1JlZ1QxMCwg
c2NyYXRjaCArIGluZGV4KTsKICNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTY1OSwx
MyArNjMxLDkgQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxlRXhpdChDQ2FsbEhlbHBlcnMmIGppdCwg
Vk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdAogICAgICAgICBjYXNlIEJvb2xlYW5E
aXNwbGFjZWRJbkpTU3RhY2s6CiAgICAgICAgICAgICBqaXQubG9hZDMyKAogICAgICAgICAgICAg
ICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihyZWNvdmVyeS52aXJ0dWFsUmVnaXN0ZXIo
KSksCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAgaml0LnN0
b3JlMzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6Qm9vbGVhblRhZyksCi0gICAgICAgICAgICAgICAgJmJpdHdpc2VfY2FzdDxFbmNvZGVk
VmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4KS0+YXNCaXRzLnRhZyk7Ci0gICAgICAg
ICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMCwKLSAgICAg
ICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNo
ICsgaW5kZXgpLT5hc0JpdHMucGF5bG9hZCk7CisgICAgICAgICAgICAgICAgSlNSSW5mbzo6anNS
ZWdUMTAucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVscGVy
czo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkJvb2xlYW5UYWcpLCBKU1JJbmZvOjpqc1JlZ1QxMC50
YWdHUFIoKSk7CisgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpqc1JlZ1QxMCwg
c2NyYXRjaCArIGluZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgVW5i
b3hlZENlbGxJbkdQUjoKQEAgLTY3NywxMyArNjQ1LDkgQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxl
RXhpdChDQ2FsbEhlbHBlcnMmIGppdCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBjb25z
dAogICAgICAgICBjYXNlIENlbGxEaXNwbGFjZWRJbkpTU3RhY2s6CiAgICAgICAgICAgICBqaXQu
bG9hZDMyKAogICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihyZWNv
dmVyeS52aXJ0dWFsUmVnaXN0ZXIoKSksCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDAp
OwotICAgICAgICAgICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCi0gICAgICAgICAgICAgICAgJmJp
dHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4KS0+YXNC
aXRzLnRhZyk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBHUFJJ
bmZvOjpyZWdUMCwKLSAgICAgICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURl
c2NyaXB0b3IqPihzY3JhdGNoICsgaW5kZXgpLT5hc0JpdHMucGF5bG9hZCk7CisgICAgICAgICAg
ICAgICAgSlNSSW5mbzo6anNSZWdUMTAucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgIGppdC5t
b3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBKU1JJ
bmZvOjpqc1JlZ1QxMC50YWdHUFIoKSk7CisgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJ
bmZvOjpqc1JlZ1QxMCwgc2NyYXRjaCArIGluZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwogI2Vu
ZGlmCiAKQEAgLTg0OCwxOCArODEyLDggQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxlRXhpdChDQ2Fs
bEhlbHBlcnMmIGppdCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdAogICAgICAg
ICAgICAgYnJlYWs7CiAjZWxzZSAvLyBub3QgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgY2FzZSBJ
blBhaXI6Ci0gICAgICAgICAgICBqaXQubG9hZDMyKAotICAgICAgICAgICAgICAgICZiaXR3aXNl
X2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0Y2ggKyBpbmRleCktPmFzQml0cy50
YWcsCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAgaml0Lmxv
YWQzMigKLSAgICAgICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0
b3IqPihzY3JhdGNoICsgaW5kZXgpLT5hc0JpdHMucGF5bG9hZCwKLSAgICAgICAgICAgICAgICBH
UFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAg
ICBHUFJJbmZvOjpyZWdUMCwKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnRhZ0Zv
cihvcGVyYW5kKSk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBH
UFJJbmZvOjpyZWdUMSwKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRG
b3Iob3BlcmFuZCkpOworICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShzY3JhdGNoICsgaW5kZXgs
IEpTUkluZm86OmpzUmVnVDEwKTsKKyAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86
OmpzUmVnVDEwLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3Iob3BlcmFuZCkpOwogICAgICAg
ICAgICAgYnJlYWs7CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggZTYx
Zjg5NGJlMTA4Y2NiZmExMmRiMjA4OTI5ZWNkZTJjM2RmMGYyNC4uMmQyZjhhMDYxYzhmM2I5MDVm
Y2Y1MTIwM2IyMmI4NTEyNTNjNjRmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC02NCwxMCArNjQsMTAgQEAgYm9v
bCBTcGVjdWxhdGl2ZUpJVDo6ZmlsbEpTVmFsdWUoRWRnZSBlZGdlLCBHUFJSZWcmIHRhZ0dQUiwg
R1BSUmVnJiBwYXlsb2FkR1BSLAogCiAgICAgc3dpdGNoIChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkp
IHsKICAgICBjYXNlIERhdGFGb3JtYXROb25lOiB7CisgICAgICAgIHBheWxvYWRHUFIgPSBhbGxv
Y2F0ZSgpOworICAgICAgICB0YWdHUFIgPSBhbGxvY2F0ZSgpOwogCiAgICAgICAgIGlmIChlZGdl
LT5oYXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICB0YWdHUFIgPSBhbGxvY2F0ZSgpOwotICAg
ICAgICAgICAgcGF5bG9hZEdQUiA9IGFsbG9jYXRlKCk7CiAgICAgICAgICAgICBKU1ZhbHVlIHZh
bHVlID0gZWRnZS0+YXNKU1ZhbHVlKCk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTMyKHZh
bHVlLnRhZygpKSwgdGFnR1BSKTsKICAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIodmFsdWUu
cGF5bG9hZCgpKSwgcGF5bG9hZEdQUik7CkBAIC03NywyNiArNzcsMjYgQEAgYm9vbCBTcGVjdWxh
dGl2ZUpJVDo6ZmlsbEpTVmFsdWUoRWRnZSBlZGdlLCBHUFJSZWcmIHRhZ0dQUiwgR1BSUmVnJiBw
YXlsb2FkR1BSLAogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgRGF0YUZvcm1hdCBzcGls
bEZvcm1hdCA9IGluZm8uc3BpbGxGb3JtYXQoKTsKICAgICAgICAgICAgIEFTU0VSVChzcGlsbEZv
cm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSAmJiBzcGlsbEZvcm1hdCAhPSBEYXRhRm9ybWF0U3RvcmFn
ZSk7Ci0gICAgICAgICAgICB0YWdHUFIgPSBhbGxvY2F0ZSgpOwotICAgICAgICAgICAgcGF5bG9h
ZEdQUiA9IGFsbG9jYXRlKCk7CiAgICAgICAgICAgICBzd2l0Y2ggKHNwaWxsRm9ybWF0KSB7CiAg
ICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRJbnQzMjoKICAgICAgICAgICAgICAgICBtX2ppdC5t
b3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHRhZ0dQUik7CisgICAgICAgICAg
ICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3Rl
ciksIHBheWxvYWRHUFIpOwogICAgICAgICAgICAgICAgIHNwaWxsRm9ybWF0ID0gRGF0YUZvcm1h
dEpTSW50MzI7IC8vIFRoaXMgd2lsbCBiZSB1c2VkIGFzIHRoZSBuZXcgcmVnaXN0ZXIgZm9ybWF0
LgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0Q2Vs
bDoKICAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwgdGFnR1BSKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IodmlydHVhbFJlZ2lzdGVyKSwgcGF5bG9hZEdQUik7CiAgICAgICAgICAgICAg
ICAgc3BpbGxGb3JtYXQgPSBEYXRhRm9ybWF0SlNDZWxsOyAvLyBUaGlzIHdpbGwgYmUgdXNlZCBh
cyB0aGUgbmV3IHJlZ2lzdGVyIGZvcm1hdC4KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46CiAgICAgICAgICAgICAgICAgbV9qaXQubW92
ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVhblRhZyksIHRhZ0dQUik7CisgICAgICAgICAg
ICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3Rl
ciksIHBheWxvYWRHUFIpOwogICAgICAgICAgICAgICAgIHNwaWxsRm9ybWF0ID0gRGF0YUZvcm1h
dEpTQm9vbGVhbjsgLy8gVGhpcyB3aWxsIGJlIHVzZWQgYXMgdGhlIG5ldyByZWdpc3RlciBmb3Jt
YXQuCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6dGFnRm9yKHZpcnR1YWxSZWdpc3Rl
ciksIHRhZ0dQUik7CisgICAgICAgICAgICAgICAgbV9qaXQubG9hZFZhbHVlKEpJVENvbXBpbGVy
OjphZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3RlciksIEpTVmFsdWVSZWdzIHsgdGFnR1BSLCBwYXls
b2FkR1BSIH0pOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3Rl
ciksIHBheWxvYWRHUFIpOwogICAgICAgICAgICAgbV9ncHJzLnJldGFpbih0YWdHUFIsIHZpcnR1
YWxSZWdpc3RlciwgU3BpbGxPcmRlclNwaWxsZWQpOwogICAgICAgICAgICAgbV9ncHJzLnJldGFp
bihwYXlsb2FkR1BSLCB2aXJ0dWFsUmVnaXN0ZXIsIFNwaWxsT3JkZXJTcGlsbGVkKTsKICAgICAg
ICAgICAgIGluZm8uZmlsbEpTVmFsdWUoKm1fc3RyZWFtLCB0YWdHUFIsIHBheWxvYWRHUFIsIHNw
aWxsRm9ybWF0ID09IERhdGFGb3JtYXRKU0RvdWJsZSA/IERhdGFGb3JtYXRKUyA6IHNwaWxsRm9y
bWF0KTsKQEAgLTY4OCwxMyArNjg4LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxs
KE5vZGUqIG5vZGUpCiAKICAgICAgICAgLy8gTm93IHNldCB1cCB0aGUgInRoaXMiIGFyZ3VtZW50
LgogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB0aGlzQXJndW1lbnQodGhpcywgbm9kZS0+Y2hpbGQy
KCkpOwotICAgICAgICBHUFJSZWcgdGhpc0FyZ3VtZW50VGFnR1BSID0gdGhpc0FyZ3VtZW50LnRh
Z0dQUigpOwotICAgICAgICBHUFJSZWcgdGhpc0FyZ3VtZW50UGF5bG9hZEdQUiA9IHRoaXNBcmd1
bWVudC5wYXlsb2FkR1BSKCk7CiAgICAgICAgIHRoaXNBcmd1bWVudC51c2UoKTsKICAgICAgICAg
Ci0gICAgICAgIG1faml0LnN0b3JlMzIodGhpc0FyZ3VtZW50VGFnR1BSLCBKSVRDb21waWxlcjo6
Y2FsbGVlQXJndW1lbnRUYWdTbG90KDApKTsKLSAgICAgICAgbV9qaXQuc3RvcmUzMih0aGlzQXJn
dW1lbnRQYXlsb2FkR1BSLCBKSVRDb21waWxlcjo6Y2FsbGVlQXJndW1lbnRQYXlsb2FkU2xvdCgw
KSk7Ci0gICAgfSBlbHNlIHsgICAgICAgIAorICAgICAgICBtX2ppdC5zdG9yZVZhbHVlKHRoaXNB
cmd1bWVudC5qc1ZhbHVlUmVncygpLCBKSVRDb21waWxlcjo6Y2FsbGVlQXJndW1lbnRTbG90KDAp
KTsKKyAgICB9IGVsc2UgewogICAgICAgICAvLyBUaGUgY2FsbCBpbnN0cnVjdGlvbidzIGZpcnN0
IGNoaWxkIGlzIGVpdGhlciB0aGUgZnVuY3Rpb24gKG5vcm1hbCBjYWxsKSBvciB0aGUKICAgICAg
ICAgLy8gcmVjZWl2ZXIgKG1ldGhvZCBjYWxsKS4gc3Vic2VxdWVudCBjaGlsZHJlbiBhcmUgdGhl
IGFyZ3VtZW50cy4KICAgICAgICAgbnVtUGFzc2VkQXJncyA9IG5vZGUtPm51bUNoaWxkcmVuKCkg
LSAxOwpAQCAtNzUwLDEyICs3NDcsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChO
b2RlKiBub2RlKQogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bVBhc3Nl
ZEFyZ3M7IGkrKykgewogICAgICAgICAgICAgICAgIEVkZ2UgYXJnRWRnZSA9IG1faml0LmdyYXBo
KCkubV92YXJBcmdDaGlsZHJlbltub2RlLT5maXJzdENoaWxkKCkgKyAxICsgaV07CiAgICAgICAg
ICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYXJnKHRoaXMsIGFyZ0VkZ2UpOwotICAgICAgICAgICAg
ICAgIEdQUlJlZyBhcmdUYWdHUFIgPSBhcmcudGFnR1BSKCk7Ci0gICAgICAgICAgICAgICAgR1BS
UmVnIGFyZ1BheWxvYWRHUFIgPSBhcmcucGF5bG9hZEdQUigpOwogICAgICAgICAgICAgICAgIHVz
ZShhcmdFZGdlKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIo
YXJnVGFnR1BSLCBtX2ppdC5jYWxsZWVBcmd1bWVudFRhZ1Nsb3QoaSkpOwotICAgICAgICAgICAg
ICAgIG1faml0LnN0b3JlMzIoYXJnUGF5bG9hZEdQUiwgbV9qaXQuY2FsbGVlQXJndW1lbnRQYXls
b2FkU2xvdChpKSk7CisKKyAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZVZhbHVlKGFyZy5qc1Zh
bHVlUmVncygpLCBtX2ppdC5jYWxsZWVBcmd1bWVudFNsb3QoaSkpOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1QYXNzZWRBcmdz
OyBpIDwgbnVtQWxsb2NhdGVkQXJnczsgKytpKQpAQCAtNzY4LDggKzc2Miw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUpCiAgICAgICAgIGNhbGxlZVRhZ0dQUiA9
IGNhbGxlZS50YWdHUFIoKTsKICAgICAgICAgY2FsbGVlUGF5bG9hZEdQUiA9IGNhbGxlZS5wYXls
b2FkR1BSKCk7CiAgICAgICAgIHVzZShjYWxsZWVFZGdlKTsKLSAgICAgICAgbV9qaXQuc3RvcmUz
MihjYWxsZWVQYXlsb2FkR1BSLCBtX2ppdC5jYWxsZWVGcmFtZVBheWxvYWRTbG90KENhbGxGcmFt
ZVNsb3Q6OmNhbGxlZSkpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKGNhbGxlZVRhZ0dQUiwgbV9q
aXQuY2FsbGVlRnJhbWVUYWdTbG90KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpOworICAgICAgICBt
X2ppdC5zdG9yZVZhbHVlKGNhbGxlZS5qc1ZhbHVlUmVncygpLCBtX2ppdC5jYWxsZWVGcmFtZVNs
b3QoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSk7CiAKICAgICAgICAgaWYgKCFpc1RhaWwpCiAgICAg
ICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwpAQCAtODI3LDggKzgyMCw3IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUpCiAgICAgICAgIAogICAgICAgICAvLyBUaGlz
IGlzIHRoZSBwYXJ0IHdoZXJlIHdlIG1lYW50IHRvIG1ha2UgYSBub3JtYWwgY2FsbC4gT29wcy4K
ICAgICAgICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0zMihyZXF1aXJlZEJ5dGVzKSwgSklUQ29t
cGlsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICAgICAgbV9qaXQubG9hZDMyKEpJVENv
bXBpbGVyOjpjYWxsZWVGcmFtZVNsb3QoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKS53aXRoT2Zmc2V0
KFBheWxvYWRPZmZzZXQpLCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgIG1faml0LmxvYWQzMihK
SVRDb21waWxlcjo6Y2FsbGVlRnJhbWVTbG90KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkud2l0aE9m
ZnNldChUYWdPZmZzZXQpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgICAgIG1faml0LmxvYWRWYWx1
ZShKSVRDb21waWxlcjo6Y2FsbGVlRnJhbWVTbG90KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSksIEpT
VmFsdWVSZWdzIHsgR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86OnJlZ1QwIH0pOwogICAgICAgICBt
X2ppdC5lbWl0VmlydHVhbENhbGwodm0oKSwgZ2xvYmFsT2JqZWN0LCBpbmZvKTsKICAgICAgICAg
CiAgICAgICAgIGRvbmUubGluaygmbV9qaXQpOwpAQCAtMTkwNiwxOCArMTg5OCwxMiBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVk
TGFtYmRhPHN0ZDo6dHVwbGU8SgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBBU1NFUlQo
Zm9ybWF0ID09IERhdGFGb3JtYXRKUyk7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoCi0gICAg
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleCgKLSAgICAgICAgICAgICAgICAg
ICAgc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBU
YWdPZmZzZXQpLAotICAgICAgICAgICAgICAgIHJlc3VsdFJlZ3MudGFnR1BSKCkpOwotICAgICAg
ICAgICAgbV9qaXQubG9hZDMyKAotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoCi0gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgUGF5bG9hZE9mZnNldCksCi0gICAgICAgICAgICAgICAg
cmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgbV9qaXQubG9hZFZhbHVlKAor
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSwKKyAgICAgICAgICAgICAgICBy
ZXN1bHRSZWdzKTsKICAgICAgICAgICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRz
U2FuZUNoYWluKCkpIHsKICAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBub3RIb2xl
ID0gbV9qaXQuYnJhbmNoSWZOb3RFbXB0eShyZXN1bHRSZWdzLnRhZ0dQUigpKTsKLSAgICAgICAg
ICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpVbmRlZmluZWRUYWcpLCBy
ZXN1bHRSZWdzLnRhZ0dQUigpKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJ
bW0zMigwKSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgIG1faml0
Lm1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmluZWQoKSwgcmVzdWx0UmVncyk7CiAgICAgICAgICAg
ICAgICAgbm90SG9sZS5saW5rKCZtX2ppdCk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCkBAIC0yMjA1LDkgKzIxOTEsOCBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNhc2UgRmx1c2hlZEpT
VmFsdWU6IHsKICAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CiAgICAgICAg
ICAgICBHUFJUZW1wb3JhcnkgdGFnKHRoaXMpOwotICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJ
VENvbXBpbGVyOjpwYXlsb2FkRm9yKG5vZGUtPm1hY2hpbmVMb2NhbCgpKSwgcmVzdWx0Lmdwcigp
KTsKLSAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6dGFnRm9yKG5vZGUtPm1h
Y2hpbmVMb2NhbCgpKSwgdGFnLmdwcigpKTsKLSAgICAgICAgICAgIAorICAgICAgICAgICAgbV9q
aXQubG9hZFZhbHVlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKG5vZGUtPm1hY2hpbmVMb2NhbCgp
KSwgSlNWYWx1ZVJlZ3MgeyB0YWcuZ3ByKCksIHJlc3VsdC5ncHIoKSB9KTsKKwogICAgICAgICAg
ICAgLy8gTGlrZSBqc1ZhbHVlUmVzdWx0LCBidXQgZG9uJ3QgdXNlQ2hpbGRyZW4gLSBvdXIgY2hp
bGRyZW4gYXJlIHBoaSBub2RlcywKICAgICAgICAgICAgIC8vIGFuZCBkb24ndCByZXByZXNlbnQg
dmFsdWVzIHdpdGhpbiB0aGlzIGRhdGFmbG93IHdpdGggdmlydHVhbCByZWdpc3RlcnMuCiAgICAg
ICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gbm9kZS0+dmlydHVhbFJl
Z2lzdGVyKCk7CkBAIC0yMjc1LDggKzIyNjAsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBGbHVzaGVkSlNWYWx1
ZTogewogICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQx
KCkpOwotICAgICAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZS5wYXlsb2FkR1BSKCksIEpJVENv
bXBpbGVyOjpwYXlsb2FkRm9yKG5vZGUtPm1hY2hpbmVMb2NhbCgpKSk7Ci0gICAgICAgICAgICBt
X2ppdC5zdG9yZTMyKHZhbHVlLnRhZ0dQUigpLCBKSVRDb21waWxlcjo6dGFnRm9yKG5vZGUtPm1h
Y2hpbmVMb2NhbCgpKSk7CisgICAgICAgICAgICBtX2ppdC5zdG9yZVZhbHVlKHZhbHVlLmpzVmFs
dWVSZWdzKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKG5vZGUtPm1hY2hpbmVMb2NhbCgpKSk7
CiAgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKICAgICAgICAgICAgIHJlY29yZFNldExvY2Fs
KGRhdGFGb3JtYXRGb3Iobm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCktPmZsdXNoRm9ybWF0KCkp
KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjc4NywxMiArMjc3MSw5IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgICAgICB0ZW1wRlBSKTsK
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dDYXNlID0gbV9qaXQuYnJhbmNo
SWZOYU4odGVtcEZQUik7CiAgICAgICAgICAgICBKU1ZhbHVlIG5hbiA9IEpTVmFsdWUoSlNWYWx1
ZTo6RW5jb2RlQXNEb3VibGUsIFBOYU4pOwotICAgICAgICAgICAgbV9qaXQuc3RvcmUzMigKLSAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG5hbi51LmFzQml0cy50
YWcpLAotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQ
UiwgdmFsdWVQYXlsb2FkR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09G
RlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSAgICAgICAgICAgIG1faml0LnN0b3Jl
MzIoCi0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihuYW4udS5h
c0JpdHMucGF5bG9hZCksCi0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlR1BSLCB2YWx1ZVBheWxvYWRHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0
LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpKTsKKyAgICAgICAg
ICAgIG1faml0LnN0b3JlVHJ1c3RlZFZhbHVlKAorICAgICAgICAgICAgICAgIG5hbiwKKyAgICAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIHZhbHVlUGF5
bG9hZEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpKTsKICAgICAgICAgICAgIGJveERv
dWJsZSh0ZW1wRlBSLCB2YWx1ZVRhZ0dQUiwgdmFsdWVQYXlsb2FkR1BSKTsKIAogICAgICAgICAg
ICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCkBAIC0yODIxLDkgKzI4MDIsOCBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBtX2ppdC5zdWIzMihU
cnVzdGVkSW1tMzIoMSksIHN0b3JhZ2VMZW5ndGhHUFIpOwogICAgICAgICAKICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dDYXNlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3Nl
bWJsZXI6OkFib3ZlT3JFcXVhbCwgc3RvcmFnZUxlbmd0aEdQUiwgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3Moc3RvcmFnZUdQUiwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JMZW5ndGhPZmZzZXQoKSkpOwot
ICAgICAgICAKLSAgICAgICAgICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QmFzZUlu
ZGV4KHN0b3JhZ2VHUFIsIHN0b3JhZ2VMZW5ndGhHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0Vp
Z2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFs
dWUsIHUuYXNCaXRzLnRhZykpLCB2YWx1ZVRhZ0dQUik7Ci0gICAgICAgICAgICBtX2ppdC5sb2Fk
MzIoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBzdG9yYWdlTGVuZ3RoR1BS
LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQo
KSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSksIHZhbHVlUGF5
bG9hZEdQUik7CisKKyAgICAgICAgICAgIG1faml0LmxvYWRWYWx1ZShNYWNyb0Fzc2VtYmxlcjo6
QmFzZUluZGV4KHN0b3JhZ2VHUFIsIHN0b3JhZ2VMZW5ndGhHUFIsIE1hY3JvQXNzZW1ibGVyOjpU
aW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSwgSlNWYWx1ZVJlZ3MgeyB2
YWx1ZVRhZ0dQUiwgdmFsdWVQYXlsb2FkR1BSIH0pOwogICAgICAgICAKICAgICAgICAgICAgIG1f
aml0LnN0b3JlMzIoc3RvcmFnZUxlbmd0aEdQUiwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3Rv
cmFnZUdQUiwgQXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZzZXQoKSkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCA3ZWY1MWNkODFkMDkyY2EzZWY3
NGRjMjMyODljNjU2ZjNmOTQzNTI2Li5mM2JjMjM2N2NmNzkxODkzYjU2ZWRiZmZhZjBlMTRlZWQw
ZDUxNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgK
QEAgLTE4NCw4ICsxODQsOCBAQCBwdWJsaWM6CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAg
c3RvcmU2NChyZWdzLmdwcigpLCBhZGRyZXNzKTsKICNlbHNlCi0gICAgICAgIHN0b3JlMzIocmVn
cy5wYXlsb2FkR1BSKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oYml0d2lzZV9jYXN0PHVpbnRwdHJf
dD4oYWRkcmVzcykgKyBQYXlsb2FkT2Zmc2V0KSk7Ci0gICAgICAgIHN0b3JlMzIocmVncy50YWdH
UFIoKSwgYml0d2lzZV9jYXN0PHZvaWQqPihiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihhZGRyZXNz
KSArIFRhZ09mZnNldCkpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KCFQYXlsb2FkT2Zmc2V0ICYm
IFRhZ09mZnNldCA9PSA0LCAiQXNzdW1lcyBsaXR0bGUtZW5kaWFuIHN5c3RlbSIpOworICAgICAg
ICBzdG9yZVBhaXIzMihyZWdzLnBheWxvYWRHUFIoKSwgcmVncy50YWdHUFIoKSwgYWRkcmVzcyk7
CiAjZW5kaWYKICAgICB9CiAKQEAgLTI2MiwxNiArMjYyLDI3IEBAIHB1YmxpYzoKICNlbmRpZgog
ICAgIH0KIAotICAgIHZvaWQgc3RvcmVWYWx1ZShKU1ZhbHVlIHZhbHVlLCBBZGRyZXNzIGFkZHJl
c3MpCisgICAgdm9pZCBzdG9yZVZhbHVlKEpTVmFsdWUgdmFsdWUsIEFkZHJlc3MgYWRkcmVzcywg
SlNWYWx1ZVJlZ3MgdG1wSlNSKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBV
TlVTRURfUEFSQU0odG1wSlNSKTsKICAgICAgICAgc3RvcmU2NChJbW02NChKU1ZhbHVlOjplbmNv
ZGUodmFsdWUpKSwgYWRkcmVzcyk7CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICBz
dG9yZTMyKEltbTMyKHZhbHVlLnRhZygpKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkp
OwotICAgICAgICBzdG9yZTMyKEltbTMyKHZhbHVlLnBheWxvYWQoKSksIGFkZHJlc3Mud2l0aE9m
ZnNldChQYXlsb2FkT2Zmc2V0KSk7CisgICAgICAgIC8vIENhbiBpbXBsZW1lbnQgdGhpcyB3aXRo
b3V0IHRoZSB0bXBKU1IsIGJ1dCB1c2luZyBpdCB5aWVsZHMgZGVuc2VyIGNvZGUuCisgICAgICAg
IG1vdmVWYWx1ZSh2YWx1ZSwgdG1wSlNSKTsKKyAgICAgICAgc3RvcmVWYWx1ZSh0bXBKU1IsIGFk
ZHJlc3MpOwogI2VuZGlmCiAgICAgfQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICB2b2lk
IHN0b3JlVmFsdWUoSlNWYWx1ZSB2YWx1ZSwgdm9pZCogYWRkcmVzcywgSlNWYWx1ZVJlZ3MgdG1w
SlNSKQorICAgIHsKKyAgICAgICAgLy8gQ2FuIGltcGxlbWVudCB0aGlzIHdpdGhvdXQgdGhlIHRt
cEpTUiwgYnV0IHVzaW5nIGl0IHlpZWxkcyBkZW5zZXIgY29kZS4KKyAgICAgICAgbW92ZVZhbHVl
KHZhbHVlLCB0bXBKU1IpOworICAgICAgICBzdG9yZVZhbHVlKHRtcEpTUiwgYWRkcmVzcyk7Cisg
ICAgfQorI2VuZGlmCisKICAgICB2b2lkIHN0b3JlVHJ1c3RlZFZhbHVlKEpTVmFsdWUgdmFsdWUs
IEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDBiM2I1ZmNkOTNhYjEyZWQ0NDA2MmUy
ZWJlZTY4Yzg2ZjRkZmYyZWQuLmM4MDEzOWI3OWI1ZTNhMWUzNThiY2RlZGYzYTI3MDJlN2UxN2U3
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtNTMsNyAr
NTMsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tb3YoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKIAogICAgIGlmIChzcmMuaXNDb25zdGFudCgpKSB7CiAgICAgICAgIGlmICht
X3Byb2ZpbGVkQ29kZUJsb2NrLT5pc0NvbnN0YW50T3duZWRCeVVubGlua2VkQ29kZUJsb2NrKHNy
YykpIHsKLSAgICAgICAgICAgIHN0b3JlVmFsdWUobV91bmxpbmtlZENvZGVCbG9jay0+Z2V0Q29u
c3RhbnQoc3JjKSwgYWRkcmVzc0Zvcihkc3QpKTsKKyAgICAgICAgICAgIHN0b3JlVmFsdWUobV91
bmxpbmtlZENvZGVCbG9jay0+Z2V0Q29uc3RhbnQoc3JjKSwgYWRkcmVzc0Zvcihkc3QpLCBqc1Jl
Z1QxMCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBsb2FkQ29kZUJsb2NrQ29uc3Rh
bnQoc3JjLCBqc1JlZ1QxMCk7CiAgICAgICAgICAgICBzdG9yZVZhbHVlKGpzUmVnVDEwLCBhZGRy
ZXNzRm9yKGRzdCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447344</attachid>
            <date>2021-12-16 04:38:29 -0800</date>
            <delta_ts>2022-02-10 16:37:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234387-20211216123827.patch</filename>
            <type>text/plain</type>
            <size>27547</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZWRjMmM5MDlhNjFjNDlkMjk4MmJkM2JkOTUyOTNlM2NmNDI5Y2ZjLi5iZjQ0M2Q0ZjhmYmJiYzFm
ZTg3ODRlMjQ4YWEyZjcyYmE5ZjIyMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0xNiAgR2V6YSBMb3JlICA8Z2xvcmVAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbSlNDXVtBUk12N10gTWlub3IgY29kZSBzaXplIGltcHJvdmVtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0Mzg3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBmZXcgbWV3IGNvZGUg
c2l6ZSBpbXByb3ZlbWVudHMgdG8gQVJNdjcvVGh1bWItMgorCisgICAgICAgIC0gVXNlIGxkcmQv
c3RyZCBpbiBtb2RlIHBsYWNlcyAodmlhIEFzc2VtYmx5SGVscGVyczpsb2FkVmFsdWUKKyAgICAg
ICAgYW5kIEFzc2VtYmx5SGVscGVyczo6c3RvcmVWYWx1ZSkKKworICAgICAgICAtIFVzZSBCSUMg
aW1tZWRpYXRlIGluc3RydWN0aW9uIGluc3RlYWQgb2YgQU5EIHdoZXJlIGFwcHJvcHJpYXRlCisK
KyAgICAgICAgLSBVc2UgYSAyLWJ5dGUgQUREUyBpbnN0ZWFkIG9mIGEgNC1ieXRlIENNTiB3aGVu
IHBvc3NpYmxlLiBUaGlzCisgICAgICAgIGFwcGxpZXMgdmVyeSBvZnRlbiBhcyBpdCBoYW5kbGVz
IHRlc3RpbmcgSlNWYWx1ZSB0YWdzLgorCisgICAgICAgIC0gVXNlIGFkZHJlc3NUZW1wUmVnaXN0
ZXIgaW4gYnJhbmNoMzIKKworICAgICAgICBPdmVyYWxsIHNhdmluZyBvZiBhYm91dCAzLjUlIGNv
ZGUgc2l6ZSBvbiBKZXRTdHJlYW0yLCBhY2NvcmRpbmcgdG8KKyAgICAgICAgLS1kdW1wTGlua0J1
ZmZlclN0YXRzLgorCisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CisgICAg
ICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjpiaWMpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmFu
ZDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3RvcmVQYWlyMzIpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpjb21wYXJlMzJBbmRTZXRGbGFncyk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmJyYW5jaDMyKToKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyTUlQUzo6c3RvcmVQYWlyMzIpOgorICAgICAgICAqIGJ5dGVjb2RlL0FjY2Vzc0Nhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxl
RXhpdCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZSk6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OnN0b3JlVmFsdWUpOgorICAgICAgICAqIGppdC9K
SVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX21vdik6CisKIDIwMjEt
MTItMDIgIEdlemEgTG9yZSAgPGdsb3JlQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0pTQ10gR2Vu
ZXJhdGVkIGNvZGUgc2l6ZSByZWR1Y3Rpb25zIGZvciBiYXNlbGluZSBKSVQgKGFsbCBhcmNoaXRl
Y3R1cmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12
N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2Vt
Ymxlci5oCmluZGV4IDc3NjRkZjFlMTllNGJhNzY2NWU4ODFmMmIzZjhkNGQxYTVlZWNmZWYuLjQz
NWI2NjhhNzAxZGNjNjQxODQ2MzVjYjI3YjJkZWM4ZTI3YmExNjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAgLTYwOSw2ICs2MDks
NyBAQCBwcml2YXRlOgogICAgICAgICBPUF9CX1Q0YSAgICAgICAgPSAweEYwMDAsCiAgICAgICAg
IE9QX0FORF9pbW1fVDEgICA9IDB4RjAwMCwKICAgICAgICAgT1BfVFNUX2ltbSAgICAgID0gMHhG
MDEwLAorICAgICAgICBPUF9CSUNfaW1tX1QxICAgPSAweEYwMjAsCiAgICAgICAgIE9QX09SUl9p
bW1fVDEgICA9IDB4RjA0MCwKICAgICAgICAgT1BfTU9WX2ltbV9UMiAgID0gMHhGMDQwLAogICAg
ICAgICBPUF9NVk5faW1tICAgICAgPSAweEYwNjAsCkBAIC05MzIsNiArOTMzLDE0IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIG1fZm9ybWF0dGVyLmxhYmVsKCk7CiAgICAgfQogCisgICAgQUxX
QVlTX0lOTElORSB2b2lkIGJpYyhSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBBUk1UaHVt
YkltbWVkaWF0ZSBpbW0pCisgICAgeworICAgICAgICBBU1NFUlQoIUJhZFJlZyhyZCkpOworICAg
ICAgICBBU1NFUlQoIUJhZFJlZyhybikpOworICAgICAgICBBU1NFUlQoaW1tLmlzRW5jb2RlZElt
bSgpKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wNWk2SW1tNFJlZzRFbmNvZGVkSW1t
KE9QX0JJQ19pbW1fVDEsIHJuLCByZCwgaW1tKTsKKyAgICB9CisKICAgICB2b2lkIGJrcHQodWlu
dDhfdCBpbW0gPSAwKQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIub25lV29yZE9wOEltbTgo
T1BfQktQVCwgaW1tKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKaW5kZXggMjlkZmZjOGIzNTY2MGZlZGIxMjcyYTMzODJh
NTIxZjVhYjIxMTFiNS4uY2QxMjlmNmQ5YTg3ZTA2OWFlY2ZhNDI0YWZlNzBmMGYxMTVjZDE0NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTXY3LmgKQEAgLTI3OSwxMiArMjc5LDE5IEBAIHB1YmxpYzoKICAgICB2b2lkIGFuZDMy
KFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6
bWFrZUVuY29kZWRJbW0oaW1tLm1fdmFsdWUpOwotICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQo
KSkKKyAgICAgICAgaWYgKGFybUltbS5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgIG1fYXNzZW1i
bGVyLkFSTV9hbmQoZGVzdCwgc3JjLCBhcm1JbW0pOwotICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgIG1vdmUoaW1tLCBkYXRhVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVy
LkFSTV9hbmQoZGVzdCwgc3JjLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQorCisgICAgICAgIGFybUltbSA9IEFSTVRodW1iSW1tZWRpYXRlOjptYWtl
RW5jb2RlZEltbSh+aW1tLm1fdmFsdWUpOworICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkg
eworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmljKGRlc3QsIHNyYywgYXJtSW1tKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG1vdmUoaW1tLCBkYXRhVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuQVJNX2FuZChkZXN0LCBzcmMsIGRhdGFUZW1w
UmVnaXN0ZXIpOwogICAgIH0KIAogICAgIHZvaWQgYW5kMzIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lz
dGVySUQgZGVzdCkKQEAgLTEwMjYsNiArMTAzMywxMiBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3Jl
UGFpcjMyKHNyYzEsIHNyYzIsIEFkZHJlc3MoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZz
ZXQpKTsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVn
aXN0ZXJJRCBzcmMyLCBjb25zdCB2b2lkKiBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbW92ZShU
cnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgc3Rv
cmVQYWlyMzIoc3JjMSwgc3JjMiwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgfQorCiAgICAg
Ly8gUG9zc2libHkgY2xvYmJlcnMgc3JjLCBidXQgbm90IG9uIHRoaXMgYXJjaGl0ZWN0dXJlLgog
ICAgIHZvaWQgbW92ZURvdWJsZVRvSW50cyhGUFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRl
c3QxLCBSZWdpc3RlcklEIGRlc3QyKQogICAgIHsKQEAgLTE1ODcsMTUgKzE2MDAsMjUgQEAgcHJp
dmF0ZToKICAgICB7CiAgICAgICAgIGludDMyX3QgaW1tID0gcmlnaHQubV92YWx1ZTsKICAgICAg
ICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VFbmNv
ZGVkSW1tKGltbSk7Ci0gICAgICAgIGlmIChhcm1JbW0uaXNWYWxpZCgpKQorICAgICAgICBpZiAo
YXJtSW1tLmlzVmFsaWQoKSkgewogICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21wKGxlZnQsIGFy
bUltbSk7Ci0gICAgICAgIGVsc2UgaWYgKChhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFr
ZUVuY29kZWRJbW0oLWltbSkpLmlzVmFsaWQoKSkKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNt
bihsZWZ0LCBhcm1JbW0pOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFJlZ2lzdGVySUQg
c2NyYXRjaCA9IGJlc3RUZW1wUmVnaXN0ZXIobGVmdCk7Ci0gICAgICAgICAgICBtb3ZlKFRydXN0
ZWRJbW0zMihpbW0pLCBzY3JhdGNoKTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcChsZWZ0
LCBzY3JhdGNoKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCisgICAgICAgIGFy
bUltbSA9IEFSTVRodW1iSW1tZWRpYXRlOjptYWtlRW5jb2RlZEltbSgtaW1tKTsKKyAgICAgICAg
aWYgKGFybUltbS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGlmICghKGxlZnQgJiA4KSAmJiBh
cm1JbW0uaXNVSW50MygpICYmIChsZWZ0ICE9IGFkZHJlc3NUZW1wUmVnaXN0ZXIpKSB7CisgICAg
ICAgICAgICAgICAgLy8gVGhpcyBpcyBjb21tb24gZW5vdWdoIHRvIHdhcnJhbnQgYSBzcGVjaWFs
IGNhc2UgdG8gc2F2ZSAyIGJ5dGVzCisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkX1Mo
YWRkcmVzc1RlbXBSZWdpc3RlciwgbGVmdCwgYXJtSW1tKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5jbW4obGVmdCwgYXJt
SW1tKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFJlZ2lzdGVy
SUQgc2NyYXRjaCA9IGJlc3RUZW1wUmVnaXN0ZXIobGVmdCk7CisgICAgICAgIG1vdmUoVHJ1c3Rl
ZEltbTMyKGltbSksIHNjcmF0Y2gpOworICAgICAgICBtX2Fzc2VtYmxlci5jbXAobGVmdCwgc2Ny
YXRjaCk7CiAgICAgfQogCiAgICAgdm9pZCBhZGQzMkltcGwoVHJ1c3RlZEltbTMyIGltbSwgQWRk
cmVzcyBhZGRyZXNzLCBib29sIHVwZGF0ZUZsYWdzID0gZmFsc2UpCkBAIC0xNjc5LDExICsxNzAy
LDExIEBAIHB1YmxpYzoKICAgICBKdW1wIGJyYW5jaDMyKFJlbGF0aW9uYWxDb25kaXRpb24gY29u
ZCwgUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0KQogICAgIHsKICAgICAgICAgaWYg
KGxlZnQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgewotICAgICAgICAgICAgbW92ZShsZWZ0LCBkYXRh
VGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcChkYXRhVGVtcFJlZ2lz
dGVyLCByaWdodCk7CisgICAgICAgICAgICBtb3ZlKGxlZnQsIGFkZHJlc3NUZW1wUmVnaXN0ZXIp
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21wKGFkZHJlc3NUZW1wUmVnaXN0ZXIsIHJpZ2h0
KTsKICAgICAgICAgfSBlbHNlIGlmIChyaWdodCA9PSBBUk1SZWdpc3RlcnM6OnNwKSB7Ci0gICAg
ICAgICAgICBtb3ZlKHJpZ2h0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmNtcChsZWZ0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1vdmUocmln
aHQsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21wKGxl
ZnQsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmNtcChsZWZ0LCByaWdodCk7CiAgICAgICAgIHJldHVybiBKdW1wKG1ha2VCcmFu
Y2goY29uZCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggNGEzMDk1M2JmM2ZmMGU2OWE3MTZjZmFiZjFhMzRlOWQw
YTk1NDJiOS4uYTQwOGZjNTg5OWVkYzliZmFhYTM2NDljZjNhZTllZjVlMWExMTQwNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQ
Uy5oCkBAIC0xNjY1LDYgKzE2NjUsMTIgQEAgcHVibGljOgogICAgICAgICBzdG9yZTMyKHNyYzIs
IGFkZHJlc3Mud2l0aE9mZnNldCg0KSk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVBhaXIzMihS
ZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgY29uc3Qgdm9pZCogYWRkcmVzcykKKyAg
ICB7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkclRlbXBSZWdpc3Rl
cik7CisgICAgICAgIHN0b3JlUGFpcjMyKHNyYzEsIHNyYzIsIGFkZHJUZW1wUmVnaXN0ZXIpOwor
ICAgIH0KKwogICAgIC8vIEZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnM6CiAKICAgICBzdGF0aWMg
Ym9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCmluZGV4IDEzMjUwZWM0ODQyZjc5MDM1OTljYjU4N2ZkOGJl
Mjg0OGM2NzZhODMuLjQ4OWMxZGNkZDhjOWIyNzU2ZmU2ZTMxZjY1NDg3ZjEzMDBmNjU3YjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKQEAgLTE5
MjAsMTMgKzE5MjAsMTUgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2Vu
ZXJhdGlvblN0YXRlJiBzdGF0ZSkKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3Moc3RvcmFnZUdQUiwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2UobV9vZmZzZXQpKSwgbG9hZGVkVmFs
dWVHUFIpOwogI2Vsc2UKICAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gTG9hZCB8fCBtX3R5cGUg
PT0gR2V0R2V0dGVyKSB7CisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZSgKKyAgICAgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0b3JhZ2VHUFIsIG9mZnNldFJlbGF0
aXZlVG9CYXNlKG1fb2Zmc2V0KSksCisgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHsg
dmFsdWVSZWdzLnRhZ0dQUigpLCBsb2FkZWRWYWx1ZUdQUiB9KTsKKworICAgICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKAotICAgICAgICAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OkFkZHJlc3Moc3RvcmFnZUdQUiwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2UobV9v
ZmZzZXQpICsgVGFnT2Zmc2V0KSwKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVSZWdzLnRhZ0dQ
UigpKTsKKyAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0b3JhZ2VH
UFIsIG9mZnNldFJlbGF0aXZlVG9CYXNlKG1fb2Zmc2V0KSArIFBheWxvYWRPZmZzZXQpLAorICAg
ICAgICAgICAgICAgICAgICBsb2FkZWRWYWx1ZUdQUik7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBqaXQubG9hZDMyKAotICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhz
dG9yYWdlR1BSLCBvZmZzZXRSZWxhdGl2ZVRvQmFzZShtX29mZnNldCkgKyBQYXlsb2FkT2Zmc2V0
KSwKLSAgICAgICAgICAgICAgICBsb2FkZWRWYWx1ZUdQUik7CiAjZW5kaWYKICAgICAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAppbmRleCAzZmFhN2Y3ZmFh
ZTgzOWFjYWI4OGYzZTY4MTFmYWRjMDIwMzYxMTE0Li4yOWI1ZTE1NzIwOWY3Mjg0MDNhZTMxODQy
YzJlYjRlNzI3NzYzN2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkV4aXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5j
cHAKQEAgLTUyMywxMiArNTIzLDcgQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxlRXhpdChDQ2FsbEhl
bHBlcnMmIGppdCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdAogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBJblBhaXI6Ci0gICAgICAgICAg
ICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICByZWNvdmVyeS50YWdHUFIoKSwKLSAgICAg
ICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNo
ICsgaW5kZXgpLT5hc0JpdHMudGFnKTsKLSAgICAgICAgICAgIGppdC5zdG9yZTMyKAotICAgICAg
ICAgICAgICAgIHJlY292ZXJ5LnBheWxvYWRHUFIoKSwKLSAgICAgICAgICAgICAgICAmYml0d2lz
ZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNoICsgaW5kZXgpLT5hc0JpdHMu
cGF5bG9hZCk7CisgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShyZWNvdmVyeS5qc1ZhbHVlUmVn
cygpLCBzY3JhdGNoICsgaW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYKIApAQCAt
NTc5LDI0ICs1NzQsMTAgQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxlRXhpdChDQ2FsbEhlbHBlcnMm
IGppdCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdAogI2lmIFVTRShKU1ZBTFVF
NjQpCiAgICAgICAgIGNhc2UgQ2VsbERpc3BsYWNlZEluSlNTdGFjazoKICAgICAgICAgY2FzZSBC
b29sZWFuRGlzcGxhY2VkSW5KU1N0YWNrOgotICAgICAgICAgICAgaml0LmxvYWQ2NChBc3NlbWJs
eUhlbHBlcnM6OmFkZHJlc3NGb3IocmVjb3ZlcnkudmlydHVhbFJlZ2lzdGVyKCkpLCBHUFJJbmZv
OjpyZWdUMCk7Ci0gICAgICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgc2NyYXRj
aCArIGluZGV4KTsKLSAgICAgICAgICAgIGJyZWFrOwotI2Vsc2UKLSAgICAgICAgICAgIGppdC5s
b2FkMzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IocmVjb3Zlcnku
dmlydHVhbFJlZ2lzdGVyKCkpLAotICAgICAgICAgICAgICAgIEdQUkluZm86OnJlZ1QwKTsKLSAg
ICAgICAgICAgIGppdC5sb2FkMzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpw
YXlsb2FkRm9yKHJlY292ZXJ5LnZpcnR1YWxSZWdpc3RlcigpKSwKLSAgICAgICAgICAgICAgICBH
UFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAg
ICBHUFJJbmZvOjpyZWdUMCwKLSAgICAgICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29kZWRW
YWx1ZURlc2NyaXB0b3IqPihzY3JhdGNoICsgaW5kZXgpLT5hc0JpdHMudGFnKTsKLSAgICAgICAg
ICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIEdQUkluZm86OnJlZ1QxLAotICAgICAg
ICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0Y2gg
KyBpbmRleCktPmFzQml0cy5wYXlsb2FkKTsKLSAgICAgICAgICAgIGJyZWFrOwogI2VuZGlmCisg
ICAgICAgICAgICBqaXQubG9hZFZhbHVlKEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihyZWNv
dmVyeS52aXJ0dWFsUmVnaXN0ZXIoKSksIEpTUkluZm86OmpzUmVnVDEwKTsKKyAgICAgICAgICAg
IGppdC5zdG9yZVZhbHVlKEpTUkluZm86OmpzUmVnVDEwLCBzY3JhdGNoICsgaW5kZXgpOworICAg
ICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBDb25zdGFudDogewogI2lmIFVTRShKU1ZB
TFVFNjQpCkBAIC02MDcsMTIgKzU4OCw3IEBAIHZvaWQgT1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0Nh
bGxIZWxwZXJzJiBqaXQsIFZNJiB2bSwgY29uc3QgT1NSRXhpdCYgZXhpdCwgY29uc3QKICAgICAg
ICAgICAgIH0KICNlbHNlIC8vIG5vdCBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgVU5VU0VE
X1ZBUklBQkxFKGZpcnN0VG1wVG9SZXN0b3JlRWFybHkpOwotICAgICAgICAgICAgaml0LnN0b3Jl
MzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIocmVjb3Zl
cnkuY29uc3RhbnQoKS50YWcoKSksCi0gICAgICAgICAgICAgICAgJmJpdHdpc2VfY2FzdDxFbmNv
ZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4KS0+YXNCaXRzLnRhZyk7Ci0gICAg
ICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihyZWNvdmVyeS5jb25zdGFudCgpLnBheWxvYWQoKSksCi0gICAgICAgICAgICAg
ICAgJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4
KS0+YXNCaXRzLnBheWxvYWQpOworICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUocmVjb3Zlcnku
Y29uc3RhbnQoKSwgc2NyYXRjaCArIGluZGV4LCBKU1JJbmZvOjpqc1JlZ1QxMCk7CiAjZW5kaWYK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC02MzksMTMgKzYxNSw5IEBAIHZvaWQg
T1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0NhbGxIZWxwZXJzJiBqaXQsIFZNJiB2bSwgY29uc3QgT1NS
RXhpdCYgZXhpdCwgY29uc3QKICNlbHNlCiAgICAgICAgICAgICBqaXQubG9hZDMyKAogICAgICAg
ICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihyZWNvdmVyeS52aXJ0dWFsUmVn
aXN0ZXIoKSksCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAg
aml0LnN0b3JlMzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoSlNWYWx1ZTo6SW50MzJUYWcpLAotICAgICAgICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5j
b2RlZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0Y2ggKyBpbmRleCktPmFzQml0cy50YWcpOwotICAg
ICAgICAgICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDAsCi0g
ICAgICAgICAgICAgICAgJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2Ny
YXRjaCArIGluZGV4KS0+YXNCaXRzLnBheWxvYWQpOworICAgICAgICAgICAgICAgIEpTUkluZm86
OmpzUmVnVDEwLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICBqaXQubW92ZShBc3NlbWJseUhl
bHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIEpTUkluZm86OmpzUmVnVDEw
LnRhZ0dQUigpKTsKKyAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86OmpzUmVnVDEw
LCBzY3JhdGNoICsgaW5kZXgpOwogI2VuZGlmCiAgICAgICAgICAgICBicmVhazsKIApAQCAtNjU5
LDEzICs2MzEsOSBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBpbGVFeGl0KENDYWxsSGVscGVycyYgaml0
LCBWTSYgdm0sIGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0CiAgICAgICAgIGNhc2UgQm9vbGVh
bkRpc3BsYWNlZEluSlNTdGFjazoKICAgICAgICAgICAgIGppdC5sb2FkMzIoCiAgICAgICAgICAg
ICAgICAgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKHJlY292ZXJ5LnZpcnR1YWxSZWdpc3Rl
cigpKSwKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgICAgICBqaXQu
c3RvcmUzMigKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihK
U1ZhbHVlOjpCb29sZWFuVGFnKSwKLSAgICAgICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29k
ZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNoICsgaW5kZXgpLT5hc0JpdHMudGFnKTsKLSAgICAg
ICAgICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIEdQUkluZm86OnJlZ1QwLAotICAg
ICAgICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0
Y2ggKyBpbmRleCktPmFzQml0cy5wYXlsb2FkKTsKKyAgICAgICAgICAgICAgICBKU1JJbmZvOjpq
c1JlZ1QxMC5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgaml0Lm1vdmUoQXNzZW1ibHlIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVhblRhZyksIEpTUkluZm86OmpzUmVnVDEw
LnRhZ0dQUigpKTsKKyAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86OmpzUmVnVDEw
LCBzY3JhdGNoICsgaW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBV
bmJveGVkQ2VsbEluR1BSOgpAQCAtNjc3LDEzICs2NDUsOSBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBp
bGVFeGl0KENDYWxsSGVscGVycyYgaml0LCBWTSYgdm0sIGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNv
bnN0CiAgICAgICAgIGNhc2UgQ2VsbERpc3BsYWNlZEluSlNTdGFjazoKICAgICAgICAgICAgIGpp
dC5sb2FkMzIoCiAgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKHJl
Y292ZXJ5LnZpcnR1YWxSZWdpc3RlcigpKSwKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZWdU
MCk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhl
bHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAgICAgICAgICAgICAgICAm
Yml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNoICsgaW5kZXgpLT5h
c0JpdHMudGFnKTsKLSAgICAgICAgICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIEdQ
UkluZm86OnJlZ1QwLAotICAgICAgICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVl
RGVzY3JpcHRvcio+KHNjcmF0Y2ggKyBpbmRleCktPmFzQml0cy5wYXlsb2FkKTsKKyAgICAgICAg
ICAgICAgICBKU1JJbmZvOjpqc1JlZ1QxMC5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgaml0
Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEpT
UkluZm86OmpzUmVnVDEwLnRhZ0dQUigpKTsKKyAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpT
UkluZm86OmpzUmVnVDEwLCBzY3JhdGNoICsgaW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKIApAQCAtODQ4LDE4ICs4MTIsOCBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBpbGVFeGl0KEND
YWxsSGVscGVycyYgaml0LCBWTSYgdm0sIGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0CiAgICAg
ICAgICAgICBicmVhazsKICNlbHNlIC8vIG5vdCBVU0UoSlNWQUxVRTY0KQogICAgICAgICBjYXNl
IEluUGFpcjoKLSAgICAgICAgICAgIGppdC5sb2FkMzIoCi0gICAgICAgICAgICAgICAgJmJpdHdp
c2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4KS0+YXNCaXRz
LnRhZywKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgICAgICBqaXQu
bG9hZDMyKAotICAgICAgICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3Jp
cHRvcio+KHNjcmF0Y2ggKyBpbmRleCktPmFzQml0cy5wYXlsb2FkLAotICAgICAgICAgICAgICAg
IEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAg
ICAgIEdQUkluZm86OnJlZ1QwLAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6dGFn
Rm9yKG9wZXJhbmQpKTsKLSAgICAgICAgICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAg
IEdQUkluZm86OnJlZ1QxLAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9h
ZEZvcihvcGVyYW5kKSk7CisgICAgICAgICAgICBqaXQubG9hZFZhbHVlKHNjcmF0Y2ggKyBpbmRl
eCwgSlNSSW5mbzo6anNSZWdUMTApOworICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNSSW5m
bzo6anNSZWdUMTAsIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihvcGVyYW5kKSk7CiAgICAg
ICAgICAgICBicmVhazsKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCBl
NjFmODk0YmUxMDhjY2JmYTEyZGIyMDg5MjllY2RlMmMzZGYwZjI0Li4yZDJmOGEwNjFjOGYzYjkw
NWZjZjUxMjAzYjIyYjg1MTI1M2M2NGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTY0LDEwICs2NCwxMCBAQCBi
b29sIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVkZ2UsIEdQUlJlZyYgdGFnR1BS
LCBHUFJSZWcmIHBheWxvYWRHUFIsCiAKICAgICBzd2l0Y2ggKGluZm8ucmVnaXN0ZXJGb3JtYXQo
KSkgewogICAgIGNhc2UgRGF0YUZvcm1hdE5vbmU6IHsKKyAgICAgICAgcGF5bG9hZEdQUiA9IGFs
bG9jYXRlKCk7CisgICAgICAgIHRhZ0dQUiA9IGFsbG9jYXRlKCk7CiAKICAgICAgICAgaWYgKGVk
Z2UtPmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgIHRhZ0dQUiA9IGFsbG9jYXRlKCk7Ci0g
ICAgICAgICAgICBwYXlsb2FkR1BSID0gYWxsb2NhdGUoKTsKICAgICAgICAgICAgIEpTVmFsdWUg
dmFsdWUgPSBlZGdlLT5hc0pTVmFsdWUoKTsKICAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIo
dmFsdWUudGFnKCkpLCB0YWdHUFIpOwogICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1
ZS5wYXlsb2FkKCkpLCBwYXlsb2FkR1BSKTsKQEAgLTc3LDI2ICs3NywyNiBAQCBib29sIFNwZWN1
bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVkZ2UsIEdQUlJlZyYgdGFnR1BSLCBHUFJSZWcm
IHBheWxvYWRHUFIsCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBEYXRhRm9ybWF0IHNw
aWxsRm9ybWF0ID0gaW5mby5zcGlsbEZvcm1hdCgpOwogICAgICAgICAgICAgQVNTRVJUKHNwaWxs
Rm9ybWF0ICE9IERhdGFGb3JtYXROb25lICYmIHNwaWxsRm9ybWF0ICE9IERhdGFGb3JtYXRTdG9y
YWdlKTsKLSAgICAgICAgICAgIHRhZ0dQUiA9IGFsbG9jYXRlKCk7Ci0gICAgICAgICAgICBwYXls
b2FkR1BSID0gYWxsb2NhdGUoKTsKICAgICAgICAgICAgIHN3aXRjaCAoc3BpbGxGb3JtYXQpIHsK
ICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEludDMyOgogICAgICAgICAgICAgICAgIG1faml0
Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSwgdGFnR1BSKTsKKyAgICAgICAg
ICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IodmlydHVhbFJlZ2lz
dGVyKSwgcGF5bG9hZEdQUik7CiAgICAgICAgICAgICAgICAgc3BpbGxGb3JtYXQgPSBEYXRhRm9y
bWF0SlNJbnQzMjsgLy8gVGhpcyB3aWxsIGJlIHVzZWQgYXMgdGhlIG5ldyByZWdpc3RlciBmb3Jt
YXQuCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRD
ZWxsOgogICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNl
bGxUYWcpLCB0YWdHUFIpOworICAgICAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxl
cjo6cGF5bG9hZEZvcih2aXJ0dWFsUmVnaXN0ZXIpLCBwYXlsb2FkR1BSKTsKICAgICAgICAgICAg
ICAgICBzcGlsbEZvcm1hdCA9IERhdGFGb3JtYXRKU0NlbGw7IC8vIFRoaXMgd2lsbCBiZSB1c2Vk
IGFzIHRoZSBuZXcgcmVnaXN0ZXIgZm9ybWF0LgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgY2FzZSBEYXRhRm9ybWF0Qm9vbGVhbjoKICAgICAgICAgICAgICAgICBtX2ppdC5t
b3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFnKSwgdGFnR1BSKTsKKyAgICAgICAg
ICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IodmlydHVhbFJlZ2lz
dGVyKSwgcGF5bG9hZEdQUik7CiAgICAgICAgICAgICAgICAgc3BpbGxGb3JtYXQgPSBEYXRhRm9y
bWF0SlNCb29sZWFuOyAvLyBUaGlzIHdpbGwgYmUgdXNlZCBhcyB0aGUgbmV3IHJlZ2lzdGVyIGZv
cm1hdC4KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3IodmlydHVhbFJlZ2lz
dGVyKSwgdGFnR1BSKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5sb2FkVmFsdWUoSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVyKSwgSlNWYWx1ZVJlZ3MgeyB0YWdHUFIsIHBh
eWxvYWRHUFIgfSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IodmlydHVhbFJlZ2lz
dGVyKSwgcGF5bG9hZEdQUik7CiAgICAgICAgICAgICBtX2dwcnMucmV0YWluKHRhZ0dQUiwgdmly
dHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVyU3BpbGxlZCk7CiAgICAgICAgICAgICBtX2dwcnMucmV0
YWluKHBheWxvYWRHUFIsIHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRlclNwaWxsZWQpOwogICAg
ICAgICAgICAgaW5mby5maWxsSlNWYWx1ZSgqbV9zdHJlYW0sIHRhZ0dQUiwgcGF5bG9hZEdQUiwg
c3BpbGxGb3JtYXQgPT0gRGF0YUZvcm1hdEpTRG91YmxlID8gRGF0YUZvcm1hdEpTIDogc3BpbGxG
b3JtYXQpOwpAQCAtNjg4LDEzICs2ODgsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENh
bGwoTm9kZSogbm9kZSkKIAogICAgICAgICAvLyBOb3cgc2V0IHVwIHRoZSAidGhpcyIgYXJndW1l
bnQuCiAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHRoaXNBcmd1bWVudCh0aGlzLCBub2RlLT5jaGls
ZDIoKSk7Ci0gICAgICAgIEdQUlJlZyB0aGlzQXJndW1lbnRUYWdHUFIgPSB0aGlzQXJndW1lbnQu
dGFnR1BSKCk7Ci0gICAgICAgIEdQUlJlZyB0aGlzQXJndW1lbnRQYXlsb2FkR1BSID0gdGhpc0Fy
Z3VtZW50LnBheWxvYWRHUFIoKTsKICAgICAgICAgdGhpc0FyZ3VtZW50LnVzZSgpOwogICAgICAg
ICAKLSAgICAgICAgbV9qaXQuc3RvcmUzMih0aGlzQXJndW1lbnRUYWdHUFIsIEpJVENvbXBpbGVy
OjpjYWxsZWVBcmd1bWVudFRhZ1Nsb3QoMCkpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKHRoaXNB
cmd1bWVudFBheWxvYWRHUFIsIEpJVENvbXBpbGVyOjpjYWxsZWVBcmd1bWVudFBheWxvYWRTbG90
KDApKTsKLSAgICB9IGVsc2UgeyAgICAgICAgCisgICAgICAgIG1faml0LnN0b3JlVmFsdWUodGhp
c0FyZ3VtZW50LmpzVmFsdWVSZWdzKCksIEpJVENvbXBpbGVyOjpjYWxsZWVBcmd1bWVudFNsb3Qo
MCkpOworICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFRoZSBjYWxsIGluc3RydWN0aW9uJ3MgZmly
c3QgY2hpbGQgaXMgZWl0aGVyIHRoZSBmdW5jdGlvbiAobm9ybWFsIGNhbGwpIG9yIHRoZQogICAg
ICAgICAvLyByZWNlaXZlciAobWV0aG9kIGNhbGwpLiBzdWJzZXF1ZW50IGNoaWxkcmVuIGFyZSB0
aGUgYXJndW1lbnRzLgogICAgICAgICBudW1QYXNzZWRBcmdzID0gbm9kZS0+bnVtQ2hpbGRyZW4o
KSAtIDE7CkBAIC03NTAsMTIgKzc0Nyw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxs
KE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtUGFz
c2VkQXJnczsgaSsrKSB7CiAgICAgICAgICAgICAgICAgRWRnZSBhcmdFZGdlID0gbV9qaXQuZ3Jh
cGgoKS5tX3ZhckFyZ0NoaWxkcmVuW25vZGUtPmZpcnN0Q2hpbGQoKSArIDEgKyBpXTsKICAgICAg
ICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBhcmcodGhpcywgYXJnRWRnZSk7Ci0gICAgICAgICAg
ICAgICAgR1BSUmVnIGFyZ1RhZ0dQUiA9IGFyZy50YWdHUFIoKTsKLSAgICAgICAgICAgICAgICBH
UFJSZWcgYXJnUGF5bG9hZEdQUiA9IGFyZy5wYXlsb2FkR1BSKCk7CiAgICAgICAgICAgICAgICAg
dXNlKGFyZ0VkZ2UpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUz
MihhcmdUYWdHUFIsIG1faml0LmNhbGxlZUFyZ3VtZW50VGFnU2xvdChpKSk7Ci0gICAgICAgICAg
ICAgICAgbV9qaXQuc3RvcmUzMihhcmdQYXlsb2FkR1BSLCBtX2ppdC5jYWxsZWVBcmd1bWVudFBh
eWxvYWRTbG90KGkpKTsKKworICAgICAgICAgICAgICAgIG1faml0LnN0b3JlVmFsdWUoYXJnLmpz
VmFsdWVSZWdzKCksIG1faml0LmNhbGxlZUFyZ3VtZW50U2xvdChpKSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG51bVBhc3NlZEFy
Z3M7IGkgPCBudW1BbGxvY2F0ZWRBcmdzOyArK2kpCkBAIC03NjgsOCArNzYyLDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKICAgICAgICAgY2FsbGVlVGFnR1BS
ID0gY2FsbGVlLnRhZ0dQUigpOwogICAgICAgICBjYWxsZWVQYXlsb2FkR1BSID0gY2FsbGVlLnBh
eWxvYWRHUFIoKTsKICAgICAgICAgdXNlKGNhbGxlZUVkZ2UpOwotICAgICAgICBtX2ppdC5zdG9y
ZTMyKGNhbGxlZVBheWxvYWRHUFIsIG1faml0LmNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlKSk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIoY2FsbGVlVGFnR1BSLCBt
X2ppdC5jYWxsZWVGcmFtZVRhZ1Nsb3QoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSk7CisgICAgICAg
IG1faml0LnN0b3JlVmFsdWUoY2FsbGVlLmpzVmFsdWVSZWdzKCksIG1faml0LmNhbGxlZUZyYW1l
U2xvdChDYWxsRnJhbWVTbG90OjpjYWxsZWUpKTsKIAogICAgICAgICBpZiAoIWlzVGFpbCkKICAg
ICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CkBAIC04MjcsOCArODIwLDcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKICAgICAgICAgCiAgICAgICAgIC8vIFRo
aXMgaXMgdGhlIHBhcnQgd2hlcmUgd2UgbWVhbnQgdG8gbWFrZSBhIG5vcm1hbCBjYWxsLiBPb3Bz
LgogICAgICAgICBtX2ppdC5hZGRQdHIoVHJ1c3RlZEltbTMyKHJlcXVpcmVkQnl0ZXMpLCBKSVRD
b21waWxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotICAgICAgICBtX2ppdC5sb2FkMzIoSklU
Q29tcGlsZXI6OmNhbGxlZUZyYW1lU2xvdChDYWxsRnJhbWVTbG90OjpjYWxsZWUpLndpdGhPZmZz
ZXQoUGF5bG9hZE9mZnNldCksIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgbV9qaXQubG9hZDMy
KEpJVENvbXBpbGVyOjpjYWxsZWVGcmFtZVNsb3QoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKS53aXRo
T2Zmc2V0KFRhZ09mZnNldCksIEdQUkluZm86OnJlZ1QxKTsKKyAgICAgICAgbV9qaXQubG9hZFZh
bHVlKEpJVENvbXBpbGVyOjpjYWxsZWVGcmFtZVNsb3QoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSwg
SlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDAgfSk7CiAgICAgICAg
IG1faml0LmVtaXRWaXJ0dWFsQ2FsbCh2bSgpLCBnbG9iYWxPYmplY3QsIGluZm8pOwogICAgICAg
ICAKICAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CkBAIC0xOTA2LDE4ICsxODk4LDEyIEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29w
ZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIEFTU0VS
VChmb3JtYXQgPT0gRGF0YUZvcm1hdEpTKTsKLSAgICAgICAgICAgIG1faml0LmxvYWQzMigKLSAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KAotICAgICAgICAgICAgICAg
ICAgICBzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQs
IFRhZ09mZnNldCksCi0gICAgICAgICAgICAgICAgcmVzdWx0UmVncy50YWdHUFIoKSk7Ci0gICAg
ICAgICAgICBtX2ppdC5sb2FkMzIoCi0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkJh
c2VJbmRleCgKLSAgICAgICAgICAgICAgICAgICAgc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1h
Y3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBQYXlsb2FkT2Zmc2V0KSwKLSAgICAgICAgICAgICAg
ICByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICBtX2ppdC5sb2FkVmFsdWUo
CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBw
cm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpLAorICAgICAgICAgICAgICAg
IHJlc3VsdFJlZ3MpOwogICAgICAgICAgICAgaWYgKG5vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3Vu
ZHNTYW5lQ2hhaW4oKSkgewogICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdEhv
bGUgPSBtX2ppdC5icmFuY2hJZk5vdEVtcHR5KHJlc3VsdFJlZ3MudGFnR1BSKCkpOwotICAgICAg
ICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OlVuZGVmaW5lZFRhZyks
IHJlc3VsdFJlZ3MudGFnR1BSKCkpOwotICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3Rl
ZEltbTMyKDApLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgbV9q
aXQubW92ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCByZXN1bHRSZWdzKTsKICAgICAgICAg
ICAgICAgICBub3RIb2xlLmxpbmsoJm1faml0KTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKQEAgLTIyMDUsOSArMjE5MSw4IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY2FzZSBGbHVzaGVk
SlNWYWx1ZTogewogICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKICAgICAg
ICAgICAgIEdQUlRlbXBvcmFyeSB0YWcodGhpcyk7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIo
SklUQ29tcGlsZXI6OnBheWxvYWRGb3Iobm9kZS0+bWFjaGluZUxvY2FsKCkpLCByZXN1bHQuZ3By
KCkpOwotICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3Iobm9kZS0+
bWFjaGluZUxvY2FsKCkpLCB0YWcuZ3ByKCkpOwotICAgICAgICAgICAgCisgICAgICAgICAgICBt
X2ppdC5sb2FkVmFsdWUoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Iobm9kZS0+bWFjaGluZUxvY2Fs
KCkpLCBKU1ZhbHVlUmVncyB7IHRhZy5ncHIoKSwgcmVzdWx0LmdwcigpIH0pOworCiAgICAgICAg
ICAgICAvLyBMaWtlIGpzVmFsdWVSZXN1bHQsIGJ1dCBkb24ndCB1c2VDaGlsZHJlbiAtIG91ciBj
aGlsZHJlbiBhcmUgcGhpIG5vZGVzLAogICAgICAgICAgICAgLy8gYW5kIGRvbid0IHJlcHJlc2Vu
dCB2YWx1ZXMgd2l0aGluIHRoaXMgZGF0YWZsb3cgd2l0aCB2aXJ0dWFsIHJlZ2lzdGVycy4KICAg
ICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBub2RlLT52aXJ0dWFs
UmVnaXN0ZXIoKTsKQEAgLTIyNzUsOCArMjI2MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEZsdXNoZWRKU1Zh
bHVlOiB7CiAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGls
ZDEoKSk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHZhbHVlLnBheWxvYWRHUFIoKSwgSklU
Q29tcGlsZXI6OnBheWxvYWRGb3Iobm9kZS0+bWFjaGluZUxvY2FsKCkpKTsKLSAgICAgICAgICAg
IG1faml0LnN0b3JlMzIodmFsdWUudGFnR1BSKCksIEpJVENvbXBpbGVyOjp0YWdGb3Iobm9kZS0+
bWFjaGluZUxvY2FsKCkpKTsKKyAgICAgICAgICAgIG1faml0LnN0b3JlVmFsdWUodmFsdWUuanNW
YWx1ZVJlZ3MoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Iobm9kZS0+bWFjaGluZUxvY2FsKCkp
KTsKICAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwogICAgICAgICAgICAgcmVjb3JkU2V0TG9j
YWwoZGF0YUZvcm1hdEZvcihub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKS0+Zmx1c2hGb3JtYXQo
KSkpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNzg3LDEyICsyNzcxLDkgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIHRlbXBGUFIp
OwogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd0Nhc2UgPSBtX2ppdC5icmFu
Y2hJZk5hTih0ZW1wRlBSKTsKICAgICAgICAgICAgIEpTVmFsdWUgbmFuID0gSlNWYWx1ZShKU1Zh
bHVlOjpFbmNvZGVBc0RvdWJsZSwgUE5hTik7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKAot
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIobmFuLnUuYXNCaXRz
LnRhZyksCi0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdl
R1BSLCB2YWx1ZVBheWxvYWRHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1Rf
T0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSkpOwotICAgICAgICAgICAgbV9qaXQuc3Rv
cmUzMigKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG5hbi51
LmFzQml0cy5wYXlsb2FkKSwKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QmFzZUlu
ZGV4KHN0b3JhZ2VHUFIsIHZhbHVlUGF5bG9hZEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWln
aHQsIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSkpOworICAgICAg
ICAgICAgbV9qaXQuc3RvcmVUcnVzdGVkVmFsdWUoCisgICAgICAgICAgICAgICAgbmFuLAorICAg
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgdmFsdWVQ
YXlsb2FkR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCkpOwogICAgICAgICAgICAgYm94
RG91YmxlKHRlbXBGUFIsIHZhbHVlVGFnR1BSLCB2YWx1ZVBheWxvYWRHUFIpOwogCiAgICAgICAg
ICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcigKQEAgLTI4MjEsOSArMjgwMiw4IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIG1faml0LnN1YjMy
KFRydXN0ZWRJbW0zMigxKSwgc3RvcmFnZUxlbmd0aEdQUik7CiAgICAgICAgIAogICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd0Nhc2UgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fz
c2VtYmxlcjo6QWJvdmVPckVxdWFsLCBzdG9yYWdlTGVuZ3RoR1BSLCBNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhzdG9yYWdlR1BSLCBBcnJheVN0b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgpKSk7
Ci0gICAgICAgIAotICAgICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoc3RvcmFnZUdQUiwgc3RvcmFnZUxlbmd0aEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVz
RWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNW
YWx1ZSwgdS5hc0JpdHMudGFnKSksIHZhbHVlVGFnR1BSKTsKLSAgICAgICAgICAgIG1faml0Lmxv
YWQzMihNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIHN0b3JhZ2VMZW5ndGhH
UFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNl
dCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSwgdmFsdWVQ
YXlsb2FkR1BSKTsKKworICAgICAgICAgICAgbV9qaXQubG9hZFZhbHVlKE1hY3JvQXNzZW1ibGVy
OjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgc3RvcmFnZUxlbmd0aEdQUiwgTWFjcm9Bc3NlbWJsZXI6
OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkpLCBKU1ZhbHVlUmVncyB7
IHZhbHVlVGFnR1BSLCB2YWx1ZVBheWxvYWRHUFIgfSk7CiAgICAgICAgIAogICAgICAgICAgICAg
bV9qaXQuc3RvcmUzMihzdG9yYWdlTGVuZ3RoR1BSLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhz
dG9yYWdlR1BSLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDdlZjUxY2Q4MWQwOTJjYTNl
Zjc0ZGMyMzI4OWM2NTZmM2Y5NDM1MjYuLmYzYmMyMzY3Y2Y3OTE4OTNiNTZlZGJmZmFmMGUxNGVl
ZDBkNTE0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlI
ZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMu
aApAQCAtMTg0LDggKzE4NCw4IEBAIHB1YmxpYzoKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAg
ICBzdG9yZTY0KHJlZ3MuZ3ByKCksIGFkZHJlc3MpOwogI2Vsc2UKLSAgICAgICAgc3RvcmUzMihy
ZWdzLnBheWxvYWRHUFIoKSwgYml0d2lzZV9jYXN0PHZvaWQqPihiaXR3aXNlX2Nhc3Q8dWludHB0
cl90PihhZGRyZXNzKSArIFBheWxvYWRPZmZzZXQpKTsKLSAgICAgICAgc3RvcmUzMihyZWdzLnRh
Z0dQUigpLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGFkZHJl
c3MpICsgVGFnT2Zmc2V0KSk7CisgICAgICAgIHN0YXRpY19hc3NlcnQoIVBheWxvYWRPZmZzZXQg
JiYgVGFnT2Zmc2V0ID09IDQsICJBc3N1bWVzIGxpdHRsZS1lbmRpYW4gc3lzdGVtIik7CisgICAg
ICAgIHN0b3JlUGFpcjMyKHJlZ3MucGF5bG9hZEdQUigpLCByZWdzLnRhZ0dQUigpLCBhZGRyZXNz
KTsKICNlbmRpZgogICAgIH0KIApAQCAtMjYyLDE2ICsyNjIsMjcgQEAgcHVibGljOgogI2VuZGlm
CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVZhbHVlKEpTVmFsdWUgdmFsdWUsIEFkZHJlc3MgYWRk
cmVzcykKKyAgICB2b2lkIHN0b3JlVmFsdWUoSlNWYWx1ZSB2YWx1ZSwgQWRkcmVzcyBhZGRyZXNz
LCBKU1ZhbHVlUmVncyB0bXBKU1IpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAg
IFVOVVNFRF9QQVJBTSh0bXBKU1IpOwogICAgICAgICBzdG9yZTY0KEltbTY0KEpTVmFsdWU6OmVu
Y29kZSh2YWx1ZSkpLCBhZGRyZXNzKTsKICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAg
IHN0b3JlMzIoSW1tMzIodmFsdWUudGFnKCkpLCBhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0
KSk7Ci0gICAgICAgIHN0b3JlMzIoSW1tMzIodmFsdWUucGF5bG9hZCgpKSwgYWRkcmVzcy53aXRo
T2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyAgICAgICAgLy8gQ2FuIGltcGxlbWVudCB0aGlzIHdp
dGhvdXQgdGhlIHRtcEpTUiwgYnV0IHVzaW5nIGl0IHlpZWxkcyBkZW5zZXIgY29kZS4KKyAgICAg
ICAgbW92ZVZhbHVlKHZhbHVlLCB0bXBKU1IpOworICAgICAgICBzdG9yZVZhbHVlKHRtcEpTUiwg
YWRkcmVzcyk7CiAjZW5kaWYKICAgICB9CiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHZv
aWQgc3RvcmVWYWx1ZShKU1ZhbHVlIHZhbHVlLCB2b2lkKiBhZGRyZXNzLCBKU1ZhbHVlUmVncyB0
bXBKU1IpCisgICAgeworICAgICAgICAvLyBDYW4gaW1wbGVtZW50IHRoaXMgd2l0aG91dCB0aGUg
dG1wSlNSLCBidXQgdXNpbmcgaXQgeWllbGRzIGRlbnNlciBjb2RlLgorICAgICAgICBtb3ZlVmFs
dWUodmFsdWUsIHRtcEpTUik7CisgICAgICAgIHN0b3JlVmFsdWUodG1wSlNSLCBhZGRyZXNzKTsK
KyAgICB9CisjZW5kaWYKKwogICAgIHZvaWQgc3RvcmVUcnVzdGVkVmFsdWUoSlNWYWx1ZSB2YWx1
ZSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggMGIzYjVmY2Q5M2FiMTJlZDQ0MDYy
ZTJlYmVlNjhjODZmNGRmZjJlZC4uYzgwMTM5Yjc5YjVlM2ExZTM1OGJjZGVkZjNhMjcwMmU3ZTE3
ZTczOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC01Myw3
ICs1Myw3IEBAIHZvaWQgSklUOjplbWl0X29wX21vdihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogCiAgICAgaWYgKHNyYy5pc0NvbnN0YW50KCkpIHsKICAgICAgICAgaWYg
KG1fcHJvZmlsZWRDb2RlQmxvY2stPmlzQ29uc3RhbnRPd25lZEJ5VW5saW5rZWRDb2RlQmxvY2so
c3JjKSkgewotICAgICAgICAgICAgc3RvcmVWYWx1ZShtX3VubGlua2VkQ29kZUJsb2NrLT5nZXRD
b25zdGFudChzcmMpLCBhZGRyZXNzRm9yKGRzdCkpOworICAgICAgICAgICAgc3RvcmVWYWx1ZSht
X3VubGlua2VkQ29kZUJsb2NrLT5nZXRDb25zdGFudChzcmMpLCBhZGRyZXNzRm9yKGRzdCksIGpz
UmVnVDEwKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGxvYWRDb2RlQmxvY2tDb25z
dGFudChzcmMsIGpzUmVnVDEwKTsKICAgICAgICAgICAgIHN0b3JlVmFsdWUoanNSZWdUMTAsIGFk
ZHJlc3NGb3IoZHN0KSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447589</attachid>
            <date>2021-12-20 01:01:33 -0800</date>
            <delta_ts>2021-12-21 00:34:33 -0800</delta_ts>
            <desc>Fix review feedback</desc>
            <filename>bug-234387-20211220090132.patch</filename>
            <type>text/plain</type>
            <size>28527</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZWRjMmM5MDlhNjFjNDlkMjk4MmJkM2JkOTUyOTNlM2NmNDI5Y2ZjLi4wM2E0Yjc1M2U1M2JkMTM4
MWU3YWY3YTZmNjE0YTFiMTQ0MDk0ODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgR2V6YSBMb3JlICA8Z2xvcmVAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbSlNDXVtBUk12N10gTWlub3IgY29kZSBzaXplIGltcHJvdmVtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0Mzg3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBmZXcgbWV3IGNvZGUg
c2l6ZSBpbXByb3ZlbWVudHMgdG8gQVJNdjcvVGh1bWItMgorCisgICAgICAgIC0gVXNlIGxkcmQv
c3RyZCBpbiBtb2RlIHBsYWNlcyAodmlhIEFzc2VtYmx5SGVscGVyczpsb2FkVmFsdWUKKyAgICAg
ICAgYW5kIEFzc2VtYmx5SGVscGVyczo6c3RvcmVWYWx1ZSkKKworICAgICAgICAtIFVzZSBCSUMg
aW1tZWRpYXRlIGluc3RydWN0aW9uIGluc3RlYWQgb2YgQU5EIHdoZXJlIGFwcHJvcHJpYXRlCisK
KyAgICAgICAgLSBVc2UgYSAyLWJ5dGUgQUREUyBpbnN0ZWFkIG9mIGEgNC1ieXRlIENNTiB3aGVu
IHBvc3NpYmxlLiBUaGlzCisgICAgICAgIGFwcGxpZXMgdmVyeSBvZnRlbiBhcyBpdCBoYW5kbGVz
IHRlc3RpbmcgSlNWYWx1ZSB0YWdzLgorCisgICAgICAgIC0gVXNlIGFkZHJlc3NUZW1wUmVnaXN0
ZXIgaW4gYnJhbmNoMzIKKworICAgICAgICBPdmVyYWxsIHNhdmluZyBvZiBhYm91dCAzLjUlIGNv
ZGUgc2l6ZSBvbiBKZXRTdHJlYW0yLCBhY2NvcmRpbmcgdG8KKyAgICAgICAgLS1kdW1wTGlua0J1
ZmZlclN0YXRzLgorCisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CisgICAg
ICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjpiaWMpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmFu
ZDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3RvcmVQYWlyMzIpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpjb21wYXJlMzJBbmRTZXRGbGFncyk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmJyYW5jaDMyKToKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyTUlQUzo6c3RvcmVQYWlyMzIpOgorICAgICAgICAqIGJ5dGVjb2RlL0FjY2Vzc0Nhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxl
RXhpdCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZSk6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OnN0b3JlVmFsdWUpOgorICAgICAgICAqIGppdC9K
SVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX21vdik6CisKIDIwMjEt
MTItMDIgIEdlemEgTG9yZSAgPGdsb3JlQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0pTQ10gR2Vu
ZXJhdGVkIGNvZGUgc2l6ZSByZWR1Y3Rpb25zIGZvciBiYXNlbGluZSBKSVQgKGFsbCBhcmNoaXRl
Y3R1cmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12
N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2Vt
Ymxlci5oCmluZGV4IDc3NjRkZjFlMTllNGJhNzY2NWU4ODFmMmIzZjhkNGQxYTVlZWNmZWYuLjQz
NWI2NjhhNzAxZGNjNjQxODQ2MzVjYjI3YjJkZWM4ZTI3YmExNjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAgLTYwOSw2ICs2MDks
NyBAQCBwcml2YXRlOgogICAgICAgICBPUF9CX1Q0YSAgICAgICAgPSAweEYwMDAsCiAgICAgICAg
IE9QX0FORF9pbW1fVDEgICA9IDB4RjAwMCwKICAgICAgICAgT1BfVFNUX2ltbSAgICAgID0gMHhG
MDEwLAorICAgICAgICBPUF9CSUNfaW1tX1QxICAgPSAweEYwMjAsCiAgICAgICAgIE9QX09SUl9p
bW1fVDEgICA9IDB4RjA0MCwKICAgICAgICAgT1BfTU9WX2ltbV9UMiAgID0gMHhGMDQwLAogICAg
ICAgICBPUF9NVk5faW1tICAgICAgPSAweEYwNjAsCkBAIC05MzIsNiArOTMzLDE0IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIG1fZm9ybWF0dGVyLmxhYmVsKCk7CiAgICAgfQogCisgICAgQUxX
QVlTX0lOTElORSB2b2lkIGJpYyhSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBBUk1UaHVt
YkltbWVkaWF0ZSBpbW0pCisgICAgeworICAgICAgICBBU1NFUlQoIUJhZFJlZyhyZCkpOworICAg
ICAgICBBU1NFUlQoIUJhZFJlZyhybikpOworICAgICAgICBBU1NFUlQoaW1tLmlzRW5jb2RlZElt
bSgpKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wNWk2SW1tNFJlZzRFbmNvZGVkSW1t
KE9QX0JJQ19pbW1fVDEsIHJuLCByZCwgaW1tKTsKKyAgICB9CisKICAgICB2b2lkIGJrcHQodWlu
dDhfdCBpbW0gPSAwKQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIub25lV29yZE9wOEltbTgo
T1BfQktQVCwgaW1tKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKaW5kZXggMjlkZmZjOGIzNTY2MGZlZGIxMjcyYTMzODJh
NTIxZjVhYjIxMTFiNS4uY2QxMjlmNmQ5YTg3ZTA2OWFlY2ZhNDI0YWZlNzBmMGYxMTVjZDE0NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTXY3LmgKQEAgLTI3OSwxMiArMjc5LDE5IEBAIHB1YmxpYzoKICAgICB2b2lkIGFuZDMy
KFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6
bWFrZUVuY29kZWRJbW0oaW1tLm1fdmFsdWUpOwotICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQo
KSkKKyAgICAgICAgaWYgKGFybUltbS5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgIG1fYXNzZW1i
bGVyLkFSTV9hbmQoZGVzdCwgc3JjLCBhcm1JbW0pOwotICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgIG1vdmUoaW1tLCBkYXRhVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVy
LkFSTV9hbmQoZGVzdCwgc3JjLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQorCisgICAgICAgIGFybUltbSA9IEFSTVRodW1iSW1tZWRpYXRlOjptYWtl
RW5jb2RlZEltbSh+aW1tLm1fdmFsdWUpOworICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkg
eworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmljKGRlc3QsIHNyYywgYXJtSW1tKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG1vdmUoaW1tLCBkYXRhVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuQVJNX2FuZChkZXN0LCBzcmMsIGRhdGFUZW1w
UmVnaXN0ZXIpOwogICAgIH0KIAogICAgIHZvaWQgYW5kMzIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lz
dGVySUQgZGVzdCkKQEAgLTEwMjYsNiArMTAzMywxMiBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3Jl
UGFpcjMyKHNyYzEsIHNyYzIsIEFkZHJlc3MoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzcy5vZmZz
ZXQpKTsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVn
aXN0ZXJJRCBzcmMyLCBjb25zdCB2b2lkKiBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbW92ZShU
cnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgc3Rv
cmVQYWlyMzIoc3JjMSwgc3JjMiwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgfQorCiAgICAg
Ly8gUG9zc2libHkgY2xvYmJlcnMgc3JjLCBidXQgbm90IG9uIHRoaXMgYXJjaGl0ZWN0dXJlLgog
ICAgIHZvaWQgbW92ZURvdWJsZVRvSW50cyhGUFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRl
c3QxLCBSZWdpc3RlcklEIGRlc3QyKQogICAgIHsKQEAgLTE1ODcsMTUgKzE2MDAsMjUgQEAgcHJp
dmF0ZToKICAgICB7CiAgICAgICAgIGludDMyX3QgaW1tID0gcmlnaHQubV92YWx1ZTsKICAgICAg
ICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VFbmNv
ZGVkSW1tKGltbSk7Ci0gICAgICAgIGlmIChhcm1JbW0uaXNWYWxpZCgpKQorICAgICAgICBpZiAo
YXJtSW1tLmlzVmFsaWQoKSkgewogICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21wKGxlZnQsIGFy
bUltbSk7Ci0gICAgICAgIGVsc2UgaWYgKChhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFr
ZUVuY29kZWRJbW0oLWltbSkpLmlzVmFsaWQoKSkKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNt
bihsZWZ0LCBhcm1JbW0pOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFJlZ2lzdGVySUQg
c2NyYXRjaCA9IGJlc3RUZW1wUmVnaXN0ZXIobGVmdCk7Ci0gICAgICAgICAgICBtb3ZlKFRydXN0
ZWRJbW0zMihpbW0pLCBzY3JhdGNoKTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcChsZWZ0
LCBzY3JhdGNoKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCisgICAgICAgIGFy
bUltbSA9IEFSTVRodW1iSW1tZWRpYXRlOjptYWtlRW5jb2RlZEltbSgtaW1tKTsKKyAgICAgICAg
aWYgKGFybUltbS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGlmICghKGxlZnQgJiA4KSAmJiBh
cm1JbW0uaXNVSW50MygpICYmIChsZWZ0ICE9IGFkZHJlc3NUZW1wUmVnaXN0ZXIpKSB7CisgICAg
ICAgICAgICAgICAgLy8gVGhpcyBpcyBjb21tb24gZW5vdWdoIHRvIHdhcnJhbnQgYSBzcGVjaWFs
IGNhc2UgdG8gc2F2ZSAyIGJ5dGVzCisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkX1Mo
YWRkcmVzc1RlbXBSZWdpc3RlciwgbGVmdCwgYXJtSW1tKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5jbW4obGVmdCwgYXJt
SW1tKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFJlZ2lzdGVy
SUQgc2NyYXRjaCA9IGJlc3RUZW1wUmVnaXN0ZXIobGVmdCk7CisgICAgICAgIG1vdmUoVHJ1c3Rl
ZEltbTMyKGltbSksIHNjcmF0Y2gpOworICAgICAgICBtX2Fzc2VtYmxlci5jbXAobGVmdCwgc2Ny
YXRjaCk7CiAgICAgfQogCiAgICAgdm9pZCBhZGQzMkltcGwoVHJ1c3RlZEltbTMyIGltbSwgQWRk
cmVzcyBhZGRyZXNzLCBib29sIHVwZGF0ZUZsYWdzID0gZmFsc2UpCkBAIC0xNjc5LDExICsxNzAy
LDExIEBAIHB1YmxpYzoKICAgICBKdW1wIGJyYW5jaDMyKFJlbGF0aW9uYWxDb25kaXRpb24gY29u
ZCwgUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0KQogICAgIHsKICAgICAgICAgaWYg
KGxlZnQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgewotICAgICAgICAgICAgbW92ZShsZWZ0LCBkYXRh
VGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcChkYXRhVGVtcFJlZ2lz
dGVyLCByaWdodCk7CisgICAgICAgICAgICBtb3ZlKGxlZnQsIGFkZHJlc3NUZW1wUmVnaXN0ZXIp
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21wKGFkZHJlc3NUZW1wUmVnaXN0ZXIsIHJpZ2h0
KTsKICAgICAgICAgfSBlbHNlIGlmIChyaWdodCA9PSBBUk1SZWdpc3RlcnM6OnNwKSB7Ci0gICAg
ICAgICAgICBtb3ZlKHJpZ2h0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmNtcChsZWZ0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1vdmUocmln
aHQsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21wKGxl
ZnQsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmNtcChsZWZ0LCByaWdodCk7CiAgICAgICAgIHJldHVybiBKdW1wKG1ha2VCcmFu
Y2goY29uZCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggNGEzMDk1M2JmM2ZmMGU2OWE3MTZjZmFiZjFhMzRlOWQw
YTk1NDJiOS4uYTQwOGZjNTg5OWVkYzliZmFhYTM2NDljZjNhZTllZjVlMWExMTQwNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQ
Uy5oCkBAIC0xNjY1LDYgKzE2NjUsMTIgQEAgcHVibGljOgogICAgICAgICBzdG9yZTMyKHNyYzIs
IGFkZHJlc3Mud2l0aE9mZnNldCg0KSk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVBhaXIzMihS
ZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgY29uc3Qgdm9pZCogYWRkcmVzcykKKyAg
ICB7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkclRlbXBSZWdpc3Rl
cik7CisgICAgICAgIHN0b3JlUGFpcjMyKHNyYzEsIHNyYzIsIGFkZHJUZW1wUmVnaXN0ZXIpOwor
ICAgIH0KKwogICAgIC8vIEZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnM6CiAKICAgICBzdGF0aWMg
Ym9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCmluZGV4IDEzMjUwZWM0ODQyZjc5MDM1OTljYjU4N2ZkOGJl
Mjg0OGM2NzZhODMuLjQ4OWMxZGNkZDhjOWIyNzU2ZmU2ZTMxZjY1NDg3ZjEzMDBmNjU3YjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKQEAgLTE5
MjAsMTMgKzE5MjAsMTUgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2Vu
ZXJhdGlvblN0YXRlJiBzdGF0ZSkKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3Moc3RvcmFnZUdQUiwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2UobV9vZmZzZXQpKSwgbG9hZGVkVmFs
dWVHUFIpOwogI2Vsc2UKICAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gTG9hZCB8fCBtX3R5cGUg
PT0gR2V0R2V0dGVyKSB7CisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZSgKKyAgICAgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0b3JhZ2VHUFIsIG9mZnNldFJlbGF0
aXZlVG9CYXNlKG1fb2Zmc2V0KSksCisgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHsg
dmFsdWVSZWdzLnRhZ0dQUigpLCBsb2FkZWRWYWx1ZUdQUiB9KTsKKworICAgICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKAotICAgICAgICAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OkFkZHJlc3Moc3RvcmFnZUdQUiwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2UobV9v
ZmZzZXQpICsgVGFnT2Zmc2V0KSwKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVSZWdzLnRhZ0dQ
UigpKTsKKyAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0b3JhZ2VH
UFIsIG9mZnNldFJlbGF0aXZlVG9CYXNlKG1fb2Zmc2V0KSArIFBheWxvYWRPZmZzZXQpLAorICAg
ICAgICAgICAgICAgICAgICBsb2FkZWRWYWx1ZUdQUik7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBqaXQubG9hZDMyKAotICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhz
dG9yYWdlR1BSLCBvZmZzZXRSZWxhdGl2ZVRvQmFzZShtX29mZnNldCkgKyBQYXlsb2FkT2Zmc2V0
KSwKLSAgICAgICAgICAgICAgICBsb2FkZWRWYWx1ZUdQUik7CiAjZW5kaWYKICAgICAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAppbmRleCAzZmFhN2Y3ZmFh
ZTgzOWFjYWI4OGYzZTY4MTFmYWRjMDIwMzYxMTE0Li4yOWI1ZTE1NzIwOWY3Mjg0MDNhZTMxODQy
YzJlYjRlNzI3NzYzN2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkV4aXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5j
cHAKQEAgLTUyMywxMiArNTIzLDcgQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxlRXhpdChDQ2FsbEhl
bHBlcnMmIGppdCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdAogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBJblBhaXI6Ci0gICAgICAgICAg
ICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICByZWNvdmVyeS50YWdHUFIoKSwKLSAgICAg
ICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNo
ICsgaW5kZXgpLT5hc0JpdHMudGFnKTsKLSAgICAgICAgICAgIGppdC5zdG9yZTMyKAotICAgICAg
ICAgICAgICAgIHJlY292ZXJ5LnBheWxvYWRHUFIoKSwKLSAgICAgICAgICAgICAgICAmYml0d2lz
ZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNoICsgaW5kZXgpLT5hc0JpdHMu
cGF5bG9hZCk7CisgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShyZWNvdmVyeS5qc1ZhbHVlUmVn
cygpLCBzY3JhdGNoICsgaW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYKIApAQCAt
NTc5LDI0ICs1NzQsMTAgQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxlRXhpdChDQ2FsbEhlbHBlcnMm
IGppdCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdAogI2lmIFVTRShKU1ZBTFVF
NjQpCiAgICAgICAgIGNhc2UgQ2VsbERpc3BsYWNlZEluSlNTdGFjazoKICAgICAgICAgY2FzZSBC
b29sZWFuRGlzcGxhY2VkSW5KU1N0YWNrOgotICAgICAgICAgICAgaml0LmxvYWQ2NChBc3NlbWJs
eUhlbHBlcnM6OmFkZHJlc3NGb3IocmVjb3ZlcnkudmlydHVhbFJlZ2lzdGVyKCkpLCBHUFJJbmZv
OjpyZWdUMCk7Ci0gICAgICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgc2NyYXRj
aCArIGluZGV4KTsKLSAgICAgICAgICAgIGJyZWFrOwotI2Vsc2UKLSAgICAgICAgICAgIGppdC5s
b2FkMzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IocmVjb3Zlcnku
dmlydHVhbFJlZ2lzdGVyKCkpLAotICAgICAgICAgICAgICAgIEdQUkluZm86OnJlZ1QwKTsKLSAg
ICAgICAgICAgIGppdC5sb2FkMzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpw
YXlsb2FkRm9yKHJlY292ZXJ5LnZpcnR1YWxSZWdpc3RlcigpKSwKLSAgICAgICAgICAgICAgICBH
UFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAg
ICBHUFJJbmZvOjpyZWdUMCwKLSAgICAgICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29kZWRW
YWx1ZURlc2NyaXB0b3IqPihzY3JhdGNoICsgaW5kZXgpLT5hc0JpdHMudGFnKTsKLSAgICAgICAg
ICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIEdQUkluZm86OnJlZ1QxLAotICAgICAg
ICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0Y2gg
KyBpbmRleCktPmFzQml0cy5wYXlsb2FkKTsKLSAgICAgICAgICAgIGJyZWFrOwogI2VuZGlmCisg
ICAgICAgICAgICBqaXQubG9hZFZhbHVlKEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihyZWNv
dmVyeS52aXJ0dWFsUmVnaXN0ZXIoKSksIEpTUkluZm86OmpzUmVnVDEwKTsKKyAgICAgICAgICAg
IGppdC5zdG9yZVZhbHVlKEpTUkluZm86OmpzUmVnVDEwLCBzY3JhdGNoICsgaW5kZXgpOworICAg
ICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBDb25zdGFudDogewogI2lmIFVTRShKU1ZB
TFVFNjQpCkBAIC02MDcsMTIgKzU4OCw3IEBAIHZvaWQgT1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0Nh
bGxIZWxwZXJzJiBqaXQsIFZNJiB2bSwgY29uc3QgT1NSRXhpdCYgZXhpdCwgY29uc3QKICAgICAg
ICAgICAgIH0KICNlbHNlIC8vIG5vdCBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgVU5VU0VE
X1ZBUklBQkxFKGZpcnN0VG1wVG9SZXN0b3JlRWFybHkpOwotICAgICAgICAgICAgaml0LnN0b3Jl
MzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIocmVjb3Zl
cnkuY29uc3RhbnQoKS50YWcoKSksCi0gICAgICAgICAgICAgICAgJmJpdHdpc2VfY2FzdDxFbmNv
ZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4KS0+YXNCaXRzLnRhZyk7Ci0gICAg
ICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihyZWNvdmVyeS5jb25zdGFudCgpLnBheWxvYWQoKSksCi0gICAgICAgICAgICAg
ICAgJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4
KS0+YXNCaXRzLnBheWxvYWQpOworICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUocmVjb3Zlcnku
Y29uc3RhbnQoKSwgc2NyYXRjaCArIGluZGV4LCBKU1JJbmZvOjpqc1JlZ1QxMCk7CiAjZW5kaWYK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC02MzksMTMgKzYxNSw5IEBAIHZvaWQg
T1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0NhbGxIZWxwZXJzJiBqaXQsIFZNJiB2bSwgY29uc3QgT1NS
RXhpdCYgZXhpdCwgY29uc3QKICNlbHNlCiAgICAgICAgICAgICBqaXQubG9hZDMyKAogICAgICAg
ICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihyZWNvdmVyeS52aXJ0dWFsUmVn
aXN0ZXIoKSksCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAg
aml0LnN0b3JlMzIoCi0gICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoSlNWYWx1ZTo6SW50MzJUYWcpLAotICAgICAgICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5j
b2RlZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0Y2ggKyBpbmRleCktPmFzQml0cy50YWcpOwotICAg
ICAgICAgICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDAsCi0g
ICAgICAgICAgICAgICAgJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2Ny
YXRjaCArIGluZGV4KS0+YXNCaXRzLnBheWxvYWQpOworICAgICAgICAgICAgICAgIEpTUkluZm86
OmpzUmVnVDEwLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICBqaXQubW92ZShBc3NlbWJseUhl
bHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIEpTUkluZm86OmpzUmVnVDEw
LnRhZ0dQUigpKTsKKyAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86OmpzUmVnVDEw
LCBzY3JhdGNoICsgaW5kZXgpOwogI2VuZGlmCiAgICAgICAgICAgICBicmVhazsKIApAQCAtNjU5
LDEzICs2MzEsOSBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBpbGVFeGl0KENDYWxsSGVscGVycyYgaml0
LCBWTSYgdm0sIGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0CiAgICAgICAgIGNhc2UgQm9vbGVh
bkRpc3BsYWNlZEluSlNTdGFjazoKICAgICAgICAgICAgIGppdC5sb2FkMzIoCiAgICAgICAgICAg
ICAgICAgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKHJlY292ZXJ5LnZpcnR1YWxSZWdpc3Rl
cigpKSwKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgICAgICBqaXQu
c3RvcmUzMigKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihK
U1ZhbHVlOjpCb29sZWFuVGFnKSwKLSAgICAgICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVuY29k
ZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNoICsgaW5kZXgpLT5hc0JpdHMudGFnKTsKLSAgICAg
ICAgICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIEdQUkluZm86OnJlZ1QwLAotICAg
ICAgICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KHNjcmF0
Y2ggKyBpbmRleCktPmFzQml0cy5wYXlsb2FkKTsKKyAgICAgICAgICAgICAgICBKU1JJbmZvOjpq
c1JlZ1QxMC5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgaml0Lm1vdmUoQXNzZW1ibHlIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVhblRhZyksIEpTUkluZm86OmpzUmVnVDEw
LnRhZ0dQUigpKTsKKyAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86OmpzUmVnVDEw
LCBzY3JhdGNoICsgaW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBV
bmJveGVkQ2VsbEluR1BSOgpAQCAtNjc3LDEzICs2NDUsOSBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBp
bGVFeGl0KENDYWxsSGVscGVycyYgaml0LCBWTSYgdm0sIGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNv
bnN0CiAgICAgICAgIGNhc2UgQ2VsbERpc3BsYWNlZEluSlNTdGFjazoKICAgICAgICAgICAgIGpp
dC5sb2FkMzIoCiAgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKHJl
Y292ZXJ5LnZpcnR1YWxSZWdpc3RlcigpKSwKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZWdU
MCk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhl
bHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAgICAgICAgICAgICAgICAm
Yml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNoICsgaW5kZXgpLT5h
c0JpdHMudGFnKTsKLSAgICAgICAgICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIEdQ
UkluZm86OnJlZ1QwLAotICAgICAgICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVl
RGVzY3JpcHRvcio+KHNjcmF0Y2ggKyBpbmRleCktPmFzQml0cy5wYXlsb2FkKTsKKyAgICAgICAg
ICAgICAgICBKU1JJbmZvOjpqc1JlZ1QxMC5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgaml0
Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEpT
UkluZm86OmpzUmVnVDEwLnRhZ0dQUigpKTsKKyAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpT
UkluZm86OmpzUmVnVDEwLCBzY3JhdGNoICsgaW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKIApAQCAtODQ4LDE4ICs4MTIsOCBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBpbGVFeGl0KEND
YWxsSGVscGVycyYgaml0LCBWTSYgdm0sIGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0CiAgICAg
ICAgICAgICBicmVhazsKICNlbHNlIC8vIG5vdCBVU0UoSlNWQUxVRTY0KQogICAgICAgICBjYXNl
IEluUGFpcjoKLSAgICAgICAgICAgIGppdC5sb2FkMzIoCi0gICAgICAgICAgICAgICAgJmJpdHdp
c2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oc2NyYXRjaCArIGluZGV4KS0+YXNCaXRz
LnRhZywKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgICAgICBqaXQu
bG9hZDMyKAotICAgICAgICAgICAgICAgICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3Jp
cHRvcio+KHNjcmF0Y2ggKyBpbmRleCktPmFzQml0cy5wYXlsb2FkLAotICAgICAgICAgICAgICAg
IEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAg
ICAgIEdQUkluZm86OnJlZ1QwLAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6dGFn
Rm9yKG9wZXJhbmQpKTsKLSAgICAgICAgICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAg
IEdQUkluZm86OnJlZ1QxLAotICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9h
ZEZvcihvcGVyYW5kKSk7CisgICAgICAgICAgICBqaXQubG9hZFZhbHVlKHNjcmF0Y2ggKyBpbmRl
eCwgSlNSSW5mbzo6anNSZWdUMTApOworICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNSSW5m
bzo6anNSZWdUMTAsIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihvcGVyYW5kKSk7CiAgICAg
ICAgICAgICBicmVhazsKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCBl
NjFmODk0YmUxMDhjY2JmYTEyZGIyMDg5MjllY2RlMmMzZGYwZjI0Li45NTkzNjlkMjQ1OGViZGMx
MWZmMGU3OWMwYTQyYzNkMTAwZWMzNDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTY0LDEwICs2NCwxMCBAQCBi
b29sIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVkZ2UsIEdQUlJlZyYgdGFnR1BS
LCBHUFJSZWcmIHBheWxvYWRHUFIsCiAKICAgICBzd2l0Y2ggKGluZm8ucmVnaXN0ZXJGb3JtYXQo
KSkgewogICAgIGNhc2UgRGF0YUZvcm1hdE5vbmU6IHsKKyAgICAgICAgcGF5bG9hZEdQUiA9IGFs
bG9jYXRlKCk7CisgICAgICAgIHRhZ0dQUiA9IGFsbG9jYXRlKCk7CiAKICAgICAgICAgaWYgKGVk
Z2UtPmhhc0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgIHRhZ0dQUiA9IGFsbG9jYXRlKCk7Ci0g
ICAgICAgICAgICBwYXlsb2FkR1BSID0gYWxsb2NhdGUoKTsKICAgICAgICAgICAgIEpTVmFsdWUg
dmFsdWUgPSBlZGdlLT5hc0pTVmFsdWUoKTsKICAgICAgICAgICAgIG1faml0Lm1vdmUoSW1tMzIo
dmFsdWUudGFnKCkpLCB0YWdHUFIpOwogICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1
ZS5wYXlsb2FkKCkpLCBwYXlsb2FkR1BSKTsKQEAgLTc3LDI2ICs3NywyNiBAQCBib29sIFNwZWN1
bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVkZ2UsIEdQUlJlZyYgdGFnR1BSLCBHUFJSZWcm
IHBheWxvYWRHUFIsCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBEYXRhRm9ybWF0IHNw
aWxsRm9ybWF0ID0gaW5mby5zcGlsbEZvcm1hdCgpOwogICAgICAgICAgICAgQVNTRVJUKHNwaWxs
Rm9ybWF0ICE9IERhdGFGb3JtYXROb25lICYmIHNwaWxsRm9ybWF0ICE9IERhdGFGb3JtYXRTdG9y
YWdlKTsKLSAgICAgICAgICAgIHRhZ0dQUiA9IGFsbG9jYXRlKCk7Ci0gICAgICAgICAgICBwYXls
b2FkR1BSID0gYWxsb2NhdGUoKTsKICAgICAgICAgICAgIHN3aXRjaCAoc3BpbGxGb3JtYXQpIHsK
ICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEludDMyOgogICAgICAgICAgICAgICAgIG1faml0
Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSwgdGFnR1BSKTsKKyAgICAgICAg
ICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IodmlydHVhbFJlZ2lz
dGVyKSwgcGF5bG9hZEdQUik7CiAgICAgICAgICAgICAgICAgc3BpbGxGb3JtYXQgPSBEYXRhRm9y
bWF0SlNJbnQzMjsgLy8gVGhpcyB3aWxsIGJlIHVzZWQgYXMgdGhlIG5ldyByZWdpc3RlciBmb3Jt
YXQuCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIERhdGFGb3JtYXRD
ZWxsOgogICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNl
bGxUYWcpLCB0YWdHUFIpOworICAgICAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxl
cjo6cGF5bG9hZEZvcih2aXJ0dWFsUmVnaXN0ZXIpLCBwYXlsb2FkR1BSKTsKICAgICAgICAgICAg
ICAgICBzcGlsbEZvcm1hdCA9IERhdGFGb3JtYXRKU0NlbGw7IC8vIFRoaXMgd2lsbCBiZSB1c2Vk
IGFzIHRoZSBuZXcgcmVnaXN0ZXIgZm9ybWF0LgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgY2FzZSBEYXRhRm9ybWF0Qm9vbGVhbjoKICAgICAgICAgICAgICAgICBtX2ppdC5t
b3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFnKSwgdGFnR1BSKTsKKyAgICAgICAg
ICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IodmlydHVhbFJlZ2lz
dGVyKSwgcGF5bG9hZEdQUik7CiAgICAgICAgICAgICAgICAgc3BpbGxGb3JtYXQgPSBEYXRhRm9y
bWF0SlNCb29sZWFuOyAvLyBUaGlzIHdpbGwgYmUgdXNlZCBhcyB0aGUgbmV3IHJlZ2lzdGVyIGZv
cm1hdC4KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3IodmlydHVhbFJlZ2lz
dGVyKSwgdGFnR1BSKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5sb2FkVmFsdWUoSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVyKSwgSlNWYWx1ZVJlZ3MgeyB0YWdHUFIsIHBh
eWxvYWRHUFIgfSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IodmlydHVhbFJlZ2lz
dGVyKSwgcGF5bG9hZEdQUik7CiAgICAgICAgICAgICBtX2dwcnMucmV0YWluKHRhZ0dQUiwgdmly
dHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVyU3BpbGxlZCk7CiAgICAgICAgICAgICBtX2dwcnMucmV0
YWluKHBheWxvYWRHUFIsIHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRlclNwaWxsZWQpOwogICAg
ICAgICAgICAgaW5mby5maWxsSlNWYWx1ZSgqbV9zdHJlYW0sIHRhZ0dQUiwgcGF5bG9hZEdQUiwg
c3BpbGxGb3JtYXQgPT0gRGF0YUZvcm1hdEpTRG91YmxlID8gRGF0YUZvcm1hdEpTIDogc3BpbGxG
b3JtYXQpOwpAQCAtNjg4LDEzICs2ODgsMTEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENh
bGwoTm9kZSogbm9kZSkKIAogICAgICAgICAvLyBOb3cgc2V0IHVwIHRoZSAidGhpcyIgYXJndW1l
bnQuCiAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHRoaXNBcmd1bWVudCh0aGlzLCBub2RlLT5jaGls
ZDIoKSk7Ci0gICAgICAgIEdQUlJlZyB0aGlzQXJndW1lbnRUYWdHUFIgPSB0aGlzQXJndW1lbnQu
dGFnR1BSKCk7Ci0gICAgICAgIEdQUlJlZyB0aGlzQXJndW1lbnRQYXlsb2FkR1BSID0gdGhpc0Fy
Z3VtZW50LnBheWxvYWRHUFIoKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MgdGhpc0FyZ3VtZW50UmVn
cyA9IHRoaXNBcmd1bWVudC5qc1ZhbHVlUmVncygpOwogICAgICAgICB0aGlzQXJndW1lbnQudXNl
KCk7CiAgICAgICAgIAotICAgICAgICBtX2ppdC5zdG9yZTMyKHRoaXNBcmd1bWVudFRhZ0dQUiwg
SklUQ29tcGlsZXI6OmNhbGxlZUFyZ3VtZW50VGFnU2xvdCgwKSk7Ci0gICAgICAgIG1faml0LnN0
b3JlMzIodGhpc0FyZ3VtZW50UGF5bG9hZEdQUiwgSklUQ29tcGlsZXI6OmNhbGxlZUFyZ3VtZW50
UGF5bG9hZFNsb3QoMCkpOwotICAgIH0gZWxzZSB7ICAgICAgICAKKyAgICAgICAgbV9qaXQuc3Rv
cmVWYWx1ZSh0aGlzQXJndW1lbnRSZWdzLCBKSVRDb21waWxlcjo6Y2FsbGVlQXJndW1lbnRTbG90
KDApKTsKKyAgICB9IGVsc2UgewogICAgICAgICAvLyBUaGUgY2FsbCBpbnN0cnVjdGlvbidzIGZp
cnN0IGNoaWxkIGlzIGVpdGhlciB0aGUgZnVuY3Rpb24gKG5vcm1hbCBjYWxsKSBvciB0aGUKICAg
ICAgICAgLy8gcmVjZWl2ZXIgKG1ldGhvZCBjYWxsKS4gc3Vic2VxdWVudCBjaGlsZHJlbiBhcmUg
dGhlIGFyZ3VtZW50cy4KICAgICAgICAgbnVtUGFzc2VkQXJncyA9IG5vZGUtPm51bUNoaWxkcmVu
KCkgLSAxOwpAQCAtNzUwLDEyICs3NDgsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENh
bGwoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1Q
YXNzZWRBcmdzOyBpKyspIHsKICAgICAgICAgICAgICAgICBFZGdlIGFyZ0VkZ2UgPSBtX2ppdC5n
cmFwaCgpLm1fdmFyQXJnQ2hpbGRyZW5bbm9kZS0+Zmlyc3RDaGlsZCgpICsgMSArIGldOwogICAg
ICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIGFyZyh0aGlzLCBhcmdFZGdlKTsKLSAgICAgICAg
ICAgICAgICBHUFJSZWcgYXJnVGFnR1BSID0gYXJnLnRhZ0dQUigpOwotICAgICAgICAgICAgICAg
IEdQUlJlZyBhcmdQYXlsb2FkR1BSID0gYXJnLnBheWxvYWRHUFIoKTsKKyAgICAgICAgICAgICAg
ICBKU1ZhbHVlUmVncyBhcmdSZWdzID0gYXJnLmpzVmFsdWVSZWdzKCk7CiAgICAgICAgICAgICAg
ICAgdXNlKGFyZ0VkZ2UpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9qaXQuc3Rv
cmUzMihhcmdUYWdHUFIsIG1faml0LmNhbGxlZUFyZ3VtZW50VGFnU2xvdChpKSk7Ci0gICAgICAg
ICAgICAgICAgbV9qaXQuc3RvcmUzMihhcmdQYXlsb2FkR1BSLCBtX2ppdC5jYWxsZWVBcmd1bWVu
dFBheWxvYWRTbG90KGkpKTsKKworICAgICAgICAgICAgICAgIG1faml0LnN0b3JlVmFsdWUoYXJn
UmVncywgbV9qaXQuY2FsbGVlQXJndW1lbnRTbG90KGkpKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIAogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtUGFzc2VkQXJnczsgaSA8
IG51bUFsbG9jYXRlZEFyZ3M7ICsraSkKQEAgLTc2Nyw5ICs3NjMsMTAgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgY2Fs
bGVlKHRoaXMsIGNhbGxlZUVkZ2UpOwogICAgICAgICBjYWxsZWVUYWdHUFIgPSBjYWxsZWUudGFn
R1BSKCk7CiAgICAgICAgIGNhbGxlZVBheWxvYWRHUFIgPSBjYWxsZWUucGF5bG9hZEdQUigpOwor
ICAgICAgICBKU1ZhbHVlUmVncyBjYWxsZVJlZ3MgPSBjYWxsZWUuanNWYWx1ZVJlZ3MoKTsKICAg
ICAgICAgdXNlKGNhbGxlZUVkZ2UpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKGNhbGxlZVBheWxv
YWRHUFIsIG1faml0LmNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVl
KSk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIoY2FsbGVlVGFnR1BSLCBtX2ppdC5jYWxsZWVGcmFt
ZVRhZ1Nsb3QoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSk7CisKKyAgICAgICAgbV9qaXQuc3RvcmVW
YWx1ZShjYWxsZVJlZ3MsIG1faml0LmNhbGxlZUZyYW1lU2xvdChDYWxsRnJhbWVTbG90OjpjYWxs
ZWUpKTsKIAogICAgICAgICBpZiAoIWlzVGFpbCkKICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJz
KCk7CkBAIC04MjcsOCArODI0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9k
ZSogbm9kZSkKICAgICAgICAgCiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIHBhcnQgd2hlcmUgd2Ug
bWVhbnQgdG8gbWFrZSBhIG5vcm1hbCBjYWxsLiBPb3BzLgogICAgICAgICBtX2ppdC5hZGRQdHIo
VHJ1c3RlZEltbTMyKHJlcXVpcmVkQnl0ZXMpLCBKSVRDb21waWxlcjo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIpOwotICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OmNhbGxlZUZyYW1lU2xv
dChDYWxsRnJhbWVTbG90OjpjYWxsZWUpLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCksIEdQUklu
Zm86OnJlZ1QwKTsKLSAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpjYWxsZWVGcmFt
ZVNsb3QoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKS53aXRoT2Zmc2V0KFRhZ09mZnNldCksIEdQUklu
Zm86OnJlZ1QxKTsKKyAgICAgICAgbV9qaXQubG9hZFZhbHVlKEpJVENvbXBpbGVyOjpjYWxsZWVG
cmFtZVNsb3QoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSwgSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpy
ZWdUMSwgR1BSSW5mbzo6cmVnVDAgfSk7CiAgICAgICAgIG1faml0LmVtaXRWaXJ0dWFsQ2FsbCh2
bSgpLCBnbG9iYWxPYmplY3QsIGluZm8pOwogICAgICAgICAKICAgICAgICAgZG9uZS5saW5rKCZt
X2ppdCk7CkBAIC0xOTA2LDE4ICsxOTAyLDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVHZXRCeVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIEFTU0VSVChmb3JtYXQgPT0gRGF0YUZvcm1hdEpT
KTsKLSAgICAgICAgICAgIG1faml0LmxvYWQzMigKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6QmFzZUluZGV4KAotICAgICAgICAgICAgICAgICAgICBzdG9yYWdlUmVnLCBwcm9wZXJ0
eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIFRhZ09mZnNldCksCi0gICAgICAgICAg
ICAgICAgcmVzdWx0UmVncy50YWdHUFIoKSk7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoCi0g
ICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleCgKLSAgICAgICAgICAgICAg
ICAgICAgc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0
LCBQYXlsb2FkT2Zmc2V0KSwKLSAgICAgICAgICAgICAgICByZXN1bHRSZWdzLnBheWxvYWRHUFIo
KSk7CisgICAgICAgICAgICBtX2ppdC5sb2FkVmFsdWUoCisgICAgICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OlRpbWVzRWlnaHQpLAorICAgICAgICAgICAgICAgIHJlc3VsdFJlZ3MpOwogICAgICAgICAg
ICAgaWYgKG5vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3VuZHNTYW5lQ2hhaW4oKSkgewogICAgICAg
ICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdEhvbGUgPSBtX2ppdC5icmFuY2hJZk5vdEVt
cHR5KHJlc3VsdFJlZ3MudGFnR1BSKCkpOwotICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OlVuZGVmaW5lZFRhZyksIHJlc3VsdFJlZ3MudGFnR1BSKCkpOwot
ICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKDApLCByZXN1bHRSZWdzLnBh
eWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZVRydXN0ZWRWYWx1ZShqc1Vu
ZGVmaW5lZCgpLCByZXN1bHRSZWdzKTsKICAgICAgICAgICAgICAgICBub3RIb2xlLmxpbmsoJm1f
aml0KTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgc3BlY3VsYXRpb25D
aGVjaygKQEAgLTIyMDMsMTggKzIxOTMsMTYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlKiBub2RlKQogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBGbHVz
aGVkSlNWYWx1ZTogewotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKLSAg
ICAgICAgICAgIEdQUlRlbXBvcmFyeSB0YWcodGhpcyk7Ci0gICAgICAgICAgICBtX2ppdC5sb2Fk
MzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3Iobm9kZS0+bWFjaGluZUxvY2FsKCkpLCByZXN1bHQu
Z3ByKCkpOwotICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3Iobm9k
ZS0+bWFjaGluZUxvY2FsKCkpLCB0YWcuZ3ByKCkpOwotICAgICAgICAgICAgCisgICAgICAgICAg
ICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgICAgICAgICBtX2ppdC5s
b2FkVmFsdWUoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Iobm9kZS0+bWFjaGluZUxvY2FsKCkpLCBy
ZXN1bHQucmVncygpKTsKKwogICAgICAgICAgICAgLy8gTGlrZSBqc1ZhbHVlUmVzdWx0LCBidXQg
ZG9uJ3QgdXNlQ2hpbGRyZW4gLSBvdXIgY2hpbGRyZW4gYXJlIHBoaSBub2RlcywKICAgICAgICAg
ICAgIC8vIGFuZCBkb24ndCByZXByZXNlbnQgdmFsdWVzIHdpdGhpbiB0aGlzIGRhdGFmbG93IHdp
dGggdmlydHVhbCByZWdpc3RlcnMuCiAgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVh
bFJlZ2lzdGVyID0gbm9kZS0+dmlydHVhbFJlZ2lzdGVyKCk7Ci0gICAgICAgICAgICBtX2dwcnMu
cmV0YWluKHJlc3VsdC5ncHIoKSwgdmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVySlMpOwotICAg
ICAgICAgICAgbV9ncHJzLnJldGFpbih0YWcuZ3ByKCksIHZpcnR1YWxSZWdpc3RlciwgU3BpbGxP
cmRlckpTKTsKKyAgICAgICAgICAgIG1fZ3Bycy5yZXRhaW4ocmVzdWx0LnJlZ3MoKS5wYXlsb2Fk
R1BSKCksIHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRlckpTKTsKKyAgICAgICAgICAgIG1fZ3By
cy5yZXRhaW4ocmVzdWx0LnJlZ3MoKS50YWdHUFIoKSwgdmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9y
ZGVySlMpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBnZW5lcmF0aW9uSW5mb0Zyb21WaXJ0
dWFsUmVnaXN0ZXIodmlydHVhbFJlZ2lzdGVyKS5pbml0SlNWYWx1ZShub2RlLCBub2RlLT5yZWZD
b3VudCgpLCB0YWcuZ3ByKCksIHJlc3VsdC5ncHIoKSwgRGF0YUZvcm1hdEpTKTsKKyAgICAgICAg
ICAgIGdlbmVyYXRpb25JbmZvRnJvbVZpcnR1YWxSZWdpc3Rlcih2aXJ0dWFsUmVnaXN0ZXIpLmlu
aXRKU1ZhbHVlKG5vZGUsIG5vZGUtPnJlZkNvdW50KCksIHJlc3VsdC5yZWdzKCkudGFnR1BSKCks
IHJlc3VsdC5yZWdzKCkucGF5bG9hZEdQUigpLCBEYXRhRm9ybWF0SlMpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMjI3NSw4ICsyMjYzLDggQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgCiAgICAg
ICAgIGNhc2UgRmx1c2hlZEpTVmFsdWU6IHsKICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZh
bHVlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFs
dWUucGF5bG9hZEdQUigpLCBKSVRDb21waWxlcjo6cGF5bG9hZEZvcihub2RlLT5tYWNoaW5lTG9j
YWwoKSkpOwotICAgICAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZS50YWdHUFIoKSwgSklUQ29t
cGlsZXI6OnRhZ0Zvcihub2RlLT5tYWNoaW5lTG9jYWwoKSkpOworICAgICAgICAgICAgSlNWYWx1
ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgICAgIG1faml0
LnN0b3JlVmFsdWUodmFsdWVSZWdzLCBKSVRDb21waWxlcjo6YWRkcmVzc0Zvcihub2RlLT5tYWNo
aW5lTG9jYWwoKSkpOwogICAgICAgICAgICAgbm9SZXN1bHQobm9kZSk7CiAgICAgICAgICAgICBy
ZWNvcmRTZXRMb2NhbChkYXRhRm9ybWF0Rm9yKG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpLT5m
bHVzaEZvcm1hdCgpKSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTI3ODcsMTIgKzI3NzUsOSBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAg
ICAgdGVtcEZQUik7CiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2FzZSA9
IG1faml0LmJyYW5jaElmTmFOKHRlbXBGUFIpOwogICAgICAgICAgICAgSlNWYWx1ZSBuYW4gPSBK
U1ZhbHVlKEpTVmFsdWU6OkVuY29kZUFzRG91YmxlLCBQTmFOKTsKLSAgICAgICAgICAgIG1faml0
LnN0b3JlMzIoCi0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihu
YW4udS5hc0JpdHMudGFnKSwKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QmFzZUlu
ZGV4KHN0b3JhZ2VHUFIsIHZhbHVlUGF5bG9hZEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWln
aHQsIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7Ci0gICAgICAgICAg
ICBtX2ppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIobmFuLnUuYXNCaXRzLnBheWxvYWQpLAotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgdmFsdWVQYXlsb2FkR1BSLCBNYWNyb0Fzc2VtYmxl
cjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQp
KSk7CisgICAgICAgICAgICBtX2ppdC5zdG9yZVRydXN0ZWRWYWx1ZSgKKyAgICAgICAgICAgICAg
ICBuYW4sCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdl
R1BSLCB2YWx1ZVBheWxvYWRHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7CiAgICAg
ICAgICAgICBib3hEb3VibGUodGVtcEZQUiwgdmFsdWVUYWdHUFIsIHZhbHVlUGF5bG9hZEdQUik7
CiAKICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKApAQCAtMjgyMSw5ICsyODA2LDgg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAg
bV9qaXQuc3ViMzIoVHJ1c3RlZEltbTMyKDEpLCBzdG9yYWdlTGVuZ3RoR1BSKTsKICAgICAgICAg
CiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2FzZSA9IG1faml0LmJyYW5j
aDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHN0b3JhZ2VMZW5ndGhHUFIsIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VHUFIsIEFycmF5U3RvcmFnZTo6dmVjdG9yTGVuZ3Ro
T2Zmc2V0KCkpKTsKLSAgICAgICAgCi0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoTWFjcm9Bc3Nl
bWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBzdG9yYWdlTGVuZ3RoR1BSLCBNYWNyb0Fzc2Vt
Ymxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9P
RkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSwgdmFsdWVUYWdHUFIpOwotICAgICAgICAg
ICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgc3Rv
cmFnZUxlbmd0aEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6
dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9h
ZCkpLCB2YWx1ZVBheWxvYWRHUFIpOworCisgICAgICAgICAgICBtX2ppdC5sb2FkVmFsdWUoTWFj
cm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBzdG9yYWdlTGVuZ3RoR1BSLCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSksIEpT
VmFsdWVSZWdzIHsgdmFsdWVUYWdHUFIsIHZhbHVlUGF5bG9hZEdQUiB9KTsKICAgICAgICAgCiAg
ICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHN0b3JhZ2VMZW5ndGhHUFIsIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHN0b3JhZ2VHUFIsIEFycmF5U3RvcmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggN2VmNTFj
ZDgxZDA5MmNhM2VmNzRkYzIzMjg5YzY1NmYzZjk0MzUyNi4uZjNiYzIzNjdjZjc5MTg5M2I1NmVk
YmZmYWYwZTE0ZWVkMGQ1MTRlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2Vt
Ymx5SGVscGVycy5oCkBAIC0xODQsOCArMTg0LDggQEAgcHVibGljOgogI2lmIFVTRShKU1ZBTFVF
NjQpCiAgICAgICAgIHN0b3JlNjQocmVncy5ncHIoKSwgYWRkcmVzcyk7CiAjZWxzZQotICAgICAg
ICBzdG9yZTMyKHJlZ3MucGF5bG9hZEdQUigpLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KGJpdHdpc2Vf
Y2FzdDx1aW50cHRyX3Q+KGFkZHJlc3MpICsgUGF5bG9hZE9mZnNldCkpOwotICAgICAgICBzdG9y
ZTMyKHJlZ3MudGFnR1BSKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oYml0d2lzZV9jYXN0PHVpbnRw
dHJfdD4oYWRkcmVzcykgKyBUYWdPZmZzZXQpKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydCghUGF5
bG9hZE9mZnNldCAmJiBUYWdPZmZzZXQgPT0gNCwgIkFzc3VtZXMgbGl0dGxlLWVuZGlhbiBzeXN0
ZW0iKTsKKyAgICAgICAgc3RvcmVQYWlyMzIocmVncy5wYXlsb2FkR1BSKCksIHJlZ3MudGFnR1BS
KCksIGFkZHJlc3MpOwogI2VuZGlmCiAgICAgfQogCkBAIC0yNjIsMTYgKzI2MiwyNyBAQCBwdWJs
aWM6CiAjZW5kaWYKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlVmFsdWUoSlNWYWx1ZSB2YWx1ZSwg
QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVWYWx1ZShKU1ZhbHVlIHZhbHVlLCBBZGRy
ZXNzIGFkZHJlc3MsIEpTVmFsdWVSZWdzIHRtcEpTUikKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICAgICAgVU5VU0VEX1BBUkFNKHRtcEpTUik7CiAgICAgICAgIHN0b3JlNjQoSW1tNjQo
SlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSksIGFkZHJlc3MpOwogI2VsaWYgVVNFKEpTVkFMVUUzMl82
NCkKLSAgICAgICAgc3RvcmUzMihJbW0zMih2YWx1ZS50YWcoKSksIGFkZHJlc3Mud2l0aE9mZnNl
dChUYWdPZmZzZXQpKTsKLSAgICAgICAgc3RvcmUzMihJbW0zMih2YWx1ZS5wYXlsb2FkKCkpLCBh
ZGRyZXNzLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworICAgICAgICAvLyBDYW4gaW1wbGVt
ZW50IHRoaXMgd2l0aG91dCB0aGUgdG1wSlNSLCBidXQgdXNpbmcgaXQgeWllbGRzIGRlbnNlciBj
b2RlLgorICAgICAgICBtb3ZlVmFsdWUodmFsdWUsIHRtcEpTUik7CisgICAgICAgIHN0b3JlVmFs
dWUodG1wSlNSLCBhZGRyZXNzKTsKICNlbmRpZgogICAgIH0KIAorI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgdm9pZCBzdG9yZVZhbHVlKEpTVmFsdWUgdmFsdWUsIHZvaWQqIGFkZHJlc3MsIEpT
VmFsdWVSZWdzIHRtcEpTUikKKyAgICB7CisgICAgICAgIC8vIENhbiBpbXBsZW1lbnQgdGhpcyB3
aXRob3V0IHRoZSB0bXBKU1IsIGJ1dCB1c2luZyBpdCB5aWVsZHMgZGVuc2VyIGNvZGUuCisgICAg
ICAgIG1vdmVWYWx1ZSh2YWx1ZSwgdG1wSlNSKTsKKyAgICAgICAgc3RvcmVWYWx1ZSh0bXBKU1Is
IGFkZHJlc3MpOworICAgIH0KKyNlbmRpZgorCiAgICAgdm9pZCBzdG9yZVRydXN0ZWRWYWx1ZShK
U1ZhbHVlIHZhbHVlLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCAwYjNiNWZjZDkz
YWIxMmVkNDQwNjJlMmViZWU2OGM4NmY0ZGZmMmVkLi5jODAxMzliNzliNWUzYTFlMzU4YmNkZWRm
M2EyNzAyZTdlMTdlNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbW92KGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBpZiAoc3JjLmlzQ29uc3RhbnQoKSkgewog
ICAgICAgICBpZiAobV9wcm9maWxlZENvZGVCbG9jay0+aXNDb25zdGFudE93bmVkQnlVbmxpbmtl
ZENvZGVCbG9jayhzcmMpKSB7Ci0gICAgICAgICAgICBzdG9yZVZhbHVlKG1fdW5saW5rZWRDb2Rl
QmxvY2stPmdldENvbnN0YW50KHNyYyksIGFkZHJlc3NGb3IoZHN0KSk7CisgICAgICAgICAgICBz
dG9yZVZhbHVlKG1fdW5saW5rZWRDb2RlQmxvY2stPmdldENvbnN0YW50KHNyYyksIGFkZHJlc3NG
b3IoZHN0KSwganNSZWdUMTApOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbG9hZENv
ZGVCbG9ja0NvbnN0YW50KHNyYywganNSZWdUMTApOwogICAgICAgICAgICAgc3RvcmVWYWx1ZShq
c1JlZ1QxMCwgYWRkcmVzc0Zvcihkc3QpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>