<?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>210174</bug_id>
          
          <creation_ts>2020-04-07 23:34:18 -0700</creation_ts>
          <short_desc>[JSC] Threading JSGlobalObject in RegExp::match properly</short_desc>
          <delta_ts>2020-04-08 13:01:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>product-security</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1638948</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-07 23:34:18 -0700</bug_when>
    <thetext>[JSC] Threading JSGlobalObject in RegExp::match properly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638949</commentid>
    <comment_count>1</comment_count>
      <attachid>395773</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-07 23:36:01 -0700</bug_when>
    <thetext>Created attachment 395773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638956</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-08 00:16:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/61436342&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639141</commentid>
    <comment_count>3</comment_count>
      <attachid>395773</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-04-08 10:40:08 -0700</bug_when>
    <thetext>Comment on attachment 395773
Patch

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

&gt; Source/JavaScriptCore/runtime/RegExpInlines.h:113
&gt; +        if (nullOrGlobalObject) {

This is the downside of us using JSCell* everywhere instead of JSCell&amp;

When the pointer is actually nullable, we need to name the variable properly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639246</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-08 13:01:51 -0700</bug_when>
    <thetext>Committed r259747: &lt;https://trac.webkit.org/changeset/259747&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395773</attachid>
            <date>2020-04-07 23:36:01 -0700</date>
            <delta_ts>2020-04-08 10:40:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210174-20200407233601.patch</filename>
            <type>text/plain</type>
            <size>25307</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
NTA3MzI5MjM3ODMwOWI1YTM0NmY5OTUwYTdiYTdmZDQ5MzQ0NjQwLi5mZGUzMmE4NDBmZTQ0Nzdk
ZDViYWNjYWNhYTkwNGI0Mjc5MDRhZTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAyMC0wNC0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFRocmVhZGluZyBKU0dsb2JhbE9iamVjdCBpbiBSZWdFeHA6Om1h
dGNoIHByb3Blcmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTAxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZSB0aHJlYWQgSlNHbG9iYWxPYmplY3QqIHByb3Blcmx5IGluIFJlZ0V4cDo6bWF0Y2gg
aW5zdGVhZCBvZiBhY2Nlc3NpbmcgVk06OnRvcENhbGxGcmFtZSwgd2hpY2ggaXMgdG9vIGhhY2t5
LgorCisgICAgICAgICogcnVudGltZS9SZWdFeHAuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHA6
Om1hdGNoKToKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaENvbmN1cnJlbnRseSk6CisgICAg
ICAgICogcnVudGltZS9SZWdFeHAuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cEdsb2JhbERh
dGEuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cEdsb2JhbERhdGFJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OlJlZ0V4cEdsb2JhbERhdGE6OnBlcmZvcm1NYXRjaCk6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6bWF0Y2hJbmxpbmUp
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5Lmg6CisgICAgICAgIChKU0M6
OmNyZWF0ZVJlZ0V4cE1hdGNoZXNBcnJheSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmpl
Y3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6bWF0Y2hJbmxpbmUpOgor
ICAgICAgICAoSlNDOjpjb2xsZWN0TWF0Y2hlcyk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNTZWFyY2hGYXN0KToK
KyAgICAgICAgKEpTQzo6Z2VuZXJpY1NwbGl0KToKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9G
dW5jU3BsaXRGYXN0KToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OnJlbW92ZVVzaW5nUmVnRXhwU2VhcmNoKToKKyAgICAgICAgKEpTQzo6cmVw
bGFjZVVzaW5nUmVnRXhwU2VhcmNoKToKKyAgICAgICAgKiB0ZXN0UmVnRXhwLmNwcDoKKyAgICAg
ICAgKHRlc3RPbmVSZWdFeHApOgorICAgICAgICAocnVuRnJvbUZpbGVzKToKKwogMjAyMC0wNC0w
NyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIENv
bGxlY3QtY29udGludW91c2x5IHRocmVhZCBzaG91bGQgdGFrZSBtX2NvbGxlY3RDb250aW51b3Vz
bHlMb2NrIHdoaWxlIGl0IGlzIHdha2luZyB1cCBjb25jdXJyZW50IGNvbGxlY3RvciB0aHJlYWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IGI0MWQ0ZDUxZjk1
YWJmNmI1NGRlZjRiMWMxNmZjYTBmMmVjYTIwNWEuLjM4NDI4NzQyZmEzMTBmMTRlYjk3NDFiOTdh
ZDc0Mjc1M2JlYjMzNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNw
cApAQCAtMjg2LDkgKzI4Niw5IEBAIHZvaWQgUmVnRXhwOjpjb21waWxlKFZNKiB2bSwgWWFycjo6
WWFyckNoYXJTaXplIGNoYXJTaXplKQogICAgIH0KIH0KIAotaW50IFJlZ0V4cDo6bWF0Y2goVk0m
IHZtLCBjb25zdCBTdHJpbmcmIHMsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCBWZWN0b3I8aW50PiYg
b3ZlY3RvcikKK2ludCBSZWdFeHA6Om1hdGNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGNvbnN0IFN0cmluZyYgcywgdW5zaWduZWQgc3RhcnRPZmZzZXQsIFZlY3RvcjxpbnQ+JiBvdmVj
dG9yKQogewotICAgIHJldHVybiBtYXRjaElubGluZSh2bSwgcywgc3RhcnRPZmZzZXQsIG92ZWN0
b3IpOworICAgIHJldHVybiBtYXRjaElubGluZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+
dm0oKSwgcywgc3RhcnRPZmZzZXQsIG92ZWN0b3IpOwogfQogCiBib29sIFJlZ0V4cDo6bWF0Y2hD
b25jdXJyZW50bHkoCkBAIC0yOTksNyArMjk5LDcgQEAgYm9vbCBSZWdFeHA6Om1hdGNoQ29uY3Vy
cmVudGx5KAogICAgIGlmICghaGFzQ29kZUZvcihzLmlzOEJpdCgpID8gWWFycjo6Q2hhcjggOiBZ
YXJyOjpDaGFyMTYpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBwb3NpdGlvbiA9IG1h
dGNoSW5saW5lPFZlY3RvcjxpbnQ+JiwgWWFycjo6TWF0Y2hGcm9tOjpDb21waWxlclRocmVhZD4o
dm0sIHMsIHN0YXJ0T2Zmc2V0LCBvdmVjdG9yKTsKKyAgICBwb3NpdGlvbiA9IG1hdGNoSW5saW5l
PFZlY3RvcjxpbnQ+JiwgWWFycjo6TWF0Y2hGcm9tOjpDb21waWxlclRocmVhZD4obnVsbHB0ciwg
dm0sIHMsIHN0YXJ0T2Zmc2V0LCBvdmVjdG9yKTsKICAgICBpZiAobV9zdGF0ZSA9PSBQYXJzZUVy
cm9yKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0zNTAsOSAr
MzUwLDkgQEAgdm9pZCBSZWdFeHA6OmNvbXBpbGVNYXRjaE9ubHkoVk0qIHZtLCBZYXJyOjpZYXJy
Q2hhclNpemUgY2hhclNpemUpCiAgICAgfQogfQogCi1NYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNo
KFZNJiB2bSwgY29uc3QgU3RyaW5nJiBzLCB1bnNpZ25lZCBzdGFydE9mZnNldCkKK01hdGNoUmVz
dWx0IFJlZ0V4cDo6bWF0Y2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3Ry
aW5nJiBzLCB1bnNpZ25lZCBzdGFydE9mZnNldCkKIHsKLSAgICByZXR1cm4gbWF0Y2hJbmxpbmUo
dm0sIHMsIHN0YXJ0T2Zmc2V0KTsKKyAgICByZXR1cm4gbWF0Y2hJbmxpbmUoZ2xvYmFsT2JqZWN0
LCBnbG9iYWxPYmplY3QtPnZtKCksIHMsIHN0YXJ0T2Zmc2V0KTsKIH0KIAogYm9vbCBSZWdFeHA6
Om1hdGNoQ29uY3VycmVudGx5KFZNJiB2bSwgY29uc3QgU3RyaW5nJiBzLCB1bnNpZ25lZCBzdGFy
dE9mZnNldCwgTWF0Y2hSZXN1bHQmIHJlc3VsdCkKQEAgLTM2Miw3ICszNjIsNyBAQCBib29sIFJl
Z0V4cDo6bWF0Y2hDb25jdXJyZW50bHkoVk0mIHZtLCBjb25zdCBTdHJpbmcmIHMsIHVuc2lnbmVk
IHN0YXJ0T2Zmc2V0LCBNYQogICAgIGlmICghaGFzTWF0Y2hPbmx5Q29kZUZvcihzLmlzOEJpdCgp
ID8gWWFycjo6Q2hhcjggOiBZYXJyOjpDaGFyMTYpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICByZXN1bHQgPSBtYXRjaElubGluZTxZYXJyOjpNYXRjaEZyb206OkNvbXBpbGVyVGhyZWFk
Pih2bSwgcywgc3RhcnRPZmZzZXQpOworICAgIHJlc3VsdCA9IG1hdGNoSW5saW5lPFlhcnI6Ok1h
dGNoRnJvbTo6Q29tcGlsZXJUaHJlYWQ+KG51bGxwdHIsIHZtLCBzLCBzdGFydE9mZnNldCk7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgK
aW5kZXggZmQ0MThlYzE3YzBhMmY4MGRlMWYzYTVlY2NjYzM1MTllN2EwNmExMi4uZmFmMDI4OWNi
YjIxYTc1N2YzOGZhYmQ5MmVjYzQxODZkNTNmZGQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwLmgKQEAgLTc2LDIwICs3NiwyMCBAQCBjbGFzcyBSZWdFeHAgZmluYWwgOiBw
dWJsaWMgSlNDZWxsIHsKICAgICAgICAgbV9jb25zdHJ1Y3Rpb25FcnJvckNvZGUgPSBZYXJyOjpF
cnJvckNvZGU6Ok5vRXJyb3I7CiAgICAgfQogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgaW50IG1h
dGNoKFZNJiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIFZlY3RvcjxpbnQ+
JiBvdmVjdG9yKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBpbnQgbWF0Y2goSlNHbG9iYWxPYmpl
Y3QqLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgVmVjdG9yPGludD4mIG92
ZWN0b3IpOwogCiAgICAgLy8gUmV0dXJucyBmYWxzZSBpZiB3ZSBjb3VsZG4ndCBydW4gdGhlIHJl
Z3VsYXIgZXhwcmVzc2lvbiBmb3IgYW55IHJlYXNvbi4KICAgICBib29sIG1hdGNoQ29uY3VycmVu
dGx5KFZNJiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIGludCYgcG9zaXRp
b24sIFZlY3RvcjxpbnQ+JiBvdmVjdG9yKTsKICAgICAKLSAgICBKU19FWFBPUlRfUFJJVkFURSBN
YXRjaFJlc3VsdCBtYXRjaChWTSYsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0
KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBNYXRjaFJlc3VsdCBtYXRjaChKU0dsb2JhbE9iamVj
dCosIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0KTsKIAogICAgIGJvb2wgbWF0
Y2hDb25jdXJyZW50bHkoVk0mLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBzdGFydE9mZnNldCwg
TWF0Y2hSZXN1bHQmKTsKIAogICAgIC8vIENhbGwgdGhlc2UgdmVyc2lvbnMgb2YgdGhlIG1hdGNo
IGZ1bmN0aW9ucyBpZiB5b3UncmUgZGVzcGVyYXRlIGZvciBwZXJmb3JtYW5jZS4KICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlLCBZYXJyOjpNYXRjaEZyb20gdGhyZWFkID0gWWFycjo6
TWF0Y2hGcm9tOjpWTVRocmVhZD4KLSAgICBpbnQgbWF0Y2hJbmxpbmUoVk0mLCBjb25zdCBTdHJp
bmcmLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgVmVjdG9yVHlwZSYgb3ZlY3Rvcik7CisgICAgaW50
IG1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiwgY29u
c3QgU3RyaW5nJiwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIFZlY3RvclR5cGUmIG92ZWN0b3IpOwog
ICAgIHRlbXBsYXRlPFlhcnI6Ok1hdGNoRnJvbSB0aHJlYWQgPSBZYXJyOjpNYXRjaEZyb206OlZN
VGhyZWFkPgotICAgIE1hdGNoUmVzdWx0IG1hdGNoSW5saW5lKFZNJiwgY29uc3QgU3RyaW5nJiwg
dW5zaWduZWQgc3RhcnRPZmZzZXQpOworICAgIE1hdGNoUmVzdWx0IG1hdGNoSW5saW5lKEpTR2xv
YmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiwgY29uc3QgU3RyaW5nJiwgdW5zaWdu
ZWQgc3RhcnRPZmZzZXQpOwogICAgIAogICAgIHVuc2lnbmVkIG51bVN1YnBhdHRlcm5zKCkgY29u
c3QgeyByZXR1cm4gbV9udW1TdWJwYXR0ZXJuczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBHbG9iYWxEYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBHbG9iYWxEYXRhLmgKaW5kZXggYmQ3NWMwN2VlN2I5NzVhMDBh
NDYwMTA3MGM5N2NhMzhmNjUyZTA0Yi4uMGU5MWU2Y2E1YjZjMjAxZWU5M2ExMTBjNjY3NTQwMWU2
NDE5ZmIyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
R2xvYmFsRGF0YS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cEds
b2JhbERhdGEuaApAQCAtNDgsOCArNDgsOCBAQCBjbGFzcyBSZWdFeHBHbG9iYWxEYXRhIHsKICAg
ICBKU1ZhbHVlIGdldExlZnRDb250ZXh0KEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgSlNWYWx1ZSBn
ZXRSaWdodENvbnRleHQoSlNHbG9iYWxPYmplY3QqKTsKIAotICAgIE1hdGNoUmVzdWx0IHBlcmZv
cm1NYXRjaChWTSYsIEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwKiwgSlNTdHJpbmcqLCBjb25zdCBT
dHJpbmcmLCBpbnQgc3RhcnRPZmZzZXQsIGludCoqIG92ZWN0b3IpOwotICAgIE1hdGNoUmVzdWx0
IHBlcmZvcm1NYXRjaChWTSYsIEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwKiwgSlNTdHJpbmcqLCBj
b25zdCBTdHJpbmcmLCBpbnQgc3RhcnRPZmZzZXQpOworICAgIE1hdGNoUmVzdWx0IHBlcmZvcm1N
YXRjaChKU0dsb2JhbE9iamVjdCosIFJlZ0V4cCosIEpTU3RyaW5nKiwgY29uc3QgU3RyaW5nJiwg
aW50IHN0YXJ0T2Zmc2V0LCBpbnQqKiBvdmVjdG9yKTsKKyAgICBNYXRjaFJlc3VsdCBwZXJmb3Jt
TWF0Y2goSlNHbG9iYWxPYmplY3QqLCBSZWdFeHAqLCBKU1N0cmluZyosIGNvbnN0IFN0cmluZyYs
IGludCBzdGFydE9mZnNldCk7CiAgICAgdm9pZCByZWNvcmRNYXRjaChWTSYsIEpTR2xvYmFsT2Jq
ZWN0KiwgUmVnRXhwKiwgSlNTdHJpbmcqLCBjb25zdCBNYXRjaFJlc3VsdCYpOwogCiAgICAgc3Rh
dGljIHB0cmRpZmZfdCBvZmZzZXRPZkNhY2hlZFJlc3VsdCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihSZWdFeHBHbG9iYWxEYXRhLCBtX2NhY2hlZFJlc3VsdCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cEdsb2JhbERhdGFJbmxpbmVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBHbG9iYWxEYXRhSW5saW5lcy5oCmlu
ZGV4IDQwNTkzYmFlMmVlMDI3ZjE4ZjA0OGRmZjQ5OGM5NDgxNTk0ZDEwZDQuLjI3NjY2Mjk0ZjIx
YWViNTRjNjEzYTRjZmUyZDU5ZTI5YWM5ZTUxMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cEdsb2JhbERhdGFJbmxpbmVzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwR2xvYmFsRGF0YUlubGluZXMuaApAQCAtMzksOSAr
MzksMTMgQEAgaW5saW5lIHZvaWQgUmVnRXhwR2xvYmFsRGF0YTo6c2V0SW5wdXQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHMKICAgIGV4cHJlc3Npb24gbWF0Y2hpbmcg
dGhyb3VnaCB0aGUgcGVyZm9ybU1hdGNoIGZ1bmN0aW9uLiBXZSB1c2UgY2FjaGVkIHJlc3VsdHMg
dG8gY2FsY3VsYXRlLAogICAgZS5nLiwgUmVnRXhwLmxhc3RNYXRjaCBhbmQgUmVnRXhwLmxlZnRQ
YXJlbi4KICovCi1BTFdBWVNfSU5MSU5FIE1hdGNoUmVzdWx0IFJlZ0V4cEdsb2JhbERhdGE6OnBl
cmZvcm1NYXRjaChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBvd25lciwgUmVnRXhwKiByZWdFeHAs
IEpTU3RyaW5nKiBzdHJpbmcsIGNvbnN0IFN0cmluZyYgaW5wdXQsIGludCBzdGFydE9mZnNldCwg
aW50Kiogb3ZlY3RvcikKK0FMV0FZU19JTkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhwR2xvYmFsRGF0
YTo6cGVyZm9ybU1hdGNoKEpTR2xvYmFsT2JqZWN0KiBvd25lciwgUmVnRXhwKiByZWdFeHAsIEpT
U3RyaW5nKiBzdHJpbmcsIGNvbnN0IFN0cmluZyYgaW5wdXQsIGludCBzdGFydE9mZnNldCwgaW50
Kiogb3ZlY3RvcikKIHsKLSAgICBpbnQgcG9zaXRpb24gPSByZWdFeHAtPm1hdGNoKHZtLCBpbnB1
dCwgc3RhcnRPZmZzZXQsIG1fb3ZlY3Rvcik7CisgICAgQVNTRVJUKG93bmVyKTsKKyAgICBWTSYg
dm0gPSBvd25lci0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CisgICAgaW50IHBvc2l0aW9uID0gcmVnRXhwLT5tYXRjaChvd25lciwgaW5wdXQsIHN0YXJ0
T2Zmc2V0LCBtX292ZWN0b3IpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIE1hdGNo
UmVzdWx0OjpmYWlsZWQoKSk7CiAKICAgICBpZiAob3ZlY3RvcikKICAgICAgICAgKm92ZWN0b3Ig
PSBtX292ZWN0b3IuZGF0YSgpOwpAQCAtNTksOSArNjMsMTMgQEAgQUxXQVlTX0lOTElORSBNYXRj
aFJlc3VsdCBSZWdFeHBHbG9iYWxEYXRhOjpwZXJmb3JtTWF0Y2goVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCoKICAgICByZXR1cm4gTWF0Y2hSZXN1bHQocG9zaXRpb24sIGVuZCk7CiB9CiAKLUFMV0FZ
U19JTkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhwR2xvYmFsRGF0YTo6cGVyZm9ybU1hdGNoKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIG93bmVyLCBSZWdFeHAqIHJlZ0V4cCwgSlNTdHJpbmcqIHN0cmlu
ZywgY29uc3QgU3RyaW5nJiBpbnB1dCwgaW50IHN0YXJ0T2Zmc2V0KQorQUxXQVlTX0lOTElORSBN
YXRjaFJlc3VsdCBSZWdFeHBHbG9iYWxEYXRhOjpwZXJmb3JtTWF0Y2goSlNHbG9iYWxPYmplY3Qq
IG93bmVyLCBSZWdFeHAqIHJlZ0V4cCwgSlNTdHJpbmcqIHN0cmluZywgY29uc3QgU3RyaW5nJiBp
bnB1dCwgaW50IHN0YXJ0T2Zmc2V0KQogewotICAgIE1hdGNoUmVzdWx0IHJlc3VsdCA9IHJlZ0V4
cC0+bWF0Y2godm0sIGlucHV0LCBzdGFydE9mZnNldCk7CisgICAgQVNTRVJUKG93bmVyKTsKKyAg
ICBWTSYgdm0gPSBvd25lci0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CisgICAgTWF0Y2hSZXN1bHQgcmVzdWx0ID0gcmVnRXhwLT5tYXRjaChvd25lciwg
aW5wdXQsIHN0YXJ0T2Zmc2V0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBNYXRj
aFJlc3VsdDo6ZmFpbGVkKCkpOwogICAgIGlmIChyZXN1bHQpCiAgICAgICAgIG1fY2FjaGVkUmVz
dWx0LnJlY29yZCh2bSwgb3duZXIsIHJlZ0V4cCwgc3RyaW5nLCByZXN1bHQpOwogICAgIHJldHVy
biByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVz
LmgKaW5kZXggOGFlZTg1YjY3OWQyZGNjNWE2N2ZiYWQ3N2IxYWJhNDRiZmUxMmM4Ny4uMzI2ZTdh
ZWNkZDBkYmY2ZWZmNzZmMmQxNTEzZGYxY2ExNjA0OTA0MyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaApAQCAtOTgsNyArOTgsNyBAQCBBTFdBWVNf
SU5MSU5FIHZvaWQgUmVnRXhwOjpjb21waWxlSWZOZWNlc3NhcnkoVk0mIHZtLCBZYXJyOjpZYXJy
Q2hhclNpemUgY2hhclNpegogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlLCBZYXJy
OjpNYXRjaEZyb20gbWF0Y2hGcm9tPgotQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElu
bGluZShWTSYgdm0sIGNvbnN0IFN0cmluZyYgcywgdW5zaWduZWQgc3RhcnRPZmZzZXQsIFZlY3Rv
clR5cGUmIG92ZWN0b3IpCitBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5saW5lKEpT
R2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bSwgY29uc3QgU3RyaW5nJiBz
LCB1bnNpZ25lZCBzdGFydE9mZnNldCwgVmVjdG9yVHlwZSYgb3ZlY3RvcikKIHsKICNpZiBFTkFC
TEUoUkVHRVhQX1RSQUNJTkcpCiAgICAgbV9ydE1hdGNoQ2FsbENvdW50Kys7CkBAIC0xMDgsMTEg
KzEwOCwxMiBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5saW5lKFZNJiB2bSwg
Y29uc3QgU3RyaW5nJiBzLCB1bnNpZ25lZCBzdGFydE9mZgogICAgIGNvbXBpbGVJZk5lY2Vzc2Fy
eSh2bSwgcy5pczhCaXQoKSA/IFlhcnI6OkNoYXI4IDogWWFycjo6Q2hhcjE2KTsKIAogICAgIGF1
dG8gdGhyb3dFcnJvciA9IFsmXSB7Ci0gICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotICAgICAgICAvLyBGSVhNRTogUmV2aXNpdCBKU0dsb2JhbE9iamVj
dC4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MzIwNAotICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdm0udG9wQ2FsbEZy
YW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKTsKLSAgICAgICAgdGhyb3dTY29wZS50aHJvd0V4
Y2VwdGlvbihnbG9iYWxPYmplY3QsIGVycm9yVG9UaHJvdyhnbG9iYWxPYmplY3QpKTsKKyAgICAg
ICAgaWYgKG1hdGNoRnJvbSA9PSBZYXJyOjpNYXRjaEZyb206OkNvbXBpbGVyVGhyZWFkKQorICAg
ICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBpZiAobnVsbE9yR2xvYmFsT2JqZWN0KSB7Cisg
ICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAg
ICAgICAgICAgIHRocm93U2NvcGUudGhyb3dFeGNlcHRpb24obnVsbE9yR2xvYmFsT2JqZWN0LCBl
cnJvclRvVGhyb3cobnVsbE9yR2xvYmFsT2JqZWN0KSk7CisgICAgICAgIH0KICAgICAgICAgaWYg
KCFoYXNIYXJkRXJyb3IobV9jb25zdHJ1Y3Rpb25FcnJvckNvZGUpKQogICAgICAgICAgICAgcmVz
ZXQoKTsKICAgICAgICAgcmV0dXJuIC0xOwpAQCAtMTQxLDExICsxNDIsOCBAQCBBTFdBWVNfSU5M
SU5FIGludCBSZWdFeHA6Om1hdGNoSW5saW5lKFZNJiB2bSwgY29uc3QgU3RyaW5nJiBzLCB1bnNp
Z25lZCBzdGFydE9mZgogICAgICAgICBpZiAocmVzdWx0ID09IFlhcnI6OkpTUmVnRXhwSklUQ29k
ZUZhaWx1cmUpIHsKICAgICAgICAgICAgIC8vIEpJVCdlZCBjb2RlIGNvdWxkbid0IGhhbmRsZSBl
eHByZXNzaW9uLCBzbyBwdW50IGJhY2sgdG8gdGhlIGludGVycHJldGVyLgogICAgICAgICAgICAg
Ynl0ZUNvZGVDb21waWxlSWZOZWNlc3NhcnkoJnZtKTsKLSAgICAgICAgICAgIGlmIChtX3N0YXRl
ID09IFBhcnNlRXJyb3IpIHsKLSAgICAgICAgICAgICAgICBpZiAobWF0Y2hGcm9tID09IFlhcnI6
Ok1hdGNoRnJvbTo6Q29tcGlsZXJUaHJlYWQpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiAt
MTsKKyAgICAgICAgICAgIGlmIChtX3N0YXRlID09IFBhcnNlRXJyb3IpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJlc3Vs
dCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNl
dCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgICAgICB9
CiAKQEAgLTIzMiw3ICsyMzAsNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgUmVnRXhwOjpjb21waWxl
SWZOZWNlc3NhcnlNYXRjaE9ubHkoVk0mIHZtLCBZYXJyOjpZYXJyQ2hhclNpegogfQogCiB0ZW1w
bGF0ZTxZYXJyOjpNYXRjaEZyb20gbWF0Y2hGcm9tPgotQUxXQVlTX0lOTElORSBNYXRjaFJlc3Vs
dCBSZWdFeHA6Om1hdGNoSW5saW5lKFZNJiB2bSwgY29uc3QgU3RyaW5nJiBzLCB1bnNpZ25lZCBz
dGFydE9mZnNldCkKK0FMV0FZU19JTkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhwOjptYXRjaElubGlu
ZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0sIGNvbnN0IFN0cmlu
ZyYgcywgdW5zaWduZWQgc3RhcnRPZmZzZXQpCiB7CiAjaWYgRU5BQkxFKFJFR0VYUF9UUkFDSU5H
KQogICAgIG1fcnRNYXRjaE9ubHlDYWxsQ291bnQrKzsKQEAgLTI0MiwxMSArMjQwLDEyIEBAIEFM
V0FZU19JTkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShWTSYgdm0sIGNvbnN0
IFN0cmluZyYgcywgdW5zaWduZWQKICAgICBjb21waWxlSWZOZWNlc3NhcnlNYXRjaE9ubHkodm0s
IHMuaXM4Qml0KCkgPyBZYXJyOjpDaGFyOCA6IFlhcnI6OkNoYXIxNik7CiAKICAgICBhdXRvIHRo
cm93RXJyb3IgPSBbJl0gewotICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKLSAgICAgICAgLy8gRklYTUU6IFJldmlzaXQgSlNHbG9iYWxPYmplY3QuCi0g
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDQK
LSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHZtLnRvcENhbGxGcmFtZS0+
bGV4aWNhbEdsb2JhbE9iamVjdCh2bSk7Ci0gICAgICAgIHRocm93U2NvcGUudGhyb3dFeGNlcHRp
b24oZ2xvYmFsT2JqZWN0LCBlcnJvclRvVGhyb3coZ2xvYmFsT2JqZWN0KSk7CisgICAgICAgIGlm
IChtYXRjaEZyb20gPT0gWWFycjo6TWF0Y2hGcm9tOjpDb21waWxlclRocmVhZCkKKyAgICAgICAg
ICAgIHJldHVybiBNYXRjaFJlc3VsdDo6ZmFpbGVkKCk7CisgICAgICAgIGlmIChudWxsT3JHbG9i
YWxPYmplY3QpIHsKKyAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOworICAgICAgICAgICAgdGhyb3dTY29wZS50aHJvd0V4Y2VwdGlvbihudWxsT3JH
bG9iYWxPYmplY3QsIGVycm9yVG9UaHJvdyhudWxsT3JHbG9iYWxPYmplY3QpKTsKKyAgICAgICAg
fQogICAgICAgICBpZiAoIWhhc0hhcmRFcnJvcihtX2NvbnN0cnVjdGlvbkVycm9yQ29kZSkpCiAg
ICAgICAgICAgICByZXNldCgpOwogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQ6OmZhaWxlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hl
c0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJy
YXkuaAppbmRleCA5NTgxYzE0ZGUxZGNiNzk1ZWQyMDMzZmJkZDA3OGZiNDhhNmI3ZTZiLi5iNGVj
ZGI3NGEyMTMwZDExOGRiMjU3YzM2Y2UwZDg4NjZlYmY2NjBlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaApAQCAtNjcsNyArNjcs
NyBAQCBBTFdBWVNfSU5MSU5FIEpTQXJyYXkqIGNyZWF0ZVJlZ0V4cE1hdGNoZXNBcnJheSgKICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQodm0uaGVhcC5leHBlY3REb2VzR0MoKSk7CiAKICAgICBWZWN0
b3I8aW50LCAzMj4gc3VicGF0dGVyblJlc3VsdHM7Ci0gICAgaW50IHBvc2l0aW9uID0gcmVnRXhw
LT5tYXRjaElubGluZSh2bSwgaW5wdXRWYWx1ZSwgc3RhcnRPZmZzZXQsIHN1YnBhdHRlcm5SZXN1
bHRzKTsKKyAgICBpbnQgcG9zaXRpb24gPSByZWdFeHAtPm1hdGNoSW5saW5lKGdsb2JhbE9iamVj
dCwgdm0sIGlucHV0VmFsdWUsIHN0YXJ0T2Zmc2V0LCBzdWJwYXR0ZXJuUmVzdWx0cyk7CiAgICAg
aWYgKHBvc2l0aW9uID09IC0xKSB7CiAgICAgICAgIHJlc3VsdCA9IE1hdGNoUmVzdWx0OjpmYWls
ZWQoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmgKaW5kZXggODU0YWZjYjRmMTRhOWU3
NDhjOTZiMWEyMmE5NDdjZjVjNDgzNjU4NS4uODEwZjYxNmMxMDRkOTdmYTYxYzYyMWZjMTU2ZjJh
NTZjOWE1NGRiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwT2JqZWN0SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE9iamVjdElubGluZXMuaApAQCAtMTA2LDcgKzEwNiw3IEBAIGlubGluZSBNYXRjaFJlc3Vs
dCBSZWdFeHBPYmplY3Q6Om1hdGNoSW5saW5lKAogCiAgICAgaWYgKCFyZWdFeHAtPmdsb2JhbCgp
ICYmICFyZWdFeHAtPnN0aWNreSgpKSB7CiAgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICAg
ICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnBlcmZvcm1NYXRjaCh2
bSwgZ2xvYmFsT2JqZWN0LCByZWdFeHAsIHN0cmluZywgaW5wdXQsIDApOworICAgICAgICByZXR1
cm4gZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkucGVyZm9ybU1hdGNoKGdsb2JhbE9i
amVjdCwgcmVnRXhwLCBzdHJpbmcsIGlucHV0LCAwKTsKICAgICB9CiAKICAgICB1bnNpZ25lZCBs
YXN0SW5kZXggPSBnZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhBc1Vuc2lnbmVkKGdsb2JhbE9iamVj
dCwgdGhpcywgaW5wdXQpOwpAQCAtMTE3LDcgKzExNyw3IEBAIGlubGluZSBNYXRjaFJlc3VsdCBS
ZWdFeHBPYmplY3Q6Om1hdGNoSW5saW5lKAogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQ6OmZh
aWxlZCgpOwogICAgIH0KICAgICAKLSAgICBNYXRjaFJlc3VsdCByZXN1bHQgPSBnbG9iYWxPYmpl
Y3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5wZXJmb3JtTWF0Y2godm0sIGdsb2JhbE9iamVjdCwgcmVn
RXhwLCBzdHJpbmcsIGlucHV0LCBsYXN0SW5kZXgpOworICAgIE1hdGNoUmVzdWx0IHJlc3VsdCA9
IGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnBlcmZvcm1NYXRjaChnbG9iYWxPYmpl
Y3QsIHJlZ0V4cCwgc3RyaW5nLCBpbnB1dCwgbGFzdEluZGV4KTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwogICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICBzZXRMYXN0SW5k
ZXgoZ2xvYmFsT2JqZWN0LCByZXN1bHQuZW5kKTsKQEAgLTE0NSw3ICsxNDUsNyBAQCBKU1ZhbHVl
IGNvbGxlY3RNYXRjaGVzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNT
dHJpbmcqIHN0cmluZywgYwogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKIAotICAgIE1hdGNoUmVzdWx0IHJlc3VsdCA9IGdsb2JhbE9iamVjdC0+cmVnRXhwR2xv
YmFsRGF0YSgpLnBlcmZvcm1NYXRjaCh2bSwgZ2xvYmFsT2JqZWN0LCByZWdFeHAsIHN0cmluZywg
cywgMCk7CisgICAgTWF0Y2hSZXN1bHQgcmVzdWx0ID0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9i
YWxEYXRhKCkucGVyZm9ybU1hdGNoKGdsb2JhbE9iamVjdCwgcmVnRXhwLCBzdHJpbmcsIHMsIDAp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgaWYgKCFyZXN1bHQp
CiAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBKU1ZhbHVlIGNv
bGxlY3RNYXRjaGVzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJp
bmcqIHN0cmluZywgYwogICAgICAgICB9CiAgICAgICAgIGlmICghbGVuZ3RoKQogICAgICAgICAg
ICAgZW5kID0gZml4RW5kKGVuZCk7Ci0gICAgICAgIHJlc3VsdCA9IGdsb2JhbE9iamVjdC0+cmVn
RXhwR2xvYmFsRGF0YSgpLnBlcmZvcm1NYXRjaCh2bSwgZ2xvYmFsT2JqZWN0LCByZWdFeHAsIHN0
cmluZywgcywgZW5kKTsKKyAgICAgICAgcmVzdWx0ID0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9i
YWxEYXRhKCkucGVyZm9ybU1hdGNoKGdsb2JhbE9iamVjdCwgcmVnRXhwLCBzdHJpbmcsIHMsIGVu
ZCk7CiAgICAgICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpIHsKICAgICAgICAg
ICAgIGhhc0V4Y2VwdGlvbiA9IHRydWU7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xOTUsNyAr
MTk1LDcgQEAgSlNWYWx1ZSBjb2xsZWN0TWF0Y2hlcyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcsIGMKICAgICAgICAgICAgICAgICAvLyB3aWxs
IGxlYXZlIHRoZSBjYWNoZWQgcmVzdWx0IGluIHRoZSBzdGF0ZSBpdCBvdWdodCB0byBoYXZlIGhh
ZCBqdXN0IGJlZm9yZSB0aGUKICAgICAgICAgICAgICAgICAvLyBPT00hIE9uIHRoZSBvdGhlciBo
YW5kLCBpZiB0aGlzIGxvb3AgY29uY2x1ZGVzIHRoYXQgdGhlIHJlc3VsdCBpcyBzbWFsbCBlbm91
Z2gsCiAgICAgICAgICAgICAgICAgLy8gdGhlbiB0aGUgaXRlcmF0ZSgpIGxvb3AgYmVsb3cgd2ls
bCBvdmVyd3JpdGUgdGhlIGNhY2hlZCByZXN1bHQgYW55d2F5LgotICAgICAgICAgICAgICAgIHJl
c3VsdCA9IGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnBlcmZvcm1NYXRjaCh2bSwg
Z2xvYmFsT2JqZWN0LCByZWdFeHAsIHN0cmluZywgcywgZW5kKTsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5wZXJmb3JtTWF0Y2goZ2xv
YmFsT2JqZWN0LCByZWdFeHAsIHN0cmluZywgcywgZW5kKTsKICAgICAgICAgICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgICAgICAgICAgfSB3aGlsZSAocmVzdWx0
KTsKICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cFByb3RvdHlwZS5jcHAKaW5kZXggNTJkNTFlNDc5MzM1YmNjMjE5MGI3ZTNlNGFlOTBhMTIy
ZWU2ODIyMy4uYWE5NmI5NzBiY2E0Njg5NDRiMjAzZDMyMjAwYzFlNWNmNjE5NmQzZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBA
IC00ODYsNyArNDg2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90
b0Z1bmNTZWFyY2hGYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBTdHJpbmcgcyA9
IHN0cmluZy0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAotICAgIE1hdGNoUmVzdWx0IHJlc3VsdCA9IGdsb2Jh
bE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnBlcmZvcm1NYXRjaCh2bSwgZ2xvYmFsT2JqZWN0
LCByZWdFeHAsIHN0cmluZywgcywgMCk7CisgICAgTWF0Y2hSZXN1bHQgcmVzdWx0ID0gZ2xvYmFs
T2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkucGVyZm9ybU1hdGNoKGdsb2JhbE9iamVjdCwgcmVn
RXhwLCBzdHJpbmcsIHMsIDApOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29k
ZWRKU1ZhbHVlKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0ID8ganNOdW1i
ZXIocmVzdWx0LnN0YXJ0KSA6IGpzTnVtYmVyKC0xKSk7CiB9CkBAIC01MDUsMjEgKzUwNSwyOCBA
QCBlbnVtIFNwbGl0Q29udHJvbCB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRyb2xGdW5jLCB0
eXBlbmFtZSBQdXNoRnVuYz4KIHZvaWQgZ2VuZXJpY1NwbGl0KAotICAgIFZNJiB2bSwgUmVnRXhw
KiByZWdleHAsIGNvbnN0IFN0cmluZyYgaW5wdXQsIHVuc2lnbmVkIGlucHV0U2l6ZSwgdW5zaWdu
ZWQmIHBvc2l0aW9uLAorICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4cCog
cmVnZXhwLCBjb25zdCBTdHJpbmcmIGlucHV0LCB1bnNpZ25lZCBpbnB1dFNpemUsIHVuc2lnbmVk
JiBwb3NpdGlvbiwKICAgICB1bnNpZ25lZCYgbWF0Y2hQb3NpdGlvbiwgYm9vbCByZWdFeHBJc1N0
aWNreSwgYm9vbCByZWdFeHBJc1VuaWNvZGUsCiAgICAgY29uc3QgQ29udHJvbEZ1bmMmIGNvbnRy
b2wsIGNvbnN0IFB1c2hGdW5jJiBwdXNoKQogeworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgVmVj
dG9yPGludD4gb3ZlY3RvcjsKICAgICAgICAgCiAgICAgd2hpbGUgKG1hdGNoUG9zaXRpb24gPCBp
bnB1dFNpemUpIHsKLSAgICAgICAgaWYgKGNvbnRyb2woKSA9PSBBYm9ydFNwbGl0KQotICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB7CisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IGNvbnRy
b2woKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Cisg
ICAgICAgICAgICBpZiAocmVzdWx0ID09IEFib3J0U3BsaXQpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBvdmVjdG9yLnNocmluaygwKTsKICAg
ICAgICAgCiAgICAgICAgIC8vIGEuIFBlcmZvcm0gPyBTZXQoc3BsaXR0ZXIsICJsYXN0SW5kZXgi
LCBxLCB0cnVlKS4KICAgICAgICAgLy8gYi4gTGV0IHogYmUgPyBSZWdFeHBFeGVjKHNwbGl0dGVy
LCBTKS4KLSAgICAgICAgaW50IG1wb3MgPSByZWdleHAtPm1hdGNoKHZtLCBpbnB1dCwgbWF0Y2hQ
b3NpdGlvbiwgb3ZlY3Rvcik7CisgICAgICAgIGludCBtcG9zID0gcmVnZXhwLT5tYXRjaChnbG9i
YWxPYmplY3QsIGlucHV0LCBtYXRjaFBvc2l0aW9uLCBvdmVjdG9yKTsKKyAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAogICAgICAgICAvLyBjLiBJZiB6IGlzIG51
bGwsIGxldCBxIGJlIEFkdmFuY2VTdHJpbmdJbmRleChTLCBxLCB1bmljb2RlTWF0Y2hpbmcpLgog
ICAgICAgICBpZiAobXBvcyA8IDApIHsKQEAgLTU1NSw4ICs1NjIsMTIgQEAgdm9pZCBnZW5lcmlj
U3BsaXQoCiAgICAgICAgIAogICAgICAgICAvLyAxLiBMZXQgVCBiZSBhIFN0cmluZyB2YWx1ZSBl
cXVhbCB0byB0aGUgc3Vic3RyaW5nIG9mIFMgY29uc2lzdGluZyBvZiB0aGUgZWxlbWVudHMgYXQg
aW5kaWNlcyBwIChpbmNsdXNpdmUpIHRocm91Z2ggcSAoZXhjbHVzaXZlKS4KICAgICAgICAgLy8g
Mi4gUGVyZm9ybSAhIENyZWF0ZURhdGFQcm9wZXJ0eShBLCAhIFRvU3RyaW5nKGxlbmd0aEEpLCBU
KS4KLSAgICAgICAgaWYgKHB1c2godHJ1ZSwgcG9zaXRpb24sIG1hdGNoUG9zaXRpb24gLSBwb3Np
dGlvbikgPT0gQWJvcnRTcGxpdCkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgeworICAg
ICAgICAgICAgYXV0byByZXN1bHQgPSBwdXNoKHRydWUsIHBvc2l0aW9uLCBtYXRjaFBvc2l0aW9u
IC0gcG9zaXRpb24pOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9p
ZCgpKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gQWJvcnRTcGxpdCkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIDUuIExldCBwIGJl
IGUuCiAgICAgICAgIHBvc2l0aW9uID0gbWF0Y2hFbmQ7CkBAIC01NjksNyArNTgwLDkgQEAgdm9p
ZCBnZW5lcmljU3BsaXQoCiAgICAgICAgICAgICAvLyBhLiBMZXQgbmV4dENhcHR1cmUgYmUgPyBH
ZXQoeiwgISBUb1N0cmluZyhpKSkuCiAgICAgICAgICAgICAvLyBiLiBQZXJmb3JtICEgQ3JlYXRl
RGF0YVByb3BlcnR5KEEsICEgVG9TdHJpbmcobGVuZ3RoQSksIG5leHRDYXB0dXJlKS4KICAgICAg
ICAgICAgIGludCBzdWIgPSBvdmVjdG9yW2kgKiAyXTsKLSAgICAgICAgICAgIGlmIChwdXNoKHN1
YiA+PSAwLCBzdWIsIG92ZWN0b3JbaSAqIDIgKyAxXSAtIHN1YikgPT0gQWJvcnRTcGxpdCkKKyAg
ICAgICAgICAgIGF1dG8gcmVzdWx0ID0gcHVzaChzdWIgPj0gMCwgc3ViLCBvdmVjdG9yW2kgKiAy
ICsgMV0gLSBzdWIpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9p
ZCgpKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gQWJvcnRTcGxpdCkKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCkBAIC02MzAsNyArNjQzLDkgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamUKICAgICAgICAgLy8gYi4gSWYgeiBpcyBub3QgbnVsbCwgcmV0
dXJuIEEuCiAgICAgICAgIC8vIGMuIFBlcmZvcm0gISBDcmVhdGVEYXRhUHJvcGVydHkoQSwgIjAi
LCBTKS4KICAgICAgICAgLy8gZC4gUmV0dXJuIEEuCi0gICAgICAgIGlmICghcmVnZXhwLT5tYXRj
aCh2bSwgaW5wdXQsIDApKSB7CisgICAgICAgIGF1dG8gbWF0Y2hSZXN1bHQgPSByZWdleHAtPm1h
dGNoKGdsb2JhbE9iamVjdCwgaW5wdXQsIDApOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAgaWYgKCFtYXRjaFJlc3VsdCkgewog
ICAgICAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIDAsIGlucHV0
U3RyaW5nKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRK
U1ZhbHVlKCkpOwogICAgICAgICB9CkBAIC02NDYsNyArNjYxLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamUKICAgICB1bnNpZ25lZCBtYXhTaXplRm9yRGlyZWN0UGF0aCA9IDEwMDAwMDsKICAg
ICAKICAgICBnZW5lcmljU3BsaXQoCi0gICAgICAgIHZtLCByZWdleHAsIGlucHV0LCBpbnB1dFNp
emUsIHBvc2l0aW9uLCBtYXRjaFBvc2l0aW9uLCByZWdFeHBJc1N0aWNreSwgcmVnRXhwSXNVbmlj
b2RlLAorICAgICAgICBnbG9iYWxPYmplY3QsIHJlZ2V4cCwgaW5wdXQsIGlucHV0U2l6ZSwgcG9z
aXRpb24sIG1hdGNoUG9zaXRpb24sIHJlZ0V4cElzU3RpY2t5LCByZWdFeHBJc1VuaWNvZGUsCiAg
ICAgICAgIFsmXSAoKSAtPiBTcGxpdENvbnRyb2wgewogICAgICAgICAgICAgaWYgKHJlc3VsdExl
bmd0aCA+PSBtYXhTaXplRm9yRGlyZWN0UGF0aCkKICAgICAgICAgICAgICAgICByZXR1cm4gQWJv
cnRTcGxpdDsKQEAgLTY3OCw3ICs2OTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHJlZ0V4cFByb3RvRnVuY1NwbGl0RmFzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAg
IHVuc2lnbmVkIHNhdmVkTWF0Y2hQb3NpdGlvbiA9IG1hdGNoUG9zaXRpb247CiAgICAgdW5zaWdu
ZWQgZHJ5UnVuQ291bnQgPSAwOwogICAgIGdlbmVyaWNTcGxpdCgKLSAgICAgICAgdm0sIHJlZ2V4
cCwgaW5wdXQsIGlucHV0U2l6ZSwgcG9zaXRpb24sIG1hdGNoUG9zaXRpb24sIHJlZ0V4cElzU3Rp
Y2t5LCByZWdFeHBJc1VuaWNvZGUsCisgICAgICAgIGdsb2JhbE9iamVjdCwgcmVnZXhwLCBpbnB1
dCwgaW5wdXRTaXplLCBwb3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiwgcmVnRXhwSXNTdGlja3ksIHJl
Z0V4cElzVW5pY29kZSwKICAgICAgICAgWyZdICgpIC0+IFNwbGl0Q29udHJvbCB7CiAgICAgICAg
ICAgICBpZiAocmVzdWx0TGVuZ3RoICsgZHJ5UnVuQ291bnQgPiBNQVhfU1RPUkFHRV9WRUNUT1Jf
TEVOR1RIKQogICAgICAgICAgICAgICAgIHJldHVybiBBYm9ydFNwbGl0OwpAQCAtNjkwLDYgKzcw
NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jU3BsaXRG
YXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgICAgICAgICAgICAgcmV0dXJuIEFi
b3J0U3BsaXQ7CiAgICAgICAgICAgICByZXR1cm4gQ29udGludWVTcGxpdDsKICAgICAgICAgfSk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAg
CiAgICAgaWYgKHJlc3VsdExlbmd0aCArIGRyeVJ1bkNvdW50ID4gTUFYX1NUT1JBR0VfVkVDVE9S
X0xFTkdUSCkgewogICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSk7CkBAIC03MDEsNyArNzE3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBy
ZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBt
YXRjaFBvc2l0aW9uID0gc2F2ZWRNYXRjaFBvc2l0aW9uOwogICAgIAogICAgIGdlbmVyaWNTcGxp
dCgKLSAgICAgICAgdm0sIHJlZ2V4cCwgaW5wdXQsIGlucHV0U2l6ZSwgcG9zaXRpb24sIG1hdGNo
UG9zaXRpb24sIHJlZ0V4cElzU3RpY2t5LCByZWdFeHBJc1VuaWNvZGUsCisgICAgICAgIGdsb2Jh
bE9iamVjdCwgcmVnZXhwLCBpbnB1dCwgaW5wdXRTaXplLCBwb3NpdGlvbiwgbWF0Y2hQb3NpdGlv
biwgcmVnRXhwSXNTdGlja3ksIHJlZ0V4cElzVW5pY29kZSwKICAgICAgICAgWyZdICgpIC0+IFNw
bGl0Q29udHJvbCB7CiAgICAgICAgICAgICByZXR1cm4gQ29udGludWVTcGxpdDsKICAgICAgICAg
fSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
Y3BwCmluZGV4IGE2NzAwYTliY2JkYTBiZDY2NDY5YTM1ODI4NjBhMzhiMzVmOTQ1MDguLjVjNTRh
YjQ1MmM3OTc1NTFhYWUzYmE4YjkyOTE3N2RlM2M5MzM5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcApAQCAtNDg5LDcgKzQ4OSw3
IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTU3RyaW5nKiByZW1vdmVVc2luZ1JlZ0V4cFNlYXJj
aChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgdW5zaWduZWQgc291cmNlTGVuID0gc291
cmNlLmxlbmd0aCgpOwogCiAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgTWF0Y2hSZXN1bHQg
cmVzdWx0ID0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkucGVyZm9ybU1hdGNoKHZt
LCBnbG9iYWxPYmplY3QsIHJlZ0V4cCwgc3RyaW5nLCBzb3VyY2UsIHN0YXJ0UG9zaXRpb24pOwor
ICAgICAgICBNYXRjaFJlc3VsdCByZXN1bHQgPSBnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERh
dGEoKS5wZXJmb3JtTWF0Y2goZ2xvYmFsT2JqZWN0LCByZWdFeHAsIHN0cmluZywgc291cmNlLCBz
dGFydFBvc2l0aW9uKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0
cik7CiAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAgYnJlYWs7CkBAIC01NjAsNyAr
NTYwLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNTdHJpbmcqIHJlcGxhY2VVc2luZ1JlZ0V4
cFNlYXJjaCgKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAg
ICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBpbnQqIG92ZWN0b3I7Ci0gICAgICAg
ICAgICBNYXRjaFJlc3VsdCByZXN1bHQgPSBnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEo
KS5wZXJmb3JtTWF0Y2godm0sIGdsb2JhbE9iamVjdCwgcmVnRXhwLCBzdHJpbmcsIHNvdXJjZSwg
c3RhcnRQb3NpdGlvbiwgJm92ZWN0b3IpOworICAgICAgICAgICAgTWF0Y2hSZXN1bHQgcmVzdWx0
ID0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkucGVyZm9ybU1hdGNoKGdsb2JhbE9i
amVjdCwgcmVnRXhwLCBzdHJpbmcsIHNvdXJjZSwgc3RhcnRQb3NpdGlvbiwgJm92ZWN0b3IpOwog
ICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgICAg
ICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTYyMCw3ICs2MjAs
NyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1N0cmluZyogcmVwbGFjZVVzaW5nUmVnRXhwU2Vh
cmNoKAogICAgIH0gZWxzZSB7CiAgICAgICAgIGRvIHsKICAgICAgICAgICAgIGludCogb3ZlY3Rv
cjsKLSAgICAgICAgICAgIE1hdGNoUmVzdWx0IHJlc3VsdCA9IGdsb2JhbE9iamVjdC0+cmVnRXhw
R2xvYmFsRGF0YSgpLnBlcmZvcm1NYXRjaCh2bSwgZ2xvYmFsT2JqZWN0LCByZWdFeHAsIHN0cmlu
Zywgc291cmNlLCBzdGFydFBvc2l0aW9uLCAmb3ZlY3Rvcik7CisgICAgICAgICAgICBNYXRjaFJl
c3VsdCByZXN1bHQgPSBnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5wZXJmb3JtTWF0
Y2goZ2xvYmFsT2JqZWN0LCByZWdFeHAsIHN0cmluZywgc291cmNlLCBzdGFydFBvc2l0aW9uLCAm
b3ZlY3Rvcik7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRy
KTsKICAgICAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwCmluZGV4IGZlM2VmN2U3YWY2N2JjMGFhNWE3MjRi
MDY3MmM3YzAzNjI4YWIxMmQuLjY3YjE1NTMwODc3ZTM5NjFiNmMxNmRmODI3YTkyZDRkZTBiNzlh
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAKQEAgLTE4OCwxMiArMTg4LDEy
IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICByZXR1cm4gcmVzOwogfQog
Ci1zdGF0aWMgYm9vbCB0ZXN0T25lUmVnRXhwKFZNJiB2bSwgUmVnRXhwKiByZWdleHAsIFJlZ0V4
cFRlc3QqIHJlZ0V4cFRlc3QsIGJvb2wgdmVyYm9zZSwgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIp
CitzdGF0aWMgYm9vbCB0ZXN0T25lUmVnRXhwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFJlZ0V4cCogcmVnZXhwLCBSZWdFeHBUZXN0KiByZWdFeHBUZXN0LCBib29sIHZlcmJvc2UsIHVu
c2lnbmVkIGxpbmVOdW1iZXIpCiB7CiAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwogICAgIFZlY3Rv
cjxpbnQ+IG91dFZlY3RvcjsKICAgICBvdXRWZWN0b3IucmVzaXplKHJlZ0V4cFRlc3QtPmV4cGVj
dFZlY3Rvci5zaXplKCkpOwotICAgIGludCBtYXRjaFJlc3VsdCA9IHJlZ2V4cC0+bWF0Y2godm0s
IHJlZ0V4cFRlc3QtPnN1YmplY3QsIHJlZ0V4cFRlc3QtPm9mZnNldCwgb3V0VmVjdG9yKTsKKyAg
ICBpbnQgbWF0Y2hSZXN1bHQgPSByZWdleHAtPm1hdGNoKGdsb2JhbE9iamVjdCwgcmVnRXhwVGVz
dC0+c3ViamVjdCwgcmVnRXhwVGVzdC0+b2Zmc2V0LCBvdXRWZWN0b3IpOwogCiAgICAgaWYgKG1h
dGNoUmVzdWx0ICE9IHJlZ0V4cFRlc3QtPnJlc3VsdCkgewogICAgICAgICByZXN1bHQgPSBmYWxz
ZTsKQEAgLTQ2NSw3ICs0NjUsNyBAQCBzdGF0aWMgYm9vbCBydW5Gcm9tRmlsZXMoR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlcwogICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChyZWdleHAgJiYgcmVnRXhwVGVzdCkgewogICAg
ICAgICAgICAgICAgICAgICArK3Rlc3RzOwotICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RP
bmVSZWdFeHAodm0sIHJlZ2V4cCwgcmVnRXhwVGVzdCwgdmVyYm9zZSwgbGluZU51bWJlcikpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0T25lUmVnRXhwKGdsb2JhbE9iamVjdCwgcmVn
ZXhwLCByZWdFeHBUZXN0LCB2ZXJib3NlLCBsaW5lTnVtYmVyKSkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgZmFpbHVyZXMrKzsKICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRmFp
bHVyZSBvbiBsaW5lICV1XG4iLCBsaW5lTnVtYmVyKTsKICAgICAgICAgICAgICAgICAgICAgfQo=
</data>
<flag name="review"
          id="411199"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>