<?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>151404</bug_id>
          
          <creation_ts>2015-11-18 14:02:43 -0800</creation_ts>
          <short_desc>FTL OSR Exits that are exception handlers should not have two different entrances. Instead, we should have two discrete OSR exits that do different things.</short_desc>
          <delta_ts>2015-11-30 16:55:59 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sukolsak</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1142968</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-11-18 14:02:43 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145020</commentid>
    <comment_count>1</comment_count>
      <attachid>266298</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-11-30 16:30:25 -0800</bug_when>
    <thetext>Created attachment 266298
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145024</commentid>
    <comment_count>2</comment_count>
      <attachid>266298</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-11-30 16:41:45 -0800</bug_when>
    <thetext>Comment on attachment 266298
patch

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

&gt; Source/JavaScriptCore/ftl/FTLExceptionHandlerManager.cpp:95
&gt;      auto findResult = m_map.find(stackmapRecordIndex);
&gt;      if (findResult == m_map.end())

These should be m_callOperationMap and I&apos;ve changed to that locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145035</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-11-30 16:55:59 -0800</bug_when>
    <thetext>landed in:
http://trac.webkit.org/changeset/192845</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266298</attachid>
            <date>2015-11-30 16:30:25 -0800</date>
            <delta_ts>2015-11-30 16:36:20 -0800</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>25911</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkyODQzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDE1LTExLTMwICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEZUTCBPU1IgRXhpdHMgdGhhdCBhcmUgZXhjZXB0aW9uIGhhbmRsZXJzIHNob3VsZCBub3QgaGF2
ZSB0d28gZGlmZmVyZW50IGVudHJhbmNlcy4gSW5zdGVhZCwgd2Ugc2hvdWxkIGhhdmUgdHdvIGRp
c2NyZXRlIE9TUiBleGl0cyB0aGF0IGRvIGRpZmZlcmVudCB0aGluZ3MuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE0MDQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZ0bC9GVExDb21waWxlLmNwcDoK
KyAgICAgICAgKEpTQzo6RlRMOjptbUFsbG9jYXRlRGF0YVNlY3Rpb24pOgorICAgICAgICAqIGZ0
bC9GVExFeGNlcHRpb25IYW5kbGVyTWFuYWdlci5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6RXhj
ZXB0aW9uSGFuZGxlck1hbmFnZXI6OmFkZE5ld0V4aXQpOgorICAgICAgICAoSlNDOjpGVEw6OkV4
Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyOjphZGROZXdDYWxsT3BlcmF0aW9uRXhpdCk6CisgICAgICAg
IChKU0M6OkZUTDo6RXhjZXB0aW9uSGFuZGxlck1hbmFnZXI6OmNhbGxPcGVyYXRpb25FeGNlcHRp
b25UYXJnZXQpOgorICAgICAgICAoSlNDOjpGVEw6OkV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyOjps
YXp5U2xvd1BhdGhFeGNlcHRpb25UYXJnZXQpOgorICAgICAgICAoSlNDOjpGVEw6OkV4Y2VwdGlv
bkhhbmRsZXJNYW5hZ2VyOjpjYWxsT3BlcmF0aW9uT1NSRXhpdCk6CisgICAgICAgIChKU0M6OkZU
TDo6RXhjZXB0aW9uSGFuZGxlck1hbmFnZXI6OmdldEJ5SWRPU1JFeGl0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6RlRMOjpFeGNlcHRpb25IYW5kbGVyTWFuYWdlcjo6c3ViT1NSRXhpdCk6IERl
bGV0ZWQuCisgICAgICAgICogZnRsL0ZUTEV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyLmg6CisgICAg
ICAgICogZnRsL0ZUTEV4aXRUaHVua0dlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6
RXhpdFRodW5rR2VuZXJhdG9yOjplbWl0VGh1bmspOgorICAgICAgICAqIGZ0bC9GVExPU1JFeGl0
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpPU1JFeGl0RGVzY3JpcHRvcjo6T1NSRXhpdERlc2Ny
aXB0b3IpOgorICAgICAgICAoSlNDOjpGVEw6Ok9TUkV4aXREZXNjcmlwdG9yOjppc0V4Y2VwdGlv
bkhhbmRsZXIpOgorICAgICAgICAoSlNDOjpGVEw6Ok9TUkV4aXQ6Ok9TUkV4aXQpOgorICAgICAg
ICAoSlNDOjpGVEw6Ok9TUkV4aXQ6OnNwaWxsUmVnaXN0ZXJzVG9TcGlsbFNsb3QpOgorICAgICAg
ICAoSlNDOjpGVEw6Ok9TUkV4aXQ6OnJlY292ZXJSZWdpc3RlcnNGcm9tU3BpbGxTbG90KToKKyAg
ICAgICAgKEpTQzo6RlRMOjpPU1JFeGl0Ojp3aWxsQXJyaXZlQXRFeGl0RnJvbUluZGlyZWN0RXhj
ZXB0aW9uQ2hlY2spOgorICAgICAgICAoSlNDOjpGVEw6Ok9TUkV4aXQ6OndpbGxBcnJpdmVBdE9T
UkV4aXRGcm9tR2VuZXJpY1Vud2luZCk6CisgICAgICAgIChKU0M6OkZUTDo6T1NSRXhpdDo6d2ls
bEFycml2ZUF0T1NSRXhpdEZyb21DYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKEpTQzo6RlRMOjpP
U1JFeGl0OjpuZWVkc1JlZ2lzdGVyUmVjb3ZlcnlPbkdlbmVyaWNVbndpbmRPU1JFeGl0UGF0aCk6
CisgICAgICAgIChKU0M6OkZUTDo6T1NSRXhpdERlc2NyaXB0b3I6OndpbGxBcnJpdmVBdEV4aXRG
cm9tSW5kaXJlY3RFeGNlcHRpb25DaGVjayk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6
T1NSRXhpdERlc2NyaXB0b3I6Om1pZ2h0QXJyaXZlQXRPU1JFeGl0RnJvbUdlbmVyaWNVbndpbmQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpGVEw6Ok9TUkV4aXREZXNjcmlwdG9yOjptaWdodEFy
cml2ZUF0T1NSRXhpdEZyb21DYWxsT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
RlRMOjpPU1JFeGl0RGVzY3JpcHRvcjo6bmVlZHNSZWdpc3RlclJlY292ZXJ5T25HZW5lcmljVW53
aW5kT1NSRXhpdFBhdGgpOiBEZWxldGVkLgorICAgICAgICAqIGZ0bC9GVExPU1JFeGl0Lmg6Cisg
ICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxhdGlvbkluZm8uaDoKKyAgICAgICAgKEpTQzo6
RlRMOjpPU1JFeGl0Q29tcGlsYXRpb25JbmZvOjpPU1JFeGl0Q29tcGlsYXRpb25JbmZvKToKKyAg
ICAgICAgKiBmdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpj
b21waWxlRlRMT1NSRXhpdCk6CisKIDIwMTUtMTEtMzAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yIHRoZSBvcF9hZGQsIG9wX3N1YiwgYW5kIG9wX211
bCBzbmlwcGV0cyB0byB1c2UgdGhlIFNuaXBwZXRPcGVyYW5kIGNsYXNzLgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCShyZXZpc2lvbiAxOTI4MzIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NDAsMTIgKzY0MCwzOSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01h
cHMoCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIE9TUkV4aXQmIGV4aXQgPSBzdGF0ZS5q
aXRDb2RlLT5vc3JFeGl0Lmxhc3QoKTsKLSAgICAgICAgICAgIGlmIChleGl0RGVzY3JpcHRvci53
aWxsQXJyaXZlQXRFeGl0RnJvbUluZGlyZWN0RXhjZXB0aW9uQ2hlY2soKSkgeworICAgICAgICAg
ICAgaWYgKGV4aXQud2lsbEFycml2ZUF0RXhpdEZyb21JbmRpcmVjdEV4Y2VwdGlvbkNoZWNrKCkp
IHsKICAgICAgICAgICAgICAgICBTdGFja01hcHM6OlJlY29yZCYgcmVjb3JkID0gaXRlci0+dmFs
dWVbal0ucmVjb3JkOwogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGV4aXQubV9kZXNj
cmlwdG9yLm1fc2VtYW50aWNDb2RlT3JpZ2luRm9yQ2FsbEZyYW1lSGVhZGVyLmlzU2V0KCkpOwog
ICAgICAgICAgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCA9IHN0YXRlLmppdENv
ZGUtPmNvbW1vbi5hZGRVbmlxdWVDYWxsU2l0ZUluZGV4KGV4aXQubV9kZXNjcmlwdG9yLm1fc2Vt
YW50aWNDb2RlT3JpZ2luRm9yQ2FsbEZyYW1lSGVhZGVyKTsKICAgICAgICAgICAgICAgICBleGl0
Lm1fZXhjZXB0aW9uSGFuZGxlckNhbGxTaXRlSW5kZXggPSBjYWxsU2l0ZUluZGV4OwotICAgICAg
ICAgICAgICAgIGV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyLmFkZE5ld0V4aXQoaXRlci0+dmFsdWVb
al0uaW5kZXgsIHN0YXRlLmppdENvZGUtPm9zckV4aXQuc2l6ZSgpIC0gMSk7CisKKyAgICAgICAg
ICAgICAgICBPU1JFeGl0KiBjYWxsT3BlcmF0aW9uRXhpdCA9IG51bGxwdHI7CisgICAgICAgICAg
ICAgICAgaWYgKGV4aXREZXNjcmlwdG9yLm1fZXhjZXB0aW9uVHlwZSA9PSBFeGNlcHRpb25UeXBl
OjpTdWJHZW5lcmF0b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uSGFuZGxlck1h
bmFnZXIuYWRkTmV3Q2FsbE9wZXJhdGlvbkV4aXQoaXRlci0+dmFsdWVbal0uaW5kZXgsIHN0YXRl
LmppdENvZGUtPm9zckV4aXQuc2l6ZSgpIC0gMSk7CisgICAgICAgICAgICAgICAgICAgIGNhbGxP
cGVyYXRpb25FeGl0ID0gJmV4aXQ7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgICAgIGV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyLmFkZE5ld0V4aXQoaXRlci0+dmFsdWVb
al0uaW5kZXgsIHN0YXRlLmppdENvZGUtPm9zckV4aXQuc2l6ZSgpIC0gMSk7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGV4aXREZXNjcmlwdG9yLm1fZXhjZXB0aW9uVHlw
ZSA9PSBFeGNlcHRpb25UeXBlOjpHZXRCeUlkIHx8IGV4aXREZXNjcmlwdG9yLm1fZXhjZXB0aW9u
VHlwZSA9PSBFeGNlcHRpb25UeXBlOjpQdXRCeUlkKSB7CisgICAgICAgICAgICAgICAgICAgIC8v
IFdlIGNyZWF0ZSB0d28gZGlmZmVyZW50IE9TUkV4aXRzIGZvciBHZXRCeUlkIGFuZCBQdXRCeUlk
LgorICAgICAgICAgICAgICAgICAgICAvLyBPbmUgZXhpdCB0aGF0IHdpbGwgYmUgYXJyaXZlZCBh
dCBmcm9tIHRoZSBnZW5lcmljVW53aW5kIGV4Y2VwdGlvbiBoYW5kbGVyIHBhdGgsCisgICAgICAg
ICAgICAgICAgICAgIC8vIGFuZCB0aGUgb3RoZXIgdGhhdCB3aWxsIGJlIGFycml2ZWQgYXQgZnJv
bSB0aGUgY2FsbE9wZXJhdGlvbiBwYXRoIGV4Y2VwdGlvbiBoYW5kbGVyIHBhdGguCisgICAgICAg
ICAgICAgICAgICAgIC8vIFRoaXMgY29kZSBoZXJlIGdlbmVyYXRlcyB0aGUgc2Vjb25kIGNhbGxP
cGVyYXRpb24gdmFyaWFudC4KKyAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgc3RhY2ttYXBS
ZWNvcmRJbmRleCA9IGl0ZXItPnZhbHVlW2pdLmluZGV4OworICAgICAgICAgICAgICAgICAgICBP
U1JFeGl0IGV4aXQoZXhpdERlc2NyaXB0b3IsIHN0YWNrbWFwUmVjb3JkSW5kZXgpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoZXhpdERlc2NyaXB0b3IubV9leGNlcHRpb25UeXBlID09IEV4Y2Vw
dGlvblR5cGU6OkdldEJ5SWQpCisgICAgICAgICAgICAgICAgICAgICAgICBleGl0Lm1fZXhjZXB0
aW9uVHlwZSA9IEV4Y2VwdGlvblR5cGU6OkdldEJ5SWRDYWxsT3BlcmF0aW9uOworICAgICAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBleGl0Lm1fZXhjZXB0aW9u
VHlwZSA9IEV4Y2VwdGlvblR5cGU6OlB1dEJ5SWRDYWxsT3BlcmF0aW9uOworICAgICAgICAgICAg
ICAgICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXggPSBzdGF0ZS5qaXRDb2RlLT5jb21t
b24uYWRkVW5pcXVlQ2FsbFNpdGVJbmRleChleGl0Lm1fZGVzY3JpcHRvci5tX3NlbWFudGljQ29k
ZU9yaWdpbkZvckNhbGxGcmFtZUhlYWRlcik7CisgICAgICAgICAgICAgICAgICAgIGV4aXQubV9l
eGNlcHRpb25IYW5kbGVyQ2FsbFNpdGVJbmRleCA9IGNhbGxTaXRlSW5kZXg7CisKKyAgICAgICAg
ICAgICAgICAgICAgc3RhdGUuaml0Q29kZS0+b3NyRXhpdC5hcHBlbmQoZXhpdCk7CisgICAgICAg
ICAgICAgICAgICAgIHN0YXRlLmZpbmFsaXplci0+b3NyRXhpdC5hcHBlbmQoT1NSRXhpdENvbXBp
bGF0aW9uSW5mbygpKTsKKworICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGVyTWFu
YWdlci5hZGROZXdDYWxsT3BlcmF0aW9uRXhpdChpdGVyLT52YWx1ZVtqXS5pbmRleCwgc3RhdGUu
aml0Q29kZS0+b3NyRXhpdC5zaXplKCkgLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgY2FsbE9w
ZXJhdGlvbkV4aXQgPSAmc3RhdGUuaml0Q29kZS0+b3NyRXhpdC5sYXN0KCk7CisgICAgICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICAgICAgLy8gU3VicyBhbmQgR2V0QnlJZHMgaGF2ZSBhbiBp
bnRlcmVzdGluZyByZWdpc3RlciBwcmVzZXJ2YXRpb24gc3RvcnksCiAgICAgICAgICAgICAgICAg
Ly8gc2VlIGNvbW1lbnQgYmVsb3cgYXQgR2V0QnlJZCB0byByZWFkIGFib3V0IGl0LgpAQCAtNjYz
LDEzICs2OTAsMTMgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAog
ICAgICAgICAgICAgICAgICAgICBHUFJSZWcgcmVzdWx0ID0gcmVjb3JkLmxvY2F0aW9uc1swXS5k
aXJlY3RHUFIoKTsKICAgICAgICAgICAgICAgICAgICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9j
YXRpb25zWzFdLmRpcmVjdEdQUigpOwogICAgICAgICAgICAgICAgICAgICBpZiAoYmFzZSA9PSBy
ZXN1bHQpCi0gICAgICAgICAgICAgICAgICAgICAgICBleGl0LnJlZ2lzdGVyc1RvUHJlc2VydmVG
b3JDYWxsVGhhdE1pZ2h0VGhyb3cuc2V0KGJhc2UpOworICAgICAgICAgICAgICAgICAgICAgICAg
Y2FsbE9wZXJhdGlvbkV4aXQtPnJlZ2lzdGVyc1RvUHJlc2VydmVGb3JDYWxsVGhhdE1pZ2h0VGhy
b3cuc2V0KGJhc2UpOwogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXhpdERlc2NyaXB0b3Iu
bV9leGNlcHRpb25UeXBlID09IEV4Y2VwdGlvblR5cGU6OlN1YkdlbmVyYXRvcikgewogICAgICAg
ICAgICAgICAgICAgICBHUFJSZWcgcmVzdWx0ID0gcmVjb3JkLmxvY2F0aW9uc1swXS5kaXJlY3RH
UFIoKTsKICAgICAgICAgICAgICAgICAgICAgR1BSUmVnIGxlZnQgPSByZWNvcmQubG9jYXRpb25z
WzFdLmRpcmVjdEdQUigpOwogICAgICAgICAgICAgICAgICAgICBHUFJSZWcgcmlnaHQgPSByZWNv
cmQubG9jYXRpb25zWzJdLmRpcmVjdEdQUigpOwogICAgICAgICAgICAgICAgICAgICBpZiAocmVz
dWx0ID09IGxlZnQgfHwgcmVzdWx0ID09IHJpZ2h0KQotICAgICAgICAgICAgICAgICAgICAgICAg
ZXhpdC5yZWdpc3RlcnNUb1ByZXNlcnZlRm9yQ2FsbFRoYXRNaWdodFRocm93LnNldChyZXN1bHQp
OworICAgICAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbkV4aXQtPnJlZ2lzdGVyc1Rv
UHJlc2VydmVGb3JDYWxsVGhhdE1pZ2h0VGhyb3cuc2V0KHJlc3VsdCk7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC03MDAsNyArNzI3LDcgQEAgc3RhdGlj
IHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAgICAgICAgaW5mby5tX3Ro
dW5rQWRkcmVzcyA9IGxpbmtCdWZmZXItPmxvY2F0aW9uT2YoaW5mby5tX3RodW5rTGFiZWwpOwog
ICAgICAgICAgICAgZXhpdC5tX3BhdGNoYWJsZUNvZGVPZmZzZXQgPSBsaW5rQnVmZmVyLT5vZmZz
ZXRPZihpbmZvLm1fdGh1bmtKdW1wKTsKIAotICAgICAgICAgICAgaWYgKGV4aXQubV9kZXNjcmlw
dG9yLm1pZ2h0QXJyaXZlQXRPU1JFeGl0RnJvbUdlbmVyaWNVbndpbmQoKSkgeworICAgICAgICAg
ICAgaWYgKGV4aXQud2lsbEFycml2ZUF0T1NSRXhpdEZyb21HZW5lcmljVW53aW5kKCkpIHsKICAg
ICAgICAgICAgICAgICBIYW5kbGVySW5mbyBuZXdIYW5kbGVyID0gZXhpdC5tX2Rlc2NyaXB0b3Iu
bV9iYXNlbGluZUV4Y2VwdGlvbkhhbmRsZXI7CiAgICAgICAgICAgICAgICAgbmV3SGFuZGxlci5z
dGFydCA9IGV4aXQubV9leGNlcHRpb25IYW5kbGVyQ2FsbFNpdGVJbmRleC5iaXRzKCk7CiAgICAg
ICAgICAgICAgICAgbmV3SGFuZGxlci5lbmQgPSBleGl0Lm1fZXhjZXB0aW9uSGFuZGxlckNhbGxT
aXRlSW5kZXguYml0cygpICsgMTsKQEAgLTc3OCw3ICs4MDUsNyBAQCBzdGF0aWMgdm9pZCBmaXhG
dW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAgICAgICAgICAgIC8vIHJlZ2lzdGVy
IHRoYXQgd2Ugd291bGQgbGlrZSB0byBkbyB2YWx1ZSByZWNvdmVyeSBvbi4gV2UgY29tYmF0IHRo
aXMgc2l0dWF0aW9uIGZyb20gZXZlcgogICAgICAgICAgICAgICAgICAgICAvLyB0YWtpbmcgcGxh
Y2UgYnkgZW5zdXJpbmcgd2Ugc3BpbGwgdGhlIG9yaWdpbmFsIGJhc2UgdmFsdWUgYW5kIHRoZW4g
cmVjb3ZlciBpdCBmcm9tCiAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzcGlsbCBzbG90IGFz
IHRoZSBmaXJzdCBzdGVwIGluIE9TUiBleGl0LgotICAgICAgICAgICAgICAgICAgICBpZiAoT1NS
RXhpdCogZXhpdCA9IGV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyLmdldEJ5SWRPU1JFeGl0KGl0ZXIt
PnZhbHVlW2ldLmluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKE9TUkV4aXQqIGV4aXQg
PSBleGNlcHRpb25IYW5kbGVyTWFuYWdlci5jYWxsT3BlcmF0aW9uT1NSRXhpdChpdGVyLT52YWx1
ZVtpXS5pbmRleCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBleGl0LT5zcGlsbFJlZ2lzdGVy
c1RvU3BpbGxTbG90KHNsb3dQYXRoSklULCBqc0NhbGxUaGF0TWlnaHRUaHJvd1NwaWxsT2Zmc2V0
KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oCkBAIC04OTcsNyArOTI0LDcgQEAgc3RhdGljIHZvaWQg
Zml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAgICAgICAgICAgIGlmIChyZXN1bHQg
PT0gbGVmdCB8fCByZXN1bHQgPT0gcmlnaHQpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gVGhp
cyBzaXR1YXRpb24gaGFzIGEgcmVhbGx5IGludGVyZXN0aW5nIHJlZ2lzdGVyIHByZXNlcnZhdGlv
biBzdG9yeS4KICAgICAgICAgICAgICAgICAgICAgLy8gU2VlIGNvbW1lbnQgYWJvdmUgZm9yIEdl
dEJ5SWRzLgotICAgICAgICAgICAgICAgICAgICBpZiAoT1NSRXhpdCogZXhpdCA9IGV4Y2VwdGlv
bkhhbmRsZXJNYW5hZ2VyLnN1Yk9TUkV4aXQoaXRlci0+dmFsdWVbaV0uaW5kZXgpKQorICAgICAg
ICAgICAgICAgICAgICBpZiAoT1NSRXhpdCogZXhpdCA9IGV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2Vy
LmNhbGxPcGVyYXRpb25PU1JFeGl0KGl0ZXItPnZhbHVlW2ldLmluZGV4KSkKICAgICAgICAgICAg
ICAgICAgICAgICAgIGV4aXQtPnNwaWxsUmVnaXN0ZXJzVG9TcGlsbFNsb3Qoc2xvd1BhdGhKSVQs
IGpzQ2FsbFRoYXRNaWdodFRocm93U3BpbGxPZmZzZXQpOwogICAgICAgICAgICAgICAgIH0KIApA
QCAtMTA5Niw3ICsxMTIzLDcgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tN
YXBzKAogICAgICAgICBPU1JFeGl0JiBleGl0ID0gaml0Q29kZS0+b3NyRXhpdFtleGl0SW5kZXhd
OwogICAgICAgICBWZWN0b3I8Y29uc3Qgdm9pZCo+IGNvZGVBZGRyZXNzZXM7CiAKLSAgICAgICAg
aWYgKGV4aXQubV9kZXNjcmlwdG9yLndpbGxBcnJpdmVBdEV4aXRGcm9tSW5kaXJlY3RFeGNlcHRp
b25DaGVjaygpKSAvLyBUaGlzIGp1bXAgZG9lc24ndCBoYXBwZW4gZGlyZWN0bHkgZnJvbSBhIHBh
dGNocG9pbnQvc3RhY2ttYXAgd2UgY29tcGlsZS4gSXQgaGFwcGVucyBpbmRpcmVjdGx5IHRocm91
Z2ggYW4gZXhjZXB0aW9uIGNoZWNrIHNvbWV3aGVyZS4KKyAgICAgICAgaWYgKGV4aXQud2lsbEFy
cml2ZUF0RXhpdEZyb21JbmRpcmVjdEV4Y2VwdGlvbkNoZWNrKCkpIC8vIFRoaXMganVtcCBkb2Vz
bid0IGhhcHBlbiBkaXJlY3RseSBmcm9tIGEgcGF0Y2hwb2ludC9zdGFja21hcCB3ZSBjb21waWxl
LiBJdCBoYXBwZW5zIGluZGlyZWN0bHkgdGhyb3VnaCBhbiBleGNlcHRpb24gY2hlY2sgc29tZXdo
ZXJlLgogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAogICAgICAgICBTdGFja01hcHM6
OlJlY29yZCYgcmVjb3JkID0gaml0Q29kZS0+c3RhY2ttYXBzLnJlY29yZHNbZXhpdC5tX3N0YWNr
bWFwUmVjb3JkSW5kZXhdOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGNl
cHRpb25IYW5kbGVyTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExFeGNlcHRpb25IYW5kbGVyTWFuYWdlci5jcHAJKHJldmlzaW9uIDE5MjgzMikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhjZXB0aW9uSGFuZGxlck1hbmFnZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSwxNCBAQCB2b2lkIEV4Y2VwdGlvbkhhbmRs
ZXJNYW5hZ2VyOjphZGROZXdFeGl0CiB7CiAgICAgbV9tYXAuYWRkKHN0YWNrbWFwUmVjb3JkSW5k
ZXgsIG9zckV4aXRJbmRleCk7CiAgICAgT1NSRXhpdCYgZXhpdCA9IG1fc3RhdGUuaml0Q29kZS0+
b3NyRXhpdFtvc3JFeGl0SW5kZXhdOwotICAgIFJFTEVBU0VfQVNTRVJUKGV4aXQubV9kZXNjcmlw
dG9yLndpbGxBcnJpdmVBdEV4aXRGcm9tSW5kaXJlY3RFeGNlcHRpb25DaGVjaygpKTsKKyAgICBS
RUxFQVNFX0FTU0VSVChleGl0LndpbGxBcnJpdmVBdEV4aXRGcm9tSW5kaXJlY3RFeGNlcHRpb25D
aGVjaygpKTsKK30KKwordm9pZCBFeGNlcHRpb25IYW5kbGVyTWFuYWdlcjo6YWRkTmV3Q2FsbE9w
ZXJhdGlvbkV4aXQodWludDMyX3Qgc3RhY2ttYXBSZWNvcmRJbmRleCwgc2l6ZV90IG9zckV4aXRJ
bmRleCkKK3sKKyAgICBtX2NhbGxPcGVyYXRpb25NYXAuYWRkKHN0YWNrbWFwUmVjb3JkSW5kZXgs
IG9zckV4aXRJbmRleCk7CisgICAgT1NSRXhpdCYgZXhpdCA9IG1fc3RhdGUuaml0Q29kZS0+b3Ny
RXhpdFtvc3JFeGl0SW5kZXhdOworICAgIFJFTEVBU0VfQVNTRVJUKGV4aXQud2lsbEFycml2ZUF0
RXhpdEZyb21JbmRpcmVjdEV4Y2VwdGlvbkNoZWNrKCkpOwogfQogCiBDb2RlTG9jYXRpb25MYWJl
bCBFeGNlcHRpb25IYW5kbGVyTWFuYWdlcjo6Y2FsbE9wZXJhdGlvbkV4Y2VwdGlvblRhcmdldCh1
aW50MzJfdCBzdGFja21hcFJlY29yZEluZGV4KQpAQCAtNTEsMTUgKzU4LDE1IEBAIENvZGVMb2Nh
dGlvbkxhYmVsIEV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2UKICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIHJldHVybiBDb2RlTG9jYXRpb25MYWJlbCgpOwogI2Vsc2UgLy8gRlRM
X1VTRVNfQjMKLSAgICBhdXRvIGZpbmRSZXN1bHQgPSBtX21hcC5maW5kKHN0YWNrbWFwUmVjb3Jk
SW5kZXgpOwotICAgIGlmIChmaW5kUmVzdWx0ID09IG1fbWFwLmVuZCgpKQorICAgIGF1dG8gZmlu
ZFJlc3VsdCA9IG1fY2FsbE9wZXJhdGlvbk1hcC5maW5kKHN0YWNrbWFwUmVjb3JkSW5kZXgpOwor
ICAgIGlmIChmaW5kUmVzdWx0ID09IG1fY2FsbE9wZXJhdGlvbk1hcC5lbmQoKSkKICAgICAgICAg
cmV0dXJuIENvZGVMb2NhdGlvbkxhYmVsKCk7CiAKICAgICBzaXplX3Qgb3NyRXhpdEluZGV4ID0g
ZmluZFJlc3VsdC0+dmFsdWU7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9zdGF0ZS5qaXRDb2RlLT5v
c3JFeGl0W29zckV4aXRJbmRleF0ubV9kZXNjcmlwdG9yLm1pZ2h0QXJyaXZlQXRPU1JFeGl0RnJv
bUNhbGxPcGVyYXRpb24oKSk7CisgICAgUkVMRUFTRV9BU1NFUlQobV9zdGF0ZS5qaXRDb2RlLT5v
c3JFeGl0W29zckV4aXRJbmRleF0ud2lsbEFycml2ZUF0T1NSRXhpdEZyb21DYWxsT3BlcmF0aW9u
KCkpOwogICAgIE9TUkV4aXRDb21waWxhdGlvbkluZm8mIGluZm8gPSBtX3N0YXRlLmZpbmFsaXpl
ci0+b3NyRXhpdFtvc3JFeGl0SW5kZXhdOwotICAgIFJFTEVBU0VfQVNTRVJUKGluZm8ubV9jYWxs
T3BlcmF0aW9uRXhjZXB0aW9uT1NSRXhpdEVudHJhbmNlLmlzU2V0KCkpOwotICAgIHJldHVybiBt
X3N0YXRlLmZpbmFsaXplci0+ZXhpdFRodW5rc0xpbmtCdWZmZXItPmxvY2F0aW9uT2YoaW5mby5t
X2NhbGxPcGVyYXRpb25FeGNlcHRpb25PU1JFeGl0RW50cmFuY2UpOworICAgIFJFTEVBU0VfQVNT
RVJUKGluZm8ubV90aHVua0xhYmVsLmlzU2V0KCkpOworICAgIHJldHVybiBtX3N0YXRlLmZpbmFs
aXplci0+ZXhpdFRodW5rc0xpbmtCdWZmZXItPmxvY2F0aW9uT2YoaW5mby5tX3RodW5rTGFiZWwp
OwogI2VuZGlmIC8vIEZUTF9VU0VTX0IzCiB9CiAKQEAgLTgyLDI2ICs4OSwxOCBAQCBDb2RlTG9j
YXRpb25MYWJlbCBFeGNlcHRpb25IYW5kbGVyTWFuYWdlCiAjZW5kaWYgLy8gRlRMX1VTRVNfQjMK
IH0KIAotT1NSRXhpdCogRXhjZXB0aW9uSGFuZGxlck1hbmFnZXI6OmdldEJ5SWRPU1JFeGl0KHVp
bnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgpCitPU1JFeGl0KiBFeGNlcHRpb25IYW5kbGVyTWFu
YWdlcjo6Y2FsbE9wZXJhdGlvbk9TUkV4aXQodWludDMyX3Qgc3RhY2ttYXBSZWNvcmRJbmRleCkK
IHsKICAgICBhdXRvIGZpbmRSZXN1bHQgPSBtX21hcC5maW5kKHN0YWNrbWFwUmVjb3JkSW5kZXgp
OwogICAgIGlmIChmaW5kUmVzdWx0ID09IG1fbWFwLmVuZCgpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICBzaXplX3Qgb3NyRXhpdEluZGV4ID0gZmluZFJlc3VsdC0+dmFsdWU7CiAgICAg
T1NSRXhpdCogZXhpdCA9ICZtX3N0YXRlLmppdENvZGUtPm9zckV4aXRbb3NyRXhpdEluZGV4XTsK
LSAgICBSRUxFQVNFX0FTU0VSVChleGl0LT5tX2Rlc2NyaXB0b3IubV9leGNlcHRpb25UeXBlID09
IEV4Y2VwdGlvblR5cGU6OkdldEJ5SWQpOwotICAgIHJldHVybiBleGl0OyAKLX0KLQotT1NSRXhp
dCogRXhjZXB0aW9uSGFuZGxlck1hbmFnZXI6OnN1Yk9TUkV4aXQodWludDMyX3Qgc3RhY2ttYXBS
ZWNvcmRJbmRleCkKLXsKLSAgICBhdXRvIGZpbmRSZXN1bHQgPSBtX21hcC5maW5kKHN0YWNrbWFw
UmVjb3JkSW5kZXgpOwotICAgIGlmIChmaW5kUmVzdWx0ID09IG1fbWFwLmVuZCgpKQotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICBzaXplX3Qgb3NyRXhpdEluZGV4ID0gZmluZFJlc3VsdC0+
dmFsdWU7Ci0gICAgT1NSRXhpdCogZXhpdCA9ICZtX3N0YXRlLmppdENvZGUtPm9zckV4aXRbb3Ny
RXhpdEluZGV4XTsKLSAgICBSRUxFQVNFX0FTU0VSVChleGl0LT5tX2Rlc2NyaXB0b3IubV9leGNl
cHRpb25UeXBlID09IEV4Y2VwdGlvblR5cGU6OlN1YkdlbmVyYXRvcik7Ci0gICAgcmV0dXJuIGV4
aXQ7IAorICAgIC8vIFdlIG1heSBoYXZlIG1vcmUgdGhhbiBvbmUgZXhpdCBmb3IgdGhlIHNhbWUg
c3RhY2ttYXAgcmVjb3JkIGluZGV4IChpLmUsIGZvciBHZXRCeUlkcyBhbmQgUHV0QnlJZHMpLgor
ICAgIC8vIFRoZXJlZm9yZSB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGV4aXQgcmVhbGx5IGlz
IGEgY2FsbE9wZXJhdGlvbiBPU1IgZXhpdC4KKyAgICBpZiAoZXhpdC0+d2lsbEFycml2ZUF0T1NS
RXhpdEZyb21DYWxsT3BlcmF0aW9uKCkpCisgICAgICAgIHJldHVybiBleGl0OyAKKyAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAogT1NSRXhpdCogRXhjZXB0aW9uSGFuZGxlck1hbmFnZXI6OmdldENh
bGxPU1JFeGl0Q29tbW9uKHVpbnQzMl90IHN0YWNrbWFwUmVjb3JkSW5kZXgpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGNlcHRpb25IYW5kbGVyTWFu
YWdlci5oCShyZXZpc2lvbiAxOTI4MzIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEV4Y2VwdGlvbkhhbmRsZXJNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDE0ICs1NCwx
NCBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uSGFuZGxlck1hbmFnZXIoU3RhdGUmIHN0YXRlKTsK
IAogICAgIHZvaWQgYWRkTmV3RXhpdCh1aW50MzJfdCBzdGFja21hcFJlY29yZEluZGV4LCBzaXpl
X3Qgb3NyRXhpdEluZGV4KTsKKyAgICB2b2lkIGFkZE5ld0NhbGxPcGVyYXRpb25FeGl0KHVpbnQz
Ml90IHN0YWNrbWFwUmVjb3JkSW5kZXgsIHNpemVfdCBvc3JFeGl0SW5kZXgpOwogCiAgICAgLy8g
VGhlc2UgZnVuY3Rpb25zIG9ubHkgbWFrZSBzZW5zZSB0byBiZSBjYWxsZWQgYWZ0ZXIgd2UndmUg
Z2VuZXJhdGVkIHRoZSBPU1IKICAgICAvLyBleGl0IHRodW5rcyBhbmQgYWxsb2NhdGVkIHRoZSBP
U1IgZXhpdCB0aHVua3MnIGxpbmsgYnVmZmVyLgogICAgIENvZGVMb2NhdGlvbkxhYmVsIGNhbGxP
cGVyYXRpb25FeGNlcHRpb25UYXJnZXQodWludDMyX3Qgc3RhY2ttYXBSZWNvcmRJbmRleCk7CiAg
ICAgQ29kZUxvY2F0aW9uTGFiZWwgbGF6eVNsb3dQYXRoRXhjZXB0aW9uVGFyZ2V0KHVpbnQzMl90
IHN0YWNrbWFwUmVjb3JkSW5kZXgpOwogCi0gICAgT1NSRXhpdCogZ2V0QnlJZE9TUkV4aXQodWlu
dDMyX3Qgc3RhY2ttYXBSZWNvcmRJbmRleCk7Ci0gICAgT1NSRXhpdCogc3ViT1NSRXhpdCh1aW50
MzJfdCBzdGFja21hcFJlY29yZEluZGV4KTsKKyAgICBPU1JFeGl0KiBjYWxsT3BlcmF0aW9uT1NS
RXhpdCh1aW50MzJfdCBzdGFja21hcFJlY29yZEluZGV4KTsKICAgICBPU1JFeGl0KiBnZXRDYWxs
T1NSRXhpdCh1aW50MzJfdCBzdGFja21hcFJlY29yZEluZGV4LCBjb25zdCBKU0NhbGwmKTsKICAg
ICBPU1JFeGl0KiBnZXRDYWxsT1NSRXhpdCh1aW50MzJfdCBzdGFja21hcFJlY29yZEluZGV4LCBj
b25zdCBKU1RhaWxDYWxsJik7CiAgICAgT1NSRXhpdCogZ2V0Q2FsbE9TUkV4aXQodWludDMyX3Qg
c3RhY2ttYXBSZWNvcmRJbmRleCwgY29uc3QgSlNDYWxsVmFyYXJncyYpOwpAQCAtNzgsNiArNzgs
NyBAQCBwcml2YXRlOgogICAgIFN0YXRlJiBtX3N0YXRlOwogICAgIHR5cGVkZWYgSGFzaE1hcDx1
aW50MzJfdCwgc2l6ZV90LCBXVEY6OkludEhhc2g8dWludDMyX3Q+LCBXVEY6OlVuc2lnbmVkV2l0
aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQzMl90Pj4gUmVjb3JkSW5kZXhUb09TUkV4aXRJbmRleE1h
cDsKICAgICBSZWNvcmRJbmRleFRvT1NSRXhpdEluZGV4TWFwIG1fbWFwOworICAgIFJlY29yZElu
ZGV4VG9PU1JFeGl0SW5kZXhNYXAgbV9jYWxsT3BlcmF0aW9uTWFwOwogfTsKIAogfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkZUTApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0
VGh1bmtHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMRXhpdFRodW5rR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMTkyODMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VGh1bmtHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MywyNyArNTMsMTggQEAgdm9pZCBFeGl0VGh1bmtHZW5lcmF0b3I6OmVtaXRUaHVu
ayh1bnNpZwogICAgIAogICAgIGluZm8ubV90aHVua0xhYmVsID0gbGFiZWwoKTsKIAotICAgIEp1
bXAganVtcFRvUHVzaEluZGV4RnJvbUdlbmVyaWNVbndpbmQ7Ci0gICAgaWYgKGV4aXQubV9kZXNj
cmlwdG9yLm1pZ2h0QXJyaXZlQXRPU1JFeGl0RnJvbUdlbmVyaWNVbndpbmQoKSkgeworICAgIEFT
U0VSVCghKGV4aXQud2lsbEFycml2ZUF0T1NSRXhpdEZyb21HZW5lcmljVW53aW5kKCkgJiYgZXhp
dC53aWxsQXJyaXZlQXRPU1JFeGl0RnJvbUNhbGxPcGVyYXRpb24oKSkpOworICAgIGlmIChleGl0
LndpbGxBcnJpdmVBdE9TUkV4aXRGcm9tR2VuZXJpY1Vud2luZCgpKSB7CiAgICAgICAgIHJlc3Rv
cmVDYWxsZWVTYXZlc0Zyb21WTUNhbGxlZVNhdmVzQnVmZmVyKCk7CiAgICAgICAgIGxvYWRQdHIo
dm0oKS0+YWRkcmVzc09mQ2FsbEZyYW1lRm9yQ2F0Y2goKSwgZnJhbWVQb2ludGVyUmVnaXN0ZXIp
OwogICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC0gc3RhdGljX2Nhc3Q8aW50NjRfdD4obV9z
dGF0ZS5qaXRDb2RlLT5zdGFja21hcHMuc3RhY2tTaXplRm9yTG9jYWxzKCkpKSwgCiAgICAgICAg
ICAgICBmcmFtZVBvaW50ZXJSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogCi0gICAg
ICAgIGlmIChleGl0Lm1fZGVzY3JpcHRvci5uZWVkc1JlZ2lzdGVyUmVjb3ZlcnlPbkdlbmVyaWNV
bndpbmRPU1JFeGl0UGF0aCgpKQorICAgICAgICBpZiAoZXhpdC5uZWVkc1JlZ2lzdGVyUmVjb3Zl
cnlPbkdlbmVyaWNVbndpbmRPU1JFeGl0UGF0aCgpKQogICAgICAgICAgICAgZXhpdC5yZWNvdmVy
UmVnaXN0ZXJzRnJvbVNwaWxsU2xvdCgqdGhpcywgb3NyRXhpdEZyb21HZW5lcmljVW53aW5kU3Rh
Y2tTcGlsbFNsb3QpOwotCi0gICAgICAgIGp1bXBUb1B1c2hJbmRleEZyb21HZW5lcmljVW53aW5k
ID0ganVtcCgpOwotICAgIH0KLQotICAgIGlmIChleGl0Lm1fZGVzY3JpcHRvci5taWdodEFycml2
ZUF0T1NSRXhpdEZyb21DYWxsT3BlcmF0aW9uKCkpIHsKLSAgICAgICAgaW5mby5tX2NhbGxPcGVy
YXRpb25FeGNlcHRpb25PU1JFeGl0RW50cmFuY2UgPSBsYWJlbCgpOworICAgIH0gZWxzZSBpZiAo
ZXhpdC53aWxsQXJyaXZlQXRPU1JFeGl0RnJvbUNhbGxPcGVyYXRpb24oKSkKICAgICAgICAgZXhp
dC5yZWNvdmVyUmVnaXN0ZXJzRnJvbVNwaWxsU2xvdCgqdGhpcywgb3NyRXhpdEZyb21HZW5lcmlj
VW53aW5kU3RhY2tTcGlsbFNsb3QpOwotICAgIH0KICAgICAKLSAgICBpZiAoZXhpdC5tX2Rlc2Ny
aXB0b3IubWlnaHRBcnJpdmVBdE9TUkV4aXRGcm9tR2VuZXJpY1Vud2luZCgpKQotICAgICAgICBq
dW1wVG9QdXNoSW5kZXhGcm9tR2VuZXJpY1Vud2luZC5saW5rKHRoaXMpOwotCiAgICAgcHVzaFRv
U2F2ZUltbWVkaWF0ZVdpdGhvdXRUb3VjaGluZ1JlZ2lzdGVycyhUcnVzdGVkSW1tMzIoaW5kZXgp
KTsKICAgICBpbmZvLm1fdGh1bmtKdW1wID0gcGF0Y2hhYmxlSnVtcCgpOwogICAgIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXQuY3BwCShyZXZpc2lvbiAxOTI4MzIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01Niw2MiArNTYsNiBAQCBPU1JFeGl0RGVzY3JpcHRvcjo6T1NSRXhpdERlc2NyaXB0
b3IoCiB7CiB9CiAKLWJvb2wgT1NSRXhpdERlc2NyaXB0b3I6OndpbGxBcnJpdmVBdEV4aXRGcm9t
SW5kaXJlY3RFeGNlcHRpb25DaGVjaygpIGNvbnN0Ci17Ci0gICAgc3dpdGNoIChtX2V4Y2VwdGlv
blR5cGUpIHsKLSAgICBjYXNlIEV4Y2VwdGlvblR5cGU6OkpTQ2FsbDoKLSAgICBjYXNlIEV4Y2Vw
dGlvblR5cGU6OkdldEJ5SWQ6Ci0gICAgY2FzZSBFeGNlcHRpb25UeXBlOjpQdXRCeUlkOgotICAg
IGNhc2UgRXhjZXB0aW9uVHlwZTo6TGF6eVNsb3dQYXRoOgotICAgIGNhc2UgRXhjZXB0aW9uVHlw
ZTo6U3ViR2VuZXJhdG9yOgotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBkZWZhdWx0OgotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci19Ci0KLWJvb2wgT1NSRXhpdERlc2NyaXB0b3I6Om1pZ2h0QXJyaXZlQXRPU1JFeGl0RnJv
bUdlbmVyaWNVbndpbmQoKSBjb25zdAotewotICAgIHN3aXRjaCAobV9leGNlcHRpb25UeXBlKSB7
Ci0gICAgY2FzZSBFeGNlcHRpb25UeXBlOjpKU0NhbGw6Ci0gICAgY2FzZSBFeGNlcHRpb25UeXBl
OjpHZXRCeUlkOgotICAgIGNhc2UgRXhjZXB0aW9uVHlwZTo6UHV0QnlJZDoKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi1ib29sIE9TUkV4aXREZXNjcmlw
dG9yOjptaWdodEFycml2ZUF0T1NSRXhpdEZyb21DYWxsT3BlcmF0aW9uKCkgY29uc3QKLXsKLSAg
ICBzd2l0Y2ggKG1fZXhjZXB0aW9uVHlwZSkgewotICAgIGNhc2UgRXhjZXB0aW9uVHlwZTo6R2V0
QnlJZDoKLSAgICBjYXNlIEV4Y2VwdGlvblR5cGU6OlB1dEJ5SWQ6Ci0gICAgY2FzZSBFeGNlcHRp
b25UeXBlOjpTdWJHZW5lcmF0b3I6Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLX0KLQotYm9vbCBPU1JFeGl0RGVzY3JpcHRvcjo6bmVlZHNSZWdpc3RlclJlY292
ZXJ5T25HZW5lcmljVW53aW5kT1NSRXhpdFBhdGgoKSBjb25zdAotewotICAgIC8vIENhbGxzL1B1
dEJ5SWRzL0dldEJ5SWRzIGFsbCBoYXZlIGEgZ2VuZXJpYyB1bndpbmQgb3NyIGV4aXQgcGF0aHMu
Ci0gICAgLy8gQnV0LCBHZXRCeUlkIGFuZCBQdXRCeUlkIElDcyB3aWxsIGRvIHJlZ2lzdGVyIHJl
Y292ZXJ5IHRoZW1zZWx2ZXMKLSAgICAvLyBiZWNhdXNlIHRoZXkncmUgcmVzcG9uc2libGUgZm9y
IHNwaWxsaW5nIG5lY2Vzc2FyeSByZWdpc3RlcnMsIHNvCi0gICAgLy8gdGhleSBhbHNvIG11c3Qg
cmVjb3ZlciByZWdpc3RlcnMgdGhlbXNlbHZlcy4KLSAgICAvLyBDYWxscyBkb24ndCB3b3JrIHRo
aXMgd2F5LiBXZSBjb21waWxlIENhbGxzIGFzIHBhdGNocG9pbnRzIGluIExMVk0uCi0gICAgLy8g
QSBjYWxsIHBhdGNocG9pbnQgbWlnaHQgcGFzcyB1cyB2b2xhdGlsZSByZWdpc3RlcnMgZm9yIGxv
Y2F0aW9ucwotICAgIC8vIHdlIHdpbGwgZG8gdmFsdWUgcmVjb3Zlcnkgb24uIFRoZXJlZm9yZSwg
YmVmb3JlIHdlIG1ha2UgdGhlIGNhbGwsCi0gICAgLy8gd2UgbXVzdCBzcGlsbCB0aGVzZSByZWdp
c3RlcnMuIE90aGVyd2lzZSwgdGhlIGNhbGwgd2lsbCBjbG9iYmVyIHRoZW0uCi0gICAgLy8gVGhl
cmVmb3JlLCB0aGUgY29ycmVzcG9uZGluZyBPU1IgZXhpdCBmb3IgdGhlIGNhbGwgd2lsbCBuZWVk
IHRvCi0gICAgLy8gcmVjb3ZlciB0aGUgc3BpbGxlZCByZWdpc3RlcnMuCi0gICAgcmV0dXJuIG1f
ZXhjZXB0aW9uVHlwZSA9PSBFeGNlcHRpb25UeXBlOjpKU0NhbGw7Ci19Ci0KIGJvb2wgT1NSRXhp
dERlc2NyaXB0b3I6OmlzRXhjZXB0aW9uSGFuZGxlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
ZXhjZXB0aW9uVHlwZSAhPSBFeGNlcHRpb25UeXBlOjpOb25lOwpAQCAtMTMxLDYgKzc1LDcgQEAg
T1NSRXhpdDo6T1NSRXhpdChPU1JFeGl0RGVzY3JpcHRvciYgZGVzYwogICAgIDogT1NSRXhpdEJh
c2UoZGVzY3JpcHRvci5tX2tpbmQsIGRlc2NyaXB0b3IubV9jb2RlT3JpZ2luLCBkZXNjcmlwdG9y
Lm1fY29kZU9yaWdpbkZvckV4aXRQcm9maWxlKQogICAgICwgbV9kZXNjcmlwdG9yKGRlc2NyaXB0
b3IpCiAgICAgLCBtX3N0YWNrbWFwUmVjb3JkSW5kZXgoc3RhY2ttYXBSZWNvcmRJbmRleCkKKyAg
ICAsIG1fZXhjZXB0aW9uVHlwZShkZXNjcmlwdG9yLm1fZXhjZXB0aW9uVHlwZSkKIHsKICAgICBt
X2lzRXhjZXB0aW9uSGFuZGxlciA9IGRlc2NyaXB0b3IuaXNFeGNlcHRpb25IYW5kbGVyKCk7CiB9
CkBAIC0xODYsNyArMTMxLDcgQEAgdm9pZCBPU1JFeGl0OjpnYXRoZXJSZWdpc3RlcnNUb1NwaWxs
Rm9yQwogCiB2b2lkIE9TUkV4aXQ6OnNwaWxsUmVnaXN0ZXJzVG9TcGlsbFNsb3QoQ0NhbGxIZWxw
ZXJzJiBqaXQsIGludDMyX3Qgc3RhY2tTcGlsbFNsb3QpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQo
bV9kZXNjcmlwdG9yLm1pZ2h0QXJyaXZlQXRPU1JFeGl0RnJvbUdlbmVyaWNVbndpbmQoKSB8fCBt
X2Rlc2NyaXB0b3IubWlnaHRBcnJpdmVBdE9TUkV4aXRGcm9tQ2FsbE9wZXJhdGlvbigpKTsKKyAg
ICBSRUxFQVNFX0FTU0VSVCh3aWxsQXJyaXZlQXRPU1JFeGl0RnJvbUdlbmVyaWNVbndpbmQoKSB8
fCB3aWxsQXJyaXZlQXRPU1JFeGl0RnJvbUNhbGxPcGVyYXRpb24oKSk7CiAgICAgdW5zaWduZWQg
Y291bnQgPSAwOwogICAgIGZvciAoR1BSUmVnIHJlZyA9IE1hY3JvQXNzZW1ibGVyOjpmaXJzdFJl
Z2lzdGVyKCk7IHJlZyA8PSBNYWNyb0Fzc2VtYmxlcjo6bGFzdFJlZ2lzdGVyKCk7IHJlZyA9IE1h
Y3JvQXNzZW1ibGVyOjpuZXh0UmVnaXN0ZXIocmVnKSkgewogICAgICAgICBpZiAocmVnaXN0ZXJz
VG9QcmVzZXJ2ZUZvckNhbGxUaGF0TWlnaHRUaHJvdy5nZXQocmVnKSkgewpAQCAtMjA0LDcgKzE0
OSw3IEBAIHZvaWQgT1NSRXhpdDo6c3BpbGxSZWdpc3RlcnNUb1NwaWxsU2xvdCgKIAogdm9pZCBP
U1JFeGl0OjpyZWNvdmVyUmVnaXN0ZXJzRnJvbVNwaWxsU2xvdChDQ2FsbEhlbHBlcnMmIGppdCwg
aW50MzJfdCBzdGFja1NwaWxsU2xvdCkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2Rlc2NyaXB0
b3IubWlnaHRBcnJpdmVBdE9TUkV4aXRGcm9tR2VuZXJpY1Vud2luZCgpIHx8IG1fZGVzY3JpcHRv
ci5taWdodEFycml2ZUF0T1NSRXhpdEZyb21DYWxsT3BlcmF0aW9uKCkpOworICAgIFJFTEVBU0Vf
QVNTRVJUKHdpbGxBcnJpdmVBdE9TUkV4aXRGcm9tR2VuZXJpY1Vud2luZCgpIHx8IHdpbGxBcnJp
dmVBdE9TUkV4aXRGcm9tQ2FsbE9wZXJhdGlvbigpKTsKICAgICB1bnNpZ25lZCBjb3VudCA9IDA7
CiAgICAgZm9yIChHUFJSZWcgcmVnID0gTWFjcm9Bc3NlbWJsZXI6OmZpcnN0UmVnaXN0ZXIoKTsg
cmVnIDw9IE1hY3JvQXNzZW1ibGVyOjpsYXN0UmVnaXN0ZXIoKTsgcmVnID0gTWFjcm9Bc3NlbWJs
ZXI6Om5leHRSZWdpc3RlcihyZWcpKSB7CiAgICAgICAgIGlmIChyZWdpc3RlcnNUb1ByZXNlcnZl
Rm9yQ2FsbFRoYXRNaWdodFRocm93LmdldChyZWcpKSB7CkBAIC0yMjAsNiArMTY1LDY0IEBAIHZv
aWQgT1NSRXhpdDo6cmVjb3ZlclJlZ2lzdGVyc0Zyb21TcGlsbFMKICAgICB9CiB9CiAKK2Jvb2wg
T1NSRXhpdDo6d2lsbEFycml2ZUF0RXhpdEZyb21JbmRpcmVjdEV4Y2VwdGlvbkNoZWNrKCkgY29u
c3QKK3sKKyAgICBzd2l0Y2ggKG1fZXhjZXB0aW9uVHlwZSkgeworICAgIGNhc2UgRXhjZXB0aW9u
VHlwZTo6SlNDYWxsOgorICAgIGNhc2UgRXhjZXB0aW9uVHlwZTo6R2V0QnlJZDoKKyAgICBjYXNl
IEV4Y2VwdGlvblR5cGU6OlB1dEJ5SWQ6CisgICAgY2FzZSBFeGNlcHRpb25UeXBlOjpMYXp5U2xv
d1BhdGg6CisgICAgY2FzZSBFeGNlcHRpb25UeXBlOjpTdWJHZW5lcmF0b3I6CisgICAgY2FzZSBF
eGNlcHRpb25UeXBlOjpHZXRCeUlkQ2FsbE9wZXJhdGlvbjoKKyAgICBjYXNlIEV4Y2VwdGlvblR5
cGU6OlB1dEJ5SWRDYWxsT3BlcmF0aW9uOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cit9CisKK2Jvb2wgT1NSRXhpdDo6d2lsbEFycml2ZUF0T1NSRXhpdEZyb21H
ZW5lcmljVW53aW5kKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fZXhjZXB0aW9uVHlwZSkgewor
ICAgIGNhc2UgRXhjZXB0aW9uVHlwZTo6SlNDYWxsOgorICAgIGNhc2UgRXhjZXB0aW9uVHlwZTo6
R2V0QnlJZDoKKyAgICBjYXNlIEV4Y2VwdGlvblR5cGU6OlB1dEJ5SWQ6CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworYm9vbCBPU1JFeGl0Ojp3aWxsQXJy
aXZlQXRPU1JFeGl0RnJvbUNhbGxPcGVyYXRpb24oKSBjb25zdAoreworICAgIHN3aXRjaCAobV9l
eGNlcHRpb25UeXBlKSB7CisgICAgY2FzZSBFeGNlcHRpb25UeXBlOjpHZXRCeUlkQ2FsbE9wZXJh
dGlvbjoKKyAgICBjYXNlIEV4Y2VwdGlvblR5cGU6OlB1dEJ5SWRDYWxsT3BlcmF0aW9uOgorICAg
IGNhc2UgRXhjZXB0aW9uVHlwZTo6U3ViR2VuZXJhdG9yOgorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK2Jvb2wgT1NSRXhpdDo6bmVlZHNSZWdpc3RlclJl
Y292ZXJ5T25HZW5lcmljVW53aW5kT1NSRXhpdFBhdGgoKSBjb25zdAoreworICAgIC8vIENhbGxz
L1B1dEJ5SWRzL0dldEJ5SWRzIGFsbCBoYXZlIGEgZ2VuZXJpYyB1bndpbmQgb3NyIGV4aXQgcGF0
aHMuCisgICAgLy8gQnV0LCBHZXRCeUlkIGFuZCBQdXRCeUlkIElDcyB3aWxsIGRvIHJlZ2lzdGVy
IHJlY292ZXJ5IHRoZW1zZWx2ZXMKKyAgICAvLyBiZWNhdXNlIHRoZXkncmUgcmVzcG9uc2libGUg
Zm9yIHNwaWxsaW5nIG5lY2Vzc2FyeSByZWdpc3RlcnMsIHNvCisgICAgLy8gdGhleSBhbHNvIG11
c3QgcmVjb3ZlciByZWdpc3RlcnMgdGhlbXNlbHZlcy4KKyAgICAvLyBDYWxscyBkb24ndCB3b3Jr
IHRoaXMgd2F5LiBXZSBjb21waWxlIENhbGxzIGFzIHBhdGNocG9pbnRzIGluIExMVk0uCisgICAg
Ly8gQSBjYWxsIHBhdGNocG9pbnQgbWlnaHQgcGFzcyB1cyB2b2xhdGlsZSByZWdpc3RlcnMgZm9y
IGxvY2F0aW9ucworICAgIC8vIHdlIHdpbGwgZG8gdmFsdWUgcmVjb3Zlcnkgb24uIFRoZXJlZm9y
ZSwgYmVmb3JlIHdlIG1ha2UgdGhlIGNhbGwsCisgICAgLy8gd2UgbXVzdCBzcGlsbCB0aGVzZSBy
ZWdpc3RlcnMuIE90aGVyd2lzZSwgdGhlIGNhbGwgd2lsbCBjbG9iYmVyIHRoZW0uCisgICAgLy8g
VGhlcmVmb3JlLCB0aGUgY29ycmVzcG9uZGluZyBPU1IgZXhpdCBmb3IgdGhlIGNhbGwgd2lsbCBu
ZWVkIHRvCisgICAgLy8gcmVjb3ZlciB0aGUgc3BpbGxlZCByZWdpc3RlcnMuCisgICAgcmV0dXJu
IG1fZXhjZXB0aW9uVHlwZSA9PSBFeGNlcHRpb25UeXBlOjpKU0NhbGw7Cit9CisKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpGVEwKIAogI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0LmgJKHJldmlzaW9uIDE5MjgzMikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzYsMTQgKzEzNiwxNiBAQCBuYW1lc3BhY2UgRlRMIHsKIC8vICAgaW50cmluc2ljcyAob3IgbWV0
YS1kYXRhLCBvciBzb21ldGhpbmcpIHRvIGluZm9ybSB0aGUgYmFja2VuZCB0aGF0IGl0J3Mgc2Fm
ZSB0bwogLy8gICBtYWtlIHRoZSBwcmVkaWNhdGUgcGFzc2VkIHRvICdleGl0SWYoKScgbW9yZSB0
cnV0aHkuCiAKLWVudW0gY2xhc3MgRXhjZXB0aW9uVHlwZSB7CitlbnVtIGNsYXNzIEV4Y2VwdGlv
blR5cGUgOiB1aW50OF90IHsKICAgICBOb25lLAogICAgIENDYWxsRXhjZXB0aW9uLAogICAgIEpT
Q2FsbCwKICAgICBHZXRCeUlkLAorICAgIEdldEJ5SWRDYWxsT3BlcmF0aW9uLAogICAgIFB1dEJ5
SWQsCisgICAgUHV0QnlJZENhbGxPcGVyYXRpb24sCiAgICAgTGF6eVNsb3dQYXRoLAotICAgIFN1
YkdlbmVyYXRvcgorICAgIFN1YkdlbmVyYXRvciwKIH07CiAKIHN0cnVjdCBPU1JFeGl0RGVzY3Jp
cHRvciB7CkBAIC0xNTIsMTAgKzE1NCw2IEBAIHN0cnVjdCBPU1JFeGl0RGVzY3JpcHRvciB7CiAg
ICAgICAgIENvZGVPcmlnaW4sIENvZGVPcmlnaW4gb3JpZ2luRm9yUHJvZmlsZSwKICAgICAgICAg
dW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudHMsIHVuc2lnbmVkIG51bWJlck9mTG9jYWxzKTsKIAot
ICAgIGJvb2wgd2lsbEFycml2ZUF0RXhpdEZyb21JbmRpcmVjdEV4Y2VwdGlvbkNoZWNrKCkgY29u
c3Q7Ci0gICAgYm9vbCBtaWdodEFycml2ZUF0T1NSRXhpdEZyb21HZW5lcmljVW53aW5kKCkgY29u
c3Q7Ci0gICAgYm9vbCBtaWdodEFycml2ZUF0T1NSRXhpdEZyb21DYWxsT3BlcmF0aW9uKCkgY29u
c3Q7Ci0gICAgYm9vbCBuZWVkc1JlZ2lzdGVyUmVjb3ZlcnlPbkdlbmVyaWNVbndpbmRPU1JFeGl0
UGF0aCgpIGNvbnN0OwogICAgIGJvb2wgaXNFeGNlcHRpb25IYW5kbGVyKCkgY29uc3Q7CiAKICAg
ICBFeGl0S2luZCBtX2tpbmQ7CkBAIC0xOTEsNiArMTg5LDcgQEAgc3RydWN0IE9TUkV4aXQgOiBw
dWJsaWMgREZHOjpPU1JFeGl0QmFzZQogICAgIHVuc2lnbmVkIG1fcGF0Y2hhYmxlQ29kZU9mZnNl
dDsKICAgICAvLyBPZmZzZXQgd2l0aGluIFN0YWNrbWFwOjpyZWNvcmRzCiAgICAgdWludDMyX3Qg
bV9zdGFja21hcFJlY29yZEluZGV4OworICAgIEV4Y2VwdGlvblR5cGUgbV9leGNlcHRpb25UeXBl
OwogCiAgICAgUmVnaXN0ZXJTZXQgcmVnaXN0ZXJzVG9QcmVzZXJ2ZUZvckNhbGxUaGF0TWlnaHRU
aHJvdzsKIApAQCAtMjAzLDYgKzIwMiwxMSBAQCBzdHJ1Y3QgT1NSRXhpdCA6IHB1YmxpYyBERkc6
Ok9TUkV4aXRCYXNlCiAgICAgdm9pZCBnYXRoZXJSZWdpc3RlcnNUb1NwaWxsRm9yQ2FsbElmRXhj
ZXB0aW9uKFN0YWNrTWFwcyYsIFN0YWNrTWFwczo6UmVjb3JkJik7CiAgICAgdm9pZCBzcGlsbFJl
Z2lzdGVyc1RvU3BpbGxTbG90KENDYWxsSGVscGVycyYsIGludDMyX3Qgc3RhY2tTcGlsbFNsb3Qp
OwogICAgIHZvaWQgcmVjb3ZlclJlZ2lzdGVyc0Zyb21TcGlsbFNsb3QoQ0NhbGxIZWxwZXJzJiBq
aXQsIGludDMyX3Qgc3RhY2tTcGlsbFNsb3QpOworCisgICAgYm9vbCB3aWxsQXJyaXZlQXRPU1JF
eGl0RnJvbUdlbmVyaWNVbndpbmQoKSBjb25zdDsKKyAgICBib29sIHdpbGxBcnJpdmVBdEV4aXRG
cm9tSW5kaXJlY3RFeGNlcHRpb25DaGVjaygpIGNvbnN0OworICAgIGJvb2wgd2lsbEFycml2ZUF0
T1NSRXhpdEZyb21DYWxsT3BlcmF0aW9uKCkgY29uc3Q7CisgICAgYm9vbCBuZWVkc1JlZ2lzdGVy
UmVjb3ZlcnlPbkdlbmVyaWNVbndpbmRPU1JFeGl0UGF0aCgpIGNvbnN0OwogfTsKIAogfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkZUTApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
U1JFeGl0Q29tcGlsYXRpb25JbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsYXRpb25JbmZvLmgJKHJldmlzaW9uIDE5MjgzMikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGF0aW9uSW5mby5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw2IEBAIHN0cnVjdCBPU1JFeGl0Q29tcGlsYXRpb25J
bmZvIHsKICAgICB9CiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fdGh1bmtMYWJl
bDsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9jYWxsT3BlcmF0aW9uRXhjZXB0aW9uT1NS
RXhpdEVudHJhbmNlOwogICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIG1fdGh1bmtK
dW1wOwogICAgIENvZGVMb2NhdGlvbkxhYmVsIG1fdGh1bmtBZGRyZXNzOwogfTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHJl
dmlzaW9uIDE5MjgzMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENv
bXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQ3LDcgKzU0Nyw3IEBAIGV4dGVybiAiQyIg
dm9pZCogY29tcGlsZUZUTE9TUkV4aXQoRXhlY1MKICAgICAgICAgZGF0YUxvZygiICAgIEV4aXQg
c3RhY2ttYXAgSUQ6ICIsIGV4aXQubV9kZXNjcmlwdG9yLm1fc3RhY2ttYXBJRCwgIlxuIik7CiAg
ICAgICAgIGRhdGFMb2coIiAgICBDdXJyZW50IGNhbGwgc2l0ZSBpbmRleDogIiwgZXhlYy0+Y2Fs
bFNpdGVJbmRleCgpLmJpdHMoKSwgIlxuIik7CiAgICAgICAgIGRhdGFMb2coIiAgICBFeGl0IGlz
IGV4Y2VwdGlvbiBoYW5kbGVyOiAiLCBleGl0Lm1faXNFeGNlcHRpb25IYW5kbGVyLAotICAgICAg
ICAgICAgIiBtaWdodCBhcnJpdmUgYXQgZXhpdCBmcm9tIGdlbmVyaWNVbndpbmQoKTogIiwgZXhp
dC5tX2Rlc2NyaXB0b3IubWlnaHRBcnJpdmVBdE9TUkV4aXRGcm9tR2VuZXJpY1Vud2luZCgpLCAK
KyAgICAgICAgICAgICIgd2lsbCBhcnJpdmUgYXQgZXhpdCBmcm9tIGdlbmVyaWNVbndpbmQoKTog
IiwgZXhpdC53aWxsQXJyaXZlQXRPU1JFeGl0RnJvbUdlbmVyaWNVbndpbmQoKSwgCiAgICAgICAg
ICAgICAiIHdpbGwgYXJyaXZlIGF0IGV4aXQgZnJvbSBsYXp5IHNsb3cgcGF0aDogIiwgZXhpdC5t
X2Rlc2NyaXB0b3IubV9leGNlcHRpb25UeXBlID09IEV4Y2VwdGlvblR5cGU6OkxhenlTbG93UGF0
aCwgIlxuIik7CiAgICAgICAgIGRhdGFMb2coIiAgICBFeGl0IHZhbHVlczogIiwgZXhpdC5tX2Rl
c2NyaXB0b3IubV92YWx1ZXMsICJcbiIpOwogICAgICAgICBpZiAoIWV4aXQubV9kZXNjcmlwdG9y
Lm1fbWF0ZXJpYWxpemF0aW9ucy5pc0VtcHR5KCkpIHsK
</data>
<flag name="review"
          id="291312"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>