<?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>21432</bug_id>
          
          <creation_ts>2008-10-07 10:21:31 -0700</creation_ts>
          <short_desc>Auto-generate the DOMEventTarget protocol implementation for DOMNode and DOMSVGElementInstance</short_desc>
          <delta_ts>2008-10-07 14:49:55 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>94373</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-07 10:21:31 -0700</bug_when>
    <thetext>We should auto-generate these protocol implementations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94374</commentid>
    <comment_count>1</comment_count>
      <attachid>24149</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-07 10:21:59 -0700</bug_when>
    <thetext>Created attachment 24149
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94379</commentid>
    <comment_count>2</comment_count>
      <attachid>24149</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-07 10:30:58 -0700</bug_when>
    <thetext>Comment on attachment 24149
Proposed patch

+ #if defined(LANGUAGE_OBJECTIVE_C)
+         : Object, EventTarget
+ #endif /* defined(LANGUAGE_OBJECTIVE_C) */

What&apos;s &quot;Object&quot; here and why is it needed? Why does this need to be ObjC-specific?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94386</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-07 10:50:21 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 24149 [edit])
&gt; + #if defined(LANGUAGE_OBJECTIVE_C)
&gt; +         : Object, EventTarget
&gt; + #endif /* defined(LANGUAGE_OBJECTIVE_C) */
&gt; 
&gt; What&apos;s &quot;Object&quot; here and why is it needed? Why does this need to be
&gt; ObjC-specific?
&gt; 

Object will turn into DOMObject. This is needed to take the code generator down the right path of multiple super-classes as protocols.

It is ObjC only for legacy reasons. The event target methods are normally on NodeEventTarget, a subclass of Node. But the ObjC API has never has this sub-class and  they are on DOMNode.

I will add this info to the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94455</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-07 14:49:55 -0700</bug_when>
    <thetext>Landed in r37395.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24149</attachid>
            <date>2008-10-07 10:21:59 -0700</date>
            <delta_ts>2008-10-07 10:30:58 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001--Auto-generate-the-DOMEventTarget-protocol-im.patch</filename>
            <type>text/plain</type>
            <size>31104</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">RnJvbSA2NWQ0MTM0MDUwOTkwY2U1MjBjMDA3OWRjYWI3YWNkMjg1N2VlYmE0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW1vdGh5IEhhdGNoZXIgPHRpbW90aHlAYXBwbGUuY29tPgpE
YXRlOiBUdWUsIDcgT2N0IDIwMDggMDc6NTI6MjAgLTA3MDAKU3ViamVjdDogW1BBVENIXSAgICAg
ICAgIEF1dG8tZ2VuZXJhdGUgdGhlIERPTUV2ZW50VGFyZ2V0IHByb3RvY29sIGltcGxlbWVudGF0
aW9uIGZvcgogICAgICAgICBET01Ob2RlIGFuZCBET01TVkdFbGVtZW50SW5zdGFuY2UuCgogICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD1PT1BTIQoKICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6IEFkZCBPYmpDRXZlbnRMaXN0ZW5lci57bW0saH0uCiAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL0RPTS5tbTogUmVtb3ZlIG1hbnkgdW5uZWVkZWQgaGVhZGVyIGluY2x1
ZGVzLiBNb3ZlCiAgICAgICAgT2JqQ0V2ZW50TGlzdGVuZXIgdG8gaXQncyBvd24gZmlsZS4gUmVt
b3ZlIHRoZSBtYW51YWwgaW1wZWxtZW50YXRpb25zCiAgICAgICAgb2YgdGhlIERPTUV2ZW50VGFy
Z2V0IHByb3RvY29sIGZvciBET01Ob2RlIGFuZCBET01TVkdFbGVtZW50SW5zdGFuY2UuCiAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUV2ZW50cy5oOiBSZW1vdmUgdGhlIGNhdGVnb3JpZXMgdGhh
dCBkZWZpbmVkCiAgICAgICAgRE9NRXZlbnRUYXJnZXQgZm9yIERPTU5vZGUgYW5kIERPTVNWR0Vs
ZW1lbnRJbnN0YW5jZS4KICAgICAgICAqIGJpbmRpbmdzL29iamMvT2JqQ0V2ZW50TGlzdGVuZXIu
aDogU3BsaXQgb3V0IGZyb20gRE9NLm1tLgogICAgICAgICogYmluZGluZ3Mvb2JqYy9PYmpDRXZl
bnRMaXN0ZW5lci5tbTogU3BsaXQgb3V0IGZyb20gRE9NLm1tLgogICAgICAgIChXZWJDb3JlOjpP
YmpDRXZlbnRMaXN0ZW5lcjo6ZmluZCk6IE1vdmVkIGZyb20gRE9NLm1tLgogICAgICAgIChXZWJD
b3JlOjpPYmpDRXZlbnRMaXN0ZW5lcjo6d3JhcCk6IFVzZSBQYXNzUmVmUHRyIHRvIHByZXZlbnQg
dGhlCiAgICAgICAgY2FsbGVycyBmcm9tIGRvaW5nIGEgbWFudWFsIGRlcmVmLgogICAgICAgIChX
ZWJDb3JlOjpPYmpDRXZlbnRMaXN0ZW5lcjo6T2JqQ0V2ZW50TGlzdGVuZXIpOiBNb3ZlZCBmcm9t
IERPTS5tbS4KICAgICAgICAoV2ViQ29yZTo6T2JqQ0V2ZW50TGlzdGVuZXI6On5PYmpDRXZlbnRM
aXN0ZW5lcik6IERpdHRvLgogICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
T2JqQy5wbToKICAgICAgICAoR2V0T2JqQ1R5cGVHZXR0ZXIpOiBBZGQgYSBjYXNlIGZvciBFdmVu
dExpc3RlbmVyIGFuZCB1c2UgV1RGOjpnZXRQdHIuCiAgICAgICAgKEFkZEluY2x1ZGVzRm9yVHlw
ZSk6IEluY2x1ZGUgT2JqQ0V2ZW50TGlzdGVuZXIuaCBmb3IgRXZlbnRMaXN0ZW5lci4KICAgICAg
ICBBbmQgaW5jbHVkZSBFdmVudFRhcmdldFNWR0VsZW1lbnRJbnN0YW5jZS5oIGZvciBTVkdFbGVt
ZW50SW5zdGFuY2UuCiAgICAgICAgKEdlbmVyYXRlSGVhZGVyKTogUmVtb3ZlIHRoZSBjaGVjayBm
b3IgbXVsdGlwbGUgcGFyZW50cy4KICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6IFJl
bW92ZSB0aGUgY2hlY2sgZm9yIG11bHRpcGxlIHBhcmVudHMuIFJlbW92ZQogICAgICAgIHRoZSBA
ZGVwcmVjYXRlZEZ1bmN0aW9ucyBhcnJheSBzaW5jZSBkZXByZWNhdGVkIG1ldGhvZHMgZ2V0IGdl
bmVyYXRlZAogICAgICAgIGludG8gdGhlIG1haW4gQGludGVyZmFjZSBub3cgdG8gd29yayB3aXRo
IHByb3RvY29scy4gQWRkIHN1cHBvcnQKICAgICAgICBmb3IgdGhlIEV2ZW50VGFyZ2V0Tm9kZUNh
c3QgZXh0ZW5kZWQgYXR0cmlidXRlLiBBZGQgc3VwcG9ydCBmb3IKICAgICAgICBFdmVudExpc3Rl
bmVyIHBhcmFtZXRlcnMuCiAgICAgICAgKiBkb20vTm9kZS5pZGw6IERlZmluZSBzdXBlcmNsYXNz
ZXMgZm9yIE9iakMgc28gdGhlIGltcGxlbWVudGF0aW9uCiAgICAgICAgYW5kIGludGVyZmFjZSBp
bXBsZW1lbnQgdGhlIERPTUV2ZW50VGFyZ2V0IHByb3RvY29sLiBFeHBsaWNpdGx5CiAgICAgICAg
c3BlY2lmeSBPYmplY3QgYXMgYSBzdXBlcmNsYXNzIHRvIHVzZSBET01FdmVudFRhcmdldC4KICAg
ICAgICAqIHN2Zy9TVkdFbGVtZW50SW5zdGFuY2UuaWRsOiBEaXR0by4KLS0tCiBXZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM3ICsrKysrCiBXZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgfCAgICA4ICsKIFdlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET00ubW0gICAgICAgICAgICAgICAgICB8ICAxOTggKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50cy5oICAgICAgICAg
ICAgIHwgICAxMCAtLQogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNFdmVudExpc3RlbmVyLmgg
ICAgIHwgICA1NSArKysrKysrCiBXZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ0V2ZW50TGlzdGVu
ZXIubW0gICAgfCAgIDgyICsrKysrKysrKysKIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yT2JqQy5wbSB8ICAgNTUgKysrKy0tLS0KIFdlYkNvcmUvZG9tL05vZGUuaWRsICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIFdlYkNvcmUvc3ZnL1NWR0VsZW1lbnRJ
bnN0YW5jZS5pZGwgICAgICAgICAgICB8ICAgIDcgKy0KIDkgZmlsZXMgY2hhbmdlZCwgMjI1IGlu
c2VydGlvbnMoKyksIDIzMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3Jl
L2JpbmRpbmdzL29iamMvT2JqQ0V2ZW50TGlzdGVuZXIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdl
YkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0ZW5lci5tbQoKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTU3NmYwMi4uYmMyOTcy
OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0MCBAQAorMjAwOC0xMC0wNyAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBh
cHBsZS5jb20+CisKKyAgICAgICAgQXV0by1nZW5lcmF0ZSB0aGUgRE9NRXZlbnRUYXJnZXQgcHJv
dG9jb2wgaW1wbGVtZW50YXRpb24gZm9yCisgICAgICAgIERPTU5vZGUgYW5kIERPTVNWR0VsZW1l
bnRJbnN0YW5jZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9T09QUyEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIE9iakNFdmVudExp
c3RlbmVyLnttbSxofS4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTS5tbTogUmVtb3ZlIG1h
bnkgdW5uZWVkZWQgaGVhZGVyIGluY2x1ZGVzLiBNb3ZlCisgICAgICAgIE9iakNFdmVudExpc3Rl
bmVyIHRvIGl0J3Mgb3duIGZpbGUuIFJlbW92ZSB0aGUgbWFudWFsIGltcGVsbWVudGF0aW9ucwor
ICAgICAgICBvZiB0aGUgRE9NRXZlbnRUYXJnZXQgcHJvdG9jb2wgZm9yIERPTU5vZGUgYW5kIERP
TVNWR0VsZW1lbnRJbnN0YW5jZS4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUV2ZW50cy5o
OiBSZW1vdmUgdGhlIGNhdGVnb3JpZXMgdGhhdCBkZWZpbmVkCisgICAgICAgIERPTUV2ZW50VGFy
Z2V0IGZvciBET01Ob2RlIGFuZCBET01TVkdFbGVtZW50SW5zdGFuY2UuCisgICAgICAgICogYmlu
ZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0ZW5lci5oOiBTcGxpdCBvdXQgZnJvbSBET00ubW0uCisg
ICAgICAgICogYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0ZW5lci5tbTogU3BsaXQgb3V0IGZy
b20gRE9NLm1tLgorICAgICAgICAoV2ViQ29yZTo6T2JqQ0V2ZW50TGlzdGVuZXI6OmZpbmQpOiBN
b3ZlZCBmcm9tIERPTS5tbS4KKyAgICAgICAgKFdlYkNvcmU6Ok9iakNFdmVudExpc3RlbmVyOjp3
cmFwKTogVXNlIFBhc3NSZWZQdHIgdG8gcHJldmVudCB0aGUKKyAgICAgICAgY2FsbGVycyBmcm9t
IGRvaW5nIGEgbWFudWFsIGRlcmVmLgorICAgICAgICAoV2ViQ29yZTo6T2JqQ0V2ZW50TGlzdGVu
ZXI6Ok9iakNFdmVudExpc3RlbmVyKTogTW92ZWQgZnJvbSBET00ubW0uCisgICAgICAgIChXZWJD
b3JlOjpPYmpDRXZlbnRMaXN0ZW5lcjo6fk9iakNFdmVudExpc3RlbmVyKTogRGl0dG8uCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbToKKyAgICAgICAgKEdl
dE9iakNUeXBlR2V0dGVyKTogQWRkIGEgY2FzZSBmb3IgRXZlbnRMaXN0ZW5lciBhbmQgdXNlIFdU
Rjo6Z2V0UHRyLgorICAgICAgICAoQWRkSW5jbHVkZXNGb3JUeXBlKTogSW5jbHVkZSBPYmpDRXZl
bnRMaXN0ZW5lci5oIGZvciBFdmVudExpc3RlbmVyLgorICAgICAgICBBbmQgaW5jbHVkZSBFdmVu
dFRhcmdldFNWR0VsZW1lbnRJbnN0YW5jZS5oIGZvciBTVkdFbGVtZW50SW5zdGFuY2UuCisgICAg
ICAgIChHZW5lcmF0ZUhlYWRlcik6IFJlbW92ZSB0aGUgY2hlY2sgZm9yIG11bHRpcGxlIHBhcmVu
dHMuCisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKTogUmVtb3ZlIHRoZSBjaGVjayBm
b3IgbXVsdGlwbGUgcGFyZW50cy4gUmVtb3ZlCisgICAgICAgIHRoZSBAZGVwcmVjYXRlZEZ1bmN0
aW9ucyBhcnJheSBzaW5jZSBkZXByZWNhdGVkIG1ldGhvZHMgZ2V0IGdlbmVyYXRlZAorICAgICAg
ICBpbnRvIHRoZSBtYWluIEBpbnRlcmZhY2Ugbm93IHRvIHdvcmsgd2l0aCBwcm90b2NvbHMuIEFk
ZCBzdXBwb3J0CisgICAgICAgIGZvciB0aGUgRXZlbnRUYXJnZXROb2RlQ2FzdCBleHRlbmRlZCBh
dHRyaWJ1dGUuIEFkZCBzdXBwb3J0IGZvcgorICAgICAgICBFdmVudExpc3RlbmVyIHBhcmFtZXRl
cnMuCisgICAgICAgICogZG9tL05vZGUuaWRsOiBEZWZpbmUgc3VwZXJjbGFzc2VzIGZvciBPYmpD
IHNvIHRoZSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBhbmQgaW50ZXJmYWNlIGltcGxlbWVudCB0
aGUgRE9NRXZlbnRUYXJnZXQgcHJvdG9jb2wuIEV4cGxpY2l0bHkKKyAgICAgICAgc3BlY2lmeSBP
YmplY3QgYXMgYSBzdXBlcmNsYXNzIHRvIHVzZSBET01FdmVudFRhcmdldC4KKyAgICAgICAgKiBz
dmcvU1ZHRWxlbWVudEluc3RhbmNlLmlkbDogRGl0dG8uCisKIDIwMDgtMTAtMDYgIFRpbW90aHkg
SGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IHRvIHRo
ZSBSZXNvdXJjZXMgcGFuZWwgZm9yIHF1ZXJpZXMgbGlrZSAiIzEyMyIsICJmb28gIzEyMyIsCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUwMDRlZjEuLmFi
N2FlZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0z
ODQsNiArMzg0LDggQEAKIAkJMUNFODNBQzQwQURBRkZEODAwOTM1NEY2IC8qIERlbGV0ZUJ1dHRv
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzRD
OEY2MzBBRDg2NTVEMDA5NDc1Q0UgLyogRGVsZXRlQnV0dG9uLmNwcCAqLzsgfTsKIAkJMUNFRkM5
QjkwRDc4REM4QzAwN0QyNTc5IC8qIFNjaGVkdWxlUGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNFRkM5QjcwRDc4REM4QzAwN0QyNTc5IC8qIFNj
aGVkdWxlUGFpci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTFDRUZDOUJBMEQ3OERDOEMwMDdEMjU3OSAvKiBTY2hlZHVsZVBhaXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNFRkM5QjgwRDc4REM4
QzAwN0QyNTc5IC8qIFNjaGVkdWxlUGFpci5jcHAgKi87IH07CisJCTFDRjZCREZBMEU5QkIyNkEw
MDI1RTFDRCAvKiBPYmpDRXZlbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGNkJERjgwRTlCQjI2QTAwMjVFMUNEIC8qIE9iakNFdmVu
dExpc3RlbmVyLmggKi87IH07CisJCTFDRjZCREZCMEU5QkIyNkEwMDI1RTFDRCAvKiBPYmpDRXZl
bnRMaXN0ZW5lci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDRjZCREY5MEU5QkIyNkEwMDI1RTFDRCAvKiBPYmpDRXZlbnRMaXN0ZW5lci5tbSAqLzsg
fTsKIAkJMUNGQUUzMjMwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3
b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0ZBRTMyMjBBNkQ2QTNG
MDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiAqLzsgfTsKIAkJMUNGQ0VFOTYwQUFDQzQwMTAwMzQ4
NzUwIC8qIERPTUhUTUxCb2R5RWxlbWVudFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRkNFRThEMEFBQ0MzQ0Qw
MDM0ODc1MCAvKiBET01IVE1MQm9keUVsZW1lbnRQcml2YXRlLmggKi87IH07CiAJCTFDRkNFRTk3
MEFBQ0M0MDEwMDM0ODc1MCAvKiBET01IVE1MQnV0dG9uRWxlbWVudFByaXZhdGUuaCBpbiBDb3B5
IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
RkNFRThFMEFBQ0MzQ0QwMDM0ODc1MCAvKiBET01IVE1MQnV0dG9uRWxlbWVudFByaXZhdGUuaCAq
LzsgfTsKQEAgLTUwNzQsNiArNTA3Niw4IEBACiAJCTFDRTI0Rjk2MEQ3Q0FGMEUwMDdFMDRDMiAv
KiBTY2hlZHVsZVBhaXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBTY2hlZHVsZVBhaXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFD
RUZDOUI3MEQ3OERDOEMwMDdEMjU3OSAvKiBTY2hlZHVsZVBhaXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2NoZWR1bGVQYWlyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDRUZDOUI4MEQ3OERDOEMwMDdEMjU3OSAvKiBTY2hlZHVsZVBhaXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NoZWR1bGVQYWlyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNGNkJERjgwRTlCQjI2QTAwMjVFMUNEIC8qIE9iakNF
dmVudExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9iakNFdmVu
dExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRjZCREY5MEU5QkIy
NkEwMDI1RTFDRCAvKiBPYmpDRXZlbnRMaXN0ZW5lci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IE9iakNFdmVudExpc3RlbmVyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9ICJjb21waWxl
ZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGlib2JqYy5keWxpYjsgcGF0aCA9IC91c3IvbGliL2xp
Ym9iamMuZHlsaWI7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCTFDRkNFRTdGMEFB
Q0MzQjMwMDM0ODc1MCAvKiBET01IVE1MQW5jaG9yRWxlbWVudFByaXZhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEFuY2hvckVsZW1lbnRQcml2YXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRkNFRTg4MEFBQ0MzQzAwMDM0ODc1MCAvKiBE
T01IVE1MQXJlYUVsZW1lbnRQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUhUTUxBcmVhRWxlbWVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEyODA0LDYgKzEyODA4LDggQEAKIAkJCQkxQTFEMTM3RjBBNTMyNTUyMDA2NEJGNUYg
LyogRE9NWFBhdGgubW0gKi8sCiAJCQkJMTQ4QUZEQTMwQUY1ODM2MDAwOENDNzAwIC8qIEV4Y2Vw
dGlvbkhhbmRsZXJzLmggKi8sCiAJCQkJMTQ4QUZEQTQwQUY1ODM2MDAwOENDNzAwIC8qIEV4Y2Vw
dGlvbkhhbmRsZXJzLm1tICovLAorCQkJCTFDRjZCREY4MEU5QkIyNkEwMDI1RTFDRCAvKiBPYmpD
RXZlbnRMaXN0ZW5lci5oICovLAorCQkJCTFDRjZCREY5MEU5QkIyNkEwMDI1RTFDRCAvKiBPYmpD
RXZlbnRMaXN0ZW5lci5tbSAqLywKIAkJCQkxQ0FGMzQ3RTBBNkM0MDUyMDBBQkUwNkUgLyogV2Vi
U2NyaXB0T2JqZWN0LmggKi8sCiAJCQkJMUNBRjM0N0YwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNj
cmlwdE9iamVjdC5tbSAqLywKIAkJCQkxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2Ny
aXB0T2JqZWN0UHJpdmF0ZS5oICovLApAQCAtMTU5NjQsNiArMTU5NzAsNyBAQAogCQkJCTFDODFC
QTBDMEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0RGVidWdMaXN0ZW5lci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUM4MUJBMEUwRTk3MzQ4MzAwMjY2RTA3IC8qIEphdmFTY3JpcHREZWJ1Z1Nl
cnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzQkUxMkIwRTk4MDkyRjAwODM1NTg4IC8qIFBv
cHVwTWVudVN0eWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0Y2QkRGQTBFOUJCMjZBMDAyNUUx
Q0QgLyogT2JqQ0V2ZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTc4MjcsNiArMTc4
MzQsNyBAQAogCQkJCTFDODFCQTAyMEU5NzMzQ0IwMDI2NkUwNyAvKiBKYXZhU2NyaXB0UHJvZmls
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzgxQkEwOTBFOTczNDgzMDAyNjZFMDcgLyogSmF2
YVNjcmlwdENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzgxQkEwRDBFOTczNDgz
MDAyNjZFMDcgLyogSmF2YVNjcmlwdERlYnVnU2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTFDRjZCREZCMEU5QkIyNkEwMDI1RTFDRCAvKiBPYmpDRXZlbnRMaXN0ZW5lci5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbSBiL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KaW5kZXggOGM3ZWRhZi4uNjgwODRlMCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NLm1tCkBAIC0yOCw4MCArMjgsMzEgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9y
dCAiRE9NLmgiCiAKLSNpbXBvcnQgIkNEQVRBU2VjdGlvbi5oIgotI2ltcG9ydCAiQ1NTSGVscGVy
LmgiCi0jaW1wb3J0ICJDU1NTdHlsZVNoZWV0LmgiCi0jaW1wb3J0ICJDb21tZW50LmgiCiAjaW1w
b3J0ICJET01IVE1MQ2FudmFzRWxlbWVudC5oIgogI2ltcG9ydCAiRE9NSW50ZXJuYWwuaCIKLSNp
bXBvcnQgIkRPTVByaXZhdGUuaCIKLSNpbXBvcnQgIkRvY3VtZW50LmgiCi0jaW1wb3J0ICJEb2N1
bWVudEZyYWdtZW50LmgiCi0jaW1wb3J0ICJEb2N1bWVudFR5cGUuaCIKLSNpbXBvcnQgIkV2ZW50
LmgiCi0jaW1wb3J0ICJFdmVudExpc3RlbmVyLmgiCi0jaW1wb3J0ICJFdmVudFRhcmdldC5oIgog
I2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKLSNpbXBvcnQgIkZvdW5kYXRpb25FeHRyYXMu
aCIKLSNpbXBvcnQgIkZyYW1lLmgiCi0jaW1wb3J0ICJGcmFtZVZpZXcuaCIKLSNpbXBvcnQgIkhU
TUxEb2N1bWVudC5oIgogI2ltcG9ydCAiSFRNTE5hbWVzLmgiCiAjaW1wb3J0ICJIVE1MUGx1Z0lu
RWxlbWVudC5oIgotI2ltcG9ydCAiSW1hZ2UuaCIKLSNpbXBvcnQgIkludFJlY3QuaCIKLSNpbXBv
cnQgIk5vZGVGaWx0ZXIuaCIKLSNpbXBvcnQgIk5vZGVGaWx0ZXJDb25kaXRpb24uaCIKICNpbXBv
cnQgIk5vZGVJdGVyYXRvci5oIgotI2ltcG9ydCAiTm9kZUxpc3QuaCIKLSNpbXBvcnQgIlByb2Nl
c3NpbmdJbnN0cnVjdGlvbi5oIgotI2ltcG9ydCAiUXVhbGlmaWVkTmFtZS5oIgogI2ltcG9ydCAi
UmFuZ2UuaCIKICNpbXBvcnQgIlJlbmRlckltYWdlLmgiCiAjaW1wb3J0ICJSZW5kZXJWaWV3Lmgi
CiAjaW1wb3J0ICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJTaW1wbGVGb250RGF0YS5o
IgotI2ltcG9ydCAiVGV4dC5oIgogI2ltcG9ydCAiVHJlZVdhbGtlci5oIgotI2ltcG9ydCAiV2Vi
U2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgotI2ltcG9ydCA8b2JqYy9vYmpjLWNsYXNzLmg+CisKICNp
bXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAKICNpZiBFTkFCTEUoU1ZHKQotI2ltcG9ydCAiRXZlbnRU
YXJnZXRTVkdFbGVtZW50SW5zdGFuY2UuaCIKLSNpbXBvcnQgIlNWR0RvY3VtZW50LmgiCiAjaW1w
b3J0ICJTVkdFbGVtZW50LmgiCiAjaW1wb3J0ICJTVkdFbGVtZW50SW5zdGFuY2UuaCIKICNpbXBv
cnQgIlNWR05hbWVzLmgiCiAjaW1wb3J0ICJET01TVkcuaCIKLSNpbXBvcnQgIkRPTVNWR0VsZW1l
bnRJbnN0YW5jZS5oIgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBPYmpDRXZlbnRM
aXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgT2Jq
Q0V2ZW50TGlzdGVuZXIqIGZpbmQoaWQgPERPTUV2ZW50TGlzdGVuZXI+KTsKLSAgICBzdGF0aWMg
T2JqQ0V2ZW50TGlzdGVuZXIqIGNyZWF0ZShpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pOwotCi1wcml2
YXRlOgotICAgIE9iakNFdmVudExpc3RlbmVyKGlkIDxET01FdmVudExpc3RlbmVyPik7Ci0gICAg
dmlydHVhbCB+T2JqQ0V2ZW50TGlzdGVuZXIoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVF
dmVudChFdmVudCosIGJvb2wgaXNXaW5kb3dFdmVudCk7Ci0KLSAgICBpZCA8RE9NRXZlbnRMaXN0
ZW5lcj4gbV9saXN0ZW5lcjsKLX07Ci0KLXR5cGVkZWYgSGFzaE1hcDxpZCwgT2JqQ0V2ZW50TGlz
dGVuZXIqPiBMaXN0ZW5lck1hcDsKLXN0YXRpYyBMaXN0ZW5lck1hcCogbGlzdGVuZXJNYXA7Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogLy8gRE9NTm9kZQogCkBAIC01MzAsMTAyICs0ODEsNiBAQCBzdGF0aWMgTlNBcnJh
eSAqa2l0KGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMpCiAKIEBlbmQKIAotLy8gRklYTUU6
IHRoaXMgc2hvdWxkIGJlIGF1dG8tZ2VuZXJhdGVkCi1AaW1wbGVtZW50YXRpb24gRE9NTm9kZSAo
RE9NRXZlbnRUYXJnZXQpCi0KLS0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0
eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZToo
Qk9PTCl1c2VDYXB0dXJlCi17Ci0gICAgaWYgKCFbc2VsZiBfbm9kZV0tPmlzRXZlbnRUYXJnZXRO
b2RlKCkpCi0gICAgICAgIFdlYkNvcmU6OnJhaXNlRE9NRXhjZXB0aW9uKERPTV9OT1RfU1VQUE9S
VEVEX0VSUik7Ci0gICAgCi0gICAgV2ViQ29yZTo6RXZlbnRMaXN0ZW5lciAqd3JhcHBlciA9IFdl
YkNvcmU6Ok9iakNFdmVudExpc3RlbmVyOjpjcmVhdGUobGlzdGVuZXIpOwotICAgIFdlYkNvcmU6
OkV2ZW50VGFyZ2V0Tm9kZUNhc3QoW3NlbGYgX25vZGVdKS0+YWRkRXZlbnRMaXN0ZW5lcih0eXBl
LCB3cmFwcGVyLCB1c2VDYXB0dXJlKTsKLSAgICB3cmFwcGVyLT5kZXJlZigpOwotfQotCi0tICh2
b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSA6KGlkIDxET01FdmVudExpc3Rl
bmVyPilsaXN0ZW5lciA6KEJPT0wpdXNlQ2FwdHVyZQotewotICAgIC8vIEZJWE1FOiB0aGlzIG1l
dGhvZCBjYW4gYmUgcmVtb3ZlZCBvbmNlIE1haWwgY2hhbmdlcyB0byB1c2UgdGhlIG5ldyBtZXRo
b2QgPHJkYXI6Ly9wcm9ibGVtLzQ3NDY2NDk+Ci0gICAgW3NlbGYgYWRkRXZlbnRMaXN0ZW5lcjp0
eXBlIGxpc3RlbmVyOmxpc3RlbmVyIHVzZUNhcHR1cmU6dXNlQ2FwdHVyZV07Ci19Ci0KLS0gKHZv
aWQpcmVtb3ZlRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9N
RXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlCi17Ci0g
ICAgaWYgKCFbc2VsZiBfbm9kZV0tPmlzRXZlbnRUYXJnZXROb2RlKCkpCi0gICAgICAgIFdlYkNv
cmU6OnJhaXNlRE9NRXhjZXB0aW9uKERPTV9OT1RfU1VQUE9SVEVEX0VSUik7Ci0KLSAgICBpZiAo
V2ViQ29yZTo6RXZlbnRMaXN0ZW5lciAqd3JhcHBlciA9IFdlYkNvcmU6Ok9iakNFdmVudExpc3Rl
bmVyOjpmaW5kKGxpc3RlbmVyKSkKLSAgICAgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlQ2Fz
dChbc2VsZiBfbm9kZV0pLT5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIHdyYXBwZXIsIHVzZUNh
cHR1cmUpOwotfQotCi0tICh2b2lkKXJlbW92ZUV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlw
ZSA6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciA6KEJPT0wpdXNlQ2FwdHVyZQotewot
ICAgIC8vIEZJWE1FOiB0aGlzIG1ldGhvZCBjYW4gYmUgcmVtb3ZlZCBvbmNlIE1haWwgY2hhbmdl
cyB0byB1c2UgdGhlIG5ldyBtZXRob2QgPHJkYXI6Ly9wcm9ibGVtLzQ3NDY2NDk+Ci0gICAgW3Nl
bGYgcmVtb3ZlRXZlbnRMaXN0ZW5lcjp0eXBlIGxpc3RlbmVyOmxpc3RlbmVyIHVzZUNhcHR1cmU6
dXNlQ2FwdHVyZV07Ci19Ci0KLS0gKEJPT0wpZGlzcGF0Y2hFdmVudDooRE9NRXZlbnQgKilldmVu
dAotewotICAgIGlmICghW3NlbGYgX25vZGVdLT5pc0V2ZW50VGFyZ2V0Tm9kZSgpKQotICAgICAg
ICBXZWJDb3JlOjpyYWlzZURPTUV4Y2VwdGlvbihET01fTk9UX1NVUFBPUlRFRF9FUlIpOwotCi0g
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgQk9PTCByZXN1bHQgPSBXZWJD
b3JlOjpFdmVudFRhcmdldE5vZGVDYXN0KFtzZWxmIF9ub2RlXSktPmRpc3BhdGNoRXZlbnQoW2V2
ZW50IF9ldmVudF0sIGVjKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwotICAg
IHJldHVybiByZXN1bHQ7Ci19Ci0KLUBlbmQKLQotI2lmIEVOQUJMRShTVkcpCi0vLyBGSVhNRTog
dGhpcyBzaG91bGQgYmUgYXV0by1nZW5lcmF0ZWQKLUBpbXBsZW1lbnRhdGlvbiBET01TVkdFbGVt
ZW50SW5zdGFuY2UgKERPTUV2ZW50VGFyZ2V0KQotCi0tICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6
KE5TU3RyaW5nKil0eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIg
dXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlCi17Ci0gICAgaWYgKCFbc2VsZiBfU1ZHRWxlbWVu
dEluc3RhbmNlXS0+aXNFdmVudFRhcmdldFNWR0VsZW1lbnRJbnN0YW5jZSgpKQotICAgICAgICBX
ZWJDb3JlOjpyYWlzZURPTUV4Y2VwdGlvbihET01fTk9UX1NVUFBPUlRFRF9FUlIpOwotCi0gICAg
V2ViQ29yZTo6RXZlbnRMaXN0ZW5lciogd3JhcHBlciA9IFdlYkNvcmU6Ok9iakNFdmVudExpc3Rl
bmVyOjpjcmVhdGUobGlzdGVuZXIpOwotICAgIFdlYkNvcmU6OkV2ZW50VGFyZ2V0U1ZHRWxlbWVu
dEluc3RhbmNlQ2FzdChbc2VsZiBfU1ZHRWxlbWVudEluc3RhbmNlXSktPmFkZEV2ZW50TGlzdGVu
ZXIodHlwZSwgd3JhcHBlciwgdXNlQ2FwdHVyZSk7Ci0gICAgd3JhcHBlci0+ZGVyZWYoKTsKLX0K
LQotLSAodm9pZClhZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyopdHlwZSA6KGlkIDxET01FdmVu
dExpc3RlbmVyPilsaXN0ZW5lciA6KEJPT0wpdXNlQ2FwdHVyZQotewotICAgIC8vIEZJWE1FOiB0
aGlzIG1ldGhvZCBjYW4gYmUgcmVtb3ZlZCBvbmNlIE1haWwgY2hhbmdlcyB0byB1c2UgdGhlIG5l
dyBtZXRob2QgPHJkYXI6Ly9wcm9ibGVtLzQ3NDY2NDk+Ci0gICAgW3NlbGYgYWRkRXZlbnRMaXN0
ZW5lcjp0eXBlIGxpc3RlbmVyOmxpc3RlbmVyIHVzZUNhcHR1cmU6dXNlQ2FwdHVyZV07Ci19Ci0K
LS0gKHZvaWQpcmVtb3ZlRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcqKXR5cGUgbGlzdGVuZXI6KGlk
IDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmUK
LXsKLSAgICBpZiAoIVtzZWxmIF9TVkdFbGVtZW50SW5zdGFuY2VdLT5pc0V2ZW50VGFyZ2V0U1ZH
RWxlbWVudEluc3RhbmNlKCkpCi0gICAgICAgIFdlYkNvcmU6OnJhaXNlRE9NRXhjZXB0aW9uKERP
TV9OT1RfU1VQUE9SVEVEX0VSUik7Ci0KLSAgICBpZiAoV2ViQ29yZTo6RXZlbnRMaXN0ZW5lciog
d3JhcHBlciA9IFdlYkNvcmU6Ok9iakNFdmVudExpc3RlbmVyOjpmaW5kKGxpc3RlbmVyKSkKLSAg
ICAgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXRTVkdFbGVtZW50SW5zdGFuY2VDYXN0KFtzZWxmIF9T
VkdFbGVtZW50SW5zdGFuY2VdKS0+cmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLCB3cmFwcGVyLCB1
c2VDYXB0dXJlKTsKLX0KLQotLSAodm9pZClyZW1vdmVFdmVudExpc3RlbmVyOihOU1N0cmluZyop
dHlwZSA6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciA6KEJPT0wpdXNlQ2FwdHVyZQot
ewotICAgIC8vIEZJWE1FOiB0aGlzIG1ldGhvZCBjYW4gYmUgcmVtb3ZlZCBvbmNlIE1haWwgY2hh
bmdlcyB0byB1c2UgdGhlIG5ldyBtZXRob2QgPHJkYXI6Ly9wcm9ibGVtLzQ3NDY2NDk+Ci0gICAg
W3NlbGYgcmVtb3ZlRXZlbnRMaXN0ZW5lcjp0eXBlIGxpc3RlbmVyOmxpc3RlbmVyIHVzZUNhcHR1
cmU6dXNlQ2FwdHVyZV07Ci19Ci0KLS0gKEJPT0wpZGlzcGF0Y2hFdmVudDooRE9NRXZlbnQgKill
dmVudAotewotICAgIGlmICghW3NlbGYgX1NWR0VsZW1lbnRJbnN0YW5jZV0tPmlzRXZlbnRUYXJn
ZXRTVkdFbGVtZW50SW5zdGFuY2UoKSkKLSAgICAgICAgV2ViQ29yZTo6cmFpc2VET01FeGNlcHRp
b24oRE9NX05PVF9TVVBQT1JURURfRVJSKTsKLQotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwotICAgIEJPT0wgcmVzdWx0ID0gV2ViQ29yZTo6RXZlbnRUYXJnZXRTVkdFbGVtZW50
SW5zdGFuY2VDYXN0KFtzZWxmIF9TVkdFbGVtZW50SW5zdGFuY2VdKS0+ZGlzcGF0Y2hFdmVudChb
ZXZlbnQgX2V2ZW50XSwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Ci0g
ICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotQGVuZAotI2VuZGlmCi0KIC8vLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBET01FbGVtZW50CiAKQEAgLTc1OCwxMiArNjEzLDEyIEBA
IHN0YXRpYyBOU0FycmF5ICpraXQoY29uc3QgVmVjdG9yPEludFJlY3Q+JiByZWN0cykKIHsKICAg
ICBpZiAoIWltcGwpCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgCisKICAgICBpZCBjYWNoZWRJ
bnN0YW5jZTsKICAgICBjYWNoZWRJbnN0YW5jZSA9IFdlYkNvcmU6OmdldERPTVdyYXBwZXIoaW1w
bCk7CiAgICAgaWYgKGNhY2hlZEluc3RhbmNlKQogICAgICAgICByZXR1cm4gW1tjYWNoZWRJbnN0
YW5jZSByZXRhaW5dIGF1dG9yZWxlYXNlXTsKLSAgICAKKwogICAgIHJldHVybiBbW1tzZWxmIGFs
bG9jXSBfaW5pdFdpdGhOb2RlRmlsdGVyOmltcGxdIGF1dG9yZWxlYXNlXTsKIH0KIApAQCAtODY4
LDUwICs3MjMsMyBAQCBzaG9ydCBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShF
eGVjU3RhdGUqLCBOb2RlKiBub2RlKSBjb25zdAogfQogCiBAZW5kCi0KLQotLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIE9iakNFdmVudExpc3RlbmVyCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotT2JqQ0V2ZW50TGlzdGVuZXIqIE9iakNFdmVudExpc3RlbmVyOjpmaW5k
KGlkIDxET01FdmVudExpc3RlbmVyPiBsaXN0ZW5lcikKLXsKLSAgICBpZiAoTGlzdGVuZXJNYXAq
IG1hcCA9IGxpc3RlbmVyTWFwKQotICAgICAgICByZXR1cm4gbWFwLT5nZXQobGlzdGVuZXIpOwot
ICAgIHJldHVybiAwOwotfQotCi1PYmpDRXZlbnRMaXN0ZW5lciogT2JqQ0V2ZW50TGlzdGVuZXI6
OmNyZWF0ZShpZCA8RE9NRXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIpCi17Ci0gICAgT2JqQ0V2ZW50
TGlzdGVuZXIqIHdyYXBwZXIgPSBmaW5kKGxpc3RlbmVyKTsKLSAgICBpZiAod3JhcHBlcikKLSAg
ICAgICAgd3JhcHBlci0+cmVmKCk7Ci0gICAgZWxzZQotICAgICAgICB3cmFwcGVyID0gbmV3IE9i
akNFdmVudExpc3RlbmVyKGxpc3RlbmVyKTsKLSAgICByZXR1cm4gd3JhcHBlcjsKLX0KLQotT2Jq
Q0V2ZW50TGlzdGVuZXI6Ok9iakNFdmVudExpc3RlbmVyKGlkIDxET01FdmVudExpc3RlbmVyPiBs
aXN0ZW5lcikKLSAgICA6IG1fbGlzdGVuZXIoW2xpc3RlbmVyIHJldGFpbl0pCi17Ci0gICAgTGlz
dGVuZXJNYXAqIG1hcCA9IGxpc3RlbmVyTWFwOwotICAgIGlmICghbWFwKSB7Ci0gICAgICAgIG1h
cCA9IG5ldyBMaXN0ZW5lck1hcDsKLSAgICAgICAgbGlzdGVuZXJNYXAgPSBtYXA7Ci0gICAgfQot
ICAgIG1hcC0+c2V0KGxpc3RlbmVyLCB0aGlzKTsKLX0KLQotT2JqQ0V2ZW50TGlzdGVuZXI6On5P
YmpDRXZlbnRMaXN0ZW5lcigpCi17Ci0gICAgbGlzdGVuZXJNYXAtPnJlbW92ZShtX2xpc3RlbmVy
KTsKLSAgICBbbV9saXN0ZW5lciByZWxlYXNlXTsKLX0KLQotdm9pZCBPYmpDRXZlbnRMaXN0ZW5l
cjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sKQotewotICAgIFttX2xpc3RlbmVyIGhh
bmRsZUV2ZW50OltET01FdmVudCBfd3JhcEV2ZW50OmV2ZW50XV07Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudHMu
aCBiL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudHMuaAppbmRleCBhZmJmNzcxLi5lNWQz
ODQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnRzLmgKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50cy5oCkBAIC0zOSwxMyArMzksMyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9ET01PdmVyZmxvd0V2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVVJ
RXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NV2hlZWxFdmVudC5oPgotCi1AaW50ZXJmYWNl
IERPTU5vZGUgKERPTUV2ZW50VGFyZ2V0KSA8RE9NRXZlbnRUYXJnZXQ+Ci1AZW5kCi0KLS8vIFVz
aW5nIEVOQUJMRShTVkcpIHJlc3VsdHMgaW4gYSBjb21waWxhdGlvbiBlcnJvci4KLSNpZmRlZiBF
TkFCTEVfU1ZHCi0jaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0VsZW1lbnRJbnN0YW5jZS5oPgotQGlu
dGVyZmFjZSBET01TVkdFbGVtZW50SW5zdGFuY2UgKERPTUV2ZW50VGFyZ2V0KSA8RE9NRXZlbnRU
YXJnZXQ+Ci1AZW5kCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9P
YmpDRXZlbnRMaXN0ZW5lci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNFdmVudExpc3Rl
bmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjA1NmIwMQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0ZW5lci5oCkBA
IC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDYsIDIwMDggQXBw
bGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBPYmpDRXZlbnRMaXN0ZW5lcl9oCisjZGVmaW5lIE9iakNFdmVudExpc3RlbmVyX2gKKworI2lu
Y2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisK
K0Bwcm90b2NvbCBET01FdmVudExpc3RlbmVyOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAg
ICBjbGFzcyBPYmpDRXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKKyAgICBw
dWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE9iakNFdmVudExpc3RlbmVyPiB3cmFw
KGlkIDxET01FdmVudExpc3RlbmVyPik7CisKKyAgICBwcml2YXRlOgorICAgICAgICBzdGF0aWMg
T2JqQ0V2ZW50TGlzdGVuZXIqIGZpbmQoaWQgPERPTUV2ZW50TGlzdGVuZXI+KTsKKworICAgICAg
ICBPYmpDRXZlbnRMaXN0ZW5lcihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pOworICAgICAgICB2aXJ0
dWFsIH5PYmpDRXZlbnRMaXN0ZW5lcigpOworCisgICAgICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVF
dmVudChFdmVudCosIGJvb2wgaXNXaW5kb3dFdmVudCk7CisKKyAgICAgICAgaWQgPERPTUV2ZW50
TGlzdGVuZXI+IG1fbGlzdGVuZXI7CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0
ZW5lci5tbSBiL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDRXZlbnRMaXN0ZW5lci5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWU4YWUzCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNFdmVudExpc3RlbmVyLm1tCkBAIC0wLDAgKzEs
ODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2IEph
bWVzIEcuIFNwZXRoIChzcGV0aEBlbmQuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVl
bCBXZWluaWcgKHNhbS53ZWluaWdAZ21haWwuY29tKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5o
IgorCisjaW5jbHVkZSAiT2JqQ0V2ZW50TGlzdGVuZXIuaCIKKworI2luY2x1ZGUgIkRPTUV2ZW50
SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJET01FdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZl
bnQuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisKKyNpbmNsdWRlIDxvYmpjL29iamMt
Y2xhc3MuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3R5cGVkZWYgSGFzaE1hcDxpZCwgT2JqQ0V2ZW50TGlzdGVuZXIqPiBMaXN0ZW5lck1hcDsK
K3N0YXRpYyBMaXN0ZW5lck1hcCogbGlzdGVuZXJNYXA7CisKK09iakNFdmVudExpc3RlbmVyKiBP
YmpDRXZlbnRMaXN0ZW5lcjo6ZmluZChpZCA8RE9NRXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIpCit7
CisgICAgaWYgKExpc3RlbmVyTWFwKiBtYXAgPSBsaXN0ZW5lck1hcCkKKyAgICAgICAgcmV0dXJu
IG1hcC0+Z2V0KGxpc3RlbmVyKTsKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxPYmpD
RXZlbnRMaXN0ZW5lcj4gT2JqQ0V2ZW50TGlzdGVuZXI6OndyYXAoaWQgPERPTUV2ZW50TGlzdGVu
ZXI+IGxpc3RlbmVyKQoreworICAgIFJlZlB0cjxPYmpDRXZlbnRMaXN0ZW5lcj4gd3JhcHBlciA9
IGZpbmQobGlzdGVuZXIpOworICAgIGlmICh3cmFwcGVyKQorICAgICAgICByZXR1cm4gd3JhcHBl
cjsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE9iakNFdmVudExpc3RlbmVyKGxpc3RlbmVyKSk7
Cit9CisKK09iakNFdmVudExpc3RlbmVyOjpPYmpDRXZlbnRMaXN0ZW5lcihpZCA8RE9NRXZlbnRM
aXN0ZW5lcj4gbGlzdGVuZXIpCisgICAgOiBtX2xpc3RlbmVyKFtsaXN0ZW5lciByZXRhaW5dKQor
eworICAgIExpc3RlbmVyTWFwKiBtYXAgPSBsaXN0ZW5lck1hcDsKKyAgICBpZiAoIW1hcCkgewor
ICAgICAgICBtYXAgPSBuZXcgTGlzdGVuZXJNYXA7CisgICAgICAgIGxpc3RlbmVyTWFwID0gbWFw
OworICAgIH0KKyAgICBtYXAtPnNldChsaXN0ZW5lciwgdGhpcyk7Cit9CisKK09iakNFdmVudExp
c3RlbmVyOjp+T2JqQ0V2ZW50TGlzdGVuZXIoKQoreworICAgIGxpc3RlbmVyTWFwLT5yZW1vdmUo
bV9saXN0ZW5lcik7CisgICAgW21fbGlzdGVuZXIgcmVsZWFzZV07Cit9CisKK3ZvaWQgT2JqQ0V2
ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCwgYm9vbCkKK3sKKyAgICBbbV9s
aXN0ZW5lciBoYW5kbGVFdmVudDpbRE9NRXZlbnQgX3dyYXBFdmVudDpldmVudF1dOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvck9iakMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvck9iakMucG0KaW5kZXggMWQ4NGFmZS4uZDZmZDlmNSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQpAQCAtNTA0LDcgKzUwNCw4IEBAIHN1
YiBHZXRPYmpDVHlwZUdldHRlcgogCiAgICAgbXkgJHR5cGVHZXR0ZXJNZXRob2ROYW1lID0gR2V0
T2JqQ1R5cGVHZXR0ZXJOYW1lKCR0eXBlKTsKIAotICAgIHJldHVybiAibmF0aXZlUmVzb2x2ZXIi
IGlmICR0eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiOworICAgIHJldHVybiAiV1RGOjpnZXRQdHIo
bmF0aXZlRXZlbnRMaXN0ZW5lcikiIGlmICR0eXBlIGVxICJFdmVudExpc3RlbmVyIjsKKyAgICBy
ZXR1cm4gIldURjo6Z2V0UHRyKG5hdGl2ZVJlc29sdmVyKSIgaWYgJHR5cGUgZXEgIlhQYXRoTlNS
ZXNvbHZlciI7CiAgICAgcmV0dXJuICJbJGFyZ05hbWUgJHR5cGVHZXR0ZXJNZXRob2ROYW1lXSI7
CiB9CiAKQEAgLTY1Myw5ICs2NTQsOSBAQCBzdWIgQWRkSW5jbHVkZXNGb3JUeXBlCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoJHR5cGUgZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsK
LSAgICAgICAgJGltcGxJbmNsdWRlc3siRE9NQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgifSA9IDE7
Ci0gICAgfQorICAgICRpbXBsSW5jbHVkZXN7Ik9iakNFdmVudExpc3RlbmVyLmgifSA9IDEgaWYg
JHR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiOworICAgICRpbXBsSW5jbHVkZXN7IkV2ZW50VGFyZ2V0
U1ZHRWxlbWVudEluc3RhbmNlLmgifSA9IDEgaWYgJHR5cGUgZXEgIlNWR0VsZW1lbnRJbnN0YW5j
ZSI7CisgICAgJGltcGxJbmNsdWRlc3siRE9NQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgifSA9IDEg
aWYgJHR5cGUgZXEgIlhQYXRoTlNSZXNvbHZlciI7CiAKICAgICAjIEZJWE1FOiB3b24ndCBjb21w
aWxlIHdpdGhvdXQgdGhlc2UKICAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbi5oIn0gPSAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKQEAgLTY3
MiwxMSArNjczLDYgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0
OwogICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwogCi0gICAgIyBXZSBvbmx5IHN1cHBvcnQgbXVs
dGlwbGUgcGFyZW50cyB3aXRoIFNWRyAoZm9yIG5vdykuCi0gICAgaWYgKEB7JGRhdGFOb2RlLT5w
YXJlbnRzfSA+IDEpIHsKLSAgICAgICAgZGllICJBIGNsYXNzIGNhbid0IGhhdmUgbW9yZSB0aGFu
IG9uZSBwYXJlbnQiIHVubGVzcyAkbW9kdWxlIGVxICJzdmciOwotICAgIH0KLQogICAgIG15ICRp
bnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOwogICAgIG15ICRjbGFzc05hbWUgPSBHZXRD
bGFzc05hbWUoJGludGVyZmFjZU5hbWUpOwogCkBAIC05OTUsOSArOTkxLDcgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CiAgICAgbXkgJGRhdGFO
b2RlID0gc2hpZnQ7CiAKLSAgICAjIFdlIG9ubHkgc3VwcG9ydCBtdWx0aXBsZSBwYXJlbnRzIHdp
dGggU1ZHIChmb3Igbm93KS4KICAgICBpZiAoQHskZGF0YU5vZGUtPnBhcmVudHN9ID4gMSkgewot
ICAgICAgICBkaWUgIkEgY2xhc3MgY2FuJ3QgaGF2ZSBtb3JlIHRoYW4gb25lIHBhcmVudCIgdW5s
ZXNzICRtb2R1bGUgZXEgInN2ZyI7CiAgICAgICAgICRjb2RlR2VuZXJhdG9yLT5BZGRNZXRob2Rz
Q29uc3RhbnRzQW5kQXR0cmlidXRlc0Zyb21QYXJlbnRDbGFzc2VzKCRkYXRhTm9kZSk7CiAgICAg
fQogCkBAIC0xMjkyLDggKzEyODYsNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgbXkgQGRlcHJlY2F0ZWRGdW5jdGlvbnMgPSAoKTsKLQogICAg
ICMgLSBGdW5jdGlvbnMKICAgICBpZiAoJG51bUZ1bmN0aW9ucyA+IDApIHsKICAgICAgICAgZm9y
ZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7CkBAIC0xMzI0LDYg
KzEzMTYsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICAgICAg
cHVzaChAcGFyYW1ldGVyTmFtZXMsICRpbXBsR2V0dGVyKTsKICAgICAgICAgICAgICAgICAkbmVl
ZHNDdXN0b217IlhQYXRoTlNSZXNvbHZlciJ9ID0gJHBhcmFtTmFtZSBpZiAkaWRsVHlwZSBlcSAi
WFBhdGhOU1Jlc29sdmVyIjsKKyAgICAgICAgICAgICAgICAkbmVlZHNDdXN0b217IkV2ZW50TGlz
dGVuZXIifSA9ICRwYXJhbU5hbWUgaWYgJGlkbFR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiOwogICAg
ICAgICAgICAgICAgICRuZWVkc0N1c3RvbXsiRXZlbnRUYXJnZXQifSA9ICRwYXJhbU5hbWUgaWYg
JGlkbFR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKICAgICAgICAgICAgICAgICAkbmVlZHNDdXN0b217
Ik5vZGVUb1JldHVybiJ9ID0gJHBhcmFtTmFtZSBpZiAkcGFyYW0tPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJSZXR1cm4ifTsKIApAQCAtMTM1NSw3ICsxMzQ4LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgICAg
ICAgICBuYXRpdmVSZXNvbHZlciA9IFsoRE9NTmF0aXZlWFBhdGhOU1Jlc29sdmVyICopJHBhcmFt
TmFtZSBfeHBhdGhOU1Jlc29sdmVyXTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0
aW9uQ29udGVudCwgIiAgICAgICAgZWxzZSB7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBm
dW5jdGlvbkNvbnRlbnQsICIgICAgICAgICAgICBjdXN0b21SZXNvbHZlciA9IFdlYkNvcmU6OkRP
TUN1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKCRwYXJhbU5hbWUpO1xuIik7Ci0gICAgICAg
ICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICAgICAgICAgbmF0aXZlUmVzb2x2
ZXIgPSBjdXN0b21SZXNvbHZlci5nZXQoKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGZ1
bmN0aW9uQ29udGVudCwgIiAgICAgICAgICAgIG5hdGl2ZVJlc29sdmVyID0gV1RGOjpnZXRQdHIo
Y3VzdG9tUmVzb2x2ZXIpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250
ZW50LCAiICAgICAgICB9XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRl
bnQsICIgICAgfVxuIik7CiAgICAgICAgICAgICB9CkBAIC0xMzc4LDYgKzEzNzEsMjQgQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAkY2FsbGVyID0gImR2IjsK
ICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiRXZlbnRUYXJnZXROb2RlQ2FzdCJ9KSB7CisgICAgICAgICAg
ICAgICAgaWYgKCRkYXRhTm9kZS0+bmFtZSA9fiAvXlNWRy8pIHsKKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgIGlmICghJGNhbGxlci0+aXNFdmVudFRhcmdl
dFNWR0VsZW1lbnRJbnN0YW5jZSgpKVxuIik7CisgICAgICAgICAgICAgICAgICAgICRjYWxsZXIg
PSAiV2ViQ29yZTo6RXZlbnRUYXJnZXRTVkdFbGVtZW50SW5zdGFuY2VDYXN0KCRjYWxsZXIpIjsK
KyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBmdW5j
dGlvbkNvbnRlbnQsICIgICAgaWYgKCEkY2FsbGVyLT5pc0V2ZW50VGFyZ2V0Tm9kZSgpKVxuIik7
CisgICAgICAgICAgICAgICAgICAgICRjYWxsZXIgPSAiV2ViQ29yZTo6RXZlbnRUYXJnZXROb2Rl
Q2FzdCgkY2FsbGVyKSI7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVz
aChAZnVuY3Rpb25Db250ZW50LCAiICAgICAgICBXZWJDb3JlOjpyYWlzZURPTUV4Y2VwdGlvbihE
T01fTk9UX1NVUFBPUlRFRF9FUlIpO1xuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICMgc3BlY2lhbCBjYXNlIHRoZSBFdmVudExpc3RlbmVyCisgICAgICAgICAgICBpZiAoZGVmaW5l
ZCAkbmVlZHNDdXN0b217IkV2ZW50TGlzdGVuZXIifSkgeworICAgICAgICAgICAgICAgIG15ICRw
YXJhbU5hbWUgPSAkbmVlZHNDdXN0b217IkV2ZW50TGlzdGVuZXIifTsKKyAgICAgICAgICAgICAg
ICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgUmVmUHRyPFdlYkNvcmU6OkV2ZW50TGlzdGVu
ZXI+IG5hdGl2ZUV2ZW50TGlzdGVuZXIgPSBXZWJDb3JlOjpPYmpDRXZlbnRMaXN0ZW5lcjo6d3Jh
cCgkcGFyYW1OYW1lKTtcbiIpOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAjIEZJWE1F
ISBXZSBuZWVkIFtDdXN0b21dIHN1cHBvcnQgZm9yIE9iakMsIHRvIG1vdmUgdGhlc2UgaGFja3Mg
aW50byBET01TVkdMZW5ndGgvTWF0cml4Q3VzdG9tLm1tCiAgICAgICAgICAgICBteSAkc3ZnTWF0
cml4Um90YXRlRnJvbVZlY3RvciA9ICgkcG9kVHlwZSBhbmQgJHBvZFR5cGUgZXEgIkFmZmluZVRy
YW5zZm9ybSIgYW5kICRmdW5jdGlvbk5hbWUgZXEgInJvdGF0ZUZyb21WZWN0b3IiKTsKICAgICAg
ICAgICAgIG15ICRzdmdNYXRyaXhJbnZlcnNlID0gKCRwb2RUeXBlIGFuZCAkcG9kVHlwZSBlcSAi
QWZmaW5lVHJhbnNmb3JtIiBhbmQgJGZ1bmN0aW9uTmFtZSBlcSAiaW52ZXJzZSIpOwpAQCAtMTQ3
OCwxMCArMTQ4OSwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAg
ICAgIG15ICRkZXByZWNhdGVkRnVuY3Rpb25TaWcgPSAkZnVuY3Rpb25TaWc7CiAgICAgICAgICAg
ICAgICAgJGRlcHJlY2F0ZWRGdW5jdGlvblNpZyA9fiBzL1xzXHcrOi8gOi9nOyAjIHJlbW92ZSBw
YXJhbWV0ZXIgbmFtZXMKIAotICAgICAgICAgICAgICAgIHB1c2goQGRlcHJlY2F0ZWRGdW5jdGlv
bnMsICIkZGVwcmVjYXRlZEZ1bmN0aW9uU2lnXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBk
ZXByZWNhdGVkRnVuY3Rpb25zLCAie1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAZGVwcmVj
YXRlZEZ1bmN0aW9ucywgQGZ1bmN0aW9uQ29udGVudCk7Ci0gICAgICAgICAgICAgICAgcHVzaChA
ZGVwcmVjYXRlZEZ1bmN0aW9ucywgIn1cblxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIkZGVwcmVjYXRlZEZ1bmN0aW9uU2lnXG4iKTsKKyAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCBAZnVuY3Rpb25Db250ZW50KTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn1cblxuIik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICMgQ2xlYXIgdGhlIGhh
c2gKQEAgLTE0OTIsMTQgKzE1MDMsNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICMgRU5EIGltcGxlbWVudGF0aW9uCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcQGVuZFxuIik7
CiAKLSAgICBpZiAoQGRlcHJlY2F0ZWRGdW5jdGlvbnMgPiAwKSB7Ci0gICAgICAgICMgLSBEZXBy
ZWNhdGVkIGNhdGVnb3J5IEBpbXBsZW1lbnRhdGlvbgotICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIlxuXEBpbXBsZW1lbnRhdGlvbiAkY2xhc3NOYW1lICgiIC4gJGNsYXNzTmFtZSAuICJEZXBy
ZWNhdGVkKVxuXG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEBkZXByZWNhdGVkRnVu
Y3Rpb25zKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcQGVuZFxuIik7Ci0gICAgfQot
Ci0KICAgICAjIEdlbmVyYXRlIGludGVybmFsIGludGVyZmFjZXMKICAgICB1bmxlc3MgKCRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57T2JqQ0N1c3RvbUludGVybmFsSW1wbH0pIHsKICAg
ICAgICAgIyAtIEJFR0lOIFdlYkNvcmVJbnRlcm5hbCBjYXRlZ29yeSBAaW1wbGVtZW50YXRpb24K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL05vZGUuaWRsIGIvV2ViQ29yZS9kb20vTm9kZS5pZGwK
aW5kZXggYTY1Mjg1Yi4uMTllZTllNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vTm9kZS5pZGwK
KysrIGIvV2ViQ29yZS9kb20vTm9kZS5pZGwKQEAgLTI5LDcgKzI5LDExIEBAIG1vZHVsZSBjb3Jl
IHsKICAgICAgICAgT2JqQ0N1c3RvbUludGVybmFsSW1wbCwKICAgICAgICAgSW50ZXJmYWNlVVVJ
RD04NEJBMEQ3QS03RTNFLTRhN2ItQjZGQi03NjUzRThGQjU0RUQsCiAgICAgICAgIEltcGxlbWVu
dGF0aW9uVVVJRD04MUI0N0ZEQi05NEIwLTQwZmQtOEUwQy1GQjJBNkU1M0NDMDQKLSAgICBdIE5v
ZGUgeworICAgIF0gTm9kZQorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpCisgICAg
ICAgIDogT2JqZWN0LCBFdmVudFRhcmdldAorI2VuZGlmIC8qIGRlZmluZWQoTEFOR1VBR0VfT0JK
RUNUSVZFX0MpICovCisgICAgIHsKICAgICAgICAgLy8gTm9kZVR5cGUKICAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgICAgICBFTEVNRU5UX05PREUgICAgICAgICAgICAgICAgICAgPSAxOwog
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIEFUVFJJQlVURV9OT0RFICAgICAgICAg
ICAgICAgICA9IDI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2Uu
aWRsIGIvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudEluc3RhbmNlLmlkbAppbmRleCA2ZDg5ZjFlLi4w
Yjk4M2YxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2UuaWRsCisr
KyBiL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZS5pZGwKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVy
bWFubkBrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsNyArMjUs
MTEgQEAKICAqLwogCiBtb2R1bGUgc3ZnIHsKLSAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNW
RywgT2JqQ0N1c3RvbUludGVybmFsSW1wbF0gU1ZHRWxlbWVudEluc3RhbmNlIHsKKyAgICBpbnRl
cmZhY2UgW0NvbmRpdGlvbmFsPVNWRywgT2JqQ0N1c3RvbUludGVybmFsSW1wbF0gU1ZHRWxlbWVu
dEluc3RhbmNlCisjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykKKyAgICAgICAgOiBP
YmplY3QsIEV2ZW50VGFyZ2V0CisjZW5kaWYgLyogZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVf
QykgKi8KKwl7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdFbGVtZW50IGNvcnJlc3Bv
bmRpbmdFbGVtZW50OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHVXNlRWxlbWVudCBj
b3JyZXNwb25kaW5nVXNlRWxlbWVudDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0Vs
ZW1lbnRJbnN0YW5jZSBwYXJlbnROb2RlOwotLSAKMS42LjAuMgoK
</data>
<flag name="review"
          id="10965"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>