<?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>77863</bug_id>
          
          <creation_ts>2012-02-06 04:00:57 -0800</creation_ts>
          <short_desc>[CSSRegions][CSSOM] Implement Element.regionOverflow</short_desc>
          <delta_ts>2012-02-13 18:41:25 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>66643</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Raul Hudea">rhudea</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ojan</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>549886</commentid>
    <comment_count>0</comment_count>
    <who name="Raul Hudea">rhudea</who>
    <bug_when>2012-02-06 04:00:57 -0800</bug_when>
    <thetext>Implement the Element.regionOverflow part of the Element.idl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549888</commentid>
    <comment_count>1</comment_count>
      <attachid>125612</attachid>
    <who name="Raul Hudea">rhudea</who>
    <bug_when>2012-02-06 04:07:45 -0800</bug_when>
    <thetext>Created attachment 125612
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549909</commentid>
    <comment_count>2</comment_count>
      <attachid>125612</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 05:10:52 -0800</bug_when>
    <thetext>Comment on attachment 125612
Patch

Attachment 125612 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11433277

New failing tests:
fast/regions/element-region-overflow-state-vertical-rl.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555225</commentid>
    <comment_count>3</comment_count>
      <attachid>126765</attachid>
    <who name="Raul Hudea">rhudea</who>
    <bug_when>2012-02-13 06:24:30 -0800</bug_when>
    <thetext>Created attachment 126765
Removed unrelated code and updated the tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555494</commentid>
    <comment_count>4</comment_count>
      <attachid>126765</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-02-13 13:11:22 -0800</bug_when>
    <thetext>Comment on attachment 126765
Removed unrelated code and updated the tests

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555800</commentid>
    <comment_count>5</comment_count>
      <attachid>126765</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 17:34:47 -0800</bug_when>
    <thetext>Comment on attachment 126765
Removed unrelated code and updated the tests

Clearing flags on attachment: 126765

Committed r107650: &lt;http://trac.webkit.org/changeset/107650&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555801</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 17:34:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555839</commentid>
    <comment_count>7</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-13 18:25:22 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555840</commentid>
    <comment_count>8</comment_count>
      <attachid>126882</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-13 18:25:26 -0800</bug_when>
    <thetext>Created attachment 126882
Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555846</commentid>
    <comment_count>9</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-13 18:41:03 -0800</bug_when>
    <thetext>Sorry, I mistook uploading unrelated patch...</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125612</attachid>
            <date>2012-02-06 04:07:45 -0800</date>
            <delta_ts>2012-02-13 06:24:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>23348</size>
            <attacher name="Raul Hudea">rhudea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZjlkOGI3Li4zYTg5MjAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDIt
MDYgIFJhdWwgSHVkZWEgIDxyaHVkZWFAYWRvYmUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBF
bGVtZW50LndlYmtpdFJlZ2lvbk92ZXJmbG93CisKKyAgICAgICAgW0NTU1JlZ2lvbnNdW0NTU09N
XSBJbXBsZW1lbnQgRWxlbWVudC5yZWdpb25PdmVyZmxvdworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc4NjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVnaW9ucy9lbGVtZW50LXJlZ2lvbi1v
dmVyZmxvdy1zdGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9u
cy9lbGVtZW50LXJlZ2lvbi1vdmVyZmxvdy1zdGF0ZS12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9lbGVtZW50LXJlZ2lvbi1vdmVyZmxvdy1z
dGF0ZS12ZXJ0aWNhbC1ybC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvZWxl
bWVudC1yZWdpb24tb3ZlcmZsb3ctc3RhdGUuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMDYgIEhh
eWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCA8c2hhZG93PiBl
bGVtZW50LCB3aGljaCBpcyBndWFyZGVkIGJ5IFNIQURPV19ET00gZmxhZy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9lbGVtZW50LXJlZ2lvbi1vdmVyZmxvdy1zdGF0ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZWxlbWVudC1yZWdpb24tb3Zl
cmZsb3ctc3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjMwMWM1MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
ZWxlbWVudC1yZWdpb24tb3ZlcmZsb3ctc3RhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUg
QEAKK1Rlc3RzIEVsZW1lbnQud2Via2l0UmVnaW9uT3ZlcmZsb3cgYXR0cmlidXRlCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworVGhpcyBpcyBzb21lIGNvbnRlbnQgVGhpcyBpcyBzb21l
IFRoaXMgaXMgc29tZQorVGhpcyBpcyBzb21lIGNvbnRlbnQgVGhpcyBpcyBzb21lIGNvbnRlbnQg
VGhpcyBpcyBzb21lIGNvbnRlbnQgVGhpcyBpcyBzb21lIGNvbnRlbnQgVGhpcyBpcyBzb21lIGNv
bnRlbnQgVGhpcyBpcyBUaGlzIGlzIHNvbWUgY29udGVudCBUaGlzIGlzIHNvbWUgY29udGVudCBU
aGlzIGlzIHNvbWUgY29udGVudCBUaGlzIGlzIHNvbWUgY29udGVudCBUaGlzIGlzIHNvbWUgY29u
dGVudCBUaGlzIGlzCisgIAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCitQQVNTIHJlZ2lvbk92ZXJmbG93KCdhcnRpY2xlJykgaXMgInVuZGVmaW5lZCIK
K1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8xJykgaXMgInVuZGVmaW5lZCIKK1BBU1MgcmVn
aW9uT3ZlcmZsb3coJ3JlZ2lvbl8yJykgaXMgInVuZGVmaW5lZCIKK1BBU1MgcmVnaW9uT3ZlcmZs
b3coJ3JlZ2lvbl8zJykgaXMgInVuZGVmaW5lZCIKK0FmdGVyIGZpcnN0IGxheW91dAorUEFTUyBy
ZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSBpcyAiZW1wdHkiCitQQVNTIHJlZ2lvbk92ZXJmbG93
KCdyZWdpb25fMicpIGlzICJlbXB0eSIKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykg
aXMgImVtcHR5IgorRmxvdyBjb250ZW50CitQQVNTIHJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMScp
IGlzICJvdmVyZmxvdyIKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8yJykgaXMgImZpdCIK
K1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykgaXMgImVtcHR5IgorQWRkIHZpc3VhbCBv
dmVyZmxvdworUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSBpcyAib3ZlcmZsb3ciCitG
QUlMIHJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMicpIHNob3VsZCBiZSBvdmVyZmxvdy4gV2FzIGZp
dC4KK0ZBSUwgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykgc2hvdWxkIGJlIGZpdC4gV2FzIGVt
cHR5LgorQWRkIG1vcmUgY29udGVudAorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSBp
cyAib3ZlcmZsb3ciCitQQVNTIHJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMicpIGlzICJvdmVyZmxv
dyIKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykgaXMgIm92ZXJmbG93IgorRW1wdHkg
Y29udGVudAorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSBpcyAiZW1wdHkiCitQQVNT
IHJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMicpIGlzICJlbXB0eSIKK1BBU1MgcmVnaW9uT3ZlcmZs
b3coJ3JlZ2lvbl8zJykgaXMgImVtcHR5IgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvZWxlbWVudC1yZWdpb24tb3ZlcmZsb3ctc3RhdGUtdmVydGljYWwtcmwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2VsZW1lbnQtcmVnaW9uLW92ZXJmbG93
LXN0YXRlLXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kZWQ0YzJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2VsZW1lbnQtcmVnaW9uLW92ZXJmbG93LXN0YXRlLXZlcnRpY2FsLXJsLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDM0IEBACitUZXN0cyBFbGVtZW50LndlYmtpdFJlZ2lvbk92ZXJmbG93
IGF0dHJpYnV0ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1RoaXMgaXMgc29tZSBj
b250ZW50IFRoaXMgaXMgc29tZSBUaGlzCitUaGlzIGlzIHNvbWUgY29udGVudCBUaGlzIGlzIHNv
bWUgY29udGVudCBUaGlzIGlzIHNvbWUgY29udGVudCBUaGlzIGlzIHNvbWUgY29udGVudCBUaGlz
IFRoaXMgaXMgc29tZSBjb250ZW50IFRoaXMgaXMgc29tZSBjb250ZW50IFRoaXMgaXMgc29tZSBj
b250ZW50IFRoaXMgaXMgc29tZSBjb250ZW50IFRoaXMKKyAgCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ2FydGlj
bGUnKSBpcyAidW5kZWZpbmVkIgorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSBpcyAi
dW5kZWZpbmVkIgorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzInKSBpcyAidW5kZWZpbmVk
IgorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzMnKSBpcyAidW5kZWZpbmVkIgorUEFTUyBy
ZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSBpcyAiZW1wdHkiCitQQVNTIHJlZ2lvbk92ZXJmbG93
KCdyZWdpb25fMicpIGlzICJlbXB0eSIKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykg
aXMgImVtcHR5IgorRmxvdyBjb250ZW50CitQQVNTIHJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMScp
IGlzICJvdmVyZmxvdyIKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8yJykgaXMgImZpdCIK
K1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykgaXMgImVtcHR5IgorQWRkIHZpc3VhbCBv
dmVyZmxvdworUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSBpcyAib3ZlcmZsb3ciCitG
QUlMIHJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMicpIHNob3VsZCBiZSBvdmVyZmxvdy4gV2FzIGZp
dC4KK0ZBSUwgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykgc2hvdWxkIGJlIGZpdC4gV2FzIGVt
cHR5LgorQWRkIG1vcmUgY29udGVudAorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSBp
cyAib3ZlcmZsb3ciCitQQVNTIHJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMicpIGlzICJvdmVyZmxv
dyIKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykgaXMgIm92ZXJmbG93IgorRW1wdHkg
Y29udGVudAorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSBpcyAiZW1wdHkiCitQQVNT
IHJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMicpIGlzICJlbXB0eSIKK1BBU1MgcmVnaW9uT3ZlcmZs
b3coJ3JlZ2lvbl8zJykgaXMgImVtcHR5IgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvZWxlbWVudC1yZWdpb24tb3ZlcmZsb3ctc3RhdGUtdmVydGljYWwtcmwuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9lbGVtZW50LXJlZ2lvbi1vdmVyZmxvdy1zdGF0ZS12
ZXJ0aWNhbC1ybC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3ZmFh
YjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZWxlbWVudC1y
ZWdpb24tb3ZlcmZsb3ctc3RhdGUtdmVydGljYWwtcmwuaHRtbApAQCAtMCwwICsxLDEyOSBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitodG1sIHstd2Via2l0LXdyaXRpbmctbW9k
ZTogdmVydGljYWwtcmw7fQorYm9keSB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IH0KKworI2Fy
dGljbGUgeworICAgIC13ZWJraXQtZmxvdy1pbnRvOiBhcnRpY2xlOworfQorCisjcmVnaW9uXzEs
ICNyZWdpb25fMiwgI3JlZ2lvbl8zIHsKKyAgICAtd2Via2l0LWZsb3ctZnJvbTogbm9fYXJ0aWNs
ZTsKKyAgICBvdmVyZmxvdzp2aXNpYmxlOworICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOworICAg
IHZlcnRpY2FsLWFsaWduOnRvcDsKKyAgICBtYXJnaW46MnB4OworfQorCisuYmxvY2sgeworICAg
ZGlzcGxheTpibG9jazsKK30KKworI3JlZ2lvbl8xIHsgaGVpZ2h0OjExMHB4OyB3aWR0aDoyMDBw
eDsgYm9yZGVyOjFweCBzb2xpZCAjYTBhMGEwOyB9CisjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7
IHdpZHRoOjIwMHB4OyBib3JkZXI6MXB4IHNvbGlkIGJsYWNrIH0KKyNyZWdpb25fMyB7IGhlaWdo
dDoxMTBweDsgd2lkdGg6MjAwcHg7IGJvcmRlcjoxcHggc29saWQgI2EwYTBhMDsgfQorCis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiIgY2xhc3M9ImJsb2Nr
Ij48L2Rpdj4KKzxkaXYgaWQ9ImFydGljbGUiPgorPGRpdiBzdHlsZT0iZm9udC1zaXplOjE4cHg7
IGxpbmUtaGVpZ2h0OjI7IGNvbG9yOiNhMGEwYTA7IHRleHQtYWxpZ246anVzdGlmeTsgYm9yZGVy
OiAxcHggc29saWQgZ3JlZW4iPgorPHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2EwYTBh
MCI+CitUaGlzIGlzIHNvbWUgY29udGVudCBUaGlzIGlzIHNvbWUKK1RoaXMKKzwvZGl2PgorPGRp
diBpZD0iY29udGVudCIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4OyBsaW5lLWhlaWdodDoyOyBjb2xv
cjojMDBhMGUwOyB0ZXh0LWFsaWduOmp1c3RpZnk7IGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuIj4K
KzxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMwMGEwZTAiPgorVGhpcyBpcyBzb21lIGNv
bnRlbnQgVGhpcyBpcyBzb21lIGNvbnRlbnQKK1RoaXMgaXMgc29tZSBjb250ZW50IFRoaXMgaXMg
c29tZSBjb250ZW50CitUaGlzCis8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZWdpb25fMSI+
PC9kaXY+Cis8ZGl2IGlkPSJyZWdpb25fMiI+PC9kaXY+Cis8ZGl2IGlkPSJyZWdpb25fMyI+PC9k
aXY+CisKKzxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9jayI+PC9kaXY+CisKKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIEVsZW1lbnQud2Via2l0UmVnaW9uT3ZlcmZsb3cgYXR0
cmlidXRlIikKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB9CisgICAgZnVuY3Rpb24g
cmVnaW9uT3ZlcmZsb3coaWQpIHsKKyAgICAgICAgdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChpZCk7CisgICAgICAgIHJldHVybiBlLndlYmtpdFJlZ2lvbk92ZXJmbG93OworICAgIH0K
KyAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgeworICAgICAgICB2YXIgciA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIpOworICAgICAgICByLnN0eWxlLndlYmtp
dEZsb3dGcm9tID0gZmxvd05hbWU7CisgICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVnaW9uXzIiKTsKKyAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1l
OworICAgICAgICByID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8zIik7CisgICAg
ICAgIHIuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsKKyAgICB9CisgICAgZnVuY3Rp
b24gYWRkVmlzdWFsT3ZlcmZsb3coKSB7CisgICAgICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnRlbnQiKTsKKyAgICAgICAgYy5zdHlsZS53ZWJraXRCb3hTaGFkb3c9Ii0z
MHB4IDBweCBibHVlIjsKKyAgICB9CisgICAgZnVuY3Rpb24gYWRkTW9yZUNvbnRlbnQoKSB7Cisg
ICAgICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKKyAgICAg
ICAgYy5pbm5lckhUTUwgKz0gYy5pbm5lckhUTUw7CisgICAgfQorICAgIGZ1bmN0aW9uIGVtcHR5
Q29udGVudCgpIHsKKworICAgIH0KKyAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdhcnRpY2xlJykiLCAidW5kZWZpbmVk
Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lv
bl8xJykiLCAidW5kZWZpbmVkIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVn
aW9uT3ZlcmZsb3coJ3JlZ2lvbl8yJykiLCAidW5kZWZpbmVkIik7CisgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykiLCAidW5kZWZpbmVkIik7
CisKKyAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7IC8vIGZvcmNlIGxheW91dAorCisg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8xJyki
LCAiZW1wdHkiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxv
dygncmVnaW9uXzInKSIsICJlbXB0eSIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMycpIiwgImVtcHR5Iik7CisKKyAgICAgICAgZGVidWco
IkZsb3cgY29udGVudCIpOworICAgICAgICBmbG93Q29udGVudCgiYXJ0aWNsZSIpOworICAgICAg
ICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsgLy8gZm9yY2UgbGF5b3V0CisKKyAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSIsICJvdmVyZmxv
dyIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdp
b25fMicpIiwgImZpdCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92
ZXJmbG93KCdyZWdpb25fMycpIiwgImVtcHR5Iik7CisKKyAgICAgICAgZGVidWcoIkFkZCB2aXN1
YWwgb3ZlcmZsb3ciKTsKKyAgICAgICAgYWRkVmlzdWFsT3ZlcmZsb3coKTsKKyAgICAgICAgZG9j
dW1lbnQuYm9keS5vZmZzZXRUb3A7IC8vIGZvcmNlIGxheW91dAorCisgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8xJykiLCAib3ZlcmZsb3ciKTsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzIn
KSIsICJvdmVyZmxvdyIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92
ZXJmbG93KCdyZWdpb25fMycpIiwgImZpdCIpOworCisgICAgICAgIGRlYnVnKCJBZGQgbW9yZSBj
b250ZW50Iik7CisgICAgICAgIGFkZE1vcmVDb250ZW50KCk7CisgICAgICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOyAvLyBmb3JjZSBsYXlvdXQKKworICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMScpIiwgIm92ZXJmbG93Iik7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8yJykiLCAib3Zl
cmZsb3ciKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygn
cmVnaW9uXzMnKSIsICJvdmVyZmxvdyIpOworCisgICAgICAgIGRlYnVnKCJFbXB0eSBjb250ZW50
Iik7CisgICAgICAgIGZsb3dDb250ZW50KCJub19hcnRpY2xlIik7CisgICAgICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOyAvLyBmb3JjZSBsYXlvdXQKKworICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMScpIiwgImVtcHR5Iik7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8yJykiLCAiZW1w
dHkiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVn
aW9uXzMnKSIsICJlbXB0eSIpOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCJsb2FkIiwgdGVzdCwgZmFsc2UpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvZWxlbWVudC1yZWdpb24tb3ZlcmZsb3ctc3RhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9lbGVtZW50LXJlZ2lvbi1vdmVyZmxvdy1zdGF0ZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlNDUyZmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZWxlbWVudC1yZWdpb24tb3ZlcmZsb3ctc3RhdGUu
aHRtbApAQCAtMCwwICsxLDEyNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Citi
b2R5IHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgfQorCisjYXJ0aWNsZSB7CisgICAgLXdlYmtp
dC1mbG93LWludG86IGFydGljbGU7Cit9CisKKyNyZWdpb25fMSwgI3JlZ2lvbl8yLCAjcmVnaW9u
XzMgeworICAgIC13ZWJraXQtZmxvdy1mcm9tOiBub19hcnRpY2xlOworICAgIG92ZXJmbG93OnZp
c2libGU7CisgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7CisgICAgdmVydGljYWwtYWxpZ246dG9w
OworICAgIG1hcmdpbjoycHg7Cit9CisKKy5ibG9jayB7CisgICBkaXNwbGF5OmJsb2NrOworfQor
CisjcmVnaW9uXzEgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyBib3JkZXI6MXB4IHNvbGlk
ICNhMGEwYTA7IH0KKyNyZWdpb25fMiB7IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHg7IGJvcmRl
cjoxcHggc29saWQgYmxhY2sgfQorI3JlZ2lvbl8zIHsgaGVpZ2h0OjExMHB4OyB3aWR0aDoyMDBw
eDsgYm9yZGVyOjFweCBzb2xpZCAjYTBhMGEwOyB9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIiBjbGFzcz0iYmxvY2siPjwvZGl2PgorPGRpdiBpZD0i
YXJ0aWNsZSI+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6MThweDsgbGluZS1oZWlnaHQ6MjsgY29s
b3I6I2EwYTBhMDsgdGV4dC1hbGlnbjpqdXN0aWZ5OyBib3JkZXI6IDFweCBzb2xpZCBncmVlbiI+
Cis8c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojYTBhMGEwIj4KK1RoaXMgaXMgc29tZSBj
b250ZW50IFRoaXMgaXMgc29tZQorVGhpcyBpcyBzb21lCis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnRl
bnQiIHN0eWxlPSJmb250LXNpemU6MTJweDsgbGluZS1oZWlnaHQ6MjsgY29sb3I6IzAwYTBlMDsg
dGV4dC1hbGlnbjpqdXN0aWZ5OyBib3JkZXI6IDFweCBzb2xpZCBncmVlbiI+Cis8c3BhbiBzdHls
ZT0iYmFja2dyb3VuZC1jb2xvcjojMDBhMGUwIj4KK1RoaXMgaXMgc29tZSBjb250ZW50IFRoaXMg
aXMgc29tZSBjb250ZW50CitUaGlzIGlzIHNvbWUgY29udGVudCBUaGlzIGlzIHNvbWUgY29udGVu
dAorVGhpcyBpcyBzb21lIGNvbnRlbnQgVGhpcyBpcworPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBp
ZD0icmVnaW9uXzEiPjwvZGl2PgorPGRpdiBpZD0icmVnaW9uXzIiPjwvZGl2PgorPGRpdiBpZD0i
cmVnaW9uXzMiPjwvZGl2PgorCis8ZGl2IGlkPSJjb25zb2xlIiBjbGFzcz0iYmxvY2siPjwvZGl2
PgorCis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBFbGVtZW50LndlYmtpdFJlZ2lv
bk92ZXJmbG93IGF0dHJpYnV0ZSIpCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgfQor
ICAgIGZ1bmN0aW9uIHJlZ2lvbk92ZXJmbG93KGlkKSB7CisgICAgICAgIHZhciBlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICByZXR1cm4gZS53ZWJraXRSZWdpb25PdmVy
ZmxvdzsKKyAgICB9CisgICAgZnVuY3Rpb24gZmxvd0NvbnRlbnQoZmxvd05hbWUpIHsKKyAgICAg
ICAgdmFyIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzEiKTsKKyAgICAgICAg
ci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAgICAgICByID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8yIik7CisgICAgICAgIHIuc3R5bGUud2Via2l0Rmxvd0Zy
b20gPSBmbG93TmFtZTsKKyAgICAgICAgciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdp
b25fMyIpOworICAgICAgICByLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7CisgICAg
fQorICAgIGZ1bmN0aW9uIGFkZFZpc3VhbE92ZXJmbG93KCkgeworICAgICAgICB2YXIgYyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7CisgICAgICAgIGMuc3R5bGUud2Via2l0
Qm94U2hhZG93PSIwcHggMzBweCBibHVlIjsKKyAgICB9CisgICAgZnVuY3Rpb24gYWRkTW9yZUNv
bnRlbnQoKSB7CisgICAgICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRl
bnQiKTsKKyAgICAgICAgYy5pbm5lckhUTUwgKz0gYy5pbm5lckhUTUw7CisgICAgfQorICAgIGZ1
bmN0aW9uIHRlc3QoKSB7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3Zl
cmZsb3coJ2FydGljbGUnKSIsICJ1bmRlZmluZWQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSIsICJ1bmRlZmluZWQiKTsKKyAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzInKSIsICJ1
bmRlZmluZWQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxv
dygncmVnaW9uXzMnKSIsICJ1bmRlZmluZWQiKTsKKworICAgICAgICBkb2N1bWVudC5ib2R5Lm9m
ZnNldFRvcDsgLy8gZm9yY2UgbGF5b3V0CisgICAgICAgIGRlYnVnKCJBZnRlciBmaXJzdCBsYXlv
dXQiKTsKKworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdy
ZWdpb25fMScpIiwgImVtcHR5Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVn
aW9uT3ZlcmZsb3coJ3JlZ2lvbl8yJykiLCAiZW1wdHkiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzMnKSIsICJlbXB0eSIpOworCisgICAg
ICAgIGRlYnVnKCJGbG93IGNvbnRlbnQiKTsKKyAgICAgICAgZmxvd0NvbnRlbnQoImFydGljbGUi
KTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7IC8vIGZvcmNlIGxheW91dAorCisg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8xJyki
LCAib3ZlcmZsb3ciKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVy
ZmxvdygncmVnaW9uXzInKSIsICJmaXQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzMnKSIsICJlbXB0eSIpOworCisgICAgICAgIGRlYnVn
KCJBZGQgdmlzdWFsIG92ZXJmbG93Iik7CisgICAgICAgIGFkZFZpc3VhbE92ZXJmbG93KCk7Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOyAvLyBmb3JjZSBsYXlvdXQKKworICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMScpIiwgIm92
ZXJmbG93Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3co
J3JlZ2lvbl8yJykiLCAib3ZlcmZsb3ciKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzMnKSIsICJmaXQiKTsKKworICAgICAgICBkZWJ1Zygi
QWRkIG1vcmUgY29udGVudCIpOworICAgICAgICBhZGRNb3JlQ29udGVudCgpOworICAgICAgICBk
b2N1bWVudC5ib2R5Lm9mZnNldFRvcDsgLy8gZm9yY2UgbGF5b3V0CisKKyAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSIsICJvdmVyZmxvdyIp
OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdpb25f
MicpIiwgIm92ZXJmbG93Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9u
T3ZlcmZsb3coJ3JlZ2lvbl8zJykiLCAib3ZlcmZsb3ciKTsKKworICAgICAgICBkZWJ1ZygiRW1w
dHkgY29udGVudCIpOworICAgICAgICBmbG93Q29udGVudCgibm9fYXJ0aWNsZSIpOworICAgICAg
ICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsgLy8gZm9yY2UgbGF5b3V0CisKKyAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSIsICJlbXB0eSIp
OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdpb25f
MicpIiwgImVtcHR5Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3Zl
cmZsb3coJ3JlZ2lvbl8zJykiLCAiZW1wdHkiKTsKKyAgICB9CisKKyAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibG9hZCIsIHRlc3QsIGZhbHNlKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNk
MDBjMWMuLjEzZDFhMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMi0wMi0wNiAg
UmF1bCBIdWRlYSAgPHJodWRlYUBhZG9iZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEVsZW1l
bnQud2Via2l0UmVnaW9uT3ZlcmZsb3cKKworICAgICAgICBbQ1NTUmVnaW9uc11bQ1NTT01dIElt
cGxlbWVudCBFbGVtZW50LnJlZ2lvbk92ZXJmbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzg2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGVhY2ggbGF5b3V0LCBjb21wdXRlIHRoZSBvdmVyZmxv
d1N0YXRlIGZvciBlYWNoIHJlZ2lvbiBiZWxvZ2luZyB0byB0aGUgZmxvdyB0aHJlYWQKKworICAg
ICAgICBUZXN0czogZmFzdC9yZWdpb25zL2VsZW1lbnQtcmVnaW9uLW92ZXJmbG93LXN0YXRlLXZl
cnRpY2FsLXJsLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9lbGVtZW50LXJlZ2lv
bi1vdmVyZmxvdy1zdGF0ZS5odG1sCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50Ojp3ZWJraXRSZWdpb25PdmVyZmxvdyk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50
LmlkbDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hS
ZWdpb25MYXlvdXRVcGRhdGVFdmVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBk
b20vTm9kZS5oOgorICAgICAgICAoTm9kZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlT3ZlcmZsb3cp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9ucyk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVh
ZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJSZWdpb24uaDoKKyAgICAgICAgKFJlbmRlclJlZ2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJSZWdpb246OnJlZ2lvblN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJl
Z2lvbjo6c2V0UmVnaW9uU3RhdGUpOgorCiAyMDEyLTAyLTA2ICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGRpbmcgRkZURnJhbWVHU3RyZWFtZXIu
Y3BwIHRoYXQgSSBmb3Jnb3QgdG8gY29tbWl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggZjk3
YjVlMi4uYzA2OGZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNTcsNiArNTcsNyBAQAog
I2luY2x1ZGUgIk5vZGVSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxheWVyLmgiCisjaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCkBAIC0xOTc0LDYgKzE5NzUsMjggQEAgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRp
b25MaXN0PiBFbGVtZW50Ojp3ZWJraXRHZXRBbmltYXRpb25zKCkgY29uc3QKICAgICByZXR1cm4g
YW5pbUNvbnRyb2xsZXItPmFuaW1hdGlvbnNGb3JSZW5kZXJlcihyZW5kZXJlcigpKTsKIH0KIAor
Y29uc3QgQXRvbWljU3RyaW5nJiBFbGVtZW50Ojp3ZWJraXRSZWdpb25PdmVyZmxvdygpIGNvbnN0
Cit7CisgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+aXNSZW5kZXJSZWdpb24oKSkg
eworICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IHRvUmVuZGVyUmVnaW9uKHJlbmRlcmVy
KCkpOworICAgICAgICBzd2l0Y2ggKHJlZ2lvbi0+cmVnaW9uU3RhdGUoKSkgeworICAgICAgICBj
YXNlIFJlbmRlclJlZ2lvbjo6UmVnaW9uRml0OgorICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGZpdFN0YXRlLCAoImZpdCIpKTsKKyAgICAgICAgICAgIHJldHVy
biBmaXRTdGF0ZTsKKyAgICAgICAgY2FzZSBSZW5kZXJSZWdpb246OlJlZ2lvbkVtcHR5OgorICAg
ICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVtcHR5U3RhdGUsICgi
ZW1wdHkiKSk7CisgICAgICAgICAgICByZXR1cm4gZW1wdHlTdGF0ZTsKKyAgICAgICAgY2FzZSBS
ZW5kZXJSZWdpb246OlJlZ2lvbk92ZXJmbG93OgorICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIG92ZXJmbG93U3RhdGUsICgib3ZlcmZsb3ciKSk7CisgICAgICAg
ICAgICByZXR1cm4gb3ZlcmZsb3dTdGF0ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCB1bmRlZmluZWRTdGF0ZSwgKCJ1bmRlZmluZWQiKSk7CisgICAgcmV0dXJuIHVuZGVm
aW5lZFN0YXRlOworfQorCiAjaWZuZGVmIE5ERUJVRwogYm9vbCBFbGVtZW50OjpmYXN0QXR0cmli
dXRlTG9va3VwQWxsb3dlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgKaW5kZXggYWMyODFjNS4uNmE0YWFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBA
IC0zODUsNiArMzg1LDggQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxBdHRyaWJ1dGU+IGNy
ZWF0ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiB2
YWx1ZSk7CiAKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHdlYmtpdFJlZ2lvbk92ZXJmbG93KCkg
Y29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQogICAgICAg
ICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQsIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKaW5k
ZXggZGY5MTk2MS4uMWQ5ZmMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbApAQCAtMTMzLDYgKzEz
Myw5IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gdm9pZCB3
ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbihpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVd
IHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKICNlbmRpZgogCisgICAgICAgIC8vIENTUyBSZWdpb25z
IEFQSQorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdlYmtpdFJlZ2lvbk92
ZXJmbG93OworCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFH
RV9PQkpFQ1RJVkVfQwogICAgICAgICAvLyBFdmVudCBoYW5kbGVyIERPTSBhdHRyaWJ1dGVzCiAg
ICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmFib3J0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggNjQ2NGQ4Yy4uMTFlZjkzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5oCkBAIC0xOTksNiArMTk5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IFwKICAgICBtYWNybyh3ZWJraXRwb2ludGVybG9ja2xvc3QpIFwKICAgICBcCisgICAgbWFjcm8o
d2Via2l0UmVnaW9uTGF5b3V0VXBkYXRlKVwKKyAgICBcCiAKIC8vIGVuZCBvZiBET01fRVZFTlRf
TkFNRVNfRk9SX0VBQ0gKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDQxNTVjNjQuLmYxNjUxMzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKQEAgLTI3NDYsNiArMjc0NiwxMiBAQCBib29sIE5vZGU6OmRpc3BhdGNo
RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgcmV0dXJuIEV2ZW50RGlzcGF0Y2hl
cjo6ZGlzcGF0Y2hFdmVudCh0aGlzLCBFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShldmVu
dCkpOwogfQogCit2b2lkIE5vZGU6OmRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKQor
eworICAgIEFTU0VSVCghZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKKyAgICBkaXNwYXRjaFNj
b3BlZEV2ZW50KFVJRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0UmVnaW9uTGF5b3V0
VXBkYXRlRXZlbnQsIHRydWUsIHRydWUsIGRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIDApKTsK
K30KKwogdm9pZCBOb2RlOjpkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCkKIHsKICAgICBB
U1NFUlQoIWV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCAzMTFiZDQx
Li43NjAzMjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTU4NSw2ICs1ODUsOCBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlTG9jYWxFdmVudHMoRXZlbnQqKTsKIAorICAgIHZvaWQgZGlz
cGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpOworCiAgICAgdm9pZCBkaXNwYXRjaFN1YnRy
ZWVNb2RpZmllZEV2ZW50KCk7CiAgICAgdm9pZCBkaXNwYXRjaERPTUFjdGl2YXRlRXZlbnQoaW50
IGRldGFpbCwgUGFzc1JlZlB0cjxFdmVudD4gdW5kZXJseWluZ0V2ZW50KTsKICAgICB2b2lkIGRp
c3BhdGNoRm9jdXNJbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVm
UHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCmluZGV4IDJjYTkyNjYuLmUxMTM1YjUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTQ4OCw2ICsxNDg4LDkgQEAgdm9pZCBSZW5kZXJCbG9j
azo6Y29tcHV0ZU92ZXJmbG93KExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlLCBib29sIHJl
Y29tcHV0ZUYKIAogICAgIC8vIEFkZCB2aXN1YWwgb3ZlcmZsb3cgZnJvbSB0aGVtZS4KICAgICBh
ZGRWaXN1YWxPdmVyZmxvd0Zyb21UaGVtZSgpOworCisgICAgaWYgKGlzUmVuZGVyRmxvd1RocmVh
ZCgpKQorICAgICAgICBlbmNsb3NpbmdSZW5kZXJGbG93VGhyZWFkKCktPmNvbXB1dGVPdmVyZmxv
d1N0YXRlRm9yUmVnaW9ucyhvbGRDbGllbnRBZnRlckVkZ2UpOwogfQogCiB2b2lkIFJlbmRlckJs
b2NrOjphZGRPdmVyZmxvd0Zyb21CbG9ja0NoaWxkcmVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAppbmRleCA5ZTM5ZDk2Li5mYjFlNjM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCkBAIC04NjAs
NCArODYwLDI2IEBAIFdlYktpdE5hbWVkRmxvdyogUmVuZGVyRmxvd1RocmVhZDo6ZW5zdXJlTmFt
ZWRGbG93KCkKICAgICByZXR1cm4gbV9uYW1lZEZsb3cuZ2V0KCk7CiB9CiAKK3ZvaWQgUmVuZGVy
Rmxvd1RocmVhZDo6Y29tcHV0ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKExheW91dFVuaXQgb2xk
Q2xpZW50QWZ0ZXJFZGdlKQoreworICAgIExheW91dFVuaXQgaGVpZ2h0ID0gb2xkQ2xpZW50QWZ0
ZXJFZGdlOworICAgIGlmIChoYXNSZW5kZXJPdmVyZmxvdygpKQorICAgICAgICBoZWlnaHQgPSBp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gdmlzdWFsT3ZlcmZsb3dSZWN0KCkubWF4WSgpIDog
dmlzdWFsT3ZlcmZsb3dSZWN0KCkubWF4WCgpOworICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6
aXRlcmF0b3IgaXRlciA9IG1fcmVnaW9uTGlzdC5iZWdpbigpOyBpdGVyICE9IG1fcmVnaW9uTGlz
dC5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gKml0ZXI7
CisgICAgICAgIGlmICghcmVnaW9uLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIHJlZ2lvbi0+
c2V0UmVnaW9uU3RhdGUoUmVuZGVyUmVnaW9uOjpSZWdpb25VbmRlZmluZWQpOworICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaW50IGZsb3dNaW4gPSBoZWlnaHQgLSAo
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJlZ2lvbi0+cmVnaW9uUmVjdCgpLnkoKSA6IHJl
Z2lvbi0+cmVnaW9uUmVjdCgpLngoKSk7CisgICAgICAgIGludCBmbG93TWF4ID0gaGVpZ2h0IC0g
KGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyByZWdpb24tPnJlZ2lvblJlY3QoKS5tYXhZKCkg
OiByZWdpb24tPnJlZ2lvblJlY3QoKS5tYXhYKCkpOworICAgICAgICBSZW5kZXJSZWdpb246OlJl
Z2lvblN0YXRlIHN0YXRlID0gUmVuZGVyUmVnaW9uOjpSZWdpb25GaXQ7CisgICAgICAgIGlmIChm
bG93TWluIDw9IDApCisgICAgICAgICAgICBzdGF0ZSA9IFJlbmRlclJlZ2lvbjo6UmVnaW9uRW1w
dHk7CisgICAgICAgIGlmIChmbG93TWF4ID4gMCkKKyAgICAgICAgICAgIHN0YXRlID0gUmVuZGVy
UmVnaW9uOjpSZWdpb25PdmVyZmxvdzsKKyAgICAgICAgcmVnaW9uLT5zZXRSZWdpb25TdGF0ZShz
dGF0ZSk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAppbmRleCA0YjFiMzY2Li42M2FkNTI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKQEAgLTEyOCw2
ICsxMjgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFJlbmRlclJlZ2lvbiogb2xkU3RhcnRSZWdpb24gPSAwLCBjb25zdCBSZW5kZXJSZWdp
b24qIG9sZEVuZFJlZ2lvbiA9IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFJlbmRlclJlZ2lvbiogbmV3U3RhcnRSZWdpb24gPSAwLCBjb25zdCBSZW5kZXJS
ZWdpb24qIG5ld0VuZFJlZ2lvbiA9IDApOwogICAgIFdlYktpdE5hbWVkRmxvdyogZW5zdXJlTmFt
ZWRGbG93KCk7CisgICAgdm9pZCBjb21wdXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0
VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UpOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3Qg
Y2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJGbG93VGhyZWFkIjsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAppbmRleCA4ZGYxY2VkLi45
MWVkZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcApAQCAt
NDcsNiArNDcsNyBAQCBSZW5kZXJSZWdpb246OlJlbmRlclJlZ2lvbihOb2RlKiBub2RlLCBSZW5k
ZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkKQogICAgICwgbV9wYXJlbnRGbG93VGhyZWFkKDApCiAg
ICAgLCBtX2lzVmFsaWQoZmFsc2UpCiAgICAgLCBtX2hhc0N1c3RvbVJlZ2lvblN0eWxlKGZhbHNl
KQorICAgICwgbV9yZWdpb25TdGF0ZShSZWdpb25VbmRlZmluZWQpCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAppbmRleCA2YmRjZGY2Li5kNDZkNmRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCkBAIC04MSw2ICs4MSwxNiBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0xhc3RSZWdpb24oKSBjb25zdDsKIAogICAgIHZvaWQgY2xlYXJC
b3hTdHlsZUluUmVnaW9uKGNvbnN0IFJlbmRlckJveCopOworCisgICAgZW51bSBSZWdpb25TdGF0
ZSB7CisgICAgICAgIFJlZ2lvblVuZGVmaW5lZCwKKyAgICAgICAgUmVnaW9uRW1wdHksCisgICAg
ICAgIFJlZ2lvbkZpdCwKKyAgICAgICAgUmVnaW9uT3ZlcmZsb3cKKyAgICB9OworCisgICAgUmVn
aW9uU3RhdGUgcmVnaW9uU3RhdGUoKSBjb25zdCB7IHJldHVybiBpc1ZhbGlkKCkgPyBtX3JlZ2lv
blN0YXRlIDogUmVnaW9uVW5kZWZpbmVkOyB9CisgICAgdm9pZCBzZXRSZWdpb25TdGF0ZShSZWdp
b25TdGF0ZSByZWdpb25TdGF0ZSkgeyBtX3JlZ2lvblN0YXRlID0gcmVnaW9uU3RhdGU7IH0KIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1
cm4gIlJlbmRlclJlZ2lvbiI7IH0KIApAQCAtMTA5LDYgKzExOSw3IEBAIHByaXZhdGU6CiAKICAg
ICBib29sIG1faXNWYWxpZDsKICAgICBib29sIG1faGFzQ3VzdG9tUmVnaW9uU3R5bGU7CisgICAg
UmVnaW9uU3RhdGUgbV9yZWdpb25TdGF0ZTsKIH07CiAKIGlubGluZSBSZW5kZXJSZWdpb24qIHRv
UmVuZGVyUmVnaW9uKFJlbmRlck9iamVjdCogb2JqZWN0KQo=
</data>
<flag name="commit-queue"
          id="127156"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126765</attachid>
            <date>2012-02-13 06:24:30 -0800</date>
            <delta_ts>2012-02-13 18:25:12 -0800</delta_ts>
            <desc>Removed unrelated code and updated the tests</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>20829</size>
            <attacher name="Raul Hudea">rhudea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlMWY5ZjYzLi42ZWRlNTI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDIt
MTMgIFJhdWwgSHVkZWEgIDxyaHVkZWFAYWRvYmUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBF
bGVtZW50LndlYmtpdFJlZ2lvbk92ZXJmbG93CisKKyAgICAgICAgW0NTU1JlZ2lvbnNdW0NTU09N
XSBJbXBsZW1lbnQgRWxlbWVudC5yZWdpb25PdmVyZmxvdworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc4NjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVnaW9ucy9lbGVtZW50LXJlZ2lvbi1v
dmVyZmxvdy1zdGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9u
cy9lbGVtZW50LXJlZ2lvbi1vdmVyZmxvdy1zdGF0ZS12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9lbGVtZW50LXJlZ2lvbi1vdmVyZmxvdy1z
dGF0ZS12ZXJ0aWNhbC1ybC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvZWxl
bWVudC1yZWdpb24tb3ZlcmZsb3ctc3RhdGUuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMTMgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHdyYXAgc2V0dGluZ3Mgc2VsZWN0b3IgdGV4dCBhbmQgYWRkaW5nIGEgcnVsZSB3aXRoIHVu
ZG9hYmxlIGFjdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZWxl
bWVudC1yZWdpb24tb3ZlcmZsb3ctc3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2VsZW1lbnQtcmVnaW9uLW92ZXJmbG93LXN0YXRlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGRlZTU4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2VsZW1lbnQtcmVnaW9uLW92ZXJmbG93LXN0YXRl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMzIEBACitUZXN0cyBFbGVtZW50LndlYmtpdFJlZ2lv
bk92ZXJmbG93IGF0dHJpYnV0ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKyAgCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgcmVn
aW9uT3ZlcmZsb3coJ2FydGljbGUnKSBpcyAidW5kZWZpbmVkIgorUEFTUyByZWdpb25PdmVyZmxv
dygncmVnaW9uXzEnKSBpcyAidW5kZWZpbmVkIgorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9u
XzInKSBpcyAidW5kZWZpbmVkIgorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzMnKSBpcyAi
dW5kZWZpbmVkIgorQWZ0ZXIgZmlyc3QgbGF5b3V0CitQQVNTIHJlZ2lvbk92ZXJmbG93KCdyZWdp
b25fMScpIGlzICJlbXB0eSIKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8yJykgaXMgImVt
cHR5IgorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzMnKSBpcyAiZW1wdHkiCitGbG93IGNv
bnRlbnQKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8xJykgaXMgIm92ZXJmbG93IgorUEFT
UyByZWdpb25PdmVyZmxvdygncmVnaW9uXzInKSBpcyAiZml0IgorUEFTUyByZWdpb25PdmVyZmxv
dygncmVnaW9uXzMnKSBpcyAiZW1wdHkiCitBZGQgbW9yZSBjb250ZW50CitQQVNTIHJlZ2lvbk92
ZXJmbG93KCdyZWdpb25fMScpIGlzICJvdmVyZmxvdyIKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3Jl
Z2lvbl8yJykgaXMgIm92ZXJmbG93IgorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzMnKSBp
cyAiZml0IgorQWRkIHZpc3VhbCBvdmVyZmxvdworUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9u
XzEnKSBpcyAib3ZlcmZsb3ciCitQQVNTIHJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMicpIGlzICJv
dmVyZmxvdyIKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykgaXMgIm92ZXJmbG93Igor
RW1wdHkgY29udGVudAorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSBpcyAiZW1wdHki
CitQQVNTIHJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMicpIGlzICJlbXB0eSIKK1BBU1MgcmVnaW9u
T3ZlcmZsb3coJ3JlZ2lvbl8zJykgaXMgImVtcHR5IgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvZWxlbWVudC1yZWdpb24tb3ZlcmZsb3ctc3RhdGUtdmVydGljYWwtcmwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2VsZW1lbnQtcmVnaW9uLW92
ZXJmbG93LXN0YXRlLXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jMDllNmFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2VsZW1lbnQtcmVnaW9uLW92ZXJmbG93LXN0YXRlLXZlcnRpY2FsLXJsLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMyIEBACitUZXN0cyBFbGVtZW50LndlYmtpdFJlZ2lvbk92
ZXJmbG93IGF0dHJpYnV0ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKyAgCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgcmVnaW9u
T3ZlcmZsb3coJ2FydGljbGUnKSBpcyAidW5kZWZpbmVkIgorUEFTUyByZWdpb25PdmVyZmxvdygn
cmVnaW9uXzEnKSBpcyAidW5kZWZpbmVkIgorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzIn
KSBpcyAidW5kZWZpbmVkIgorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzMnKSBpcyAidW5k
ZWZpbmVkIgorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSBpcyAiZW1wdHkiCitQQVNT
IHJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMicpIGlzICJlbXB0eSIKK1BBU1MgcmVnaW9uT3ZlcmZs
b3coJ3JlZ2lvbl8zJykgaXMgImVtcHR5IgorRmxvdyBjb250ZW50CitQQVNTIHJlZ2lvbk92ZXJm
bG93KCdyZWdpb25fMScpIGlzICJvdmVyZmxvdyIKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lv
bl8yJykgaXMgImZpdCIKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykgaXMgImVtcHR5
IgorQWRkIG1vcmUgY29udGVudAorUEFTUyByZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSBpcyAi
b3ZlcmZsb3ciCitQQVNTIHJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMicpIGlzICJvdmVyZmxvdyIK
K1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykgaXMgImZpdCIKK0FkZCB2aXN1YWwgb3Zl
cmZsb3cKK1BBU1MgcmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8xJykgaXMgIm92ZXJmbG93IgorUEFT
UyByZWdpb25PdmVyZmxvdygncmVnaW9uXzInKSBpcyAib3ZlcmZsb3ciCitQQVNTIHJlZ2lvbk92
ZXJmbG93KCdyZWdpb25fMycpIGlzICJvdmVyZmxvdyIKK0VtcHR5IGNvbnRlbnQKK1BBU1MgcmVn
aW9uT3ZlcmZsb3coJ3JlZ2lvbl8xJykgaXMgImVtcHR5IgorUEFTUyByZWdpb25PdmVyZmxvdygn
cmVnaW9uXzInKSBpcyAiZW1wdHkiCitQQVNTIHJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMycpIGlz
ICJlbXB0eSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2VsZW1lbnQt
cmVnaW9uLW92ZXJmbG93LXN0YXRlLXZlcnRpY2FsLXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvZWxlbWVudC1yZWdpb24tb3ZlcmZsb3ctc3RhdGUtdmVydGljYWwtcmwuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2VkMzQ0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2VsZW1lbnQtcmVnaW9uLW92ZXJmbG93LXN0
YXRlLXZlcnRpY2FsLXJsLmh0bWwKQEAgLTAsMCArMSwxMjIgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHN0eWxlPgoraHRtbCB7LXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsO30K
K2JvZHkgeyBmb250LWZhbWlseTogbW9ub3NwYWNlOyB9CisKKyNhcnRpY2xlIHsKKyAgICAtd2Vi
a2l0LWZsb3ctaW50bzogYXJ0aWNsZTsKKyAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKK30K
KworI3JlZ2lvbl8xLCAjcmVnaW9uXzIsICNyZWdpb25fMyB7CisgICAgLXdlYmtpdC1mbG93LWZy
b206IG5vX2FydGljbGU7CisgICAgb3ZlcmZsb3c6dmlzaWJsZTsKKyAgICBkaXNwbGF5OmlubGlu
ZS1ibG9jazsKKyAgICB2ZXJ0aWNhbC1hbGlnbjp0b3A7CisgICAgbWFyZ2luOjEwcHg7Cit9CisK
Ky5ibG9jayB7CisgICBkaXNwbGF5OmJsb2NrOworfQorCisjcmVnaW9uXzEgeyBoZWlnaHQ6MTEw
cHg7IHdpZHRoOjIwMHB4OyBib3JkZXI6MXB4IHNvbGlkICNhMGEwYTA7IH0KKyNyZWdpb25fMiB7
IGhlaWdodDoxMTBweDsgd2lkdGg6MjAwcHg7IGJvcmRlcjoxcHggc29saWQgYmxhY2sgfQorI3Jl
Z2lvbl8zIHsgaGVpZ2h0OjExMHB4OyB3aWR0aDoyMDBweDsgYm9yZGVyOjFweCBzb2xpZCAjYTBh
MGEwOyB9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9u
IiBjbGFzcz0iYmxvY2siPjwvZGl2PgorPGRpdiBpZD0iYXJ0aWNsZSI+CisgICAgPGRpdj4KKyAg
ICAgICAgPGRpdiBpZD0iY29udGVudCIgc3R5bGU9IndpZHRoOiAzOTZweDsgYmFja2dyb3VuZC1j
b2xvcjogZ3JlZW47Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZWdp
b25fMSI+PC9kaXY+Cis8ZGl2IGlkPSJyZWdpb25fMiI+PC9kaXY+Cis8ZGl2IGlkPSJyZWdpb25f
MyI+PC9kaXY+CisKKzxkaXYgaWQ9ImNvbnNvbGUiIGNsYXNzPSJibG9jayI+PC9kaXY+CisKKzxz
Y3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIEVsZW1lbnQud2Via2l0UmVnaW9uT3ZlcmZs
b3cgYXR0cmlidXRlIikKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB9CisgICAgZnVu
Y3Rpb24gcmVnaW9uT3ZlcmZsb3coaWQpIHsKKyAgICAgICAgdmFyIGUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChpZCk7CisgICAgICAgIHJldHVybiBlLndlYmtpdFJlZ2lvbk92ZXJmbG93Owor
ICAgIH0KKyAgICBmdW5jdGlvbiBmbG93Q29udGVudChmbG93TmFtZSkgeworICAgICAgICB2YXIg
ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25fMSIpOworICAgICAgICByLnN0eWxl
LndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7CisgICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVnaW9uXzIiKTsKKyAgICAgICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZs
b3dOYW1lOworICAgICAgICByID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8zIik7
CisgICAgICAgIHIuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSBmbG93TmFtZTsKKyAgICB9CisgICAg
ZnVuY3Rpb24gYWRkVmlzdWFsT3ZlcmZsb3coKSB7CisgICAgICAgIHZhciBjID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImFydGljbGUiKTsKKyAgICAgICAgYy5zdHlsZS53ZWJraXRCb3hTaGFk
b3c9Ii0zMHB4IDBweCBsaW1lIjsKKyAgICB9CisgICAgZnVuY3Rpb24gYWRkTW9yZUNvbnRlbnQo
KSB7CisgICAgICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsK
KyAgICAgICAgYy5zdHlsZS53aWR0aCA9IDU5NjsKKyAgICB9CisgICAgZnVuY3Rpb24gZW1wdHlD
b250ZW50KCkgeworCisgICAgfQorICAgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ2FydGljbGUnKSIsICJ1bmRlZmluZWQi
KTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9u
XzEnKSIsICJ1bmRlZmluZWQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdp
b25PdmVyZmxvdygncmVnaW9uXzInKSIsICJ1bmRlZmluZWQiKTsKKyAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzMnKSIsICJ1bmRlZmluZWQiKTsK
KworICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsgLy8gZm9yY2UgbGF5b3V0CisKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSIs
ICJlbXB0eSIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93
KCdyZWdpb25fMicpIiwgImVtcHR5Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykiLCAiZW1wdHkiKTsKKworICAgICAgICBkZWJ1Zygi
RmxvdyBjb250ZW50Iik7CisgICAgICAgIGZsb3dDb250ZW50KCJhcnRpY2xlIik7CisgICAgICAg
IGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOyAvLyBmb3JjZSBsYXlvdXQKKworICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMScpIiwgIm92ZXJmbG93
Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lv
bl8yJykiLCAiZml0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3Zl
cmZsb3coJ3JlZ2lvbl8zJykiLCAiZW1wdHkiKTsKKworICAgICAgICBkZWJ1ZygiQWRkIG1vcmUg
Y29udGVudCIpOworICAgICAgICBhZGRNb3JlQ29udGVudCgpOworICAgICAgICBkb2N1bWVudC5i
b2R5Lm9mZnNldFRvcDsgLy8gZm9yY2UgbGF5b3V0CisKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSIsICJvdmVyZmxvdyIpOworICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMicpIiwgIm92
ZXJmbG93Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3co
J3JlZ2lvbl8zJykiLCAiZml0Iik7CisKKyAgICAgICAgZGVidWcoIkFkZCB2aXN1YWwgb3ZlcmZs
b3ciKTsKKyAgICAgICAgYWRkVmlzdWFsT3ZlcmZsb3coKTsKKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7IC8vIGZvcmNlIGxheW91dAorCisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8xJykiLCAib3ZlcmZsb3ciKTsKKyAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzInKSIsICJvdmVy
ZmxvdyIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdy
ZWdpb25fMycpIiwgIm92ZXJmbG93Iik7CisKKyAgICAgICAgZGVidWcoIkVtcHR5IGNvbnRlbnQi
KTsKKyAgICAgICAgZmxvd0NvbnRlbnQoIm5vX2FydGljbGUiKTsKKyAgICAgICAgZG9jdW1lbnQu
Ym9keS5vZmZzZXRUb3A7IC8vIGZvcmNlIGxheW91dAorCisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8xJykiLCAiZW1wdHkiKTsKKyAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzInKSIsICJlbXB0
eSIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdp
b25fMycpIiwgImVtcHR5Iik7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCB0ZXN0LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9lbGVtZW50LXJlZ2lvbi1vdmVyZmxvdy1zdGF0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2VsZW1lbnQtcmVnaW9uLW92ZXJmbG93LXN0YXRlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU2OTQ5MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9lbGVtZW50LXJlZ2lvbi1vdmVyZmxvdy1zdGF0ZS5o
dG1sCkBAIC0wLDAgKzEsMTEzIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyNh
cnRpY2xlIHsKKyAgICAtd2Via2l0LWZsb3ctaW50bzogYXJ0aWNsZTsKKyAgICBib3JkZXI6IDJw
eCBzb2xpZCBibGFjazsKK30KKyNyZWdpb25fMSwgI3JlZ2lvbl8yLCAjcmVnaW9uXzMgeworICAg
IC13ZWJraXQtZmxvdy1mcm9tOiBub19hcnRpY2xlOworICAgIG92ZXJmbG93OnZpc2libGU7Cisg
ICAgZGlzcGxheTppbmxpbmUtYmxvY2s7CisgICAgdmVydGljYWwtYWxpZ246dG9wOworICAgIG1h
cmdpbjoxMHB4OworfQorLmJsb2NrIHsKKyAgIGRpc3BsYXk6YmxvY2s7Cit9CisjcmVnaW9uXzEg
eyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyB9CisjcmVnaW9uXzIgeyBoZWlnaHQ6MTEwcHg7
IHdpZHRoOjIwMHB4OyB9CisjcmVnaW9uXzMgeyBoZWlnaHQ6MTEwcHg7IHdpZHRoOjIwMHB4OyB9
Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiIgY2xhc3M9
ImJsb2NrIj48L2Rpdj4KKzxkaXYgaWQ9ImFydGljbGUiPgorICAgIDxkaXY+CisgICAgICAgIDxk
aXYgaWQ9ImNvbnRlbnQiIHN0eWxlPSJoZWlnaHQ6IDIxNnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsiPjwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJlZ2lvbl8xIj48
L2Rpdj4KKzxkaXYgaWQ9InJlZ2lvbl8yIj48L2Rpdj4KKzxkaXYgaWQ9InJlZ2lvbl8zIj48L2Rp
dj4KKworPGRpdiBpZD0iY29uc29sZSIgY2xhc3M9ImJsb2NrIj48L2Rpdj4KKworPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiVGVzdHMgRWxlbWVudC53ZWJraXRSZWdpb25PdmVyZmxvdyBhdHRy
aWJ1dGUiKQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIH0KKyAgICBmdW5jdGlvbiBy
ZWdpb25PdmVyZmxvdyhpZCkgeworICAgICAgICB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGlkKTsKKyAgICAgICAgcmV0dXJuIGUud2Via2l0UmVnaW9uT3ZlcmZsb3c7CisgICAgfQor
ICAgIGZ1bmN0aW9uIGZsb3dDb250ZW50KGZsb3dOYW1lKSB7CisgICAgICAgIHZhciByID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbl8xIik7CisgICAgICAgIHIuc3R5bGUud2Via2l0
Rmxvd0Zyb20gPSBmbG93TmFtZTsKKyAgICAgICAgciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZWdpb25fMiIpOworICAgICAgICByLnN0eWxlLndlYmtpdEZsb3dGcm9tID0gZmxvd05hbWU7
CisgICAgICAgIHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uXzMiKTsKKyAgICAg
ICAgci5zdHlsZS53ZWJraXRGbG93RnJvbSA9IGZsb3dOYW1lOworICAgIH0KKyAgICBmdW5jdGlv
biBhZGRWaXN1YWxPdmVyZmxvdygpIHsKKyAgICAgICAgdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYXJ0aWNsZSIpOworICAgICAgICBjLnN0eWxlLndlYmtpdEJveFNoYWRvdz0iMHB4
IDMwcHggbGltZSI7CisgICAgfQorICAgIGZ1bmN0aW9uIGFkZE1vcmVDb250ZW50KCkgeworICAg
ICAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7CisgICAgICAg
IGMuc3R5bGUuaGVpZ2h0ID0gMzI2OworICAgIH0KKyAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdhcnRpY2xlJykiLCAi
dW5kZWZpbmVkIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZs
b3coJ3JlZ2lvbl8xJykiLCAidW5kZWZpbmVkIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8yJykiLCAidW5kZWZpbmVkIik7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8zJykiLCAidW5k
ZWZpbmVkIik7CisKKyAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7IC8vIGZvcmNlIGxh
eW91dAorICAgICAgICBkZWJ1ZygiQWZ0ZXIgZmlyc3QgbGF5b3V0Iik7CisKKyAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSIsICJlbXB0eSIp
OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdpb25f
MicpIiwgImVtcHR5Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3Zl
cmZsb3coJ3JlZ2lvbl8zJykiLCAiZW1wdHkiKTsKKworICAgICAgICBkZWJ1ZygiRmxvdyBjb250
ZW50Iik7CisgICAgICAgIGZsb3dDb250ZW50KCJhcnRpY2xlIik7CisgICAgICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOyAvLyBmb3JjZSBsYXlvdXQKKworICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMScpIiwgIm92ZXJmbG93Iik7CisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8yJykiLCAi
Zml0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ3Jl
Z2lvbl8zJykiLCAiZW1wdHkiKTsKKworICAgICAgICBkZWJ1ZygiQWRkIG1vcmUgY29udGVudCIp
OworICAgICAgICBhZGRNb3JlQ29udGVudCgpOworICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNl
dFRvcDsgLy8gZm9yY2UgbGF5b3V0CisKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWdpb25PdmVyZmxvdygncmVnaW9uXzEnKSIsICJvdmVyZmxvdyIpOworICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMicpIiwgIm92ZXJmbG93Iik7
CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8z
JykiLCAiZml0Iik7CisKKyAgICAgICAgZGVidWcoIkFkZCB2aXN1YWwgb3ZlcmZsb3ciKTsKKyAg
ICAgICAgYWRkVmlzdWFsT3ZlcmZsb3coKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRU
b3A7IC8vIGZvcmNlIGxheW91dAorCisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVn
aW9uT3ZlcmZsb3coJ3JlZ2lvbl8xJykiLCAib3ZlcmZsb3ciKTsKKyAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzInKSIsICJvdmVyZmxvdyIpOwor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMycp
IiwgIm92ZXJmbG93Iik7CisKKyAgICAgICAgZGVidWcoIkVtcHR5IGNvbnRlbnQiKTsKKyAgICAg
ICAgZmxvd0NvbnRlbnQoIm5vX2FydGljbGUiKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZz
ZXRUb3A7IC8vIGZvcmNlIGxheW91dAorCisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVnaW9uT3ZlcmZsb3coJ3JlZ2lvbl8xJykiLCAiZW1wdHkiKTsKKyAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyZmxvdygncmVnaW9uXzInKSIsICJlbXB0eSIpOworICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJmbG93KCdyZWdpb25fMycpIiwg
ImVtcHR5Iik7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCB0
ZXN0LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0Y2M3ZTYyLi5jNTUxYTlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTItMDItMTMgIFJhdWwgSHVkZWEgIDxyaHVkZWFA
YWRvYmUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBFbGVtZW50LndlYmtpdFJlZ2lvbk92ZXJm
bG93CisKKyAgICAgICAgW0NTU1JlZ2lvbnNdW0NTU09NXSBJbXBsZW1lbnQgRWxlbWVudC5yZWdp
b25PdmVyZmxvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzc4NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPbiBlYWNoIGxheW91dCwgY29tcHV0ZSB0aGUgb3ZlcmZsb3dTdGF0ZSBmb3IgZWFjaCByZWdp
b24gYmVsb25naW5nIHRvIHRoZSBmbG93IHRocmVhZAorCisgICAgICAgIFRlc3RzOiBmYXN0L3Jl
Z2lvbnMvZWxlbWVudC1yZWdpb24tb3ZlcmZsb3ctc3RhdGUtdmVydGljYWwtcmwuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9yZWdpb25zL2VsZW1lbnQtcmVnaW9uLW92ZXJmbG93LXN0YXRlLmh0
bWwKKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OndlYmtpdFJlZ2lvbk92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuaWRsOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
Y29tcHV0ZU92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpjb21wdXRlT3ZlcmZsb3dT
dGF0ZUZvclJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisgICAgICAgIChSZW5kZXJSZWdpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpyZWdpb25TdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJSZWdpb246OnNldFJlZ2lvblN0YXRlKToKKwogMjAxMi0wMi0wNiAgUmFw
aGFlbCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbRUZM
XSBEcm9wIHN1cHBvcnQgZm9yIHRoZSBDdXJsIG5ldHdvcmsgYmFja2VuZC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAppbmRleCA0YzVlNDFjLi44MjQxZjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBA
IC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJS
ZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTE5ODksNiArMTk5MCwyOCBAQCBQYXNzUmVm
UHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IEVsZW1lbnQ6OndlYmtpdEdldEFuaW1hdGlvbnMoKSBj
b25zdAogICAgIHJldHVybiBhbmltQ29udHJvbGxlci0+YW5pbWF0aW9uc0ZvclJlbmRlcmVyKHJl
bmRlcmVyKCkpOwogfQogCitjb25zdCBBdG9taWNTdHJpbmcmIEVsZW1lbnQ6OndlYmtpdFJlZ2lv
bk92ZXJmbG93KCkgY29uc3QKK3sKKyAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5p
c1JlbmRlclJlZ2lvbigpKSB7CisgICAgICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gdG9SZW5k
ZXJSZWdpb24ocmVuZGVyZXIoKSk7CisgICAgICAgIHN3aXRjaCAocmVnaW9uLT5yZWdpb25TdGF0
ZSgpKSB7CisgICAgICAgIGNhc2UgUmVuZGVyUmVnaW9uOjpSZWdpb25GaXQ6CisgICAgICAgICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZml0U3RhdGUsICgiZml0IikpOwor
ICAgICAgICAgICAgcmV0dXJuIGZpdFN0YXRlOworICAgICAgICBjYXNlIFJlbmRlclJlZ2lvbjo6
UmVnaW9uRW1wdHk6CisgICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgZW1wdHlTdGF0ZSwgKCJlbXB0eSIpKTsKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVN0YXRl
OworICAgICAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVnaW9uT3ZlcmZsb3c6CisgICAgICAgICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3ZlcmZsb3dTdGF0ZSwgKCJvdmVy
ZmxvdyIpKTsKKyAgICAgICAgICAgIHJldHVybiBvdmVyZmxvd1N0YXRlOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHVuZGVmaW5lZFN0YXRlLCAoInVuZGVmaW5lZCIpKTsK
KyAgICByZXR1cm4gdW5kZWZpbmVkU3RhdGU7Cit9CisKICNpZm5kZWYgTkRFQlVHCiBib29sIEVs
ZW1lbnQ6OmZhc3RBdHRyaWJ1dGVMb29rdXBBbGxvd2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCAxNmZkNTY3Li44OTFiMDAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKQEAgLTQwNiw2ICs0MDYsOCBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVm
UHRyPEF0dHJpYnV0ZT4gY3JlYXRlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmIHZhbHVlKTsKIAorICAgIGNvbnN0IEF0b21pY1N0cmluZyYgd2Via2l0
UmVnaW9uT3ZlcmZsb3coKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25U
eXBlIHR5cGUpCiAgICAgICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCwgdHlwZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmlkbAppbmRleCBiMWNlNmYxLi5jNjZiMTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aWRsCkBAIC0xMzQsNiArMTM0LDkgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbVjhFbmFibGVk
QXRSdW50aW1lXSB2b2lkIHdlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKICNlbmRpZgogCisgICAgICAg
IC8vIENTUyBSZWdpb25zIEFQSQorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHdlYmtpdFJlZ2lvbk92ZXJmbG93OworCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZF
X0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgICAgICAvLyBFdmVudCBoYW5kbGVyIERP
TSBhdHRyaWJ1dGVzCiAgICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0
ZW5lciBvbmFib3J0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5k
ZXggYTg5ODgxMy4uOGYzZmI4NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCkBAIC0xNDg4LDYgKzE0ODgsOSBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlT3Zl
cmZsb3coTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UsIGJvb2wgcmVjb21wdXRlRgogCiAg
ICAgLy8gQWRkIHZpc3VhbCBvdmVyZmxvdyBmcm9tIHRoZW1lLgogICAgIGFkZFZpc3VhbE92ZXJm
bG93RnJvbVRoZW1lKCk7CisKKyAgICBpZiAoaXNSZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAg
IGVuY2xvc2luZ1JlbmRlckZsb3dUaHJlYWQoKS0+Y29tcHV0ZU92ZXJmbG93U3RhdGVGb3JSZWdp
b25zKG9sZENsaWVudEFmdGVyRWRnZSk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2s6OmFkZE92ZXJm
bG93RnJvbUJsb2NrQ2hpbGRyZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsb3dUaHJlYWQuY3BwCmluZGV4IDkzNzU1NzMuLjRlOGRmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTg2MCw0ICs4NjAsMzEgQEAg
V2ViS2l0TmFtZWRGbG93KiBSZW5kZXJGbG93VGhyZWFkOjplbnN1cmVOYW1lZEZsb3coKQogICAg
IHJldHVybiBtX25hbWVkRmxvdy5nZXQoKTsKIH0KIAordm9pZCBSZW5kZXJGbG93VGhyZWFkOjpj
b21wdXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVk
Z2UpCit7CisgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSBvbGRDbGllbnRBZnRlckVkZ2U7CisgICAg
Ly8gRklYTUU6IHRoZSB2aXN1YWwgb3ZlcmZsb3cgb2YgbWlkZGxlIHJlZ2lvbiAoaWYgaXQgaXMg
dGhlIGxhc3Qgb25lIHRvIGNvbnRhaW4gYW55IGNvbnRlbnQgaW4gYSByZW5kZXIgZmxvdyB0aHJl
YWQpCisgICAgLy8gbWlnaHQgbm90IGJlIHRha2VuIGludG8gYWNjb3VudCBiZWNhdXNlIHRoZSBy
ZW5kZXIgZmxvdyB0aHJlYWQgaGVpZ2h0IGlzIGdyZWF0ZXIgdGhhdCB0aGF0IHJlZ2lvbnMgaGVp
Z2h0ICsgaXRzIHZpc3VhbCBvdmVyZmxvdworICAgIC8vIGJlY2F1c2Ugb2YgaG93IGNvbXB1dGVM
b2dpY2FsSGVpZ2h0IGlzIGltcGxlbWVudGVkIGZvciBSZW5kZXJGbG93VGhyZWFkIChhcyBhIHN1
bSBvZiBhbGwgcmVnaW9ucyBoZWlnaHQpLgorICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB0aGUgbWlk
ZGxlIHJlZ2lvbiB3aWxsIGJlIG1hcmtlZCBhcyBmaXQgKGV2ZW4gaWYgaXQgaGFzIHZpc3VhbCBv
dmVyZmxvdyBmbG93aW5nIGludG8gdGhlIG5leHQgcmVnaW9uKQorICAgIGlmIChoYXNSZW5kZXJP
dmVyZmxvdygpKQorICAgICAgICBoZWlnaHQgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8g
dmlzdWFsT3ZlcmZsb3dSZWN0KCkubWF4WSgpIDogdmlzdWFsT3ZlcmZsb3dSZWN0KCkubWF4WCgp
OworCisgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZWdpb25M
aXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIpIHsKKyAgICAg
ICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAqaXRlcjsKKyAgICAgICAgaWYgKCFyZWdpb24tPmlz
VmFsaWQoKSkgeworICAgICAgICAgICAgcmVnaW9uLT5zZXRSZWdpb25TdGF0ZShSZW5kZXJSZWdp
b246OlJlZ2lvblVuZGVmaW5lZCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQor
ICAgICAgICBMYXlvdXRVbml0IGZsb3dNaW4gPSBoZWlnaHQgLSAoaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSA/IHJlZ2lvbi0+cmVnaW9uUmVjdCgpLnkoKSA6IHJlZ2lvbi0+cmVnaW9uUmVjdCgp
LngoKSk7CisgICAgICAgIExheW91dFVuaXQgZmxvd01heCA9IGhlaWdodCAtIChpc0hvcml6b250
YWxXcml0aW5nTW9kZSgpID8gcmVnaW9uLT5yZWdpb25SZWN0KCkubWF4WSgpIDogcmVnaW9uLT5y
ZWdpb25SZWN0KCkubWF4WCgpKTsKKyAgICAgICAgUmVuZGVyUmVnaW9uOjpSZWdpb25TdGF0ZSBz
dGF0ZSA9IFJlbmRlclJlZ2lvbjo6UmVnaW9uRml0OworICAgICAgICBpZiAoZmxvd01pbiA8PSAw
KQorICAgICAgICAgICAgc3RhdGUgPSBSZW5kZXJSZWdpb246OlJlZ2lvbkVtcHR5OworICAgICAg
ICBpZiAoZmxvd01heCA+IDApCisgICAgICAgICAgICBzdGF0ZSA9IFJlbmRlclJlZ2lvbjo6UmVn
aW9uT3ZlcmZsb3c7CisgICAgICAgIHJlZ2lvbi0+c2V0UmVnaW9uU3RhdGUoc3RhdGUpOworICAg
IH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmgKaW5kZXggNGIxYjM2Ni4uNjNhZDUyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCkBAIC0xMjgsNiArMTI4LDcgQEAg
cHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZW5k
ZXJSZWdpb24qIG9sZFN0YXJ0UmVnaW9uID0gMCwgY29uc3QgUmVuZGVyUmVnaW9uKiBvbGRFbmRS
ZWdpb24gPSAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBS
ZW5kZXJSZWdpb24qIG5ld1N0YXJ0UmVnaW9uID0gMCwgY29uc3QgUmVuZGVyUmVnaW9uKiBuZXdF
bmRSZWdpb24gPSAwKTsKICAgICBXZWJLaXROYW1lZEZsb3cqIGVuc3VyZU5hbWVkRmxvdygpOwor
ICAgIHZvaWQgY29tcHV0ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKExheW91dFVuaXQgb2xkQ2xp
ZW50QWZ0ZXJFZGdlKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRl
ck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyRmxvd1RocmVhZCI7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKaW5kZXggOGRmMWNlZC4uOTFlZGY2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKQEAgLTQ3LDYgKzQ3LDcg
QEAgUmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24oTm9kZSogbm9kZSwgUmVuZGVyRmxvd1RocmVh
ZCogZmxvd1RocmVhZCkKICAgICAsIG1fcGFyZW50Rmxvd1RocmVhZCgwKQogICAgICwgbV9pc1Zh
bGlkKGZhbHNlKQogICAgICwgbV9oYXNDdXN0b21SZWdpb25TdHlsZShmYWxzZSkKKyAgICAsIG1f
cmVnaW9uU3RhdGUoUmVnaW9uVW5kZWZpbmVkKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmgKaW5kZXggNmJkY2RmNi4uZDQ2ZDZkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApAQCAtODEsNiArODEsMTYgQEAgcHVibGljOgogICAg
IGJvb2wgaXNMYXN0UmVnaW9uKCkgY29uc3Q7CiAKICAgICB2b2lkIGNsZWFyQm94U3R5bGVJblJl
Z2lvbihjb25zdCBSZW5kZXJCb3gqKTsKKworICAgIGVudW0gUmVnaW9uU3RhdGUgeworICAgICAg
ICBSZWdpb25VbmRlZmluZWQsCisgICAgICAgIFJlZ2lvbkVtcHR5LAorICAgICAgICBSZWdpb25G
aXQsCisgICAgICAgIFJlZ2lvbk92ZXJmbG93CisgICAgfTsKKworICAgIFJlZ2lvblN0YXRlIHJl
Z2lvblN0YXRlKCkgY29uc3QgeyByZXR1cm4gaXNWYWxpZCgpID8gbV9yZWdpb25TdGF0ZSA6IFJl
Z2lvblVuZGVmaW5lZDsgfQorICAgIHZvaWQgc2V0UmVnaW9uU3RhdGUoUmVnaW9uU3RhdGUgcmVn
aW9uU3RhdGUpIHsgbV9yZWdpb25TdGF0ZSA9IHJlZ2lvblN0YXRlOyB9CiBwcml2YXRlOgogICAg
IHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJS
ZWdpb24iOyB9CiAKQEAgLTEwOSw2ICsxMTksNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lz
VmFsaWQ7CiAgICAgYm9vbCBtX2hhc0N1c3RvbVJlZ2lvblN0eWxlOworICAgIFJlZ2lvblN0YXRl
IG1fcmVnaW9uU3RhdGU7CiB9OwogCiBpbmxpbmUgUmVuZGVyUmVnaW9uKiB0b1JlbmRlclJlZ2lv
bihSZW5kZXJPYmplY3QqIG9iamVjdCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126882</attachid>
            <date>2012-02-13 18:25:26 -0800</date>
            <delta_ts>2012-02-13 18:41:12 -0800</delta_ts>
            <desc>Test</desc>
            <filename>bug-77863-20120214112525.patch</filename>
            <type>text/plain</type>
            <size>46303</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg4MmQ3NmZkMzYwZTcw
YTM1Y2Q3ODY2ZWU1ZjFhMTRhNjQ3ODNhOS4uYTMyZWU2NTRmZmJiM2M1Y2ZmNGQ5MDExZmZlZjE3
MWQ3YzIxZjU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMTU2MCw2ICsxNTYwLDExMSBAQAogCiAyMDEyLTAy
LTEyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAKKyAgICAgICAgVXNl
IHlvdW5nZXN0U2hhZG93Um9vdCBhbmQgb2xkZXN0U2hhZG93Um9vdCBpbnN0ZWFkIG9mIEVsZW1l
bnQ6OnNoYWRvd1Jvb3QoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRWxlbWVudDo6c2hhZG93Um9vdCgpIGlzIGFtYmlndW91cyBiZWNhdXNlIGl0IGRv
bid0IHNheSB0byB0YWtlIHRoZSB5b3VuZ2VzdCBzaGFkb3cgcm9vdCBvcgorICAgICAgICB0aGUg
b2xkZXN0IHNoYWRvdyByb290LgorCisgICAgICAgIFdlIHNob3VsZCBtYWtlIHRoaXMgY2xlYXJl
ci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YnVp
bGRBY2Nlc3NLZXlNYXApOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OnJlbW92ZWRGcm9tRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZW1vdmVk
RnJvbVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnQ6OmRldGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpy
ZWNhbGNTdHlsZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmVuc3VyZVNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRy
ZW5DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKToKKyAgICAgICAg
KiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAgICogZG9tL0V2ZW50
RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1NoYWRvd0hvc3QpOgorICAgICAg
ICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNoYWRvd1Jvb3QpOgorICAgICAg
ICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAqIGRvbS9T
aGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0ZSk6Cisg
ICAgICAgICogZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d1Jvb3RMaXN0OjppbnNlcnRlZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpyZW1vdmVkRnJvbURvY3VtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjppbnNlcnRlZEludG9UcmVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpyZW1vdmVkRnJvbVRyZWUpOgorICAgICAgICAo
V2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6Omhvc3RDaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dSb290TGlzdDo6ZGV0YWNoKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdExpc3QuaDoKKyAg
ICAgICAgKFNoYWRvd1Jvb3RMaXN0KToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dSb290Rm9yKToKKyAgICAgICAgKiBodG1sL0Zp
bGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjptdWx0aXBs
ZUF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OmZpbmRNYWluU3Vt
bWFyeSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAq
IGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdl
bkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXln
ZW5FbGVtZW50OjpzaGFkb3dTZWxlY3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRyb2xz
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Omhhc01lZGlhQ29udHJvbHMp
OgorICAgICAgICAqIGh0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1s
L0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNz
RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN1bW1hcnlFbGVtZW50OjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclRleHRF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBs
YWNlaG9sZGVyVGV4dCk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRt
bC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6
aGFuZGxlTW91c2VEb3duRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBs
YWNlaG9sZGVyVGV4dCk6CisgICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZSk6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnNsaWRlclRodW1iRWxlbWVudE9mKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNs
aWRlckNvbnRhaW5lcjo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OnRyYWNrTGltaXRlckVs
ZW1lbnRPZik6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2hhZG93Um9vdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxv
YWRDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9s
Ojp1cGxvYWRCdXR0b24pOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUUmVmRWxlbWVudDo6dXBkYXRlUmVmZXJlbmNlZFRleHQpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6ZW5zdXJlU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNoYWRv
d1Jvb3QpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
OnlvdW5nZXN0U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om9sZGVz
dFNoYWRvd1Jvb3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJ
bnRlcm5hbHMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKworMjAxMi0wMi0x
MiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCiAgICAgICAgIEludHJv
ZHVjZSBTaGFkb3dSb290TGlzdC4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc4MDY5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNDg3Nzk3ZDdkZTcy
ZTc3NWU3MjA5M2YyNjM5MDFlYzc5ZjAzMTdjOC4uYzdiNzgxYjkyOTUwYzk0YjgxY2Q2Y2I2MDlk
M2EwMTQ5ZjJjN2E2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE0MzQsNyArMTQzNCw2IEBA
IF9fWk5LN1dlYkNvcmU2V2lkZ2V0MjVjb252ZXJ0VG9Db250YWluaW5nV2luZG93RVJLTlNfN0lu
dFJlY3RFCiBfX1pOSzdXZWJDb3JlNldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VS
S05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNvcmU2V2lkZ2V0OWZyYW1lUmVjdEV2CiBfX1pOSzdX
ZWJDb3JlN0VsZW1lbnQxMHNjcmVlblJlY3RFdgotX19aTks3V2ViQ29yZTdFbGVtZW50MTBzaGFk
b3dSb290RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDEyZ2V0QXR0cmlidXRlRVJLTlNfMTNRdWFs
aWZpZWROYW1lRQogX19aTks3V2ViQ29yZTdJbnRSZWN0MTBpbnRlcnNlY3RzRVJLUzBfCiBfX1pO
SzdXZWJDb3JlN0ludFJlY3Q4Y29udGFpbnNFUktTMF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDYyZWVmZjliOTk5ZDhiNzk1ZTQ5NjI5ZTM0OTcwNjg5NDFjOWZkODMuLmMwYmI0MTQ3Yjgz
NzE3MTkwYTFjMGM1MGFhNWFjMTAyNjZhZDUxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMTM3LDYgKzEzNyw3IEBACiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93
Um9vdExpc3QuaCIKICNpbmNsdWRlICJTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuaCIKICNpbmNsdWRl
ICJTdHlsZVNoZWV0TGlzdC5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKQEAg
LTY2Niw4ICs2NjcsMTEgQEAgdm9pZCBEb2N1bWVudDo6YnVpbGRBY2Nlc3NLZXlNYXAoVHJlZVNj
b3BlKiBzY29wZSkKICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhY2Nlc3NLZXkgPSBlbGVt
ZW50LT5nZXRBdHRyaWJ1dGUoYWNjZXNza2V5QXR0cik7CiAgICAgICAgIGlmICghYWNjZXNzS2V5
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZWxlbWVudHNCeUFjY2Vzc0tleS5zZXQoYWNjZXNz
S2V5LmltcGwoKSwgZWxlbWVudCk7Ci0gICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3dSb290
ID0gZWxlbWVudC0+c2hhZG93Um9vdCgpKQotICAgICAgICAgICAgYnVpbGRBY2Nlc3NLZXlNYXAo
c2hhZG93Um9vdCk7CisKKyAgICAgICAgaWYgKGVsZW1lbnQtPmhhc1NoYWRvd1Jvb3QoKSkgewor
ICAgICAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gZWxlbWVudC0+c2hhZG93Um9vdExp
c3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRv
d1Jvb3QoKSkKKyAgICAgICAgICAgICAgICBidWlsZEFjY2Vzc0tleU1hcChyb290KTsKKyAgICAg
ICAgfQogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDhjOTRkN2M3ODBkZDgx
MjdhMjk3NDcyM2U1ZDBiNTkyYzA3NmUyZTAuLjA5YzMwNDQyYTU2MDAxMTY1OGU4NTQzZDc4Mzhh
Njc0OGNlNDU5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTg3Myw4ICs4NzMsOCBAQCB2
b2lkIEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKICAgICAvLyBuZWVkIHRvIGRvIHN1
cGVyY2xhc3MgcHJvY2Vzc2luZyBmaXJzdCBzbyBpbkRvY3VtZW50KCkgaXMgdHJ1ZQogICAgIC8v
IGJ5IHRoZSB0aW1lIHdlIHJlYWNoIHVwZGF0ZUlkCiAgICAgQ29udGFpbmVyTm9kZTo6aW5zZXJ0
ZWRJbnRvRG9jdW1lbnQoKTsKLSAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9v
dCgpKQotICAgICAgICBzaGFkb3ctPmluc2VydGVkSW50b0RvY3VtZW50KCk7CisgICAgaWYgKFNo
YWRvd1Jvb3RMaXN0KiBzaGFkb3dMaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgc2hh
ZG93TGlzdC0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKIAogICAgIGlmIChtX2F0dHJpYnV0ZU1h
cCkgewogICAgICAgICBpZiAoaGFzSUQoKSkgewpAQCAtOTA2LDggKzkwNiw4IEBAIHZvaWQgRWxl
bWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiAgICAgfQogCiAgICAgQ29udGFpbmVyTm9kZTo6
cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwotICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFk
b3dSb290KCkpCi0gICAgICAgIHNoYWRvdy0+cmVtb3ZlZEZyb21Eb2N1bWVudCgpOworICAgIGlm
IChTaGFkb3dSb290TGlzdCogc2hhZG93TGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisgICAgICAg
IHNoYWRvd0xpc3QtPnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKIH0KIAogdm9pZCBFbGVtZW50Ojpp
bnNlcnRlZEludG9UcmVlKGJvb2wgZGVlcCkKQEAgLTkxNSw4ICs5MTUsOCBAQCB2b2lkIEVsZW1l
bnQ6Omluc2VydGVkSW50b1RyZWUoYm9vbCBkZWVwKQogICAgIENvbnRhaW5lck5vZGU6Omluc2Vy
dGVkSW50b1RyZWUoZGVlcCk7CiAgICAgaWYgKCFkZWVwKQogICAgICAgICByZXR1cm47Ci0gICAg
aWYgKFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkKLSAgICAgICAgc2hhZG93LT5p
bnNlcnRlZEludG9UcmVlKHRydWUpOworICAgIGlmIChTaGFkb3dSb290TGlzdCogc2hhZG93TGlz
dCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisgICAgICAgIHNoYWRvd0xpc3QtPmluc2VydGVkSW50b1Ry
ZWUodHJ1ZSk7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKGNvbnRhaW5z
RnVsbFNjcmVlbkVsZW1lbnQoKSAmJiBwYXJlbnRFbGVtZW50KCkgJiYgIXBhcmVudEVsZW1lbnQo
KS0+Y29udGFpbnNGdWxsU2NyZWVuRWxlbWVudCgpKQpAQCAtOTI5LDggKzkyOSw4IEBAIHZvaWQg
RWxlbWVudDo6cmVtb3ZlZEZyb21UcmVlKGJvb2wgZGVlcCkKICAgICBDb250YWluZXJOb2RlOjpy
ZW1vdmVkRnJvbVRyZWUoZGVlcCk7CiAgICAgaWYgKCFkZWVwKQogICAgICAgICByZXR1cm47Ci0g
ICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkKLSAgICAgICAgc2hhZG93
LT5yZW1vdmVkRnJvbVRyZWUodHJ1ZSk7CisgICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBzaGFkb3dM
aXN0ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgc2hhZG93TGlzdC0+cmVtb3ZlZEZyb21U
cmVlKHRydWUpOwogfQogCiB2b2lkIEVsZW1lbnQ6OmF0dGFjaCgpCkBAIC05NDIsMTAgKzk0Miwx
MCBAQCB2b2lkIEVsZW1lbnQ6OmF0dGFjaCgpCiAgICAgU3R5bGVTZWxlY3RvclBhcmVudFB1c2hl
ciBwYXJlbnRQdXNoZXIodGhpcyk7CiAKICAgICAvLyBXaGVuIGEgc2hhZG93IHJvb3QgZXhpc3Rz
LCBpdCBkb2VzIHRoZSB3b3JrIG9mIGF0dGFjaGluZyB0aGUgY2hpbGRyZW4uCi0gICAgaWYgKFNo
YWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkgeworICAgIGlmIChoYXNTaGFkb3dSb290
KCkpIHsKICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKICAgICAgICAgTm9kZTo6YXR0YWNo
KCk7Ci0gICAgICAgIHNoYWRvdy0+YXR0YWNoKCk7CisgICAgICAgIHNoYWRvd1Jvb3RMaXN0KCkt
PmF0dGFjaCgpOwogCiAgICAgICAgIC8vIEluIGEgc2hhZG93IHRyZWUsIHNvbWUgb2YgbGlnaHQg
Y2hpbGRyZW4gbWF5IGJlIGF0dGFjaGVkIGJ5ICdjb250ZW50JyBlbGVtZW50LgogICAgICAgICAv
LyBIb3dldmVyLCB3aGVuIHRoZXJlIGlzIG5vIGNvbnRlbnQgZWxlbWVudCBvciBjb250ZW50IGVs
ZW1lbnQgZG9lcyBub3Qgc2VsZWN0CkBAIC05ODEsOCArOTgxLDggQEAgdm9pZCBFbGVtZW50Ojpk
ZXRhY2goKQogICAgIGlmIChoYXNSYXJlRGF0YSgpKQogICAgICAgICByYXJlRGF0YSgpLT5yZXNl
dENvbXB1dGVkU3R5bGUoKTsKICAgICBDb250YWluZXJOb2RlOjpkZXRhY2goKTsKLSAgICBpZiAo
U2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgpKQotICAgICAgICBzaGFkb3ctPmRldGFj
aCgpOworICAgIGlmIChTaGFkb3dSb290TGlzdCogc2hhZG93TGlzdCA9IHNoYWRvd1Jvb3RMaXN0
KCkpCisgICAgICAgIHNoYWRvd0xpc3QtPmRldGFjaCgpOwogCiAgICAgUmVuZGVyV2lkZ2V0Ojpy
ZXN1bWVXaWRnZXRIaWVyYXJjaHlVcGRhdGVzKCk7CiB9CkBAIC0xMTQxLDcgKzExNDEsOCBAQCB2
b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAgICAgZm9y
Y2VDaGVja09mQW55RWxlbWVudFNpYmxpbmcgPSBmb3JjZUNoZWNrT2ZBbnlFbGVtZW50U2libGlu
ZyB8fCAoY2hpbGRSdWxlc0NoYW5nZWQgJiYgaGFzSW5kaXJlY3RBZGphY2VudFJ1bGVzKTsKICAg
ICB9CiAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgY2FyZSBhYm91dCBzaWJsaW5nIGNvbWJp
bmF0b3JzLiBXaWxsIGJlIG5lY2Vzc2FyeSBpbiBYQkwyIHdvcmxkLgotICAgIGlmIChTaGFkb3dS
b290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpIHsKKyAgICBpZiAoaGFzU2hhZG93Um9vdCgpKSB7
CisgICAgICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0
U2hhZG93Um9vdCgpOwogICAgICAgICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwgc2hhZG93LT5j
aGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVSZWNhbGMoKSkgewog
ICAgICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKICAgICAgICAgICAgIHNoYWRvdy0+cmVj
YWxjU2hhZG93VHJlZVN0eWxlKGNoYW5nZSk7CkBAIC0xMTcwLDEyICsxMTcxLDE0IEBAIFNoYWRv
d1Jvb3RMaXN0KiBFbGVtZW50OjpzaGFkb3dSb290TGlzdCgpIGNvbnN0CiAgICAgcmV0dXJuICZy
YXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3RMaXN0OwogfQogCisjaWYgMAogU2hhZG93Um9vdCogRWxl
bWVudDo6c2hhZG93Um9vdCgpIGNvbnN0CiB7CiAgICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBsaXN0
ID0gc2hhZG93Um9vdExpc3QoKSkKICAgICAgICAgcmV0dXJuIGxpc3QtPnlvdW5nZXN0U2hhZG93
Um9vdCgpOwogICAgIHJldHVybiAwOwogfQorI2VuZGlmCiAKIHN0YXRpYyBib29sIHZhbGlkYXRl
U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQsIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewpAQCAtMTIxOSw4ICsxMjIyLDggQEAgdm9pZCBFbGVtZW50Ojpz
ZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gc2hhZG93Um9vdCwgRXhjZXB0aW9u
Q29kZSYgZWMKIAogU2hhZG93Um9vdCogRWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdCgpCiB7Ci0g
ICAgaWYgKFNoYWRvd1Jvb3QqIGV4aXN0aW5nUm9vdCA9IHNoYWRvd1Jvb3QoKSkKLSAgICAgICAg
cmV0dXJuIGV4aXN0aW5nUm9vdDsKKyAgICBpZiAoaGFzU2hhZG93Um9vdCgpKQorICAgICAgICBy
ZXR1cm4gc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogCiAgICAgcmV0dXJu
IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNo
YWRvd1Jvb3QpLmdldCgpOwogfQpAQCAtMTM4Miw4ICsxMzg1LDggQEAgdm9pZCBFbGVtZW50Ojpj
aGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5nZSwg
Tm9kZSogYWYKICAgICAgICAgY2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKHRoaXMsIHJlbmRl
clN0eWxlKCksIGZhbHNlLCBiZWZvcmVDaGFuZ2UsIGFmdGVyQ2hhbmdlLCBjaGlsZENvdW50RGVs
dGEpOwogCiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpIHsKLSAgICAgICAgaWYgKFNoYWRvd1Jvb3Qq
IHJvb3QgPSBzaGFkb3dSb290KCkpCi0gICAgICAgICAgICByb290LT5ob3N0Q2hpbGRyZW5DaGFu
Z2VkKCk7CisgICAgICAgIGlmIChTaGFkb3dSb290TGlzdCogbGlzdCA9IHNoYWRvd1Jvb3RMaXN0
KCkpCisgICAgICAgICAgICBsaXN0LT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAgICAgfQogfQog
CkBAIC0xNTgwLDcgKzE1ODMsNyBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVBy
ZXZpb3VzU2VsZWN0aW9uKQogICAgICAgICAvLyBJZiBhIGZvY3VzIGV2ZW50IGhhbmRsZXIgY2hh
bmdlcyB0aGUgZm9jdXMgdG8gYSBkaWZmZXJlbnQgbm9kZSBpdAogICAgICAgICAvLyBkb2VzIG5v
dCBtYWtlIHNlbnNlIHRvIGNvbnRpbnVlIGFuZCB1cGRhdGUgYXBwZWFyZW5jZS4KICAgICAgICAg
cHJvdGVjdCA9IHRoaXM7Ci0gICAgICAgIGlmIChzaGFkb3dSb290KCkgJiYgcGFnZS0+Zm9jdXND
b250cm9sbGVyKCktPnRyYW5zZmVyRm9jdXNUb0VsZW1lbnRJblNoYWRvd1Jvb3QodGhpcywgcmVz
dG9yZVByZXZpb3VzU2VsZWN0aW9uKSkKKyAgICAgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSAmJiBw
YWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+dHJhbnNmZXJGb2N1c1RvRWxlbWVudEluU2hhZG93Um9v
dCh0aGlzLCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICBpZiAoIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkTm9kZSh0aGlz
LCBkb2MtPmZyYW1lKCkpKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5k
ZXggZTllNGQ4Yjg5MzhhNDM1ZTM5MGY1YmMxYTRlYjgzNjA0YmVmNGVjZS4uZGQyNzAyOTUyNTc3
MjI4YWNjZjg0YzhlNzFiZjUzZTZiMTY4OWZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yNTgs
NyArMjU4LDYgQEAgcHVibGljOgogCiAgICAgLy8gRklYTUU6IFRoZXNlIEFQSSB3aWxsIGJlIG1v
dmVkIHRvIFNoYWRvd1Jvb3RMaXN0LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODMxMwotICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoKSBjb25zdDsK
ICAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIFNoYWRvd1Jvb3QqIGVuc3VyZVNoYWRvd1Jvb3QoKTsKICAgICB2b2lkIHJl
bW92ZVNoYWRvd1Jvb3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERp
c3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5k
ZXggNzU3MzgzMmJhMzM1MGQwZmNiMzNmMTMyZDc5OWJlNjJjN2IxYWIxNy4uM2VlNTI4NWJjYTEy
ZTQ0ZDQ1MWEyZjJjYWQxOWJmYmU3NDcxMGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlz
cGF0Y2hlci5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTaGFk
b3dSb290T3JTVkdTaGFkb3dSb290KGNvbnN0IE5vZGUqIG5vZGUpCiAKIHN0YXRpYyBpbmxpbmUg
Ym9vbCBpc1NoYWRvd0hvc3QoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aXNFbGVt
ZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpOworICAgIHJldHVybiBu
b2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCk7
CiB9CiAKIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IEV2ZW50RGlzcGF0Y2hlcjo6YWRqdXN0VG9T
aGFkb3dCb3VuZGFyaWVzKFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRhcmdldCwgY29uc3QgVmVj
dG9yPE5vZGUqPiByZWxhdGVkVGFyZ2V0QW5jZXN0b3JzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGQ5
NDU5M2IyNzY5MGFiMzRhOWZjNWUxZjcxNzIwNzQwYWFjNTFkZGYuLjgxZGVkZjc3ZWI4OTNiNWU0
NTUzMjZjYjY2NTIxYzY4OTk4OTQ1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTg2LDYgKzg2LDcg
QEAKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JRdWVy
eS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5o
IgogI2luY2x1ZGUgIlN0YXRpY05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiU3RvcmFnZUV2ZW50Lmgi
CiAjaW5jbHVkZSAiVGFnTm9kZUxpc3QuaCIKQEAgLTgwOSw3ICs4MTAsNyBAQCBib29sIE5vZGU6
Omhhc05vbkVtcHR5Qm91bmRpbmdCb3goKSBjb25zdAogCiBpbmxpbmUgc3RhdGljIFNoYWRvd1Jv
b3QqIHNoYWRvd1Jvb3QoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50
Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCkgOiAwOworICAgIHJldHVybiBu
b2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCkg
PyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0U2hhZG93Um9vdCgp
IDogMDsKIH0KIAogaW5saW5lIHZvaWQgTm9kZTo6c2V0U3R5bGVDaGFuZ2UoU3R5bGVDaGFuZ2VU
eXBlIGNoYW5nZVR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmNwcAppbmRleCA2ZmE5ODhhN2RkODI5Y2MxZWE4ZmNmMWZmYjhhMjNmZTJhYThjNzJmLi40MTNl
ODM3Nzc4NWNlZGZjYzc3YzM1YjQyY2E3MDBlZDA1NDM1MTRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAKICNpZiBFTkFCTEUoU1ZH
KQogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC02NSw3ICs2Niw4IEBAIE5vZGVSZW5kZXJpbmdD
b250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQogICAgIG1fbG9jYXRpb24g
PSBMb2NhdGlvbkxpZ2h0Q2hpbGQ7CiAKICAgICBpZiAocGFyZW50LT5pc0VsZW1lbnROb2RlKCkp
IHsKLSAgICAgICAgbV92aXN1YWxQYXJlbnRTaGFkb3dSb290ID0gdG9FbGVtZW50KHBhcmVudCkt
PnNoYWRvd1Jvb3QoKTsKKyAgICAgICAgaWYgKHRvRWxlbWVudChwYXJlbnQpLT5oYXNTaGFkb3dS
b290KCkpCisgICAgICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3QgPSB0b0VsZW1lbnQo
cGFyZW50KS0+c2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CiAKICAgICAg
ICAgaWYgKG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdCkgewogICAgICAgICAgICAgaWYgKChtX2lu
c2VydGlvblBvaW50ID0gbV92aXN1YWxQYXJlbnRTaGFkb3dSb290LT5pbnNlcnRpb25Qb2ludEZv
cihtX25vZGUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IDcyZTFlZjc1YWMwZWQz
ZmRmYjk2NDdmNTRkZjU5MWFjMjJmM2ZkZDkuLjE1NjM5YjdiYTAxOGJlM2YwMTRjZDJmNmU0OWRj
ZGRhN2ZkZTliODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTk3LDcgKzk3LDcg
QEAgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290OjpjcmVhdGUoRWxlbWVudCogZWxl
bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gU2hhZG93
Um9vdDo6Y3JlYXRlKEVsZW1lbnQqIGVsZW1lbnQsIFNoYWRvd1Jvb3RDcmVhdGlvblB1cnBvc2Ug
cHVycG9zZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKCFlbGVtZW50IHx8IGVsZW1l
bnQtPnNoYWRvd1Jvb3QoKSkgeworICAgIGlmICghZWxlbWVudCB8fCBlbGVtZW50LT5oYXNTaGFk
b3dSb290KCkpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAg
IHJldHVybiAwOwogICAgIH0KQEAgLTEwOSw3ICsxMDksNyBAQCBQYXNzUmVmUHRyPFNoYWRvd1Jv
b3Q+IFNoYWRvd1Jvb3Q6OmNyZWF0ZShFbGVtZW50KiBlbGVtZW50LCBTaGFkb3dSb290Q3JlYXRp
b25QdQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBBU1NFUlQocHVycG9zZSAhPSBD
cmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QgfHwgIWVsZW1lbnQtPnNoYWRvd1Jvb3QoKSk7Cisg
ICAgQVNTRVJUKHB1cnBvc2UgIT0gQ3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290IHx8ICFlbGVt
ZW50LT5oYXNTaGFkb3dSb290KCkpOwogICAgIFJlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290
ID0gY3JlYXRlKGVsZW1lbnQtPmRvY3VtZW50KCkpOwogCiAgICAgZWMgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290TGlzdC5jcHAKaW5kZXggODhlMGZiNWYxMzcwOWEwODdhMmM0NWYyNTA2
NzY0NDZhNDQzMzFmMC4uNTcwYjdkYzcxZTc2NjAwZWJhNWQxMzFjMGI4ZTFlY2NkODU5YjBlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwCkBAIC01OSw0ICs1OSw0NiBAQCBT
aGFkb3dSb290KiBTaGFkb3dSb290TGlzdDo6cG9wU2hhZG93Um9vdCgpCiAgICAgcmV0dXJuIG1f
c2hhZG93Um9vdHMucmVtb3ZlSGVhZCgpOwogfQogCit2b2lkIFNoYWRvd1Jvb3RMaXN0OjppbnNl
cnRlZEludG9Eb2N1bWVudCgpCit7CisgICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdl
c3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAg
ICAgICAgcm9vdC0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKK30KKwordm9pZCBTaGFkb3dSb290
TGlzdDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCit7CisgICAgZm9yIChTaGFkb3dSb290KiByb290
ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jv
b3QoKSkKKyAgICAgICAgcm9vdC0+cmVtb3ZlZEZyb21Eb2N1bWVudCgpOworfQorCit2b2lkIFNo
YWRvd1Jvb3RMaXN0OjppbnNlcnRlZEludG9UcmVlKGJvb2wgZGVlcCkKK3sKKyAgICBmb3IgKFNo
YWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3Qt
Pm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICByb290LT5pbnNlcnRlZEludG9UcmVlKGRlZXAp
OworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0OjpyZW1vdmVkRnJvbVRyZWUoYm9vbCBkZWVwKQor
eworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290
OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgIHJvb3QtPnJlbW92ZWRG
cm9tVHJlZShkZWVwKTsKK30KKwordm9pZCBTaGFkb3dSb290TGlzdDo6aG9zdENoaWxkcmVuQ2hh
bmdlZCgpCit7CisgICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290
KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+
aG9zdENoaWxkcmVuQ2hhbmdlZCgpOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0OjphdHRhY2go
KQoreworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyBy
b290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgIHJvb3QtPmF0dGFj
aCgpOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0OjpkZXRhY2goKQoreworICAgIGZvciAoU2hh
ZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+
b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgIHJvb3QtPmRldGFjaCgpOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290TGlzdC5oCmluZGV4IDA1NWJjYWE1MWM4YjkxOThmYzQ1ZGQ3Mzkz
N2MyODg1NjU5ZWEwMzMuLmM3ZmM5OGNhYThhMjBiNDRkNTRjODM3YWI3ODRlOGNlZmM0NWQwMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oCkBAIC00OCw2ICs0OCwxNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBwdXNoU2hhZG93Um9vdChTaGFkb3dSb290Kik7CiAgICAgU2hhZG93Um9v
dCogcG9wU2hhZG93Um9vdCgpOwogCisgICAgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwor
ICAgIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOworICAgIHZvaWQgaW5zZXJ0ZWRJbnRvVHJl
ZShib29sIGRlZXApOworICAgIHZvaWQgcmVtb3ZlZEZyb21UcmVlKGJvb2wgZGVlcCk7CisKKyAg
ICB2b2lkIGhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKKworICAgIHZvaWQgYXR0YWNoKCk7CisgICAg
dm9pZCBkZXRhY2goKTsKKwogcHJpdmF0ZToKICAgICBEb3VibHlMaW5rZWRMaXN0PFNoYWRvd1Jv
b3Q+IG1fc2hhZG93Um9vdHM7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2hhZG93Um9vdExp
c3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCmluZGV4IDAwMzE3ZTMx
YTA0YzI2ZGQ1MWQ2N2FhNzQwZGNmMmYwOGUxNzJkNmEuLmU3NjIwOWNjODMxZjBiZGZiYWI5NzU1
NTQ4NmNjNjU2NjI4ZDg0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2Nv
cGVBZG9wdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5j
cHAKQEAgLTI4LDEyICsyOCwxMyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
Tm9kZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRv
d1Jvb3RMaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGlubGluZSBTaGFk
b3dSb290KiBzaGFkb3dSb290Rm9yKE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmlz
RWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpIDogMDsKKyAgICBy
ZXR1cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93
Um9vdCgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290TGlzdCgpLT55b3VuZ2VzdFNoYWRv
d1Jvb3QoKSA6IDA7CiB9CiAKIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld1Nj
b3BlKE5vZGUqIHJvb3QpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApp
bmRleCBkZmJiZGY3Y2Q3MDQ4YmNiYzNhZjU4ZTcwMjkxNDY3NGM1NGJmOWQ2Li41NzU5ZjY3NDE1
Y2QzODJlNTAwZmJlNjU1OGQwYzM0MzU3ZDk3NzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTaGFk
b3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTI2NSwxNSArMjY2LDE1IEBAIGJvb2wgRmlsZUlu
cHV0VHlwZTo6aXNGaWxlVXBsb2FkKCkgY29uc3QKIAogdm9pZCBGaWxlSW5wdXRUeXBlOjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkp
OworICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CiAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgZWxlbWVudCgpLT5zaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGVs
ZW1lbnQoKS0+bXVsdGlwbGUoKSA/IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUZvck11bHRp
cGxlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk6IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShl
bGVtZW50KCktPmRvY3VtZW50KCkpLCBlYyk7CisgICAgZWxlbWVudCgpLT5zaGFkb3dSb290TGlz
dCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGVsZW1lbnQoKS0+bXVsdGlwbGUo
KSA/IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUZvck11bHRpcGxlKGVsZW1lbnQoKS0+ZG9j
dW1lbnQoKSk6IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50
KCkpLCBlYyk7CiB9CiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1dGVDaGFu
Z2VkKCkKIHsKLSAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOwotICAgIFVwbG9h
ZEJ1dHRvbkVsZW1lbnQqIGJ1dHRvbiA9IHN0YXRpY19jYXN0PFVwbG9hZEJ1dHRvbkVsZW1lbnQq
PihlbGVtZW50KCktPnNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKTsKKyAgICBBU1NFUlQoZWxl
bWVudCgpLT5oYXNTaGFkb3dSb290KCkpOworICAgIFVwbG9hZEJ1dHRvbkVsZW1lbnQqIGJ1dHRv
biA9IHN0YXRpY19jYXN0PFVwbG9hZEJ1dHRvbkVsZW1lbnQqPihlbGVtZW50KCktPnNoYWRvd1Jv
b3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKTsKICAgICBpZiAoYnV0
dG9uKQogICAgICAgICBidXR0b24tPnNldFZhbHVlKGVsZW1lbnQoKS0+bXVsdGlwbGUoKSA/IGZp
bGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKSA6IGZpbGVCdXR0b25DaG9vc2VGaWxl
TGFiZWwoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAK
aW5kZXggMDE1Y2Y2MWNlYjgzMzc2OTk4YjY4ZWI2YWIwOWVmNTYyNjQ0YWI0My4uYWEyNjRjMjEy
YTZjYzYxMzgwMjk2M2QwZWU2ZjFhOWQ4YTlkZjdmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk1vdXNl
RXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJEZXRhaWxzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9v
dC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMDgsNyArMTA5LDcgQEAgUmVuZGVyT2JqZWN0KiBIVE1M
RGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVy
U3R5bGUKIAogdm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQog
ewotICAgIEFTU0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3Qo
KSk7CiAKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0
aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3Qt
PmFwcGVuZENoaWxkKERldGFpbHNTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKQEAgLTEyMiw3ICsxMjMsNyBAQCBFbGVtZW50KiBI
VE1MRGV0YWlsc0VsZW1lbnQ6OmZpbmRNYWluU3VtbWFyeSgpIGNvbnN0CiAgICAgICAgICAgICBy
ZXR1cm4gdG9FbGVtZW50KGNoaWxkKTsKICAgICB9CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
RGV0YWlsc1N1bW1hcnlFbGVtZW50Kj4oc2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpLT5mYWxs
YmFja1N1bW1hcnkoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGV0YWlsc1N1bW1hcnlFbGVt
ZW50Kj4oc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkp
LT5mYWxsYmFja1N1bW1hcnkoKTsKIH0KIAogdm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCmluZGV4IGQyOTc0ZjAxMjkzYmU1ZjNiM2U2ZjA2NzRhOTg3NjVhNDhhYmUyNmMu
LjkxZWVkNTVkYWZhMzYyODU1NDgzNjZlYzM1YWU1MjkxNjdlMjE2MjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIFBhc3NSZWZQ
dHI8SFRNTElucHV0RWxlbWVudD4gSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hCiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hh
ZG93Um9vdCgpKTsKICAgICBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9vdDo6Q3Jl
YXRpbmdVc2VyQWdlbnRTaGFkb3dSb290LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIG1f
aW5wdXRUeXBlLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEtleWdlbkVsZW1lbnQuY3BwCmluZGV4IDg1MjUyODE5YWE1OGU3MGMyZDAzNzE1MDcyNWQxN2M0
ODk4OTAxMzUuLmUxMDA3OWY2NDY0ZTc4ZjVlZTA3NGQxNWY4YWIxMmY2ZDc0MzJjMjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBA
CiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJTU0xLZXlHZW5lcmF0
b3IuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3Qu
aCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCkBA
IC04NSw3ICs4Niw3IEBAIGlubGluZSBIVE1MS2V5Z2VuRWxlbWVudDo6SFRNTEtleWdlbkVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgICAgIG9wdGlvbi0+
YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBrZXlzW2ldKSwgZWMpOwogICAgIH0K
IAotICAgIEFTU0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3Qo
KSk7CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFkb3dSb290OjpjcmVhdGUodGhp
cywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KTsKICAgICByb290LT5h
cHBlbmRDaGlsZChzZWxlY3QsIGVjKTsKIH0KQEAgLTEzMCw4ICsxMzEsOCBAQCB2b2lkIEhUTUxL
ZXlnZW5FbGVtZW50OjpyZXNldCgpCiAKIEhUTUxTZWxlY3RFbGVtZW50KiBIVE1MS2V5Z2VuRWxl
bWVudDo6c2hhZG93U2VsZWN0KCkgY29uc3QKIHsKLSAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBz
aGFkb3dSb290KCk7Ci0gICAgQVNTRVJUKHNoYWRvdyk7CisgICAgQVNTRVJUKGhhc1NoYWRvd1Jv
b3QoKSk7CisgICAgU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0
U2hhZG93Um9vdCgpOwogICAgIHJldHVybiBzaGFkb3cgPyB0b0hUTUxTZWxlY3RFbGVtZW50KHNo
YWRvdy0+Zmlyc3RDaGlsZCgpKSA6IDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCmluZGV4IGU1ZmZjMDg1NjJlYzQyNTkwNDVlMTlhYmIwOWQ0ODVmMjI3NzIy
MGIuLjY3YWQxZDljNTFmY2I5MGFiM2YyYWQxMGEyMjg4YmZiYTlkYWRjYWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJT
aGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJUaW1l
UmFuZ2VzLmgiCiAjaW5jbHVkZSAiVVVJRC5oIgogI2luY2x1ZGUgPGxpbWl0cz4KQEAgLTM1MTks
MTUgKzM1MjAsMTUgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpwcml2YXRlQnJvd3NpbmdTdGF0
ZURpZENoYW5nZSgpCiAKIE1lZGlhQ29udHJvbHMqIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhQ29u
dHJvbHMoKQogewotICAgIHJldHVybiB0b01lZGlhQ29udHJvbHMoc2hhZG93Um9vdCgpLT5maXJz
dENoaWxkKCkpOworICAgIHJldHVybiB0b01lZGlhQ29udHJvbHMoc2hhZG93Um9vdExpc3QoKS0+
b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOwogfQogCiBib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6Omhhc01lZGlhQ29udHJvbHMoKQogewotICAgIGlmICghc2hhZG93Um9vdCgpKQorICAg
IGlmICghaGFzU2hhZG93Um9vdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBOb2Rl
KiBub2RlID0gc2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CisgICAgTm9kZSogbm9kZSA9IHNo
YWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwogICAgIHJl
dHVybiBub2RlICYmIG5vZGUtPmlzTWVkaWFDb250cm9scygpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAppbmRleCBhMWZkYWY2YzcyZDRiMDY1MTJlODQyMWRl
ODAwZTUyMGJjYWE3YTc5Li43YzgzOTk0NWJiYjU3MTFmZGY0MTg1ZWM3ZTc2NzBlNjM2MDE2NDNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKQEAgLTIzNCw3ICsy
MzQsNyBAQCB2b2lkIEhUTUxNZXRlckVsZW1lbnQ6OmRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpCiAK
IHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNT
RVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKIAogICAg
IFJlZlB0cjxNZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KCkpOwogICAgIG1fdmFsdWUgPSBNZXRlclZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKaW5k
ZXggMGMyMzcyNTgxZjc5YWZmNGRhYzU0OGEwYmE3ZTQ0YzU2YWE5YjVmMC4uZWQ2OTUwYzNmNzky
MDUzODViMTk0Mzk5NjFiMDc2YjFmZDA1MjNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9ncmVzc0VsZW1lbnQuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgdm9pZCBIVE1MUHJvZ3Jl
c3NFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKQogCiB2b2lkIEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghc2hhZG93Um9vdCgp
KTsKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CiAKICAgICBSZWZQdHI8UHJvZ3Jlc3NC
YXJFbGVtZW50PiBiYXIgPSBQcm9ncmVzc0JhckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsK
ICAgICBtX3ZhbHVlID0gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCA2YmM2ZWFj
NjYwNTcxZjU2ZTk3NTBjNzZjZDE3YjllZDY1NTkwYjg2Li5lMjk1N2IyMWVjZWVmZTQ2OTNiZjlk
YWM0YTZjN2EwM2MwZWEwZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dW1tYXJ5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVs
ZW1lbnQuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlclN1bW1hcnkuaCIK
LQogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTc0LDcgKzc0LDcgQEAgUmVuZGVyT2JqZWN0KiBI
VE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVu
ZGVyU3R5bGUKIAogdm9pZCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KQogewotICAgIEFTU0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jv
b3QoKSk7CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFkb3dSb290OjpjcmVhdGUo
dGhpcywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KTsKICAgICByb290
LT5hcHBlbmRDaGlsZChEZXRhaWxzTWFya2VyQ29udHJvbDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKICAgICByb290LT5hcHBlbmRDaGlsZChTdW1tYXJ5
Q29udGVudEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwg
dHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRl
eCAxM2NiM2VjMzg2ZGE5ZWU3ZGI4YzY5ODQ5ZDQ3NDM0YWNlYzY0ZTFkLi41OWNlODBlMjllODEw
YWQ0MDhjMTU4MmIxN2RlNTIwZmE2NWIxYjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oIgogI2luY2x1ZGUg
IlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlRl
eHQuaCIKICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCIKICNpbmNsdWRlICJU
ZXh0SXRlcmF0b3IuaCIKQEAgLTg0LDcgKzg1LDcgQEAgUGFzc1JlZlB0cjxIVE1MVGV4dEFyZWFF
bGVtZW50PiBIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYK
IAogdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAg
ICBBU1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOwog
ICAgIFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9vdDo6Y3JlYXRlKHRoaXMsIFNo
YWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7CiAgICAgcm9vdC0+YXBwZW5k
Q2hpbGQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFT
U0VSVF9OT19FWENFUFRJT04pOwogfQpAQCAtMjkzLDcgKzI5NCw3IEBAIFN0cmluZyBIVE1MVGV4
dEFyZWFFbGVtZW50OjpzYW5pdGl6ZVVzZXJJbnB1dFZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9z
ZWRWYWx1ZSwKIAogSFRNTEVsZW1lbnQqIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmlubmVyVGV4dEVs
ZW1lbnQoKSBjb25zdAogewotICAgIE5vZGUqIG5vZGUgPSBzaGFkb3dSb290KCktPmZpcnN0Q2hp
bGQoKTsKKyAgICBOb2RlKiBub2RlID0gc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9v
dCgpLT5maXJzdENoaWxkKCk7CiAgICAgQVNTRVJUKCFub2RlIHx8IG5vZGUtPmhhc1RhZ05hbWUo
ZGl2VGFnKSk7CiAgICAgcmV0dXJuIHRvSFRNTEVsZW1lbnQobm9kZSk7CiB9CkBAIC00NzAsNyAr
NDcxLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQo
KQogICAgIFN0cmluZyBwbGFjZWhvbGRlclRleHQgPSBzdHJpcHBlZFBsYWNlaG9sZGVyKCk7CiAg
ICAgaWYgKHBsYWNlaG9sZGVyVGV4dC5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1fcGxhY2Vo
b2xkZXIpIHsKLSAgICAgICAgICAgIHNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9wbGFjZWhv
bGRlci5nZXQoKSwgZWMpOworICAgICAgICAgICAgc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hh
ZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdldCgpLCBlYyk7CiAgICAgICAg
ICAgICBBU1NFUlQoIWVjKTsKICAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIuY2xlYXIoKTsKICAg
ICAgICAgfQpAQCAtNDc5LDcgKzQ4MCw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6dXBk
YXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBpZiAoIW1fcGxhY2Vob2xkZXIpIHsKICAgICAgICAg
bV9wbGFjZWhvbGRlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAg
ICAgIG1fcGxhY2Vob2xkZXItPnNldFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LWlucHV0LXBsYWNl
aG9sZGVyIik7Ci0gICAgICAgIHNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vob2xk
ZXIsIHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5uZXh0U2libGluZygpLCBlYyk7CisgICAg
ICAgIHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1f
cGxhY2Vob2xkZXIsIHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RD
aGlsZCgpLT5uZXh0U2libGluZygpLCBlYyk7CiAgICAgICAgIEFTU0VSVCghZWMpOwogICAgIH0K
ICAgICBtX3BsYWNlaG9sZGVyLT5zZXRJbm5lclRleHQocGxhY2Vob2xkZXJUZXh0LCBlYyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggODAwYzIxY2ZmODkyOWMwN2IzZTY5ZGRkMjAw
ZTAwODQzMDI5NTU2Ny4uMTUyZWY3NGUzZTk2NjYzMDJmYTg0ZGEyNGQ5ODI1ZTdkMDExN2QzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUg
IlJlc2V0SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiU2VhcmNoSW5wdXRUeXBlLmgiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAi
U3VibWl0SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiVGVsZXBob25lSW5wdXRUeXBlLmgiCiAjaW5j
bHVkZSAiVGV4dElucHV0VHlwZS5oIgpAQCAtMzc4LDggKzM3OSwxMyBAQCB2b2lkIElucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAKIHZvaWQgSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93
U3VidHJlZSgpCiB7Ci0gICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50KCktPnNoYWRv
d1Jvb3QoKSkKLSAgICAgICAgcm9vdC0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsKKyAgICBpZiAoIWVs
ZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoU2hh
ZG93Um9vdCogcm9vdCA9IGVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93
Um9vdCgpKSB7CisgICAgICAgIHdoaWxlIChyb290LT5oYXNDaGlsZE5vZGVzKCkpCisgICAgICAg
ICAgICByb290LT5yZW1vdmVDaGlsZChyb290LT5maXJzdENoaWxkKCkpOworICAgIH0KIH0KIAog
ZG91YmxlIElucHV0VHlwZTo6cGFyc2VUb0RvdWJsZShjb25zdCBTdHJpbmcmLCBkb3VibGUgZGVm
YXVsdFZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRl
eCAxNDc0MTg1NjJiNmIyZGYwZWQ3NTljNDBiNWI2ZTVlYjQxZGUzNmM5Li5hMTc0Y2U3YWYzMWU5
NzNlNzRkNGMyOTg2ZTA0ZGFmZGEyNTY4ODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5w
dXRUeXBlLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlclNsaWRlci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
KyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlNsaWRlclRodW1iRWxlbWVu
dC5oIgogI2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogI2luY2x1ZGUgPGxpbWl0cz4KQEAgLTE1Nyw3
ICsxNTgsMTAgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VEb3duRXZlbnQoTW91
c2VFdmVudCogZXZlbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIE5vZGUqIHRhcmdldE5vZGUg
PSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpOwotICAgIGlmIChldmVudC0+YnV0dG9uKCkgIT0g
TGVmdEJ1dHRvbiB8fCAhdGFyZ2V0Tm9kZSB8fCAodGFyZ2V0Tm9kZSAhPSBlbGVtZW50KCkgJiYg
IXRhcmdldE5vZGUtPmlzRGVzY2VuZGFudE9mKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKSkpCisg
ICAgaWYgKGV2ZW50LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9uIHx8ICF0YXJnZXROb2RlKQorICAg
ICAgICByZXR1cm47CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAg
ICBpZiAodGFyZ2V0Tm9kZSAhPSBlbGVtZW50KCkgJiYgIXRhcmdldE5vZGUtPmlzRGVzY2VuZGFu
dE9mKGVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIFNsaWRlclRodW1iRWxlbWVudCogdGh1bWIgPSBzbGlkZXJUaHVt
YkVsZW1lbnRPZihlbGVtZW50KCkpOwogICAgIGlmICh0YXJnZXROb2RlID09IHRodW1iKQpAQCAt
MjMzLDcgKzIzNyw3IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChL
ZXlib2FyZEV2ZW50KiBldmVudCkKIAogdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKyAgICBB
U1NFUlQoZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpOwogCiAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4g
dHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKQEAgLTI0Myw3ICsyNDcs
NyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGNvbnRhaW5lciA9IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CiAgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZCh0cmFjay5yZWxlYXNlKCks
IGVjKTsKICAgICBjb250YWluZXItPmFwcGVuZENoaWxkKFRyYWNrTGltaXRlckVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCksIGVjKTsKLSAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5k
Q2hpbGQoY29udGFpbmVyLnJlbGVhc2UoKSwgZWMpOworICAgIGVsZW1lbnQoKS0+c2hhZG93Um9v
dExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChjb250YWluZXIucmVsZWFz
ZSgpLCBlYyk7CiB9CiAKIFJlbmRlck9iamVjdCogUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IDU2ZTU1ZDM4OGUzNzc4ZjZkNTM5
NjIxYjIxOGIyYmY5NGZjMzc1OTQuLmE4YzA5NDZlNWNjYTJlZWY5ZWE1MDAwZDJiNmQyZThmNjlk
OWE0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAg
LTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCIK
ICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNs
dWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50
cy5oIgogI2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpA
QCAtMTg5LDcgKzE5MCw3IEBAIGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjpuZWVkc0NvbnRhaW5l
cigpIGNvbnN0CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVl
KCkKIHsKLSAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOworICAgIEFTU0VSVChl
bGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CiAKICAgICBBU1NFUlQoIW1faW5uZXJUZXh0KTsK
ICAgICBBU1NFUlQoIW1faW5uZXJCbG9jayk7CkBAIC0yMDMsMTEgKzIwNCwxMSBAQCB2b2lkIFRl
eHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CiAgICAgbV9pbm5lclRleHQgPSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgaWYgKCFjcmVhdGVzQ29udGFpbmVyKSB7Ci0gICAgICAg
IGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChtX2lubmVyVGV4dCwgZWMpOwor
ICAgICAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+
YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKTsKKyAg
ICBTaGFkb3dSb290KiBzaGFkb3dSb290ID0gZWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgpLT5v
bGRlc3RTaGFkb3dSb290KCk7CiAgICAgbV9jb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKICAgICBtX2NvbnRhaW5lci0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJr
aXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVyIik7CiAgICAgc2hhZG93Um9vdC0+YXBw
ZW5kQ2hpbGQobV9jb250YWluZXIsIGVjKTsKQEAgLTM2OSw3ICszNzAsNyBAQCB2b2lkIFRleHRG
aWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBpZiAoIW1fcGxhY2Vo
b2xkZXIpIHsKICAgICAgICAgbV9wbGFjZWhvbGRlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUo
ZWxlbWVudCgpLT5kb2N1bWVudCgpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0U2hhZG93
UHNldWRvSWQoIi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiKTsKLSAgICAgICAgZWxlbWVudCgp
LT5zaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9sZGVyLCBtX2NvbnRhaW5lciA/
IG1fY29udGFpbmVyLT5uZXh0U2libGluZygpIDogaW5uZXJUZXh0RWxlbWVudCgpLT5uZXh0U2li
bGluZygpLCBlYyk7CisgICAgICAgIGVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0
U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgbV9jb250YWluZXIgPyBt
X2NvbnRhaW5lci0+bmV4dFNpYmxpbmcoKSA6IGlubmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNpYmxp
bmcoKSwgZWMpOwogICAgICAgICBBU1NFUlQoIWVjKTsKICAgICB9CiAgICAgbV9wbGFjZWhvbGRl
ci0+c2V0SW5uZXJUZXh0KHBsYWNlaG9sZGVyVGV4dCwgZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCBiYzNjNDU0ODlkZmI4NjJhMTRiYjRlNTMwZTcw
NGI5YThjZGM2NjhjLi5iYjhhMTk1Yjg0YzJiZTBmMTAyYmVjYTM3M2VjNjVkZmE5MWIzZmNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcApAQCAtNDQsNiArNDQs
NyBAQAogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5j
bHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTE4Nyw3ICsx
ODgsNyBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJibGVUcmVlKFRpbWVyPFZh
bGlkYXRpb25NZXNzYWdlPiopCiAgICAgICAgIG1fbWVzc2FnZUJvZHkgPSAwOwogICAgICAgICBI
VE1MRWxlbWVudCogaG9zdCA9IHRvSFRNTEVsZW1lbnQobV9lbGVtZW50KTsKICAgICAgICAgRXhj
ZXB0aW9uQ29kZSBlYzsKLSAgICAgICAgaG9zdC0+c2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZCht
X2J1YmJsZS5nZXQoKSwgZWMpOworICAgICAgICBob3N0LT5zaGFkb3dSb290TGlzdCgpLT5vbGRl
c3RTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBlYyk7CiAgICAgICAg
IG1fYnViYmxlID0gMDsKICAgICB9CiAgICAgbV9tZXNzYWdlID0gU3RyaW5nKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCAz
MTlhMTFlODAyNTJmYWMyODZiZTg0MGQyYmY3NjM1NDBmNThlZWI3Li5hYmY1YjM1OGI1NTQ5OWRl
YmI5MWU1NzI3MzkwYjQwOThkMzM3ZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNo
YWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlN0ZXBS
YW5nZS5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKQEAgLTY2LDcgKzY3LDcgQEAg
aW5saW5lIHN0YXRpYyBib29sIGhhc1ZlcnRpY2FsQXBwZWFyYW5jZShIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dCkKIFNsaWRlclRodW1iRWxlbWVudCogc2xpZGVyVGh1bWJFbGVtZW50T2YoTm9kZSog
bm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7Ci0gICAgU2hhZG93Um9vdCogc2hhZG93ID0gbm9k
ZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93Um9vdCgpOworICAgIFNoYWRvd1Jvb3QqIHNoYWRv
dyA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRv
d1Jvb3QoKTsKICAgICBBU1NFUlQoc2hhZG93KTsKICAgICBOb2RlKiB0aHVtYiA9IHNoYWRvdy0+
Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCktPmZpcnN0Q2hpbGQoKTsKICAgICBBU1NFUlQodGh1
bWIpOwpAQCAtMTQxLDcgKzE0Miw3IEBAIHZvaWQgUmVuZGVyU2xpZGVyQ29udGFpbmVyOjpsYXlv
dXQoKQogICAgIExlbmd0aCBpbnB1dEhlaWdodCA9IGlucHV0LT5yZW5kZXJlcigpLT5zdHlsZSgp
LT5oZWlnaHQoKTsKICAgICBSZW5kZXJPYmplY3QqIHRyYWNrUmVuZGVyZXIgPSBub2RlKCktPmZp
cnN0Q2hpbGQoKS0+cmVuZGVyZXIoKTsKICAgICBpZiAoIWlzVmVydGljYWwgJiYgaW5wdXQtPnJl
bmRlcmVyKCktPmlzU2xpZGVyKCkgJiYgIWlucHV0SGVpZ2h0LmlzRml4ZWQoKSAmJiAhaW5wdXRI
ZWlnaHQuaXNQZXJjZW50KCkpIHsKLSAgICAgICAgUmVuZGVyT2JqZWN0KiB0aHVtYlJlbmRlcmVy
ID0gaW5wdXQtPnNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCktPmZpcnN0
Q2hpbGQoKS0+cmVuZGVyZXIoKTsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiB0aHVtYlJlbmRlcmVy
ID0gaW5wdXQtPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGls
ZCgpLT5maXJzdENoaWxkKCktPmZpcnN0Q2hpbGQoKS0+cmVuZGVyZXIoKTsKICAgICAgICAgaWYg
KHRodW1iUmVuZGVyZXIpIHsKICAgICAgICAgICAgIHN0eWxlKCktPnNldEhlaWdodCh0aHVtYlJl
bmRlcmVyLT5zdHlsZSgpLT5oZWlnaHQoKSk7CiAgICAgICAgICAgICBpZiAodHJhY2tSZW5kZXJl
cikKQEAgLTM1NSw3ICszNTYsOCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFRyYWNrTGltaXRlckVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIFRyYWNrTGltaXRlckVsZW1lbnQqIHRyYWNr
TGltaXRlckVsZW1lbnRPZihOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKLSAgICBT
aGFkb3dSb290KiBzaGFkb3cgPSBub2RlLT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3dSb290KCk7
CisgICAgQVNTRVJUKG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7Cisg
ICAgU2hhZG93Um9vdCogc2hhZG93ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93Um9v
dExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIEFTU0VSVChzaGFkb3cpOwogICAgIE5v
ZGUqIGxpbWl0ZXIgPSBzaGFkb3ctPmZpcnN0Q2hpbGQoKS0+bGFzdENoaWxkKCk7CiAgICAgQVNT
RVJUKGxpbWl0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4
IDUxNDI2YTMwODYyNGI5ODU4OGIwZTA2ZjkxY2I2ZDY0ODFhYzhmOGEuLmFhOThjMDI0OWZiMDQ0
OTQ0NzdkNTQxNjRjMzA5NWRlMjM2OTJmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1
ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb24uaCIKICNp
bmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIiAvLyBGb3IgZmlyc3RQ
b3NpdGlvbkluT3JCZWZvcmVOb2RlCkBAIC0xNTQsNyArMTU1LDcgQEAgdm9pZCBGb2N1c0NvbnRy
b2xsZXI6OnNldEZvY3VzZWQoYm9vbCBmb2N1c2VkKQogCiBzdGF0aWMgaW5saW5lIFNoYWRvd1Jv
b3QqIHNoYWRvd1Jvb3QoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50
Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCkgOiAwOworICAgIHJldHVybiBu
b2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCkg
PyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0U2hhZG93Um9vdCgp
IDogMDsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGlzVHJlZVNjb3BlT3duZXIoTm9kZSogbm9k
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuY3BwCmluZGV4IGExYWUxNWI1YzljMDA1NDExZDMxNjIyMTUyNjkwOTdkODk0ZTAwN2Iu
Ljg0MzczMDMyZDlmYmJiNGQ4YjY0OGE3ZDg0MmNmMGFjMGU2MGE5M2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJU
aGVtZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlz
dC5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24uaCIK
ICNpbmNsdWRlIDxtYXRoLmg+CkBAIC0yMTIsOSArMjEzLDkgQEAgSFRNTElucHV0RWxlbWVudCog
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnVwbG9hZEJ1dHRvbigpIGNvbnN0CiB7CiAgICAgSFRN
TElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9k
ZSgpKTsKIAotICAgIEFTU0VSVChpbnB1dC0+c2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoaW5w
dXQtPmhhc1NoYWRvd1Jvb3QoKSk7CiAKLSAgICBOb2RlKiBidXR0b25Ob2RlID0gaW5wdXQtPnNo
YWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOworICAgIE5vZGUqIGJ1dHRvbk5vZGUgPSBpbnB1dC0+
c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CiAgICAg
cmV0dXJuIGJ1dHRvbk5vZGUgJiYgYnV0dG9uTm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIGJ1dHRv
bk5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpID8gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVu
dCo+KGJ1dHRvbk5vZGUpIDogMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5j
cHAKaW5kZXggOThiOGY5MTNmYTE2MzJiNzE3Mzk2NDIwZWQzZWU2ZDgwZGMyYzljNC4uMTIyZDdj
NDNjYzJkMGIxYTU0ZTdhYWFjNGI3MzVkNGFmMDg4ZDFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VFJlZkVsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZHSW5s
aW5lVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50SW5zdGFuY2UuaCIKICNpbmNsdWRlICJTVkdO
YW1lcy5oIgpAQCAtMTU5LDEwICsxNjAsMTIgQEAgdm9pZCBTVkdUUmVmRWxlbWVudDo6dXBkYXRl
UmVmZXJlbmNlZFRleHQoKQogICAgIGlmICh0YXJnZXQtPnBhcmVudE5vZGUoKSkKICAgICAgICAg
dGV4dENvbnRlbnQgPSB0YXJnZXQtPnRleHRDb250ZW50KCk7CiAKLSAgICBpZiAoIXNoYWRvd1Jv
b3QoKS0+Zmlyc3RDaGlsZCgpKQotICAgICAgICBzaGFkb3dSb290KCktPmFwcGVuZENoaWxkKFNW
R1NoYWRvd1RleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0Q29udGVudCksIEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkpOworICAgIFNoYWRvd1Jvb3Qq
IHJvb3QgPSBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCk7CisgICAgaWYgKCFy
b290LT5maXJzdENoaWxkKCkpCisgICAgICAgIHJvb3QtPmFwcGVuZENoaWxkKFNWR1NoYWRvd1Rl
eHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0Q29udGVudCksIEFTU0VSVF9OT19FWENFUFRJT04p
OwogICAgIGVsc2UKLSAgICAgICAgc2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCktPnNldFRleHRD
b250ZW50KHRleHRDb250ZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgcm9vdC0+
Zmlyc3RDaGlsZCgpLT5zZXRUZXh0Q29udGVudCh0ZXh0Q29udGVudCwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CiB9CiAKIGJvb2wgU1ZHVFJlZkVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IDEyNjQ3ZGZlMzE3OTM2ODM5ZjkxMzM0Yzg4NjVkNzRjNzc2Y2VlZTguLmViM2E1
YjdiMDUzMTkxNDRkZTQ0NzFkZmEwZmI1ZjBlZDhlODdkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNU
ZXh0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisj
aW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTcGVsbENoZWNrZXIuaCIKICNp
bmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKIApAQCAtMTkzLDIwICsxOTQsNDMgQEAgSW50ZXJuYWxz
OjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6OmVuc3VyZVNo
YWRvd1Jvb3QoRWxlbWUKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgaWYgKFNoYWRv
d1Jvb3QqIHJvb3QgPSBob3N0LT5zaGFkb3dSb290KCkpCi0gICAgICAgIHJldHVybiByb290Owor
ICAgIGlmIChob3N0LT5oYXNTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVybiBob3N0LT5zaGFk
b3dSb290TGlzdCgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKIAogICAgIHJldHVybiBTaGFkb3dS
b290OjpjcmVhdGUoaG9zdCwgZWMpLmdldCgpOwogfQogCiBJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJ
ZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVybmFsczo6c2hhZG93Um9vdChFbGVtZW50KiBo
b3N0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICAvLyBGSVhNRTogSW50ZXJuYWxzOjpzaGFk
b3dSb290KCkgaW4gdGVzdHMgc2hvdWxkIGJlIGNvbnZlcnRlZCB0byB5b3VuZ2VzdFNoYWRvd1Jv
b3QoKSBvciBvbGRlc3RTaGFkb3dSb290KCkuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4NDY1CisgICAgcmV0dXJuIHlvdW5nZXN0U2hhZG93Um9vdCho
b3N0LCBlYyk7Cit9CisKK0ludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9y
Tm9kZSogSW50ZXJuYWxzOjp5b3VuZ2VzdFNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0
aW9uQ29kZSYgZWMpCit7CiAgICAgaWYgKCFob3N0KSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1cm4gaG9zdC0+
c2hhZG93Um9vdCgpOworICAgIGlmICghaG9zdC0+aGFzU2hhZG93Um9vdCgpKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIHJldHVybiBob3N0LT5zaGFkb3dSb290TGlzdCgpLT55b3VuZ2VzdFNo
YWRvd1Jvb3QoKTsKK30KKworSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVk
T3JOb2RlKiBJbnRlcm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0
aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFob3N0KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAoIWhvc3QtPmhh
c1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gaG9zdC0+c2hh
ZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogfQogCiB2b2lkIEludGVybmFsczo6
cmVtb3ZlU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDQzOWRjNzVjNmUxNWZiY2FlODJjNjdjYWZlNzlm
MGIyMWFmZGJlMGUuLmQzOGQ4ODBhMmY4M2I5ODliODk4MzNmY2ZlMDQ0NTI1NzUxNzU4YWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNjYsNiArNjYsOCBAQCBwdWJsaWM6CiAj
ZW5kaWYKICAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBlbnN1cmVTaGFk
b3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTaGFkb3dSb290SWZT
aGFkb3dET01FbmFibGVkT3JOb2RlKiBzaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiB5b3VuZ2Vz
dFNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYpOworICAgIFNoYWRvd1Jv
b3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIG9sZGVzdFNoYWRvd1Jvb3QoRWxlbWVudCogaG9z
dCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgcmVtb3ZlU2hhZG93Um9vdChFbGVtZW50KiBo
b3N0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgRWxlbWVudCogaW5jbHVkZXJGb3IoTm9kZSosIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICBTdHJpbmcgc2hhZG93UHNldWRvSWQoRWxlbWVudCosIEV4Y2Vw
dGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA5YmYwNTc1
MWQ5YjZhMmY0YTgxZjA3MDk5YzkzYzdhNmQzYThhMDUzLi43NTY3NmY2YWEyYjc5MmQ2NTBkYjVi
ZjcxMWFlODQ5NDgxNmI3Nzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBA
IC0zNSw5ICszNSwxMyBAQCBtb2R1bGUgd2luZG93IHsKICNpZiBkZWZpbmVkKEVOQUJMRV9TSEFE
T1dfRE9NKQogICAgICAgICBTaGFkb3dSb290IGVuc3VyZVNoYWRvd1Jvb3QoaW4gRWxlbWVudCBo
b3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFNoYWRvd1Jvb3Qgc2hhZG93Um9v
dChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgU2hhZG93
Um9vdCB5b3VuZ2VzdFNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgIFNoYWRvd1Jvb3Qgb2xkZXN0U2hhZG93Um9vdChpbiBFbGVtZW50IGhv
c3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbHNlCiAgICAgICAgIE5vZGUgZW5zdXJlU2hh
ZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
Tm9kZSBzaGFkb3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24pOwor
ICAgICAgICBOb2RlIHlvdW5nZXN0U2hhZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgTm9kZSBvbGRlc3RTaGFkb3dSb290KGluIEVsZW1lbnQg
aG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogI2VuZGlmCiAgICAgICAgIEVsZW1lbnQgaW5j
bHVkZXJGb3IoaW4gTm9kZSBub2RlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZv
aWQgcmVtb3ZlU2hhZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9X
ZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRleCA3NjgzMGUwMWM5ZGM0MzYxNTVmMjJjZGNmYjVi
NjM4NTgwYTlhZjM4Li5hZWQ5NGU5M2Q3ZjkwNDM5YWRmYjRhMzhlYjc0YTRlM2U5NjM2Mjk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0xODcsNyArMTg3LDYgQEAgRVhQT1JUUwogICAgICAg
ICA/c2V0dGluZ3NARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgogICAgICAg
ICA/c2V0dGluZ3NARnJhbWVAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgogICAgICAgICA/
c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZUBTZXR0aW5nc0BXZWJDb3JlQEBR
QUVYX05AWgotICAgICAgICA/c2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFCRVBBVlNoYWRv
d1Jvb3RAMkBYWgogICAgICAgICA/c3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJD
b3JlQEBRQkVBQlZTdHJpbmdAV1RGQEBYWgogICAgICAgICA/dG9Eb2N1bWVudEBXZWJDb3JlQEBZ
QVBBVkRvY3VtZW50QDFAVkpTVmFsdWVASlNDQEBAWgogICAgICAgICA/dG9FbGVtZW50QFdlYkNv
cmVAQFlBUEFWRWxlbWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
Q0ZMaXRlLmRlZgppbmRleCAzYTkyN2MyN2NlZTY5ZmNhYzJhNDY2ODZkODcxNDBkMjEzYzMyMzA1
Li42NjhkNzVmZTc1YjY4ZDcyZDBmMGY4YmY4OTA4MDI4NDJmYjYzM2FlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xLDMgKzEsNCBAQAorCiBFWFBPUlRTCiAgICAgICAg
IERsbEdldENsYXNzT2JqZWN0ICAgUFJJVkFURQogICAgICAgICBEbGxDYW5VbmxvYWROb3cgICAg
IFBSSVZBVEUKQEAgLTE4MSw3ICsxODIsNiBAQCBFWFBPUlRTCiAgICAgICAgID9zZXR0aW5nc0BE
b2N1bWVudEBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXR0aW5nc0BG
cmFtZUBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXRGaXhlZEVsZW1l
bnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lQFNldHRpbmdzQFdlYkNvcmVAQFFBRVhfTkBaCi0gICAg
ICAgID9zaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUJFUEFWU2hhZG93Um9vdEAyQFhaCiAg
ICAgICAgID9zdWdnZXN0ZWRWYWx1ZUBIVE1MSW5wdXRFbGVtZW50QFdlYkNvcmVAQFFCRUFCVlN0
cmluZ0BXVEZAQFhaCiAgICAgICAgID90b0RvY3VtZW50QFdlYkNvcmVAQFlBUEFWRG9jdW1lbnRA
MUBWSlNWYWx1ZUBKU0NAQEBaCiAgICAgICAgID90b0VsZW1lbnRAV2ViQ29yZUBAWUFQQVZFbGVt
ZW50QDFAVkpTVmFsdWVASlNDQEBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1i
b2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggNWU5ZWIz
NGNlNTQ3MjExODIxNjM4NDk4NGRmMDRkYWMzZDE1ZjA4ZS4uODVmMTc3NDg3ZGJmYzUwNmYzOGM0
NjZmZWRmNjBjZjUxZTk0OWIxZiAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xz
LmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC03OCw3ICs3
OCw2IEBAIF9aTks3V2ViQ29yZTIwQ2FjaGVkUmVzb3VyY2VMb2FkZXIxMWlzUHJlbG9hZGVkRVJL
TjNXVEY2U3RyaW5nRTsKIF9aTks3V2ViQ29yZTI2SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQy
MWxhc3RDaGFuZ2VXYXNVc2VyRWRpdEV2OwogX1pOSzdXZWJDb3JlNUZyYW1lOHNldHRpbmdzRXY7
CiBfWk5LN1dlYkNvcmU2SlNOb2RlMjFwdXNoRXZlbnRIYW5kbGVyU2NvcGVFUE4zSlNDOUV4ZWNT
dGF0ZUVQTlMxXzE0U2NvcGVDaGFpbk5vZGVFOwotX1pOSzdXZWJDb3JlN0VsZW1lbnQxMHNoYWRv
d1Jvb3RFdjsKIF9aTks3V2ViQ29yZTdFbGVtZW50MzFudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNo
aWxkcmVuRXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ0cGFnZUV2OwogX1pOSzdXZWJDb3JlOERv
Y3VtZW50OHNldHRpbmdzRXY7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>