<?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>164639</bug_id>
          
          <creation_ts>2016-11-11 09:57:31 -0800</creation_ts>
          <short_desc>RenderFlowThread::removeLineRegionInfo shouldn&apos;t call HashMap::contains before HashMap::remove</short_desc>
          <delta_ts>2016-11-11 11:00:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>WebkitBugTracker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1250264</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2016-11-11 09:57:31 -0800</bug_when>
    <thetext>It&apos;s double hashing, slow and not needed at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250266</commentid>
    <comment_count>1</comment_count>
      <attachid>294503</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-11-11 10:00:08 -0800</bug_when>
    <thetext>Created attachment 294503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250295</commentid>
    <comment_count>2</comment_count>
      <attachid>294503</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-11 11:00:01 -0800</bug_when>
    <thetext>Comment on attachment 294503
Patch

Clearing flags on attachment: 294503

Committed r208597: &lt;http://trac.webkit.org/changeset/208597&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250296</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-11 11:00:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294503</attachid>
            <date>2016-11-11 10:00:08 -0800</date>
            <delta_ts>2016-11-11 11:00:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164639-20161111095554.patch</filename>
            <type>text/plain</type>
            <size>26757</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJkOTgwZmFhMzRmZDc1
YTliY2Y2MDljMGZkNDhjZTdkMWRkYmE0YS4uYzczZjA2NGE2OWJkZTQzODE2NDVjODAxYjA0ZTcx
MzZkZjBhYmEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE2LTExLTExICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuZGVyRmxvd1RocmVhZDo6
cmVtb3ZlTGluZVJlZ2lvbkluZm8gc2hvdWxkbid0IGNhbGwgSGFzaE1hcDo6Y29udGFpbnMgYmVm
b3JlIEhhc2hNYXA6OnJlbW92ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWxzbyBpbnN0ZWFkIG9mIGFzc2VydGluZyB0aGF0IHRoZSBpbmNvbWluZyBy
ZW5kZXJlciBpcyBub3QgbnVsbHB0ciwgd2UgY291bGQganVzdCBwYXNzIGEgcmVmZXJlbmNlIGlu
LiAKKworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
aW52YWxpZGF0ZUZsb3dUaHJlYWRDb250YWluaW5nQmxvY2tJbmNsdWRpbmdEZXNjZW5kYW50cyk6
CisgICAgICAgIChXZWJDb3JlOjpjYW5Db21wdXRlUmVnaW9uUmFuZ2VGb3JCb3gpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVSZWdpb25SYW5nZUZvckJveENoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjplc3RpbWF0ZVJlZ2lvblJhbmdlRm9yQm94
Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnVwZGF0ZVJlZ2lvblJhbmdl
Rm9yQm94Q2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94OjpoYXNSZWdpb25SYW5nZUluRmxvd1RocmVhZCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRWxlbWVudDo6cmVtb3ZlRnJvbVJlbmRlckZsb3dUaHJlYWRJbmNsdWRpbmdEZXNjZW5kYW50
cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6cmVtb3ZlRmxvd0NoaWxkSW5mbyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjp2YWxpZGF0ZVJlZ2lvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6cmVtb3ZlUmVuZGVyQm94UmVnaW9uSW5mbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpyZW1vdmVMaW5lUmVnaW9uSW5mbyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpjbGVhclJlbmRlckJveFJlZ2lv
bkluZm9BbmRDdXN0b21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFk
OjpzZXRSZWdpb25SYW5nZUZvckJveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhy
ZWFkOjpoYXNDYWNoZWRSZWdpb25SYW5nZUZvckJveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGbG93VGhyZWFkOjpjb21wdXRlZFJlZ2lvblJhbmdlRm9yQm94KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckZsb3dUaHJlYWQ6OmNoZWNrTGluZXNDb25zaXN0ZW5jeSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TXVsdGlDb2x1bW5GbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRp
Q29sdW1uRmxvd1RocmVhZDo6c2V0UmVnaW9uUmFuZ2VGb3JCb3gpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFt
ZWRGbG93RnJhZ21lbnQ6OmNsZWFyT2JqZWN0U3R5bGVJblJlZ2lvbik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck5hbWVkRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZs
b3dUaHJlYWQ6OmNsZWFyUmVuZGVyT2JqZWN0Q3VzdG9tU3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpyZW1vdmVGbG93Q2hpbGRJbmZvKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclJlZ2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OnJlbW92
ZVJlbmRlckJveFJlZ2lvbkluZm8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24u
aDoKKwogMjAxNi0xMS0xMCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIwNzE4Mik6IFtpT1NdIENyYXNoIGJlY2F1c2Ug
b2YgcGFzc2luZyBmcmVlZCBDRkRpY3Rpb25hcnlSZWYgdG8gQ0cgd2hlbiBkZWNvZGluZyBhIHN1
Yi1zYW1wbGVkIGxhcmdlIGltYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcAppbmRleCAxNjcxOWE2MWFkZWJiYWY2YTUwYzE4MjRlYzgwNGUyMjI4NjJlYjE4Li5hOTY3
YTI1ZTU1ZDUzNzI5OWQzOWJiNzBmMDAwNDY2NDkzODQxYTgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTMzODksMTEgKzMzODksMTEgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6aW52YWxpZGF0ZUZsb3dUaHJlYWRDb250YWluaW5nQmxvY2tJbmNsdWRpbmdEZXNj
ZW5kYW50cygpCiAgICAgc2V0Q2FjaGVkRmxvd1RocmVhZENvbnRhaW5pbmdCbG9ja05lZWRzVXBk
YXRlKCk7CiAKICAgICBpZiAoZmxvd1RocmVhZCkKLSAgICAgICAgZmxvd1RocmVhZC0+cmVtb3Zl
Rmxvd0NoaWxkSW5mbyh0aGlzKTsKKyAgICAgICAgZmxvd1RocmVhZC0+cmVtb3ZlRmxvd0NoaWxk
SW5mbygqdGhpcyk7CiAKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8UmVu
ZGVyRWxlbWVudD4oKnRoaXMpKSB7CiAgICAgICAgIGlmIChmbG93VGhyZWFkKQotICAgICAgICAg
ICAgZmxvd1RocmVhZC0+cmVtb3ZlRmxvd0NoaWxkSW5mbygmY2hpbGQpOworICAgICAgICAgICAg
Zmxvd1RocmVhZC0+cmVtb3ZlRmxvd0NoaWxkSW5mbyhjaGlsZCk7CiAgICAgICAgIGlmIChpczxS
ZW5kZXJCbG9jaz4oY2hpbGQpKQogICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVyQmxvY2s+KGNo
aWxkKS5pbnZhbGlkYXRlRmxvd1RocmVhZENvbnRhaW5pbmdCbG9ja0luY2x1ZGluZ0Rlc2NlbmRh
bnRzKCk7CiAgICAgfQpAQCAtMzYxNiw5ICszNjE2LDggQEAgUmVuZGVyUmVnaW9uKiBSZW5kZXJC
bG9jazo6cmVnaW9uQXRCbG9ja09mZnNldChMYXlvdXRVbml0IGJsb2NrT2Zmc2V0KSBjb25zdAog
ICAgIHJldHVybiBmbG93VGhyZWFkLT5yZWdpb25BdEJsb2NrT2Zmc2V0KHRoaXMsIG9mZnNldEZy
b21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UoKSArIGJsb2NrT2Zmc2V0LCB0cnVlKTsKIH0KIAotc3Rh
dGljIGJvb2wgY2FuQ29tcHV0ZVJlZ2lvblJhbmdlRm9yQm94KGNvbnN0IFJlbmRlckJsb2NrKiBw
YXJlbnRCbG9jaywgY29uc3QgUmVuZGVyQm94JiBjaGlsZEJveCwgY29uc3QgUmVuZGVyRmxvd1Ro
cmVhZCogZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaykKK3N0YXRpYyBib29sIGNhbkNvbXB1dGVS
ZWdpb25SYW5nZUZvckJveChjb25zdCBSZW5kZXJCbG9jayYgcGFyZW50QmxvY2ssIGNvbnN0IFJl
bmRlckJveCYgY2hpbGRCb3gsIGNvbnN0IFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWRDb250
YWluaW5nQmxvY2spCiB7Ci0gICAgQVNTRVJUKHBhcmVudEJsb2NrKTsKICAgICBBU1NFUlQoIWNo
aWxkQm94LmlzUmVuZGVyTmFtZWRGbG93VGhyZWFkKCkpOwogCiAgICAgaWYgKCFmbG93VGhyZWFk
Q29udGFpbmluZ0Jsb2NrKQpAQCAtMzY0OCw3ICszNjQ3LDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6
Y2hpbGRCb3hJc1Vuc3BsaXR0YWJsZUZvckZyYWdtZW50YXRpb24oY29uc3QgUmVuZGVyQm94JiBj
aGlsZCkKIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVSZWdpb25SYW5nZUZvckJveENoaWxkKGNv
bnN0IFJlbmRlckJveCYgYm94KSBjb25zdAogewogICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dU
aHJlYWQgPSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgQVNTRVJUKGNhbkNvbXB1
dGVSZWdpb25SYW5nZUZvckJveCh0aGlzLCBib3gsIGZsb3dUaHJlYWQpKTsKKyAgICBBU1NFUlQo
Y2FuQ29tcHV0ZVJlZ2lvblJhbmdlRm9yQm94KCp0aGlzLCBib3gsIGZsb3dUaHJlYWQpKTsKIAog
ICAgIFJlbmRlclJlZ2lvbiogc3RhcnRSZWdpb247CiAgICAgUmVuZGVyUmVnaW9uKiBlbmRSZWdp
b247CkBAIC0zNjYwLDEzICszNjU5LDEzIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVSZWdp
b25SYW5nZUZvckJveENoaWxkKGNvbnN0IFJlbmRlckJveCYgYm94KSBjb25zdAogICAgICAgICBl
bmRSZWdpb24gPSBmbG93VGhyZWFkLT5yZWdpb25BdEJsb2NrT2Zmc2V0KHRoaXMsIG9mZnNldEZy
b21Mb2dpY2FsVG9wT2ZGaXJzdFJlZ2lvbiArIGxvZ2ljYWxIZWlnaHRGb3JDaGlsZChib3gpLCB0
cnVlKTsKICAgICB9CiAKLSAgICBmbG93VGhyZWFkLT5zZXRSZWdpb25SYW5nZUZvckJveCgmYm94
LCBzdGFydFJlZ2lvbiwgZW5kUmVnaW9uKTsKKyAgICBmbG93VGhyZWFkLT5zZXRSZWdpb25SYW5n
ZUZvckJveChib3gsIHN0YXJ0UmVnaW9uLCBlbmRSZWdpb24pOwogfQogCiB2b2lkIFJlbmRlckJs
b2NrOjplc3RpbWF0ZVJlZ2lvblJhbmdlRm9yQm94Q2hpbGQoY29uc3QgUmVuZGVyQm94JiBib3gp
IGNvbnN0CiB7CiAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IGZsb3dUaHJlYWRD
b250YWluaW5nQmxvY2soKTsKLSAgICBpZiAoIWNhbkNvbXB1dGVSZWdpb25SYW5nZUZvckJveCh0
aGlzLCBib3gsIGZsb3dUaHJlYWQpKQorICAgIGlmICghY2FuQ29tcHV0ZVJlZ2lvblJhbmdlRm9y
Qm94KCp0aGlzLCBib3gsIGZsb3dUaHJlYWQpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
Y2hpbGRCb3hJc1Vuc3BsaXR0YWJsZUZvckZyYWdtZW50YXRpb24oYm94KSkgewpAQCAtMzY4MSwx
MyArMzY4MCwxMyBAQCB2b2lkIFJlbmRlckJsb2NrOjplc3RpbWF0ZVJlZ2lvblJhbmdlRm9yQm94
Q2hpbGQoY29uc3QgUmVuZGVyQm94JiBib3gpIGNvbnN0CiAgICAgUmVuZGVyUmVnaW9uKiBzdGFy
dFJlZ2lvbiA9IGZsb3dUaHJlYWQtPnJlZ2lvbkF0QmxvY2tPZmZzZXQodGhpcywgb2Zmc2V0RnJv
bUxvZ2ljYWxUb3BPZkZpcnN0UmVnaW9uLCB0cnVlKTsKICAgICBSZW5kZXJSZWdpb24qIGVuZFJl
Z2lvbiA9IGZsb3dUaHJlYWQtPnJlZ2lvbkF0QmxvY2tPZmZzZXQodGhpcywgb2Zmc2V0RnJvbUxv
Z2ljYWxUb3BPZkZpcnN0UmVnaW9uICsgZXN0aW1hdGVkVmFsdWVzLm1fZXh0ZW50LCB0cnVlKTsK
IAotICAgIGZsb3dUaHJlYWQtPnNldFJlZ2lvblJhbmdlRm9yQm94KCZib3gsIHN0YXJ0UmVnaW9u
LCBlbmRSZWdpb24pOworICAgIGZsb3dUaHJlYWQtPnNldFJlZ2lvblJhbmdlRm9yQm94KGJveCwg
c3RhcnRSZWdpb24sIGVuZFJlZ2lvbik7CiB9CiAKIGJvb2wgUmVuZGVyQmxvY2s6OnVwZGF0ZVJl
Z2lvblJhbmdlRm9yQm94Q2hpbGQoY29uc3QgUmVuZGVyQm94JiBib3gpIGNvbnN0CiB7CiAgICAg
UmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IGZsb3dUaHJlYWRDb250YWluaW5nQmxvY2so
KTsKLSAgICBpZiAoIWNhbkNvbXB1dGVSZWdpb25SYW5nZUZvckJveCh0aGlzLCBib3gsIGZsb3dU
aHJlYWQpKQorICAgIGlmICghY2FuQ29tcHV0ZVJlZ2lvblJhbmdlRm9yQm94KCp0aGlzLCBib3gs
IGZsb3dUaHJlYWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZW5kZXJSZWdpb24q
IHN0YXJ0UmVnaW9uID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKaW5kZXggZDk4Mjk3NTJiMjI3NWRlNGE5MjkzOWViMTBkMzlmNzgwZWNhZDljMi4uZmE0NTQy
ZDhkNjM5ODY3N2YxZGNlMjU0MzcyNzg3YWZjZjBlYmRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCBib29sIFJlbmRlckJveDo6aGFz
UmVnaW9uUmFuZ2VJbkZsb3dUaHJlYWQoKSBjb25zdAogICAgIGlmICghZmxvd1RocmVhZCB8fCAh
Zmxvd1RocmVhZC0+aGFzVmFsaWRSZWdpb25JbmZvKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHJldHVybiBmbG93VGhyZWFkLT5oYXNDYWNoZWRSZWdpb25SYW5nZUZvckJveCh0aGlz
KTsKKyAgICByZXR1cm4gZmxvd1RocmVhZC0+aGFzQ2FjaGVkUmVnaW9uUmFuZ2VGb3JCb3goKnRo
aXMpOwogfQogCiBMYXlvdXRSZWN0IFJlbmRlckJveDo6Y2xpZW50Qm94UmVjdEluUmVnaW9uKFJl
bmRlclJlZ2lvbiogcmVnaW9uKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCmluZGV4IGIxMjcyMjc4OTQzZTRlMzBlOTlhZDE2YzU4MTJkOGMyYTYyY2I0
NjAuLjQ0MjA3NTBiMGEyMmIzNWFhN2E3MDkzNjM1YzI3ZWIxYTBkNTZhNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTIyMDgsNyArMjIwOCw3IEBA
IHZvaWQgUmVuZGVyRWxlbWVudDo6cmVtb3ZlRnJvbVJlbmRlckZsb3dUaHJlYWRJbmNsdWRpbmdE
ZXNjZW5kYW50cyhib29sIHNob3VsZFVwCiAgICAgLy8gV2UgaGF2ZSB0byBhc2sgZm9yIG91ciBj
b250YWluaW5nIGZsb3cgdGhyZWFkIGFzIGl0IG1heSBiZSBhYm92ZSB0aGUgcmVtb3ZlZCBzdWIt
dHJlZS4KICAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrID0g
dGhpcy0+Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpOwogICAgIHdoaWxlIChmbG93VGhyZWFk
Q29udGFpbmluZ0Jsb2NrKSB7Ci0gICAgICAgIGZsb3dUaHJlYWRDb250YWluaW5nQmxvY2stPnJl
bW92ZUZsb3dDaGlsZEluZm8odGhpcyk7CisgICAgICAgIGZsb3dUaHJlYWRDb250YWluaW5nQmxv
Y2stPnJlbW92ZUZsb3dDaGlsZEluZm8oKnRoaXMpOwogCiAgICAgICAgIGlmIChmbG93VGhyZWFk
Q29udGFpbmluZ0Jsb2NrLT5mbG93VGhyZWFkU3RhdGUoKSA9PSBOb3RJbnNpZGVGbG93VGhyZWFk
KQogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Rmxvd1RocmVhZC5jcHAKaW5kZXggNDAxODQ0YzE1ZTEyZmMwMmNkYjQwYmJmMTZjODVmY2ViNTAy
NTc2Ny4uZDQyM2FjM2IzM2QyOWM3MTBhNTM5MjUxNDRiZDg1OTQ0Nzg4OThhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtOTEsMTEgKzkx
LDExIEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJl
bmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvCiAgICAgICAgIGludmFsaWRhdGVSZWdpb25z
KCk7CiB9CiAKLXZvaWQgUmVuZGVyRmxvd1RocmVhZDo6cmVtb3ZlRmxvd0NoaWxkSW5mbyhSZW5k
ZXJFbGVtZW50KiBjaGlsZCkKK3ZvaWQgUmVuZGVyRmxvd1RocmVhZDo6cmVtb3ZlRmxvd0NoaWxk
SW5mbyhSZW5kZXJFbGVtZW50JiBjaGlsZCkKIHsKLSAgICBpZiAoaXM8UmVuZGVyQmxvY2tGbG93
PigqY2hpbGQpKQorICAgIGlmIChpczxSZW5kZXJCbG9ja0Zsb3c+KGNoaWxkKSkKICAgICAgICAg
cmVtb3ZlTGluZVJlZ2lvbkluZm8oZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PihjaGlsZCkpOwot
ICAgIGlmIChpczxSZW5kZXJCb3g+KCpjaGlsZCkpCisgICAgaWYgKGlzPFJlbmRlckJveD4oY2hp
bGQpKQogICAgICAgICByZW1vdmVSZW5kZXJCb3hSZWdpb25JbmZvKGRvd25jYXN0PFJlbmRlckJv
eD4oY2hpbGQpKTsKIH0KIApAQCAtMTcxLDcgKzE3MSw3IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVh
ZDo6dmFsaWRhdGVSZWdpb25zKCkKICAgICAgICAgICAgICAgICBwcmV2aW91c1JlZ2lvbkxvZ2lj
YWxXaWR0aCA9IHJlZ2lvbkxvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgc2V0UmVnaW9uUmFuZ2VGb3JCb3godGhpcywgbV9yZWdpb25MaXN0LmZpcnN0KCksIG1fcmVn
aW9uTGlzdC5sYXN0KCkpOworICAgICAgICAgICAgc2V0UmVnaW9uUmFuZ2VGb3JCb3goKnRoaXMs
IG1fcmVnaW9uTGlzdC5maXJzdCgpLCBtX3JlZ2lvbkxpc3QubGFzdCgpKTsKICAgICAgICAgfQog
ICAgIH0KIApAQCAtNTU5LDcgKzU1OSw3IEBAIFJlbmRlclJlZ2lvbiogUmVuZGVyRmxvd1RocmVh
ZDo6bWFwRnJvbUZsb3dUb1JlZ2lvbihUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhCiAgICAg
cmV0dXJuIHJlbmRlclJlZ2lvbjsKIH0KIAotdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpyZW1vdmVS
ZW5kZXJCb3hSZWdpb25JbmZvKFJlbmRlckJveCogYm94KQordm9pZCBSZW5kZXJGbG93VGhyZWFk
OjpyZW1vdmVSZW5kZXJCb3hSZWdpb25JbmZvKFJlbmRlckJveCYgYm94KQogewogICAgIGlmICgh
aGFzUmVnaW9ucygpKQogICAgICAgICByZXR1cm47CkBAIC01NzIsNyArNTcyLDcgQEAgdm9pZCBS
ZW5kZXJGbG93VGhyZWFkOjpyZW1vdmVSZW5kZXJCb3hSZWdpb25JbmZvKFJlbmRlckJveCogYm94
KQogCiAgICAgUmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiA9IG51bGxwdHI7CiAgICAgUmVuZGVy
UmVnaW9uKiBlbmRSZWdpb24gPSBudWxscHRyOwotICAgIGlmIChnZXRSZWdpb25SYW5nZUZvckJv
eChib3gsIHN0YXJ0UmVnaW9uLCBlbmRSZWdpb24pKSB7CisgICAgaWYgKGdldFJlZ2lvblJhbmdl
Rm9yQm94KCZib3gsIHN0YXJ0UmVnaW9uLCBlbmRSZWdpb24pKSB7CiAgICAgICAgIGZvciAoYXV0
byBpdCA9IG1fcmVnaW9uTGlzdC5maW5kKHN0YXJ0UmVnaW9uKSwgZW5kID0gbV9yZWdpb25MaXN0
LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIFJlbmRlclJlZ2lvbiogcmVn
aW9uID0gKml0OwogICAgICAgICAgICAgcmVnaW9uLT5yZW1vdmVSZW5kZXJCb3hSZWdpb25JbmZv
KGJveCk7CkBAIC01ODQsMjEgKzU4NCwxOSBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnJlbW92
ZVJlbmRlckJveFJlZ2lvbkluZm8oUmVuZGVyQm94KiBib3gpCiAjaWZuZGVmIE5ERUJVRwogICAg
IC8vIFdlIGhhdmUgdG8gbWFrZSBzdXJlIHdlIGRpZCBub3QgbGVhdmUgYW55IFJlbmRlckJveFJl
Z2lvbkluZm8gYXR0YWNoZWQuCiAgICAgZm9yIChhdXRvJiByZWdpb24gOiBtX3JlZ2lvbkxpc3Qp
Ci0gICAgICAgIEFTU0VSVCghcmVnaW9uLT5yZW5kZXJCb3hSZWdpb25JbmZvKGJveCkpOworICAg
ICAgICBBU1NFUlQoIXJlZ2lvbi0+cmVuZGVyQm94UmVnaW9uSW5mbygmYm94KSk7CiAjZW5kaWYK
IAotICAgIG1fcmVnaW9uUmFuZ2VNYXAucmVtb3ZlKGJveCk7CisgICAgbV9yZWdpb25SYW5nZU1h
cC5yZW1vdmUoJmJveCk7CiB9CiAKLXZvaWQgUmVuZGVyRmxvd1RocmVhZDo6cmVtb3ZlTGluZVJl
Z2lvbkluZm8oY29uc3QgUmVuZGVyQmxvY2tGbG93KiBibG9ja0Zsb3cpCit2b2lkIFJlbmRlckZs
b3dUaHJlYWQ6OnJlbW92ZUxpbmVSZWdpb25JbmZvKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgYmxv
Y2tGbG93KQogewotICAgIGlmICghbV9saW5lVG9SZWdpb25NYXAgfHwgYmxvY2tGbG93LT5saW5l
TGF5b3V0UGF0aCgpID09IFNpbXBsZUxpbmVzUGF0aCkKKyAgICBpZiAoIW1fbGluZVRvUmVnaW9u
TWFwIHx8IGJsb2NrRmxvdy5saW5lTGF5b3V0UGF0aCgpID09IFNpbXBsZUxpbmVzUGF0aCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgZm9yIChSb290SW5saW5lQm94KiBjdXJyID0gYmxvY2tGbG93
LT5maXJzdFJvb3RCb3goKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRSb290Qm94KCkpIHsKLSAg
ICAgICAgaWYgKG1fbGluZVRvUmVnaW9uTWFwLT5jb250YWlucyhjdXJyKSkKLSAgICAgICAgICAg
IG1fbGluZVRvUmVnaW9uTWFwLT5yZW1vdmUoY3Vycik7Ci0gICAgfQorICAgIGZvciAoYXV0byog
Y3VyciA9IGJsb2NrRmxvdy5maXJzdFJvb3RCb3goKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRS
b290Qm94KCkpCisgICAgICAgIG1fbGluZVRvUmVnaW9uTWFwLT5yZW1vdmUoY3Vycik7CiAKICAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihjaGVja0xpbmVzQ29uc2lzdGVuY3ko
YmxvY2tGbG93KSk7CiB9CkBAIC02OTksNyArNjk3LDcgQEAgUmVuZGVyUmVnaW9uKiBSZW5kZXJG
bG93VGhyZWFkOjpsYXN0UmVnaW9uKCkgY29uc3QKICAgICByZXR1cm4gbV9yZWdpb25MaXN0Lmxh
c3QoKTsKIH0KIAotdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjbGVhclJlbmRlckJveFJlZ2lvbklu
Zm9BbmRDdXN0b21TdHlsZShjb25zdCBSZW5kZXJCb3gqIGJveCwKK3ZvaWQgUmVuZGVyRmxvd1Ro
cmVhZDo6Y2xlYXJSZW5kZXJCb3hSZWdpb25JbmZvQW5kQ3VzdG9tU3R5bGUoY29uc3QgUmVuZGVy
Qm94JiBib3gsCiAgICAgY29uc3QgUmVuZGVyUmVnaW9uKiBuZXdTdGFydFJlZ2lvbiwgY29uc3Qg
UmVuZGVyUmVnaW9uKiBuZXdFbmRSZWdpb24sCiAgICAgY29uc3QgUmVuZGVyUmVnaW9uKiBvbGRT
dGFydFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVnaW9uKiBvbGRFbmRSZWdpb24pCiB7CkBAIC03MTYs
NyArNzE0LDcgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjbGVhclJlbmRlckJveFJlZ2lvbklu
Zm9BbmRDdXN0b21TdHlsZShjb25zdCBSZW5kZXJCb3gqIGIKICAgICAgICAgaWYgKCEoaW5zaWRl
T2xkUmVnaW9uUmFuZ2UgJiYgaW5zaWRlTmV3UmVnaW9uUmFuZ2UpKSB7CiAgICAgICAgICAgICBp
ZiAoaXM8UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ+KCpyZWdpb24pKQogICAgICAgICAgICAgICAg
IGRvd25jYXN0PFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50PigqcmVnaW9uKS5jbGVhck9iamVjdFN0
eWxlSW5SZWdpb24oYm94KTsKLSAgICAgICAgICAgIGlmIChyZWdpb24tPnJlbmRlckJveFJlZ2lv
bkluZm8oYm94KSkKKyAgICAgICAgICAgIGlmIChyZWdpb24tPnJlbmRlckJveFJlZ2lvbkluZm8o
JmJveCkpCiAgICAgICAgICAgICAgICAgcmVnaW9uLT5yZW1vdmVSZW5kZXJCb3hSZWdpb25JbmZv
KGJveCk7CiAgICAgICAgIH0KIApAQCAtNzI3LDE0ICs3MjUsMTQgQEAgdm9pZCBSZW5kZXJGbG93
VGhyZWFkOjpjbGVhclJlbmRlckJveFJlZ2lvbkluZm9BbmRDdXN0b21TdHlsZShjb25zdCBSZW5k
ZXJCb3gqIGIKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyRmxvd1RocmVhZDo6c2V0UmVnaW9uUmFu
Z2VGb3JCb3goY29uc3QgUmVuZGVyQm94KiBib3gsIFJlbmRlclJlZ2lvbiogc3RhcnRSZWdpb24s
IFJlbmRlclJlZ2lvbiogZW5kUmVnaW9uKQordm9pZCBSZW5kZXJGbG93VGhyZWFkOjpzZXRSZWdp
b25SYW5nZUZvckJveChjb25zdCBSZW5kZXJCb3gmIGJveCwgUmVuZGVyUmVnaW9uKiBzdGFydFJl
Z2lvbiwgUmVuZGVyUmVnaW9uKiBlbmRSZWdpb24pCiB7CiAgICAgQVNTRVJUKGhhc1JlZ2lvbnMo
KSk7CiAgICAgQVNTRVJUKHN0YXJ0UmVnaW9uICYmIGVuZFJlZ2lvbiAmJiBzdGFydFJlZ2lvbi0+
Zmxvd1RocmVhZCgpID09IHRoaXMgJiYgZW5kUmVnaW9uLT5mbG93VGhyZWFkKCkgPT0gdGhpcyk7
CiAKLSAgICBhdXRvIGl0ID0gbV9yZWdpb25SYW5nZU1hcC5maW5kKGJveCk7CisgICAgYXV0byBp
dCA9IG1fcmVnaW9uUmFuZ2VNYXAuZmluZCgmYm94KTsKICAgICBpZiAoaXQgPT0gbV9yZWdpb25S
YW5nZU1hcC5lbmQoKSkgewotICAgICAgICBtX3JlZ2lvblJhbmdlTWFwLnNldChib3gsIFJlbmRl
clJlZ2lvblJhbmdlKHN0YXJ0UmVnaW9uLCBlbmRSZWdpb24pKTsKKyAgICAgICAgbV9yZWdpb25S
YW5nZU1hcC5zZXQoJmJveCwgUmVuZGVyUmVnaW9uUmFuZ2Uoc3RhcnRSZWdpb24sIGVuZFJlZ2lv
bikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03NDcsMTEgKzc0NSw5IEBAIHZvaWQg
UmVuZGVyRmxvd1RocmVhZDo6c2V0UmVnaW9uUmFuZ2VGb3JCb3goY29uc3QgUmVuZGVyQm94KiBi
b3gsIFJlbmRlclJlZ2lvbioKICAgICByYW5nZS5zZXRSYW5nZShzdGFydFJlZ2lvbiwgZW5kUmVn
aW9uKTsKIH0KIAotYm9vbCBSZW5kZXJGbG93VGhyZWFkOjpoYXNDYWNoZWRSZWdpb25SYW5nZUZv
ckJveChjb25zdCBSZW5kZXJCb3gqIGJveCkgY29uc3QKK2Jvb2wgUmVuZGVyRmxvd1RocmVhZDo6
aGFzQ2FjaGVkUmVnaW9uUmFuZ2VGb3JCb3goY29uc3QgUmVuZGVyQm94JiBib3gpIGNvbnN0CiB7
Ci0gICAgQVNTRVJUKGJveCk7Ci0KLSAgICByZXR1cm4gbV9yZWdpb25SYW5nZU1hcC5jb250YWlu
cyhib3gpOworICAgIHJldHVybiBtX3JlZ2lvblJhbmdlTWFwLmNvbnRhaW5zKCZib3gpOwogfQog
CiBib29sIFJlbmRlckZsb3dUaHJlYWQ6OmdldFJlZ2lvblJhbmdlRm9yQm94RnJvbUNhY2hlZElu
Zm8oY29uc3QgUmVuZGVyQm94KiBib3gsIFJlbmRlclJlZ2lvbiomIHN0YXJ0UmVnaW9uLCBSZW5k
ZXJSZWdpb24qJiBlbmRSZWdpb24pIGNvbnN0CkBAIC04MDIsMTEgKzc5OCwxMCBAQCBib29sIFJl
bmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVkUmVnaW9uUmFuZ2VGb3JCb3goY29uc3QgUmVuZGVyQm94
KiBib3gsIFJlbmRlclJlZwogICAgIGlmIChnZXRSZWdpb25SYW5nZUZvckJveChib3gsIHN0YXJ0
UmVnaW9uLCBlbmRSZWdpb24pKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIC8vIFNlYXJj
aCB0aGUgcmVnaW9uIHJhbmdlIHVzaW5nIHRoZSBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSB0aGUK
LSAgICAvLyBjb250YWluaW5nIGJsb2NrIGNoYWluLgotICAgIFJlbmRlckJveCogY2IgPSBjb25z
dF9jYXN0PFJlbmRlckJveCo+KGJveCk7Ci0gICAgd2hpbGUgKCFjYi0+aXNSZW5kZXJGbG93VGhy
ZWFkKCkpIHsKLSAgICAgICAgSW5saW5lRWxlbWVudEJveCogYm94V3JhcHBlciA9IGNiLT5pbmxp
bmVCb3hXcmFwcGVyKCk7CisgICAgLy8gU2VhcmNoIHRoZSByZWdpb24gcmFuZ2UgdXNpbmcgdGhl
IGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IHRoZSBjb250YWluaW5nIGJsb2NrIGNoYWluLgorICAg
IGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9IGNvbnN0X2Nhc3Q8UmVuZGVyQm94Kj4oYm94KTsKKyAg
ICB3aGlsZSAoIWNvbnRhaW5pbmdCbG9jay0+aXNSZW5kZXJGbG93VGhyZWFkKCkpIHsKKyAgICAg
ICAgSW5saW5lRWxlbWVudEJveCogYm94V3JhcHBlciA9IGNvbnRhaW5pbmdCbG9jay0+aW5saW5l
Qm94V3JhcHBlcigpOwogICAgICAgICBpZiAoYm94V3JhcHBlciAmJiBib3hXcmFwcGVyLT5yb290
KCkuY29udGFpbmluZ1JlZ2lvbigpKSB7CiAgICAgICAgICAgICBzdGFydFJlZ2lvbiA9IGVuZFJl
Z2lvbiA9IGJveFdyYXBwZXItPnJvb3QoKS5jb250YWluaW5nUmVnaW9uKCk7CiAgICAgICAgICAg
ICBBU1NFUlQobV9yZWdpb25MaXN0LmNvbnRhaW5zKHN0YXJ0UmVnaW9uKSk7CkBAIC04MTYsMTgg
KzgxMSwxNyBAQCBib29sIFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVkUmVnaW9uUmFuZ2VGb3JC
b3goY29uc3QgUmVuZGVyQm94KiBib3gsIFJlbmRlclJlZwogICAgICAgICAvLyBGSVhNRTogVXNl
IHRoZSBjb250YWluaW5nQmxvY2soKSB2YWx1ZSBvbmNlIHdlIHBhdGNoIGFsbCB0aGUgbGF5b3V0
IHN5c3RlbXMgdG8gYmUgcmVnaW9uIHJhbmdlIGF3YXJlCiAgICAgICAgIC8vIChlLmcuIGlmIHdl
IHVzZSBjb250YWluaW5nQmxvY2soKSB0aGUgc2hhZG93IGNvbnRyb2xzIG9mIGEgdmlkZW8gZWxl
bWVudCB3b24ndCBnZXQgdGhlIHJhbmdlIGZyb20gdGhlCiAgICAgICAgIC8vIHZpZGVvIGJveCBi
ZWNhdXNlIGl0J3Mgbm90IGEgYmxvY2s7IHRoZXkgbmVlZCB0byBiZSBwYXRjaGVkIHNlcGFyYXRl
bHkpLgotICAgICAgICBBU1NFUlQoY2ItPnBhcmVudCgpKTsKLSAgICAgICAgY2IgPSAmY2ItPnBh
cmVudCgpLT5lbmNsb3NpbmdCb3goKTsKLSAgICAgICAgQVNTRVJUKGNiKTsKKyAgICAgICAgQVNT
RVJUKGNvbnRhaW5pbmdCbG9jay0+cGFyZW50KCkpOworICAgICAgICBjb250YWluaW5nQmxvY2sg
PSAmY29udGFpbmluZ0Jsb2NrLT5wYXJlbnQoKS0+ZW5jbG9zaW5nQm94KCk7CisgICAgICAgIEFT
U0VSVChjb250YWluaW5nQmxvY2spOwogCiAgICAgICAgIC8vIElmIGEgYm94IGRvZXNuJ3QgaGF2
ZSBhIGNhY2hlZCByZWdpb24gcmFuZ2UgaXQgdXN1YWxseSBtZWFucyB0aGUgYm94IGJlbG9uZ3Mg
dG8gYSBsaW5lIHNvIHN0YXJ0UmVnaW9uIHNob3VsZCBiZSBlcXVhbCB3aXRoIGVuZFJlZ2lvbi4K
ICAgICAgICAgLy8gRklYTUU6IEZpbmQgdGhlIGNhc2VzIHdoZW4gdGhpcyBzdGFydFJlZ2lvbiBz
aG91bGQgbm90IGJlIGVxdWFsIHdpdGggZW5kUmVnaW9uIGFuZCBtYWtlIHN1cmUgdGhlc2UgYm94
ZXMgaGF2ZSBjYWNoZWQgcmVnaW9uIHJhbmdlcy4KLSAgICAgICAgaWYgKGhhc0NhY2hlZFJlZ2lv
blJhbmdlRm9yQm94KGNiKSkgewotICAgICAgICAgICAgc3RhcnRSZWdpb24gPSBlbmRSZWdpb24g
PSByZWdpb25BdEJsb2NrT2Zmc2V0KGNiLCBib3gtPm9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJz
dFBhZ2UoKSwgdHJ1ZSk7CisgICAgICAgIGlmIChjb250YWluaW5nQmxvY2sgJiYgaGFzQ2FjaGVk
UmVnaW9uUmFuZ2VGb3JCb3goKmNvbnRhaW5pbmdCbG9jaykpIHsKKyAgICAgICAgICAgIHN0YXJ0
UmVnaW9uID0gZW5kUmVnaW9uID0gcmVnaW9uQXRCbG9ja09mZnNldChjb250YWluaW5nQmxvY2ss
IGNvbnRhaW5pbmdCbG9jay0+b2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSgpLCB0cnVl
KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQotCiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtOTMxLDcgKzkyNSw3
IEBAIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6aXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3Vu
dENvbnNpc3RlbnQoKSBjb25zdAogI2VuZGlmCiAKICNpZiAhQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT05fRElTQUJMRUQKLWJvb2wgUmVuZGVyRmxvd1RocmVhZDo6Y2hlY2tMaW5lc0Nv
bnNpc3RlbmN5KGNvbnN0IFJlbmRlckJsb2NrRmxvdyogcmVtb3ZlZEJsb2NrKSBjb25zdAorYm9v
bCBSZW5kZXJGbG93VGhyZWFkOjpjaGVja0xpbmVzQ29uc2lzdGVuY3koY29uc3QgUmVuZGVyQmxv
Y2tGbG93JiByZW1vdmVkQmxvY2spIGNvbnN0CiB7CiAgICAgaWYgKCFtX2xpbmVUb1JlZ2lvbk1h
cCkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC05MzksNyArOTMzLDcgQEAgYm9vbCBSZW5kZXJG
bG93VGhyZWFkOjpjaGVja0xpbmVzQ29uc2lzdGVuY3koY29uc3QgUmVuZGVyQmxvY2tGbG93KiBy
ZW1vdmVkQmxvY2sKICAgICBmb3IgKGF1dG8mIGxpbmVQYWlyIDogKm1fbGluZVRvUmVnaW9uTWFw
LmdldCgpKSB7CiAgICAgICAgIGNvbnN0IFJvb3RJbmxpbmVCb3gqIGxpbmUgPSBsaW5lUGFpci5r
ZXk7CiAgICAgICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gbGluZVBhaXIudmFsdWU7Ci0gICAg
ICAgIGlmICgmbGluZS0+YmxvY2tGbG93KCkgPT0gcmVtb3ZlZEJsb2NrKQorICAgICAgICBpZiAo
JmxpbmUtPmJsb2NrRmxvdygpID09ICZyZW1vdmVkQmxvY2spCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIGlmIChsaW5lLT5ibG9ja0Zsb3coKS5mbG93VGhyZWFkU3RhdGUoKSA9
PSBOb3RJbnNpZGVGbG93VGhyZWFkKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKaW5kZXggMzNhNmFkYmU5NmM3
ZGEwZWRhMDNkNTFiOTQ3Zjk2MGNmZDc1NDFmOC4uM2IzYjM1ZWNjYjQ2YjY4MjRmMDFlMzA0ZmZi
NzcyYzU2NmI4ODQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5oCkBAIC02MCwxMyArNjAsMTMgQEAgY2xhc3MgUmVuZGVyRmxvd1RocmVhZDogcHVibGlj
IFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVuZGVyRmxvd1RocmVh
ZCgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUZsb3dDaGlsZEluZm8oUmVuZGVyRWxl
bWVudCopOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVGbG93Q2hpbGRJbmZvKFJlbmRlckVsZW1l
bnQmKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgYm9vbCBoYXNDaGlsZEluZm8oUmVuZGVyT2JqZWN0
KiBjaGlsZCkgY29uc3QgeyByZXR1cm4gaXM8UmVuZGVyQm94PihjaGlsZCkgJiYgbV9yZWdpb25S
YW5nZU1hcC5jb250YWlucyhkb3duY2FzdDxSZW5kZXJCb3g+KGNoaWxkKSk7IH0KICNlbmRpZgog
CiAjaWYgIUFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OX0RJU0FCTEVECi0gICAgYm9v
bCBjaGVja0xpbmVzQ29uc2lzdGVuY3koY29uc3QgUmVuZGVyQmxvY2tGbG93KikgY29uc3Q7Cisg
ICAgYm9vbCBjaGVja0xpbmVzQ29uc2lzdGVuY3koY29uc3QgUmVuZGVyQmxvY2tGbG93JikgY29u
c3Q7CiAjZW5kaWYKICAgICAKICAgICB2b2lkIGRlbGV0ZUxpbmVzKCkgb3ZlcnJpZGU7CkBAIC0x
MzMsMTAgKzEzMywxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBwcmV2aW91c1JlZ2lvbkNvdW50Q2hh
bmdlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmlvdXNSZWdpb25Db3VudCAhPSBtX3JlZ2lvbkxp
c3Quc2l6ZSgpOyB9OwogICAgIHZvaWQgdXBkYXRlUHJldmlvdXNSZWdpb25Db3VudCgpIHsgbV9w
cmV2aW91c1JlZ2lvbkNvdW50ID0gbV9yZWdpb25MaXN0LnNpemUoKTsgfTsKIAotICAgIHZpcnR1
YWwgdm9pZCBzZXRSZWdpb25SYW5nZUZvckJveChjb25zdCBSZW5kZXJCb3gqLCBSZW5kZXJSZWdp
b24qLCBSZW5kZXJSZWdpb24qKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVnaW9uUmFuZ2VGb3JC
b3goY29uc3QgUmVuZGVyQm94JiwgUmVuZGVyUmVnaW9uKiwgUmVuZGVyUmVnaW9uKik7CiAgICAg
Ym9vbCBnZXRSZWdpb25SYW5nZUZvckJveChjb25zdCBSZW5kZXJCb3gqLCBSZW5kZXJSZWdpb24q
JiBzdGFydFJlZ2lvbiwgUmVuZGVyUmVnaW9uKiYgZW5kUmVnaW9uKSBjb25zdDsKICAgICBib29s
IGNvbXB1dGVkUmVnaW9uUmFuZ2VGb3JCb3goY29uc3QgUmVuZGVyQm94KiwgUmVuZGVyUmVnaW9u
KiYgc3RhcnRSZWdpb24sIFJlbmRlclJlZ2lvbiomIGVuZFJlZ2lvbikgY29uc3Q7Ci0gICAgYm9v
bCBoYXNDYWNoZWRSZWdpb25SYW5nZUZvckJveChjb25zdCBSZW5kZXJCb3gqKSBjb25zdDsKKyAg
ICBib29sIGhhc0NhY2hlZFJlZ2lvblJhbmdlRm9yQm94KGNvbnN0IFJlbmRlckJveCYpIGNvbnN0
OwogCiAgICAgLy8gQ2hlY2sgaWYgdGhlIG9iamVjdCBpcyBpbiByZWdpb24gYW5kIHRoZSByZWdp
b24gaXMgcGFydCBvZiB0aGlzIGZsb3cgdGhyZWFkLgogICAgIGJvb2wgb2JqZWN0SW5GbG93UmVn
aW9uKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlclJlZ2lvbiopIGNvbnN0OwpAQCAt
MjAwLDcgKzIwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHB1c2hGbG93VGhyZWFkTGF5b3V0U3Rh
dGUoY29uc3QgUmVuZGVyT2JqZWN0Jik7CiAgICAgdm9pZCBwb3BGbG93VGhyZWFkTGF5b3V0U3Rh
dGUoKTsKICAgICBMYXlvdXRVbml0IG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFJlZ2lvbihj
b25zdCBSZW5kZXJCbG9jayopIGNvbnN0OwotICAgIHZvaWQgY2xlYXJSZW5kZXJCb3hSZWdpb25J
bmZvQW5kQ3VzdG9tU3R5bGUoY29uc3QgUmVuZGVyQm94KiwgY29uc3QgUmVuZGVyUmVnaW9uKiwg
Y29uc3QgUmVuZGVyUmVnaW9uKiwgY29uc3QgUmVuZGVyUmVnaW9uKiwgY29uc3QgUmVuZGVyUmVn
aW9uKik7CisgICAgdm9pZCBjbGVhclJlbmRlckJveFJlZ2lvbkluZm9BbmRDdXN0b21TdHlsZShj
b25zdCBSZW5kZXJCb3gmLCBjb25zdCBSZW5kZXJSZWdpb24qLCBjb25zdCBSZW5kZXJSZWdpb24q
LCBjb25zdCBSZW5kZXJSZWdpb24qLCBjb25zdCBSZW5kZXJSZWdpb24qKTsKIAogICAgIHZvaWQg
YWRkUmVnaW9uc1Zpc3VhbEVmZmVjdE92ZXJmbG93KGNvbnN0IFJlbmRlckJveCopOwogICAgIHZv
aWQgYWRkUmVnaW9uc1Zpc3VhbE92ZXJmbG93RnJvbVRoZW1lKGNvbnN0IFJlbmRlckJsb2NrKik7
CkBAIC0yNzQsOCArMjc0LDggQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBnZXRSZWdpb25SYW5n
ZUZvckJveEZyb21DYWNoZWRJbmZvKGNvbnN0IFJlbmRlckJveCosIFJlbmRlclJlZ2lvbiomIHN0
YXJ0UmVnaW9uLCBSZW5kZXJSZWdpb24qJiBlbmRSZWdpb24pIGNvbnN0OwogCi0gICAgdm9pZCBy
ZW1vdmVSZW5kZXJCb3hSZWdpb25JbmZvKFJlbmRlckJveCopOwotICAgIHZvaWQgcmVtb3ZlTGlu
ZVJlZ2lvbkluZm8oY29uc3QgUmVuZGVyQmxvY2tGbG93Kik7CisgICAgdm9pZCByZW1vdmVSZW5k
ZXJCb3hSZWdpb25JbmZvKFJlbmRlckJveCYpOworICAgIHZvaWQgcmVtb3ZlTGluZVJlZ2lvbklu
Zm8oY29uc3QgUmVuZGVyQmxvY2tGbG93Jik7CiAKICAgICBSZW5kZXJSZWdpb25MaXN0IG1fcmVn
aW9uTGlzdDsKICAgICB1bnNpZ25lZCBzaG9ydCBtX3ByZXZpb3VzUmVnaW9uQ291bnQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhy
ZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dU
aHJlYWQuY3BwCmluZGV4IDhjNDljZjM3YTQ1MjhkZWY0MDE2ZjRhOWI4MmUzMTRhNDU2YWFkMDcu
LjgyZjI4NDAxMTMxMjM2OTA2NWFjNWQxNWNmMWIxZjBlZmE1N2MwMTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQu
Y3BwCkBAIC01NDUsNyArNTQ1LDcgQEAgUmVuZGVyUmVnaW9uKiBSZW5kZXJNdWx0aUNvbHVtbkZs
b3dUaHJlYWQ6OnJlZ2lvbkF0QmxvY2tPZmZzZXQoY29uc3QgUmVuZGVyQm94KgogICAgIHJldHVy
biBjb2x1bW5TZXQ7CiB9CiAKLXZvaWQgUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkOjpzZXRS
ZWdpb25SYW5nZUZvckJveChjb25zdCBSZW5kZXJCb3gqIGJveCwgUmVuZGVyUmVnaW9uKiBzdGFy
dFJlZ2lvbiwgUmVuZGVyUmVnaW9uKiBlbmRSZWdpb24pCit2b2lkIFJlbmRlck11bHRpQ29sdW1u
Rmxvd1RocmVhZDo6c2V0UmVnaW9uUmFuZ2VGb3JCb3goY29uc3QgUmVuZGVyQm94JiBib3gsIFJl
bmRlclJlZ2lvbiogc3RhcnRSZWdpb24sIFJlbmRlclJlZ2lvbiogZW5kUmVnaW9uKQogewogICAg
IC8vIFNvbWUgY29sdW1uIHNldHMgbWF5IGhhdmUgemVybyBoZWlnaHQsIHdoaWNoIG1lYW5zIHRo
YXQgdHdvIG9yIG1vcmUgc2V0cyBtYXkgc3RhcnQgYXQgdGhlCiAgICAgLy8gZXhhY3Qgc2FtZSBm
bG93IHRocmVhZCBwb3NpdGlvbiwgd2hpY2ggbWVhbnMgdGhhdCBzb21lIHBhcnRzIG9mIHRoZSBj
b2RlIG1heSBiZWxpZXZlIHRoYXQgYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5oCmluZGV4IGI5NzM3NmY5NzFkOWE0MTU1
ZWQ3MzhjNzdmM2IxNjk2YjgwYjU5M2EuLjg0MjczYjdlZmUzZTJhOWU4ZWNhZjUxYTA0YjViY2Jm
ZmRmMmQ3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0
aUNvbHVtbkZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TXVsdGlDb2x1bW5GbG93VGhyZWFkLmgKQEAgLTEyMSw3ICsxMjEsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2V0UGFnZUJyZWFrKGNvbnN0IFJlbmRlckJsb2NrKiwgTGF5b3V0VW5pdCBvZmZzZXQs
IExheW91dFVuaXQgc3BhY2VTaG9ydGFnZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVNaW5p
bXVtUGFnZUhlaWdodChjb25zdCBSZW5kZXJCbG9jayosIExheW91dFVuaXQgb2Zmc2V0LCBMYXlv
dXRVbml0IG1pbkhlaWdodCkgb3ZlcnJpZGU7CiAgICAgUmVuZGVyUmVnaW9uKiByZWdpb25BdEJs
b2NrT2Zmc2V0KGNvbnN0IFJlbmRlckJveCosIExheW91dFVuaXQsIGJvb2wgZXh0ZW5kTGFzdFJl
Z2lvbiA9IGZhbHNlKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFJlZ2lvblJhbmdlRm9y
Qm94KGNvbnN0IFJlbmRlckJveCosIFJlbmRlclJlZ2lvbiosIFJlbmRlclJlZ2lvbiopIG92ZXJy
aWRlOworICAgIHZvaWQgc2V0UmVnaW9uUmFuZ2VGb3JCb3goY29uc3QgUmVuZGVyQm94JiwgUmVu
ZGVyUmVnaW9uKiwgUmVuZGVyUmVnaW9uKikgb3ZlcnJpZGU7CiAgICAgYm9vbCBhZGRGb3JjZWRS
ZWdpb25CcmVhayhjb25zdCBSZW5kZXJCbG9jayosIExheW91dFVuaXQsIFJlbmRlckJveCogYnJl
YWtDaGlsZCwgYm9vbCBpc0JlZm9yZSwgTGF5b3V0VW5pdCogb2Zmc2V0QnJlYWtBZGp1c3RtZW50
ID0gMCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1BhZ2VMb2dpY2FsSGVpZ2h0S25vd24oKSBjb25z
dCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck5hbWVkRmxvd0ZyYWdtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJO
YW1lZEZsb3dGcmFnbWVudC5jcHAKaW5kZXggMzE1MGRlODE3ODY3MDM2ODI4MDVjMjBkYzJiYmUw
OWNlYjYwN2U0ZS4uZmZmZWMwMThlMjNkZWFjNDJmMTYyYmU1MTUzMDBmMTE3NDhkOGFlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93RnJhZ21l
bnQuY3BwCkBAIC00MDEsMTQgKzQwMSwxMyBAQCB2b2lkIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50
OjpzZXRSZW5kZXJlclN0eWxlSW5SZWdpb24oUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsCiAgICAg
bV9yZW5kZXJlclJlZ2lvblN0eWxlLnNldCgmcmVuZGVyZXIsIFdURk1vdmUoc3R5bGVJbmZvKSk7
CiB9CiAKLXZvaWQgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ6OmNsZWFyT2JqZWN0U3R5bGVJblJl
Z2lvbihjb25zdCBSZW5kZXJFbGVtZW50KiBvYmplY3QpCit2b2lkIFJlbmRlck5hbWVkRmxvd0Zy
YWdtZW50OjpjbGVhck9iamVjdFN0eWxlSW5SZWdpb24oY29uc3QgUmVuZGVyRWxlbWVudCYgb2Jq
ZWN0KQogewotICAgIEFTU0VSVChvYmplY3QpOwotICAgIG1fcmVuZGVyZXJSZWdpb25TdHlsZS5y
ZW1vdmUob2JqZWN0KTsKKyAgICBtX3JlbmRlcmVyUmVnaW9uU3R5bGUucmVtb3ZlKCZvYmplY3Qp
OwogCiAgICAgLy8gQ2xlYXIgdGhlIHN0eWxlIGZvciB0aGUgY2hpbGRyZW4gb2YgdGhpcyBvYmpl
Y3QuCi0gICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPFJlbmRlckVsZW1lbnQ+
KCpvYmplY3QpKQotICAgICAgICBjbGVhck9iamVjdFN0eWxlSW5SZWdpb24oJmNoaWxkKTsKKyAg
ICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8UmVuZGVyRWxlbWVudD4ob2JqZWN0
KSkKKyAgICAgICAgY2xlYXJPYmplY3RTdHlsZUluUmVnaW9uKGNoaWxkKTsKIH0KIAogdm9pZCBS
ZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6c2V0UmVnaW9uT2JqZWN0c1JlZ2lvblN0eWxlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgK
aW5kZXggMWUyYTAxMGQwNGM1ZmZkY2VlYTkwYjBmZTk0ZDU4YTQ3ODYyMzdiMS4uYWFjNGY5MjI1
ZjY4Y2M5NmYzMDcwZTRmMWI3NzYwZWU3ODRmMmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgKQEAgLTc5LDcgKzc5LDcgQEAg
cHVibGljOgogICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QmIGxheWVyT3duZXIoKSBjb25zdCB7
IHJldHVybiBkb3duY2FzdDxSZW5kZXJMYXllck1vZGVsT2JqZWN0PigqcGFyZW50KCkpOyB9CiAK
ICAgICBib29sIGhhc0N1c3RvbVJlZ2lvblN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9oYXNDdXN0
b21SZWdpb25TdHlsZTsgfQotICAgIHZvaWQgY2xlYXJPYmplY3RTdHlsZUluUmVnaW9uKGNvbnN0
IFJlbmRlckVsZW1lbnQqKTsKKyAgICB2b2lkIGNsZWFyT2JqZWN0U3R5bGVJblJlZ2lvbihjb25z
dCBSZW5kZXJFbGVtZW50Jik7CiAKICAgICB2b2lkIHNldFJlZ2lvbk9iamVjdHNSZWdpb25TdHls
ZSgpOwogICAgIHZvaWQgcmVzdG9yZVJlZ2lvbk9iamVjdHNPcmlnaW5hbFN0eWxlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCmlu
ZGV4IDM3NjU0MDllZWZjYTA5MTllZmE4ZjU2YWM5MDczNTQ3NzllOWZhM2QuLjBhODY1MWU0ZDU3
MzUxNzAxNThiMGRkNTMxNWVhNTc3ZDZhMWM1M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCkBAIC03NzksNyArNzc5LDcgQEAg
dm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmNoZWNrUmVnaW9uc1dpdGhTdHlsaW5nKCkKICAg
ICBtX2hhc1JlZ2lvbnNXaXRoU3R5bGluZyA9IGhhc1JlZ2lvbnNXaXRoU3R5bGluZzsKIH0KIAot
dm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmNsZWFyUmVuZGVyT2JqZWN0Q3VzdG9tU3R5bGUo
Y29uc3QgUmVuZGVyRWxlbWVudCogb2JqZWN0KQordm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6
OmNsZWFyUmVuZGVyT2JqZWN0Q3VzdG9tU3R5bGUoY29uc3QgUmVuZGVyRWxlbWVudCYgb2JqZWN0
KQogewogICAgIC8vIENsZWFyIHRoZSBzdHlsZXMgZm9yIHRoZSBvYmplY3QgaW4gdGhlIHJlZ2lv
bnMuCiAgICAgLy8gRklYTUU6IFJlZ2lvbiBzdHlsaW5nIGlzIG5vdCBjb21wdXRlZCBvbmx5IGZv
ciB0aGUgcmVnaW9uIHJhbmdlIG9mIHRoZSBvYmplY3Qgc28gdGhpcyBpcyB3aHkgd2UgbmVlZCB0
byB3YWxrIHRoZSB3aG9sZSBjaGFpbi4KQEAgLTc4Nyw3ICs3ODcsNyBAQCB2b2lkIFJlbmRlck5h
bWVkRmxvd1RocmVhZDo6Y2xlYXJSZW5kZXJPYmplY3RDdXN0b21TdHlsZShjb25zdCBSZW5kZXJF
bGVtZW50KiBvYgogICAgICAgICBkb3duY2FzdDxSZW5kZXJOYW1lZEZsb3dGcmFnbWVudD4oKnJl
Z2lvbikuY2xlYXJPYmplY3RTdHlsZUluUmVnaW9uKG9iamVjdCk7CiB9CiAKLXZvaWQgUmVuZGVy
TmFtZWRGbG93VGhyZWFkOjpyZW1vdmVGbG93Q2hpbGRJbmZvKFJlbmRlckVsZW1lbnQqIGNoaWxk
KQordm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlbW92ZUZsb3dDaGlsZEluZm8oUmVuZGVy
RWxlbWVudCYgY2hpbGQpCiB7CiAgICAgUmVuZGVyRmxvd1RocmVhZDo6cmVtb3ZlRmxvd0NoaWxk
SW5mbyhjaGlsZCk7CiAgICAgY2xlYXJSZW5kZXJPYmplY3RDdXN0b21TdHlsZShjaGlsZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFk
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgKaW5k
ZXggOGMxZWYwYTdiYjZhNjhkYTVhZDZhNDRiYTljYTQ4ZmFhMWMzOGNlMS4uZmVlMmYzNTUwMjVl
NTM0YTUzOGMyN2NiYjMwZmZlMDQ3MGJlYWRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaApAQCAtODIsOSArODIsOSBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNSZWdpb25zV2l0aFN0eWxpbmcoKSBjb25zdCB7IHJldHVybiBtX2hhc1Jl
Z2lvbnNXaXRoU3R5bGluZzsgfQogICAgIHZvaWQgY2hlY2tSZWdpb25zV2l0aFN0eWxpbmcoKTsK
IAotICAgIHZvaWQgY2xlYXJSZW5kZXJPYmplY3RDdXN0b21TdHlsZShjb25zdCBSZW5kZXJFbGVt
ZW50Kik7CisgICAgdm9pZCBjbGVhclJlbmRlck9iamVjdEN1c3RvbVN0eWxlKGNvbnN0IFJlbmRl
ckVsZW1lbnQmKTsKIAotICAgIHZvaWQgcmVtb3ZlRmxvd0NoaWxkSW5mbyhSZW5kZXJFbGVtZW50
Kikgb3ZlcnJpZGU7CisgICAgdm9pZCByZW1vdmVGbG93Q2hpbGRJbmZvKFJlbmRlckVsZW1lbnQm
KSBvdmVycmlkZTsKIAogICAgIExheW91dFVuaXQgZmxvd0NvbnRlbnRCb3R0b20oKSBjb25zdCB7
IHJldHVybiBtX2Zsb3dDb250ZW50Qm90dG9tOyB9CiAgICAgdm9pZCBkaXNwYXRjaE5hbWVkRmxv
d0V2ZW50cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
Z2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAppbmRl
eCBlZmEwNzIyNTNmMDU4MWIwZjUyNDA5OTgzOWUyODE1Yzk2NzExMTFhLi42YmI3ODkwM2UyMjI4
N2I2ZDE2ODc3ODg2NDc1Mjk0YjEzNjJjZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmNwcApAQCAtMzI1LDkgKzMyNSw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW5k
ZXJCb3hSZWdpb25JbmZvPiBSZW5kZXJSZWdpb246OnRha2VSZW5kZXJCb3hSZWdpb25JbmZvKGNv
bnN0CiAgICAgcmV0dXJuIG1fcmVuZGVyQm94UmVnaW9uSW5mby50YWtlKGJveCk7CiB9CiAKLXZv
aWQgUmVuZGVyUmVnaW9uOjpyZW1vdmVSZW5kZXJCb3hSZWdpb25JbmZvKGNvbnN0IFJlbmRlckJv
eCogYm94KQordm9pZCBSZW5kZXJSZWdpb246OnJlbW92ZVJlbmRlckJveFJlZ2lvbkluZm8oY29u
c3QgUmVuZGVyQm94JiBib3gpCiB7Ci0gICAgbV9yZW5kZXJCb3hSZWdpb25JbmZvLnJlbW92ZShi
b3gpOworICAgIG1fcmVuZGVyQm94UmVnaW9uSW5mby5yZW1vdmUoJmJveCk7CiB9CiAKIHZvaWQg
UmVuZGVyUmVnaW9uOjpkZWxldGVBbGxSZW5kZXJCb3hSZWdpb25JbmZvKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAppbmRleCA5YTQ0MDEwMjNjNTJhMTRmYTlmNjVlOTkx
YjIxMTZlODExYTMwZWY3Li5iNjdkNTE2NmZkYTk4NTk3ZGRjMjg5ZjRhYTRhNjk4Mzc0MzAyNTg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCkBAIC02OCw3ICs2OCw3
IEBAIHB1YmxpYzoKICAgICBSZW5kZXJCb3hSZWdpb25JbmZvKiBzZXRSZW5kZXJCb3hSZWdpb25J
bmZvKGNvbnN0IFJlbmRlckJveCosIExheW91dFVuaXQgbG9naWNhbExlZnRJbnNldCwgTGF5b3V0
VW5pdCBsb2dpY2FsUmlnaHRJbnNldCwKICAgICAgICAgYm9vbCBjb250YWluaW5nQmxvY2tDaGFp
bklzSW5zZXQpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJCb3hSZWdpb25JbmZvPiB0YWtl
UmVuZGVyQm94UmVnaW9uSW5mbyhjb25zdCBSZW5kZXJCb3gqKTsKLSAgICB2b2lkIHJlbW92ZVJl
bmRlckJveFJlZ2lvbkluZm8oY29uc3QgUmVuZGVyQm94Kik7CisgICAgdm9pZCByZW1vdmVSZW5k
ZXJCb3hSZWdpb25JbmZvKGNvbnN0IFJlbmRlckJveCYpOwogCiAgICAgdm9pZCBkZWxldGVBbGxS
ZW5kZXJCb3hSZWdpb25JbmZvKCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>