<?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>83247</bug_id>
          
          <creation_ts>2012-04-04 22:05:28 -0700</creation_ts>
          <short_desc>Forced OSR exits should lead to recompilation based on count, not rate</short_desc>
          <delta_ts>2012-04-08 13:47:29 -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>528+ (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>InRadar</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="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>596296</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-04 22:05:28 -0700</bug_when>
    <thetext>Patch forthcoming.

&lt;rdar://problem/10720925&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596298</commentid>
    <comment_count>1</comment_count>
      <attachid>135755</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-04 22:09:56 -0700</bug_when>
    <thetext>Created attachment 135755
work in progress

32-bit code not done.  Putting up for EWS anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596308</commentid>
    <comment_count>2</comment_count>
      <attachid>135757</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-04 22:43:59 -0700</bug_when>
    <thetext>Created attachment 135757
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596579</commentid>
    <comment_count>3</comment_count>
      <attachid>135757</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-04-05 08:13:18 -0700</bug_when>
    <thetext>Comment on attachment 135757
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>598062</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-08 13:47:29 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/113552</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135755</attachid>
            <date>2012-04-04 22:09:56 -0700</date>
            <delta_ts>2012-04-04 22:43:59 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>forcedosrexit_patch_1.diff</filename>
            <type>text/plain</type>
            <size>17552</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTEzMjg5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDEyLTA0LTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Rm9yY2VkIE9TUiBleGl0cyBzaG91bGQgbGVhZCB0byByZWNvbXBpbGF0aW9uIGJhc2VkIG9uIGNv
dW50LCBub3QgcmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODMyNDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwNzIwOTI1PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVHJhY2sgd2hp
Y2ggT1NSIGV4aXRzIGhhcHBlbiBiZWNhdXNlIG9mIGluYWRlcXVhdGUgY292ZXJhZ2UuIENvdW50
IHRoZW0KKyAgICAgICAgc2VwYXJhdGVseS4gSWYgdGhlIGNvdW50IHJlYWNoZXMgYSB0aHJlc2hv
bGQsIGltbWVkaWF0ZWx5IHRyaWdnZXIKKyAgICAgICAgcmVvcHRpbWl6YXRpb24uCisgICAgICAg
IAorICAgICAgICBUaGlzIGlzIGluIGNvbnRyYXN0IHRvIHRoZSByZWNvbXBpbGF0aW9uIHRyaWdn
ZXIgZm9yIGFsbCBvdGhlciBPU1IgZXhpdHMuCisgICAgICAgIE5vcm1hbGx5IHJlY29tcCBpcyB0
cmlnZ2VyZWQgd2hlbiB0aGUgZXhpdCByYXRlIGV4Y2VlZHMgYSBjZXJ0YWluIHJhdGlvLgorICAg
ICAgICAKKyAgICAgICAgV29yayBpbiBwcm9ncmVzcywgc2luY2UgSSBzdGlsbCBuZWVkIHRvIHdy
aXRlIHRoZSAzMi1iaXQgY29kZS4KKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6
CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Q29kZUJsb2NrKToKKyAgICAgICAgKiBieXRlY29k
ZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpmb3JjZWRPU1JFeGl0Q291
bnRlcik6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6YWRkcmVzc09mRm9yY2VkT1NSRXhpdENv
dW50ZXIpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Om9mZnNldE9mRm9yY2VkT1NSRXhpdENv
dW50ZXIpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNob3VsZFJlb3B0aW1pemVOb3cpOgor
ICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNob3VsZFJlb3B0aW1pemVGcm9tTG9vcE5vdyk6Cisg
ICAgICAgIChDb2RlQmxvY2spOgorICAgICAgICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmg6
CisgICAgICAgIChKU0M6OkRGRzo6ZXhpdEtpbmRUb1N0cmluZyk6CisgICAgICAgICogZGZnL0RG
R09TUkV4aXRDb21waWxlcjY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Q29tcGls
ZXI6OmNvbXBpbGVFeGl0KToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUdldEluZGV4ZWRQcm9wZXJ0eVN0b3JhZ2UpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAg
ICAgKE9wdGlvbnMpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjppbml0aWFsaXplT3B0aW9ucyk6
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6CisgICAgICAgIChPcHRpb25zKToKKwogMjAx
Mi0wNC0wNCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBhcnNl
ciBmYWlscyB0byByZXZlcnQgc29tZSBzdGF0ZSBhZnRlciBwYXJzaW5nIGV4cHJlc3Npb24gYW5k
IG9iamVjdCBsaXRlcmFscy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxMTMyNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQzMiw2ICsxNDMy
LDcgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soQ29weVBhcnNlZEJsb2NrVGFnLAogICAgICwgbV9z
eW1ib2xUYWJsZShzeW1UYWIpCiAgICAgLCBtX3NwZWN1bGF0aXZlU3VjY2Vzc0NvdW50ZXIoMCkK
ICAgICAsIG1fc3BlY3VsYXRpdmVGYWlsQ291bnRlcigwKQorICAgICwgbV9mb3JjZWRPU1JFeGl0
Q291bnRlcigwKQogICAgICwgbV9vcHRpbWl6YXRpb25EZWxheUNvdW50ZXIoMCkKICAgICAsIG1f
cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXIoMCkKICNpZiBFTkFCTEUoSklUKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMTEzMjY5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDA2LDEyICsxMDA2LDE1IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAK
ICAgICAgICAgdWludDMyX3Qgc3BlY3VsYXRpdmVTdWNjZXNzQ291bnRlcigpIGNvbnN0IHsgcmV0
dXJuIG1fc3BlY3VsYXRpdmVTdWNjZXNzQ291bnRlcjsgfQogICAgICAgICB1aW50MzJfdCBzcGVj
dWxhdGl2ZUZhaWxDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gbV9zcGVjdWxhdGl2ZUZhaWxDb3Vu
dGVyOyB9CisgICAgICAgIHVpbnQzMl90IGZvcmNlZE9TUkV4aXRDb3VudGVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9mb3JjZWRPU1JFeGl0Q291bnRlcjsgfQogICAgICAgICAKICAgICAgICAgdWludDMy
X3QqIGFkZHJlc3NPZlNwZWN1bGF0aXZlU3VjY2Vzc0NvdW50ZXIoKSB7IHJldHVybiAmbV9zcGVj
dWxhdGl2ZVN1Y2Nlc3NDb3VudGVyOyB9CiAgICAgICAgIHVpbnQzMl90KiBhZGRyZXNzT2ZTcGVj
dWxhdGl2ZUZhaWxDb3VudGVyKCkgeyByZXR1cm4gJm1fc3BlY3VsYXRpdmVGYWlsQ291bnRlcjsg
fQorICAgICAgICB1aW50MzJfdCogYWRkcmVzc09mRm9yY2VkT1NSRXhpdENvdW50ZXIoKSB7IHJl
dHVybiAmbV9mb3JjZWRPU1JFeGl0Q291bnRlcjsgfQogICAgICAgICAKICAgICAgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZlNwZWN1bGF0aXZlU3VjY2Vzc0NvdW50ZXIoKSB7IHJldHVybiBP
QkpFQ1RfT0ZGU0VUT0YoQ29kZUJsb2NrLCBtX3NwZWN1bGF0aXZlU3VjY2Vzc0NvdW50ZXIpOyB9
CiAgICAgICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTcGVjdWxhdGl2ZUZhaWxDb3VudGVy
KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENvZGVCbG9jaywgbV9zcGVjdWxhdGl2ZUZhaWxD
b3VudGVyKTsgfQorICAgICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mRm9yY2VkT1NSRXhp
dENvdW50ZXIoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoQ29kZUJsb2NrLCBtX2ZvcmNlZE9T
UkV4aXRDb3VudGVyKTsgfQogCiAjaWYgRU5BQkxFKEpJVCkKICAgICAgICAgLy8gVGhlIG51bWJl
ciBvZiBmYWlsdXJlcyB0aGF0IHRyaWdnZXJzIHRoZSB1c2Ugb2YgdGhlIHJhdGlvLgpAQCAtMTAy
MCwxMiArMTAyMywyMCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBib29sIHNob3VsZFJl
b3B0aW1pemVOb3coKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gT3B0aW9uczo6ZGVz
aXJlZFNwZWN1bGF0aXZlU3VjY2Vzc0ZhaWxSYXRpbyAqIHNwZWN1bGF0aXZlRmFpbENvdW50ZXIo
KSA+PSBzcGVjdWxhdGl2ZVN1Y2Nlc3NDb3VudGVyKCkgJiYgc3BlY3VsYXRpdmVGYWlsQ291bnRl
cigpID49IGxhcmdlRmFpbENvdW50VGhyZXNob2xkKCk7CisgICAgICAgICAgICByZXR1cm4gKE9w
dGlvbnM6OmRlc2lyZWRTcGVjdWxhdGl2ZVN1Y2Nlc3NGYWlsUmF0aW8gKgorICAgICAgICAgICAg
ICAgICAgICAgICAgc3BlY3VsYXRpdmVGYWlsQ291bnRlcigpID49IHNwZWN1bGF0aXZlU3VjY2Vz
c0NvdW50ZXIoKQorICAgICAgICAgICAgICAgICAgICAmJiBzcGVjdWxhdGl2ZUZhaWxDb3VudGVy
KCkgPj0gbGFyZ2VGYWlsQ291bnRUaHJlc2hvbGQoKSkKKyAgICAgICAgICAgICAgICB8fCBmb3Jj
ZWRPU1JFeGl0Q291bnRlcigpID49CisgICAgICAgICAgICAgICAgICAgICAgIE9wdGlvbnM6OmZv
cmNlZE9TUkV4aXRDb3VudEZvclJlb3B0aW1pemF0aW9uOwogICAgICAgICB9CiAKICAgICAgICAg
Ym9vbCBzaG91bGRSZW9wdGltaXplRnJvbUxvb3BOb3coKQogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gT3B0aW9uczo6ZGVzaXJlZFNwZWN1bGF0aXZlU3VjY2Vzc0ZhaWxSYXRpbyAqIHNw
ZWN1bGF0aXZlRmFpbENvdW50ZXIoKSA+PSBzcGVjdWxhdGl2ZVN1Y2Nlc3NDb3VudGVyKCkgJiYg
c3BlY3VsYXRpdmVGYWlsQ291bnRlcigpID49IGxhcmdlRmFpbENvdW50VGhyZXNob2xkRm9yTG9v
cCgpOworICAgICAgICAgICAgcmV0dXJuIChPcHRpb25zOjpkZXNpcmVkU3BlY3VsYXRpdmVTdWNj
ZXNzRmFpbFJhdGlvICoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNwZWN1bGF0aXZlRmFpbENv
dW50ZXIoKSA+PSBzcGVjdWxhdGl2ZVN1Y2Nlc3NDb3VudGVyKCkKKyAgICAgICAgICAgICAgICAg
ICAgJiYgc3BlY3VsYXRpdmVGYWlsQ291bnRlcigpID49IGxhcmdlRmFpbENvdW50VGhyZXNob2xk
Rm9yTG9vcCgpKQorICAgICAgICAgICAgICAgIHx8IGZvcmNlZE9TUkV4aXRDb3VudGVyKCkgPj0K
KyAgICAgICAgICAgICAgICAgICAgICAgT3B0aW9uczo6Zm9yY2VkT1NSRXhpdENvdW50Rm9yUmVv
cHRpbWl6YXRpb247CiAgICAgICAgIH0KICNlbmRpZgogCkBAIC0xMjI4LDYgKzEyMzksNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgaW50MzJfdCBtX3RvdGFsSklURXhlY3V0aW9uczsKICAg
ICAgICAgdWludDMyX3QgbV9zcGVjdWxhdGl2ZVN1Y2Nlc3NDb3VudGVyOwogICAgICAgICB1aW50
MzJfdCBtX3NwZWN1bGF0aXZlRmFpbENvdW50ZXI7CisgICAgICAgIHVpbnQzMl90IG1fZm9yY2Vk
T1NSRXhpdENvdW50ZXI7CiAgICAgICAgIHVpbnQxNl90IG1fb3B0aW1pemF0aW9uRGVsYXlDb3Vu
dGVyOwogICAgICAgICB1aW50MTZfdCBtX3Jlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyOwogICAg
ICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmls
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0
UHJvZmlsZS5oCShyZXZpc2lvbiAxMTMyNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQCBl
bnVtIEV4aXRLaW5kIHsKICAgICBCYWRDYWNoZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYW4gaW5s
aW5lIGNhY2hlIHdhcyB3cm9uZy4KICAgICBPdmVyZmxvdywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ug
b2Ygb3ZlcmZsb3cuCiAgICAgTmVnYXRpdmVaZXJvLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBl
bmNvdW50ZXJlZCBuZWdhdGl2ZSB6ZXJvLgorICAgIEluYWRlcXVhdGVDb3ZlcmFnZSwgLy8gV2Ug
ZXhpdGVkIGJlY2F1c2Ugd2UgZW5kZWQgdXAgaW4gY29kZSB0aGF0IGRpZG4ndCBoYXZlIHByb2Zp
bGluZyBjb3ZlcmFnZS4KICAgICBVbmNvdW50YWJsZSwgLy8gV2UgZXhpdGVkIGZvciBub25lIG9m
IHRoZSBhYm92ZSByZWFzb25zLCBhbmQgd2Ugc2hvdWxkIG5vdCBjb3VudCBpdC4gTW9zdCB1c2Vz
IG9mIHRoaXMgc2hvdWxkIGJlIHZpZXdlZCBhcyBhIEZJWE1FLgogfTsKIApAQCAtNTQsNiArNTUs
OCBAQCBpbmxpbmUgY29uc3QgY2hhciogZXhpdEtpbmRUb1N0cmluZyhFeGl0CiAgICAgICAgIHJl
dHVybiAiT3ZlcmZsb3ciOwogICAgIGNhc2UgTmVnYXRpdmVaZXJvOgogICAgICAgICByZXR1cm4g
Ik5lZ2F0aXZlWmVybyI7CisgICAgY2FzZSBJbmFkZXF1YXRlQ292ZXJhZ2U6CisgICAgICAgIHJl
dHVybiAiSW5hZGVxdWF0ZUNvdmVyYWdlIjsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4g
IlVua25vd24iOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RXhpdENvbXBpbGVyNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCShyZXZpc2lvbiAxMTMyNjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTQ1LDI3ICs1NDUsNDUgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0
KGNvbnN0IAogICAgIAogICAgIG1faml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKG1faml0LmNvZGVCbG9jaygpKSwgR1BSSW5mbzo6cmVnVDApOwogICAgIAotICAgIG1faml0
LmxvYWQzMihBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIENvZGVCbG9j
azo6b2Zmc2V0T2ZTcGVjdWxhdGl2ZUZhaWxDb3VudGVyKCkpLCBHUFJJbmZvOjpyZWdUMik7Ci0g
ICAgbV9qaXQubG9hZDMyKEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwg
Q29kZUJsb2NrOjpvZmZzZXRPZlNwZWN1bGF0aXZlU3VjY2Vzc0NvdW50ZXIoKSksIEdQUkluZm86
OnJlZ1QxKTsKLSAgICBtX2ppdC5hZGQzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigx
KSwgR1BSSW5mbzo6cmVnVDIpOwotICAgIG1faml0LmFkZDMyKEFzc2VtYmx5SGVscGVyczo6VHJ1
c3RlZEltbTMyKC0xKSwgR1BSSW5mbzo6cmVnVDEpOwotICAgIG1faml0LnN0b3JlMzIoR1BSSW5m
bzo6cmVnVDIsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgQ29kZUJs
b2NrOjpvZmZzZXRPZlNwZWN1bGF0aXZlRmFpbENvdW50ZXIoKSkpOwotICAgIG1faml0LnN0b3Jl
MzIoR1BSSW5mbzo6cmVnVDEsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdU
MCwgQ29kZUJsb2NrOjpvZmZzZXRPZlNwZWN1bGF0aXZlU3VjY2Vzc0NvdW50ZXIoKSkpOworICAg
IEFzc2VtYmx5SGVscGVyczo6SnVtcExpc3QgdG9vRmV3RmFpbHM7CiAgICAgCi0gICAgbV9qaXQu
bW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIobV9qaXQuYmFzZWxpbmVDb2RlQmxv
Y2soKSksIEdQUkluZm86OnJlZ1QwKTsKKyAgICBpZiAoZXhpdC5tX2tpbmQgPT0gSW5hZGVxdWF0
ZUNvdmVyYWdlKSB7CisgICAgICAgIC8vIFByb2NlZWQgYmFzZWQgb24gdGhlIGFzc3VtcHRpb24g
dGhhdCB3ZSBjYW4gcHJvZml0YWJseSBvcHRpbWl6ZSB0aGlzIGNvZGUgb25jZQorICAgICAgICAv
LyBpdCBoYXMgZXhlY3V0ZWQgZW5vdWdoIHRpbWVzLgorICAgICAgICAKKyAgICAgICAgbV9qaXQu
bG9hZDMyKEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgQ29kZUJsb2Nr
OjpvZmZzZXRPZkZvcmNlZE9TUkV4aXRDb3VudGVyKCkpLCBHUFJJbmZvOjpyZWdUMik7CisgICAg
ICAgIG1faml0LmxvYWQzMihBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAs
IENvZGVCbG9jazo6b2Zmc2V0T2ZTcGVjdWxhdGl2ZVN1Y2Nlc3NDb3VudGVyKCkpLCBHUFJJbmZv
OjpyZWdUMSk7CisgICAgICAgIG1faml0LmFkZDMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZElt
bTMyKDEpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgICAgIG1faml0LmFkZDMyKEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbTMyKC0xKSwgR1BSSW5mbzo6cmVnVDEpOworICAgICAgICBtX2ppdC5z
dG9yZTMyKEdQUkluZm86OnJlZ1QyLCBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6
cmVnVDAsIENvZGVCbG9jazo6b2Zmc2V0T2ZGb3JjZWRPU1JFeGl0Q291bnRlcigpKSk7CisgICAg
ICAgIG1faml0LnN0b3JlMzIoR1BSSW5mbzo6cmVnVDEsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVz
cyhHUFJJbmZvOjpyZWdUMCwgQ29kZUJsb2NrOjpvZmZzZXRPZlNwZWN1bGF0aXZlU3VjY2Vzc0Nv
dW50ZXIoKSkpOworICAgICAgICAKKyAgICAgICAgdG9vRmV3RmFpbHMuYXBwZW5kKG1faml0LmJy
YW5jaDMyKEFzc2VtYmx5SGVscGVyczo6QmVsb3dPckVxdWFsLCBHUFJJbmZvOjpyZWdUMiwgQXNz
ZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoT3B0aW9uczo6Zm9yY2VkT1NSRXhpdENvdW50Rm9y
UmVvcHRpbWl6YXRpb24pKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gUHJvY2VlZCBiYXNl
ZCBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHdlIGNhbiBoYW5kbGUgdGhlc2UgZXhpdHMgc28gbG9u
ZyBhcyB0aGV5CisgICAgICAgIC8vIGRvbid0IGdldCB0b28gZnJlcXVlbnQuCisgICAgICAgIAor
ICAgICAgICBtX2ppdC5sb2FkMzIoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJl
Z1QwLCBDb2RlQmxvY2s6Om9mZnNldE9mU3BlY3VsYXRpdmVGYWlsQ291bnRlcigpKSwgR1BSSW5m
bzo6cmVnVDIpOworICAgICAgICBtX2ppdC5sb2FkMzIoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNz
KEdQUkluZm86OnJlZ1QwLCBDb2RlQmxvY2s6Om9mZnNldE9mU3BlY3VsYXRpdmVTdWNjZXNzQ291
bnRlcigpKSwgR1BSSW5mbzo6cmVnVDEpOworICAgICAgICBtX2ppdC5hZGQzMihBc3NlbWJseUhl
bHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgR1BSSW5mbzo6cmVnVDIpOworICAgICAgICBtX2ppdC5h
ZGQzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigtMSksIEdQUkluZm86OnJlZ1QxKTsK
KyAgICAgICAgbV9qaXQuc3RvcmUzMihHUFJJbmZvOjpyZWdUMiwgQXNzZW1ibHlIZWxwZXJzOjpB
ZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBDb2RlQmxvY2s6Om9mZnNldE9mU3BlY3VsYXRpdmVGYWls
Q291bnRlcigpKSk7CisgICAgICAgIG1faml0LnN0b3JlMzIoR1BSSW5mbzo6cmVnVDEsIEFzc2Vt
Ymx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgQ29kZUJsb2NrOjpvZmZzZXRPZlNw
ZWN1bGF0aXZlU3VjY2Vzc0NvdW50ZXIoKSkpOwogICAgIAotICAgIEFzc2VtYmx5SGVscGVyczo6
SnVtcCBmZXdGYWlscyA9IG1faml0LmJyYW5jaDMyKEFzc2VtYmx5SGVscGVyczo6QmVsb3dPckVx
dWFsLCBHUFJJbmZvOjpyZWdUMiwgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIobV9qaXQu
Y29kZUJsb2NrKCktPmxhcmdlRmFpbENvdW50VGhyZXNob2xkKCkpKTsKLSAgICBtX2ppdC5tdWwz
MihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihPcHRpb25zOjpkZXNpcmVkU3BlY3VsYXRp
dmVTdWNjZXNzRmFpbFJhdGlvKSwgR1BSSW5mbzo6cmVnVDIsIEdQUkluZm86OnJlZ1QyKTsKKyAg
ICAgICAgbV9qaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIobV9qaXQuYmFz
ZWxpbmVDb2RlQmxvY2soKSksIEdQUkluZm86OnJlZ1QwKTsKICAgICAKLSAgICBBc3NlbWJseUhl
bHBlcnM6Okp1bXAgbG93RmFpbFJhdGUgPSBtX2ppdC5icmFuY2gzMihBc3NlbWJseUhlbHBlcnM6
OkJlbG93T3JFcXVhbCwgR1BSSW5mbzo6cmVnVDIsIEdQUkluZm86OnJlZ1QxKTsKKyAgICAgICAg
dG9vRmV3RmFpbHMuYXBwZW5kKG1faml0LmJyYW5jaDMyKEFzc2VtYmx5SGVscGVyczo6QmVsb3dP
ckVxdWFsLCBHUFJJbmZvOjpyZWdUMiwgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIobV9q
aXQuY29kZUJsb2NrKCktPmxhcmdlRmFpbENvdW50VGhyZXNob2xkKCkpKSk7CisgICAgICAgIG1f
aml0Lm11bDMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKE9wdGlvbnM6OmRlc2lyZWRT
cGVjdWxhdGl2ZVN1Y2Nlc3NGYWlsUmF0aW8pLCBHUFJJbmZvOjpyZWdUMiwgR1BSSW5mbzo6cmVn
VDIpOwogICAgIAorICAgICAgICB0b29GZXdGYWlscy5hcHBlbmQobV9qaXQuYnJhbmNoMzIoQXNz
ZW1ibHlIZWxwZXJzOjpCZWxvd09yRXF1YWwsIEdQUkluZm86OnJlZ1QyLCBHUFJJbmZvOjpyZWdU
MSkpOworICAgIH0KKwogICAgIC8vIFJlb3B0aW1pemUgYXMgc29vbiBhcyBwb3NzaWJsZS4KICAg
ICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBBc3NlbWJs
eUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIENvZGVCbG9jazo6b2Zmc2V0T2ZKSVRF
eGVjdXRlQ291bnRlcigpKSk7CiAgICAgbV9qaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRy
dXN0ZWRJbW0zMigwKSwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBD
b2RlQmxvY2s6Om9mZnNldE9mSklURXhlY3V0aW9uQWN0aXZlVGhyZXNob2xkKCkpKTsKICAgICBB
c3NlbWJseUhlbHBlcnM6Okp1bXAgZG9uZUFkanVzdGluZyA9IG1faml0Lmp1bXAoKTsKICAgICAK
LSAgICBmZXdGYWlscy5saW5rKCZtX2ppdCk7Ci0gICAgbG93RmFpbFJhdGUubGluaygmbV9qaXQp
OworICAgIHRvb0Zld0ZhaWxzLmxpbmsoJm1faml0KTsKICAgICAKICAgICAvLyBBZGp1c3QgdGhl
IGV4ZWN1dGlvbiBjb3VudGVyIHN1Y2ggdGhhdCB0aGUgdGFyZ2V0IGlzIHRvIG9ubHkgb3B0aW1p
emUgYWZ0ZXIgYSB3aGlsZS4KICAgICBpbnQzMl90IHRhcmdldFZhbHVlID0KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTEzMjY5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTEyMyw3ICsxMTIzLDE3IEBAIHZvaWQgREZHX09QRVJBVElPTiBkZWJ1Z09w
ZXJhdGlvblByaW50U3AKICAgICBTcGVjdWxhdGlvbkZhaWx1cmVEZWJ1Z0luZm8qIGRlYnVnSW5m
byA9IHN0YXRpY19jYXN0PFNwZWN1bGF0aW9uRmFpbHVyZURlYnVnSW5mbyo+KGRlYnVnSW5mb1Jh
dyk7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBkZWJ1Z0luZm8tPmNvZGVCbG9jazsKICAg
ICBDb2RlQmxvY2sqIGFsdGVybmF0aXZlID0gY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpOwotICAg
IGRhdGFMb2coIlNwZWN1bGF0aW9uIGZhaWx1cmUgaW4gJXAgYXQgQCV1IHdpdGggZXhlY3V0ZUNv
dW50ZXIgPSAlZCwgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXIgPSAldSwgb3B0aW1pemF0aW9u
RGVsYXlDb3VudGVyID0gJXUsIHN1Y2Nlc3MvZmFpbCAldS8ldVxuIiwgY29kZUJsb2NrLCBkZWJ1
Z0luZm8tPm5vZGVJbmRleCwgYWx0ZXJuYXRpdmUgPyBhbHRlcm5hdGl2ZS0+aml0RXhlY3V0ZUNv
dW50ZXIoKSA6IDAsIGFsdGVybmF0aXZlID8gYWx0ZXJuYXRpdmUtPnJlb3B0aW1pemF0aW9uUmV0
cnlDb3VudGVyKCkgOiAwLCBhbHRlcm5hdGl2ZSA/IGFsdGVybmF0aXZlLT5vcHRpbWl6YXRpb25E
ZWxheUNvdW50ZXIoKSA6IDAsIGNvZGVCbG9jay0+c3BlY3VsYXRpdmVTdWNjZXNzQ291bnRlcigp
LCBjb2RlQmxvY2stPnNwZWN1bGF0aXZlRmFpbENvdW50ZXIoKSk7CisgICAgZGF0YUxvZygiU3Bl
Y3VsYXRpb24gZmFpbHVyZSBpbiAlcCBhdCBAJXUgd2l0aCBleGVjdXRlQ291bnRlciA9ICVkLCAi
CisgICAgICAgICAgICAicmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXIgPSAldSwgb3B0aW1pemF0
aW9uRGVsYXlDb3VudGVyID0gJXUsICIKKyAgICAgICAgICAgICJzdWNjZXNzL2ZhaWwgJXUvKCV1
KyV1KVxuIiwKKyAgICAgICAgICAgIGNvZGVCbG9jaywKKyAgICAgICAgICAgIGRlYnVnSW5mby0+
bm9kZUluZGV4LAorICAgICAgICAgICAgYWx0ZXJuYXRpdmUgPyBhbHRlcm5hdGl2ZS0+aml0RXhl
Y3V0ZUNvdW50ZXIoKSA6IDAsCisgICAgICAgICAgICBhbHRlcm5hdGl2ZSA/IGFsdGVybmF0aXZl
LT5yZW9wdGltaXphdGlvblJldHJ5Q291bnRlcigpIDogMCwKKyAgICAgICAgICAgIGFsdGVybmF0
aXZlID8gYWx0ZXJuYXRpdmUtPm9wdGltaXphdGlvbkRlbGF5Q291bnRlcigpIDogMCwKKyAgICAg
ICAgICAgIGNvZGVCbG9jay0+c3BlY3VsYXRpdmVTdWNjZXNzQ291bnRlcigpLAorICAgICAgICAg
ICAgY29kZUJsb2NrLT5zcGVjdWxhdGl2ZUZhaWxDb3VudGVyKCksCisgICAgICAgICAgICBjb2Rl
QmxvY2stPmZvcmNlZE9TUkV4aXRDb3VudGVyKCkpOwogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2
aXNpb24gMTEzMjY5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkwNSw3ICsxOTA1LDcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogCiAgICAgICAgIC8vIElmIHdlIGhhdmUg
bm8gcHJlZGljdGlvbiBmb3IgdGhpcyBsb2NhbCwgdGhlbiBkb24ndCBhdHRlbXB0IHRvIGNvbXBp
bGUuCiAgICAgICAgIGlmIChwcmVkaWN0aW9uID09IFByZWRpY3ROb25lIHx8IHZhbHVlLmlzQ2xl
YXIoKSkgewotICAgICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oVW5jb3Vu
dGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7CisgICAgICAgICAgICB0ZXJtaW5hdGVTcGVj
dWxhdGl2ZUV4ZWN1dGlvbihJbmFkZXF1YXRlQ292ZXJhZ2UsIEpTVmFsdWVSZWdzKCksIE5vTm9k
ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAKQEAgLTIyOTcsNyAr
MjI5Nyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKIAogICAg
IGNhc2UgR2V0QnlWYWw6IHsKICAgICAgICAgaWYgKCFub2RlLnByZWRpY3Rpb24oKSB8fCAhYXQo
bm9kZS5jaGlsZDEoKSkucHJlZGljdGlvbigpIHx8ICFhdChub2RlLmNoaWxkMigpKS5wcmVkaWN0
aW9uKCkpIHsKLSAgICAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291
bnRhYmxlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOworICAgICAgICAgICAgdGVybWluYXRlU3Bl
Y3VsYXRpdmVFeGVjdXRpb24oSW5hZGVxdWF0ZUNvdmVyYWdlLCBKU1ZhbHVlUmVncygpLCBOb05v
ZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgCkBAIC0yNDIyLDcg
KzI0MjIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAKICAg
ICBjYXNlIFB1dEJ5VmFsOiB7CiAgICAgICAgIGlmICghYXQobm9kZS5jaGlsZDEoKSkucHJlZGlj
dGlvbigpIHx8ICFhdChub2RlLmNoaWxkMigpKS5wcmVkaWN0aW9uKCkpIHsKLSAgICAgICAgICAg
IHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygp
LCBOb05vZGUpOworICAgICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oSW5h
ZGVxdWF0ZUNvdmVyYWdlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgCkBAIC0yNTcyLDcgKzI1NzIsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAKICAgICBjYXNlIFB1dEJ5VmFsQWxpYXM6
IHsKICAgICAgICAgaWYgKCFhdChub2RlLmNoaWxkMSgpKS5wcmVkaWN0aW9uKCkgfHwgIWF0KG5v
ZGUuY2hpbGQyKCkpLnByZWRpY3Rpb24oKSkgewotICAgICAgICAgICAgdGVybWluYXRlU3BlY3Vs
YXRpdmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7CisgICAg
ICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihJbmFkZXF1YXRlQ292ZXJhZ2Us
IEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICAKQEAgLTMxNzcsNyArMzE3Nyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSYgbm9kZSkKICAgICB9CiAgICAgY2FzZSBHZXRCeUlkOiB7CiAgICAgICAgIGlmICgh
bm9kZS5wcmVkaWN0aW9uKCkpIHsKLSAgICAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhl
Y3V0aW9uKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOworICAgICAgICAgICAg
dGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oSW5hZGVxdWF0ZUNvdmVyYWdlLCBKU1ZhbHVl
UmVncygpLCBOb05vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
CkBAIC0zMjI3LDcgKzMyMjcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUm
IG5vZGUpCiAKICAgICBjYXNlIEdldEJ5SWRGbHVzaDogewogICAgICAgICBpZiAoIW5vZGUucHJl
ZGljdGlvbigpKSB7Ci0gICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihV
bmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlKTsKKyAgICAgICAgICAgIHRlcm1pbmF0
ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKEluYWRlcXVhdGVDb3ZlcmFnZSwgSlNWYWx1ZVJlZ3MoKSwg
Tm9Ob2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMzY5
OCw3ICszNjk4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQog
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgRm9yY2VPU1JFeGl0OiB7Ci0gICAgICAgIHRlcm1p
bmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCBOb05v
ZGUpOworICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihJbmFkZXF1YXRlQ292
ZXJhZ2UsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAJKHJldmlzaW9uIDExMzI2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTczLDcgKzI5NzMsNyBAQCBib29s
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaWN0RXEoTm9kCiB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0SW5kZXhlZFByb3BlcnR5U3RvcmFnZShOb2RlJiBub2RlKQogewogICAgIGlm
ICghbm9kZS5wcmVkaWN0aW9uKCkgfHwgIWF0KG5vZGUuY2hpbGQxKCkpLnByZWRpY3Rpb24oKSB8
fCAhYXQobm9kZS5jaGlsZDIoKSkucHJlZGljdGlvbigpKSB7Ci0gICAgICAgIHRlcm1pbmF0ZVNw
ZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOwor
ICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihJbmFkZXF1YXRlQ292ZXJhZ2Us
IEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgICAg
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJKHJldmlz
aW9uIDExMzI2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03NSw2ICs3NSw3IEBAIGRvdWJsZSBvc3JFeGl0UHJvbWluZW5j
ZUZvckZyZXF1ZW50RXhpdFMKIAogdW5zaWduZWQgbGFyZ2VGYWlsQ291bnRUaHJlc2hvbGRCYXNl
OwogdW5zaWduZWQgbGFyZ2VGYWlsQ291bnRUaHJlc2hvbGRCYXNlRm9yTG9vcDsKK3Vuc2lnbmVk
IGZvcmNlZE9TUkV4aXRDb3VudEZvclJlb3B0aW1pemF0aW9uOwogCiB1bnNpZ25lZCByZW9wdGlt
aXphdGlvblJldHJ5Q291bnRlck1heDsKIHVuc2lnbmVkIHJlb3B0aW1pemF0aW9uUmV0cnlDb3Vu
dGVyU3RlcDsKQEAgLTE3NCw4ICsxNzUsOSBAQCB2b2lkIGluaXRpYWxpemVPcHRpb25zKCkKICAg
ICAKICAgICBTRVQob3NyRXhpdFByb21pbmVuY2VGb3JGcmVxdWVudEV4aXRTaXRlLCAwLjMpOwog
Ci0gICAgU0VUKGxhcmdlRmFpbENvdW50VGhyZXNob2xkQmFzZSwgICAgICAgIDIwKTsKLSAgICBT
RVQobGFyZ2VGYWlsQ291bnRUaHJlc2hvbGRCYXNlRm9yTG9vcCwgMSk7CisgICAgU0VUKGxhcmdl
RmFpbENvdW50VGhyZXNob2xkQmFzZSwgICAgICAgICAyMCk7CisgICAgU0VUKGxhcmdlRmFpbENv
dW50VGhyZXNob2xkQmFzZUZvckxvb3AsICAxKTsKKyAgICBTRVQoZm9yY2VkT1NSRXhpdENvdW50
Rm9yUmVvcHRpbWl6YXRpb24sIDI1MCk7CiAKICAgICBTRVQocmVvcHRpbWl6YXRpb25SZXRyeUNv
dW50ZXJTdGVwLCAxKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuaAkocmV2aXNpb24gMTEzMjY5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw3IEBAIGV4dGVybiBkb3VibGUg
b3NyRXhpdFByb21pbmVuY2VGb3JGcmVxdWUKIAogZXh0ZXJuIHVuc2lnbmVkIGxhcmdlRmFpbENv
dW50VGhyZXNob2xkQmFzZTsKIGV4dGVybiB1bnNpZ25lZCBsYXJnZUZhaWxDb3VudFRocmVzaG9s
ZEJhc2VGb3JMb29wOworZXh0ZXJuIHVuc2lnbmVkIGZvcmNlZE9TUkV4aXRDb3VudEZvclJlb3B0
aW1pemF0aW9uOwogCiBleHRlcm4gdW5zaWduZWQgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJN
YXg7CiBleHRlcm4gdW5zaWduZWQgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJTdGVwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135757</attachid>
            <date>2012-04-04 22:43:59 -0700</date>
            <delta_ts>2012-04-05 08:13:18 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>forcedosrexit_patch_2.diff</filename>
            <type>text/plain</type>
            <size>27360</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTEzMjk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDEyLTA0LTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Rm9yY2VkIE9TUiBleGl0cyBzaG91bGQgbGVhZCB0byByZWNvbXBpbGF0aW9uIGJhc2VkIG9uIGNv
dW50LCBub3QgcmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODMyNDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwNzIwOTI1PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVHJhY2sgd2hp
Y2ggT1NSIGV4aXRzIGhhcHBlbiBiZWNhdXNlIG9mIGluYWRlcXVhdGUgY292ZXJhZ2UuIENvdW50
IHRoZW0KKyAgICAgICAgc2VwYXJhdGVseS4gSWYgdGhlIGNvdW50IHJlYWNoZXMgYSB0aHJlc2hv
bGQsIGltbWVkaWF0ZWx5IHRyaWdnZXIKKyAgICAgICAgcmVvcHRpbWl6YXRpb24uCisgICAgICAg
IAorICAgICAgICBUaGlzIGlzIGluIGNvbnRyYXN0IHRvIHRoZSByZWNvbXBpbGF0aW9uIHRyaWdn
ZXIgZm9yIGFsbCBvdGhlciBPU1IgZXhpdHMuCisgICAgICAgIE5vcm1hbGx5IHJlY29tcCBpcyB0
cmlnZ2VyZWQgd2hlbiB0aGUgZXhpdCByYXRlIGV4Y2VlZHMgYSBjZXJ0YWluIHJhdGlvLgorICAg
ICAgICAKKyAgICAgICAgTG9va3MgbGlrZSBhIHNsaWdodCBWOCBzcGVlZHVwIChzdWIgMSUpLgor
CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJs
b2NrOjpDb2RlQmxvY2spOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OmZvcmNlZE9TUkV4aXRDb3VudGVyKToKKyAgICAgICAgKEpTQzo6
Q29kZUJsb2NrOjphZGRyZXNzT2ZGb3JjZWRPU1JFeGl0Q291bnRlcik6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6b2Zmc2V0T2ZGb3JjZWRPU1JFeGl0Q291bnRlcik6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6c2hvdWxkUmVvcHRpbWl6ZU5vdyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9j
azo6c2hvdWxkUmVvcHRpbWl6ZUZyb21Mb29wTm93KToKKyAgICAgICAgKENvZGVCbG9jayk6Cisg
ICAgICAgICogYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpl
eGl0S2luZFRvU3RyaW5nKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmhhbmRsZUV4aXRDb3VudHMpOgor
ICAgICAgICAoREZHKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyLmg6CisgICAg
ICAgIChPU1JFeGl0Q29tcGlsZXIpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXIz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhp
dCk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAgICAgICAgKiBkZmcvREZH
T3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEluZGV4ZWRQcm9wZXJ0
eVN0b3JhZ2UpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlKToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAo
T3B0aW9ucyk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmluaXRpYWxpemVPcHRpb25zKToKKyAg
ICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAgKE9wdGlvbnMpOgorCiAyMDEyLTA0
LTA0ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUGFyc2VyIGZh
aWxzIHRvIHJldmVydCBzb21lIHN0YXRlIGFmdGVyIHBhcnNpbmcgZXhwcmVzc2lvbiBhbmQgb2Jq
ZWN0IGxpdGVyYWxzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5jcHAJKHJldmlzaW9uIDExMzI2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMyLDYgKzE0MzIsNyBA
QCBDb2RlQmxvY2s6OkNvZGVCbG9jayhDb3B5UGFyc2VkQmxvY2tUYWcsCiAgICAgLCBtX3N5bWJv
bFRhYmxlKHN5bVRhYikKICAgICAsIG1fc3BlY3VsYXRpdmVTdWNjZXNzQ291bnRlcigwKQogICAg
ICwgbV9zcGVjdWxhdGl2ZUZhaWxDb3VudGVyKDApCisgICAgLCBtX2ZvcmNlZE9TUkV4aXRDb3Vu
dGVyKDApCiAgICAgLCBtX29wdGltaXphdGlvbkRlbGF5Q291bnRlcigwKQogICAgICwgbV9yZW9w
dGltaXphdGlvblJldHJ5Q291bnRlcigwKQogI2lmIEVOQUJMRShKSVQpCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCShyZXZpc2lvbiAxMTMyNjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMDYsMTIgKzEwMDYsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAg
ICAgICB1aW50MzJfdCBzcGVjdWxhdGl2ZVN1Y2Nlc3NDb3VudGVyKCkgY29uc3QgeyByZXR1cm4g
bV9zcGVjdWxhdGl2ZVN1Y2Nlc3NDb3VudGVyOyB9CiAgICAgICAgIHVpbnQzMl90IHNwZWN1bGF0
aXZlRmFpbENvdW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3NwZWN1bGF0aXZlRmFpbENvdW50ZXI7
IH0KKyAgICAgICAgdWludDMyX3QgZm9yY2VkT1NSRXhpdENvdW50ZXIoKSBjb25zdCB7IHJldHVy
biBtX2ZvcmNlZE9TUkV4aXRDb3VudGVyOyB9CiAgICAgICAgIAogICAgICAgICB1aW50MzJfdCog
YWRkcmVzc09mU3BlY3VsYXRpdmVTdWNjZXNzQ291bnRlcigpIHsgcmV0dXJuICZtX3NwZWN1bGF0
aXZlU3VjY2Vzc0NvdW50ZXI7IH0KICAgICAgICAgdWludDMyX3QqIGFkZHJlc3NPZlNwZWN1bGF0
aXZlRmFpbENvdW50ZXIoKSB7IHJldHVybiAmbV9zcGVjdWxhdGl2ZUZhaWxDb3VudGVyOyB9Cisg
ICAgICAgIHVpbnQzMl90KiBhZGRyZXNzT2ZGb3JjZWRPU1JFeGl0Q291bnRlcigpIHsgcmV0dXJu
ICZtX2ZvcmNlZE9TUkV4aXRDb3VudGVyOyB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgcHRy
ZGlmZl90IG9mZnNldE9mU3BlY3VsYXRpdmVTdWNjZXNzQ291bnRlcigpIHsgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihDb2RlQmxvY2ssIG1fc3BlY3VsYXRpdmVTdWNjZXNzQ291bnRlcik7IH0KICAg
ICAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlNwZWN1bGF0aXZlRmFpbENvdW50ZXIoKSB7
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoQ29kZUJsb2NrLCBtX3NwZWN1bGF0aXZlRmFpbENvdW50
ZXIpOyB9CisgICAgICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZGb3JjZWRPU1JFeGl0Q291
bnRlcigpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihDb2RlQmxvY2ssIG1fZm9yY2VkT1NSRXhp
dENvdW50ZXIpOyB9CiAKICNpZiBFTkFCTEUoSklUKQogICAgICAgICAvLyBUaGUgbnVtYmVyIG9m
IGZhaWx1cmVzIHRoYXQgdHJpZ2dlcnMgdGhlIHVzZSBvZiB0aGUgcmF0aW8uCkBAIC0xMDIwLDEy
ICsxMDIzLDIwIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIGJvb2wgc2hvdWxkUmVvcHRp
bWl6ZU5vdygpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBPcHRpb25zOjpkZXNpcmVk
U3BlY3VsYXRpdmVTdWNjZXNzRmFpbFJhdGlvICogc3BlY3VsYXRpdmVGYWlsQ291bnRlcigpID49
IHNwZWN1bGF0aXZlU3VjY2Vzc0NvdW50ZXIoKSAmJiBzcGVjdWxhdGl2ZUZhaWxDb3VudGVyKCkg
Pj0gbGFyZ2VGYWlsQ291bnRUaHJlc2hvbGQoKTsKKyAgICAgICAgICAgIHJldHVybiAoT3B0aW9u
czo6ZGVzaXJlZFNwZWN1bGF0aXZlU3VjY2Vzc0ZhaWxSYXRpbyAqCisgICAgICAgICAgICAgICAg
ICAgICAgICBzcGVjdWxhdGl2ZUZhaWxDb3VudGVyKCkgPj0gc3BlY3VsYXRpdmVTdWNjZXNzQ291
bnRlcigpCisgICAgICAgICAgICAgICAgICAgICYmIHNwZWN1bGF0aXZlRmFpbENvdW50ZXIoKSA+
PSBsYXJnZUZhaWxDb3VudFRocmVzaG9sZCgpKQorICAgICAgICAgICAgICAgIHx8IGZvcmNlZE9T
UkV4aXRDb3VudGVyKCkgPj0KKyAgICAgICAgICAgICAgICAgICAgICAgT3B0aW9uczo6Zm9yY2Vk
T1NSRXhpdENvdW50Rm9yUmVvcHRpbWl6YXRpb247CiAgICAgICAgIH0KIAogICAgICAgICBib29s
IHNob3VsZFJlb3B0aW1pemVGcm9tTG9vcE5vdygpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBPcHRpb25zOjpkZXNpcmVkU3BlY3VsYXRpdmVTdWNjZXNzRmFpbFJhdGlvICogc3BlY3Vs
YXRpdmVGYWlsQ291bnRlcigpID49IHNwZWN1bGF0aXZlU3VjY2Vzc0NvdW50ZXIoKSAmJiBzcGVj
dWxhdGl2ZUZhaWxDb3VudGVyKCkgPj0gbGFyZ2VGYWlsQ291bnRUaHJlc2hvbGRGb3JMb29wKCk7
CisgICAgICAgICAgICByZXR1cm4gKE9wdGlvbnM6OmRlc2lyZWRTcGVjdWxhdGl2ZVN1Y2Nlc3NG
YWlsUmF0aW8gKgorICAgICAgICAgICAgICAgICAgICAgICAgc3BlY3VsYXRpdmVGYWlsQ291bnRl
cigpID49IHNwZWN1bGF0aXZlU3VjY2Vzc0NvdW50ZXIoKQorICAgICAgICAgICAgICAgICAgICAm
JiBzcGVjdWxhdGl2ZUZhaWxDb3VudGVyKCkgPj0gbGFyZ2VGYWlsQ291bnRUaHJlc2hvbGRGb3JM
b29wKCkpCisgICAgICAgICAgICAgICAgfHwgZm9yY2VkT1NSRXhpdENvdW50ZXIoKSA+PQorICAg
ICAgICAgICAgICAgICAgICAgICBPcHRpb25zOjpmb3JjZWRPU1JFeGl0Q291bnRGb3JSZW9wdGlt
aXphdGlvbjsKICAgICAgICAgfQogI2VuZGlmCiAKQEAgLTEyMjgsNiArMTIzOSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBpbnQzMl90IG1fdG90YWxKSVRFeGVjdXRpb25zOwogICAgICAg
ICB1aW50MzJfdCBtX3NwZWN1bGF0aXZlU3VjY2Vzc0NvdW50ZXI7CiAgICAgICAgIHVpbnQzMl90
IG1fc3BlY3VsYXRpdmVGYWlsQ291bnRlcjsKKyAgICAgICAgdWludDMyX3QgbV9mb3JjZWRPU1JF
eGl0Q291bnRlcjsKICAgICAgICAgdWludDE2X3QgbV9vcHRpbWl6YXRpb25EZWxheUNvdW50ZXI7
CiAgICAgICAgIHVpbnQxNl90IG1fcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXI7CiAgICAgICAg
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9m
aWxlLmgJKHJldmlzaW9uIDExMzI2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9ERkdFeGl0UHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIGVudW0g
RXhpdEtpbmQgewogICAgIEJhZENhY2hlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBhbiBpbmxpbmUg
Y2FjaGUgd2FzIHdyb25nLgogICAgIE92ZXJmbG93LCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBvZiBv
dmVyZmxvdy4KICAgICBOZWdhdGl2ZVplcm8sIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIGVuY291
bnRlcmVkIG5lZ2F0aXZlIHplcm8uCisgICAgSW5hZGVxdWF0ZUNvdmVyYWdlLCAvLyBXZSBleGl0
ZWQgYmVjYXVzZSB3ZSBlbmRlZCB1cCBpbiBjb2RlIHRoYXQgZGlkbid0IGhhdmUgcHJvZmlsaW5n
IGNvdmVyYWdlLgogICAgIFVuY291bnRhYmxlLCAvLyBXZSBleGl0ZWQgZm9yIG5vbmUgb2YgdGhl
IGFib3ZlIHJlYXNvbnMsIGFuZCB3ZSBzaG91bGQgbm90IGNvdW50IGl0LiBNb3N0IHVzZXMgb2Yg
dGhpcyBzaG91bGQgYmUgdmlld2VkIGFzIGEgRklYTUUuCiB9OwogCkBAIC01NCw2ICs1NSw4IEBA
IGlubGluZSBjb25zdCBjaGFyKiBleGl0S2luZFRvU3RyaW5nKEV4aXQKICAgICAgICAgcmV0dXJu
ICJPdmVyZmxvdyI7CiAgICAgY2FzZSBOZWdhdGl2ZVplcm86CiAgICAgICAgIHJldHVybiAiTmVn
YXRpdmVaZXJvIjsKKyAgICBjYXNlIEluYWRlcXVhdGVDb3ZlcmFnZToKKyAgICAgICAgcmV0dXJu
ICJJbmFkZXF1YXRlQ292ZXJhZ2UiOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAiVW5r
bm93biI7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
Q29tcGlsZXIzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAJKHJldmlzaW9uIDExMzI2OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01NjIsNDIgKzU2Miw3IEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxl
RXhpdChjb25zdCAKICAgICAvLyAgICAgY291bnRlciB0byAwOyBvdGhlcndpc2Ugd2Ugc2V0IHRo
ZSBjb3VudGVyIHRvCiAgICAgLy8gICAgIGNvdW50ZXJWYWx1ZUZvck9wdGltaXplQWZ0ZXJXYXJt
VXAoKS4KICAgICAKLSAgICBtX2ppdC5hZGQzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0z
MigxKSwgQXNzZW1ibHlIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MoJmV4aXQubV9jb3VudCkpOwot
ICAgIAotICAgIG1faml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1faml0
LmNvZGVCbG9jaygpKSwgR1BSSW5mbzo6cmVnVDApOwotICAgIAotICAgIG1faml0LmxvYWQzMihB
c3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIENvZGVCbG9jazo6b2Zmc2V0
T2ZTcGVjdWxhdGl2ZUZhaWxDb3VudGVyKCkpLCBHUFJJbmZvOjpyZWdUMik7Ci0gICAgbV9qaXQu
bG9hZDMyKEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgQ29kZUJsb2Nr
OjpvZmZzZXRPZlNwZWN1bGF0aXZlU3VjY2Vzc0NvdW50ZXIoKSksIEdQUkluZm86OnJlZ1QxKTsK
LSAgICBtX2ppdC5hZGQzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgR1BSSW5m
bzo6cmVnVDIpOwotICAgIG1faml0LmFkZDMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMy
KC0xKSwgR1BSSW5mbzo6cmVnVDEpOwotICAgIG1faml0LnN0b3JlMzIoR1BSSW5mbzo6cmVnVDIs
IEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgQ29kZUJsb2NrOjpvZmZz
ZXRPZlNwZWN1bGF0aXZlRmFpbENvdW50ZXIoKSkpOwotICAgIG1faml0LnN0b3JlMzIoR1BSSW5m
bzo6cmVnVDEsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgQ29kZUJs
b2NrOjpvZmZzZXRPZlNwZWN1bGF0aXZlU3VjY2Vzc0NvdW50ZXIoKSkpOwotICAgIAotICAgIG1f
aml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1faml0LmJhc2VsaW5lQ29k
ZUJsb2NrKCkpLCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgCi0gICAgQXNzZW1ibHlIZWxwZXJzOjpK
dW1wIGZld0ZhaWxzID0gbV9qaXQuYnJhbmNoMzIoQXNzZW1ibHlIZWxwZXJzOjpCZWxvd09yRXF1
YWwsIEdQUkluZm86OnJlZ1QyLCBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihtX2ppdC5j
b2RlQmxvY2soKS0+bGFyZ2VGYWlsQ291bnRUaHJlc2hvbGQoKSkpOwotICAgIG1faml0Lm11bDMy
KEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKE9wdGlvbnM6OmRlc2lyZWRTcGVjdWxhdGl2
ZVN1Y2Nlc3NGYWlsUmF0aW8pLCBHUFJJbmZvOjpyZWdUMiwgR1BSSW5mbzo6cmVnVDIpOwotICAg
IAotICAgIEFzc2VtYmx5SGVscGVyczo6SnVtcCBsb3dGYWlsUmF0ZSA9IG1faml0LmJyYW5jaDMy
KEFzc2VtYmx5SGVscGVyczo6QmVsb3dPckVxdWFsLCBHUFJJbmZvOjpyZWdUMiwgR1BSSW5mbzo6
cmVnVDEpOwotICAgIAotICAgIC8vIFJlb3B0aW1pemUgYXMgc29vbiBhcyBwb3NzaWJsZS4KLSAg
ICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBBc3NlbWJs
eUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIENvZGVCbG9jazo6b2Zmc2V0T2ZKSVRF
eGVjdXRlQ291bnRlcigpKSk7Ci0gICAgbV9qaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRy
dXN0ZWRJbW0zMigwKSwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBD
b2RlQmxvY2s6Om9mZnNldE9mSklURXhlY3V0aW9uQWN0aXZlVGhyZXNob2xkKCkpKTsKLSAgICBB
c3NlbWJseUhlbHBlcnM6Okp1bXAgZG9uZUFkanVzdGluZyA9IG1faml0Lmp1bXAoKTsKLSAgICAK
LSAgICBmZXdGYWlscy5saW5rKCZtX2ppdCk7Ci0gICAgbG93RmFpbFJhdGUubGluaygmbV9qaXQp
OwotICAgIAotICAgIC8vIEFkanVzdCB0aGUgZXhlY3V0aW9uIGNvdW50ZXIgc3VjaCB0aGF0IHRo
ZSB0YXJnZXQgaXMgdG8gb25seSBvcHRpbWl6ZSBhZnRlciBhIHdoaWxlLgotICAgIGludDMyX3Qg
dGFyZ2V0VmFsdWUgPQotICAgICAgICBFeGVjdXRpb25Db3VudGVyOjphcHBseU1lbW9yeVVzYWdl
SGV1cmlzdGljc0FuZENvbnZlcnRUb0ludCgKLSAgICAgICAgICAgIG1faml0LmJhc2VsaW5lQ29k
ZUJsb2NrKCktPmNvdW50ZXJWYWx1ZUZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCksCi0gICAg
ICAgICAgICBtX2ppdC5iYXNlbGluZUNvZGVCbG9jaygpKTsKLSAgICBtX2ppdC5zdG9yZTMyKEFz
c2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKC10YXJnZXRWYWx1ZSksIEFzc2VtYmx5SGVscGVy
czo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgQ29kZUJsb2NrOjpvZmZzZXRPZkpJVEV4ZWN1dGVD
b3VudGVyKCkpKTsKLSAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZElt
bTMyKHRhcmdldFZhbHVlKSwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1Qw
LCBDb2RlQmxvY2s6Om9mZnNldE9mSklURXhlY3V0aW9uQWN0aXZlVGhyZXNob2xkKCkpKTsKLSAg
ICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEV4ZWN1dGlvbkNv
dW50ZXI6OmZvcm1hdHRlZFRvdGFsQ291bnQodGFyZ2V0VmFsdWUpKSwgQXNzZW1ibHlIZWxwZXJz
OjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBDb2RlQmxvY2s6Om9mZnNldE9mSklURXhlY3V0aW9u
VG90YWxDb3VudCgpKSk7Ci0gICAgCi0gICAgZG9uZUFkanVzdGluZy5saW5rKCZtX2ppdCk7Cisg
ICAgaGFuZGxlRXhpdENvdW50cyhleGl0KTsKICAgICAKICAgICAvLyAxMikgTG9hZCB0aGUgcmVz
dWx0IG9mIHRoZSBsYXN0IGJ5dGVjb2RlIG9wZXJhdGlvbiBpbnRvIHJlZ1QwLgogICAgIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2
NC5jcHAJKHJldmlzaW9uIDExMzI2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDEsNDIgKzU0MSw3IEBA
IHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCAKICAgICAvLyAgICAgY291
bnRlciB0byAwOyBvdGhlcndpc2Ugd2Ugc2V0IHRoZSBjb3VudGVyIHRvCiAgICAgLy8gICAgIGNv
dW50ZXJWYWx1ZUZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKS4KICAgICAKLSAgICBtX2ppdC5hZGQz
MihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgQXNzZW1ibHlIZWxwZXJzOjpBYnNv
bHV0ZUFkZHJlc3MoJmV4aXQubV9jb3VudCkpOwotICAgIAotICAgIG1faml0Lm1vdmUoQXNzZW1i
bHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1faml0LmNvZGVCbG9jaygpKSwgR1BSSW5mbzo6cmVn
VDApOwotICAgIAotICAgIG1faml0LmxvYWQzMihBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BS
SW5mbzo6cmVnVDAsIENvZGVCbG9jazo6b2Zmc2V0T2ZTcGVjdWxhdGl2ZUZhaWxDb3VudGVyKCkp
LCBHUFJJbmZvOjpyZWdUMik7Ci0gICAgbV9qaXQubG9hZDMyKEFzc2VtYmx5SGVscGVyczo6QWRk
cmVzcyhHUFJJbmZvOjpyZWdUMCwgQ29kZUJsb2NrOjpvZmZzZXRPZlNwZWN1bGF0aXZlU3VjY2Vz
c0NvdW50ZXIoKSksIEdQUkluZm86OnJlZ1QxKTsKLSAgICBtX2ppdC5hZGQzMihBc3NlbWJseUhl
bHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgR1BSSW5mbzo6cmVnVDIpOwotICAgIG1faml0LmFkZDMy
KEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKC0xKSwgR1BSSW5mbzo6cmVnVDEpOwotICAg
IG1faml0LnN0b3JlMzIoR1BSSW5mbzo6cmVnVDIsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhH
UFJJbmZvOjpyZWdUMCwgQ29kZUJsb2NrOjpvZmZzZXRPZlNwZWN1bGF0aXZlRmFpbENvdW50ZXIo
KSkpOwotICAgIG1faml0LnN0b3JlMzIoR1BSSW5mbzo6cmVnVDEsIEFzc2VtYmx5SGVscGVyczo6
QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgQ29kZUJsb2NrOjpvZmZzZXRPZlNwZWN1bGF0aXZlU3Vj
Y2Vzc0NvdW50ZXIoKSkpOwotICAgIAotICAgIG1faml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKG1faml0LmJhc2VsaW5lQ29kZUJsb2NrKCkpLCBHUFJJbmZvOjpyZWdUMCk7
Ci0gICAgCi0gICAgQXNzZW1ibHlIZWxwZXJzOjpKdW1wIGZld0ZhaWxzID0gbV9qaXQuYnJhbmNo
MzIoQXNzZW1ibHlIZWxwZXJzOjpCZWxvd09yRXF1YWwsIEdQUkluZm86OnJlZ1QyLCBBc3NlbWJs
eUhlbHBlcnM6OlRydXN0ZWRJbW0zMihtX2ppdC5jb2RlQmxvY2soKS0+bGFyZ2VGYWlsQ291bnRU
aHJlc2hvbGQoKSkpOwotICAgIG1faml0Lm11bDMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZElt
bTMyKE9wdGlvbnM6OmRlc2lyZWRTcGVjdWxhdGl2ZVN1Y2Nlc3NGYWlsUmF0aW8pLCBHUFJJbmZv
OjpyZWdUMiwgR1BSSW5mbzo6cmVnVDIpOwotICAgIAotICAgIEFzc2VtYmx5SGVscGVyczo6SnVt
cCBsb3dGYWlsUmF0ZSA9IG1faml0LmJyYW5jaDMyKEFzc2VtYmx5SGVscGVyczo6QmVsb3dPckVx
dWFsLCBHUFJJbmZvOjpyZWdUMiwgR1BSSW5mbzo6cmVnVDEpOwotICAgIAotICAgIC8vIFJlb3B0
aW1pemUgYXMgc29vbiBhcyBwb3NzaWJsZS4KLSAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbTMyKDApLCBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6
cmVnVDAsIENvZGVCbG9jazo6b2Zmc2V0T2ZKSVRFeGVjdXRlQ291bnRlcigpKSk7Ci0gICAgbV9q
aXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgQXNzZW1ibHlIZWxw
ZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBDb2RlQmxvY2s6Om9mZnNldE9mSklURXhlY3V0
aW9uQWN0aXZlVGhyZXNob2xkKCkpKTsKLSAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXAgZG9uZUFk
anVzdGluZyA9IG1faml0Lmp1bXAoKTsKLSAgICAKLSAgICBmZXdGYWlscy5saW5rKCZtX2ppdCk7
Ci0gICAgbG93RmFpbFJhdGUubGluaygmbV9qaXQpOwotICAgIAotICAgIC8vIEFkanVzdCB0aGUg
ZXhlY3V0aW9uIGNvdW50ZXIgc3VjaCB0aGF0IHRoZSB0YXJnZXQgaXMgdG8gb25seSBvcHRpbWl6
ZSBhZnRlciBhIHdoaWxlLgotICAgIGludDMyX3QgdGFyZ2V0VmFsdWUgPQotICAgICAgICBFeGVj
dXRpb25Db3VudGVyOjphcHBseU1lbW9yeVVzYWdlSGV1cmlzdGljc0FuZENvbnZlcnRUb0ludCgK
LSAgICAgICAgICAgIG1faml0LmJhc2VsaW5lQ29kZUJsb2NrKCktPmNvdW50ZXJWYWx1ZUZvck9w
dGltaXplQWZ0ZXJMb25nV2FybVVwKCksCi0gICAgICAgICAgICBtX2ppdC5iYXNlbGluZUNvZGVC
bG9jaygpKTsKLSAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMy
KC10YXJnZXRWYWx1ZSksIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwg
Q29kZUJsb2NrOjpvZmZzZXRPZkpJVEV4ZWN1dGVDb3VudGVyKCkpKTsKLSAgICBtX2ppdC5zdG9y
ZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKHRhcmdldFZhbHVlKSwgQXNzZW1ibHlI
ZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBDb2RlQmxvY2s6Om9mZnNldE9mSklURXhl
Y3V0aW9uQWN0aXZlVGhyZXNob2xkKCkpKTsKLSAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbTMyKEV4ZWN1dGlvbkNvdW50ZXI6OmZvcm1hdHRlZFRvdGFsQ291bnQo
dGFyZ2V0VmFsdWUpKSwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBD
b2RlQmxvY2s6Om9mZnNldE9mSklURXhlY3V0aW9uVG90YWxDb3VudCgpKSk7Ci0gICAgCi0gICAg
ZG9uZUFkanVzdGluZy5saW5rKCZtX2ppdCk7CisgICAgaGFuZGxlRXhpdENvdW50cyhleGl0KTsK
ICAgICAKICAgICAvLyAxNCkgTG9hZCB0aGUgcmVzdWx0IG9mIHRoZSBsYXN0IGJ5dGVjb2RlIG9w
ZXJhdGlvbiBpbnRvIHJlZ1QwLgogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcAkocmV2aXNpb24gMTEzMjY5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05NSw2ICs5NSw2NCBAQCB2b2lkIGNvbXBpbGVPU1JFeGl0KEV4ZWNTdGF0ZSogZXhl
YykKIAogfSAvLyBleHRlcm4gIkMiCiAKK3ZvaWQgT1NSRXhpdENvbXBpbGVyOjpoYW5kbGVFeGl0
Q291bnRzKGNvbnN0IE9TUkV4aXQmIGV4aXQpCit7CisgICAgbV9qaXQuYWRkMzIoQXNzZW1ibHlI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSksIEFzc2VtYmx5SGVscGVyczo6QWJzb2x1dGVBZGRyZXNz
KCZleGl0Lm1fY291bnQpKTsKKyAgICAKKyAgICBtX2ppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6
VHJ1c3RlZEltbVB0cihtX2ppdC5jb2RlQmxvY2soKSksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAK
KyAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXBMaXN0IHRvb0Zld0ZhaWxzOworICAgIAorICAgIGlm
IChleGl0Lm1fa2luZCA9PSBJbmFkZXF1YXRlQ292ZXJhZ2UpIHsKKyAgICAgICAgLy8gUHJvY2Vl
ZCBiYXNlZCBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHdlIGNhbiBwcm9maXRhYmx5IG9wdGltaXpl
IHRoaXMgY29kZSBvbmNlCisgICAgICAgIC8vIGl0IGhhcyBleGVjdXRlZCBlbm91Z2ggdGltZXMu
CisgICAgICAgIAorICAgICAgICBtX2ppdC5sb2FkMzIoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNz
KEdQUkluZm86OnJlZ1QwLCBDb2RlQmxvY2s6Om9mZnNldE9mRm9yY2VkT1NSRXhpdENvdW50ZXIo
KSksIEdQUkluZm86OnJlZ1QyKTsKKyAgICAgICAgbV9qaXQubG9hZDMyKEFzc2VtYmx5SGVscGVy
czo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgQ29kZUJsb2NrOjpvZmZzZXRPZlNwZWN1bGF0aXZl
U3VjY2Vzc0NvdW50ZXIoKSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICAgICAgbV9qaXQuYWRkMzIo
QXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSksIEdQUkluZm86OnJlZ1QyKTsKKyAgICAg
ICAgbV9qaXQuYWRkMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoLTEpLCBHUFJJbmZv
OjpyZWdUMSk7CisgICAgICAgIG1faml0LnN0b3JlMzIoR1BSSW5mbzo6cmVnVDIsIEFzc2VtYmx5
SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgQ29kZUJsb2NrOjpvZmZzZXRPZkZvcmNl
ZE9TUkV4aXRDb3VudGVyKCkpKTsKKyAgICAgICAgbV9qaXQuc3RvcmUzMihHUFJJbmZvOjpyZWdU
MSwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBDb2RlQmxvY2s6Om9m
ZnNldE9mU3BlY3VsYXRpdmVTdWNjZXNzQ291bnRlcigpKSk7CisgICAgICAgIAorICAgICAgICB0
b29GZXdGYWlscy5hcHBlbmQobV9qaXQuYnJhbmNoMzIoQXNzZW1ibHlIZWxwZXJzOjpCZWxvd09y
RXF1YWwsIEdQUkluZm86OnJlZ1QyLCBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihPcHRp
b25zOjpmb3JjZWRPU1JFeGl0Q291bnRGb3JSZW9wdGltaXphdGlvbikpKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICAvLyBQcm9jZWVkIGJhc2VkIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgd2UgY2Fu
IGhhbmRsZSB0aGVzZSBleGl0cyBzbyBsb25nIGFzIHRoZXkKKyAgICAgICAgLy8gZG9uJ3QgZ2V0
IHRvbyBmcmVxdWVudC4KKyAgICAgICAgCisgICAgICAgIG1faml0LmxvYWQzMihBc3NlbWJseUhl
bHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIENvZGVCbG9jazo6b2Zmc2V0T2ZTcGVjdWxh
dGl2ZUZhaWxDb3VudGVyKCkpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgICAgIG1faml0LmxvYWQz
MihBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIENvZGVCbG9jazo6b2Zm
c2V0T2ZTcGVjdWxhdGl2ZVN1Y2Nlc3NDb3VudGVyKCkpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAg
ICAgIG1faml0LmFkZDMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBHUFJJbmZv
OjpyZWdUMik7CisgICAgICAgIG1faml0LmFkZDMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZElt
bTMyKC0xKSwgR1BSSW5mbzo6cmVnVDEpOworICAgICAgICBtX2ppdC5zdG9yZTMyKEdQUkluZm86
OnJlZ1QyLCBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIENvZGVCbG9j
azo6b2Zmc2V0T2ZTcGVjdWxhdGl2ZUZhaWxDb3VudGVyKCkpKTsKKyAgICAgICAgbV9qaXQuc3Rv
cmUzMihHUFJJbmZvOjpyZWdUMSwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJl
Z1QwLCBDb2RlQmxvY2s6Om9mZnNldE9mU3BlY3VsYXRpdmVTdWNjZXNzQ291bnRlcigpKSk7Cisg
ICAgCisgICAgICAgIG1faml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1f
aml0LmJhc2VsaW5lQ29kZUJsb2NrKCkpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgCisgICAgICAg
IHRvb0Zld0ZhaWxzLmFwcGVuZChtX2ppdC5icmFuY2gzMihBc3NlbWJseUhlbHBlcnM6OkJlbG93
T3JFcXVhbCwgR1BSSW5mbzo6cmVnVDIsIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKG1f
aml0LmNvZGVCbG9jaygpLT5sYXJnZUZhaWxDb3VudFRocmVzaG9sZCgpKSkpOworICAgICAgICBt
X2ppdC5tdWwzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihPcHRpb25zOjpkZXNpcmVk
U3BlY3VsYXRpdmVTdWNjZXNzRmFpbFJhdGlvKSwgR1BSSW5mbzo6cmVnVDIsIEdQUkluZm86OnJl
Z1QyKTsKKyAgICAKKyAgICAgICAgdG9vRmV3RmFpbHMuYXBwZW5kKG1faml0LmJyYW5jaDMyKEFz
c2VtYmx5SGVscGVyczo6QmVsb3dPckVxdWFsLCBHUFJJbmZvOjpyZWdUMiwgR1BSSW5mbzo6cmVn
VDEpKTsKKyAgICB9CisKKyAgICAvLyBSZW9wdGltaXplIGFzIHNvb24gYXMgcG9zc2libGUuCisg
ICAgbV9qaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgQXNzZW1i
bHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBDb2RlQmxvY2s6Om9mZnNldE9mSklU
RXhlY3V0ZUNvdW50ZXIoKSkpOworICAgIG1faml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoMCksIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwg
Q29kZUJsb2NrOjpvZmZzZXRPZkpJVEV4ZWN1dGlvbkFjdGl2ZVRocmVzaG9sZCgpKSk7CisgICAg
QXNzZW1ibHlIZWxwZXJzOjpKdW1wIGRvbmVBZGp1c3RpbmcgPSBtX2ppdC5qdW1wKCk7CisgICAg
CisgICAgdG9vRmV3RmFpbHMubGluaygmbV9qaXQpOworICAgIAorICAgIC8vIEFkanVzdCB0aGUg
ZXhlY3V0aW9uIGNvdW50ZXIgc3VjaCB0aGF0IHRoZSB0YXJnZXQgaXMgdG8gb25seSBvcHRpbWl6
ZSBhZnRlciBhIHdoaWxlLgorICAgIGludDMyX3QgdGFyZ2V0VmFsdWUgPQorICAgICAgICBFeGVj
dXRpb25Db3VudGVyOjphcHBseU1lbW9yeVVzYWdlSGV1cmlzdGljc0FuZENvbnZlcnRUb0ludCgK
KyAgICAgICAgICAgIG1faml0LmJhc2VsaW5lQ29kZUJsb2NrKCktPmNvdW50ZXJWYWx1ZUZvck9w
dGltaXplQWZ0ZXJMb25nV2FybVVwKCksCisgICAgICAgICAgICBtX2ppdC5iYXNlbGluZUNvZGVC
bG9jaygpKTsKKyAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMy
KC10YXJnZXRWYWx1ZSksIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwg
Q29kZUJsb2NrOjpvZmZzZXRPZkpJVEV4ZWN1dGVDb3VudGVyKCkpKTsKKyAgICBtX2ppdC5zdG9y
ZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKHRhcmdldFZhbHVlKSwgQXNzZW1ibHlI
ZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBDb2RlQmxvY2s6Om9mZnNldE9mSklURXhl
Y3V0aW9uQWN0aXZlVGhyZXNob2xkKCkpKTsKKyAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbTMyKEV4ZWN1dGlvbkNvdW50ZXI6OmZvcm1hdHRlZFRvdGFsQ291bnQo
dGFyZ2V0VmFsdWUpKSwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBD
b2RlQmxvY2s6Om9mZnNldE9mSklURXhlY3V0aW9uVG90YWxDb3VudCgpKSk7CisgICAgCisgICAg
ZG9uZUFkanVzdGluZy5saW5rKCZtX2ppdCk7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpE
RkcKIAogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5oCShyZXZpc2lvbiAxMTMyNjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC03MCw2ICs3MCw4IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogICAgIAorICAgIHZvaWQgaGFuZGxlRXhpdENvdW50cyhjb25zdCBPU1JFeGl0Jik7Cisg
ICAgCiAgICAgQXNzZW1ibHlIZWxwZXJzJiBtX2ppdDsKICAgICBWZWN0b3I8dW5zaWduZWQ+IG1f
cG9pc29uU2NyYXRjaEluZGljZXM7CiB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxMTMyNjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIzLDcg
KzExMjMsMTcgQEAgdm9pZCBERkdfT1BFUkFUSU9OIGRlYnVnT3BlcmF0aW9uUHJpbnRTcAogICAg
IFNwZWN1bGF0aW9uRmFpbHVyZURlYnVnSW5mbyogZGVidWdJbmZvID0gc3RhdGljX2Nhc3Q8U3Bl
Y3VsYXRpb25GYWlsdXJlRGVidWdJbmZvKj4oZGVidWdJbmZvUmF3KTsKICAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jayA9IGRlYnVnSW5mby0+Y29kZUJsb2NrOwogICAgIENvZGVCbG9jayogYWx0ZXJu
YXRpdmUgPSBjb2RlQmxvY2stPmFsdGVybmF0aXZlKCk7Ci0gICAgZGF0YUxvZygiU3BlY3VsYXRp
b24gZmFpbHVyZSBpbiAlcCBhdCBAJXUgd2l0aCBleGVjdXRlQ291bnRlciA9ICVkLCByZW9wdGlt
aXphdGlvblJldHJ5Q291bnRlciA9ICV1LCBvcHRpbWl6YXRpb25EZWxheUNvdW50ZXIgPSAldSwg
c3VjY2Vzcy9mYWlsICV1LyV1XG4iLCBjb2RlQmxvY2ssIGRlYnVnSW5mby0+bm9kZUluZGV4LCBh
bHRlcm5hdGl2ZSA/IGFsdGVybmF0aXZlLT5qaXRFeGVjdXRlQ291bnRlcigpIDogMCwgYWx0ZXJu
YXRpdmUgPyBhbHRlcm5hdGl2ZS0+cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXIoKSA6IDAsIGFs
dGVybmF0aXZlID8gYWx0ZXJuYXRpdmUtPm9wdGltaXphdGlvbkRlbGF5Q291bnRlcigpIDogMCwg
Y29kZUJsb2NrLT5zcGVjdWxhdGl2ZVN1Y2Nlc3NDb3VudGVyKCksIGNvZGVCbG9jay0+c3BlY3Vs
YXRpdmVGYWlsQ291bnRlcigpKTsKKyAgICBkYXRhTG9nKCJTcGVjdWxhdGlvbiBmYWlsdXJlIGlu
ICVwIGF0IEAldSB3aXRoIGV4ZWN1dGVDb3VudGVyID0gJWQsICIKKyAgICAgICAgICAgICJyZW9w
dGltaXphdGlvblJldHJ5Q291bnRlciA9ICV1LCBvcHRpbWl6YXRpb25EZWxheUNvdW50ZXIgPSAl
dSwgIgorICAgICAgICAgICAgInN1Y2Nlc3MvZmFpbCAldS8oJXUrJXUpXG4iLAorICAgICAgICAg
ICAgY29kZUJsb2NrLAorICAgICAgICAgICAgZGVidWdJbmZvLT5ub2RlSW5kZXgsCisgICAgICAg
ICAgICBhbHRlcm5hdGl2ZSA/IGFsdGVybmF0aXZlLT5qaXRFeGVjdXRlQ291bnRlcigpIDogMCwK
KyAgICAgICAgICAgIGFsdGVybmF0aXZlID8gYWx0ZXJuYXRpdmUtPnJlb3B0aW1pemF0aW9uUmV0
cnlDb3VudGVyKCkgOiAwLAorICAgICAgICAgICAgYWx0ZXJuYXRpdmUgPyBhbHRlcm5hdGl2ZS0+
b3B0aW1pemF0aW9uRGVsYXlDb3VudGVyKCkgOiAwLAorICAgICAgICAgICAgY29kZUJsb2NrLT5z
cGVjdWxhdGl2ZVN1Y2Nlc3NDb3VudGVyKCksCisgICAgICAgICAgICBjb2RlQmxvY2stPnNwZWN1
bGF0aXZlRmFpbENvdW50ZXIoKSwKKyAgICAgICAgICAgIGNvZGVCbG9jay0+Zm9yY2VkT1NSRXhp
dENvdW50ZXIoKSk7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAxMTMyNjkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xODAyLDcgKzE4MDIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUmIG5vZGUpCiAKICAgICAgICAgLy8gSWYgd2UgaGF2ZSBubyBwcmVkaWN0
aW9uIGZvciB0aGlzIGxvY2FsLCB0aGVuIGRvbid0IGF0dGVtcHQgdG8gY29tcGlsZS4KICAgICAg
ICAgaWYgKHByZWRpY3Rpb24gPT0gUHJlZGljdE5vbmUgfHwgdmFsdWUuaXNDbGVhcigpKSB7Ci0g
ICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihVbmNvdW50YWJsZSwgSlNW
YWx1ZVJlZ3MoKSwgTm9Ob2RlKTsKKyAgICAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhl
Y3V0aW9uKEluYWRlcXVhdGVDb3ZlcmFnZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMjIzNCw3ICsyMjM0LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogCiAgICAgY2FzZSBHZXRC
eVZhbDogewogICAgICAgICBpZiAoIW5vZGUucHJlZGljdGlvbigpIHx8ICFhdChub2RlLmNoaWxk
MSgpKS5wcmVkaWN0aW9uKCkgfHwgIWF0KG5vZGUuY2hpbGQyKCkpLnByZWRpY3Rpb24oKSkgewot
ICAgICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpT
VmFsdWVSZWdzKCksIE5vTm9kZSk7CisgICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4
ZWN1dGlvbihJbmFkZXF1YXRlQ292ZXJhZ2UsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAKQEAgLTIzNjcsNyArMjM2Nyw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKIAogICAgIGNhc2UgUHV0
QnlWYWw6IHsKICAgICAgICAgaWYgKCFhdChub2RlLmNoaWxkMSgpKS5wcmVkaWN0aW9uKCkgfHwg
IWF0KG5vZGUuY2hpbGQyKCkpLnByZWRpY3Rpb24oKSkgewotICAgICAgICAgICAgdGVybWluYXRl
U3BlY3VsYXRpdmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7
CisgICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihJbmFkZXF1YXRlQ292
ZXJhZ2UsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICAKQEAgLTI1MjcsNyArMjUyNyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUoTm9kZSYgbm9kZSkKIAogICAgIGNhc2UgUHV0QnlWYWxBbGlhczogewogICAgICAg
ICBpZiAoIWF0KG5vZGUuY2hpbGQxKCkpLnByZWRpY3Rpb24oKSB8fCAhYXQobm9kZS5jaGlsZDIo
KSkucHJlZGljdGlvbigpKSB7Ci0gICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1
dGlvbihVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlKTsKKyAgICAgICAgICAgIHRl
cm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKEluYWRlcXVhdGVDb3ZlcmFnZSwgSlNWYWx1ZVJl
Z3MoKSwgTm9Ob2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIApA
QCAtMzE3NCw3ICszMTc0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBu
b2RlKQogICAgICAgICAKICAgICBjYXNlIEdldEJ5SWQ6IHsKICAgICAgICAgaWYgKCFub2RlLnBy
ZWRpY3Rpb24oKSkgewotICAgICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24o
VW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7CisgICAgICAgICAgICB0ZXJtaW5h
dGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihJbmFkZXF1YXRlQ292ZXJhZ2UsIEpTVmFsdWVSZWdzKCks
IE5vTm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAKQEAgLTMy
MjgsNyArMzIyOCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkK
IAogICAgIGNhc2UgR2V0QnlJZEZsdXNoOiB7CiAgICAgICAgIGlmICghbm9kZS5wcmVkaWN0aW9u
KCkpIHsKLSAgICAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRh
YmxlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOworICAgICAgICAgICAgdGVybWluYXRlU3BlY3Vs
YXRpdmVFeGVjdXRpb24oSW5hZGVxdWF0ZUNvdmVyYWdlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgCkBAIC0zNzI3LDcgKzM3
MjcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6IHsKLSAgICAgICAgdGVybWluYXRlU3Bl
Y3VsYXRpdmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7Cisg
ICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKEluYWRlcXVhdGVDb3ZlcmFnZSwg
SlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJ
KHJldmlzaW9uIDExMzI2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5MDUsNyArMTkwNSw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKIAogICAgICAgICAvLyBJZiB3ZSBo
YXZlIG5vIHByZWRpY3Rpb24gZm9yIHRoaXMgbG9jYWwsIHRoZW4gZG9uJ3QgYXR0ZW1wdCB0byBj
b21waWxlLgogICAgICAgICBpZiAocHJlZGljdGlvbiA9PSBQcmVkaWN0Tm9uZSB8fCB2YWx1ZS5p
c0NsZWFyKCkpIHsKLSAgICAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVu
Y291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOworICAgICAgICAgICAgdGVybWluYXRl
U3BlY3VsYXRpdmVFeGVjdXRpb24oSW5hZGVxdWF0ZUNvdmVyYWdlLCBKU1ZhbHVlUmVncygpLCBO
b05vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgCkBAIC0yMjk3
LDcgKzIyOTcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAK
ICAgICBjYXNlIEdldEJ5VmFsOiB7CiAgICAgICAgIGlmICghbm9kZS5wcmVkaWN0aW9uKCkgfHwg
IWF0KG5vZGUuY2hpbGQxKCkpLnByZWRpY3Rpb24oKSB8fCAhYXQobm9kZS5jaGlsZDIoKSkucHJl
ZGljdGlvbigpKSB7Ci0gICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihV
bmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlKTsKKyAgICAgICAgICAgIHRlcm1pbmF0
ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKEluYWRlcXVhdGVDb3ZlcmFnZSwgSlNWYWx1ZVJlZ3MoKSwg
Tm9Ob2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMjQy
Miw3ICsyNDIyLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQog
CiAgICAgY2FzZSBQdXRCeVZhbDogewogICAgICAgICBpZiAoIWF0KG5vZGUuY2hpbGQxKCkpLnBy
ZWRpY3Rpb24oKSB8fCAhYXQobm9kZS5jaGlsZDIoKSkucHJlZGljdGlvbigpKSB7Ci0gICAgICAg
ICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihVbmNvdW50YWJsZSwgSlNWYWx1ZVJl
Z3MoKSwgTm9Ob2RlKTsKKyAgICAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9u
KEluYWRlcXVhdGVDb3ZlcmFnZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMjU3Miw3ICsyNTcyLDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogCiAgICAgY2FzZSBQdXRCeVZhbEFs
aWFzOiB7CiAgICAgICAgIGlmICghYXQobm9kZS5jaGlsZDEoKSkucHJlZGljdGlvbigpIHx8ICFh
dChub2RlLmNoaWxkMigpKS5wcmVkaWN0aW9uKCkpIHsKLSAgICAgICAgICAgIHRlcm1pbmF0ZVNw
ZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOwor
ICAgICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oSW5hZGVxdWF0ZUNvdmVy
YWdlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgCkBAIC0zMTc3LDcgKzMxNzcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUmIG5vZGUpCiAgICAgfQogICAgIGNhc2UgR2V0QnlJZDogewogICAgICAgICBp
ZiAoIW5vZGUucHJlZGljdGlvbigpKSB7Ci0gICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2
ZUV4ZWN1dGlvbihVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlKTsKKyAgICAgICAg
ICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKEluYWRlcXVhdGVDb3ZlcmFnZSwgSlNW
YWx1ZVJlZ3MoKSwgTm9Ob2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIApAQCAtMzIyNyw3ICszMjI3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShO
b2RlJiBub2RlKQogCiAgICAgY2FzZSBHZXRCeUlkRmx1c2g6IHsKICAgICAgICAgaWYgKCFub2Rl
LnByZWRpY3Rpb24oKSkgewotICAgICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRp
b24oVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7CisgICAgICAgICAgICB0ZXJt
aW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihJbmFkZXF1YXRlQ292ZXJhZ2UsIEpTVmFsdWVSZWdz
KCksIE5vTm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAKQEAg
LTM2OTgsNyArMzY5OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9k
ZSkKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEZvcmNlT1NSRXhpdDogewotICAgICAgICB0
ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwg
Tm9Ob2RlKTsKKyAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oSW5hZGVxdWF0
ZUNvdmVyYWdlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOwogICAgICAgICBicmVhazsKICAgICB9
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCShyZXZpc2lvbiAxMTMyNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk3Myw3ICsyOTczLDcgQEAg
Ym9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmljdEVxKE5vZAogdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUdldEluZGV4ZWRQcm9wZXJ0eVN0b3JhZ2UoTm9kZSYgbm9kZSkKIHsKICAg
ICBpZiAoIW5vZGUucHJlZGljdGlvbigpIHx8ICFhdChub2RlLmNoaWxkMSgpKS5wcmVkaWN0aW9u
KCkgfHwgIWF0KG5vZGUuY2hpbGQyKCkpLnByZWRpY3Rpb24oKSkgewotICAgICAgICB0ZXJtaW5h
dGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2Rl
KTsKKyAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oSW5hZGVxdWF0ZUNvdmVy
YWdlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
ICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCShy
ZXZpc2lvbiAxMTMyNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsNyBAQCBkb3VibGUgb3NyRXhpdFByb21p
bmVuY2VGb3JGcmVxdWVudEV4aXRTCiAKIHVuc2lnbmVkIGxhcmdlRmFpbENvdW50VGhyZXNob2xk
QmFzZTsKIHVuc2lnbmVkIGxhcmdlRmFpbENvdW50VGhyZXNob2xkQmFzZUZvckxvb3A7Cit1bnNp
Z25lZCBmb3JjZWRPU1JFeGl0Q291bnRGb3JSZW9wdGltaXphdGlvbjsKIAogdW5zaWduZWQgcmVv
cHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXg7CiB1bnNpZ25lZCByZW9wdGltaXphdGlvblJldHJ5
Q291bnRlclN0ZXA7CkBAIC0xNzQsOCArMTc1LDkgQEAgdm9pZCBpbml0aWFsaXplT3B0aW9ucygp
CiAgICAgCiAgICAgU0VUKG9zckV4aXRQcm9taW5lbmNlRm9yRnJlcXVlbnRFeGl0U2l0ZSwgMC4z
KTsKIAotICAgIFNFVChsYXJnZUZhaWxDb3VudFRocmVzaG9sZEJhc2UsICAgICAgICAyMCk7Ci0g
ICAgU0VUKGxhcmdlRmFpbENvdW50VGhyZXNob2xkQmFzZUZvckxvb3AsIDEpOworICAgIFNFVChs
YXJnZUZhaWxDb3VudFRocmVzaG9sZEJhc2UsICAgICAgICAgMjApOworICAgIFNFVChsYXJnZUZh
aWxDb3VudFRocmVzaG9sZEJhc2VGb3JMb29wLCAgMSk7CisgICAgU0VUKGZvcmNlZE9TUkV4aXRD
b3VudEZvclJlb3B0aW1pemF0aW9uLCAyNTApOwogCiAgICAgU0VUKHJlb3B0aW1pemF0aW9uUmV0
cnlDb3VudGVyU3RlcCwgMSk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zLmgJKHJldmlzaW9uIDExMzI2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEsNyBAQCBleHRlcm4gZG91
YmxlIG9zckV4aXRQcm9taW5lbmNlRm9yRnJlcXVlCiAKIGV4dGVybiB1bnNpZ25lZCBsYXJnZUZh
aWxDb3VudFRocmVzaG9sZEJhc2U7CiBleHRlcm4gdW5zaWduZWQgbGFyZ2VGYWlsQ291bnRUaHJl
c2hvbGRCYXNlRm9yTG9vcDsKK2V4dGVybiB1bnNpZ25lZCBmb3JjZWRPU1JFeGl0Q291bnRGb3JS
ZW9wdGltaXphdGlvbjsKIAogZXh0ZXJuIHVuc2lnbmVkIHJlb3B0aW1pemF0aW9uUmV0cnlDb3Vu
dGVyTWF4OwogZXh0ZXJuIHVuc2lnbmVkIHJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyU3RlcDsK
</data>
<flag name="review"
          id="140367"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>