<?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>170305</bug_id>
          
          <creation_ts>2017-03-30 15:48:58 -0700</creation_ts>
          <short_desc>Air::lowerAfterRegAlloc should bail early if it finds no Shuffles or ColdCCalls</short_desc>
          <delta_ts>2017-04-04 14:49:06 -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>All</rep_platform>
          <op_sys>All</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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>buildbot</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1292995</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-03-30 15:48:58 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294115</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-04-04 12:37:39 -0700</bug_when>
    <thetext>*** Bug 170306 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294117</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-04-04 12:37:54 -0700</bug_when>
    <thetext>*** Bug 170307 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294133</commentid>
    <comment_count>3</comment_count>
      <attachid>306190</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-04-04 13:22:23 -0700</bug_when>
    <thetext>Created attachment 306190
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294145</commentid>
    <comment_count>4</comment_count>
      <attachid>306190</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-04 13:47:27 -0700</bug_when>
    <thetext>Comment on attachment 306190
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294192</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-04-04 14:49:06 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/214901/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306190</attachid>
            <date>2017-04-04 13:22:23 -0700</date>
            <delta_ts>2017-04-04 13:47:27 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>24107</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE0ODk1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDE3LTA0LTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QWlyOjpsb3dlckFmdGVyUmVnQWxsb2Mgc2hvdWxkIGJhaWwgZWFybHkgaWYgaXQgZmluZHMgbm8g
U2h1ZmZsZXMgb3IgQ29sZENDYWxscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcwMzA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisgICAgICAgIAorICAgICAgICBUaGlzIHJlZHVjZXMgYW5kIHNvbWV0aW1lcyBjb21wbGV0
ZWx5IGVsaW1pbmF0ZXMgdGhlIG5lZWQgdG8gcnVuIGxvd2VyQWZ0ZXJSZWdBbGxvYygpLgorICAg
ICAgICAKKyAgICAgICAgVGhpcyBsb3dlcnMgdGhlIFNodWZmbGUgZm9yIHRoZSBhcmd1bWVudHMg
b2YgYSBDQ2FsbCBiZWZvcmUgcmVnaXN0ZXIgYWxsb2NhdGlvbiB1bmxlc3MKKyAgICAgICAgdGhl
IENDYWxsIGFyZ3VtZW50cyByZXF1aXJlIGEgcmVhbCBzaHVmZmxlIChsaWtlIGlmIHRoZSBDQ2Fs
bCBhcmd1bWVudHMgd2VyZSBhcmd1bWVudAorICAgICAgICByZWdpc3RlcnMpLiBUaGlzIGxvd2Vy
cyBhIENvbGRDQ2FsbCBsaWtlIGEgQ0NhbGwgZm9yIG9wdExldmVsPDIuCisgICAgICAgIAorICAg
ICAgICBGaW5hbGx5LCBsb3dlckFmdGVyUmVnQWxsb2MoKSBub3cgY2hlY2tzIGlmIHRoZXJlIGFy
ZSBhbnkgU2h1ZmZsZXMgb3IgQ0NhbGxzIGJlZm9yZSBpdAorICAgICAgICBkb2VzIGFueXRoaW5n
IGVsc2UuIEZvciB3YXNtIGF0IC1PMSwgdGhpcyBtZWFucyB0aGF0IHRoZSBwaGFzZSBkb2Vzbid0
IHJ1biBhdCBhbGwuIFRoaXMKKyAgICAgICAgaXMgYSB+MyUgd2FzbSAtTzEgY29tcGlsZSB0aW1l
IHByb2dyZXNzaW9uLgorICAgICAgICAKKyAgICAgICAgVG8gbWFrZSB0aGlzIGVhc3ksIEkgY2hh
bmdlZCBvcHRMZXZlbCBpbnRvIGEgcHJvcGVydHkgb2YgUHJvY2VkdXJlIGFuZCBDb2RlIHJhdGhl
ciB0aGFuCisgICAgICAgIGFuIGFyZ3VtZW50IHdlIHRocmVhZCB0aHJvdWdoIGV2ZXJ5dGhpbmcu
IEkgbGlrZSBob3cgUHJvY2VkdXJlIGFuZCBDb2RlIGFyZSBkdW1waW5nCisgICAgICAgIGdyb3Vu
ZCBjbGFzc2VzLiBUaGlzIGRvZXMgbm90IGJvdGhlciBtZS4gTm90ZSB0aGF0IEkgY2xvbmVkIG9w
dExldmVsIGludG8gUHJvY2VkdXJlIGFuZAorICAgICAgICBDb2RlIHNvIHRoYXQgaXQncyBjaGVh
cCB0byBxdWVyeSBpbnNpZGUgQWlyIHBoYXNlcy4KKworICAgICAgICAqIGIzL0IzQ29tcGlsZS5j
cHA6CisgICAgICAgIChKU0M6OkIzOjpjb21waWxlKToKKyAgICAgICAgKiBiMy9CM0NvbXBpbGUu
aDoKKyAgICAgICAgKiBiMy9CM0dlbmVyYXRlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OnByZXBh
cmVGb3JHZW5lcmF0aW9uKToKKyAgICAgICAgKEpTQzo6QjM6OmdlbmVyYXRlVG9BaXIpOgorICAg
ICAgICAqIGIzL0IzR2VuZXJhdGUuaDoKKyAgICAgICAgKiBiMy9CM1Byb2NlZHVyZS5jcHA6Cisg
ICAgICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OnNldE9wdExldmVsKToKKyAgICAgICAgKiBiMy9C
M1Byb2NlZHVyZS5oOgorICAgICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpvcHRMZXZlbCk6Cisg
ICAgICAgICogYjMvYWlyL0FpckNvZGUuaDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Q29kZTo6
aXNQaW5uZWQpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjpzZXRPcHRMZXZlbCk6Cisg
ICAgICAgIChKU0M6OkIzOjpBaXI6OkNvZGU6Om9wdExldmVsKToKKyAgICAgICAgKiBiMy9haXIv
QWlyRW1pdFNodWZmbGUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTaHVmZmxlUGFpcjo6
YmFuayk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNodWZmbGVQYWlyOjpvcGNvZGUpOgorICAg
ICAgICAoSlNDOjpCMzo6QWlyOjpTaHVmZmxlUGFpcjo6aW5zdCk6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6OmVtaXRTaHVmZmxlKToKKyAgICAgICAgKiBiMy9haXIvQWlyRW1pdFNodWZmbGUuaDoK
KyAgICAgICAgKEpTQzo6QjM6OkFpcjo6bW92ZUZvcik6CisgICAgICAgICogYjMvYWlyL0Fpckdl
bmVyYXRlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6cHJlcGFyZUZvckdlbmVyYXRpb24p
OgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJM
b3dlckFmdGVyUmVnQWxsb2MuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpsb3dlckFmdGVy
UmVnQWxsb2MpOgorICAgICAgICAqIGIzL2Fpci9BaXJMb3dlck1hY3Jvcy5jcHA6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6Omxvd2VyTWFjcm9zKToKKyAgICAgICAgKiBiMy90ZXN0YjMuY3BwOgor
ICAgICAgICAoSlNDOjpCMzo6Y29tcGlsZVByb2MpOgorICAgICAgICAqIHdhc20vV2FzbUIzSVJH
ZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpwYXJzZUFuZENvbXBpbGUpOgorCiAy
MDE3LTA0LTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgRG9u
J3QgbmVlZCB0byBBaXI6OnJlcG9ydFVzZWRSZWdpc3RlcnMgZm9yIHdhc20gYXQgLU8xCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21waWxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21waWxlLmNwcAkocmV2aXNpb24gMjE0ODg3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM4LDExICszOCwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAot
Q29tcGlsYXRpb24gY29tcGlsZShQcm9jZWR1cmUmIHByb2MsIHVuc2lnbmVkIG9wdExldmVsKQor
Q29tcGlsYXRpb24gY29tcGlsZShQcm9jZWR1cmUmIHByb2MpCiB7CiAgICAgVGltaW5nU2NvcGUg
dGltaW5nU2NvcGUoIkNvbXBpbGF0aW9uIik7CiAgICAgCi0gICAgcHJlcGFyZUZvckdlbmVyYXRp
b24ocHJvYywgb3B0TGV2ZWwpOworICAgIHByZXBhcmVGb3JHZW5lcmF0aW9uKHByb2MpOwogICAg
IAogICAgIENDYWxsSGVscGVycyBqaXQ7CiAgICAgZ2VuZXJhdGUocHJvYywgaml0KTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21waWxlLmgJKHJldmlzaW9uIDIxNDg4NykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDYs
NyArNDYsNyBAQCBjbGFzcyBQcm9jZWR1cmU7CiAvLyBUaGVuIHlvdSBrZWVwIHRoZSBDb21waWxh
dGlvbiBvYmplY3QgYWxpdmUgZm9yIGFzIGxvbmcgYXMgeW91IHdhbnQgdG8gYmUgYWJsZSB0byBy
dW4gdGhlIGNvZGUuCiAvLyBJZiB0aGlzIEFQSSBmZWVscyB0b28gaGlnaC1sZXZlbCwgeW91IGNh
biB1c2UgQjM6OmdlbmVyYXRlKCkgZGlyZWN0bHkuCiAKLUpTX0VYUE9SVF9QUklWQVRFIENvbXBp
bGF0aW9uIGNvbXBpbGUoUHJvY2VkdXJlJiwgdW5zaWduZWQgb3B0TGV2ZWwgPSBkZWZhdWx0T3B0
TGV2ZWwoKSk7CitKU19FWFBPUlRfUFJJVkFURSBDb21waWxhdGlvbiBjb21waWxlKFByb2NlZHVy
ZSYpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0dlbmVyYXRlLmNwcAkocmV2aXNpb24gMjE0ODg3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMiArNTIs
MTIgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKLXZvaWQgcHJlcGFyZUZv
ckdlbmVyYXRpb24oUHJvY2VkdXJlJiBwcm9jZWR1cmUsIHVuc2lnbmVkIG9wdExldmVsKQordm9p
ZCBwcmVwYXJlRm9yR2VuZXJhdGlvbihQcm9jZWR1cmUmIHByb2NlZHVyZSkKIHsKICAgICBUaW1p
bmdTY29wZSB0aW1pbmdTY29wZSgicHJlcGFyZUZvckdlbmVyYXRpb24iKTsKIAotICAgIGdlbmVy
YXRlVG9BaXIocHJvY2VkdXJlLCBvcHRMZXZlbCk7Ci0gICAgQWlyOjpwcmVwYXJlRm9yR2VuZXJh
dGlvbihwcm9jZWR1cmUuY29kZSgpLCBvcHRMZXZlbCk7CisgICAgZ2VuZXJhdGVUb0Fpcihwcm9j
ZWR1cmUpOworICAgIEFpcjo6cHJlcGFyZUZvckdlbmVyYXRpb24ocHJvY2VkdXJlLmNvZGUoKSk7
CiB9CiAKIHZvaWQgZ2VuZXJhdGUoUHJvY2VkdXJlJiBwcm9jZWR1cmUsIENDYWxsSGVscGVycyYg
aml0KQpAQCAtNjUsNyArNjUsNyBAQCB2b2lkIGdlbmVyYXRlKFByb2NlZHVyZSYgcHJvY2VkdXJl
LCBDQ2FsCiAgICAgQWlyOjpnZW5lcmF0ZShwcm9jZWR1cmUuY29kZSgpLCBqaXQpOwogfQogCi12
b2lkIGdlbmVyYXRlVG9BaXIoUHJvY2VkdXJlJiBwcm9jZWR1cmUsIHVuc2lnbmVkIG9wdExldmVs
KQordm9pZCBnZW5lcmF0ZVRvQWlyKFByb2NlZHVyZSYgcHJvY2VkdXJlKQogewogICAgIFRpbWlu
Z1Njb3BlIHRpbWluZ1Njb3BlKCJnZW5lcmF0ZVRvQWlyIik7CiAgICAgCkBAIC04MCw3ICs4MCw3
IEBAIHZvaWQgZ2VuZXJhdGVUb0FpcihQcm9jZWR1cmUmIHByb2NlZHVyZSwKICAgICBpZiAoc2hv
dWxkVmFsaWRhdGVJUigpKQogICAgICAgICB2YWxpZGF0ZShwcm9jZWR1cmUpOwogCi0gICAgaWYg
KG9wdExldmVsID49IDIpIHsKKyAgICBpZiAocHJvY2VkdXJlLm9wdExldmVsKCkgPj0gMikgewog
ICAgICAgICByZWR1Y2VEb3VibGVUb0Zsb2F0KHByb2NlZHVyZSk7CiAgICAgICAgIHJlZHVjZVN0
cmVuZ3RoKHByb2NlZHVyZSk7CiAgICAgICAgIGVsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25z
KHByb2NlZHVyZSk7CkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgZ2VuZXJhdGVUb0FpcihQcm9jZWR1
cmUmIHByb2NlZHVyZSwKICAgICAgICAgCiAgICAgICAgIC8vIEZJWE1FOiBBZGQgbW9yZSBvcHRp
bWl6YXRpb25zIGhlcmUuCiAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTA1MDcKLSAgICB9IGVsc2UgaWYgKG9wdExldmVsID49IDEpIHsKKyAgICB9
IGVsc2UgaWYgKHByb2NlZHVyZS5vcHRMZXZlbCgpID49IDEpIHsKICAgICAgICAgLy8gRklYTUU6
IEV4cGxvcmUgYmV0dGVyICJxdWljayBtb2RlIiBvcHRpbWl6YXRpb25zLgogICAgICAgICByZWR1
Y2VTdHJlbmd0aChwcm9jZWR1cmUpOwogICAgIH0KQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBnZW5l
cmF0ZVRvQWlyKFByb2NlZHVyZSYgcHJvY2VkdXJlLAogICAgIC8vIFRoaXMgcHV0cyB0aGUgSVIg
aW4gcXVpcmtzIG1vZGUuCiAgICAgbG93ZXJNYWNyb3MocHJvY2VkdXJlKTsKIAotICAgIGlmIChv
cHRMZXZlbCA+PSAyKSB7CisgICAgaWYgKHByb2NlZHVyZS5vcHRMZXZlbCgpID49IDIpIHsKICAg
ICAgICAgcmVkdWNlU3RyZW5ndGgocHJvY2VkdXJlKTsKIAogICAgICAgICAvLyBGSVhNRTogQWRk
IG1vcmUgb3B0aW1pemF0aW9ucyBoZXJlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzR2VuZXJhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNH
ZW5lcmF0ZS5oCShyZXZpc2lvbiAyMTQ4ODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNHZW5lcmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBB
aXIgeyBjbGFzcyBDb2RlOyB9CiAKIC8vIFRoaXMgdGFrZXMgYSBCMzo6UHJvY2VkdXJlLCBvcHRp
bWl6ZXMgaXQgaW4tcGxhY2UsIGxvd2VycyBpdCB0byBBaXIsIGFuZCBwcmVwYXJlcyB0aGUgQWly
IGZvcgogLy8gZ2VuZXJhdGlvbi4KLUpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcHJlcGFyZUZvckdl
bmVyYXRpb24oUHJvY2VkdXJlJiwgdW5zaWduZWQgb3B0TGV2ZWwgPSBkZWZhdWx0T3B0TGV2ZWwo
KSk7CitKU19FWFBPUlRfUFJJVkFURSB2b2lkIHByZXBhcmVGb3JHZW5lcmF0aW9uKFByb2NlZHVy
ZSYpOwogCiAvLyBUaGlzIHRha2VzIGEgQjM6OlByb2NlZHVyZSB0aGF0IGhhcyBiZWVuIHByZXBh
cmVkIGZvciBnZW5lcmF0aW9uIChpLmUuIGl0IGhhcyBiZWVuIGxvd2VyZWQgdG8gQWlyIGFuZAog
Ly8gdGhlIEFpciBoYXMgYmVlbiBwcmVwYXJlZCBmb3IgZ2VuZXJhdGlvbikgYW5kIGdlbmVyYXRl
cyBpdC4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBjYWxsaW5nCkBAIC01MCw3ICs1MCw3IEBA
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZ2VuZXJhdGUoUHJvY2VkdXIKIC8vIFRoaXMgdGFrZXMg
YSBCMzo6UHJvY2VkdXJlLCBvcHRpbWl6ZXMgaXQgaW4tcGxhY2UsIGFuZCBsb3dlcnMgaXQgdG8g
QWlyLiBZb3UgY2FuIHRoZW4gZ2VuZXJhdGUKIC8vIHRoZSBBaXIgdG8gbWFjaGluZSBjb2RlIHVz
aW5nIEFpcjo6cHJlcGFyZUZvckdlbmVyYXRpb24oKSBhbmQgQWlyOjpnZW5lcmF0ZSgpIG9uIHRo
ZSBQcm9jZWR1cmUncwogLy8gY29kZSgpLgotdm9pZCBnZW5lcmF0ZVRvQWlyKFByb2NlZHVyZSYs
IHVuc2lnbmVkIG9wdExldmVsID0gZGVmYXVsdE9wdExldmVsKCkpOwordm9pZCBnZW5lcmF0ZVRv
QWlyKFByb2NlZHVyZSYpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCShyZXZpc2lvbiAyMTQ4ODcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMzQsNiArMzM0LDEyIEBAIHZvaWQgUHJvY2VkdXJlOjpwaW5SZWdpc3RlcihSZWcgcmVn
KQogICAgIGNvZGUoKS5waW5SZWdpc3RlcihyZWcpOwogfQogCit2b2lkIFByb2NlZHVyZTo6c2V0
T3B0TGV2ZWwodW5zaWduZWQgb3B0TGV2ZWwpCit7CisgICAgbV9vcHRMZXZlbCA9IG9wdExldmVs
OworICAgIGNvZGUoKS5zZXRPcHRMZXZlbChvcHRMZXZlbCk7Cit9CisKIHVuc2lnbmVkIFByb2Nl
ZHVyZTo6ZnJhbWVTaXplKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29kZSgpLmZyYW1lU2l6ZSgp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHJldmlzaW9uIDIx
NDg4NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzMsNiArMjMzLDkgQEAgcHVibGljOgogICAgIC8vIFRoaXMgdGVsbHMgdGhl
IHJlZ2lzdGVyIGFsbG9jYXRvcnMgdG8gc3RheSBhd2F5IGZyb20gdGhpcyByZWdpc3Rlci4KICAg
ICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHBpblJlZ2lzdGVyKFJlZyk7CiAgICAgCisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRPcHRMZXZlbCh1bnNpZ25lZCB2YWx1ZSk7CisgICAgdW5z
aWduZWQgb3B0TGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX29wdExldmVsOyB9CisgICAgCiAgICAg
Ly8gWW91IGNhbiB0dXJuIG9mZiB1c2VkIHJlZ2lzdGVycyBjYWxjdWxhdGlvbi4gVGhpcyBtYXkg
c3BlZWQgdXAgY29tcGlsYXRpb24gYSBiaXQuIEJ1dCBpZgogICAgIC8vIHlvdSB0dXJuIGl0IG9m
ZiB0aGVuIHlvdSBjYW5ub3QgdXNlIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6dXNlZFJlZ2lz
dGVycygpIG9yCiAgICAgLy8gU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjp1bmF2YWlsYWJsZVJl
Z2lzdGVycygpLgpAQCAtMjczLDYgKzI3Niw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNoYXJl
ZFRhc2s8dm9pZChQcmludFN0cmVhbSYsIE9yaWdpbik+PiBtX29yaWdpblByaW50ZXI7CiAgICAg
Y29uc3Qgdm9pZCogbV9mcm9udGVuZERhdGE7CiAgICAgUENUb09yaWdpbk1hcCBtX3BjVG9Pcmln
aW5NYXA7CisgICAgdW5zaWduZWQgbV9vcHRMZXZlbCB7IGRlZmF1bHRPcHRMZXZlbCgpIH07CiAg
ICAgYm9vbCBtX25lZWRzVXNlZFJlZ2lzdGVycyB7IHRydWUgfTsKICAgICBib29sIG1faGFzUXVp
cmtzIHsgZmFsc2UgfTsKIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAko
cmV2aXNpb24gMjE0ODg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExOSw3ICsxMTksOCBAQCBTdGF0aWNMb2NrIGNyYXNoTG9jazsK
IAogc3RkOjp1bmlxdWVfcHRyPENvbXBpbGF0aW9uPiBjb21waWxlUHJvYyhQcm9jZWR1cmUmIHBy
b2NlZHVyZSwgdW5zaWduZWQgb3B0TGV2ZWwgPSBkZWZhdWx0T3B0TGV2ZWwoKSkKIHsKLSAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDb21waWxhdGlvbj4oQjM6OmNvbXBpbGUocHJvY2VkdXJl
LCBvcHRMZXZlbCkpOworICAgIHByb2NlZHVyZS5zZXRPcHRMZXZlbChvcHRMZXZlbCk7CisgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q29tcGlsYXRpb24+KEIzOjpjb21waWxlKHByb2NlZHVy
ZSkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkocmV2aXNpb24gMjE0ODg3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTg4LDkgKzg4LDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBSZWdpc3RlclNldCYgbXV0
YWJsZVJlZ3MoKSBjb25zdCB7IHJldHVybiBtX211dGFibGVSZWdzOyB9CiAgICAgCiAgICAgYm9v
bCBpc1Bpbm5lZChSZWcgcmVnKSBjb25zdCB7IHJldHVybiAhbXV0YWJsZVJlZ3MoKS5nZXQocmVn
KTsgfQotICAgIAogICAgIHZvaWQgcGluUmVnaXN0ZXIoUmVnKTsKICAgICAKKyAgICB2b2lkIHNl
dE9wdExldmVsKHVuc2lnbmVkIG9wdExldmVsKSB7IG1fb3B0TGV2ZWwgPSBvcHRMZXZlbDsgfQor
ICAgIHVuc2lnbmVkIG9wdExldmVsKCkgY29uc3QgeyByZXR1cm4gbV9vcHRMZXZlbDsgfQorICAg
IAogICAgIGJvb2wgbmVlZHNVc2VkUmVnaXN0ZXJzKCkgY29uc3Q7CiAKICAgICBKU19FWFBPUlRf
UFJJVkFURSBCYXNpY0Jsb2NrKiBhZGRCbG9jayhkb3VibGUgZnJlcXVlbmN5ID0gMSk7CkBAIC0z
MjIsNiArMzI0LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2FzbUJvdW5kc0NoZWNrR2VuZXJh
dG9yPiBtX3dhc21Cb3VuZHNDaGVja0dlbmVyYXRvcjsKICAgICBjb25zdCBjaGFyKiBtX2xhc3RQ
aGFzZU5hbWU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPERpc2Fzc2VtYmxlcj4gbV9kaXNhc3NlbWJs
ZXI7CisgICAgdW5zaWduZWQgbV9vcHRMZXZlbCB7IGRlZmF1bHRPcHRMZXZlbCgpIH07CiB9Owog
CiB9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckVtaXRTaHVmZmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckVtaXRTaHVmZmxlLmNwcAkocmV2aXNpb24gMjE0ODg3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJFbWl0U2h1ZmZsZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY1LDYgKzY1LDM2IEBAIHN0cnVjdCBSb3RhdGUgewogCiB9IC8vIGFub255
bW91cyBuYW1lc3BhY2UKIAorQmFuayBTaHVmZmxlUGFpcjo6YmFuaygpIGNvbnN0Cit7CisgICAg
aWYgKHNyYygpLmlzTWVtb3J5KCkgJiYgZHN0KCkuaXNNZW1vcnkoKSAmJiB3aWR0aCgpID4gcG9p
bnRlcldpZHRoKCkpIHsKKyAgICAgICAgLy8gOC1ieXRlIG1lbW9yeS10by1tZW1vcnkgbW92ZXMg
b24gYSAzMi1iaXQgcGxhdGZvcm0gYXJlIGJlc3QgaGFuZGxlZCBhcyBmbG9hdCBtb3Zlcy4KKyAg
ICAgICAgcmV0dXJuIEZQOworICAgIH0KKyAgICAKKyAgICBpZiAoc3JjKCkuaXNHUCgpICYmIGRz
dCgpLmlzR1AoKSkgeworICAgICAgICAvLyBUaGlzIG1lYW5zIHRoYXQgZ3BQYWlycyBnZXRzIG1l
bW9yeS10by1tZW1vcnkgc2h1ZmZsZXMuIFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgd2UKKyAgICAg
ICAgLy8gY2FuIGRvIHRoYXQgbW9yZSBlZmZpY2llbnRseSB1c2luZyBHUFJzLCBleGNlcHQgaW4g
dGhlIHNwZWNpYWwgY2FzZSBhYm92ZS4KKyAgICAgICAgcmV0dXJuIEdQOworICAgIH0KKyAgICAK
KyAgICByZXR1cm4gRlA7Cit9CisKK09wY29kZSBTaHVmZmxlUGFpcjo6b3Bjb2RlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbW92ZUZvcihiYW5rKCksIHdpZHRoKCkpOworfQorCitJbnN0IFNodWZm
bGVQYWlyOjppbnN0KENvZGUqIGNvZGUsIFZhbHVlKiBvcmlnaW4pIGNvbnN0Cit7CisgICAgaWYg
KFVOTElLRUxZKHNyYygpLmlzTWVtb3J5KCkgJiYgZHN0KCkuaXNNZW1vcnkoKSkpIHsKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoY29kZSk7CisgICAgICAgIHJldHVybiBJbnN0KG9wY29kZSgpLCBv
cmlnaW4sIHNyYygpLCBkc3QoKSwgY29kZS0+bmV3VG1wKGJhbmsoKSkpOworICAgIH0KKyAgICBy
ZXR1cm4gSW5zdChvcGNvZGUoKSwgb3JpZ2luLCBzcmMoKSwgZHN0KCkpOworfQorCiB2b2lkIFNo
dWZmbGVQYWlyOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50
KHdpZHRoKCksICI6Iiwgc3JjKCksICI9PiIsIGRzdCgpKTsKQEAgLTI2MSwxNCArMjkxLDcgQEAg
VmVjdG9yPEluc3Q+IGVtaXRTaHVmZmxlKAogICAgIC8vIGVuZHMgd2l0aCBhIHJlZ2lzdGVyLiBX
ZSBzZWFyY2ggZm9yIHN1Y2ggYSByZWdpc3RlciByaWdodCBub3cuCiAKICAgICBhdXRvIG1vdmVG
b3JXaWR0aCA9IFsmXSAoV2lkdGggd2lkdGgpIC0+IE9wY29kZSB7Ci0gICAgICAgIHN3aXRjaCAo
d2lkdGgpIHsKLSAgICAgICAgY2FzZSBXaWR0aDMyOgotICAgICAgICAgICAgcmV0dXJuIGJhbmsg
PT0gR1AgPyBNb3ZlMzIgOiBNb3ZlRmxvYXQ7Ci0gICAgICAgIGNhc2UgV2lkdGg2NDoKLSAgICAg
ICAgICAgIHJldHVybiBiYW5rID09IEdQID8gTW92ZSA6IE1vdmVEb3VibGU7Ci0gICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICB9CisgICAgICAgIHJldHVybiBtb3ZlRm9yKGJhbmssIHdpZHRoKTsKICAgICB9OwogCiAgICAg
T3Bjb2RlIGNvbnNlcnZhdGl2ZU1vdmUgPSBtb3ZlRm9yV2lkdGgoY29uc2VydmF0aXZlV2lkdGgo
YmFuaykpOwpAQCAtNTIwLDE1ICs1NDMsMTQgQEAgVmVjdG9yPEluc3Q+IGVtaXRTaHVmZmxlKAog
ICAgIFZlY3RvcjxTaHVmZmxlUGFpcj4gZ3BQYWlyczsKICAgICBWZWN0b3I8U2h1ZmZsZVBhaXI+
IGZwUGFpcnM7CiAgICAgZm9yIChjb25zdCBTaHVmZmxlUGFpciYgcGFpciA6IHBhaXJzKSB7Ci0g
ICAgICAgIGlmIChwYWlyLnNyYygpLmlzTWVtb3J5KCkgJiYgcGFpci5kc3QoKS5pc01lbW9yeSgp
ICYmIHBhaXIud2lkdGgoKSA+IHBvaW50ZXJXaWR0aCgpKSB7Ci0gICAgICAgICAgICAvLyA4LWJ5
dGUgbWVtb3J5LXRvLW1lbW9yeSBtb3ZlcyBvbiBhIDMyLWJpdCBwbGF0Zm9ybSBhcmUgYmVzdCBo
YW5kbGVkIGFzIGZsb2F0IG1vdmVzLgotICAgICAgICAgICAgZnBQYWlycy5hcHBlbmQocGFpcik7
Ci0gICAgICAgIH0gZWxzZSBpZiAocGFpci5zcmMoKS5pc0dQKCkgJiYgcGFpci5kc3QoKS5pc0dQ
KCkpIHsKLSAgICAgICAgICAgIC8vIFRoaXMgbWVhbnMgdGhhdCBncFBhaXJzIGdldHMgbWVtb3J5
LXRvLW1lbW9yeSBzaHVmZmxlcy4gVGhlIGFzc3VtcHRpb24gaXMgdGhhdCB3ZQotICAgICAgICAg
ICAgLy8gY2FuIGRvIHRoYXQgbW9yZSBlZmZpY2llbnRseSB1c2luZyBHUFJzLCBleGNlcHQgaW4g
dGhlIHNwZWNpYWwgY2FzZSBhYm92ZS4KKyAgICAgICAgc3dpdGNoIChwYWlyLmJhbmsoKSkgewor
ICAgICAgICBjYXNlIEdQOgogICAgICAgICAgICAgZ3BQYWlycy5hcHBlbmQocGFpcik7Ci0gICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRlA6CiAgICAgICAg
ICAgICBmcFBhaXJzLmFwcGVuZChwYWlyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CiAgICAgfQogCiAgICAgVmVjdG9yPEluc3Q+IHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyRW1pdFNodWZmbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckVtaXRTaHVmZmxlLmgJKHJldmlzaW9uIDIxNDg4NykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRW1pdFNodWZmbGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMzksNiArMzksMTkgQEAgbmFtZXNwYWNlIEFpciB7CiAKIGNsYXNzIENvZGU7CiAK
K2lubGluZSBPcGNvZGUgbW92ZUZvcihCYW5rIGJhbmssIFdpZHRoIHdpZHRoKQoreworICAgIHN3
aXRjaCAod2lkdGgpIHsKKyAgICBjYXNlIFdpZHRoMzI6CisgICAgICAgIHJldHVybiBiYW5rID09
IEdQID8gTW92ZTMyIDogTW92ZUZsb2F0OworICAgIGNhc2UgV2lkdGg2NDoKKyAgICAgICAgcmV0
dXJuIGJhbmsgPT0gR1AgPyBNb3ZlIDogTW92ZURvdWJsZTsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gT29wczsKKyAg
ICB9Cit9CisKIGNsYXNzIFNodWZmbGVQYWlyIHsKIHB1YmxpYzoKICAgICBTaHVmZmxlUGFpcigp
CkBAIC01OCw2ICs3MSwxNCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIHdpZHRoIGRldGVybWluZXMg
dGhlIGtpbmQgb2YgbW92ZSB3ZSBkby4gWW91IGNhbiBvbmx5IGNob29zZSBXaWR0aDMyIG9yIFdp
ZHRoNjQgcmlnaHQgbm93LgogICAgIC8vIEZvciBHUCwgaXQgcGlja3MgYmV0d2VlbiBNb3ZlMzIg
YW5kIE1vdmUuIEZvciBGUCwgaXQgcGlja3MgYmV0d2VlbiBNb3ZlRmxvYXQgYW5kIE1vdmVEb3Vi
bGUuCiAgICAgV2lkdGggd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9CisgICAgCisg
ICAgQmFuayBiYW5rKCkgY29uc3Q7CisgICAgT3Bjb2RlIG9wY29kZSgpIGNvbnN0OworICAgIAor
ICAgIC8vIENyZWF0ZXMgYW4gaW5zdHJ1Y3Rpb24gZm9yIHRoZSBtb3ZlIHJlcHJlc2VudGVkIGJ5
IHRoaXMgc2h1ZmZsZSBwYWlyLiBZb3UgbmVlZCB0byBwYXNzCisgICAgLy8gQ29kZSBpZiB0aGlz
IGlzIGEgbWVtb3J5LT5tZW1vcnkgcGFpci4gWW91IGNhbiBwYXNzIG51bGwgaWYgeW91IGtub3cg
dGhhdCBpdCdzIG5vdC4gSW4KKyAgICAvLyBmYWN0LCBwYXNzaW5nIG51bGwgaXMgYSBnb29kIHdh
eSB0byBhc3NlcnQgdGhhdCB0aGlzIGlzIG5vdCBhIG1lbW9yeS0+bWVtb3J5IHBhaXIuCisgICAg
SW5zdCBpbnN0KENvZGUqLCBWYWx1ZSogb3JpZ2luKSBjb25zdDsKIAogICAgIHZvaWQgZHVtcChQ
cmludFN0cmVhbSYpIGNvbnN0OwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJHZW5lcmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHJldmlzaW9uIDIxNDg4NykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3
ICs1OCw3IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWly
IHsKIAotdm9pZCBwcmVwYXJlRm9yR2VuZXJhdGlvbihDb2RlJiBjb2RlLCB1bnNpZ25lZCBvcHRM
ZXZlbCkKK3ZvaWQgcHJlcGFyZUZvckdlbmVyYXRpb24oQ29kZSYgY29kZSkKIHsKICAgICBUaW1p
bmdTY29wZSB0aW1pbmdTY29wZSgiQWlyOjpwcmVwYXJlRm9yR2VuZXJhdGlvbiIpOwogICAgIApA
QCAtOTAsNyArOTAsNyBAQCB2b2lkIHByZXBhcmVGb3JHZW5lcmF0aW9uKENvZGUmIGNvZGUsIHVu
CiAgICAgLy8gRm9yIGRlYnVnZ2luZywgeW91IGNhbiB1c2Ugc3BpbGxFdmVyeXRoaW5nKCkgdG8g
cHV0IGV2ZXJ5dGhpbmcgdG8gdGhlIHN0YWNrIGJldHdlZW4gZWFjaCBJbnN0LgogICAgIGlmIChP
cHRpb25zOjphaXJTcGlsbHNFdmVyeXRoaW5nKCkpCiAgICAgICAgIHNwaWxsRXZlcnl0aGluZyhj
b2RlKTsKLSAgICBlbHNlIGlmIChvcHRMZXZlbCA+PSAyKQorICAgIGVsc2UgaWYgKGNvZGUub3B0
TGV2ZWwoKSA+PSAyKQogICAgICAgICBhbGxvY2F0ZVJlZ2lzdGVyc0J5R3JhcGhDb2xvcmluZyhj
b2RlKTsKICAgICBlbHNlCiAgICAgICAgIGFsbG9jYXRlUmVnaXN0ZXJzQnlMaW5lYXJTY2FuKGNv
ZGUpOwpAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgcHJlcGFyZUZvckdlbmVyYXRpb24oQ29kZSYg
Y29kZSwgdW4KICAgICAgICAgbG9nUmVnaXN0ZXJQcmVzc3VyZShjb2RlKTsKICAgICB9CiAgICAg
Ci0gICAgaWYgKG9wdExldmVsID49IDIpIHsKKyAgICBpZiAoY29kZS5vcHRMZXZlbCgpID49IDIp
IHsKICAgICAgICAgLy8gVGhpcyByZXBsYWNlcyB1c2VzIG9mIHNwaWxsIHNsb3RzIHdpdGggcmVn
aXN0ZXJzIG9yIGNvbnN0YW50cyBpZiBwb3NzaWJsZS4gSXQgZG9lcyB0aGlzIGJ5CiAgICAgICAg
IC8vIG1pbmltaXppbmcgdGhlIGFtb3VudCB0aGF0IHdlIHBlcnR1cmIgdGhlIGFscmVhZHktY2hv
c2VuIHJlZ2lzdGVyIGFsbG9jYXRpb24uIEl0IG1heSBleHRlbmQKICAgICAgICAgLy8gdGhlIGxp
dmUgcmFuZ2VzIG9mIHJlZ2lzdGVycyB0aG91Z2guCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBw
cmVwYXJlRm9yR2VuZXJhdGlvbihDb2RlJiBjb2RlLCB1bgogCiAgICAgLy8gVGhpcyBpcyBuZWVk
ZWQgdG8gc2F0aXNmeSBhIHJlcXVpcmVtZW50IG9mIEIzOjpTdGFja21hcFZhbHVlLiBUaGlzIGFs
c28gcmVtb3ZlcyBkZWFkCiAgICAgLy8gY29kZS4gV2UgY2FuIGF2b2lkIHJ1bm5pbmcgdGhpcyB3
aGVuIGNlcnRhaW4gb3B0aW1pemF0aW9ucyBhcmUgZGlzYWJsZWQuCi0gICAgaWYgKG9wdExldmVs
ID49IDIgfHwgY29kZS5uZWVkc1VzZWRSZWdpc3RlcnMoKSkKKyAgICBpZiAoY29kZS5vcHRMZXZl
bCgpID49IDIgfHwgY29kZS5uZWVkc1VzZWRSZWdpc3RlcnMoKSkKICAgICAgICAgcmVwb3J0VXNl
ZFJlZ2lzdGVycyhjb2RlKTsKIAogICAgIC8vIEF0dGVtcHQgdG8gcmVtb3ZlIGZhbHNlIGRlcGVu
ZGVuY2llcyBiZXR3ZWVuIGluc3RydWN0aW9ucyBjcmVhdGVkIGJ5IHBhcnRpYWwgcmVnaXN0ZXIg
Y2hhbmdlcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRl
LmgJKHJldmlzaW9uIDIxNDg4NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
R2VuZXJhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBjbGFzcyBDb2RlOwog
CiAvLyBUaGlzIHRha2VzIGFuIEFpcjo6Q29kZSB0aGF0IGhhc24ndCBoYWQgYW55IHN0YWNrIGFs
bG9jYXRpb24gYW5kIG9wdGlvbmFsbHkgaGFzbid0IGhhZCBhbnkKIC8vIHJlZ2lzdGVyIGFsbG9j
YXRpb24gYW5kIGRvZXMgYm90aCBvZiB0aG9zZSB0aGluZ3MuCi1KU19FWFBPUlRfUFJJVkFURSB2
b2lkIHByZXBhcmVGb3JHZW5lcmF0aW9uKENvZGUmLCB1bnNpZ25lZCBvcHRMZXZlbCA9IGRlZmF1
bHRPcHRMZXZlbCgpKTsKK0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgcHJlcGFyZUZvckdlbmVyYXRp
b24oQ29kZSYpOwogCiAvLyBUaGlzIGdlbmVyYXRlcyB0aGUgY29kZSB1c2luZyB0aGUgZ2l2ZW4g
Q0NhbGxIZWxwZXJzIGluc3RhbmNlLiBOb3RlIHRoYXQgdGhpcyBtYXkgY2FsbCBjYWxsYmFja3MK
IC8vIGluIHRoZSBzdXBwbGllZCBjb2RlIGFzIGl0IGlzIGdlbmVyYXRpbmcuCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyQWZ0ZXJSZWdBbGxvYy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMb3dlckFmdGVyUmVnQWxs
b2MuY3BwCShyZXZpc2lvbiAyMTQ4ODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0Fpckxvd2VyQWZ0ZXJSZWdBbGxvYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDEzICs1Niwy
MyBAQCB2b2lkIGxvd2VyQWZ0ZXJSZWdBbGxvYyhDb2RlJiBjb2RlKQogICAgIGlmICh2ZXJib3Nl
KQogICAgICAgICBkYXRhTG9nKCJDb2RlIGJlZm9yZSBsb3dlckFmdGVyUmVnQWxsb2M6XG4iLCBj
b2RlKTsKICAgICAKLSAgICAvLyBGSVhNRToKLSAgICAvLyAxKSBUaGlzIHNob3VsZCBiYWlsIGVh
cmx5IGlmIHRoZXJlIGFyZSBubyBTaHVmZmxlcyBvciBDb2xkQ0NhbGxzLgotICAgIC8vICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAzMDUKLSAgICAvLyAyKSBX
ZSBzaG91bGQgbm90IGludHJvZHVjZSBTaHVmZmxlcyBmb3Igbm9ybWFsIGNhbGxzLgotICAgIC8v
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAzMDYKLSAgICAv
LyAzKSBXZSBzaG91bGQgZW1pdCBDb2xkQ0NhbGwgb25seSBhdCBvcHRMZXZlbD09MS4KLSAgICAv
LyAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwMzA3CisgICAg
YXV0byBpc1JlbGV2YW50ID0gW10gKEluc3QmIGluc3QpIC0+IGJvb2wgeworICAgICAgICByZXR1
cm4gaW5zdC5raW5kLm9wY29kZSA9PSBTaHVmZmxlIHx8IGluc3Qua2luZC5vcGNvZGUgPT0gQ29s
ZENDYWxsOworICAgIH07CisgICAgCisgICAgYm9vbCBoYXZlQW55UmVsZXZhbnQgPSBmYWxzZTsK
KyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkgeworICAgICAgICBmb3IgKEluc3Qm
IGluc3QgOiAqYmxvY2spIHsKKyAgICAgICAgICAgIGlmIChpc1JlbGV2YW50KGluc3QpKSB7Cisg
ICAgICAgICAgICAgICAgaGF2ZUFueVJlbGV2YW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaGF2ZUFueVJlbGV2
YW50KQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmICghaGF2ZUFueVJlbGV2YW50
KQorICAgICAgICByZXR1cm47CiAKICAgICBIYXNoTWFwPEluc3QqLCBSZWdpc3RlclNldD4gdXNl
ZFJlZ2lzdGVyczsKIApAQCAtNzUsMTYgKzg1LDE0IEBAIHZvaWQgbG93ZXJBZnRlclJlZ0FsbG9j
KENvZGUmIGNvZGUpCiAgICAgICAgICAgICAKICAgICAgICAgICAgIFJlZ2lzdGVyU2V0IHNldDsK
IAotICAgICAgICAgICAgYm9vbCBpc1JlbGV2YW50ID0gaW5zdC5raW5kLm9wY29kZSA9PSBTaHVm
ZmxlIHx8IGluc3Qua2luZC5vcGNvZGUgPT0gQ29sZENDYWxsOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAoaXNSZWxldmFudCkgeworICAgICAgICAgICAgaWYgKGlzUmVsZXZhbnQoaW5z
dCkpIHsKICAgICAgICAgICAgICAgICBmb3IgKFJlZyByZWcgOiBsb2NhbENhbGMubGl2ZSgpKQog
ICAgICAgICAgICAgICAgICAgICBzZXQuc2V0KHJlZyk7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGxvY2FsQ2FsYy5leGVjdXRlKGluc3RJbmRleCk7CiAKLSAgICAg
ICAgICAgIGlmIChpc1JlbGV2YW50KQorICAgICAgICAgICAgaWYgKGlzUmVsZXZhbnQoaW5zdCkp
CiAgICAgICAgICAgICAgICAgdXNlZFJlZ2lzdGVycy5hZGQoJmluc3QsIHNldCk7CiAgICAgICAg
IH0KICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyTWFj
cm9zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxv
d2VyTWFjcm9zLmNwcAkocmV2aXNpb24gMjE0ODg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJMb3dlck1hY3Jvcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcg
QEAKIAogI2luY2x1ZGUgIkFpckNDYWxsaW5nQ29udmVudGlvbi5oIgogI2luY2x1ZGUgIkFpckNv
ZGUuaCIKKyNpbmNsdWRlICJBaXJFbWl0U2h1ZmZsZS5oIgogI2luY2x1ZGUgIkFpckluc2VydGlv
blNldC5oIgogI2luY2x1ZGUgIkFpckluc3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyUGhhc2VT
Y29wZS5oIgpAQCAtNDYsMjMgKzQ3LDQ2IEBAIHZvaWQgbG93ZXJNYWNyb3MoQ29kZSYgY29kZSkK
ICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkgewogICAgICAgICBmb3IgKHVuc2ln
bmVkIGluc3RJbmRleCA9IDA7IGluc3RJbmRleCA8IGJsb2NrLT5zaXplKCk7ICsraW5zdEluZGV4
KSB7CiAgICAgICAgICAgICBJbnN0JiBpbnN0ID0gYmxvY2stPmF0KGluc3RJbmRleCk7Ci0KLSAg
ICAgICAgICAgIHN3aXRjaCAoaW5zdC5raW5kLm9wY29kZSkgewotICAgICAgICAgICAgY2FzZSBD
Q2FsbDogeworICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvIGhhbmRsZUNhbGwgPSBbJl0g
KCkgewogICAgICAgICAgICAgICAgIENDYWxsVmFsdWUqIHZhbHVlID0gaW5zdC5vcmlnaW4tPmFz
PENDYWxsVmFsdWU+KCk7CiAgICAgICAgICAgICAgICAgS2luZCBvbGRLaW5kID0gaW5zdC5raW5k
OwogCiAgICAgICAgICAgICAgICAgVmVjdG9yPEFyZz4gZGVzdGluYXRpb25zID0gY29tcHV0ZUND
YWxsaW5nQ29udmVudGlvbihjb2RlLCB2YWx1ZSk7Ci0KLSAgICAgICAgICAgICAgICBJbnN0IHNo
dWZmbGVBcmd1bWVudHMoU2h1ZmZsZSwgdmFsdWUpOworICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9IHZhbHVlLT50eXBlKCkgPT0gVm9pZCA/IDAgOiAx
OworICAgICAgICAgICAgICAgIFZlY3RvcjxTaHVmZmxlUGFpciwgMTY+IHNodWZmbGVQYWlyczsK
KyAgICAgICAgICAgICAgICBib29sIGhhc1JlZ2lzdGVyU291cmNlID0gZmFsc2U7CiAgICAgICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IGRlc3RpbmF0aW9ucy5zaXplKCk7ICsr
aSkgewogICAgICAgICAgICAgICAgICAgICBWYWx1ZSogY2hpbGQgPSB2YWx1ZS0+Y2hpbGQoaSk7
Ci0gICAgICAgICAgICAgICAgICAgIHNodWZmbGVBcmd1bWVudHMuYXJncy5hcHBlbmQoaW5zdC5h
cmdzW29mZnNldCArIGldKTsKLSAgICAgICAgICAgICAgICAgICAgc2h1ZmZsZUFyZ3VtZW50cy5h
cmdzLmFwcGVuZChkZXN0aW5hdGlvbnNbaV0pOwotICAgICAgICAgICAgICAgICAgICBzaHVmZmxl
QXJndW1lbnRzLmFyZ3MuYXBwZW5kKEFyZzo6d2lkdGhBcmcod2lkdGhGb3JUeXBlKGNoaWxkLT50
eXBlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIFNodWZmbGVQYWlyIHBhaXIoaW5zdC5hcmdz
W29mZnNldCArIGldLCBkZXN0aW5hdGlvbnNbaV0sIHdpZHRoRm9yVHlwZShjaGlsZC0+dHlwZSgp
KSk7CisgICAgICAgICAgICAgICAgICAgIHNodWZmbGVQYWlycy5hcHBlbmQocGFpcik7CisgICAg
ICAgICAgICAgICAgICAgIGhhc1JlZ2lzdGVyU291cmNlIHw9IHBhaXIuc3JjKCkuaXNSZWcoKTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYg
KFVOTElLRUxZKGhhc1JlZ2lzdGVyU291cmNlKSkKKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0
aW9uU2V0Lmluc2VydEluc3QoaW5zdEluZGV4LCBjcmVhdGVTaHVmZmxlKGluc3Qub3JpZ2luLCBW
ZWN0b3I8U2h1ZmZsZVBhaXI+KHNodWZmbGVQYWlycykpKTsKKyAgICAgICAgICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgaW5wdXRzIGFyZSByZWdp
c3RlcnMsIHRoZW4gd2UgY2FuIGVmZmljaWVudGx5IGxvd2VyIHRoaXMKKyAgICAgICAgICAgICAg
ICAgICAgLy8gc2h1ZmZsZSBiZWZvcmUgcmVnaXN0ZXIgYWxsb2NhdGlvbi4gRmlyc3Qgd2UgbG93
ZXIgYWxsIG9mIHRoZSBtb3ZlcyB0bworICAgICAgICAgICAgICAgICAgICAvLyBtZW1vcnksIGlu
IHRoZSBob3BlcyB0aGF0IHRoaXMgaXMgdGhlIGxhc3QgdXNlIG9mIHRoZSBvcGVyYW5kcy4gVGhp
cworICAgICAgICAgICAgICAgICAgICAvLyBhdm9pZHMgY3JlYXRpbmcgaW50ZXJmZXJlbmNlIGJl
dHdlZW4gYXJndW1lbnQgcmVnaXN0ZXJzIGFuZCBhcmd1bWVudHMKKyAgICAgICAgICAgICAgICAg
ICAgLy8gdGhhdCBkb24ndCBnbyBpbnRvIGFyZ3VtZW50IHJlZ2lzdGVycy4KKyAgICAgICAgICAg
ICAgICAgICAgZm9yIChTaHVmZmxlUGFpciYgcGFpciA6IHNodWZmbGVQYWlycykgeworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHBhaXIuZHN0KCkuaXNNZW1vcnkoKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0SW5zdChpbnN0SW5kZXgsIHBhaXIu
aW5zdCgmY29kZSwgaW5zdC5vcmlnaW4pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gRmlsbCB0aGUgYXJndW1lbnQg
cmVnaXN0ZXJzIGJ5IHN0YXJ0aW5nIHdpdGggdGhlIGZpcnN0IG9uZS4gVGhpcyBhdm9pZHMKKyAg
ICAgICAgICAgICAgICAgICAgLy8gY3JlYXRpbmcgaW50ZXJmZXJlbmNlIGJldHdlZW4gdGhpbmdz
IHBhc3NlZCB0byBsb3ctbnVtYmVyZWQgYXJndW1lbnQKKyAgICAgICAgICAgICAgICAgICAgLy8g
cmVnaXN0ZXJzIGFuZCBoaWdoLW51bWJlcmVkIGFyZ3VtZW50IHJlZ2lzdGVycy4gVGhlIGFzc3Vt
cHRpb24gaGVyZSBpcworICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IGxvd2VyLW51bWJlcmVk
IGFyZ3VtZW50IHJlZ2lzdGVycyBhcmUgbW9yZSBsaWtlbHkgdG8gYmUKKyAgICAgICAgICAgICAg
ICAgICAgLy8gaW5jaWRlbnRhbGx5IGNsb2JiZXJlZC4KKyAgICAgICAgICAgICAgICAgICAgZm9y
IChTaHVmZmxlUGFpciYgcGFpciA6IHNodWZmbGVQYWlycykgeworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCFwYWlyLmRzdCgpLmlzTWVtb3J5KCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydEluc3QoaW5zdEluZGV4LCBwYWlyLmluc3QobnVsbHB0
ciwgaW5zdC5vcmlnaW4pKTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0SW5zdChpbnN0SW5kZXgsIFdU
Rk1vdmUoc2h1ZmZsZUFyZ3VtZW50cykpOwogCiAgICAgICAgICAgICAgICAgLy8gSW5kaWNhdGUg
dGhhdCB3ZSdyZSB1c2luZyBvdXIgb3JpZ2luYWwgY2FsbGVlIGFyZ3VtZW50LgogICAgICAgICAg
ICAgICAgIGRlc3RpbmF0aW9uc1swXSA9IGluc3QuYXJnc1swXTsKQEAgLTkxLDggKzExNSwxNyBA
QCB2b2lkIGxvd2VyTWFjcm9zKENvZGUmIGNvZGUpCiAgICAgICAgICAgICAgICAgICAgIGluc2Vy
dGlvblNldC5pbnNlcnQoaW5zdEluZGV4ICsgMSwgTW92ZSwgdmFsdWUsIHJlc3VsdCwgcmVzdWx0
RHN0KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfTsKKworICAgICAgICAgICAgc3dpdGNoIChpbnN0LmtpbmQub3Bjb2RlKSB7Cisg
ICAgICAgICAgICBjYXNlIENvbGRDQ2FsbDoKKyAgICAgICAgICAgICAgICBpZiAoY29kZS5vcHRM
ZXZlbCgpIDwgMikKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2FsbCgpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBDQ2FsbDoK
KyAgICAgICAgICAgICAgICBoYW5kbGVDYWxsKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJl
YWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5l
cmF0b3IuY3BwCShyZXZpc2lvbiAyMTQ4ODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtQjNJUkdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyODgsNiArMTI4OCw4
IEBAIEV4cGVjdGVkPHN0ZDo6dW5pcXVlX3B0cjxXYXNtSW50ZXJuYWxGdW4KICAgICAvLyBkb24n
dCBzdHJpY3RseSBuZWVkIHRvIHJ1biBBaXI6OnJlcG9ydFVzZWRSZWdpc3RlcnMoKSwgd2hpY2gg
c2F2ZXMgYSBiaXQgb2YgQ1BVIHRpbWUgYXQKICAgICAvLyBvcHRMZXZlbD0xLgogICAgIHByb2Nl
ZHVyZS5zZXROZWVkc1VzZWRSZWdpc3RlcnMoZmFsc2UpOworICAgIAorICAgIHByb2NlZHVyZS5z
ZXRPcHRMZXZlbChvcHRMZXZlbCk7CiAKICAgICBCM0lSR2VuZXJhdG9yIGNvbnRleHQoaW5mbywg
cHJvY2VkdXJlLCByZXN1bHQuZ2V0KCksIHVubGlua2VkV2FzbVRvV2FzbUNhbGxzLCBtb2RlKTsK
ICAgICBGdW5jdGlvblBhcnNlcjxCM0lSR2VuZXJhdG9yPiBwYXJzZXIoY29udGV4dCwgZnVuY3Rp
b25TdGFydCwgZnVuY3Rpb25MZW5ndGgsIHNpZ25hdHVyZSwgaW5mbywgbW9kdWxlU2lnbmF0dXJl
SW5kaWNlc1RvVW5pcXVlZFNpZ25hdHVyZUluZGljZXMpOwpAQCAtMTMwNCw3ICsxMzA2LDcgQEAg
RXhwZWN0ZWQ8c3RkOjp1bmlxdWVfcHRyPFdhc21JbnRlcm5hbEZ1bgogICAgIGRhdGFMb2dJZih2
ZXJib3NlLCAiUG9zdCBTU0E6ICIsIHByb2NlZHVyZSk7CiAgICAgCiAgICAgewotICAgICAgICBC
Mzo6cHJlcGFyZUZvckdlbmVyYXRpb24ocHJvY2VkdXJlLCBvcHRMZXZlbCk7CisgICAgICAgIEIz
OjpwcmVwYXJlRm9yR2VuZXJhdGlvbihwcm9jZWR1cmUpOwogICAgICAgICBCMzo6Z2VuZXJhdGUo
cHJvY2VkdXJlLCAqY29tcGlsYXRpb25Db250ZXh0Lndhc21FbnRyeXBvaW50SklUKTsKICAgICAg
ICAgY29tcGlsYXRpb25Db250ZXh0Lndhc21FbnRyeXBvaW50Qnlwcm9kdWN0cyA9IHByb2NlZHVy
ZS5yZWxlYXNlQnlwcm9kdWN0cygpOwogICAgICAgICByZXN1bHQtPndhc21FbnRyeXBvaW50LmNh
bGxlZVNhdmVSZWdpc3RlcnMgPSBwcm9jZWR1cmUuY2FsbGVlU2F2ZVJlZ2lzdGVycygpOwo=
</data>
<flag name="review"
          id="327550"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>