<?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>84250</bug_id>
          
          <creation_ts>2012-04-18 09:38:58 -0700</creation_ts>
          <short_desc>[V8] Pass Isolate to toV8() (Part1)</short_desc>
          <delta_ts>2012-04-23 11:18:42 -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>WebCore JavaScript</component>
          <version>528+ (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>
          
          <blocked>84074</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>604826</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-18 09:38:58 -0700</bug_when>
    <thetext>The final objective is to pass Isolate around in V8 bindings. In this bug, we pass Isolate to toV8(). There are a lot of toV8(), I&apos;ll make the change step by step.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604829</commentid>
    <comment_count>1</comment_count>
      <attachid>137710</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-18 09:42:08 -0700</bug_when>
    <thetext>Created attachment 137710
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607865</commentid>
    <comment_count>2</comment_count>
      <attachid>137710</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-23 11:18:37 -0700</bug_when>
    <thetext>Comment on attachment 137710
Patch

Clearing flags on attachment: 137710

Committed r114920: &lt;http://trac.webkit.org/changeset/114920&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607866</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-23 11:18:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137710</attachid>
            <date>2012-04-18 09:42:08 -0700</date>
            <delta_ts>2012-04-23 11:18:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84250-20120418094207.patch</filename>
            <type>text/plain</type>
            <size>28951</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDBiYzlhZDY2ZDI5ODQ3
ZjczNDQwOWQwNjQ1MWYyODdhNzVkOTEyOC4uMWI1OGZjZTNiOWY5YTdmM2ZiNmE4ZTExODZiZmMy
YWRmMzc3NmZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEyLTA0LTE4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byB0b1Y4KCkgKFBhcnQxKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODQyNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgZmluYWwgb2JqZWN0aXZlIGlzIHRvIHBhc3MgSXNvbGF0ZSBhcm91
bmQgaW4gVjggYmluZGluZ3MuCisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgYSBjaGFuZ2UgaW4g
Q29kZUdlbmVyYXRvclY4LnBtIHNvIHRoYXQgdGhlCisgICAgICAgIGdlbmVyYXRlZCBjb2RlIHBh
c3NlcyBJc29sYXRlIHRvIHRvVjgoKS4KKworICAgICAgICBObyB0ZXN0cy4gTm8gY2hhbmdlIGlu
IGJlaGF2aW9yLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG06IE1vZGlmaWVkIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgICAgKEdlbmVyYXRlTm9ybWFs
QXR0ckdldHRlcik6CisgICAgICAgIChHZW5lcmF0ZU5hbWVkQ29uc3RydWN0b3JDYWxsYmFjayk6
CisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcpOgorICAgICAgICAoTmF0aXZlVG9KU1ZhbHVlKToKKwor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHA6IFVw
ZGF0ZWQgcnVuLWJpbmRpbmdzLXRlc3RzIHJlc3VsdHMuCisgICAgICAgIChXZWJDb3JlOjpGbG9h
dDY0QXJyYXlWOEludGVybmFsOjpmb29DYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdENhbGxiYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVz
dENhbGxiYWNrOjpjYWxsYmFja1dpdGhDbGFzczFQYXJhbSk6CisgICAgICAgIChXZWJDb3JlOjpW
OFRlc3RDYWxsYmFjazo6Y2FsbGJhY2tXaXRoQ2xhc3MyUGFyYW0pOgorICAgICAgICAoV2ViQ29y
ZTo6VjhUZXN0Q2FsbGJhY2s6OmNhbGxiYWNrV2l0aFN0cmluZ0xpc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhUZXN0Q2FsbGJhY2s6OmNhbGxiYWNrUmVxdWlyZXNUaGlzVG9QYXNzKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRlc3RJbnRlcmZhY2VWOEludGVybmFsOjpzdXBwbGVtZW50YWxNZXRob2Qy
Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1l
ZENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdE5hbWVkQ29uc3RydWN0
b3JDb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpy
ZWFkT25seVRlc3RPYmpBdHRyQXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2Jq
VjhJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpWOEludGVybmFsOjpYTUxPYmpBdHRyQXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVB
dHRyR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3aXRoU2Ny
aXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNBdHRyR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNl
c0F0dHJHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OndpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVBdHRyR2V0dGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzQXR0ckdldHRlcik6CisgICAgICAg
IChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGVBdHRyR2V0dGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNr
QXR0cmlidXRlQXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y2FjaGVkQXR0cmlidXRlMUF0dHJHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6OmNhY2hlZEF0dHJpYnV0ZTJBdHRyR2V0dGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlRlc3RPYmpWOEludGVybmFsOjptdXRhYmxlUG9pbnRBdHRyR2V0dGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjppbW11dGFibGVQb2ludEF0dHJHZXR0ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om9iak1ldGhvZENhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvYmpNZXRob2RXaXRoQXJnc0Nh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjptZXRob2RUaGF0
UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRTdGF0ZU9iakNhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVPYmpFeGNlcHRpb25DYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZU9iakV4Y2VwdGlvbkNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpWOEludGVybmFsOjptdXRhYmxlUG9pbnRGdW5jdGlvbkNhbGxiYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjppbW11dGFibGVQb2ludEZ1bmN0aW9uQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0cmljdEZ1bmN0aW9u
Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVY4SW50ZXJuYWw6OnBvcnRzQXR0ckdldHRlcik6
CisKIDIwMTItMDQtMTggIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogRGF0YUdyaWQgc2hvdWxkIHVzZSBleHBsaWNpdCByb290
IG5vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0KaW5kZXggODAwMjc1MTc2MTAyNWQwOWIzMmZmMWViYzkyYTg4ZmE4NzYzNTdjMS4u
YTExOWQzOGZjNDE0ZTRkYzY2NjJkNzYyNmE4Mjg3YzgyMGJkNzFkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTkzMCw3
ICs5MzAsNyBAQCBFTkQKICAgICAgICAgbXkgJGRvbU1hcEZ1bmN0aW9uID0gR2V0RG9tTWFwRnVu
Y3Rpb24oJGRhdGFOb2RlLCAkaW50ZXJmYWNlTmFtZSk7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50RGVjbHMsICIgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBwZXIgPSByZXN1bHQuZ2V0
KCkgPyAke2RvbU1hcEZ1bmN0aW9ufS5nZXQocmVzdWx0LmdldCgpKSA6IHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4oKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlm
ICh3cmFwcGVyLklzRW1wdHkoKSkge1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICIgICAgICAgIHdyYXBwZXIgPSB0b1Y4KHJlc3VsdC5nZXQoKSk7XG4iKTsKKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0Lmdl
dCgpLCBpbmZvLkdldElzb2xhdGUoKSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgIiAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSlcbiIpOwogICAgICAgICBpZiAo
JGRhdGFOb2RlLT5uYW1lIGVxICJET01XaW5kb3ciKSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCAiICAgICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlbldp
bmRvd1JlZmVyZW5jZShpbXAtPmZyYW1lKCksIFwiJHthdHRyTmFtZX1cIiwgd3JhcHBlcik7XG4i
KTsKQEAgLTk0OCw3ICs5NDgsNyBAQCBFTkQKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4
JGF0dHJUeXBlLmgiKTsKICAgICAgICAgbXkgJHN2Z05hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRv
ci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRhdHRyVHlwZSk7CiAgICAgICAgICMgQ29udmVy
dCBmcm9tIGFic3RyYWN0IFNWR1Byb3BlcnR5IHRvIHJlYWwgdHlwZSwgc28gdGhlIHJpZ2h0IHRv
SlMoKSBtZXRob2QgY2FuIGJlIGludm9rZWQuCi0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICIgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8JHN2Z05hdGl2ZVR5cGUqPigkcmVzdWx0
KSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1cm4gdG9W
OChzdGF0aWNfY2FzdDwkc3ZnTmF0aXZlVHlwZSo+KCRyZXN1bHQpLCBpbmZvLkdldElzb2xhdGUo
KSk7XG4iKTsKICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1Rl
YXJPZmYoJGF0dHJUeXBlKSBhbmQgbm90ICRpbXBsQ2xhc3NOYW1lID1+IC9MaXN0JC8pIHsKICAg
ICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4JGF0dHJUeXBlLmgiKTsKICAgICAgICAgQWRkVG9J
bXBsSW5jbHVkZXMoIlNWR1Byb3BlcnR5VGVhck9mZi5oIik7CkBAIC05NzEsMTkgKzk3MSwxOSBA
QCBFTkQKICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCA9fiBzL21hdHJpeC9zdmdNYXRyaXgv
OwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsICIgICAgcmV0dXJuIHRvVjgoV1RGOjpnZXRQdHIoJHt0ZWFyT2ZmVHlwZX06OmNyZWF0
ZSh3cmFwcGVyLCAkcmVzdWx0LCAkdXBkYXRlTWV0aG9kKSkpO1xuIik7CisgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1cm4gdG9WOChXVEY6OmdldFB0cigk
e3RlYXJPZmZUeXBlfTo6Y3JlYXRlKHdyYXBwZXIsICRyZXN1bHQsICR1cGRhdGVNZXRob2QpKSwg
aW5mby5HZXRJc29sYXRlKCkpO1xuIik7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaCIpOwog
ICAgICAgICAgICAgICAgICR0ZWFyT2ZmVHlwZSA9fiBzL1NWR1Byb3BlcnR5VGVhck9mZjwvU1ZH
U3RhdGljUHJvcGVydHlUZWFyT2ZmPCRpbXBsQ2xhc3NOYW1lLCAvOwogCi0gICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1cm4gdG9WOChXVEY6OmdldFB0cigk
e3RlYXJPZmZUeXBlfTo6Y3JlYXRlKGltcCwgJHJlc3VsdCwgJHVwZGF0ZU1ldGhvZCkpKTtcbiIp
OworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJuIHRv
VjgoV1RGOjpnZXRQdHIoJHt0ZWFyT2ZmVHlwZX06OmNyZWF0ZShpbXAsICRyZXN1bHQsICR1cGRh
dGVNZXRob2QpKSwgaW5mby5HZXRJc29sYXRlKCkpO1xuIik7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0gZWxzaWYgKCR0ZWFyT2ZmVHlwZSA9fiAvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9m
Zi8pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJuIHRv
VjgoV1RGOjpnZXRQdHIoJHt0ZWFyT2ZmVHlwZX06OmNyZWF0ZShpbXAsICRyZXN1bHQpKSk7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJuIHRvVjgo
V1RGOjpnZXRQdHIoJHt0ZWFyT2ZmVHlwZX06OmNyZWF0ZShpbXAsICRyZXN1bHQpKSwgaW5mby5H
ZXRJc29sYXRlKCkpO1xuIik7CiAgICAgICAgIH0gZWxzaWYgKCR0ZWFyT2ZmVHlwZSA9fiAvU1ZH
KFBvaW50fFBhdGhTZWcpTGlzdC8pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICIgICAgcmV0dXJuIHRvVjgoV1RGOjpnZXRQdHIoJHJlc3VsdCkpO1xuIik7CisgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVybiB0b1Y4KFdURjo6Z2V0UHRy
KCRyZXN1bHQpLCBpbmZvLkdldElzb2xhdGUoKSk7XG4iKTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJuIHRvVjgoV1RGOjpn
ZXRQdHIoJHt0ZWFyT2ZmVHlwZX06OmNyZWF0ZSgkcmVzdWx0KSkpO1xuIik7CisgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVybiB0b1Y4KFdURjo6Z2V0UHRyKCR7
dGVhck9mZlR5cGV9OjpjcmVhdGUoJHJlc3VsdCkpLCBpbmZvLkdldElzb2xhdGUoKSk7XG4iKTsK
ICAgICAgICAgfQogICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBlcSAi
TWVzc2FnZVBvcnRBcnJheSIpIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4QXJyYXku
aCIpOwpAQCAtOTk2LDcgKzk5Niw3IEBAIEVORAogICAgIE1lc3NhZ2VQb3J0QXJyYXkgcG9ydHND
b3B5KCpwb3J0cyk7CiAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gcG9ydEFycmF5ID0gdjg6OkFy
cmF5OjpOZXcocG9ydHNDb3B5LnNpemUoKSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBw
b3J0c0NvcHkuc2l6ZSgpOyArK2kpCi0gICAgICAgIHBvcnRBcnJheS0+U2V0KHY4OjpJbnRlZ2Vy
OjpOZXcoaSksIHRvVjgocG9ydHNDb3B5W2ldLmdldCgpKSk7CisgICAgICAgIHBvcnRBcnJheS0+
U2V0KHY4OjpJbnRlZ2VyOjpOZXcoaSksIHRvVjgocG9ydHNDb3B5W2ldLmdldCgpLCBpbmZvLkdl
dElzb2xhdGUoKSkpOwogICAgIHJldHVybiBwb3J0QXJyYXk7CiBFTkQKICAgICB9IGVsc2UgewpA
QCAtMTg5Niw3ICsxODk2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOCR7aW1w
bENsYXNzTmFtZX1Db25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmcKIAogICAgIC8vIE1h
a2Ugc3VyZSB0aGUgZG9jdW1lbnQgaXMgYWRkZWQgdG8gdGhlIERPTSBOb2RlIG1hcC4gT3RoZXJ3
aXNlLCB0aGUgJHtpbXBsQ2xhc3NOYW1lfSBpbnN0YW5jZQogICAgIC8vIG1heSBlbmQgdXAgYmVp
bmcgdGhlIG9ubHkgbm9kZSBpbiB0aGUgbWFwIGFuZCBnZXQgZ2FyYmFnZS1jb2xsZWN0ZWQgcHJl
bWF0dXJlbHkuCi0gICAgdG9WOChkb2N1bWVudCk7CisgICAgdG9WOChkb2N1bWVudCwgYXJncy5H
ZXRJc29sYXRlKCkpOwogCiBFTkQKIApAQCAtMzA2MCw3ICszMDYwLDcgQEAgRU5ECiAgICAgICAg
ICAgICBAYXJncyA9ICgpOwogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEBwYXJhbXMp
IHsKICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJHBhcmFtLT5uYW1lOwotICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAk
e3BhcmFtTmFtZX1IYW5kbGUgPSAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRwYXJhbSwgJHBhcmFtTmFt
ZSkgLiAiO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+ICR7cGFyYW1OYW1lfUhhbmRsZSA9ICIgLiBOYXRpdmVUb0pTVmFs
dWUoJHBhcmFtLCAkcGFyYW1OYW1lLCAiMCIpIC4gIjtcbiIpOwogICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmICgke3BhcmFtTmFtZX1IYW5kbGUuSXNFbXB0eSgpKSB7
XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgaWYgKCFp
c1NjcmlwdENvbnRyb2xsZXJUZXJtaW5hdGluZygpKVxuIik7CiAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgICAgICBDUkFTSCgpO1xuIik7CkBAIC0zMzMwLDcgKzMz
MzAsNyBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcoKQogICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiVjgkcmV0dXJuVHlwZS5oIik7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCJTVkdQcm9wZXJ0eVRlYXJPZmYuaCIpOwogICAgICAgICBteSAkc3ZnTmF0aXZlVHlwZSA9ICRj
b2RlR2VuZXJhdG9yLT5HZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHJldHVyblR5cGUpOwotICAg
ICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAicmV0dXJuIHRvVjgoV1RGOjpnZXRQdHIoJHtzdmdO
YXRpdmVUeXBlfTo6Y3JlYXRlKCRyZXR1cm4pKSk7XG4iOworICAgICAgICAkcmVzdWx0IC49ICRp
bmRlbnQgLiAicmV0dXJuIHRvVjgoV1RGOjpnZXRQdHIoJHtzdmdOYXRpdmVUeXBlfTo6Y3JlYXRl
KCRyZXR1cm4pKSwgYXJncy5HZXRJc29sYXRlKCkpO1xuIjsKICAgICAgICAgcmV0dXJuICRyZXN1
bHQ7CiAgICAgfQogCkBAIC0zNzg4LDE1ICszNzg4LDE0IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUK
IAogICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKSkgewogICAgICAg
ICBteSAkY29udiA9ICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUcmVhdFJldHVy
bmVkTnVsbFN0cmluZ0FzIn07Ci0gICAgICAgIG15ICRnZXRJc29sYXRlQXJndW1lbnQgPSAkZ2V0
SXNvbGF0ZSA/ICIsICRnZXRJc29sYXRlIiA6ICIiOwogICAgICAgICBpZiAoZGVmaW5lZCAkY29u
dikgewotICAgICAgICAgICAgcmV0dXJuICJ2OFN0cmluZ09yTnVsbCgkdmFsdWUkZ2V0SXNvbGF0
ZUFyZ3VtZW50KSIgaWYgJGNvbnYgZXEgIk51bGwiOwotICAgICAgICAgICAgcmV0dXJuICJ2OFN0
cmluZ09yVW5kZWZpbmVkKCR2YWx1ZSRnZXRJc29sYXRlQXJndW1lbnQpIiBpZiAkY29udiBlcSAi
VW5kZWZpbmVkIjsKLSAgICAgICAgICAgIHJldHVybiAidjhTdHJpbmdPckZhbHNlKCR2YWx1ZSRn
ZXRJc29sYXRlQXJndW1lbnQpIiBpZiAkY29udiBlcSAiRmFsc2UiOworICAgICAgICAgICAgcmV0
dXJuICJ2OFN0cmluZ09yTnVsbCgkdmFsdWUsICRnZXRJc29sYXRlKSIgaWYgJGNvbnYgZXEgIk51
bGwiOworICAgICAgICAgICAgcmV0dXJuICJ2OFN0cmluZ09yVW5kZWZpbmVkKCR2YWx1ZSwgJGdl
dElzb2xhdGUpIiBpZiAkY29udiBlcSAiVW5kZWZpbmVkIjsKKyAgICAgICAgICAgIHJldHVybiAi
djhTdHJpbmdPckZhbHNlKCR2YWx1ZSwgJGdldElzb2xhdGUpIiBpZiAkY29udiBlcSAiRmFsc2Ui
OwogCiAgICAgICAgICAgICBkaWUgIlVua25vd24gdmFsdWUgZm9yIFRyZWF0UmV0dXJuZWROdWxs
U3RyaW5nQXMgZXh0ZW5kZWQgYXR0cmlidXRlIjsKICAgICAgICAgfQotICAgICAgICByZXR1cm4g
InY4U3RyaW5nKCR2YWx1ZSRnZXRJc29sYXRlQXJndW1lbnQpIjsKKyAgICAgICAgcmV0dXJuICJ2
OFN0cmluZygkdmFsdWUsICRnZXRJc29sYXRlKSI7CiAgICAgfQogCiAgICAgbXkgJGFycmF5VHlw
ZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRBcnJheVR5cGUoJHR5cGUpOwpAQCAtMzgxMiw3ICszODEx
LDcgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogCiAgICAgIyBzcGVjaWFsIGNhc2UgZm9yIG5vbi1E
T00gbm9kZSBpbnRlcmZhY2VzCiAgICAgaWYgKElzRE9NTm9kZVR5cGUoJHR5cGUpKSB7Ci0gICAg
ICAgIHJldHVybiAidG9WOCgke3ZhbHVlfSIgLiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlJldHVybk5ld09iamVjdCJ9ID8gIiwgMCwgdHJ1ZSkiIDogIikiKTsKKyAgICAgICAg
cmV0dXJuICJ0b1Y4KCR7dmFsdWV9IiAuICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiUmV0dXJuTmV3T2JqZWN0In0gPyAiLCAkZ2V0SXNvbGF0ZSwgdHJ1ZSkiIDogIikiKTsKICAg
ICB9CiAKICAgICBpZiAoJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IikgewpAQCAtMzgzMyw3ICszODMy
LDcgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJ3dGYvUmVm
UHRyLmgiKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygid3RmL0dldFB0ci5oIik7CiAKLSAgICBy
ZXR1cm4gInRvVjgoJHZhbHVlKSI7CisgICAgcmV0dXJuICJ0b1Y4KCR2YWx1ZSwgJGdldElzb2xh
dGUpIjsKIH0KIAogc3ViIFJldHVybk5hdGl2ZVRvSlNWYWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAK
aW5kZXggMGU2MDI4ZGYzMzgxOTUwNjAwOWZkMjY3MThhOGJhYzVhZThlODk4Yy4uMjUyY2MzYzJj
YTY5NDhiY2UxNGQzNjczOTAzY2RhMGJmZTRiZTVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwCkBA
IC01NSw3ICs1NSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZm9vQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5v
dCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKICAgICBGbG9hdDY0QXJy
YXkqIGltcCA9IFY4RmxvYXQ2NEFycmF5Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBF
WENFUFRJT05fQkxPQ0soRmxvYXQzMkFycmF5KiwgYXJyYXksIFY4RmxvYXQzMkFycmF5OjpIYXNJ
bnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKSA/IFY4RmxvYXQzMkFycmF5Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpD
YXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkp
KSA6IDApOwotICAgIHJldHVybiB0b1Y4KGltcC0+Zm9vKGFycmF5KSk7CisgICAgcmV0dXJuIHRv
VjgoaW1wLT5mb28oYXJyYXkpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIEZsb2F0NjRBcnJheVY4SW50ZXJuYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDYWxsYmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q2FsbGJhY2suY3BwCmluZGV4IDZhZmE4
MzAyOWMzZDdhMzYyMmM2OGUyZTIzMWZiMjQ0NjJiYzEwM2YuLjYyOGQ1YThiNzdlODM0NjZlODBk
ZjhiYTE3ZjYyMzBmMjZiOWE0NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdENhbGxiYWNrLmNwcApAQCAtODcsNyArODcs
NyBAQCBib29sIFY4VGVzdENhbGxiYWNrOjpjYWxsYmFja1dpdGhDbGFzczFQYXJhbShDbGFzczEq
IGNsYXNzMVBhcmFtKQogCiAgICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4Q29udGV4dCk7
CiAKLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2xhc3MxUGFyYW1IYW5kbGUgPSB0b1Y4KGNs
YXNzMVBhcmFtKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2xhc3MxUGFyYW1IYW5kbGUg
PSB0b1Y4KGNsYXNzMVBhcmFtLCAwKTsKICAgICBpZiAoY2xhc3MxUGFyYW1IYW5kbGUuSXNFbXB0
eSgpKSB7CiAgICAgICAgIGlmICghaXNTY3JpcHRDb250cm9sbGVyVGVybWluYXRpbmcoKSkKICAg
ICAgICAgICAgIENSQVNIKCk7CkBAIC0xMTUsMTMgKzExNSwxMyBAQCBib29sIFY4VGVzdENhbGxi
YWNrOjpjYWxsYmFja1dpdGhDbGFzczJQYXJhbShDbGFzczIqIGNsYXNzMlBhcmFtLCBjb25zdCBT
dHJpbmcmCiAKICAgICB2ODo6Q29udGV4dDo6U2NvcGUgc2NvcGUodjhDb250ZXh0KTsKIAotICAg
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjbGFzczJQYXJhbUhhbmRsZSA9IHRvVjgoY2xhc3MyUGFy
YW0pOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjbGFzczJQYXJhbUhhbmRsZSA9IHRvVjgo
Y2xhc3MyUGFyYW0sIDApOwogICAgIGlmIChjbGFzczJQYXJhbUhhbmRsZS5Jc0VtcHR5KCkpIHsK
ICAgICAgICAgaWYgKCFpc1NjcmlwdENvbnRyb2xsZXJUZXJtaW5hdGluZygpKQogICAgICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBzdHJBcmdIYW5kbGUgPSB2OFN0cmluZyhzdHJBcmcpOworICAgIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBzdHJBcmdIYW5kbGUgPSB2OFN0cmluZyhzdHJBcmcsIDApOwogICAgIGlm
IChzdHJBcmdIYW5kbGUuSXNFbXB0eSgpKSB7CiAgICAgICAgIGlmICghaXNTY3JpcHRDb250cm9s
bGVyVGVybWluYXRpbmcoKSkKICAgICAgICAgICAgIENSQVNIKCk7CkBAIC0xNTAsNyArMTUwLDcg
QEAgYm9vbCBWOFRlc3RDYWxsYmFjazo6Y2FsbGJhY2tXaXRoU3RyaW5nTGlzdChSZWZQdHI8RE9N
U3RyaW5nTGlzdD4gbGlzdFBhcmFtKQogCiAgICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4
Q29udGV4dCk7CiAKLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbGlzdFBhcmFtSGFuZGxlID0g
dG9WOChsaXN0UGFyYW0pOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBsaXN0UGFyYW1IYW5k
bGUgPSB0b1Y4KGxpc3RQYXJhbSwgMCk7CiAgICAgaWYgKGxpc3RQYXJhbUhhbmRsZS5Jc0VtcHR5
KCkpIHsKICAgICAgICAgaWYgKCFpc1NjcmlwdENvbnRyb2xsZXJUZXJtaW5hdGluZygpKQogICAg
ICAgICAgICAgQ1JBU0goKTsKQEAgLTIwOCwxMyArMjA4LDEzIEBAIGJvb2wgVjhUZXN0Q2FsbGJh
Y2s6OmNhbGxiYWNrUmVxdWlyZXNUaGlzVG9QYXNzKENsYXNzOCogY2xhc3M4UGFyYW0sIFRoaXND
bGFzcyoKIAogICAgIHY4OjpDb250ZXh0OjpTY29wZSBzY29wZSh2OENvbnRleHQpOwogCi0gICAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGNsYXNzOFBhcmFtSGFuZGxlID0gdG9WOChjbGFzczhQYXJh
bSk7CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNsYXNzOFBhcmFtSGFuZGxlID0gdG9WOChj
bGFzczhQYXJhbSwgMCk7CiAgICAgaWYgKGNsYXNzOFBhcmFtSGFuZGxlLklzRW1wdHkoKSkgewog
ICAgICAgICBpZiAoIWlzU2NyaXB0Q29udHJvbGxlclRlcm1pbmF0aW5nKCkpCiAgICAgICAgICAg
ICBDUkFTSCgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHRoaXNDbGFzc1BhcmFtSGFuZGxlID0gdG9WOCh0aGlzQ2xhc3NQYXJhbSk7Cisg
ICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRoaXNDbGFzc1BhcmFtSGFuZGxlID0gdG9WOCh0aGlz
Q2xhc3NQYXJhbSwgMCk7CiAgICAgaWYgKHRoaXNDbGFzc1BhcmFtSGFuZGxlLklzRW1wdHkoKSkg
ewogICAgICAgICBpZiAoIWlzU2NyaXB0Q29udHJvbGxlclRlcm1pbmF0aW5nKCkpCiAgICAgICAg
ICAgICBDUkFTSCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAppbmRleCBjNDE4MmM3Y2E4NmU1MjU2
ZGU0M2Q5NTZjMjUyMWMxYmE1MjRjODg0Li4xYjBiZjgzMzVhOTg0NWE5YTAwMWViMTI2ZDlmOGYx
NDc3MjEzNTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3VwcGxlbWVudGFsTWV0aG9kMkNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyCiAgICAgUmVmUHRyPFRlc3RPYmo+IHJlc3VsdCA9IFRlc3RT
dXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE1ldGhvZDIoaW1wLCBzY3JpcHRDb250ZXh0LCBzdHJB
cmcsIG9iakFyZywgZWMpOwogICAgIGlmIChVTkxJS0VMWShlYykpCiAgICAgICAgIGdvdG8gZmFp
bDsKLSAgICByZXR1cm4gdG9WOChyZXN1bHQucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gdG9WOChy
ZXN1bHQucmVsZWFzZSgpLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgfQogICAgIGZhaWw6CiAg
ICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0
cnVjdG9yLmNwcAppbmRleCA4ZTU3OGEwNjg3MjlhMTFjZjE2ZjQ4NmU0OGNlNzFmNjczMjlhMjE1
Li4yNjk0NzA3MjI1ZTc4ODY2NWViOWRmZmY0ODY4MDQwMmI0OTRjODBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC02MSw3ICs2MSw3IEBAIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yQ2FsbGJhY2so
Y29uc3Qgdjg6CiAKICAgICAvLyBNYWtlIHN1cmUgdGhlIGRvY3VtZW50IGlzIGFkZGVkIHRvIHRo
ZSBET00gTm9kZSBtYXAuIE90aGVyd2lzZSwgdGhlIFRlc3ROYW1lZENvbnN0cnVjdG9yIGluc3Rh
bmNlCiAgICAgLy8gbWF5IGVuZCB1cCBiZWluZyB0aGUgb25seSBub2RlIGluIHRoZSBtYXAgYW5k
IGdldCBnYXJiYWdlLWNvbGxlY3RlZCBwcmVtYXR1cmVseS4KLSAgICB0b1Y4KGRvY3VtZW50KTsK
KyAgICB0b1Y4KGRvY3VtZW50LCBhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICBpZiAoYXJncy5M
ZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3Vt
ZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDcxMTc3YWRlZTJiNDNh
Y2Q4MzFiODFiNzBkZjBhYTRhYmJkOTYwYmEuLjdiYjBlZTdmMzBlYzIwMmRhYWJkOTk1OTkwZTIw
Y2VkNTg5Y2I2OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiByZWFkT25seVRlc3RPYmpBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8
djg6OlN0cmluZz4KICAgICBSZWZQdHI8VGVzdE9iaj4gcmVzdWx0ID0gaW1wLT5yZWFkT25seVRl
c3RPYmpBdHRyKCk7CiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBwZXIgPSByZXN1bHQu
Z2V0KCkgPyBnZXRET01PYmplY3RNYXAoKS5nZXQocmVzdWx0LmdldCgpKSA6IHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4oKTsKICAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpIHsKLSAgICAgICAgd3Jh
cHBlciA9IHRvVjgocmVzdWx0LmdldCgpKTsKKyAgICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0
LmdldCgpLCBpbmZvLkdldElzb2xhdGUoKSk7CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5
KCkpCiAgICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGlu
Zm8uSG9sZGVyKCksICJyZWFkT25seVRlc3RPYmpBdHRyIiwgd3JhcHBlcik7CiAgICAgfQpAQCAt
MjA3LDcgKzIwNyw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdGVzdE9iakF0dHJB
dHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjCiB7CiAgICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai50ZXN0T2JqQXR0ci5fZ2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICByZXR1cm4gdG9WOChpbXAtPnRl
c3RPYmpBdHRyKCkpOworICAgIHJldHVybiB0b1Y4KGltcC0+dGVzdE9iakF0dHIoKSwgaW5mby5H
ZXRJc29sYXRlKCkpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0T2JqQXR0ckF0dHJTZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQpAQCAtMjM5LDcgKzIzOSw3IEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gWE1MT2JqQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIGNvCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5YTUxPYmpBdHRyLl9n
ZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVy
KCkpOwotICAgIHJldHVybiB0b1Y4KGltcC0+eG1sT2JqQXR0cigpKTsKKyAgICByZXR1cm4gdG9W
OChpbXAtPnhtbE9iakF0dHIoKSwgaW5mby5HZXRJc29sYXRlKCkpOwogfQogCiBzdGF0aWMgdm9p
ZCBYTUxPYmpBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCkBAIC01
MzAsNyArNTMwLDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3aXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEF0dHJpYnV0ZUF0dHJHZXR0ZXIodjg6OkwKICAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwog
ICAgIGlmICghc2NyaXB0Q29udGV4dCkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsK
LSAgICByZXR1cm4gdG9WOChpbXAtPndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
KHNjcmlwdENvbnRleHQpKTsKKyAgICByZXR1cm4gdG9WOChpbXAtPndpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QXR0cmlidXRlKHNjcmlwdENvbnRleHQpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9
CiAKIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlQXR0clNl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFs
dWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCkBAIC01NjAsNyArNTYwLDcgQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNB
dHRyR2V0dGVyKHY4OjpMb2NhbDwKICAgICB9CiAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigp
KQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihzdGF0ZS5leGNlcHRpb24oKSk7Ci0gICAgcmV0
dXJuIHRvVjgodi5yZWxlYXNlKCkpOworICAgIHJldHVybiB0b1Y4KHYucmVsZWFzZSgpLCBpbmZv
LkdldElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0
ZVJhaXNlc0F0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQpAQCAtNTkzLDcg
KzU5Myw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBdHRyaWJ1dGVSYWlzZXNBdHRyR2V0dGVyCiAgICAgICAgIFY4UHJveHk6OnNldERP
TUV4Y2VwdGlvbihlYyk7CiAgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsK
ICAgICB9Ci0gICAgcmV0dXJuIHRvVjgodi5yZWxlYXNlKCkpOworICAgIHJldHVybiB0b1Y4KHYu
cmVsZWFzZSgpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzQXR0clNldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nl
c3NvckluZm8mIGluZm8pCkBAIC02MjEsNyArNjIxLDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRl
QXQKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4dCkKICAgICAgICAgcmV0
dXJuIHY4OjpVbmRlZmluZWQoKTsKLSAgICByZXR1cm4gdG9WOChpbXAtPndpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUoc3RhdGUsIHNjcmlwdENvbnRleHQp
KTsKKyAgICByZXR1cm4gdG9WOChpbXAtPndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2Ny
aXB0U3RhdGVBdHRyaWJ1dGUoc3RhdGUsIHNjcmlwdENvbnRleHQpLCBpbmZvLkdldElzb2xhdGUo
KSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0
U3RhdGVBdHRyaWJ1dGVBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6
TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKQEAg
LTY1OSw3ICs2NTksNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYQogICAgIH0KICAgICBpZiAo
c3RhdGUuaGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHN0YXRlLmV4
Y2VwdGlvbigpKTsKLSAgICByZXR1cm4gdG9WOCh2LnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIHRv
Vjgodi5yZWxlYXNlKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKIH0KIAogc3RhdGljIHZvaWQgd2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlc0F0dHJT
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZh
bHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQpAQCAtNjkyLDcgKzY5Miw3IEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZVdpdGhTcGFjZXNBCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
Q29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIXNjcmlwdENv
bnRleHQpCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJuIHRvVjgo
aW1wLT53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0
dHJpYnV0ZShzdGF0ZSwgc2NyaXB0Q29udGV4dCkpOworICAgIHJldHVybiB0b1Y4KGltcC0+d2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUo
c3RhdGUsIHNjcmlwdENvbnRleHQpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2
b2lkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0
cmlidXRlQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCkBAIC03MTksNyAr
NzE5LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3aXRoU2NyaXB0QXJndW1lbnRz
QW5kQ2FsbFN0YWNrQXR0cmlidXRlQXR0ckdldHRlcigKICAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9ySW5zcGVjdG9yKCkpOwogICAg
IGlmICghY2FsbFN0YWNrKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotICAgIHJl
dHVybiB0b1Y4KGltcC0+d2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShj
YWxsU3RhY2spKTsKKyAgICByZXR1cm4gdG9WOChpbXAtPndpdGhTY3JpcHRBcmd1bWVudHNBbmRD
YWxsU3RhY2tBdHRyaWJ1dGUoY2FsbFN0YWNrKSwgaW5mby5HZXRJc29sYXRlKCkpOwogfQogCiBz
dGF0aWMgdm9pZCB3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlQXR0clNl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFs
dWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCkBAIC04MTMsNyArODEzLDcgQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjYWNoZWRBdHRyaWJ1dGUxQXR0ckdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmEKICAgICBSZWZQdHI8YW55PiByZXN1bHQgPSBpbXAtPmNhY2hl
ZEF0dHJpYnV0ZTEoKTsKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlciA9IHJlc3Vs
dC5nZXQoKSA/IGdldERPTU9iamVjdE1hcCgpLmdldChyZXN1bHQuZ2V0KCkpIDogdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PigpOwogICAgIGlmICh3cmFwcGVyLklzRW1wdHkoKSkgewotICAgICAgICB3
cmFwcGVyID0gdG9WOChyZXN1bHQuZ2V0KCkpOworICAgICAgICB3cmFwcGVyID0gdG9WOChyZXN1
bHQuZ2V0KCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1w
dHkoKSkKICAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2Uo
aW5mby5Ib2xkZXIoKSwgImNhY2hlZEF0dHJpYnV0ZTEiLCB3cmFwcGVyKTsKICAgICB9CkBAIC04
MjcsNyArODI3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjYWNoZWRBdHRyaWJ1
dGUyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmEKICAgICBSZWZQdHI8YW55PiBy
ZXN1bHQgPSBpbXAtPmNhY2hlZEF0dHJpYnV0ZTIoKTsKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gd3JhcHBlciA9IHJlc3VsdC5nZXQoKSA/IGdldERPTU9iamVjdE1hcCgpLmdldChyZXN1bHQu
Z2V0KCkpIDogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpOwogICAgIGlmICh3cmFwcGVyLklzRW1w
dHkoKSkgewotICAgICAgICB3cmFwcGVyID0gdG9WOChyZXN1bHQuZ2V0KCkpOworICAgICAgICB3
cmFwcGVyID0gdG9WOChyZXN1bHQuZ2V0KCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICAgICAg
aWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFt
ZWRIaWRkZW5SZWZlcmVuY2UoaW5mby5Ib2xkZXIoKSwgImNhY2hlZEF0dHJpYnV0ZTIiLCB3cmFw
cGVyKTsKICAgICB9CkBAIC05MTIsNyArOTEyLDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBtdXRhYmxlUG9pbnRBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLAog
ewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubXV0YWJsZVBvaW50Ll9nZXQiKTsKICAgICBU
ZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIHJl
dHVybiB0b1Y4KFdURjo6Z2V0UHRyKFNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZjxUZXN0T2JqLCBG
bG9hdFBvaW50Pjo6Y3JlYXRlKGltcCwgaW1wLT5tdXRhYmxlUG9pbnQoKSwgJlRlc3RPYmo6OnVw
ZGF0ZU11dGFibGVQb2ludCkpKTsKKyAgICByZXR1cm4gdG9WOChXVEY6OmdldFB0cihTVkdTdGF0
aWNQcm9wZXJ0eVRlYXJPZmY8VGVzdE9iaiwgRmxvYXRQb2ludD46OmNyZWF0ZShpbXAsIGltcC0+
bXV0YWJsZVBvaW50KCksICZUZXN0T2JqOjp1cGRhdGVNdXRhYmxlUG9pbnQpKSwgaW5mby5HZXRJ
c29sYXRlKCkpOwogfQogCiBzdGF0aWMgdm9pZCBtdXRhYmxlUG9pbnRBdHRyU2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qg
djg6OkFjY2Vzc29ySW5mbyYgaW5mbykKQEAgLTkyOCw3ICs5MjgsNyBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGltbXV0YWJsZVBvaW50QXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouaW1tdXRhYmxlUG9pbnQu
X2dldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xk
ZXIoKSk7Ci0gICAgcmV0dXJuIHRvVjgoV1RGOjpnZXRQdHIoU1ZHUHJvcGVydHlUZWFyT2ZmPEZs
b2F0UG9pbnQ+OjpjcmVhdGUoaW1wLT5pbW11dGFibGVQb2ludCgpKSkpOworICAgIHJldHVybiB0
b1Y4KFdURjo6Z2V0UHRyKFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50Pjo6Y3JlYXRlKGlt
cC0+aW1tdXRhYmxlUG9pbnQoKSkpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2
b2lkIGltbXV0YWJsZVBvaW50QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8p
CkBAIC0xMDU0LDcgKzEwNTQsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iak1l
dGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai5vYmpNZXRob2QiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIHJldHVybiB0b1Y4KGltcC0+b2JqTWV0aG9k
KCkpOworICAgIHJldHVybiB0b1Y4KGltcC0+b2JqTWV0aG9kKCksIGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKIH0KIAogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvYmpNZXRob2RXaXRoQXJnc0Nh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkBAIC0xMDY2LDcgKzEwNjYsNyBAQCBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGludEFyZywg
dG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFt
ZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0T2JqKiwgb2JqQXJnLCBWOFRl
c3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1
bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVm
aW5lZCkpKSA6IDApOwotICAgIHJldHVybiB0b1Y4KGltcC0+b2JqTWV0aG9kV2l0aEFyZ3MoaW50
QXJnLCBzdHJBcmcsIG9iakFyZykpOworICAgIHJldHVybiB0b1Y4KGltcC0+b2JqTWV0aG9kV2l0
aEFyZ3MoaW50QXJnLCBzdHJBcmcsIG9iakFyZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAog
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RXaXRoU2VxdWVuY2VBcmdDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpAQCAtMTEwMyw3ICsxMTAzLDcgQEAgc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dz
Q2FsbGJhY2soY29uc3QgdjgKICAgICBSZWZQdHI8VGVzdE9iaj4gcmVzdWx0ID0gaW1wLT5tZXRo
b2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKHN0ckFyZywgb2JqQXJnLCBlYyk7CiAgICAg
aWYgKFVOTElLRUxZKGVjKSkKICAgICAgICAgZ290byBmYWlsOwotICAgIHJldHVybiB0b1Y4KHJl
c3VsdC5yZWxlYXNlKCkpOworICAgIHJldHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCksIGFyZ3Mu
R2V0SXNvbGF0ZSgpKTsKICAgICB9CiAgICAgZmFpbDoKICAgICBWOFByb3h5OjpzZXRET01FeGNl
cHRpb24oZWMpOwpAQCAtMTIxOCw3ICsxMjE4LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB3aXRoU2NyaXB0U3RhdGVPYmpDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmcK
ICAgICBSZWZQdHI8VGVzdE9iaj4gcmVzdWx0ID0gaW1wLT53aXRoU2NyaXB0U3RhdGVPYmooJnN0
YXRlKTsKICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKHN0YXRlLmV4Y2VwdGlvbigpKTsKLSAgICByZXR1cm4gdG9WOChyZXN1bHQucmVsZWFz
ZSgpKTsKKyAgICByZXR1cm4gdG9WOChyZXN1bHQucmVsZWFzZSgpLCBhcmdzLkdldElzb2xhdGUo
KSk7CiB9CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd2l0aFNjcmlwdFN0YXRlVm9p
ZEV4Y2VwdGlvbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkBAIC0xMjUyLDcg
KzEyNTIsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhTY3JpcHRTdGF0ZU9i
akV4Y2VwdGlvbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bQogICAgICAgICBnb3RvIGZhaWw7CiAg
ICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihz
dGF0ZS5leGNlcHRpb24oKSk7Ci0gICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSk7Cisg
ICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSwgYXJncy5HZXRJc29sYXRlKCkpOwogICAg
IH0KICAgICBmYWlsOgogICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CkBAIC0xMjk5
LDcgKzEyOTksNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVPYmpFeGNlcHRpbwogICAgICAgICBnb3RvIGZhaWw7
CiAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihzdGF0ZS5leGNlcHRpb24oKSk7Ci0gICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSk7
CisgICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSwgYXJncy5HZXRJc29sYXRlKCkpOwog
ICAgIH0KICAgICBmYWlsOgogICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CkBAIC0x
MzE3LDcgKzEzMTcsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQwogICAgIFJlZlB0cjxUZXN0
T2JqPiByZXN1bHQgPSBpbXAtPndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVXaXRoU3BhY2VzKCZzdGF0ZSwgc2NyaXB0Q29udGV4dCk7CiAgICAgaWYgKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihzdGF0ZS5leGNlcHRpb24oKSk7
Ci0gICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIHRvVjgocmVz
dWx0LnJlbGVhc2UoKSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQogCiBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQpAQCAtMTc1NCwxNCArMTc1NCwxNCBAQCBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IG11dGFibGVQb2ludEZ1bmN0aW9uQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubXV0YWJsZVBvaW50
RnVuY3Rpb24iKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwotICAgIHJldHVybiB0b1Y4KFdURjo6Z2V0UHRyKFNWR1Byb3BlcnR5VGVhck9m
ZjxGbG9hdFBvaW50Pjo6Y3JlYXRlKGltcC0+bXV0YWJsZVBvaW50RnVuY3Rpb24oKSkpKTsKKyAg
ICByZXR1cm4gdG9WOChXVEY6OmdldFB0cihTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD46
OmNyZWF0ZShpbXAtPm11dGFibGVQb2ludEZ1bmN0aW9uKCkpKSwgYXJncy5HZXRJc29sYXRlKCkp
OwogfQogCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGltbXV0YWJsZVBvaW50RnVuY3Rp
b25DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygi
RE9NLlRlc3RPYmouaW1tdXRhYmxlUG9pbnRGdW5jdGlvbiIpOwogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgcmV0dXJuIHRvVjgoV1RG
OjpnZXRQdHIoU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+OjpjcmVhdGUoaW1wLT5pbW11
dGFibGVQb2ludEZ1bmN0aW9uKCkpKSk7CisgICAgcmV0dXJuIHRvVjgoV1RGOjpnZXRQdHIoU1ZH
UHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+OjpjcmVhdGUoaW1wLT5pbW11dGFibGVQb2ludEZ1
bmN0aW9uKCkpKSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQogCiBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IG9yYW5nZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkBAIC0x
Nzg2LDcgKzE3ODYsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN0cmljdEZ1bmN0
aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBSZWZQdHI8Ym9vbD4g
cmVzdWx0ID0gaW1wLT5zdHJpY3RGdW5jdGlvbihzdHIsIGEsIGIsIGVjKTsKICAgICBpZiAoVU5M
SUtFTFkoZWMpKQogICAgICAgICBnb3RvIGZhaWw7Ci0gICAgcmV0dXJuIHRvVjgocmVzdWx0LnJl
bGVhc2UoKSk7CisgICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSwgYXJncy5HZXRJc29s
YXRlKCkpOwogICAgIH0KICAgICBmYWlsOgogICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihl
Yyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuY3BwCmluZGV4IGJiZDkzOWQyNzEyNDE2NDk3YWQzNjMyMTBjNjE1NjczNTkzNzBiOWEu
LmYxZjNiNDhlNjU0N2EzMzg2Y2EyMDg3ZjhhMzJjODI0NTlkYWMwM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0x
MDIsNyArMTAyLDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwb3J0c0F0dHJHZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHYKICAgICBNZXNzYWdlUG9ydEFy
cmF5IHBvcnRzQ29weSgqcG9ydHMpOwogICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IHBvcnRBcnJh
eSA9IHY4OjpBcnJheTo6TmV3KHBvcnRzQ29weS5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgcG9ydHNDb3B5LnNpemUoKTsgKytpKQotICAgICAgICBwb3J0QXJyYXktPlNldCh2
ODo6SW50ZWdlcjo6TmV3KGkpLCB0b1Y4KHBvcnRzQ29weVtpXS5nZXQoKSkpOworICAgICAgICBw
b3J0QXJyYXktPlNldCh2ODo6SW50ZWdlcjo6TmV3KGkpLCB0b1Y4KHBvcnRzQ29weVtpXS5nZXQo
KSwgaW5mby5HZXRJc29sYXRlKCkpKTsKICAgICByZXR1cm4gcG9ydEFycmF5OwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>