<?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>106122</bug_id>
          
          <creation_ts>2013-01-04 11:47:40 -0800</creation_ts>
          <short_desc>[v8] Stop using an IDL to generate V8MutationCallback</short_desc>
          <delta_ts>2013-01-04 13:04:44 -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>New Bugs</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="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>abarth</cc>
    
    <cc>esprehn</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rafaelw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>800456</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-04 11:47:40 -0800</bug_when>
    <thetext>[v8] Stop using an IDL to generate V8MutationCallback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800464</commentid>
    <comment_count>1</comment_count>
      <attachid>181352</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-04 11:52:22 -0800</bug_when>
    <thetext>Created attachment 181352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800471</commentid>
    <comment_count>2</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-01-04 11:56:56 -0800</bug_when>
    <thetext>This patch seems wrong, now we have manual code to put the callback into a hidden property that&apos;s exact duplication in both MutationObserver and WebAudio. Instead I want to just use that IDL attribute for web audio and other things with the same leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800477</commentid>
    <comment_count>3</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-01-04 12:01:25 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; This patch seems wrong, now we have manual code to put the callback into a hidden property that&apos;s exact duplication in both MutationObserver and WebAudio. Instead I want to just use that IDL attribute for web audio and other things with the same leak.

Actually I&apos;m wrong, this patch is fine!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800479</commentid>
    <comment_count>4</comment_count>
      <attachid>181352</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-04 12:01:49 -0800</bug_when>
    <thetext>Comment on attachment 181352
Patch

Ok.  This patch makes me a bit sad because I&apos;d like to have less custom code.  I guess we can try to generate this code again if/when we have another callback like the mutation callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800533</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-04 12:46:21 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 181352 [details])
&gt; Ok.  This patch makes me a bit sad because I&apos;d like to have less custom code.  I guess we can try to generate this code again if/when we have another callback like the mutation callback.

I&apos;m only the tiniest bit sad. With only a single implementation, I&apos;d rather have C++ code in source files than in perl. It&apos;ll be easy enough to move this back to the code generator if/when it makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800552</commentid>
    <comment_count>6</comment_count>
      <attachid>181352</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-04 13:04:39 -0800</bug_when>
    <thetext>Comment on attachment 181352
Patch

Clearing flags on attachment: 181352

Committed r138841: &lt;http://trac.webkit.org/changeset/138841&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800554</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-04 13:04:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181352</attachid>
            <date>2013-01-04 11:52:22 -0800</date>
            <delta_ts>2013-01-04 13:04:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106122-20130104114928.patch</filename>
            <type>text/plain</type>
            <size>19388</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4ODEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjliMjk5ZTlmMjRiY2Uy
NDhkODg5MTIxZWM2Y2UwODFkZTkzZWI0My4uMDUxODgwMzMxODBiMDIyOTUzNzcwZWRiNTNiNDU0
MzBlZTY3YWRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAxLTA0ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFt2OF0gU3RvcCB1c2luZyBh
biBJREwgdG8gZ2VuZXJhdGUgVjhNdXRhdGlvbkNhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYxMjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb25seSByZWFsIGNvZGUgaW4gdGhlIGdl
bmVyYXRlZCBWOE11dGF0aW9uQ2FsbGJhY2sue2gsY3BwfSBmaWxlcworICAgICAgICB3ZXJlIHNw
ZWNpZmljYWxseSB3cml0dGVuIGluIENvZGVHZW5lcmF0b3JWOCBmb3IgaXRzIHVzZS4gQnkgaW5z
dGVhZAorICAgICAgICBVc2luZyBjb21wbGV0ZWx5LWhhbmQtd3JpdHRlbiB2ZXJzaW9ucyBvZiB0
aGVzZSBmaWxlcywgdGhlCisgICAgICAgIENvZGVHZW5lcmF0b3IgY2FuIGJlIHNpbXBsaWZpZWQg
KGFzIGNhbiBhbGwgZ2VuZXJhdGVkIENhbGxiYWNrcykuCisgICAgICAgIEFsbCB0aGUgYWN0dWFs
bHkgc2hhcmVkIGNvZGUgaXMgc3RpbGwgc2hhcmVkIHZpYSBzdWJjbGFzc2luZyBvZgorICAgICAg
ICBBY3RpdmVET01DYWxsYmFjay4KKworICAgICAgICBUaGlzIGludHJvZHVjZXMgYWRkaXRpb25h
bCBmbGV4aWJpbGl0eSBpbnRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAgICBNdXRhdGlv
bkNhbGxiYWNrIHdoaWNoIHdpbGwgYmUgdXNlZCB3aGVuIGZpeGluZyB0aGUgTXV0YXRpb25PYnNl
cnZlcgorICAgICAgICBtZW1vcnkgbGVhayAoaHR0cDovL3dlYmtpdC5vcmcvYi85MDY2MSkgZm9y
IEpTQy4KKworICAgICAgICBObyBjaGFuZ2VzIHRvIEpTQyBmb3Igbm93LCBqdXN0IGEgRklYTUUg
aW4gdGhlIElETCBmaWxlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmVmYWN0b3Jpbmdvbmx5
LgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0hlYWRlcik6Cisg
ICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDYWxsYmFjay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWOFRlc3RDYWxsYmFjazo6VjhUZXN0Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RDYWxsYmFjay5oOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0
Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgIChWOFRlc3RDYWxsYmFjayk6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNrLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwLgor
ICAgICAgICAoV2ViQ29yZTo6VjhNdXRhdGlvbkNhbGxiYWNrOjpWOE11dGF0aW9uQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6VjhNdXRhdGlvbkNhbGxiYWNrOjpoYW5kbGVFdmVudCk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNrLmg6IEFkZGVkLgorICAgICAg
ICAoVjhNdXRhdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TXV0YXRpb25DYWxs
YmFjazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TXV0YXRpb25DYWxsYmFjazo6d2Vh
a0NhbGxiYWNrKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25DYWxsYmFjay5pZGw6CisKIDIwMTMt
MDEtMDQgIEpvaG4gTWVsbG9yICA8am9obm1lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFYXJs
eSBvdXQgZnJvbSBGb250Q2FjaGU6OnJlbGVhc2VGb250RGF0YSBpZiBjYWNoZWQgZm9udCBkYXRh
IG5vdCBmb3VuZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAzOTY3NDk3MDM3NzViMGUzZTkzMjI1NWUw
ZGRjMWI0ZmY4MWRhMDM3Li5iZGU1MWU2MzAxNmQ3ZDI2YmE4ODNhYTFlNTAxYzhkYzAwZmMyZjhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMjQsNyArMjI0LDYgQEAKICAgICAgICAgICAgICdkb20v
TWVzc2FnZUV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL01lc3NhZ2VQb3J0LmlkbCcsCiAg
ICAgICAgICAgICAnZG9tL01vdXNlRXZlbnQuaWRsJywKLSAgICAgICAgICAgICdkb20vTXV0YXRp
b25DYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkV2ZW50LmlkbCcsCiAg
ICAgICAgICAgICAnZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsJywKICAgICAgICAgICAgICdkb20v
TXV0YXRpb25SZWNvcmQuaWRsJywKQEAgLTEyNTgsNiArMTI1Nyw4IEBACiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvVjhJbml0aWFsaXplci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9W
OExhenlFdmVudExpc3RlbmVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhMYXp5
RXZlbnRMaXN0ZW5lci5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOE11dGF0aW9uQ2Fs
bGJhY2suY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOE11dGF0aW9uQ2FsbGJhY2su
aCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhOUE9iamVjdC5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
VjhOUFV0aWxzLmNwcCcsCkBAIC0xMzYyLDcgKzEzNjMsNiBAQAogICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCcsCi0gICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBD
dXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVz
Q29sbGVjdGlvbi5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA4ZmI5ZDkzOWFjZGY5NGUxNTNkZTM0MWJhODBkNjg5
MjliM2JkNjRkLi4wN2NiMmRkODU1NzZkMjRlZDM0NzE2NjNkOWE0YWFiNzFmN2E2NThhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQpAQCAtMzI1MiwxMSArMzI1MiwxMSBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlcgogCiAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPCR7djhJbnRlcmZhY2VOYW1lfT4gY3JlYXRlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2
YWx1ZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBvd25lciA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKSkKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjwke3Y4SW50ZXJmYWNlTmFtZX0+IGNyZWF0ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgewogICAgICAgICBBU1NF
UlQodmFsdWUtPklzT2JqZWN0KCkpOwogICAgICAgICBBU1NFUlQoY29udGV4dCk7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgJHt2OEludGVyZmFjZU5hbWV9KHY4OjpIYW5kbGU8djg6Ok9i
amVjdD46OkNhc3QodmFsdWUpLCBjb250ZXh0LCBvd25lcikpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3ICR7djhJbnRlcmZhY2VOYW1lfSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0
KHZhbHVlKSwgY29udGV4dCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfiR7djhJbnRlcmZhY2VO
YW1lfSgpOwpAQCAtMzI5MCwxMyArMzI5MCw3IEBAIEVORAogICAgIHZpcnR1YWwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAog
cHJpdmF0ZToKLSAgICAke3Y4SW50ZXJmYWNlTmFtZX0odjg6OkhhbmRsZTx2ODo6T2JqZWN0Piwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4pOwotCi0gICAg
c3RhdGljIHZvaWQgd2Vha0NhbGxiYWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gd3JhcHBl
ciwgdm9pZCogcGFyYW1ldGVyKQotICAgIHsKLSAgICAgICAgJHt2OEludGVyZmFjZU5hbWV9KiBv
YmplY3QgPSBzdGF0aWNfY2FzdDwke3Y4SW50ZXJmYWNlTmFtZX0qPihwYXJhbWV0ZXIpOwotICAg
ICAgICBvYmplY3QtPm1fY2FsbGJhY2suY2xlYXIoKTsKLSAgICB9CisgICAgJHt2OEludGVyZmFj
ZU5hbWV9KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
IAogICAgIFNjb3BlZFBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gbV9jYWxsYmFjazsKICAgICBXb3Js
ZENvbnRleHRIYW5kbGUgbV93b3JsZENvbnRleHQ7CkBAIC0zMzI4LDE1ICszMzIyLDExIEBAIHN1
YiBHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPlxuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIm5hbWVzcGFjZSBXZWJDb3JlIHtcblxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8
RU5EKTsKLSR7djhJbnRlcmZhY2VOYW1lfTo6JHt2OEludGVyZmFjZU5hbWV9KHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gY2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gb3duZXIpCiske3Y4SW50ZXJmYWNlTmFtZX06OiR7djhJbnRl
cmZhY2VOYW1lfSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0KQogICAgIDogQWN0aXZlRE9NQ2FsbGJhY2soY29udGV4dCkKICAg
ICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCiAgICAgLCBtX3dvcmxkQ29udGV4dChVc2VDdXJyZW50
V29ybGQpCiB7Ci0gICAgaWYgKG93bmVyLklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotICAg
IG93bmVyLT5TZXRIaWRkZW5WYWx1ZShWOEhpZGRlblByb3BlcnR5TmFtZTo6Y2FsbGJhY2soKSwg
Y2FsbGJhY2spOwotICAgIG1fY2FsbGJhY2suZ2V0KCkuTWFrZVdlYWsodGhpcywgJiR7djhJbnRl
cmZhY2VOYW1lfTo6d2Vha0NhbGxiYWNrKTsKIH0KIAogJHt2OEludGVyZmFjZU5hbWV9Ojp+JHt2
OEludGVyZmFjZU5hbWV9KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RDYWxsYmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q2FsbGJhY2suY3BwCmluZGV4IGJmMGE5OTVmYWQ1NzY2
ZTFkNzE1N2FkZGExY2VkNTQzZTNhNjBiZTUuLjgyOTE4YzJmYzJhMGJkZTBlNGNiNTlkNjEwMGFm
NTBmM2VhYzYzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdENhbGxiYWNrLmNwcApAQCAtMzksMTUgKzM5LDExIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVjhUZXN0Q2FsbGJhY2s6OlY4VGVzdENhbGxiYWNrKHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gY2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb3duZXIpCitWOFRlc3RDYWxsYmFjazo6VjhU
ZXN0Q2FsbGJhY2sodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjYWxsYmFjaywgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCkKICAgICA6IEFjdGl2ZURPTUNhbGxiYWNrKGNvbnRleHQpCiAg
ICAgLCBtX2NhbGxiYWNrKGNhbGxiYWNrKQogICAgICwgbV93b3JsZENvbnRleHQoVXNlQ3VycmVu
dFdvcmxkKQogewotICAgIGlmIChvd25lci5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLSAg
ICBvd25lci0+U2V0SGlkZGVuVmFsdWUoVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6OmNhbGxiYWNrKCks
IGNhbGxiYWNrKTsKLSAgICBtX2NhbGxiYWNrLmdldCgpLk1ha2VXZWFrKHRoaXMsICZWOFRlc3RD
YWxsYmFjazo6d2Vha0NhbGxiYWNrKTsKIH0KIAogVjhUZXN0Q2FsbGJhY2s6On5WOFRlc3RDYWxs
YmFjaygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0Q2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RDYWxsYmFjay5oCmluZGV4IGViMGM0NTdjNzQ2MTM3NDY5NDU5YzU5ZTA2NGNj
Zjg4NGYyZTdlMzUuLmVjOTc3NjkyNThhMTE5MTEyNjA4MzRlMzhlNDA2ZTRkY2MyMTEzMWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RD
YWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RDYWxsYmFjay5oCkBAIC0zNiwxMSArMzYsMTEgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDsKIAogY2xhc3MgVjhUZXN0Q2FsbGJhY2sgOiBwdWJsaWMgVGVzdENhbGxiYWNrLCBw
dWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFY4VGVzdENhbGxiYWNrPiBjcmVhdGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG93bmVy
ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4VGVz
dENhbGxiYWNrPiBjcmVhdGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKHZhbHVlLT5Jc09i
amVjdCgpKTsKICAgICAgICAgQVNTRVJUKGNvbnRleHQpOwotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFY4VGVzdENhbGxiYWNrKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUp
LCBjb250ZXh0LCBvd25lcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFY4VGVzdENh
bGxiYWNrKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpLCBjb250ZXh0KSk7CiAg
ICAgfQogCiAgICAgdmlydHVhbCB+VjhUZXN0Q2FsbGJhY2soKTsKQEAgLTU4LDEzICs1OCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgVjhUZXN0Q2FsbGJh
Y2sodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4pOwotCi0gICAgc3RhdGljIHZvaWQgd2Vha0NhbGxiYWNrKHY4OjpQ
ZXJzaXN0ZW50PHY4OjpWYWx1ZT4gd3JhcHBlciwgdm9pZCogcGFyYW1ldGVyKQotICAgIHsKLSAg
ICAgICAgVjhUZXN0Q2FsbGJhY2sqIG9iamVjdCA9IHN0YXRpY19jYXN0PFY4VGVzdENhbGxiYWNr
Kj4ocGFyYW1ldGVyKTsKLSAgICAgICAgb2JqZWN0LT5tX2NhbGxiYWNrLmNsZWFyKCk7Ci0gICAg
fQorICAgIFY4VGVzdENhbGxiYWNrKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKTsKIAogICAgIFNjb3BlZFBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gbV9jYWxs
YmFjazsKICAgICBXb3JsZENvbnRleHRIYW5kbGUgbV93b3JsZENvbnRleHQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE11dGF0aW9uQ2FsbGJhY2suY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNrLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZjA1MTkyZTMyNDgyMTg5NWJmODk3OTA5YzI2ZDU2Y2NmZmUwYWNkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhNdXRhdGlvbkNhbGxiYWNrLmNwcApA
QCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJWOE11dGF0aW9uQ2FsbGJhY2suaCIKKworI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOENhbGxiYWNrLmgi
CisjaW5jbHVkZSAiVjhNdXRhdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiVjhNdXRhdGlvblJl
Y29yZC5oIgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworVjhNdXRhdGlvbkNhbGxiYWNrOjpWOE11dGF0aW9uQ2FsbGJhY2sodjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBjYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBvd25lcikKKyAgICA6IEFjdGl2ZURPTUNhbGxiYWNrKGNvbnRl
eHQpCisgICAgLCBtX2NhbGxiYWNrKGNhbGxiYWNrKQorICAgICwgbV93b3JsZENvbnRleHQoVXNl
Q3VycmVudFdvcmxkKQoreworICAgIG93bmVyLT5TZXRIaWRkZW5WYWx1ZShWOEhpZGRlblByb3Bl
cnR5TmFtZTo6Y2FsbGJhY2soKSwgY2FsbGJhY2spOworICAgIG1fY2FsbGJhY2suZ2V0KCkuTWFr
ZVdlYWsodGhpcywgJlY4TXV0YXRpb25DYWxsYmFjazo6d2Vha0NhbGxiYWNrKTsKK30KKworYm9v
bCBWOE11dGF0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3JkQXJyYXkqIG11
dGF0aW9ucywgTXV0YXRpb25PYnNlcnZlciogb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKG11dGF0
aW9ucyk7CisgICAgaWYgKCFtdXRhdGlvbnMpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
aWYgKCFjYW5JbnZva2VDYWxsYmFjaygpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHY4
OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKKworICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+
IHY4Q29udGV4dCA9IHRvVjhDb250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV93b3Js
ZENvbnRleHQpOworICAgIGlmICh2OENvbnRleHQuSXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIHY4OjpDb250ZXh0OjpTY29wZSBzY29wZSh2OENvbnRleHQpOworCisgICAg
djg6OkxvY2FsPHY4OjpBcnJheT4gbXV0YXRpb25zQXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhtdXRh
dGlvbnMtPnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtdXRhdGlvbnMtPnNp
emUoKTsgKytpKQorICAgICAgICBtdXRhdGlvbnNBcnJheS0+U2V0KGRlcHJlY2F0ZWRWOEludGVn
ZXIoaSksIHRvVjgobXV0YXRpb25zLT5hdChpKS5nZXQoKSkpOworCisgICAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IG9ic2VydmVySGFuZGxlID0gdG9WOChvYnNlcnZlcik7CisgICAgaWYgKG9ic2Vy
dmVySGFuZGxlLklzRW1wdHkoKSkgeworICAgICAgICBpZiAoIWlzU2NyaXB0Q29udHJvbGxlclRl
cm1pbmF0aW5nKCkpCisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICBpZiAoIW9ic2VydmVySGFuZGxlLT5Jc09iamVjdCgpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10gPSB7CisgICAg
ICAgIG11dGF0aW9uc0FycmF5LAorICAgICAgICBvYnNlcnZlckhhbmRsZQorICAgIH07CisKKyAg
ICBib29sIGNhbGxiYWNrUmV0dXJuVmFsdWUgPSBmYWxzZTsKKyAgICByZXR1cm4gIWludm9rZUNh
bGxiYWNrKG1fY2FsbGJhY2suZ2V0KCksIHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3Qob2Jz
ZXJ2ZXJIYW5kbGUpLCAyLCBhcmd2LCBjYWxsYmFja1JldHVyblZhbHVlLCBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE11dGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TXV0YXRpb25DYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiNWYz
ZTI5NDViY2E1NWVkNGE2ZTk5ZWM5ZmFjYWMwMWE1ZGMyYzUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE11dGF0aW9uQ2FsbGJhY2suaApAQCAtMCwwICsx
LDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVjhNdXRhdGlvbkNhbGxiYWNrX2gKKyNkZWZp
bmUgVjhNdXRhdGlvbkNhbGxiYWNrX2gKKworI2luY2x1ZGUgIkFjdGl2ZURPTUNhbGxiYWNrLmgi
CisjaW5jbHVkZSAiTXV0YXRpb25DYWxsYmFjay5oIgorI2luY2x1ZGUgIlNjb3BlZFBlcnNpc3Rl
bnQuaCIKKyNpbmNsdWRlICJXb3JsZENvbnRleHRIYW5kbGUuaCIKKyNpbmNsdWRlIDx2OC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisK
K2NsYXNzIFY4TXV0YXRpb25DYWxsYmFjayA6IHB1YmxpYyBNdXRhdGlvbkNhbGxiYWNrLCBwdWJs
aWMgQWN0aXZlRE9NQ2FsbGJhY2sgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4
TXV0YXRpb25DYWxsYmFjaz4gY3JlYXRlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvd25l
cikKKyAgICB7CisgICAgICAgIEFTU0VSVCh2YWx1ZS0+SXNPYmplY3QoKSk7CisgICAgICAgIEFT
U0VSVChjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWOE11dGF0aW9uQ2Fs
bGJhY2sodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSksIGNvbnRleHQsIG93bmVy
KSk7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KE11dGF0aW9uUmVjb3Jk
QXJyYXkqLCBNdXRhdGlvbk9ic2VydmVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsgfQorCitwcml2YXRlOgorICAgIFY4TXV0YXRpb25DYWxsYmFjayh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
Pik7CisKKyAgICBzdGF0aWMgdm9pZCB3ZWFrQ2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6OlZh
bHVlPiB3cmFwcGVyLCB2b2lkKiBwYXJhbWV0ZXIpCisgICAgeworICAgICAgICBWOE11dGF0aW9u
Q2FsbGJhY2sqIG9iamVjdCA9IHN0YXRpY19jYXN0PFY4TXV0YXRpb25DYWxsYmFjayo+KHBhcmFt
ZXRlcik7CisgICAgICAgIG9iamVjdC0+bV9jYWxsYmFjay5jbGVhcigpOworICAgIH0KKworICAg
IFNjb3BlZFBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gbV9jYWxsYmFjazsKKyAgICBXb3JsZENvbnRl
eHRIYW5kbGUgbV93b3JsZENvbnRleHQ7Cit9OworCit9CisKKyNlbmRpZiAvLyBWOE11dGF0aW9u
Q2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYmU4ZDU0ODQ1MzQwNjhmYjM4MGU2MzFjM2EzNGI5NGY2NTY1Yzk5Ni4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDg3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNs
dWRlICJWOE11dGF0aW9uQ2FsbGJhY2suaCIKLQotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOENhbGxiYWNrLmgi
Ci0jaW5jbHVkZSAiVjhNdXRhdGlvbk9ic2VydmVyLmgiCi0jaW5jbHVkZSAiVjhNdXRhdGlvblJl
Y29yZC5oIgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL0dldFB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWJvb2wgVjhNdXRhdGlvbkNhbGxiYWNrOjpoYW5k
bGVFdmVudChNdXRhdGlvblJlY29yZEFycmF5KiBtdXRhdGlvbnMsIE11dGF0aW9uT2JzZXJ2ZXIq
IG9ic2VydmVyKQotewotICAgIEFTU0VSVChtdXRhdGlvbnMpOwotICAgIGlmICghbXV0YXRpb25z
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7
Ci0KLSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSB0b1Y4Q29udGV4dChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fd29ybGRDb250ZXh0KTsKLSAgICBpZiAodjhDb250
ZXh0LklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICB2ODo6Q29udGV4dDo6
U2NvcGUgc2NvcGUodjhDb250ZXh0KTsKLQotICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IG11dGF0
aW9uc0FycmF5ID0gdjg6OkFycmF5OjpOZXcobXV0YXRpb25zLT5zaXplKCkpOwotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbXV0YXRpb25zLT5zaXplKCk7ICsraSkKLSAgICAgICAgbXV0YXRp
b25zQXJyYXktPlNldChkZXByZWNhdGVkVjhJbnRlZ2VyKGkpLCB0b1Y4KG11dGF0aW9ucy0+YXQo
aSkuZ2V0KCkpKTsKLQotICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvYnNlcnZlckhhbmRsZSA9
IHRvVjgob2JzZXJ2ZXIpOwotICAgIGlmIChvYnNlcnZlckhhbmRsZS5Jc0VtcHR5KCkpIHsKLSAg
ICAgICAgaWYgKCFpc1NjcmlwdENvbnRyb2xsZXJUZXJtaW5hdGluZygpKQotICAgICAgICAgICAg
Q1JBU0goKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgaWYgKCFvYnNlcnZl
ckhhbmRsZS0+SXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gYXJndltdID0gewotICAgICAgICBtdXRhdGlvbnNBcnJheSwKLSAgICAg
ICAgb2JzZXJ2ZXJIYW5kbGUKLSAgICB9OwotCi0gICAgYm9vbCBjYWxsYmFja1JldHVyblZhbHVl
ID0gZmFsc2U7Ci0gICAgcmV0dXJuICFpbnZva2VDYWxsYmFjayhtX2NhbGxiYWNrLmdldCgpLCB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KG9ic2VydmVySGFuZGxlKSwgMiwgYXJndiwgY2Fs
bGJhY2tSZXR1cm5WYWx1ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
Q2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCmlu
ZGV4IDA2N2UzNmY3M2Q1MTk3Njg0ZDc2MmRhN2ZmOGM2ODU5N2NmYmFlMWMuLjdmZjYwYjc1OTIy
YWFiMjVhMmQxMzVjMzFhOTFkZWNmZDJmM2FhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25DYWxsYmFjay5pZGwKQEAgLTI4LDYgKzI4LDggQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAor
Ly8gRklYTUU6IFRoaXMgaW50ZXJmYWNlIGlzIG9ubHkgdXNlZCB0byBnZW5lcmF0ZSBjb2RlIGZv
ciBKU0MuCisvLyBJdCBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIGh0dHA6Ly93ZWJraXQub3JnL2Iv
OTM2NjEgaXMgZml4ZWQuCiBbCiAgICAgQ2FsbGJhY2sKIF0gaW50ZXJmYWNlIE11dGF0aW9uQ2Fs
bGJhY2sgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>