<?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>226998</bug_id>
          
          <creation_ts>2021-06-14 16:29:54 -0700</creation_ts>
          <short_desc>Add ldp and stp support for FP registers, plus some bug fixes.</short_desc>
          <delta_ts>2023-08-25 14:29:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>positivefinance1</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1769603</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-06-14 16:29:54 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769604</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-14 16:30:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/79313717&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769629</commentid>
    <comment_count>2</comment_count>
      <attachid>431388</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-06-14 17:02:57 -0700</bug_when>
    <thetext>Created attachment 431388
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769643</commentid>
    <comment_count>3</comment_count>
      <attachid>431388</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-06-14 17:26:07 -0700</bug_when>
    <thetext>Comment on attachment 431388
proposed patch.

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:20
&gt; +        3. Add ARM64Assembler query methods for determining in an immediate is encodable

in an immediate =&gt; if an immediate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769656</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-06-14 18:04:43 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r278856: &lt;http://trac.webkit.org/r278856&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431388</attachid>
            <date>2021-06-14 17:02:57 -0700</date>
            <delta_ts>2021-06-14 17:26:07 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-226998.patch</filename>
            <type>text/plain</type>
            <size>32448</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc4ODUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBA
CisyMDIxLTA2LTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgbGRwIGFuZCBzdHAgc3VwcG9ydCBmb3IgRlAgcmVnaXN0ZXJzLCBwbHVzIHNvbWUgYnVnIGZp
eGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2
OTk4CisgICAgICAgIHJkYXI6Ly83OTMxMzcxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyB0aGUgZm9sbG93aW5nOgorICAg
ICAgICAxLiBBZGQgbGRwIGFuZCBzdHAgc3VwcG9ydCBmb3IgRlAgcmVnaXN0ZXJzLgorICAgICAg
ICAgICBUaGlzIHNpbXBseSBlbnRhaWxzIHByb3ZpZGluZyB3cmFwcGVycyB0aGF0IHRha2UgRlBS
ZWdpc3RlcklEIGFuZCBwYXNzaW5nIHRydWUKKyAgICAgICAgICAgZm9yIHRoZSBWIGJpdCB0byB0
aGUgdW5kZXJseWluZyBsb2FkU3RvcmVSZWdpc3RlclBhaXJYWFggZW5jb2RpbmcgZnVuY3Rpb24u
CisgICAgICAgICAgIFYgaXMgZm9yIHZlY3RvciAoYWthIGZsb2F0aW5nIHBvaW50KS4gIFRoaXMg
d2lsbCBjYXVzZSBiaXQgMjYgaW4gdGhlIGluc3RydWN0aW9uCisgICAgICAgICAgIHRvIGJlIHNl
dCBpbmRpY2F0aW5nIHRoYXQgaXQncyBsb2FkaW5nIC8gc3RvcmluZyBmbG9hdGluZyBwb2ludCBy
ZWdpc3RlcnMuCisKKyAgICAgICAgMi4gQWRkIEFSTTY0IGRpc2Fzc2VtYmxlciBzdXBwb3J0IGxk
cCBhbmQgc3RwIGZvciBGUCByZWdpc3RlcnMuCisgICAgICAgICAgIFRoaXMgaW5jbHVkZXMgZml4
aW5nIEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6Om1hc2sgdG8gbm90IGV4Y2x1ZGUg
dGhlCisgICAgICAgICAgIEZQIHZlcnNpb25zIG9mIHRoZSBpbnN0cnVjdGlvbnMuCisKKyAgICAg
ICAgMy4gQWRkIEFSTTY0QXNzZW1ibGVyIHF1ZXJ5IG1ldGhvZHMgZm9yIGRldGVybWluaW5nIGlu
IGFuIGltbWVkaWF0ZSBpcyBlbmNvZGFibGUKKyAgICAgICAgICAgYXMgdGhlIHNpZ25lZCAxMiBi
aXQgaW1tZWRpYXRlIG9mIGxkcCBhbmQgc3RwIGluc3RydWN0aW9ucy4KKworICAgICAgICA0LiBG
aXggbGRwIGFuZCBzdHAgb2Zmc2V0IGZvcm0gdG8gdGFrZSBhbiBpbnQgaW5zdGVhZCBvZiBhbiB1
bnNpZ25lZC4gIFRoZQorICAgICAgICAgICBpbW1lZGlhdGUgaXQgdGFrZXMgaXMgYSAxMi1iaXQg
c2lnbmVkIGludCwgbm90IHVuc2lnbmVkLgorCisgICAgICAgIDUuIEluIGxvYWRTdG9yZVJlZ2lz
dGVyUGFpclhYWCBlbmNvZGluZyBmdW5jdGlvbnMgdXNlZCBieSB0aGUgZm9ybXMgb2YgbGRwIGFu
ZCBzdHAsCisgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUIHRoYXQgdGhlIHBhc3NlZCBpbiBpbW1l
ZGlhdGUgaXMgZW5jb2RhYmxlLiAgVW5saWtlIGxkdXIgLyBzdHVyLAorICAgICAgICAgICB0aGVy
ZSBpcyBubyBmb3JtIG9mIGxkcCAvIHN0cCB0aGF0IHRha2VzIHRoZSBvZmZzZXQgaW4gYSByZWdp
c3RlciB0aGF0IGNhbiBiZQorICAgICAgICAgICB1c2VkIGFzIGEgZmFpbCBvdmVyLiAgSGVuY2Us
IGlmIHRoZSBpbW1lZGlhdGUgaXMgbm90IGVuY29kYWJsZSwgdGhpcyBpcyBhCisgICAgICAgICAg
IG5vbi1yZWNvdmVyYWJsZSBldmVudC4gIFRoZSBjbGllbnQgaXMgcmVzcG9uc2libGUgZm9yIGVu
c3VyaW5nIHRoYXQgdGhlIG9mZnNldAorICAgICAgICAgICBpcyBlbmNvZGFibGUuCisKKyAgICAg
ICAgNi4gQWRkZWQgc29tZSB0ZXN0bWFzbSB0ZXN0cyBmb3IgdGVzdGluZyB0aGUgb2Zmc2V0IGZv
cm0gKGFzIG9wcG9zZWQgdG8gUHJlSW5kZXgKKyAgICAgICAgICAgYW5kIFBvc3RJbmRleCBmb3Jt
cykgb2YgbGRwIGFuZCBzdHAuICBXZSBjdXJyZW50bHkgb25seSB1c2UgdGhlIG9mZnNldCBmb3Jt
CisgICAgICAgICAgIGluIG91ciBKSVRzLgorCisgICAgICAgICogYXNzZW1ibGVyL0FSTTY0QXNz
ZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTTY0QXNzZW1ibGVyOjppc1ZhbGlkTERQSW1tKToK
KyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmlzVmFsaWRMRFBGUEltbSk6CisgICAgICAg
IChKU0M6OkFSTTY0QXNzZW1ibGVyOjpsZHApOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxl
cjo6bGRucCk6CisgICAgICAgIChKU0M6OkFSTTY0QXNzZW1ibGVyOjppc1ZhbGlkU1RQSW1tKToK
KyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmlzVmFsaWRTVFBGUEltbSk6CisgICAgICAg
IChKU0M6OkFSTTY0QXNzZW1ibGVyOjpzdHApOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxl
cjo6c3RucCk6CisgICAgICAgIChKU0M6OkFSTTY0QXNzZW1ibGVyOjpsb2FkU3RvcmVSZWdpc3Rl
clBhaXJQb3N0SW5kZXgpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bG9hZFN0b3Jl
UmVnaXN0ZXJQYWlyUHJlSW5kZXgpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bG9h
ZFN0b3JlUmVnaXN0ZXJQYWlyT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6
OmxvYWRTdG9yZVJlZ2lzdGVyUGFpck5vblRlbXBvcmFsKToKKyAgICAgICAgKiBhc3NlbWJsZXIv
QXNzZW1ibGVyQ29tbW9uLmg6CisgICAgICAgIChKU0M6OmlzVmFsaWRTaWduZWRJbW03KToKKyAg
ICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkUGFpcjY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NDo6c3RvcmVQYWlyNjQpOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5j
cHA6CisgICAgICAgIChKU0M6OnRlc3RMb2FkU3RvcmVQYWlyNjRJbnQ2NCk6CisgICAgICAgIChK
U0M6OnRlc3RMb2FkU3RvcmVQYWlyNjREb3VibGUpOgorICAgICAgICAqIGRpc2Fzc2VtYmxlci9B
Uk02NC9BNjRET3Bjb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2
NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6OmZvcm1hdCk6CisgICAgICAgICogZGlzYXNz
ZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuaDoKKwogMjAyMS0wNi0xNCAgWWlqaWEgSHVhbmcgIDx5
aWppYV9odWFuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIEFpciBvcGNvZGUgc3ViMzIvNjQo
UmVnLCBJbW0sIFJlZykgZm9ybSBmb3IgQVJNNjQgYW5kIHNlbGVjdCB0aGlzIGluc3RydWN0aW9u
IGluIEFpcgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFzc2Vt
Ymxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJN
NjRBc3NlbWJsZXIuaAkocmV2aXNpb24gMjc4ODQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTExNSw2ICsx
MTE1LDIwIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+Cisg
ICAgQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBpc1ZhbGlkTERQSW1tKGludCBpbW1lZGlhdGUp
CisgICAgeworICAgICAgICB1bnNpZ25lZCBpbW1lZFNoaWZ0QW1vdW50ID0gbWVtUGFpck9mZnNl
dFNoaWZ0KGZhbHNlLCBNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6ZSkpOworICAgICAgICByZXR1
cm4gaXNWYWxpZFNpZ25lZEltbTcoaW1tZWRpYXRlLCBpbW1lZFNoaWZ0QW1vdW50KTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMg
Ym9vbCBpc1ZhbGlkTERQRlBJbW0oaW50IGltbWVkaWF0ZSkKKyAgICB7CisgICAgICAgIHVuc2ln
bmVkIGltbWVkU2hpZnRBbW91bnQgPSBtZW1QYWlyT2Zmc2V0U2hpZnQodHJ1ZSwgTUVNUEFJUk9Q
U0laRV9GUChkYXRhc2l6ZSkpOworICAgICAgICByZXR1cm4gaXNWYWxpZFNpZ25lZEltbTcoaW1t
ZWRpYXRlLCBpbW1lZFNoaWZ0QW1vdW50KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxpbnQgZGF0
YXNpemU+CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGxkcChSZWdpc3RlcklEIHJ0LCBSZWdpc3Rl
cklEIHJ0MiwgUmVnaXN0ZXJJRCBybiwgUGFpclBvc3RJbmRleCBzaW1tKQogICAgIHsKICAgICAg
ICAgQ0hFQ0tfREFUQVNJWkUoKTsKQEAgLTExMjksMTcgKzExNDMsNDUgQEAgcHVibGljOgogICAg
IH0KIAogICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
bGRwKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklEIHJuLCB1bnNpZ25l
ZCBwaW1tID0gMCkKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgbGRwKFJlZ2lzdGVySUQgcnQsIFJl
Z2lzdGVySUQgcnQyLCBSZWdpc3RlcklEIHJuLCBpbnQgc2ltbSA9IDApCisgICAgeworICAgICAg
ICBDSEVDS19EQVRBU0laRSgpOworICAgICAgICBpbnNuKGxvYWRTdG9yZVJlZ2lzdGVyUGFpck9m
ZnNldChNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6ZSksIGZhbHNlLCBNZW1PcF9MT0FELCBzaW1t
LCBybiwgcnQsIHJ0MikpOworICAgIH0KKworICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KKyAg
ICBBTFdBWVNfSU5MSU5FIHZvaWQgbGRucChSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJ0Miwg
UmVnaXN0ZXJJRCBybiwgaW50IHNpbW0gPSAwKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJ
WkUoKTsKKyAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJOb25UZW1wb3JhbChNRU1Q
QUlST1BTSVpFX0lOVChkYXRhc2l6ZSksIGZhbHNlLCBNZW1PcF9MT0FELCBzaW1tLCBybiwgcnQs
IHJ0MikpOworICAgIH0KKworICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdBWVNf
SU5MSU5FIHZvaWQgbGRwKEZQUmVnaXN0ZXJJRCBydCwgRlBSZWdpc3RlcklEIHJ0MiwgUmVnaXN0
ZXJJRCBybiwgUGFpclBvc3RJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJ
WkUoKTsKKyAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgoTUVNUEFJ
Uk9QU0laRV9GUChkYXRhc2l6ZSksIHRydWUsIE1lbU9wX0xPQUQsIHNpbW0sIHJuLCBydCwgcnQy
KSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJ
TkUgdm9pZCBsZHAoRlBSZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklE
IHJuLCBQYWlyUHJlSW5kZXggc2ltbSkKKyAgICB7CisgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7
CisgICAgICAgIGluc24obG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgoTUVNUEFJUk9QU0la
RV9GUChkYXRhc2l6ZSksIHRydWUsIE1lbU9wX0xPQUQsIHNpbW0sIHJuLCBydCwgcnQyKSk7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBsZHAoRlBSZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklEIHJuLCBp
bnQgc2ltbSA9IDApCiAgICAgewogICAgICAgICBDSEVDS19EQVRBU0laRSgpOwotICAgICAgICBp
bnNuKGxvYWRTdG9yZVJlZ2lzdGVyUGFpck9mZnNldChNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6
ZSksIGZhbHNlLCBNZW1PcF9MT0FELCBwaW1tLCBybiwgcnQsIHJ0MikpOworICAgICAgICBpbnNu
KGxvYWRTdG9yZVJlZ2lzdGVyUGFpck9mZnNldChNRU1QQUlST1BTSVpFX0ZQKGRhdGFzaXplKSwg
dHJ1ZSwgTWVtT3BfTE9BRCwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZTxpbnQgZGF0YXNpemU+Ci0gICAgQUxXQVlTX0lOTElORSB2b2lkIGxkbnAoUmVnaXN0ZXJJ
RCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4sIHVuc2lnbmVkIHBpbW0gPSAwKQor
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBsZG5wKEZQUmVnaXN0ZXJJRCBydCwgRlBSZWdpc3RlcklE
IHJ0MiwgUmVnaXN0ZXJJRCBybiwgaW50IHNpbW0gPSAwKQogICAgIHsKICAgICAgICAgQ0hFQ0tf
REFUQVNJWkUoKTsKLSAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJOb25UZW1wb3Jh
bChNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6ZSksIGZhbHNlLCBNZW1PcF9MT0FELCBwaW1tLCBy
biwgcnQsIHJ0MikpOworICAgICAgICBpbnNuKGxvYWRTdG9yZVJlZ2lzdGVyUGFpck5vblRlbXBv
cmFsKE1FTVBBSVJPUFNJWkVfRlAoZGF0YXNpemUpLCB0cnVlLCBNZW1PcF9MT0FELCBzaW1tLCBy
biwgcnQsIHJ0MikpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KQEAgLTE3
NDQsNiArMTc4NiwxOCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdGVtcGxhdGU8aW50IGRhdGFz
aXplPgorICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaXNWYWxpZFNUUEltbShpbnQgaW1t
ZWRpYXRlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzVmFsaWRMRFBJbW08ZGF0YXNpemU+KGlt
bWVkaWF0ZSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZ
U19JTkxJTkUgc3RhdGljIGJvb2wgaXNWYWxpZFNUUEZQSW1tKGludCBpbW1lZGlhdGUpCisgICAg
eworICAgICAgICByZXR1cm4gaXNWYWxpZExEUEZQSW1tPGRhdGFzaXplPihpbW1lZGlhdGUpOwor
ICAgIH0KKworICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KICAgICBBTFdBWVNfSU5MSU5FIHZv
aWQgc3RwKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklEIHJuLCBQYWly
UG9zdEluZGV4IHNpbW0pCiAgICAgewogICAgICAgICBDSEVDS19EQVRBU0laRSgpOwpAQCAtMTc1
OCwxNyArMTgxMiw0NSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdGVtcGxhdGU8aW50IGRhdGFz
aXplPgotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzdHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJ
RCBydDIsIFJlZ2lzdGVySUQgcm4sIHVuc2lnbmVkIHBpbW0gPSAwKQorICAgIEFMV0FZU19JTkxJ
TkUgdm9pZCBzdHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4s
IGludCBzaW1tID0gMCkKKyAgICB7CisgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7CisgICAgICAg
IGluc24obG9hZFN0b3JlUmVnaXN0ZXJQYWlyT2Zmc2V0KE1FTVBBSVJPUFNJWkVfSU5UKGRhdGFz
aXplKSwgZmFsc2UsIE1lbU9wX1NUT1JFLCBzaW1tLCBybiwgcnQsIHJ0MikpOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3RucChS
ZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJ0MiwgUmVnaXN0ZXJJRCBybiwgaW50IHNpbW0gPSAw
KQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKKyAgICAgICAgaW5zbihsb2FkU3Rv
cmVSZWdpc3RlclBhaXJOb25UZW1wb3JhbChNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6ZSksIGZh
bHNlLCBNZW1PcF9TVE9SRSwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKKyAgICB9CisKKyAgICB0ZW1w
bGF0ZTxpbnQgZGF0YXNpemU+CisgICAgQUxXQVlTX0lOTElORSB2b2lkIHN0cChGUFJlZ2lzdGVy
SUQgcnQsIEZQUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4sIFBhaXJQb3N0SW5kZXggc2lt
bSkKKyAgICB7CisgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7CisgICAgICAgIGluc24obG9hZFN0
b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KE1FTVBBSVJPUFNJWkVfRlAoZGF0YXNpemUpLCB0cnVl
LCBNZW1PcF9TVE9SRSwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTxpbnQgZGF0YXNpemU+CisgICAgQUxXQVlTX0lOTElORSB2b2lkIHN0cChGUFJlZ2lzdGVySUQg
cnQsIEZQUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4sIFBhaXJQcmVJbmRleCBzaW1tKQor
ICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKKyAgICAgICAgaW5zbihsb2FkU3RvcmVS
ZWdpc3RlclBhaXJQcmVJbmRleChNRU1QQUlST1BTSVpFX0ZQKGRhdGFzaXplKSwgdHJ1ZSwgTWVt
T3BfU1RPUkUsIHNpbW0sIHJuLCBydCwgcnQyKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50
IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzdHAoRlBSZWdpc3RlcklEIHJ0LCBG
UFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklEIHJuLCBpbnQgc2ltbSA9IDApCiAgICAgewogICAg
ICAgICBDSEVDS19EQVRBU0laRSgpOwotICAgICAgICBpbnNuKGxvYWRTdG9yZVJlZ2lzdGVyUGFp
ck9mZnNldChNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6ZSksIGZhbHNlLCBNZW1PcF9TVE9SRSwg
cGltbSwgcm4sIHJ0LCBydDIpKTsKKyAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJP
ZmZzZXQoTUVNUEFJUk9QU0laRV9GUChkYXRhc2l6ZSksIHRydWUsIE1lbU9wX1NUT1JFLCBzaW1t
LCBybiwgcnQsIHJ0MikpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KLSAg
ICBBTFdBWVNfSU5MSU5FIHZvaWQgc3RucChSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJ0Miwg
UmVnaXN0ZXJJRCBybiwgdW5zaWduZWQgcGltbSA9IDApCisgICAgQUxXQVlTX0lOTElORSB2b2lk
IHN0bnAoRlBSZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklEIHJuLCBp
bnQgc2ltbSA9IDApCiAgICAgewogICAgICAgICBDSEVDS19EQVRBU0laRSgpOwotICAgICAgICBp
bnNuKGxvYWRTdG9yZVJlZ2lzdGVyUGFpck5vblRlbXBvcmFsKE1FTVBBSVJPUFNJWkVfSU5UKGRh
dGFzaXplKSwgZmFsc2UsIE1lbU9wX1NUT1JFLCBwaW1tLCBybiwgcnQsIHJ0MikpOworICAgICAg
ICBpbnNuKGxvYWRTdG9yZVJlZ2lzdGVyUGFpck5vblRlbXBvcmFsKE1FTVBBSVJPUFNJWkVfRlAo
ZGF0YXNpemUpLCB0cnVlLCBNZW1PcF9TVE9SRSwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKICAgICB9
CiAKICAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CkBAIC0zNTQ0LDYgKzM2MjYsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgICAgIEFTU0VSVChvcGMgPT0gKG9wYyAmIDEpKTsgLy8gT25seSBsb2FkIG9y
IHN0b3JlLCBsb2FkIHNpZ25lZCA2NCBpcyBoYW5kbGVkIHZpYSBzaXplLgogICAgICAgICBBU1NF
UlQoViB8fCAoc2l6ZSAhPSBNZW1QYWlyT3BfTG9hZFNpZ25lZF8zMikgfHwgKG9wYyA9PSBNZW1P
cF9MT0FEKSk7IC8vIFRoZXJlIGlzbid0IGFuIGludGVnZXIgc3RvcmUgc2lnbmVkLgogICAgICAg
ICB1bnNpZ25lZCBpbW1lZFNoaWZ0QW1vdW50ID0gbWVtUGFpck9mZnNldFNoaWZ0KFYsIHNpemUp
OworICAgICAgICBSRUxFQVNFX0FTU0VSVChpc1ZhbGlkU2lnbmVkSW1tNyhpbW1lZGlhdGUsIGlt
bWVkU2hpZnRBbW91bnQpKTsKICAgICAgICAgaW50IGltbTcgPSBpbW1lZGlhdGUgPj4gaW1tZWRT
aGlmdEFtb3VudDsKICAgICAgICAgQVNTRVJUKChpbW03IDw8IGltbWVkU2hpZnRBbW91bnQpID09
IGltbWVkaWF0ZSAmJiBpc0ludDw3PihpbW03KSk7CiAgICAgICAgIHJldHVybiAoMHgyODgwMDAw
MCB8IHNpemUgPDwgMzAgfCBWIDw8IDI2IHwgb3BjIDw8IDIyIHwgKGltbTcgJiAweDdmKSA8PCAx
NSB8IHJ0MiA8PCAxMCB8IHhPclNwKHJuKSA8PCA1IHwgcnQpOwpAQCAtMzU3NSw2ICszNjU4LDcg
QEAgcHJvdGVjdGVkOgogICAgICAgICBBU1NFUlQob3BjID09IChvcGMgJiAxKSk7IC8vIE9ubHkg
bG9hZCBvciBzdG9yZSwgbG9hZCBzaWduZWQgNjQgaXMgaGFuZGxlZCB2aWEgc2l6ZS4KICAgICAg
ICAgQVNTRVJUKFYgfHwgKHNpemUgIT0gTWVtUGFpck9wX0xvYWRTaWduZWRfMzIpIHx8IChvcGMg
PT0gTWVtT3BfTE9BRCkpOyAvLyBUaGVyZSBpc24ndCBhbiBpbnRlZ2VyIHN0b3JlIHNpZ25lZC4K
ICAgICAgICAgdW5zaWduZWQgaW1tZWRTaGlmdEFtb3VudCA9IG1lbVBhaXJPZmZzZXRTaGlmdChW
LCBzaXplKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNWYWxpZFNpZ25lZEltbTcoaW1tZWRp
YXRlLCBpbW1lZFNoaWZ0QW1vdW50KSk7CiAgICAgICAgIGludCBpbW03ID0gaW1tZWRpYXRlID4+
IGltbWVkU2hpZnRBbW91bnQ7CiAgICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1v
dW50KSA9PSBpbW1lZGlhdGUgJiYgaXNJbnQ8Nz4oaW1tNykpOwogICAgICAgICByZXR1cm4gKDB4
Mjk4MDAwMDAgfCBzaXplIDw8IDMwIHwgViA8PCAyNiB8IG9wYyA8PCAyMiB8IChpbW03ICYgMHg3
ZikgPDwgMTUgfCBydDIgPDwgMTAgfCB4T3JTcChybikgPDwgNSB8IHJ0KTsKQEAgLTM1OTIsNiAr
MzY3Niw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgQVNTRVJUKG9wYyA9PSAob3BjICYgMSkpOyAv
LyBPbmx5IGxvYWQgb3Igc3RvcmUsIGxvYWQgc2lnbmVkIDY0IGlzIGhhbmRsZWQgdmlhIHNpemUu
CiAgICAgICAgIEFTU0VSVChWIHx8IChzaXplICE9IE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMyKSB8
fCAob3BjID09IE1lbU9wX0xPQUQpKTsgLy8gVGhlcmUgaXNuJ3QgYW4gaW50ZWdlciBzdG9yZSBz
aWduZWQuCiAgICAgICAgIHVuc2lnbmVkIGltbWVkU2hpZnRBbW91bnQgPSBtZW1QYWlyT2Zmc2V0
U2hpZnQoViwgc2l6ZSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzVmFsaWRTaWduZWRJbW03
KGltbWVkaWF0ZSwgaW1tZWRTaGlmdEFtb3VudCkpOwogICAgICAgICBpbnQgaW1tNyA9IGltbWVk
aWF0ZSA+PiBpbW1lZFNoaWZ0QW1vdW50OwogICAgICAgICBBU1NFUlQoKGltbTcgPDwgaW1tZWRT
aGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50PDc+KGltbTcpKTsKICAgICAgICAgcmV0
dXJuICgweDI5MDAwMDAwIHwgc2l6ZSA8PCAzMCB8IFYgPDwgMjYgfCBvcGMgPDwgMjIgfCAoaW1t
NyAmIDB4N2YpIDw8IDE1IHwgcnQyIDw8IDEwIHwgeE9yU3Aocm4pIDw8IDUgfCBydCk7CkBAIC0z
NjA5LDYgKzM2OTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEFTU0VSVChvcGMgPT0gKG9wYyAm
IDEpKTsgLy8gT25seSBsb2FkIG9yIHN0b3JlLCBsb2FkIHNpZ25lZCA2NCBpcyBoYW5kbGVkIHZp
YSBzaXplLgogICAgICAgICBBU1NFUlQoViB8fCAoc2l6ZSAhPSBNZW1QYWlyT3BfTG9hZFNpZ25l
ZF8zMikgfHwgKG9wYyA9PSBNZW1PcF9MT0FEKSk7IC8vIFRoZXJlIGlzbid0IGFuIGludGVnZXIg
c3RvcmUgc2lnbmVkLgogICAgICAgICB1bnNpZ25lZCBpbW1lZFNoaWZ0QW1vdW50ID0gbWVtUGFp
ck9mZnNldFNoaWZ0KFYsIHNpemUpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChpc1ZhbGlkU2ln
bmVkSW1tNyhpbW1lZGlhdGUsIGltbWVkU2hpZnRBbW91bnQpKTsKICAgICAgICAgaW50IGltbTcg
PSBpbW1lZGlhdGUgPj4gaW1tZWRTaGlmdEFtb3VudDsKICAgICAgICAgQVNTRVJUKChpbW03IDw8
IGltbWVkU2hpZnRBbW91bnQpID09IGltbWVkaWF0ZSAmJiBpc0ludDw3PihpbW03KSk7CiAgICAg
ICAgIHJldHVybiAoMHgyODAwMDAwMCB8IHNpemUgPDwgMzAgfCBWIDw8IDI2IHwgb3BjIDw8IDIy
IHwgKGltbTcgJiAweDdmKSA8PCAxNSB8IHJ0MiA8PCAxMCB8IHhPclNwKHJuKSA8PCA1IHwgcnQp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJDb21tb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxl
ckNvbW1vbi5oCShyZXZpc2lvbiAyNzg4NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0Fzc2VtYmxlckNvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzQsNiArNzQsMTUg
QEAgQUxXQVlTX0lOTElORSBib29sIGlzVmFsaWRTaWduZWRJbW05KGludAogICAgIHJldHVybiBp
c0ludDkodmFsdWUpOwogfQogCitBTFdBWVNfSU5MSU5FIGJvb2wgaXNWYWxpZFNpZ25lZEltbTco
aW50MzJfdCB2YWx1ZSwgaW50IGFsaWdubWVudFNoaWZ0QW1vdW50KQoreworICAgIGNvbnN0ZXhw
ciBpbnQzMl90IGRpc2FsbG93ZWRIaWdoQml0cyA9IDMyIC0gNzsKKyAgICBpbnQzMl90IHNoaWZ0
ZWRWYWx1ZSA9IHZhbHVlID4+IGFsaWdubWVudFNoaWZ0QW1vdW50OworICAgIGJvb2wgZml0c0lu
N0JpdHMgPSBzaGlmdGVkVmFsdWUgPT0gKChzaGlmdGVkVmFsdWUgPDwgZGlzYWxsb3dlZEhpZ2hC
aXRzKSA+PiBkaXNhbGxvd2VkSGlnaEJpdHMpOworICAgIGJvb2wgaGFzQ29ycmVjdEFsaWdubWVu
dCA9IHZhbHVlID09IChzaGlmdGVkVmFsdWUgPDwgYWxpZ25tZW50U2hpZnRBbW91bnQpOworICAg
IHJldHVybiBmaXRzSW43Qml0cyAmJiBoYXNDb3JyZWN0QWxpZ25tZW50OworfQorCiBjbGFzcyBB
Uk02NExvZ2ljYWxJbW1lZGlhdGUgewogcHVibGljOgogICAgIHN0YXRpYyBBUk02NExvZ2ljYWxJ
bW1lZGlhdGUgY3JlYXRlMzIodWludDMyX3QgdmFsdWUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAkocmV2aXNp
b24gMjc4ODQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNDQsNiArMTI0NCwxNiBAQCBwdWJsaWM6
CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkbnA8NjQ+KGRlc3QxLCBkZXN0Miwgc3JjLCBvZmZzZXQu
bV92YWx1ZSk7CiAgICAgfQogCisgICAgdm9pZCBsb2FkUGFpcjY0KFJlZ2lzdGVySUQgc3JjLCBG
UFJlZ2lzdGVySUQgZGVzdDEsIEZQUmVnaXN0ZXJJRCBkZXN0MikKKyAgICB7CisgICAgICAgIGxv
YWRQYWlyNjQoc3JjLCBUcnVzdGVkSW1tMzIoMCksIGRlc3QxLCBkZXN0Mik7CisgICAgfQorCisg
ICAgdm9pZCBsb2FkUGFpcjY0KFJlZ2lzdGVySUQgc3JjLCBUcnVzdGVkSW1tMzIgb2Zmc2V0LCBG
UFJlZ2lzdGVySUQgZGVzdDEsIEZQUmVnaXN0ZXJJRCBkZXN0MikKKyAgICB7CisgICAgICAgIG1f
YXNzZW1ibGVyLmxkcDw2ND4oZGVzdDEsIGRlc3QyLCBzcmMsIG9mZnNldC5tX3ZhbHVlKTsKKyAg
ICB9CisKICAgICB2b2lkIGFib3J0V2l0aFJlYXNvbihBYm9ydFJlYXNvbiByZWFzb24pCiAgICAg
ewogICAgICAgICAvLyBJdCBpcyBzYWZlIHRvIHVzZSBkYXRhVGVtcFJlZ2lzdGVyIGRpcmVjdGx5
IHNpbmNlIHRoaXMgaXMgYSBjcmFzaGluZyBKSVQgQXNzZXJ0LgpAQCAtMTU2OCw2ICsxNTc4LDE2
IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3RucDw2ND4oc3JjMSwgc3JjMiwgZGVz
dCwgb2Zmc2V0Lm1fdmFsdWUpOwogICAgIH0KIAorICAgIHZvaWQgc3RvcmVQYWlyNjQoRlBSZWdp
c3RlcklEIHNyYzEsIEZQUmVnaXN0ZXJJRCBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCisgICAgewor
ICAgICAgICBzdG9yZVBhaXI2NChzcmMxLCBzcmMyLCBkZXN0LCBUcnVzdGVkSW1tMzIoMCkpOwor
ICAgIH0KKworICAgIHZvaWQgc3RvcmVQYWlyNjQoRlBSZWdpc3RlcklEIHNyYzEsIEZQUmVnaXN0
ZXJJRCBzcmMyLCBSZWdpc3RlcklEIGRlc3QsIFRydXN0ZWRJbW0zMiBvZmZzZXQpCisgICAgewor
ICAgICAgICBtX2Fzc2VtYmxlci5zdHA8NjQ+KHNyYzEsIHNyYzIsIGRlc3QsIG9mZnNldC5tX3Zh
bHVlKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlMzIoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0
QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKHRyeVN0b3JlV2l0aE9mZnNldDwz
Mj4oc3JjLCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KSkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCShyZXZpc2lvbiAyNzg4NDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTg1MCw2ICsxODUwLDQ0MSBAQCB2b2lkIHRlc3RNb3ZlRG91YmxlQ29uZGl0aW9u
YWxseUZsb2F0U2FtCiAKICNlbmRpZiAvLyBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCiAKKyNp
ZiBDUFUoQVJNNjQpCit2b2lkIHRlc3RMb2FkU3RvcmVQYWlyNjRJbnQ2NCgpCit7CisgICAgY29u
c3RleHByIHVpbnQ2NF90IGluaXRpYWxWYWx1ZSA9IDB4NTU1NWFhYWFiYmJiODgwMHVsbDsKKyAg
ICBjb25zdGV4cHIgdWludDY0X3QgdmFsdWUxID0gNDI7CisgICAgY29uc3RleHByIHVpbnQ2NF90
IHZhbHVlMiA9IDB4Y2FmZWJhYmUxMjM0NTY3OHVsbDsKKworICAgIHVpbnQ2NF90IGJ1ZmZlclsx
MF07CisKKyAgICBhdXRvIGluaXRCdWZmZXIgPSBbJl0geworICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgMTA7ICsraSkKKyAgICAgICAgICAgIGJ1ZmZlcltpXSA9IGluaXRpYWxWYWx1
ZSArIGk7CisgICAgfTsKKworICAgIHN0cnVjdCBQYWlyIHsKKyAgICAgICAgdWludDY0X3QgdmFs
dWUxOworICAgICAgICB1aW50NjRfdCB2YWx1ZTI7CisgICAgfTsKKworICAgIFBhaXIgcGFpcjsK
KyAgICBhdXRvIGluaXRQYWlyID0gWyZdIHsKKyAgICAgICAgcGFpciA9IHsgMCwgMCB9OworICAg
IH07CisKKyAgICAvLyBUZXN0IGxvYWRQYWlyNjQuCisgICAgYXV0byB0ZXN0TG9hZFBhaXIgPSBb
XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGludCBvZmZzZXQpIHsKKyAgICAgICAgZW1pdEZ1bmN0aW9u
UHJvbG9ndWUoaml0KTsKKworICAgICAgICBjb25zdGV4cHIgR1BSUmVnIGJ1ZmZlckdQUiA9IEdQ
UkluZm86OmFyZ3VtZW50R1BSMDsKKyAgICAgICAgY29uc3RleHByIEdQUlJlZyBwYWlyR1BSID0g
R1BSSW5mbzo6YXJndW1lbnRHUFIxOworICAgICAgICBqaXQubG9hZFBhaXI2NChidWZmZXJHUFIs
IENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG9mZnNldCAqIHNpemVvZihDUFVSZWdpc3Rlcikp
LCBHUFJJbmZvOjpyZWdUMiwgR1BSSW5mbzo6cmVnVDMpOworCisgICAgICAgIGppdC5zdG9yZTY0
KEdQUkluZm86OnJlZ1QyLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocGFpckdQUiwgMCkpOworICAg
ICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMywgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBh
aXJHUFIsIHNpemVvZih1aW50NjRfdCkpKTsKKworICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1
ZShqaXQpOworICAgICAgICBqaXQucmV0KCk7CisgICAgfTsKKworICAgIGF1dG8gdGVzdExvYWRQ
YWlyMCA9IGNvbXBpbGUoWyZdIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICB0ZXN0TG9h
ZFBhaXIoaml0LCAwKTsKKyAgICB9KTsKKworICAgIGluaXRCdWZmZXIoKTsKKworICAgIGluaXRQ
YWlyKCk7CisgICAgaW52b2tlPHZvaWQ+KHRlc3RMb2FkUGFpcjAsICZidWZmZXJbNF0sICZwYWly
KTsKKyAgICBDSEVDS19FUShwYWlyLnZhbHVlMSwgaW5pdGlhbFZhbHVlICsgNCk7CisgICAgQ0hF
Q0tfRVEocGFpci52YWx1ZTIsIGluaXRpYWxWYWx1ZSArIDUpOworCisgICAgaW5pdFBhaXIoKTsK
KyAgICBidWZmZXJbNF0gPSB2YWx1ZTE7CisgICAgYnVmZmVyWzVdID0gdmFsdWUyOworICAgIGlu
dm9rZTx2b2lkPih0ZXN0TG9hZFBhaXIwLCAmYnVmZmVyWzRdLCAmcGFpcik7CisgICAgQ0hFQ0tf
RVEocGFpci52YWx1ZTEsIHZhbHVlMSk7CisgICAgQ0hFQ0tfRVEocGFpci52YWx1ZTIsIHZhbHVl
Mik7CisKKyAgICBhdXRvIHRlc3RMb2FkUGFpck1pbnVzMiA9IGNvbXBpbGUoWyZdIChDQ2FsbEhl
bHBlcnMmIGppdCkgeworICAgICAgICB0ZXN0TG9hZFBhaXIoaml0LCAtMik7CisgICAgfSk7CisK
KyAgICBpbml0UGFpcigpOworICAgIGludm9rZTx2b2lkPih0ZXN0TG9hZFBhaXJNaW51czIsICZi
dWZmZXJbNF0sICZwYWlyKTsKKyAgICBDSEVDS19FUShwYWlyLnZhbHVlMSwgaW5pdGlhbFZhbHVl
ICsgNCAtIDIpOworICAgIENIRUNLX0VRKHBhaXIudmFsdWUyLCBpbml0aWFsVmFsdWUgKyA1IC0g
Mik7CisKKyAgICBpbml0UGFpcigpOworICAgIGJ1ZmZlcls0IC0gMl0gPSB2YWx1ZTI7CisgICAg
YnVmZmVyWzUgLSAyXSA9IHZhbHVlMTsKKyAgICBpbnZva2U8dm9pZD4odGVzdExvYWRQYWlyTWlu
dXMyLCAmYnVmZmVyWzRdLCAmcGFpcik7CisgICAgQ0hFQ0tfRVEocGFpci52YWx1ZTEsIHZhbHVl
Mik7CisgICAgQ0hFQ0tfRVEocGFpci52YWx1ZTIsIHZhbHVlMSk7CisKKyAgICBhdXRvIHRlc3RM
b2FkUGFpclBsdXMzID0gY29tcGlsZShbJl0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAg
IHRlc3RMb2FkUGFpcihqaXQsIDMpOworICAgIH0pOworCisgICAgaW5pdFBhaXIoKTsKKyAgICBp
bnZva2U8dm9pZD4odGVzdExvYWRQYWlyUGx1czMsICZidWZmZXJbNF0sICZwYWlyKTsKKyAgICBD
SEVDS19FUShwYWlyLnZhbHVlMSwgaW5pdGlhbFZhbHVlICsgNCArIDMpOworICAgIENIRUNLX0VR
KHBhaXIudmFsdWUyLCBpbml0aWFsVmFsdWUgKyA1ICsgMyk7CisKKyAgICBpbml0UGFpcigpOwor
ICAgIGJ1ZmZlcls0ICsgM10gPSB2YWx1ZTE7CisgICAgYnVmZmVyWzUgKyAzXSA9IHZhbHVlMjsK
KyAgICBpbnZva2U8dm9pZD4odGVzdExvYWRQYWlyUGx1czMsICZidWZmZXJbNF0sICZwYWlyKTsK
KyAgICBDSEVDS19FUShwYWlyLnZhbHVlMSwgdmFsdWUxKTsKKyAgICBDSEVDS19FUShwYWlyLnZh
bHVlMiwgdmFsdWUyKTsKKworICAgIC8vIFRlc3Qgc3RvcmVQYWlyNjQuCisgICAgYXV0byB0ZXN0
U3RvcmVQYWlyID0gW10gKENDYWxsSGVscGVycyYgaml0LCBpbnQgb2Zmc2V0KSB7CisgICAgICAg
IGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgY29uc3RleHByIEdQUlJlZyBi
dWZmZXJHUFIgPSBHUFJJbmZvOjphcmd1bWVudEdQUjI7CisgICAgICAgIGppdC5zdG9yZVBhaXI2
NChHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMSwgYnVmZmVyR1BS
LCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihvZmZzZXQgKiBzaXplb2YoQ1BVUmVnaXN0ZXIp
KSk7CisKKyAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgaml0LnJl
dCgpOworICAgIH07CisKKyAgICBhdXRvIHRlc3RTdG9yZVBhaXIwID0gY29tcGlsZShbJl0gKEND
YWxsSGVscGVycyYgaml0KSB7CisgICAgICAgIHRlc3RTdG9yZVBhaXIoaml0LCAwKTsKKyAgICB9
KTsKKworICAgIGluaXRCdWZmZXIoKTsKKyAgICBpbnZva2U8dm9pZD4odGVzdFN0b3JlUGFpcjAs
IHZhbHVlMSwgdmFsdWUyLCAmYnVmZmVyWzRdKTsKKyAgICBDSEVDS19FUShidWZmZXJbMF0sIGlu
aXRpYWxWYWx1ZSArIDApOworICAgIENIRUNLX0VRKGJ1ZmZlclsxXSwgaW5pdGlhbFZhbHVlICsg
MSk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzJdLCBpbml0aWFsVmFsdWUgKyAyKTsKKyAgICBDSEVD
S19FUShidWZmZXJbM10sIGluaXRpYWxWYWx1ZSArIDMpOworICAgIENIRUNLX0VRKGJ1ZmZlcls0
XSwgdmFsdWUxKTsKKyAgICBDSEVDS19FUShidWZmZXJbNV0sIHZhbHVlMik7CisgICAgQ0hFQ0tf
RVEoYnVmZmVyWzZdLCBpbml0aWFsVmFsdWUgKyA2KTsKKyAgICBDSEVDS19FUShidWZmZXJbN10s
IGluaXRpYWxWYWx1ZSArIDcpOworICAgIENIRUNLX0VRKGJ1ZmZlcls4XSwgaW5pdGlhbFZhbHVl
ICsgOCk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzldLCBpbml0aWFsVmFsdWUgKyA5KTsKKworICAg
IGF1dG8gdGVzdFN0b3JlUGFpck1pbnVzMiA9IGNvbXBpbGUoWyZdIChDQ2FsbEhlbHBlcnMmIGpp
dCkgeworICAgICAgICB0ZXN0U3RvcmVQYWlyKGppdCwgLTIpOworICAgIH0pOworCisgICAgaW5p
dEJ1ZmZlcigpOworICAgIGludm9rZTx2b2lkPih0ZXN0U3RvcmVQYWlyTWludXMyLCB2YWx1ZTEs
IHZhbHVlMiwgJmJ1ZmZlcls0XSk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzBdLCBpbml0aWFsVmFs
dWUgKyAwKTsKKyAgICBDSEVDS19FUShidWZmZXJbMV0sIGluaXRpYWxWYWx1ZSArIDEpOworICAg
IENIRUNLX0VRKGJ1ZmZlclsyXSwgdmFsdWUxKTsKKyAgICBDSEVDS19FUShidWZmZXJbM10sIHZh
bHVlMik7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzRdLCBpbml0aWFsVmFsdWUgKyA0KTsKKyAgICBD
SEVDS19FUShidWZmZXJbNV0sIGluaXRpYWxWYWx1ZSArIDUpOworICAgIENIRUNLX0VRKGJ1ZmZl
cls2XSwgaW5pdGlhbFZhbHVlICsgNik7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzddLCBpbml0aWFs
VmFsdWUgKyA3KTsKKyAgICBDSEVDS19FUShidWZmZXJbOF0sIGluaXRpYWxWYWx1ZSArIDgpOwor
ICAgIENIRUNLX0VRKGJ1ZmZlcls5XSwgaW5pdGlhbFZhbHVlICsgOSk7CisKKyAgICBhdXRvIHRl
c3RTdG9yZVBhaXJQbHVzMyA9IGNvbXBpbGUoWyZdIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAg
ICAgICB0ZXN0U3RvcmVQYWlyKGppdCwgMyk7CisgICAgfSk7CisKKyAgICBpbml0QnVmZmVyKCk7
CisgICAgaW52b2tlPHZvaWQ+KHRlc3RTdG9yZVBhaXJQbHVzMywgdmFsdWUxLCB2YWx1ZTIsICZi
dWZmZXJbNF0pOworICAgIENIRUNLX0VRKGJ1ZmZlclswXSwgaW5pdGlhbFZhbHVlICsgMCk7Cisg
ICAgQ0hFQ0tfRVEoYnVmZmVyWzFdLCBpbml0aWFsVmFsdWUgKyAxKTsKKyAgICBDSEVDS19FUShi
dWZmZXJbMl0sIGluaXRpYWxWYWx1ZSArIDIpOworICAgIENIRUNLX0VRKGJ1ZmZlclszXSwgaW5p
dGlhbFZhbHVlICsgMyk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzRdLCBpbml0aWFsVmFsdWUgKyA0
KTsKKyAgICBDSEVDS19FUShidWZmZXJbNV0sIGluaXRpYWxWYWx1ZSArIDUpOworICAgIENIRUNL
X0VRKGJ1ZmZlcls2XSwgaW5pdGlhbFZhbHVlICsgNik7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzdd
LCB2YWx1ZTEpOworICAgIENIRUNLX0VRKGJ1ZmZlcls4XSwgdmFsdWUyKTsKKyAgICBDSEVDS19F
UShidWZmZXJbOV0sIGluaXRpYWxWYWx1ZSArIDkpOworCisgICAgLy8gVGVzdCBzdG9yZVBhaXI2
NCBmcm9tIDEgcmVnaXN0ZXIuCisgICAgYXV0byB0ZXN0U3RvcmVQYWlyRnJvbU9uZVJlZyA9IFtd
IChDQ2FsbEhlbHBlcnMmIGppdCwgaW50IG9mZnNldCkgeworICAgICAgICBlbWl0RnVuY3Rpb25Q
cm9sb2d1ZShqaXQpOworCisgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgYnVmZmVyR1BSID0gR1BS
SW5mbzo6YXJndW1lbnRHUFIxOworICAgICAgICBqaXQuc3RvcmVQYWlyNjQoR1BSSW5mbzo6YXJn
dW1lbnRHUFIwLCBHUFJJbmZvOjphcmd1bWVudEdQUjAsIGJ1ZmZlckdQUiwgQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIob2Zmc2V0ICogc2l6ZW9mKENQVVJlZ2lzdGVyKSkpOworCisgICAgICAg
IGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CisgICAgICAgIGppdC5yZXQoKTsKKyAgICB9Owor
CisgICAgYXV0byB0ZXN0U3RvcmVQYWlyRnJvbU9uZVJlZzAgPSBjb21waWxlKFsmXSAoQ0NhbGxI
ZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgdGVzdFN0b3JlUGFpckZyb21PbmVSZWcoaml0LCAwKTsK
KyAgICB9KTsKKworICAgIGluaXRCdWZmZXIoKTsKKyAgICBpbnZva2U8dm9pZD4odGVzdFN0b3Jl
UGFpckZyb21PbmVSZWcwLCB2YWx1ZTIsICZidWZmZXJbNF0pOworICAgIENIRUNLX0VRKGJ1ZmZl
clswXSwgaW5pdGlhbFZhbHVlICsgMCk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzFdLCBpbml0aWFs
VmFsdWUgKyAxKTsKKyAgICBDSEVDS19FUShidWZmZXJbMl0sIGluaXRpYWxWYWx1ZSArIDIpOwor
ICAgIENIRUNLX0VRKGJ1ZmZlclszXSwgaW5pdGlhbFZhbHVlICsgMyk7CisgICAgQ0hFQ0tfRVEo
YnVmZmVyWzRdLCB2YWx1ZTIpOworICAgIENIRUNLX0VRKGJ1ZmZlcls1XSwgdmFsdWUyKTsKKyAg
ICBDSEVDS19FUShidWZmZXJbNl0sIGluaXRpYWxWYWx1ZSArIDYpOworICAgIENIRUNLX0VRKGJ1
ZmZlcls3XSwgaW5pdGlhbFZhbHVlICsgNyk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzhdLCBpbml0
aWFsVmFsdWUgKyA4KTsKKyAgICBDSEVDS19FUShidWZmZXJbOV0sIGluaXRpYWxWYWx1ZSArIDkp
OworCisgICAgYXV0byB0ZXN0U3RvcmVQYWlyRnJvbU9uZVJlZ01pbnVzMiA9IGNvbXBpbGUoWyZd
IChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICB0ZXN0U3RvcmVQYWlyRnJvbU9uZVJlZyhq
aXQsIC0yKTsKKyAgICB9KTsKKworICAgIGluaXRCdWZmZXIoKTsKKyAgICBpbnZva2U8dm9pZD4o
dGVzdFN0b3JlUGFpckZyb21PbmVSZWdNaW51czIsIHZhbHVlMSwgJmJ1ZmZlcls0XSk7CisgICAg
Q0hFQ0tfRVEoYnVmZmVyWzBdLCBpbml0aWFsVmFsdWUgKyAwKTsKKyAgICBDSEVDS19FUShidWZm
ZXJbMV0sIGluaXRpYWxWYWx1ZSArIDEpOworICAgIENIRUNLX0VRKGJ1ZmZlclsyXSwgdmFsdWUx
KTsKKyAgICBDSEVDS19FUShidWZmZXJbM10sIHZhbHVlMSk7CisgICAgQ0hFQ0tfRVEoYnVmZmVy
WzRdLCBpbml0aWFsVmFsdWUgKyA0KTsKKyAgICBDSEVDS19FUShidWZmZXJbNV0sIGluaXRpYWxW
YWx1ZSArIDUpOworICAgIENIRUNLX0VRKGJ1ZmZlcls2XSwgaW5pdGlhbFZhbHVlICsgNik7Cisg
ICAgQ0hFQ0tfRVEoYnVmZmVyWzddLCBpbml0aWFsVmFsdWUgKyA3KTsKKyAgICBDSEVDS19FUShi
dWZmZXJbOF0sIGluaXRpYWxWYWx1ZSArIDgpOworICAgIENIRUNLX0VRKGJ1ZmZlcls5XSwgaW5p
dGlhbFZhbHVlICsgOSk7CisKKyAgICBhdXRvIHRlc3RTdG9yZVBhaXJGcm9tT25lUmVnUGx1czMg
PSBjb21waWxlKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgdGVzdFN0b3JlUGFp
ckZyb21PbmVSZWcoaml0LCAzKTsKKyAgICB9KTsKKworICAgIGluaXRCdWZmZXIoKTsKKyAgICBp
bnZva2U8dm9pZD4odGVzdFN0b3JlUGFpckZyb21PbmVSZWdQbHVzMywgdmFsdWUyLCAmYnVmZmVy
WzRdKTsKKyAgICBDSEVDS19FUShidWZmZXJbMF0sIGluaXRpYWxWYWx1ZSArIDApOworICAgIENI
RUNLX0VRKGJ1ZmZlclsxXSwgaW5pdGlhbFZhbHVlICsgMSk7CisgICAgQ0hFQ0tfRVEoYnVmZmVy
WzJdLCBpbml0aWFsVmFsdWUgKyAyKTsKKyAgICBDSEVDS19FUShidWZmZXJbM10sIGluaXRpYWxW
YWx1ZSArIDMpOworICAgIENIRUNLX0VRKGJ1ZmZlcls0XSwgaW5pdGlhbFZhbHVlICsgNCk7Cisg
ICAgQ0hFQ0tfRVEoYnVmZmVyWzVdLCBpbml0aWFsVmFsdWUgKyA1KTsKKyAgICBDSEVDS19FUShi
dWZmZXJbNl0sIGluaXRpYWxWYWx1ZSArIDYpOworICAgIENIRUNLX0VRKGJ1ZmZlcls3XSwgdmFs
dWUyKTsKKyAgICBDSEVDS19FUShidWZmZXJbOF0sIHZhbHVlMik7CisgICAgQ0hFQ0tfRVEoYnVm
ZmVyWzldLCBpbml0aWFsVmFsdWUgKyA5KTsKK30KKwordm9pZCB0ZXN0TG9hZFN0b3JlUGFpcjY0
RG91YmxlKCkKK3sKKyAgICBjb25zdGV4cHIgZG91YmxlIGluaXRpYWxWYWx1ZSA9IDEwMDAwLjI3
NTsKKyAgICBjb25zdGV4cHIgZG91YmxlIHZhbHVlMSA9IDQyLjg5OworICAgIGNvbnN0ZXhwciBk
b3VibGUgdmFsdWUyID0gLTU1NS4zMjE7CisKKyAgICBkb3VibGUgYnVmZmVyWzEwXTsKKworICAg
IGF1dG8gaW5pdEJ1ZmZlciA9IFsmXSB7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCAxMDsgKytpKQorICAgICAgICAgICAgYnVmZmVyW2ldID0gaW5pdGlhbFZhbHVlICsgaTsKKyAg
ICB9OworCisgICAgc3RydWN0IFBhaXIgeworICAgICAgICBkb3VibGUgdmFsdWUxOworICAgICAg
ICBkb3VibGUgdmFsdWUyOworICAgIH07CisKKyAgICBQYWlyIHBhaXI7CisgICAgYXV0byBpbml0
UGFpciA9IFsmXSB7CisgICAgICAgIHBhaXIgPSB7IDAsIDAgfTsKKyAgICB9OworCisgICAgLy8g
VGVzdCBsb2FkUGFpcjY0LgorICAgIGF1dG8gdGVzdExvYWRQYWlyID0gW10gKENDYWxsSGVscGVy
cyYgaml0LCBpbnQgb2Zmc2V0KSB7CisgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7
CisKKyAgICAgICAgY29uc3RleHByIEdQUlJlZyBidWZmZXJHUFIgPSBHUFJJbmZvOjphcmd1bWVu
dEdQUjA7CisgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgcGFpckdQUiA9IEdQUkluZm86OmFyZ3Vt
ZW50R1BSMTsKKyAgICAgICAgaml0LmxvYWRQYWlyNjQoYnVmZmVyR1BSLCBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMihvZmZzZXQgKiBzaXplb2YoZG91YmxlKSksIEZQUkluZm86OmZwUmVnVDAs
IEZQUkluZm86OmZwUmVnVDEpOworCisgICAgICAgIGppdC5zdG9yZURvdWJsZShGUFJJbmZvOjpm
cFJlZ1QwLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocGFpckdQUiwgMCkpOworICAgICAgICBqaXQu
c3RvcmVEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBhaXJH
UFIsIHNpemVvZih1aW50NjRfdCkpKTsKKworICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShq
aXQpOworICAgICAgICBqaXQucmV0KCk7CisgICAgfTsKKworICAgIGF1dG8gdGVzdExvYWRQYWly
MCA9IGNvbXBpbGUoWyZdIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICB0ZXN0TG9hZFBh
aXIoaml0LCAwKTsKKyAgICB9KTsKKworICAgIGluaXRCdWZmZXIoKTsKKworICAgIGluaXRQYWly
KCk7CisgICAgaW52b2tlPHZvaWQ+KHRlc3RMb2FkUGFpcjAsICZidWZmZXJbNF0sICZwYWlyKTsK
KyAgICBDSEVDS19FUShwYWlyLnZhbHVlMSwgaW5pdGlhbFZhbHVlICsgNCk7CisgICAgQ0hFQ0tf
RVEocGFpci52YWx1ZTIsIGluaXRpYWxWYWx1ZSArIDUpOworCisgICAgaW5pdFBhaXIoKTsKKyAg
ICBidWZmZXJbNF0gPSB2YWx1ZTE7CisgICAgYnVmZmVyWzVdID0gdmFsdWUyOworICAgIGludm9r
ZTx2b2lkPih0ZXN0TG9hZFBhaXIwLCAmYnVmZmVyWzRdLCAmcGFpcik7CisgICAgQ0hFQ0tfRVEo
cGFpci52YWx1ZTEsIHZhbHVlMSk7CisgICAgQ0hFQ0tfRVEocGFpci52YWx1ZTIsIHZhbHVlMik7
CisKKyAgICBhdXRvIHRlc3RMb2FkUGFpck1pbnVzMiA9IGNvbXBpbGUoWyZdIChDQ2FsbEhlbHBl
cnMmIGppdCkgeworICAgICAgICB0ZXN0TG9hZFBhaXIoaml0LCAtMik7CisgICAgfSk7CisKKyAg
ICBpbml0UGFpcigpOworICAgIGludm9rZTx2b2lkPih0ZXN0TG9hZFBhaXJNaW51czIsICZidWZm
ZXJbNF0sICZwYWlyKTsKKyAgICBDSEVDS19FUShwYWlyLnZhbHVlMSwgaW5pdGlhbFZhbHVlICsg
NCAtIDIpOworICAgIENIRUNLX0VRKHBhaXIudmFsdWUyLCBpbml0aWFsVmFsdWUgKyA1IC0gMik7
CisKKyAgICBpbml0UGFpcigpOworICAgIGJ1ZmZlcls0IC0gMl0gPSB2YWx1ZTI7CisgICAgYnVm
ZmVyWzUgLSAyXSA9IHZhbHVlMTsKKyAgICBpbnZva2U8dm9pZD4odGVzdExvYWRQYWlyTWludXMy
LCAmYnVmZmVyWzRdLCAmcGFpcik7CisgICAgQ0hFQ0tfRVEocGFpci52YWx1ZTEsIHZhbHVlMik7
CisgICAgQ0hFQ0tfRVEocGFpci52YWx1ZTIsIHZhbHVlMSk7CisKKyAgICBhdXRvIHRlc3RMb2Fk
UGFpclBsdXMzID0gY29tcGlsZShbJl0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgIHRl
c3RMb2FkUGFpcihqaXQsIDMpOworICAgIH0pOworCisgICAgaW5pdFBhaXIoKTsKKyAgICBpbnZv
a2U8dm9pZD4odGVzdExvYWRQYWlyUGx1czMsICZidWZmZXJbNF0sICZwYWlyKTsKKyAgICBDSEVD
S19FUShwYWlyLnZhbHVlMSwgaW5pdGlhbFZhbHVlICsgNCArIDMpOworICAgIENIRUNLX0VRKHBh
aXIudmFsdWUyLCBpbml0aWFsVmFsdWUgKyA1ICsgMyk7CisKKyAgICBpbml0UGFpcigpOworICAg
IGJ1ZmZlcls0ICsgM10gPSB2YWx1ZTE7CisgICAgYnVmZmVyWzUgKyAzXSA9IHZhbHVlMjsKKyAg
ICBpbnZva2U8dm9pZD4odGVzdExvYWRQYWlyUGx1czMsICZidWZmZXJbNF0sICZwYWlyKTsKKyAg
ICBDSEVDS19FUShwYWlyLnZhbHVlMSwgdmFsdWUxKTsKKyAgICBDSEVDS19FUShwYWlyLnZhbHVl
MiwgdmFsdWUyKTsKKworICAgIC8vIFRlc3Qgc3RvcmVQYWlyNjQuCisgICAgYXV0byB0ZXN0U3Rv
cmVQYWlyID0gW10gKENDYWxsSGVscGVycyYgaml0LCBpbnQgb2Zmc2V0KSB7CisgICAgICAgIGVt
aXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgY29uc3RleHByIEdQUlJlZyBidWZm
ZXJHUFIgPSBHUFJJbmZvOjphcmd1bWVudEdQUjI7CisgICAgICAgIGppdC5tb3ZlNjRUb0RvdWJs
ZShHUFJJbmZvOjphcmd1bWVudEdQUjAsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICBqaXQu
bW92ZTY0VG9Eb3VibGUoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBGUFJJbmZvOjpmcFJlZ1QxKTsK
KyAgICAgICAgaml0LnN0b3JlUGFpcjY0KEZQUkluZm86OmZwUmVnVDAsIEZQUkluZm86OmZwUmVn
VDEsIGJ1ZmZlckdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIob2Zmc2V0ICogc2l6ZW9m
KGRvdWJsZSkpKTsKKworICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAg
ICBqaXQucmV0KCk7CisgICAgfTsKKworICAgIGF1dG8gYXNJbnQ2NCA9IFtdIChkb3VibGUgdmFs
dWUpIHsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxpbnQ2NF90Pih2YWx1ZSk7CisgICAg
fTsKKworICAgIGF1dG8gdGVzdFN0b3JlUGFpcjAgPSBjb21waWxlKFsmXSAoQ0NhbGxIZWxwZXJz
JiBqaXQpIHsKKyAgICAgICAgdGVzdFN0b3JlUGFpcihqaXQsIDApOworICAgIH0pOworCisgICAg
aW5pdEJ1ZmZlcigpOworICAgIGludm9rZTx2b2lkPih0ZXN0U3RvcmVQYWlyMCwgYXNJbnQ2NCh2
YWx1ZTEpLCBhc0ludDY0KHZhbHVlMiksICZidWZmZXJbNF0pOworICAgIENIRUNLX0VRKGJ1ZmZl
clswXSwgaW5pdGlhbFZhbHVlICsgMCk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzFdLCBpbml0aWFs
VmFsdWUgKyAxKTsKKyAgICBDSEVDS19FUShidWZmZXJbMl0sIGluaXRpYWxWYWx1ZSArIDIpOwor
ICAgIENIRUNLX0VRKGJ1ZmZlclszXSwgaW5pdGlhbFZhbHVlICsgMyk7CisgICAgQ0hFQ0tfRVEo
YnVmZmVyWzRdLCB2YWx1ZTEpOworICAgIENIRUNLX0VRKGJ1ZmZlcls1XSwgdmFsdWUyKTsKKyAg
ICBDSEVDS19FUShidWZmZXJbNl0sIGluaXRpYWxWYWx1ZSArIDYpOworICAgIENIRUNLX0VRKGJ1
ZmZlcls3XSwgaW5pdGlhbFZhbHVlICsgNyk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzhdLCBpbml0
aWFsVmFsdWUgKyA4KTsKKyAgICBDSEVDS19FUShidWZmZXJbOV0sIGluaXRpYWxWYWx1ZSArIDkp
OworCisgICAgYXV0byB0ZXN0U3RvcmVQYWlyTWludXMyID0gY29tcGlsZShbJl0gKENDYWxsSGVs
cGVycyYgaml0KSB7CisgICAgICAgIHRlc3RTdG9yZVBhaXIoaml0LCAtMik7CisgICAgfSk7CisK
KyAgICBpbml0QnVmZmVyKCk7CisgICAgaW52b2tlPHZvaWQ+KHRlc3RTdG9yZVBhaXJNaW51czIs
IGFzSW50NjQodmFsdWUxKSwgYXNJbnQ2NCh2YWx1ZTIpLCAmYnVmZmVyWzRdKTsKKyAgICBDSEVD
S19FUShidWZmZXJbMF0sIGluaXRpYWxWYWx1ZSArIDApOworICAgIENIRUNLX0VRKGJ1ZmZlclsx
XSwgaW5pdGlhbFZhbHVlICsgMSk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzJdLCB2YWx1ZTEpOwor
ICAgIENIRUNLX0VRKGJ1ZmZlclszXSwgdmFsdWUyKTsKKyAgICBDSEVDS19FUShidWZmZXJbNF0s
IGluaXRpYWxWYWx1ZSArIDQpOworICAgIENIRUNLX0VRKGJ1ZmZlcls1XSwgaW5pdGlhbFZhbHVl
ICsgNSk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzZdLCBpbml0aWFsVmFsdWUgKyA2KTsKKyAgICBD
SEVDS19FUShidWZmZXJbN10sIGluaXRpYWxWYWx1ZSArIDcpOworICAgIENIRUNLX0VRKGJ1ZmZl
cls4XSwgaW5pdGlhbFZhbHVlICsgOCk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzldLCBpbml0aWFs
VmFsdWUgKyA5KTsKKworICAgIGF1dG8gdGVzdFN0b3JlUGFpclBsdXMzID0gY29tcGlsZShbJl0g
KENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgIHRlc3RTdG9yZVBhaXIoaml0LCAzKTsKKyAg
ICB9KTsKKworICAgIGluaXRCdWZmZXIoKTsKKyAgICBpbnZva2U8dm9pZD4odGVzdFN0b3JlUGFp
clBsdXMzLCBhc0ludDY0KHZhbHVlMSksIGFzSW50NjQodmFsdWUyKSwgJmJ1ZmZlcls0XSk7Cisg
ICAgQ0hFQ0tfRVEoYnVmZmVyWzBdLCBpbml0aWFsVmFsdWUgKyAwKTsKKyAgICBDSEVDS19FUShi
dWZmZXJbMV0sIGluaXRpYWxWYWx1ZSArIDEpOworICAgIENIRUNLX0VRKGJ1ZmZlclsyXSwgaW5p
dGlhbFZhbHVlICsgMik7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzNdLCBpbml0aWFsVmFsdWUgKyAz
KTsKKyAgICBDSEVDS19FUShidWZmZXJbNF0sIGluaXRpYWxWYWx1ZSArIDQpOworICAgIENIRUNL
X0VRKGJ1ZmZlcls1XSwgaW5pdGlhbFZhbHVlICsgNSk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzZd
LCBpbml0aWFsVmFsdWUgKyA2KTsKKyAgICBDSEVDS19FUShidWZmZXJbN10sIHZhbHVlMSk7Cisg
ICAgQ0hFQ0tfRVEoYnVmZmVyWzhdLCB2YWx1ZTIpOworICAgIENIRUNLX0VRKGJ1ZmZlcls5XSwg
aW5pdGlhbFZhbHVlICsgOSk7CisKKyAgICAvLyBUZXN0IHN0b3JlUGFpcjY0IGZyb20gMSByZWdp
c3Rlci4KKyAgICBhdXRvIHRlc3RTdG9yZVBhaXJGcm9tT25lUmVnID0gW10gKENDYWxsSGVscGVy
cyYgaml0LCBpbnQgb2Zmc2V0KSB7CisgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7
CisKKyAgICAgICAgY29uc3RleHByIEdQUlJlZyBidWZmZXJHUFIgPSBHUFJJbmZvOjphcmd1bWVu
dEdQUjE7CisgICAgICAgIGppdC5tb3ZlNjRUb0RvdWJsZShHUFJJbmZvOjphcmd1bWVudEdQUjAs
IEZQUkluZm86OmZwUmVnVDApOworICAgICAgICBqaXQuc3RvcmVQYWlyNjQoRlBSSW5mbzo6ZnBS
ZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCwgYnVmZmVyR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihvZmZzZXQgKiBzaXplb2YoZG91YmxlKSkpOworCisgICAgICAgIGVtaXRGdW5jdGlvbkVw
aWxvZ3VlKGppdCk7CisgICAgICAgIGppdC5yZXQoKTsKKyAgICB9OworCisgICAgYXV0byB0ZXN0
U3RvcmVQYWlyRnJvbU9uZVJlZzAgPSBjb21waWxlKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsK
KyAgICAgICAgdGVzdFN0b3JlUGFpckZyb21PbmVSZWcoaml0LCAwKTsKKyAgICB9KTsKKworICAg
IGluaXRCdWZmZXIoKTsKKyAgICBpbnZva2U8dm9pZD4odGVzdFN0b3JlUGFpckZyb21PbmVSZWcw
LCBhc0ludDY0KHZhbHVlMiksICZidWZmZXJbNF0pOworICAgIENIRUNLX0VRKGJ1ZmZlclswXSwg
aW5pdGlhbFZhbHVlICsgMCk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzFdLCBpbml0aWFsVmFsdWUg
KyAxKTsKKyAgICBDSEVDS19FUShidWZmZXJbMl0sIGluaXRpYWxWYWx1ZSArIDIpOworICAgIENI
RUNLX0VRKGJ1ZmZlclszXSwgaW5pdGlhbFZhbHVlICsgMyk7CisgICAgQ0hFQ0tfRVEoYnVmZmVy
WzRdLCB2YWx1ZTIpOworICAgIENIRUNLX0VRKGJ1ZmZlcls1XSwgdmFsdWUyKTsKKyAgICBDSEVD
S19FUShidWZmZXJbNl0sIGluaXRpYWxWYWx1ZSArIDYpOworICAgIENIRUNLX0VRKGJ1ZmZlcls3
XSwgaW5pdGlhbFZhbHVlICsgNyk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzhdLCBpbml0aWFsVmFs
dWUgKyA4KTsKKyAgICBDSEVDS19FUShidWZmZXJbOV0sIGluaXRpYWxWYWx1ZSArIDkpOworCisg
ICAgYXV0byB0ZXN0U3RvcmVQYWlyRnJvbU9uZVJlZ01pbnVzMiA9IGNvbXBpbGUoWyZdIChDQ2Fs
bEhlbHBlcnMmIGppdCkgeworICAgICAgICB0ZXN0U3RvcmVQYWlyRnJvbU9uZVJlZyhqaXQsIC0y
KTsKKyAgICB9KTsKKworICAgIGluaXRCdWZmZXIoKTsKKyAgICBpbnZva2U8dm9pZD4odGVzdFN0
b3JlUGFpckZyb21PbmVSZWdNaW51czIsIGFzSW50NjQodmFsdWUxKSwgJmJ1ZmZlcls0XSk7Cisg
ICAgQ0hFQ0tfRVEoYnVmZmVyWzBdLCBpbml0aWFsVmFsdWUgKyAwKTsKKyAgICBDSEVDS19FUShi
dWZmZXJbMV0sIGluaXRpYWxWYWx1ZSArIDEpOworICAgIENIRUNLX0VRKGJ1ZmZlclsyXSwgdmFs
dWUxKTsKKyAgICBDSEVDS19FUShidWZmZXJbM10sIHZhbHVlMSk7CisgICAgQ0hFQ0tfRVEoYnVm
ZmVyWzRdLCBpbml0aWFsVmFsdWUgKyA0KTsKKyAgICBDSEVDS19FUShidWZmZXJbNV0sIGluaXRp
YWxWYWx1ZSArIDUpOworICAgIENIRUNLX0VRKGJ1ZmZlcls2XSwgaW5pdGlhbFZhbHVlICsgNik7
CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzddLCBpbml0aWFsVmFsdWUgKyA3KTsKKyAgICBDSEVDS19F
UShidWZmZXJbOF0sIGluaXRpYWxWYWx1ZSArIDgpOworICAgIENIRUNLX0VRKGJ1ZmZlcls5XSwg
aW5pdGlhbFZhbHVlICsgOSk7CisKKyAgICBhdXRvIHRlc3RTdG9yZVBhaXJGcm9tT25lUmVnUGx1
czMgPSBjb21waWxlKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgdGVzdFN0b3Jl
UGFpckZyb21PbmVSZWcoaml0LCAzKTsKKyAgICB9KTsKKworICAgIGluaXRCdWZmZXIoKTsKKyAg
ICBpbnZva2U8dm9pZD4odGVzdFN0b3JlUGFpckZyb21PbmVSZWdQbHVzMywgYXNJbnQ2NCh2YWx1
ZTIpLCAmYnVmZmVyWzRdKTsKKyAgICBDSEVDS19FUShidWZmZXJbMF0sIGluaXRpYWxWYWx1ZSAr
IDApOworICAgIENIRUNLX0VRKGJ1ZmZlclsxXSwgaW5pdGlhbFZhbHVlICsgMSk7CisgICAgQ0hF
Q0tfRVEoYnVmZmVyWzJdLCBpbml0aWFsVmFsdWUgKyAyKTsKKyAgICBDSEVDS19FUShidWZmZXJb
M10sIGluaXRpYWxWYWx1ZSArIDMpOworICAgIENIRUNLX0VRKGJ1ZmZlcls0XSwgaW5pdGlhbFZh
bHVlICsgNCk7CisgICAgQ0hFQ0tfRVEoYnVmZmVyWzVdLCBpbml0aWFsVmFsdWUgKyA1KTsKKyAg
ICBDSEVDS19FUShidWZmZXJbNl0sIGluaXRpYWxWYWx1ZSArIDYpOworICAgIENIRUNLX0VRKGJ1
ZmZlcls3XSwgdmFsdWUyKTsKKyAgICBDSEVDS19FUShidWZmZXJbOF0sIHZhbHVlMik7CisgICAg
Q0hFQ0tfRVEoYnVmZmVyWzldLCBpbml0aWFsVmFsdWUgKyA5KTsKK30KKyNlbmRpZiAvLyBDUFUo
QVJNNjQpCisKIHZvaWQgdGVzdFByb2JlUmVhZHNBcmd1bWVudFJlZ2lzdGVycygpCiB7CiAgICAg
Ym9vbCBwcm9iZVdhc0NhbGxlZCA9IGZhbHNlOwpAQCAtMjc2MSw2ICszMTk2LDggQEAgdm9pZCBy
dW4oY29uc3QgY2hhciogZmlsdGVyKSBXVEZfSUdOT1JFUwogI2VuZGlmCiAKICNpZiBDUFUoQVJN
NjQpCisgICAgUlVOKHRlc3RMb2FkU3RvcmVQYWlyNjRJbnQ2NCgpKTsKKyAgICBSVU4odGVzdExv
YWRTdG9yZVBhaXI2NERvdWJsZSgpKTsKICAgICBSVU4odGVzdE11bDMyU2lnbkV4dGVuZCgpKTsK
ICAgICBSVU4odGVzdFN1YjMyQXJncygpKTsKICAgICBSVU4odGVzdFN1YjMySW1tKCkpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0
L0E2NERPcGNvZGUuY3BwCShyZXZpc2lvbiAyNzg4NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTcyLDYgKzcyLDggQEAgc3RhdGljIGNvbnN0IE9wY29kZUdyb3VwSW5pdGlhbGl6ZXIgb3Bjbwog
ICAgIE9QQ09ERV9HUk9VUF9FTlRSWSgweDBhLCBBNjRET3Bjb2RlTG9naWNhbFNoaWZ0ZWRSZWdp
c3RlciksCiAgICAgT1BDT0RFX0dST1VQX0VOVFJZKDB4MGIsIEE2NERPcGNvZGVBZGRTdWJ0cmFj
dEV4dGVuZGVkUmVnaXN0ZXIpLAogICAgIE9QQ09ERV9HUk9VUF9FTlRSWSgweDBiLCBBNjRET3Bj
b2RlQWRkU3VidHJhY3RTaGlmdGVkUmVnaXN0ZXIpLAorICAgIE9QQ09ERV9HUk9VUF9FTlRSWSgw
eDBjLCBBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyKSwKKyAgICBPUENPREVfR1JPVVBf
RU5UUlkoMHgwZCwgQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciksCiAgICAgT1BDT0RF
X0dST1VQX0VOVFJZKDB4MTEsIEE2NERPcGNvZGVBZGRTdWJ0cmFjdEltbWVkaWF0ZSksCiAgICAg
T1BDT0RFX0dST1VQX0VOVFJZKDB4MTIsIEE2NERPcGNvZGVNb3ZlV2lkZSksCiAgICAgT1BDT0RF
X0dST1VQX0VOVFJZKDB4MTIsIEE2NERPcGNvZGVMb2dpY2FsSW1tZWRpYXRlKSwKQEAgLTEzNjMs
OSArMTM2NSw5IEBAIGNvbnN0IGNoYXIqIEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclAKICAg
ICBhcHBlbmRJbnN0cnVjdGlvbk5hbWUodGhpc09wTmFtZSk7CiAgICAgdW5zaWduZWQgb2Zmc2V0
U2hpZnQ7CiAgICAgaWYgKHZCaXQoKSkgewotICAgICAgICBhcHBlbmRGUFJlZ2lzdGVyTmFtZShy
dCgpLCBzaXplKCkpOworICAgICAgICBhcHBlbmRGUFJlZ2lzdGVyTmFtZShydCgpLCBzaXplKCkg
KyAyKTsKICAgICAgICAgYXBwZW5kU2VwYXJhdG9yKCk7Ci0gICAgICAgIGFwcGVuZEZQUmVnaXN0
ZXJOYW1lKHJ0MigpLCBzaXplKCkpOworICAgICAgICBhcHBlbmRGUFJlZ2lzdGVyTmFtZShydDIo
KSwgc2l6ZSgpICsgMik7CiAgICAgICAgIG9mZnNldFNoaWZ0ID0gc2l6ZSgpICsgMjsKICAgICB9
IGVsc2UgewogICAgICAgICBpZiAoIWxCaXQoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5oCShyZXZpc2lvbiAy
Nzg4NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERP
cGNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTItMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc4Nyw3ICs3ODcsNyBAQCBwdWJsaWM6CiAKIGNs
YXNzIEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXIgOiBwdWJsaWMgQTY0RE9wY29kZUxv
YWRTdG9yZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0g
MHgzYTAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweDM4MDAw
MDAwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4MjgwMDAwMDA7
CiAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQ
YWlyLCB0aGlzT2JqKTsK
</data>
<flag name="review"
          id="453148"
          type_id="1"
          status="+"
          setter="rmorisset"
    />
          </attachment>
      

    </bug>

</bugzilla>