<?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>80927</bug_id>
          
          <creation_ts>2012-03-12 19:20:48 -0700</creation_ts>
          <short_desc>[V8][Refactoring] Remove existingWrapper() from generated code</short_desc>
          <delta_ts>2012-03-12 21:03:49 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>arv</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>576912</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-12 19:20:48 -0700</bug_when>
    <thetext>This is the final step for bug 80841. Currently wrap() calls existingWrapper(), and existingWrapper() just calls getCachedWrapper(). We can remove existingWrapper() from the generated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576913</commentid>
    <comment_count>1</comment_count>
      <attachid>131493</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-12 19:24:06 -0700</bug_when>
    <thetext>Created attachment 131493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576916</commentid>
    <comment_count>2</comment_count>
      <attachid>131493</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-12 19:25:37 -0700</bug_when>
    <thetext>Comment on attachment 131493
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:989
&gt; +        my $domMapFunction = GetDomMapFunction($dataNode, $interfaceName);

Note: At this point, it is guaranteed that IsNodeSubType($dataNode) is false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576985</commentid>
    <comment_count>3</comment_count>
      <attachid>131493</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 21:03:44 -0700</bug_when>
    <thetext>Comment on attachment 131493
Patch

Clearing flags on attachment: 131493

Committed r110535: &lt;http://trac.webkit.org/changeset/110535&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576986</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 21:03:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131493</attachid>
            <date>2012-03-12 19:24:06 -0700</date>
            <delta_ts>2012-03-12 21:03:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80927-20120313112404.patch</filename>
            <type>text/plain</type>
            <size>20150</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA5MzU4MWRmZDhkNWM3
NWQyMGFhZGE0YWE3OWM0NTdlNmVhZGRlZS4uZTNhZDAwZGYwMjk3NDQ2ODkyM2U4NTBmZWZlMGVk
N2M4ZmU0YmViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTAzLTEyICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbVjhdW1JlZmFjdG9y
aW5nXSBSZW1vdmUgZXhpc3RpbmdXcmFwcGVyKCkgZnJvbSBnZW5lcmF0ZWQgY29kZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA5MjcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgd3JhcCgp
IGNhbGxzIGV4aXN0aW5nV3JhcHBlcigpLCBhbmQgZXhpc3RpbmdXcmFwcGVyKCkKKyAgICAgICAg
anVzdCBjYWxscyBnZXRDYWNoZWRXcmFwcGVyKCkuIFdlIGNhbiByZW1vdmUgZXhpc3RpbmdXcmFw
cGVyKCkgZnJvbSB0aGUgZ2VuZXJhdGVkIGNvZGUuCisKKyAgICAgICAgVGVzdDogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0LyoKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtOiBSZW1vdmVkIGV4aXN0aW5nV3JhcHBlcigpLgorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVyKToKKworICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5oOiBVcGRhdGVkIHJ1bi1iaW5k
aW5ncy10ZXN0cyByZXN1bHRzLgorICAgICAgICAoVjhGbG9hdDY0QXJyYXkpOgorICAgICAgICAo
V2ViQ29yZTo6VjhGbG9hdDY0QXJyYXk6OndyYXApOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAgKFY4VGVzdEFjdGl2
ZURPTU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RBY3RpdmVET01PYmplY3Q6Ondy
YXApOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1l
ZEdldHRlci5oOgorICAgICAgICAoVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6VjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OndyYXApOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmg6CisgICAgICAgIChW
OFRlc3RFdmVudENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEV2ZW50Q29u
c3RydWN0b3I6OndyYXApOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RFdmVudFRhcmdldC5oOgorICAgICAgICAoVjhUZXN0RXZlbnRUYXJnZXQpOgorICAgICAgICAo
V2ViQ29yZTo6VjhUZXN0RXZlbnRUYXJnZXQ6OndyYXApOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKFY4VGVzdEludGVyZmFj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RJbnRlcmZhY2U6OndyYXApOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6
CisgICAgICAgIChWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OndyYXApOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmg6CisgICAgICAgIChW
OFRlc3ROYW1lZENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdE5hbWVkQ29u
c3RydWN0b3I6OndyYXApOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpyZWFkT25seVRl
c3RPYmpBdHRyQXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6
OmNhY2hlZEF0dHJpYnV0ZTFBdHRyR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpJ
bnRlcm5hbDo6Y2FjaGVkQXR0cmlidXRlMkF0dHJHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaDoKKyAgICAgICAgKFY4VGVzdE9iaik6CisgICAg
ICAgIChXZWJDb3JlOjpWOFRlc3RPYmo6OndyYXApOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaDoKKyAgICAg
ICAgKFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSk6CisgICAgICAgIChXZWJD
b3JlOjpWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OndyYXApOgorCisyMDEy
LTAzLTEyICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBb
VjhdW1JlZmFjdG9yaW5nXSBSZW1vdmUgZ2V0V3JhcHBlcigpIGFuZCBnZXRXcmFwcGVyU2xvdygp
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDkyMAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCmluZGV4IDk5MzM0MzE2NTY5ZGNlZmQyNzc0ZjJkNTdmYTRhOTY2NjNlNmNhNWUuLjZkOTE5
ZWE5NjJjMTA0YTBkYWI5NjI1NGMzZWQxNGM0M2NiYzhmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC00ODIsOCArNDgy
LDYgQEAgRU5ECiAgICAgfQogCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwotICAg
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGV4aXN0aW5nV3JhcHBlcigke25hdGl2ZVR5
cGV9Kik7Ci0KIHByaXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3Jh
cFNsb3coJHtuYXRpdmVUeXBlfSopOwogfTsKQEAgLTQ5MSwyMCArNDg5LDEzIEBAIHByaXZhdGU6
CiBFTkQKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKLUFMV0FZU19JTkxJTkUg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiAke2NsYXNzTmFtZX06OmV4aXN0aW5nV3JhcHBlcigke25h
dGl2ZVR5cGV9KiBpbXBsKQotewotRU5ECi0gICAgbXkgJGdldFdyYXBwZXIgPSBJc05vZGVTdWJU
eXBlKCRkYXRhTm9kZSkgPyAiVjhET01XcmFwcGVyOjpnZXRDYWNoZWRXcmFwcGVyKGltcGwpIiA6
ICIke2RvbU1hcEZ1bmN0aW9ufS5nZXQoaW1wbCkiOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
IDw8RU5EKTsKLSAgICByZXR1cm4gJHtnZXRXcmFwcGVyfTsKLX0KLQogdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiAke2NsYXNzTmFtZX06OndyYXAoJHtuYXRpdmVUeXBlfSogaW1wbCR7Zm9yY2VOZXdP
YmplY3RJbnB1dH0pCiB7CiBFTkQKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGlmICgh
Zm9yY2VOZXdPYmplY3QpIHtcbiIpIGlmIElzRE9NTm9kZVR5cGUoJGludGVyZmFjZU5hbWUpOwor
ICAgIG15ICRnZXRDYWNoZWRXcmFwcGVyID0gSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpID8gIlY4
RE9NV3JhcHBlcjo6Z2V0Q2FjaGVkV3JhcHBlcihpbXBsKSIgOiAiJHtkb21NYXBGdW5jdGlvbn0u
Z2V0KGltcGwpIjsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7Ci0gICAgICAgIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGV4aXN0aW5nV3JhcHBlcihpbXBsKTsKKyAg
ICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gJGdldENhY2hlZFdyYXBwZXI7
CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gd3Jh
cHBlcjsKIEVORApAQCAtOTk1LDcgKzk4Niw4IEBAIEVORAogICAgICAgICAjIENoZWNrIGZvciBh
IHdyYXBwZXIgaW4gdGhlIHdyYXBwZXIgY2FjaGUuIElmIHRoZXJlIGlzIG9uZSwgd2Uga25vdyB0
aGF0IGEgaGlkZGVuIHJlZmVyZW5jZSBoYXMgYWxyZWFkeQogICAgICAgICAjIGJlZW4gY3JlYXRl
ZC4gSWYgd2UgZG9uJ3QgZmluZCBhIHdyYXBwZXIsIHdlIGNyZWF0ZSBib3RoIGEgd3JhcHBlciBh
bmQgYSBoaWRkZW4gcmVmZXJlbmNlLgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAi
ICAgIFJlZlB0cjwkcmV0dXJuVHlwZT4gcmVzdWx0ID0gJHtnZXR0ZXJTdHJpbmd9O1xuIik7Ci0g
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHdyYXBwZXIgPSByZXN1bHQuZ2V0KCkgPyBWOCR7cmV0dXJuVHlwZX06OmV4aXN0aW5nV3JhcHBl
cihyZXN1bHQuZ2V0KCkpIDogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpO1xuIik7CisgICAgICAg
IG15ICRkb21NYXBGdW5jdGlvbiA9IEdldERvbU1hcEZ1bmN0aW9uKCRkYXRhTm9kZSwgJGludGVy
ZmFjZU5hbWUpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB3cmFwcGVyID0gcmVzdWx0LmdldCgpID8gJHtkb21NYXBGdW5jdGlvbn0u
Z2V0KHJlc3VsdC5nZXQoKSkgOiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KCk7XG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpIHtc
biIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICB3cmFwcGVyID0g
dG9WOChyZXN1bHQuZ2V0KCkpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
ICIgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmgKaW5k
ZXggYzliYjM4ZTliMTNjOTc2YmQ0NGNiZGQ5MGFjZmU3ZjUxNjljNGVkNC4uODJkMmZjMzViOWUy
YTcwMjk5ZTBjYTJlNjdmNGE4YWJkMzJkY2Q1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmgKQEAgLTQ3LDIw
ICs0NywxMyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZvOwogICAg
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJik7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQg
PSB2OERlZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ICsgMDsKLSAgICBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBleGlzdGluZ1dyYXBwZXIoRmxvYXQ2NEFycmF5Kik7Ci0KIHBy
aXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNsb3coRmxvYXQ2
NEFycmF5Kik7CiB9OwogCi1BTFdBWVNfSU5MSU5FIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhG
bG9hdDY0QXJyYXk6OmV4aXN0aW5nV3JhcHBlcihGbG9hdDY0QXJyYXkqIGltcGwpCi17Ci0gICAg
cmV0dXJuIGdldERPTU9iamVjdE1hcCgpLmdldChpbXBsKTsKLX0KLQogdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBWOEZsb2F0NjRBcnJheTo6d3JhcChGbG9hdDY0QXJyYXkqIGltcGwpCiB7Ci0gICAg
ICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGV4aXN0aW5nV3JhcHBlcihpbXBs
KTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0
TWFwKCkuZ2V0KGltcGwpOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQogICAgICAg
ICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgcmV0dXJuIFY4RmxvYXQ2NEFycmF5Ojp3cmFwU2xv
dyhpbXBsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuaAppbmRleCAwNjA4YmRjMTkwNDNh
NDM1ZTEwMzk4MGZhMTNmMDJmMDZhNjUyMDU1Li5kYmQxNGUyZDNhNDIzYzJkMDUxZTEzNTAyN2Rh
NDU5NjU1ZDExMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5oCkBAIC00NywyMCAr
NDcsMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50
ID0gdjhEZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3VudCArIDA7CiAgICAgc3RhdGljIGJv
b2wgbmFtZWRTZWN1cml0eUNoZWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBob3N0LCB2ODo6TG9j
YWw8djg6OlZhbHVlPiBrZXksIHY4OjpBY2Nlc3NUeXBlLCB2ODo6TG9jYWw8djg6OlZhbHVlPiBk
YXRhKTsKICAgICBzdGF0aWMgYm9vbCBpbmRleGVkU2VjdXJpdHlDaGVjayh2ODo6TG9jYWw8djg6
Ok9iamVjdD4gaG9zdCwgdWludDMyX3QgaW5kZXgsIHY4OjpBY2Nlc3NUeXBlLCB2ODo6TG9jYWw8
djg6OlZhbHVlPiBkYXRhKTsKLSAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBleGlz
dGluZ1dyYXBwZXIoVGVzdEFjdGl2ZURPTU9iamVjdCopOwotCiBwcml2YXRlOgogICAgIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93KFRlc3RBY3RpdmVET01PYmplY3QqKTsK
IH07CiAKLUFMV0FZU19JTkxJTkUgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RBY3RpdmVE
T01PYmplY3Q6OmV4aXN0aW5nV3JhcHBlcihUZXN0QWN0aXZlRE9NT2JqZWN0KiBpbXBsKQotewot
ICAgIHJldHVybiBnZXRET01PYmplY3RNYXAoKS5nZXQoaW1wbCk7Ci19Ci0KIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gVjhUZXN0QWN0aXZlRE9NT2JqZWN0Ojp3cmFwKFRlc3RBY3RpdmVET01PYmpl
Y3QqIGltcGwpCiB7Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGV4
aXN0aW5nV3JhcHBlcihpbXBsKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFw
cGVyID0gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0KGltcGwpOwogICAgICAgICBpZiAoIXdyYXBwZXIu
SXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgcmV0dXJuIFY4VGVz
dEFjdGl2ZURPTU9iamVjdDo6d3JhcFNsb3coaW1wbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1l
ZEdldHRlci5oCmluZGV4IDcxYzE5YWQ4MTA4MGRkN2U2ZTgxZDI5M2NkMjFkZDg3YjVkYjBjZTQu
LjNkNmRlNjE3NzU4Zjg3ZDAwZmIwMzUzMjg0NjYyMWNkMDZjNDA3ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdl
dHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RDdXN0b21OYW1lZEdldHRlci5oCkBAIC00NiwyMCArNDYsMTMgQEAgcHVibGljOgogICAgIHN0
YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IG5hbWVkUHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+LCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJik7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQg
PSB2OERlZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ICsgMDsKLSAgICBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBleGlzdGluZ1dyYXBwZXIoVGVzdEN1c3RvbU5hbWVkR2V0dGVy
Kik7Ci0KIHByaXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNs
b3coVGVzdEN1c3RvbU5hbWVkR2V0dGVyKik7CiB9OwogCi1BTFdBWVNfSU5MSU5FIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmV4aXN0aW5nV3JhcHBlcihU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIGltcGwpCi17Ci0gICAgcmV0dXJuIGdldERPTU9iamVjdE1h
cCgpLmdldChpbXBsKTsKLX0KLQogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RDdXN0b21O
YW1lZEdldHRlcjo6d3JhcChUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIGltcGwpCiB7Ci0gICAgICAg
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGV4aXN0aW5nV3JhcHBlcihpbXBsKTsK
KyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0TWFw
KCkuZ2V0KGltcGwpOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQogICAgICAgICAg
ICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgcmV0dXJuIFY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjp3
cmFwU2xvdyhpbXBsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCmluZGV4IDE2NDZh
NTRhODc4MGFhN2ZiM2JhZDU1N2U1M2I4MTIwNGM1ODFiYzIuLjc1NDE3ODY1Mzc1MTc1MzFlMzJi
NzQ0MWJkZGI2OTQ1NDY4NGRkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuaApA
QCAtNDcsMjAgKzQ3LDEzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGlu
Zm87CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RvckNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmKTsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFsRmll
bGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwotICAgIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGV4aXN0aW5nV3JhcHBlcihUZXN0RXZlbnRDb25z
dHJ1Y3RvciopOwotCiBwcml2YXRlOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IHdyYXBTbG93KFRlc3RFdmVudENvbnN0cnVjdG9yKik7CiB9OwogCi1BTFdBWVNfSU5MSU5FIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6ZXhpc3RpbmdXcmFw
cGVyKFRlc3RFdmVudENvbnN0cnVjdG9yKiBpbXBsKQotewotICAgIHJldHVybiBnZXRET01PYmpl
Y3RNYXAoKS5nZXQoaW1wbCk7Ci19Ci0KIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0RXZl
bnRDb25zdHJ1Y3Rvcjo6d3JhcChUZXN0RXZlbnRDb25zdHJ1Y3RvciogaW1wbCkKIHsKLSAgICAg
ICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZXhpc3RpbmdXcmFwcGVyKGltcGwp
OworICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBnZXRET01PYmplY3RN
YXAoKS5nZXQoaW1wbCk7CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gd3JhcHBlcjsKICAgICByZXR1cm4gVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6
d3JhcFNsb3coaW1wbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5oCmluZGV4IDIyZjkwMTIwNGMxMTJi
ODkyZTRmNjNjNDUxOWIwMDgzMTdmOTU5MjUuLjk1OWEwMGUyYjQ2YTE5ZmMwZWMxOTkxY2U2NzJi
Yzk4ZDViYmU1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5oCkBAIC00OCwyMCArNDgsMTMgQEAg
cHVibGljOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbmFtZWRQcm9wZXJ0eUdl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4sIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsKICAg
ICBzdGF0aWMgY29uc3QgaW50IGV2ZW50TGlzdGVuZXJDYWNoZUluZGV4ID0gdjhEZWZhdWx0V3Jh
cHBlckludGVybmFsRmllbGRDb3VudCArIDA7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbnRlcm5h
bEZpZWxkQ291bnQgPSB2OERlZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ICsgMTsKLSAg
ICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBleGlzdGluZ1dyYXBwZXIoVGVzdEV2ZW50
VGFyZ2V0Kik7Ci0KIHByaXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
d3JhcFNsb3coVGVzdEV2ZW50VGFyZ2V0Kik7CiB9OwogCi1BTFdBWVNfSU5MSU5FIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gVjhUZXN0RXZlbnRUYXJnZXQ6OmV4aXN0aW5nV3JhcHBlcihUZXN0RXZl
bnRUYXJnZXQqIGltcGwpCi17Ci0gICAgcmV0dXJuIGdldERPTU9iamVjdE1hcCgpLmdldChpbXBs
KTsKLX0KLQogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RFdmVudFRhcmdldDo6d3JhcChU
ZXN0RXZlbnRUYXJnZXQqIGltcGwpCiB7Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
d3JhcHBlciA9IGV4aXN0aW5nV3JhcHBlcihpbXBsKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0KGltcGwpOwogICAgICAgICBp
ZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAg
cmV0dXJuIFY4VGVzdEV2ZW50VGFyZ2V0Ojp3cmFwU2xvdyhpbXBsKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2Uu
aAppbmRleCAxMWIzYjJiYmVhMDljM2I1YjY3MGJmNmZlYWYwNTlhMTQ0YTZmNGMxLi5iNzk1NTc4
M2JlYWMyYzQwZDI5NGFhMzQ5OGZjNWE3YmZhMmQ0ZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5oCkBA
IC01MCwyMCArNTAsMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gY29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJik7CiAgICAgc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBuYW1lZFByb3BlcnR5U2V0dGVyKHY4OjpMb2NhbDx2ODo6
U3RyaW5nPiwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4sIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsK
ICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBw
ZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwotICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IGV4aXN0aW5nV3JhcHBlcihUZXN0SW50ZXJmYWNlKik7Ci0KIHByaXZhdGU6CiAgICAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNsb3coVGVzdEludGVyZmFjZSopOwogfTsK
IAotQUxXQVlTX0lOTElORSB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEludGVyZmFjZTo6
ZXhpc3RpbmdXcmFwcGVyKFRlc3RJbnRlcmZhY2UqIGltcGwpCi17Ci0gICAgcmV0dXJuIGdldEFj
dGl2ZURPTU9iamVjdE1hcCgpLmdldChpbXBsKTsKLX0KLQogdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBWOFRlc3RJbnRlcmZhY2U6OndyYXAoVGVzdEludGVyZmFjZSogaW1wbCkKIHsKLSAgICAgICAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZXhpc3RpbmdXcmFwcGVyKGltcGwpOwor
ICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBnZXRBY3RpdmVET01PYmpl
Y3RNYXAoKS5nZXQoaW1wbCk7CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCiAgICAg
ICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICByZXR1cm4gVjhUZXN0SW50ZXJmYWNlOjp3cmFw
U2xvdyhpbXBsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCmlu
ZGV4IDcwZjA4NjJjODM5NGViNTZkMzIyZTM3NmM3YjcyMTA3NzU3MTliMjguLjVlZTM3N2I3NTE1
MjZiZDZjZWNiMTM3ZTc5YWRhOGM3MmIyODA1ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtNDUsMjAgKzQ1LDEzIEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgdm9pZCB2aXNpdERPTVdyYXBwZXIoRE9NRGF0YVN0b3JlKiwgdm9pZCosIHY4OjpQZXJzaXN0
ZW50PHY4OjpPYmplY3Q+KTsKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGluZm87CiAgICAg
c3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQgPSB2OERlZmF1bHRXcmFwcGVySW50
ZXJuYWxGaWVsZENvdW50ICsgMDsKLSAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBl
eGlzdGluZ1dyYXBwZXIoVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqKTsKLQogcHJpdmF0ZToK
ICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwU2xvdyhUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciopOwogfTsKIAotQUxXQVlTX0lOTElORSB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IFY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmV4aXN0aW5nV3JhcHBlcihUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lciogaW1wbCkKLXsKLSAgICByZXR1cm4gZ2V0RE9NT2JqZWN0TWFw
KCkuZ2V0KGltcGwpOwotfQotCiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI6OndyYXAoVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGltcGwpCiB7
Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGV4aXN0aW5nV3JhcHBl
cihpbXBsKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9N
T2JqZWN0TWFwKCkuZ2V0KGltcGwpOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQog
ICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgcmV0dXJuIFY4VGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXI6OndyYXBTbG93KGltcGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9y
LmgKaW5kZXggZWQ3ZWNjYTU4YWIyYWIwZTI5MDgxNTFiMWRkMmVmZDM3YmUzZTcyOS4uYmY1NTU4
MjBiNTc5NWQ4MTUwYjkxYmVhN2IwMzFkMDhkOWRlNWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRD
b25zdHJ1Y3Rvci5oCkBAIC01MiwyMCArNTIsMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBXcmFw
cGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgQWN0aXZlRE9NT2JqZWN0KiB0b0FjdGl2ZURP
TU9iamVjdCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KTsKICAgICBzdGF0aWMgY29uc3QgaW50IGlu
dGVybmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAw
OwotICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGV4aXN0aW5nV3JhcHBlcihUZXN0
TmFtZWRDb25zdHJ1Y3RvciopOwotCiBwcml2YXRlOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IHdyYXBTbG93KFRlc3ROYW1lZENvbnN0cnVjdG9yKik7CiB9OwogCi1BTFdBWVNf
SU5MSU5FIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6ZXhp
c3RpbmdXcmFwcGVyKFRlc3ROYW1lZENvbnN0cnVjdG9yKiBpbXBsKQotewotICAgIHJldHVybiBn
ZXRBY3RpdmVET01PYmplY3RNYXAoKS5nZXQoaW1wbCk7Ci19Ci0KIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6d3JhcChUZXN0TmFtZWRDb25zdHJ1Y3Rvciog
aW1wbCkKIHsKLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZXhpc3Rp
bmdXcmFwcGVyKGltcGwpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIg
PSBnZXRBY3RpdmVET01PYmplY3RNYXAoKS5nZXQoaW1wbCk7CiAgICAgICAgIGlmICghd3JhcHBl
ci5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICByZXR1cm4gVjhU
ZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6d3JhcFNsb3coaW1wbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDA0MGIw
NDQ0NzE5MjNhNTM2NDEwN2Q3NzE3YjcwZTY3YzAzZDM4Y2YuLmE3N2VhYjY5NzZhMDcwZjBhOGM0
YWE5YjM4M2Q1MGQ2ZWZhNzJmYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC05Niw3ICs5Niw3IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVhZE9ubHlUZXN0T2JqQXR0ckF0dHJHZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5yZWFkT25seVRl
c3RPYmpBdHRyLl9nZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZl
KGluZm8uSG9sZGVyKCkpOwogICAgIFJlZlB0cjxUZXN0T2JqPiByZXN1bHQgPSBpbXAtPnJlYWRP
bmx5VGVzdE9iakF0dHIoKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlciA9IHJl
c3VsdC5nZXQoKSA/IFY4VGVzdE9iajo6ZXhpc3RpbmdXcmFwcGVyKHJlc3VsdC5nZXQoKSkgOiB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+KCk7CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBw
ZXIgPSByZXN1bHQuZ2V0KCkgPyBnZXRET01PYmplY3RNYXAoKS5nZXQocmVzdWx0LmdldCgpKSA6
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKTsKICAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpIHsK
ICAgICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0LmdldCgpKTsKICAgICAgICAgaWYgKCF3cmFw
cGVyLklzRW1wdHkoKSkKQEAgLTc5Myw3ICs3OTMsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IGNhY2hlZEF0dHJpYnV0ZTFBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBu
YQogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouY2FjaGVkQXR0cmlidXRlMS5fZ2V0Iik7CiAg
ICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAg
ICBSZWZQdHI8YW55PiByZXN1bHQgPSBpbXAtPmNhY2hlZEF0dHJpYnV0ZTEoKTsKLSAgICB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlciA9IHJlc3VsdC5nZXQoKSA/IFY4YW55OjpleGlzdGlu
Z1dyYXBwZXIocmVzdWx0LmdldCgpKSA6IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKTsKKyAgICB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlciA9IHJlc3VsdC5nZXQoKSA/IGdldERPTU9iamVj
dE1hcCgpLmdldChyZXN1bHQuZ2V0KCkpIDogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpOwogICAg
IGlmICh3cmFwcGVyLklzRW1wdHkoKSkgewogICAgICAgICB3cmFwcGVyID0gdG9WOChyZXN1bHQu
Z2V0KCkpOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQpAQCAtODA3LDcgKzgwNyw3
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2FjaGVkQXR0cmlidXRlMkF0dHJHZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hCiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5j
YWNoZWRBdHRyaWJ1dGUyLl9nZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFJlZlB0cjxhbnk+IHJlc3VsdCA9IGltcC0+Y2Fj
aGVkQXR0cmlidXRlMigpOwotICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVyID0gcmVz
dWx0LmdldCgpID8gVjhhbnk6OmV4aXN0aW5nV3JhcHBlcihyZXN1bHQuZ2V0KCkpIDogdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PigpOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVyID0g
cmVzdWx0LmdldCgpID8gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0KHJlc3VsdC5nZXQoKSkgOiB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+KCk7CiAgICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKSB7CiAgICAg
ICAgIHdyYXBwZXIgPSB0b1Y4KHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGlmICghd3JhcHBlci5J
c0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmgKaW5kZXggYzY4MzVhZDIxMjI3OWFjM2IzYzUyYmQ0YjdkNzRkM2ZhYTUx
NzgxYi4uNzc2NDAzN2IxZDYwYWFhZmY0NWRiYTc5MWQzM2UzMmZhNTk3NTQxYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaApA
QCAtNTEsMjAgKzUxLDEzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGN1c3RvbUF0dHJBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYpOwogICAgIHN0YXRpYyB2b2lkIGN1c3RvbUF0dHJBY2Nl
c3NvclNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4sIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVy
bmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwot
ICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGV4aXN0aW5nV3JhcHBlcihUZXN0T2Jq
Kik7Ci0KIHByaXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNs
b3coVGVzdE9iaiopOwogfTsKIAotQUxXQVlTX0lOTElORSB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IFY4VGVzdE9iajo6ZXhpc3RpbmdXcmFwcGVyKFRlc3RPYmoqIGltcGwpCi17Ci0gICAgcmV0dXJu
IGdldERPTU9iamVjdE1hcCgpLmdldChpbXBsKTsKLX0KLQogdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBWOFRlc3RPYmo6OndyYXAoVGVzdE9iaiogaW1wbCkKIHsKLSAgICAgICAgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiB3cmFwcGVyID0gZXhpc3RpbmdXcmFwcGVyKGltcGwpOworICAgICAgICB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBnZXRET01PYmplY3RNYXAoKS5nZXQoaW1wbCk7
CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gd3Jh
cHBlcjsKICAgICByZXR1cm4gVjhUZXN0T2JqOjp3cmFwU2xvdyhpbXBsKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRleCBhODE0
NmExMWEwOTY3MWFiM2FkMzEwZDYyYzQ1YzlkMzcxNDQxMjg0Li44ZTU1NzFiMzRiMGViOWEyOTI1
OGI5NGE0MjU5OWNhMzMyNjdmNmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCkBAIC00OCwyMCArNDgsMTMgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYpOwogICAg
IHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0V3JhcHBlcklu
dGVybmFsRmllbGRDb3VudCArIDA7Ci0gICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
ZXhpc3RpbmdXcmFwcGVyKFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqKTsKLQog
cHJpdmF0ZToKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwU2xvdyhUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKik7CiB9OwogCi1BTFdBWVNfSU5MSU5FIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
OjpleGlzdGluZ1dyYXBwZXIoVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogaW1w
bCkKLXsKLSAgICByZXR1cm4gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0KGltcGwpOwotfQotCiB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6
d3JhcChUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBpbXBsKQogewotICAgICAg
ICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBleGlzdGluZ1dyYXBwZXIoaW1wbCk7
CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGdldERPTU9iamVjdE1h
cCgpLmdldChpbXBsKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAg
ICAgIHJldHVybiB3cmFwcGVyOwogICAgIHJldHVybiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2U6OndyYXBTbG93KGltcGwpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>