<?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>79629</bug_id>
          
          <creation_ts>2012-02-26 23:10:09 -0800</creation_ts>
          <short_desc>Color input type should be clickable through keyboard</short_desc>
          <delta_ts>2012-02-27 02:23:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>rakuco</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>565361</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-02-26 23:10:09 -0800</bug_when>
    <thetext>Pressing space/return keys should trigger a click on a focused color input element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565370</commentid>
    <comment_count>1</comment_count>
      <attachid>128963</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-02-26 23:20:12 -0800</bug_when>
    <thetext>Created attachment 128963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565385</commentid>
    <comment_count>2</comment_count>
      <attachid>128963</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-26 23:36:04 -0800</bug_when>
    <thetext>Comment on attachment 128963
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * CMakeLists.txt: Added BaseClickableWithKeyInputType.cpp

Please summarize the code change.
e.g. Introduce BaseClickableWithKeyInputType, and ColorInputType inherits it because ....

&gt; Source/WebCore/html/BaseClickableWithKeyInputType.cpp:3
&gt; + * Copyright (C) 2012 Google Inc. All rights reserved.
&gt; + *

This file contains the code of BaseButtonInpuType.cpp.  You have to respect the copyright notice of the original BaseButtonInputType.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565404</commentid>
    <comment_count>3</comment_count>
      <attachid>128969</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-02-26 23:50:12 -0800</bug_when>
    <thetext>Created attachment 128969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565405</commentid>
    <comment_count>4</comment_count>
      <attachid>128963</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-02-26 23:51:01 -0800</bug_when>
    <thetext>Comment on attachment 128963
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        * CMakeLists.txt: Added BaseClickableWithKeyInputType.cpp
&gt; 
&gt; Please summarize the code change.
&gt; e.g. Introduce BaseClickableWithKeyInputType, and ColorInputType inherits it because ....

Done.

&gt;&gt; Source/WebCore/html/BaseClickableWithKeyInputType.cpp:3
&gt;&gt; + *
&gt; 
&gt; This file contains the code of BaseButtonInpuType.cpp.  You have to respect the copyright notice of the original BaseButtonInputType.cpp.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565415</commentid>
    <comment_count>5</comment_count>
      <attachid>128969</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-26 23:56:40 -0800</bug_when>
    <thetext>Comment on attachment 128969
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565500</commentid>
    <comment_count>6</comment_count>
      <attachid>128969</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 02:23:40 -0800</bug_when>
    <thetext>Comment on attachment 128969
Patch

Clearing flags on attachment: 128969

Committed r108976: &lt;http://trac.webkit.org/changeset/108976&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565501</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 02:23:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128963</attachid>
            <date>2012-02-26 23:20:12 -0800</date>
            <delta_ts>2012-02-26 23:51:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79629-20120227162010.patch</filename>
            <type>text/plain</type>
            <size>25017</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4OTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI4ZTgxMGYyNjIxY2M5
M2ZlYWU0ODM5ZjY4YjRiNGNiNTVjYzY2OC4uZTdiNDIyNmE2MWM1YzUzMGVkMzE5MjQ0MGNhODBm
MDViMGM5NzJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTAyLTI2ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIENvbG9yIGlucHV0IHR5
cGUgc2hvdWxkIGJlIGNsaWNrYWJsZSB0aHJvdWdoIGtleWJvYXJkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYyOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIEJh
c2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmNwcAorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06IEFkZGVkIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLntjcHAsaH0KKyAgICAg
ICAgKiBUYXJnZXQucHJpOiBBZGRlZCBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS57Y3Bw
LGh9CisgICAgICAgICogV2ViQ29yZS5neXBpOiBBZGRlZCBCYXNlQ2xpY2thYmxlV2l0aEtleUlu
cHV0VHlwZS57Y3BwLGh9CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
IEFkZGVkIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLntjcHAsaH0KKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIEJhc2VDbGlja2FibGVXaXRo
S2V5SW5wdXRUeXBlLntjcHAsaH0KKyAgICAgICAgKiBodG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUu
Y3BwOgorICAgICAgICAqIGh0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6QmFzZUJ1dHRvbklucHV0VHlwZTo6QmFzZUJ1dHRvbklucHV0VHlwZSk6IEluaGVyaXRz
IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlIG5vdy4KKyAgICAgICAgKEJhc2VCdXR0b25J
bnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHA6IENo
YW5nZWQgY29tbWVudC4KKyAgICAgICAgKiBodG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNsaWNr
YWJsZVdpdGhLZXlJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudCk6IE1vdmVkIGZyb20gQmFz
ZUJ1dHRvbklucHV0VHlwZQorICAgICAgICAoV2ViQ29yZTo6QmFzZUNsaWNrYWJsZVdpdGhLZXlJ
bnB1dFR5cGU6OmhhbmRsZUtleXByZXNzRXZlbnQpOiBNb3ZlZCBmcm9tIEJhc2VCdXR0b25JbnB1
dFR5cGUKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjpo
YW5kbGVLZXl1cEV2ZW50KTogTW92ZWQgZnJvbSBCYXNlQnV0dG9uSW5wdXRUeXBlCisgICAgICAg
IChXZWJDb3JlOjpCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9u
KTogTW92ZWQgZnJvbSBCYXNlQnV0dG9uSW5wdXRUeXBlCisgICAgICAgICogaHRtbC9CYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChC
YXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSk6IElucHV0IHR5cGUgdGhhdCBjYW4gYmUgY2xp
Y2tlZCBieSBwcmVzc2luZyBzcGFjZS9yZXR1cm4ga2V5cy4KKyAgICAgICAgKFdlYkNvcmU6OkJh
c2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjpCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlw
ZSk6CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6
Q29sb3JJbnB1dFR5cGU6OkNvbG9ySW5wdXRUeXBlKTogSW5oZXJpdHMgQmFzZUNsaWNrYWJsZVdp
dGhLZXlJbnB1dFR5cGUgbm93LgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpGaWxlSW5wdXRUeXBlKToKKyAgICAgICAg
KiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEZpbGVJbnB1dFR5cGUpOiBJbmhlcml0
cyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSBub3cuCisgICAgICAgICogaHRtbC9SYW5n
ZUlucHV0VHlwZS5jcHA6IENoYW5nZWQgY29tbWVudC4KKyAgICAgICAgKFdlYkNvcmUpOgorCiAy
MDEyLTAyLTI2ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBbRUZMXSBJbXBsZW1lbnRhdGlvbiBvZiBHcmFwaGljc0NvbnRleHQzRCBmb3IgRUZMIHBvcnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODlhNzUyZTliNWQ0YTllMTk3MzlkMmZlMDFhZGI5NDU2
Y2I2YTJjMi4uNTZhY2EwMmYzMWFkNzE5NDk0NTFjZWM3ZjhlNTAwZGU5M2I5ZjIxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTcxOCw2ICs3MTgsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAK
ICAgICBodG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9CYXNlQ2hlY2thYmxl
SW5wdXRUeXBlLmNwcAorICAgIGh0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuY3Bw
CiAgICAgaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9CYXNlVGV4
dElucHV0VHlwZS5jcHAKICAgICBodG1sL0J1dHRvbklucHV0VHlwZS5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCmluZGV4IDNiZTU4ODllYjk5ZjFlYWVjYTg3NGI3ODFhNjgxMzI1Mjcy
Mzg0ZjIuLjZjNDkxNGQwNmZmOWZkZTJhMmI1Y2E0ZDRhMTZhOWM3ZDBkY2UwZmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjAxMCw2ICsyMDEwLDggQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuaCBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmggXAorCVNvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
VGV4dElucHV0VHlwZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNGUwY2Q4ZDIxM2YxNjY0OGQxNTM2
YTE3ZWNlYzllODJkZTJhMjBjMi4uNzRkYzNiY2JhYjkxZTcxMmQzMjI0ZWY1ZTE3OGY3ZmQ2M2Zh
Mjg5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC02OTMsNiArNjkzLDcgQEAgU09VUkNFUyArPSBcCiAgICAg
aGlzdG9yeS9QYWdlQ2FjaGUuY3BwIFwKICAgICBodG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3Bw
IFwKICAgICBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIFwKKyAgICBodG1sL0Jhc2VD
bGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9CYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwIFwKICAgICBodG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNwcCBcCiAgICAgaHRt
bC9CdXR0b25JbnB1dFR5cGUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5NjIzOGY2Njg1MWQ2
NTVmZGY5N2VjMTdlZTY3ODg5NDkyMjc2NzM1Li4xN2E3OTY1NjcyYjk4ZGMxZGNkYTY1YTgyYmVj
OTMyZjUyOGQxZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MjExLDYgKzUyMTEsOCBAQAogICAg
ICAgICAgICAgJ2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oJywKICAgICAgICAgICAgICdodG1s
L0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwJywKICAgICAgICAgICAgICdodG1sL0Jhc2VDaGVj
a2FibGVJbnB1dFR5cGUuaCcsCisgICAgICAgICAgICAnaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtl
eUlucHV0VHlwZS5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJ
bnB1dFR5cGUuaCcsCiAgICAgICAgICAgICAnaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwJywKICAgICAgICAgICAgICdodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oJywKICAg
ICAgICAgICAgICdodG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDA2YTc2NDUwN2FiNWFmODMyZGYw
YjI2MGExMjk5NDMzNTQ1OTZjZGYuLjAzZmM0Y2NiM2RhYjg3YzUwOGUwN2NlN2JjMWU0NzM1Mzhh
MDIzYWYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC01NTk0Niw2ICs1NTk0NiwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmNw
cCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU5NTJiMGNkNjAyMGVmMGZlODhkZWM4YmJh
YzA0NDhkY2U0NjdjYzkuLmU2YTYwM2MzOTY1ZTAyMTE1YjI4M2NkNWYxZWQ1YzQzMDExMjdiMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTU1MjksNiArNTUyOSw4IEBACiAJCUMxMDVEQTYyMEYzQUE2OEYwMDFERDQ0RiAvKiBU
ZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMTA1REE2MTBGM0FBNjhGMDAxREQ0NEYgLyogVGV4dEVuY29kaW5n
RGV0ZWN0b3JJQ1UuY3BwICovOyB9OwogCQlDMTA1REE2NDBGM0FBNkI4MDAxREQ0NEYgLyogVGV4
dEVuY29kaW5nRGV0ZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rv
ci5oICovOyB9OwogCQlDMzMwQTIyMzEzRUMxOTZCMDAwMEI0NUIgLyogQ29sb3JDaG9vc2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzMwQTIyMTEz
RUMxOTZCMDAwMEI0NUIgLyogQ29sb3JDaG9vc2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzMzRUU1QzQxNEZCNDk2MTAwMDIwOTVBIC8qIEJh
c2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzM0VFNUMyMTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZS5jcHAgKi87IH07CisJCUMzM0VFNUM1MTRGQjQ5NjEwMDAy
MDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzMzRUU1QzMxNEZCNDk2MTAwMDIwOTVBIC8q
IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmggKi87IH07CiAJCUMzN0NERUJEMTQ5RUYy
MDMwMDQyMDkwRCAvKiBDb2xvckNob29zZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzN0NERUJDMTQ5RUYyMDMwMDQyMDkwRCAvKiBDb2xv
ckNob29zZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlDNTBCNTYxNjEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTBCNTYxNDEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgKi87IH07CiAJCUM1MEI1NjE3MTIx
MTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTBCNTYxNTEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBT
ZXR0aW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xMjUwOSw2ICsxMjUxMSw4IEBACiAJCUMxMDVEQTYxMEYzQUE2OEYwMDFERDQ0RiAvKiBU
ZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RW5jb2RpbmdEZXRlY3Rv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMzMwQTIyMTEzRUMxOTZCMDAwMEI0
NUIgLyogQ29sb3JDaG9vc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
bG9yQ2hvb3Nlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMzNFRTVDMjE0RkI0
OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5
cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMzNFRTVDMzE0RkI0OTYxMDAw
MjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzM3Q0RFQkMxNDlFRjIwMzAwNDIwOTBEIC8qIENvbG9y
Q2hvb3NlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xvckNo
b29zZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUwQjU2MTQxMjEx
OUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gR3JvdXBTZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUM1MEI1NjE1MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyb3VwU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE2Njk2LDYgKzE2NzAwLDggQEAKIAkJCQkzNzlFNjFDNjEyNkNB
NUMzMDBCNjNFOEQgLyogQmFzZUJ1dHRvbklucHV0VHlwZS5oICovLAogCQkJCTM3OUU2MUM3MTI2
Q0E1QzMwMEI2M0U4RCAvKiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCAqLywKIAkJCQkzNzlF
NjFDODEyNkNBNUMzMDBCNjNFOEQgLyogQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oICovLAorCQkJ
CUMzM0VFNUMyMTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlw
ZS5jcHAgKi8sCisJCQkJQzMzRUU1QzMxNEZCNDk2MTAwMDIwOTVBIC8qIEJhc2VDbGlja2FibGVX
aXRoS2V5SW5wdXRUeXBlLmggKi8sCiAJCQkJRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU5Qzk1RkUxMjU1QjIzRjAwMDYy
M0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICovLAogCQkJCUY1NUIzRDc5MTI1MUYx
MkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi8sCkBAIC0yMTM0Myw2ICsyMTM0
OSw3IEBACiAJCQkJQjJDM0RBMjIwRDAwNkMxRDAwRUY2RjI2IC8qIEJhc2U2NC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzc5RTYxQ0ExMjZDQTVDNDAwQjYzRThEIC8qIEJhc2VCdXR0b25JbnB1dFR5
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3OUU2MUNDMTI2Q0E1QzQwMEI2M0U4RCAvKiBCYXNl
Q2hlY2thYmxlSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlDMzNFRTVDNTE0RkI0OTYx
MDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUY1OUM5NjAwMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREFFMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNl
VGV4dElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NDYyRDgxMDdBN0I0QzAwODU3
MTkzIC8qIEJlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDc5OCw2ICsyNDgw
NSw3IEBACiAJCQkJQjJDM0RBMjEwRDAwNkMxRDAwRUY2RjI2IC8qIEJhc2U2NC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzNzlFNjFDOTEyNkNBNUMzMDBCNjNFOEQgLyogQmFzZUJ1dHRvbklucHV0
VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzlFNjFDQjEyNkNBNUM0MDBCNjNFOEQgLyog
QmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMzNFRTVDNDE0
RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYy
NjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUIyM0EzMjcw
OUJCQTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAKaW5kZXgg
OWExNjE2ZmNlZDJiYzhjMzcxOTBkNmJmN2Q5N2JhNDI4Y2IxNzI5MS4uZjcxMTUwMTllNWQxMGYw
MDlhZTVjZmUxYzJkZWZlNTM5ZjEwMGQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VC
dXR0b25JbnB1dFR5cGUuY3BwCkBAIC00Nyw1NCArNDcsMTEgQEAgYm9vbCBCYXNlQnV0dG9uSW5w
dXRUeXBlOjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotdm9pZCBCYXNlQnV0dG9uSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3du
RXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCi17Ci0gICAgY29uc3QgU3RyaW5nJiBrZXkgPSBl
dmVudC0+a2V5SWRlbnRpZmllcigpOwotICAgIGlmIChrZXkgPT0gIlUrMDAyMCIpIHsKLSAgICAg
ICAgZWxlbWVudCgpLT5zZXRBY3RpdmUodHJ1ZSwgdHJ1ZSk7Ci0gICAgICAgIC8vIE5vIHNldERl
ZmF1bHRIYW5kbGVkKCksIGJlY2F1c2UgSUUgZGlzcGF0Y2hlcyBhIGtleXByZXNzIGluIHRoaXMg
Y2FzZQotICAgICAgICAvLyBhbmQgdGhlIGNhbGxlciB3aWxsIG9ubHkgZGlzcGF0Y2ggYSBrZXlw
cmVzcyBpZiB3ZSBkb24ndCBjYWxsIHNldERlZmF1bHRIYW5kbGVkKCkuCi0gICAgfQotfQotCi12
b2lkIEJhc2VCdXR0b25JbnB1dFR5cGU6OmhhbmRsZUtleXByZXNzRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZlbnQpCi17Ci0gICAgaW50IGNoYXJDb2RlID0gZXZlbnQtPmNoYXJDb2RlKCk7Ci0gICAg
aWYgKGNoYXJDb2RlID09ICdccicpIHsKLSAgICAgICAgZWxlbWVudCgpLT5kaXNwYXRjaFNpbXVs
YXRlZENsaWNrKGV2ZW50KTsKLSAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKGNoYXJDb2RlID09ICcgJykgewotICAgICAg
ICAvLyBQcmV2ZW50IHNjcm9sbGluZyBkb3duIHRoZSBwYWdlLgotICAgICAgICBldmVudC0+c2V0
RGVmYXVsdEhhbmRsZWQoKTsKLSAgICB9Ci19Ci0KLXZvaWQgQmFzZUJ1dHRvbklucHV0VHlwZTo6
aGFuZGxlS2V5dXBFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKLXsKLSAgICBjb25zdCBTdHJp
bmcmIGtleSA9IGV2ZW50LT5rZXlJZGVudGlmaWVyKCk7Ci0gICAgaWYgKGtleSAhPSAiVSswMDIw
IikKLSAgICAgICAgcmV0dXJuOwotICAgIC8vIFNpbXVsYXRlIG1vdXNlIGNsaWNrIGZvciBzcGFj
ZWJhciBmb3IgYnV0dG9uIHR5cGVzLgotICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2tJZkFjdGl2
ZShldmVudCk7Ci19Ci0KIFJlbmRlck9iamVjdCogQmFzZUJ1dHRvbklucHV0VHlwZTo6Y3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckJ1dHRvbihlbGVtZW50KCkpOwogfQogCi0vLyBGSVhN
RTogQ291bGQgc2hhcmUgdGhpcyB3aXRoIEJhc2VDaGVja2FibGVJbnB1dFR5cGUgYW5kIFJhbmdl
SW5wdXRUeXBlIGlmIHdlIGhhZCBhIGNvbW1vbiBiYXNlIGNsYXNzLgotdm9pZCBCYXNlQnV0dG9u
SW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpCi17Ci0gICAg
SW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsKLQotICAgIC8vIFNl
bmQgbW91c2UgYnV0dG9uIGV2ZW50cyBpZiB0aGUgY2FsbGVyIHNwZWNpZmllZCBzZW5kTW91c2VF
dmVudHMuCi0gICAgLy8gRklYTUU6IFRoZSBjb21tZW50IGFib3ZlIGlzIG5vIGdvb2QuIEl0IHNh
eXMgd2hhdCB3ZSBkbywgYnV0IG5vdCB3aHkuCi0gICAgZWxlbWVudCgpLT5kaXNwYXRjaFNpbXVs
YXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyk7Ci19Ci0KIGJvb2wgQmFzZUJ1dHRvbklucHV0
VHlwZTo6c3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKQogewogICAgIHJldHVybiBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggMWI3
NTQzYzA1NTJhN2E5Y2E5Y2RkMjNhZDI0YTgyYTlkN2NjYWNjNy4uY2JkODUyZmM5NzE0MWQxY2Nj
NjM4OGI2Y2VkMTZhMGU4OWU2ZjRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQnV0dG9uSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9u
SW5wdXRUeXBlLmgKQEAgLTMxLDIyICszMSwxOCBAQAogI2lmbmRlZiBCYXNlQnV0dG9uSW5wdXRU
eXBlX2gKICNkZWZpbmUgQmFzZUJ1dHRvbklucHV0VHlwZV9oCiAKLSNpbmNsdWRlICJJbnB1dFR5
cGUuaCIKKyNpbmNsdWRlICJCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIC8vIEJhc2Ugb2YgYnV0dG9uLCBmaWxlLCBpbWFnZSwgcmVzZXQs
IGFuZCBzdWJtaXQgdHlwZXMuCi1jbGFzcyBCYXNlQnV0dG9uSW5wdXRUeXBlIDogcHVibGljIElu
cHV0VHlwZSB7CitjbGFzcyBCYXNlQnV0dG9uSW5wdXRUeXBlIDogcHVibGljIEJhc2VDbGlja2Fi
bGVXaXRoS2V5SW5wdXRUeXBlIHsKIHByb3RlY3RlZDoKLSAgICBCYXNlQnV0dG9uSW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAg
IEJhc2VCdXR0b25JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBCYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50Kikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleXByZXNzRXZlbnQoS2V5Ym9hcmRF
dmVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXl1cEV2ZW50KEtleWJv
YXJkRXZlbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRleCBmZjI4ZGFlMzZkYzIxYTc3MTg4
NTAxYTUwYTliODY4YmMyYmI0MDNlLi45NmRmM2YyZjUwNmU1NGU1NDMxZmU1NTYxZTMyMmQwY2Fi
NTk5NjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlw
ZS5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgYm9vbCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpjYW5T
ZXRTdHJpbmdWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0vLyBGSVhNRTog
Q291bGQgc2hhcmUgdGhpcyB3aXRoIEJhc2VCdXR0b25JbnB1dFR5cGUgYW5kIFJhbmdlSW5wdXRU
eXBlIGlmIHdlIGhhZCBhIGNvbW1vbiBiYXNlIGNsYXNzLgorLy8gRklYTUU6IENvdWxkIHNoYXJl
IHRoaXMgd2l0aCBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSBhbmQgUmFuZ2VJbnB1dFR5
cGUgaWYgd2UgaGFkIGEgY29tbW9uIGJhc2UgY2xhc3MuCiB2b2lkIEJhc2VDaGVja2FibGVJbnB1
dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIHsKICAgICBJbnB1
dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45YzkwMWM0Zjk0MGYwYThmMTk3YjkwNjFkYWE4ZDdjNzY2OWRlOTIwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlw
ZS5jcHAKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCYXNl
Q2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oIgorCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Cit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCit2b2lkIEJhc2VDbGlja2FibGVXaXRoS2V5
SW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7Cisg
ICAgY29uc3QgU3RyaW5nJiBrZXkgPSBldmVudC0+a2V5SWRlbnRpZmllcigpOworICAgIGlmIChr
ZXkgPT0gIlUrMDAyMCIpIHsKKyAgICAgICAgZWxlbWVudCgpLT5zZXRBY3RpdmUodHJ1ZSwgdHJ1
ZSk7CisgICAgICAgIC8vIE5vIHNldERlZmF1bHRIYW5kbGVkKCksIGJlY2F1c2UgSUUgZGlzcGF0
Y2hlcyBhIGtleXByZXNzIGluIHRoaXMgY2FzZQorICAgICAgICAvLyBhbmQgdGhlIGNhbGxlciB3
aWxsIG9ubHkgZGlzcGF0Y2ggYSBrZXlwcmVzcyBpZiB3ZSBkb24ndCBjYWxsIHNldERlZmF1bHRI
YW5kbGVkKCkuCisgICAgfQorfQorCit2b2lkIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBl
OjpoYW5kbGVLZXlwcmVzc0V2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIGludCBj
aGFyQ29kZSA9IGV2ZW50LT5jaGFyQ29kZSgpOworICAgIGlmIChjaGFyQ29kZSA9PSAnXHInKSB7
CisgICAgICAgIGVsZW1lbnQoKS0+ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhldmVudCk7CisgICAg
ICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGlmIChjaGFyQ29kZSA9PSAnICcpIHsKKyAgICAgICAgLy8gUHJldmVudCBzY3JvbGxpbmcg
ZG93biB0aGUgcGFnZS4KKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAg
fQorfQorCit2b2lkIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjpoYW5kbGVLZXl1cEV2
ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIGNvbnN0IFN0cmluZyYga2V5ID0gZXZl
bnQtPmtleUlkZW50aWZpZXIoKTsKKyAgICBpZiAoa2V5ICE9ICJVKzAwMjAiKQorICAgICAgICBy
ZXR1cm47CisgICAgLy8gU2ltdWxhdGUgbW91c2UgY2xpY2sgZm9yIHNwYWNlYmFyIGZvciBidXR0
b24gdHlwZXMuCisgICAgZGlzcGF0Y2hTaW11bGF0ZWRDbGlja0lmQWN0aXZlKGV2ZW50KTsKK30K
KworLy8gRklYTUU6IENvdWxkIHNoYXJlIHRoaXMgd2l0aCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBl
IGFuZCBSYW5nZUlucHV0VHlwZSBpZiB3ZSBoYWQgYSBjb21tb24gYmFzZSBjbGFzcy4KK3ZvaWQg
QmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRN
b3VzZUV2ZW50cykKK3sKKyAgICBJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VF
dmVudHMpOworCisgICAgLy8gU2VuZCBtb3VzZSBidXR0b24gZXZlbnRzIGlmIHRoZSBjYWxsZXIg
c3BlY2lmaWVkIHNlbmRNb3VzZUV2ZW50cy4KKyAgICAvLyBGSVhNRTogVGhlIGNvbW1lbnQgYWJv
dmUgaXMgbm8gZ29vZC4gSXQgc2F5cyB3aGF0IHdlIGRvLCBidXQgbm90IHdoeS4KKyAgICBlbGVt
ZW50KCktPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZE1vdXNlRXZlbnRzKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViYjU4Y2Y0ZTM3MzcwNDRk
MjRmNTJjYjk3ODJjODM5MjY3ZGM4ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmgKQEAgLTAsMCArMSw1MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGVfaAorI2RlZmluZSBCYXNlQ2xpY2th
YmxlV2l0aEtleUlucHV0VHlwZV9oCisKKyNpbmNsdWRlICJJbnB1dFR5cGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCisvLyBCYXNlIG9mIGlucHV0IHR5cGVzIHRoYXQgZGlzcGF0Y2hlcyBh
IHNpbXVsYXRlZCBjbGljayBvbiBzcGFjZS9yZXR1cm4ga2V5LgorY2xhc3MgQmFzZUNsaWNrYWJs
ZVdpdGhLZXlJbnB1dFR5cGUgOiBwdWJsaWMgSW5wdXRUeXBlIHsKK3Byb3RlY3RlZDoKKyAgICBC
YXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6
IElucHV0VHlwZShlbGVtZW50KSB7IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlS2V5cHJlc3NFdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGhhbmRsZUtleXVwRXZlbnQoS2V5Ym9hcmRFdmVudCopIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIE9WRVJS
SURFOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQmFzZUNsaWNr
YWJsZVdpdGhLZXlJbnB1dFR5cGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9D
b2xvcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCmlu
ZGV4IGY5MmI5MWNlZGQ0YjRkNGI3NzlmMDE0MGYwNjcwMGMwNDI0M2VhOTQuLmUxZWQwMzYwMThl
YTI2MzU1OTIyNDVhMWNlY2ZhMzQ4NTc3YzZiMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ29sb3JJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5w
dXRUeXBlLmgKQEAgLTMxLDE0ICszMSwxNCBAQAogI2lmbmRlZiBDb2xvcklucHV0VHlwZV9oCiAj
ZGVmaW5lIENvbG9ySW5wdXRUeXBlX2gKIAorI2luY2x1ZGUgIkJhc2VDbGlja2FibGVXaXRoS2V5
SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiQ29sb3JDaG9vc2VyQ2xpZW50LmgiCi0jaW5jbHVkZSAi
SW5wdXRUeXBlLmgiCiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgQ29sb3JJbnB1dFR5cGUgOiBwdWJsaWMgSW5wdXRUeXBlLCBwdWJsaWMg
Q29sb3JDaG9vc2VyQ2xpZW50IHsKK2NsYXNzIENvbG9ySW5wdXRUeXBlIDogcHVibGljIEJhc2VD
bGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLCBwdWJsaWMgQ29sb3JDaG9vc2VyQ2xpZW50IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50Kik7CiAgICAgdmlydHVhbCB+Q29sb3JJbnB1dFR5cGUoKTsKQEAgLTQ4LDcgKzQ4LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRDaG9vc2VyKCkgT1ZFUlJJREU7CiAK
IHByaXZhdGU6Ci0gICAgQ29sb3JJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkg
OiBJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAgQ29sb3JJbnB1dFR5cGUoSFRNTElucHV0RWxl
bWVudCogZWxlbWVudCkgOiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZShlbGVtZW50KSB7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDb2xvckNvbnRyb2woKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUmVxdWlyZWQoKSBjb25zdCBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDU3NTlmNjc0MTVjZDM4
MmU1MDBmYmU2NTU4ZDBjMzQzNTdkOTc3MGIuLmYyN2QwOWEyZjI4NzE0MzVmZWM4ZGM1NDQ3YTQy
ZmE2NTE0NTZkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtODQs
NyArODQsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OnNoYWRv
d1BzZXVkb0lkKCkgY29uc3QKIH0KIAogaW5saW5lIEZpbGVJbnB1dFR5cGU6OkZpbGVJbnB1dFR5
cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKLSAgICA6IEJhc2VCdXR0b25JbnB1dFR5cGUo
ZWxlbWVudCkKKyAgICA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVsZW1lbnQpCiAg
ICAgLCBtX2ZpbGVMaXN0KEZpbGVMaXN0OjpjcmVhdGUoKSkKIHsKIH0KQEAgLTIxMywxMSArMjEz
LDYgQEAgYm9vbCBGaWxlSW5wdXRUeXBlOjpnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmIHZh
bHVlKQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEZpbGVJbnB1dFR5cGU6OnN0b3Jlc1Zh
bHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdm9p
ZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBUZXh0RmllbGRF
dmVudEJlaGF2aW9yKQogewogICAgIG1fZmlsZUxpc3QtPmNsZWFyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RmlsZUlucHV0VHlwZS5oCmluZGV4IDUzNTc1YTQyMGYxZTc1OGJkZDkwYThmNGI1OTE4NDg3ZWY4
Mzc0OTMuLmMyNmUxZmUwOTI2ZjVhMmI2ZDUzM2EzNzlmNDA4YzQzYjAzZTEyNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCkBAIC0zMiw3ICszMiw3IEBACiAjaWZuZGVmIEZpbGVJ
bnB1dFR5cGVfaAogI2RlZmluZSBGaWxlSW5wdXRUeXBlX2gKIAotI2luY2x1ZGUgIkJhc2VCdXR0
b25JbnB1dFR5cGUuaCIKKyNpbmNsdWRlICJCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5o
IgogI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCiAjaW5jbHVkZSAiRmlsZUljb25Mb2FkZXIuaCIK
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRmlsZUxpc3Q7CiAKLWNsYXNzIEZpbGVJbnB1dFR5cGUgOiBwdWJsaWMg
QmFzZUJ1dHRvbklucHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2hvb3NlckNsaWVudCwgcHJpdmF0ZSBG
aWxlSWNvbkxvYWRlckNsaWVudCB7CitjbGFzcyBGaWxlSW5wdXRUeXBlIDogcHVibGljIEJhc2VD
bGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLCBwcml2YXRlIEZpbGVDaG9vc2VyQ2xpZW50LCBwcml2
YXRlIEZpbGVJY29uTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0
cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Kik7CiAKQEAgLTU4LDcgKzU4LDYg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEZpbGVMaXN0KiBmaWxlcygpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJikgT1ZFUlJJREU7IC8vIENo
ZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2YWx1ZSBhdHRyaWJ1
dGUuCi0gICAgdmlydHVhbCBib29sIHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wg
dmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgSWNvbiogaWNvbigpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCBhMTc0Y2U3YWYzMWU5NzNlNzRkNGMyOTg2
ZTA0ZGFmZGEyNTY4ODg5Li5hNzJjMzZkZjg4NzE3MWU3YWNkZDAxM2Y0MWEyNmFlZGZjZTM4ZmZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMjcxLDcgKzI3MSw3
IEBAIFN0cmluZyBSYW5nZUlucHV0VHlwZTo6c2VyaWFsaXplKGRvdWJsZSB2YWx1ZSkgY29uc3QK
ICAgICByZXR1cm4gc2VyaWFsaXplRm9yTnVtYmVyVHlwZSh2YWx1ZSk7CiB9CiAKLS8vIEZJWE1F
OiBDb3VsZCBzaGFyZSB0aGlzIHdpdGggQmFzZUJ1dHRvbklucHV0VHlwZSBhbmQgQmFzZUNoZWNr
YWJsZUlucHV0VHlwZSBpZiB3ZSBoYWQgYSBjb21tb24gYmFzZSBjbGFzcy4KKy8vIEZJWE1FOiBD
b3VsZCBzaGFyZSB0aGlzIHdpdGggQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUgYW5kIEJh
c2VDaGVja2FibGVJbnB1dFR5cGUgaWYgd2UgaGFkIGEgY29tbW9uIGJhc2UgY2xhc3MuCiB2b2lk
IFJhbmdlSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpCiB7
CiAgICAgSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128969</attachid>
            <date>2012-02-26 23:50:12 -0800</date>
            <delta_ts>2012-02-27 02:23:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79629-20120227165010.patch</filename>
            <type>text/plain</type>
            <size>25375</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4OTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI4ZTgxMGYyNjIxY2M5
M2ZlYWU0ODM5ZjY4YjRiNGNiNTVjYzY2OC4uZjQzNzZkNWYyY2RlMDdiYjg5NzM0ZmMyNTIyNjdj
NzhiNjRlYjhhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTAyLTI2ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIENvbG9yIGlucHV0IHR5
cGUgc2hvdWxkIGJlIGNsaWNrYWJsZSB0aHJvdWdoIGtleWJvYXJkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYyOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZWQgQmFzZUNsaWNrYWJsZVdp
dGhLZXlJbnB1dFR5cGUgdGhhdCByZXByZXNlbnRzIGFuIGlucHV0IHR5cGUKKyAgICAgICAgdGhh
dCBjYW4gYmUgY2xpY2tlZCBieSBwcmVzc2luZyBzcGFjZS9yZXR1cm4ga2V5cy4KKyAgICAgICAg
Q29sb3JJbnB1dFR5cGUsIEZpbGVJbnB1dFR5cGUgZGlyZWN0bHkgaW5oZXJpdCBpdCBiZWNhdXNl
IGl0IGRvZXNuJ3QKKyAgICAgICAgd2FudCB0aGUgb3RoZXIgbWV0aG9kcyhsaWtlIGFwcGVuZEZv
cm1EYXRhKSBpbiBCYXNlQnV0dG9uSW5wdXRUeXBlLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6IEFkZGVkIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmNwcAorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06IEFkZGVkIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLntj
cHAsaH0KKyAgICAgICAgKiBUYXJnZXQucHJpOiBBZGRlZCBCYXNlQ2xpY2thYmxlV2l0aEtleUlu
cHV0VHlwZS57Y3BwLGh9CisgICAgICAgICogV2ViQ29yZS5neXBpOiBBZGRlZCBCYXNlQ2xpY2th
YmxlV2l0aEtleUlucHV0VHlwZS57Y3BwLGh9CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6IEFkZGVkIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLntjcHAsaH0K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIEJhc2VD
bGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLntjcHAsaH0KKyAgICAgICAgKiBodG1sL0Jhc2VCdXR0
b25JbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzZUJ1dHRvbklucHV0VHlwZTo6QmFzZUJ1dHRvbklucHV0VHlw
ZSk6IEluaGVyaXRzIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlIG5vdy4KKyAgICAgICAg
KEJhc2VCdXR0b25JbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQmFzZUNoZWNrYWJsZUlucHV0
VHlwZS5jcHA6IENoYW5nZWQgY29tbWVudC4KKyAgICAgICAgKiBodG1sL0Jhc2VDbGlja2FibGVX
aXRoS2V5SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6QmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudCk6IE1v
dmVkIGZyb20gQmFzZUJ1dHRvbklucHV0VHlwZQorICAgICAgICAoV2ViQ29yZTo6QmFzZUNsaWNr
YWJsZVdpdGhLZXlJbnB1dFR5cGU6OmhhbmRsZUtleXByZXNzRXZlbnQpOiBNb3ZlZCBmcm9tIEJh
c2VCdXR0b25JbnB1dFR5cGUKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDbGlja2FibGVXaXRoS2V5
SW5wdXRUeXBlOjpoYW5kbGVLZXl1cEV2ZW50KTogTW92ZWQgZnJvbSBCYXNlQnV0dG9uSW5wdXRU
eXBlCisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZTo6YWNj
ZXNzS2V5QWN0aW9uKTogTW92ZWQgZnJvbSBCYXNlQnV0dG9uSW5wdXRUeXBlCisgICAgICAgICog
aHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSk6IElucHV0IHR5cGUgdGhh
dCBjYW4gYmUgY2xpY2tlZCBieSBwcmVzc2luZyBzcGFjZS9yZXR1cm4ga2V5cy4KKyAgICAgICAg
KFdlYkNvcmU6OkJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjpCYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OkNvbG9ySW5wdXRUeXBlKTogSW5oZXJpdHMgQmFz
ZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUgbm93LgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpGaWxlSW5wdXRUeXBl
KToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEZpbGVJbnB1dFR5
cGUpOiBJbmhlcml0cyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSBub3cuCisgICAgICAg
ICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6IENoYW5nZWQgY29tbWVudC4KKyAgICAgICAgKFdl
YkNvcmUpOgorCiAyMDEyLTAyLTI2ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBbRUZMXSBJbXBsZW1lbnRhdGlvbiBvZiBHcmFwaGljc0NvbnRleHQzRCBm
b3IgRUZMIHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODlhNzUyZTliNWQ0YTllMTk3Mzlk
MmZlMDFhZGI5NDU2Y2I2YTJjMi4uNTZhY2EwMmYzMWFkNzE5NDk0NTFjZWM3ZjhlNTAwZGU5M2I5
ZjIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTcxOCw2ICs3MTgsNyBAQCBTRVQoV2ViQ29y
ZV9TT1VSQ0VTCiAKICAgICBodG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9C
YXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAorICAgIGh0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJ
bnB1dFR5cGUuY3BwCiAgICAgaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCiAgICAg
aHRtbC9CYXNlVGV4dElucHV0VHlwZS5jcHAKICAgICBodG1sL0J1dHRvbklucHV0VHlwZS5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDNiZTU4ODllYjk5ZjFlYWVjYTg3NGI3
ODFhNjgxMzI1MjcyMzg0ZjIuLjZjNDkxNGQwNmZmOWZkZTJhMmI1Y2E0ZDRhMTZhOWM3ZDBkY2Uw
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjAxMCw2ICsyMDEwLDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1
dFR5cGUuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmggXAorCVNv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmggXAogCVNv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBcCiAJU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlVGV4dElucHV0VHlwZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNGUwY2Q4ZDIx
M2YxNjY0OGQxNTM2YTE3ZWNlYzllODJkZTJhMjBjMi4uNzRkYzNiY2JhYjkxZTcxMmQzMjI0ZWY1
ZTE3OGY3ZmQ2M2ZhMjg5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC02OTMsNiArNjkzLDcgQEAgU09VUkNF
UyArPSBcCiAgICAgaGlzdG9yeS9QYWdlQ2FjaGUuY3BwIFwKICAgICBodG1sL0Jhc2VCdXR0b25J
bnB1dFR5cGUuY3BwIFwKICAgICBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIFwKKyAg
ICBodG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9CYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIFwKICAgICBodG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNw
cCBcCiAgICAgaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5
NjIzOGY2Njg1MWQ2NTVmZGY5N2VjMTdlZTY3ODg5NDkyMjc2NzM1Li4xN2E3OTY1NjcyYjk4ZGMx
ZGNkYTY1YTgyYmVjOTMyZjUyOGQxZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MjExLDYgKzUy
MTEsOCBAQAogICAgICAgICAgICAgJ2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oJywKICAgICAg
ICAgICAgICdodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwJywKICAgICAgICAgICAgICdo
dG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaCcsCisgICAgICAgICAgICAnaHRtbC9CYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZS5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvQmFzZUNsaWNr
YWJsZVdpdGhLZXlJbnB1dFR5cGUuaCcsCiAgICAgICAgICAgICAnaHRtbC9CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuY3BwJywKICAgICAgICAgICAgICdodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5oJywKICAgICAgICAgICAgICdodG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNwcCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDA2YTc2NDUw
N2FiNWFmODMyZGYwYjI2MGExMjk5NDMzNTQ1OTZjZGYuLjAzZmM0Y2NiM2RhYjg3YzUwOGUwN2Nl
N2JjMWU0NzM1MzhhMDIzYWYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCkBAIC01NTk0Niw2ICs1NTk0NiwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEJhc2VDbGlja2FibGVXaXRoS2V5
SW5wdXRUeXBlLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5caHRtbFxCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU5NTJiMGNkNjAyMGVm
MGZlODhkZWM4YmJhYzA0NDhkY2U0NjdjYzkuLmU2YTYwM2MzOTY1ZTAyMTE1YjI4M2NkNWYxZWQ1
YzQzMDExMjdiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTU1MjksNiArNTUyOSw4IEBACiAJCUMxMDVEQTYyMEYzQUE2OEYw
MDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTA1REE2MTBGM0FBNjhGMDAxREQ0NEYgLyog
VGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwICovOyB9OwogCQlDMTA1REE2NDBGM0FBNkI4MDAx
REQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5j
b2RpbmdEZXRlY3Rvci5oICovOyB9OwogCQlDMzMwQTIyMzEzRUMxOTZCMDAwMEI0NUIgLyogQ29s
b3JDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMzMwQTIyMTEzRUMxOTZCMDAwMEI0NUIgLyogQ29sb3JDaG9vc2VyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzMzRUU1QzQxNEZCNDk2MTAw
MDIwOTVBIC8qIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzM0VFNUMyMTRGQjQ5NjEwMDAyMDk1
QSAvKiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5jcHAgKi87IH07CisJCUMzM0VFNUM1
MTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzMzRUU1QzMxNEZCNDk2
MTAwMDIwOTVBIC8qIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmggKi87IH07CiAJCUMz
N0NERUJEMTQ5RUYyMDMwMDQyMDkwRCAvKiBDb2xvckNob29zZXJDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzN0NERUJDMTQ5RUYyMDMwMDQy
MDkwRCAvKiBDb2xvckNob29zZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlDNTBCNTYxNjEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBT
ZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDNTBCNTYxNDEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgKi87IH07CiAJ
CUM1MEI1NjE3MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTBCNTYxNTEyMTE5RDIzMDA4QjQ2
RTAgLyogR3JvdXBTZXR0aW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xMjUwOSw2ICsxMjUxMSw4IEBACiAJCUMxMDVEQTYxMEYzQUE2OEYw
MDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5j
b2RpbmdEZXRlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RW5j
b2RpbmdEZXRlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMzMwQTIyMTEz
RUMxOTZCMDAwMEI0NUIgLyogQ29sb3JDaG9vc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENvbG9yQ2hvb3Nlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MzNFRTVDMjE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZUNsaWNrYWJsZVdp
dGhLZXlJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMzNFRTVD
MzE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzM3Q0RFQkMxNDlFRjIwMzAwNDIw
OTBEIC8qIENvbG9yQ2hvb3NlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb2xvckNob29zZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzUwQjU2MTQxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JvdXBTZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUM1MEI1NjE1MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRp
bmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyb3VwU2V0dGluZ3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2Njk2LDYgKzE2NzAwLDggQEAKIAkJCQkz
NzlFNjFDNjEyNkNBNUMzMDBCNjNFOEQgLyogQmFzZUJ1dHRvbklucHV0VHlwZS5oICovLAogCQkJ
CTM3OUU2MUM3MTI2Q0E1QzMwMEI2M0U4RCAvKiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCAq
LywKIAkJCQkzNzlFNjFDODEyNkNBNUMzMDBCNjNFOEQgLyogQmFzZUNoZWNrYWJsZUlucHV0VHlw
ZS5oICovLAorCQkJCUMzM0VFNUMyMTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZS5jcHAgKi8sCisJCQkJQzMzRUU1QzMxNEZCNDk2MTAwMDIwOTVBIC8qIEJh
c2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmggKi8sCiAJCQkJRjU5Qzk1RkQxMjU1QjIzRjAw
MDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU5Qzk1RkUx
MjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICovLAogCQkJCUY1
NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi8sCkBAIC0y
MTM0Myw2ICsyMTM0OSw3IEBACiAJCQkJQjJDM0RBMjIwRDAwNkMxRDAwRUY2RjI2IC8qIEJhc2U2
NC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5RTYxQ0ExMjZDQTVDNDAwQjYzRThEIC8qIEJhc2VC
dXR0b25JbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3OUU2MUNDMTI2Q0E1QzQwMEI2
M0U4RCAvKiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlDMzNF
RTVDNTE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUY1OUM5NjAwMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREFFMTI1MUYxMkQwMDNF
RjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NDYyRDgx
MDdBN0I0QzAwODU3MTkzIC8qIEJlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NDc5OCw2ICsyNDgwNSw3IEBACiAJCQkJQjJDM0RBMjEwRDAwNkMxRDAwRUY2RjI2IC8qIEJhc2U2
NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzlFNjFDOTEyNkNBNUMzMDBCNjNFOEQgLyogQmFz
ZUJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzlFNjFDQjEyNkNBNUM0
MDBCNjNFOEQgLyogQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlDMzNFRTVDNDE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5
cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0MwIC8qIEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RBRDEy
NTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQUIyM0EzMjcwOUJCQTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0
dG9uSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlw
ZS5jcHAKaW5kZXggOWExNjE2ZmNlZDJiYzhjMzcxOTBkNmJmN2Q5N2JhNDI4Y2IxNzI5MS4uZjcx
MTUwMTllNWQxMGYwMDlhZTVjZmUxYzJkZWZlNTM5ZjEwMGQ3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwCkBAIC00Nyw1NCArNDcsMTEgQEAgYm9vbCBC
YXNlQnV0dG9uSW5wdXRUeXBlOjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBCYXNlQnV0dG9uSW5wdXRUeXBlOjpo
YW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCi17Ci0gICAgY29uc3QgU3Ry
aW5nJiBrZXkgPSBldmVudC0+a2V5SWRlbnRpZmllcigpOwotICAgIGlmIChrZXkgPT0gIlUrMDAy
MCIpIHsKLSAgICAgICAgZWxlbWVudCgpLT5zZXRBY3RpdmUodHJ1ZSwgdHJ1ZSk7Ci0gICAgICAg
IC8vIE5vIHNldERlZmF1bHRIYW5kbGVkKCksIGJlY2F1c2UgSUUgZGlzcGF0Y2hlcyBhIGtleXBy
ZXNzIGluIHRoaXMgY2FzZQotICAgICAgICAvLyBhbmQgdGhlIGNhbGxlciB3aWxsIG9ubHkgZGlz
cGF0Y2ggYSBrZXlwcmVzcyBpZiB3ZSBkb24ndCBjYWxsIHNldERlZmF1bHRIYW5kbGVkKCkuCi0g
ICAgfQotfQotCi12b2lkIEJhc2VCdXR0b25JbnB1dFR5cGU6OmhhbmRsZUtleXByZXNzRXZlbnQo
S2V5Ym9hcmRFdmVudCogZXZlbnQpCi17Ci0gICAgaW50IGNoYXJDb2RlID0gZXZlbnQtPmNoYXJD
b2RlKCk7Ci0gICAgaWYgKGNoYXJDb2RlID09ICdccicpIHsKLSAgICAgICAgZWxlbWVudCgpLT5k
aXNwYXRjaFNpbXVsYXRlZENsaWNrKGV2ZW50KTsKLSAgICAgICAgZXZlbnQtPnNldERlZmF1bHRI
YW5kbGVkKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKGNoYXJDb2RlID09ICcg
JykgewotICAgICAgICAvLyBQcmV2ZW50IHNjcm9sbGluZyBkb3duIHRoZSBwYWdlLgotICAgICAg
ICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICB9Ci19Ci0KLXZvaWQgQmFzZUJ1dHRv
bklucHV0VHlwZTo6aGFuZGxlS2V5dXBFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKLXsKLSAg
ICBjb25zdCBTdHJpbmcmIGtleSA9IGV2ZW50LT5rZXlJZGVudGlmaWVyKCk7Ci0gICAgaWYgKGtl
eSAhPSAiVSswMDIwIikKLSAgICAgICAgcmV0dXJuOwotICAgIC8vIFNpbXVsYXRlIG1vdXNlIGNs
aWNrIGZvciBzcGFjZWJhciBmb3IgYnV0dG9uIHR5cGVzLgotICAgIGRpc3BhdGNoU2ltdWxhdGVk
Q2xpY2tJZkFjdGl2ZShldmVudCk7Ci19Ci0KIFJlbmRlck9iamVjdCogQmFzZUJ1dHRvbklucHV0
VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckJ1dHRvbihlbGVtZW50KCkpOwog
fQogCi0vLyBGSVhNRTogQ291bGQgc2hhcmUgdGhpcyB3aXRoIEJhc2VDaGVja2FibGVJbnB1dFR5
cGUgYW5kIFJhbmdlSW5wdXRUeXBlIGlmIHdlIGhhZCBhIGNvbW1vbiBiYXNlIGNsYXNzLgotdm9p
ZCBCYXNlQnV0dG9uSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVu
dHMpCi17Ci0gICAgSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsK
LQotICAgIC8vIFNlbmQgbW91c2UgYnV0dG9uIGV2ZW50cyBpZiB0aGUgY2FsbGVyIHNwZWNpZmll
ZCBzZW5kTW91c2VFdmVudHMuCi0gICAgLy8gRklYTUU6IFRoZSBjb21tZW50IGFib3ZlIGlzIG5v
IGdvb2QuIEl0IHNheXMgd2hhdCB3ZSBkbywgYnV0IG5vdCB3aHkuCi0gICAgZWxlbWVudCgpLT5k
aXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyk7Ci19Ci0KIGJvb2wgQmFz
ZUJ1dHRvbklucHV0VHlwZTo6c3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKQogewog
ICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1
dHRvbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBl
LmgKaW5kZXggMWI3NTQzYzA1NTJhN2E5Y2E5Y2RkMjNhZDI0YTgyYTlkN2NjYWNjNy4uY2JkODUy
ZmM5NzE0MWQxY2NjNjM4OGI2Y2VkMTZhMGU4OWU2ZjRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlQnV0dG9uSW5wdXRUeXBlLmgKQEAgLTMxLDIyICszMSwxOCBAQAogI2lmbmRlZiBCYXNl
QnV0dG9uSW5wdXRUeXBlX2gKICNkZWZpbmUgQmFzZUJ1dHRvbklucHV0VHlwZV9oCiAKLSNpbmNs
dWRlICJJbnB1dFR5cGUuaCIKKyNpbmNsdWRlICJCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlw
ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEJhc2Ugb2YgYnV0dG9uLCBmaWxlLCBp
bWFnZSwgcmVzZXQsIGFuZCBzdWJtaXQgdHlwZXMuCi1jbGFzcyBCYXNlQnV0dG9uSW5wdXRUeXBl
IDogcHVibGljIElucHV0VHlwZSB7CitjbGFzcyBCYXNlQnV0dG9uSW5wdXRUeXBlIDogcHVibGlj
IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlIHsKIHByb3RlY3RlZDoKLSAgICBCYXNlQnV0
dG9uSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1l
bnQpIHsgfQorICAgIEJhc2VCdXR0b25JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVu
dCkgOiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXli
b2FyZEV2ZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleXByZXNzRXZl
bnQoS2V5Ym9hcmRFdmVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXl1
cEV2ZW50KEtleWJvYXJkRXZlbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVj
dCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVu
dHMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0
dHJpYnV0ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJp
bmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRleCBmZjI4ZGFl
MzZkYzIxYTc3MTg4NTAxYTUwYTliODY4YmMyYmI0MDNlLi45NmRmM2YyZjUwNmU1NGU1NDMxZmU1
NTYxZTMyMmQwY2FiNTk5NjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VD
aGVja2FibGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNr
YWJsZUlucHV0VHlwZS5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgYm9vbCBCYXNlQ2hlY2thYmxlSW5w
dXRUeXBlOjpjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci0vLyBGSVhNRTogQ291bGQgc2hhcmUgdGhpcyB3aXRoIEJhc2VCdXR0b25JbnB1dFR5cGUgYW5k
IFJhbmdlSW5wdXRUeXBlIGlmIHdlIGhhZCBhIGNvbW1vbiBiYXNlIGNsYXNzLgorLy8gRklYTUU6
IENvdWxkIHNoYXJlIHRoaXMgd2l0aCBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSBhbmQg
UmFuZ2VJbnB1dFR5cGUgaWYgd2UgaGFkIGEgY29tbW9uIGJhc2UgY2xhc3MuCiB2b2lkIEJhc2VD
aGVja2FibGVJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykK
IHsKICAgICBJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45YmM1NmVhOTE3ZmNmNGUzYjhiZWEyZTBjN2U4NDM0YTM1MDY4OWNk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZS5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCwgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaCIKKworI2luY2x1ZGUg
IkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwordm9pZCBCYXNl
Q2xpY2thYmxlV2l0aEtleUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZl
bnQqIGV2ZW50KQoreworICAgIGNvbnN0IFN0cmluZyYga2V5ID0gZXZlbnQtPmtleUlkZW50aWZp
ZXIoKTsKKyAgICBpZiAoa2V5ID09ICJVKzAwMjAiKSB7CisgICAgICAgIGVsZW1lbnQoKS0+c2V0
QWN0aXZlKHRydWUsIHRydWUpOworICAgICAgICAvLyBObyBzZXREZWZhdWx0SGFuZGxlZCgpLCBi
ZWNhdXNlIElFIGRpc3BhdGNoZXMgYSBrZXlwcmVzcyBpbiB0aGlzIGNhc2UKKyAgICAgICAgLy8g
YW5kIHRoZSBjYWxsZXIgd2lsbCBvbmx5IGRpc3BhdGNoIGEga2V5cHJlc3MgaWYgd2UgZG9uJ3Qg
Y2FsbCBzZXREZWZhdWx0SGFuZGxlZCgpLgorICAgIH0KK30KKwordm9pZCBCYXNlQ2xpY2thYmxl
V2l0aEtleUlucHV0VHlwZTo6aGFuZGxlS2V5cHJlc3NFdmVudChLZXlib2FyZEV2ZW50KiBldmVu
dCkKK3sKKyAgICBpbnQgY2hhckNvZGUgPSBldmVudC0+Y2hhckNvZGUoKTsKKyAgICBpZiAoY2hh
ckNvZGUgPT0gJ1xyJykgeworICAgICAgICBlbGVtZW50KCktPmRpc3BhdGNoU2ltdWxhdGVkQ2xp
Y2soZXZlbnQpOworICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpZiAoY2hhckNvZGUgPT0gJyAnKSB7CisgICAgICAgIC8vIFBy
ZXZlbnQgc2Nyb2xsaW5nIGRvd24gdGhlIHBhZ2UuCisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0
SGFuZGxlZCgpOworICAgIH0KK30KKwordm9pZCBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlw
ZTo6aGFuZGxlS2V5dXBFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICBjb25zdCBT
dHJpbmcmIGtleSA9IGV2ZW50LT5rZXlJZGVudGlmaWVyKCk7CisgICAgaWYgKGtleSAhPSAiVSsw
MDIwIikKKyAgICAgICAgcmV0dXJuOworICAgIC8vIFNpbXVsYXRlIG1vdXNlIGNsaWNrIGZvciBz
cGFjZWJhciBmb3IgYnV0dG9uIHR5cGVzLgorICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2tJZkFj
dGl2ZShldmVudCk7Cit9CisKKy8vIEZJWE1FOiBDb3VsZCBzaGFyZSB0aGlzIHdpdGggQmFzZUNo
ZWNrYWJsZUlucHV0VHlwZSBhbmQgUmFuZ2VJbnB1dFR5cGUgaWYgd2UgaGFkIGEgY29tbW9uIGJh
c2UgY2xhc3MuCit2b2lkIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjphY2Nlc3NLZXlB
Y3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpCit7CisgICAgSW5wdXRUeXBlOjphY2Nlc3NLZXlB
Y3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsKKworICAgIC8vIFNlbmQgbW91c2UgYnV0dG9uIGV2ZW50
cyBpZiB0aGUgY2FsbGVyIHNwZWNpZmllZCBzZW5kTW91c2VFdmVudHMuCisgICAgLy8gRklYTUU6
IFRoZSBjb21tZW50IGFib3ZlIGlzIG5vIGdvb2QuIEl0IHNheXMgd2hhdCB3ZSBkbywgYnV0IG5v
dCB3aHkuCisgICAgZWxlbWVudCgpLT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3Vz
ZUV2ZW50cyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YmI1OGNmNGUzNzM3MDQ0ZDI0ZjUyY2I5NzgyYzgzOTI2N2RjOGQwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oCkBA
IC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlX2gKKyNk
ZWZpbmUgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGVfaAorCisjaW5jbHVkZSAiSW5wdXRU
eXBlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gQmFzZSBvZiBpbnB1dCB0eXBlcyB0
aGF0IGRpc3BhdGNoZXMgYSBzaW11bGF0ZWQgY2xpY2sgb24gc3BhY2UvcmV0dXJuIGtleS4KK2Ns
YXNzIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSB7Citw
cm90ZWN0ZWQ6CisgICAgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoSFRNTElucHV0RWxl
bWVudCogZWxlbWVudCkgOiBJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisKK3ByaXZhdGU6CisgICAg
dmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleXByZXNzRXZlbnQoS2V5Ym9hcmRFdmVudCopIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXl1cEV2ZW50KEtleWJvYXJkRXZlbnQq
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1v
dXNlRXZlbnRzKSBPVkVSUklERTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29s
b3JJbnB1dFR5cGUuaAppbmRleCBmOTJiOTFjZWRkNGI0ZDRiNzc5ZjAxNDBmMDY3MDBjMDQyNDNl
YTk0Li5lMWVkMDM2MDE4ZWEyNjM1NTkyMjQ1YTFjZWNmYTM0ODU3N2M2YjJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC0zMSwxNCArMzEsMTQgQEAKICNpZm5kZWYgQ29s
b3JJbnB1dFR5cGVfaAogI2RlZmluZSBDb2xvcklucHV0VHlwZV9oCiAKKyNpbmNsdWRlICJCYXNl
Q2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIkNvbG9yQ2hvb3NlckNsaWVu
dC5oIgotI2luY2x1ZGUgIklucHV0VHlwZS5oIgogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENvbG9ySW5wdXRUeXBlIDogcHVibGljIElu
cHV0VHlwZSwgcHVibGljIENvbG9yQ2hvb3NlckNsaWVudCB7CitjbGFzcyBDb2xvcklucHV0VHlw
ZSA6IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSwgcHVibGljIENvbG9yQ2hv
b3NlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBj
cmVhdGUoSFRNTElucHV0RWxlbWVudCopOwogICAgIHZpcnR1YWwgfkNvbG9ySW5wdXRUeXBlKCk7
CkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kQ2hvb3Nl
cigpIE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIENvbG9ySW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQqIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIENvbG9ySW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1
dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBib29sIGlzQ29sb3JDb250cm9sKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9s
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1JlcXVpcmVk
KCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRl
eCA1NzU5ZjY3NDE1Y2QzODJlNTAwZmJlNjU1OGQwYzM0MzU3ZDk3NzBiLi5mMjdkMDlhMmYyODcx
NDM1ZmVjOGRjNTQ0N2E0MmZhNjUxNDU2ZGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBVcGxvYWRCdXR0
b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB9CiAKIGlubGluZSBGaWxlSW5wdXRU
eXBlOjpGaWxlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBCYXNl
QnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpCisgICAgOiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0
VHlwZShlbGVtZW50KQogICAgICwgbV9maWxlTGlzdChGaWxlTGlzdDo6Y3JlYXRlKCkpCiB7CiB9
CkBAIC0yMTMsMTEgKzIxMyw2IEBAIGJvb2wgRmlsZUlucHV0VHlwZTo6Z2V0VHlwZVNwZWNpZmlj
VmFsdWUoU3RyaW5nJiB2YWx1ZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBGaWxlSW5w
dXRUeXBlOjpzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpCi17Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KIHZvaWQgRmlsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwg
Ym9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKIHsKICAgICBtX2ZpbGVMaXN0LT5jbGVhcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAppbmRleCA1MzU3NWE0MjBmMWU3NThiZGQ5
MGE4ZjRiNTkxODQ4N2VmODM3NDkzLi5jMjZlMWZlMDkyNmY1YTJiNmQ1MzNhMzc5ZjQwOGM0M2Iw
M2UxMjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaApAQCAtMzIsNyArMzIsNyBA
QAogI2lmbmRlZiBGaWxlSW5wdXRUeXBlX2gKICNkZWZpbmUgRmlsZUlucHV0VHlwZV9oCiAKLSNp
bmNsdWRlICJCYXNlQnV0dG9uSW5wdXRUeXBlLmgiCisjaW5jbHVkZSAiQmFzZUNsaWNrYWJsZVdp
dGhLZXlJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgogI2luY2x1ZGUgIkZp
bGVJY29uTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNDEsNyArNDEsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVMaXN0OwogCi1jbGFzcyBGaWxlSW5w
dXRUeXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUsIHByaXZhdGUgRmlsZUNob29zZXJD
bGllbnQsIHByaXZhdGUgRmlsZUljb25Mb2FkZXJDbGllbnQgeworY2xhc3MgRmlsZUlucHV0VHlw
ZSA6IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2hv
b3NlckNsaWVudCwgcHJpdmF0ZSBGaWxlSWNvbkxvYWRlckNsaWVudCB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCopOwog
CkBAIC01OCw3ICs1OCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBGaWxlTGlzdCogZmlsZXMo
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGdldFR5cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYp
IE9WRVJSSURFOyAvLyBDaGVja2VkIGZpcnN0LCBiZWZvcmUgaW50ZXJuYWwgc3RvcmFnZSBvciB0
aGUgdmFsdWUgYXR0cmlidXRlLgotICAgIHZpcnR1YWwgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRl
RnJvbUF0dHJpYnV0ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25z
dCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIEljb24qIGljb24oKSBjb25zdCBPVkVS
UklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggYTE3NGNlN2Fm
MzFlOTczZTc0ZDRjMjk4NmUwNGRhZmRhMjU2ODg4OS4uYTcyYzM2ZGY4ODcxNzFlN2FjZGQwMTNm
NDFhMjZhZWRmY2UzOGZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAK
QEAgLTI3MSw3ICsyNzEsNyBAQCBTdHJpbmcgUmFuZ2VJbnB1dFR5cGU6OnNlcmlhbGl6ZShkb3Vi
bGUgdmFsdWUpIGNvbnN0CiAgICAgcmV0dXJuIHNlcmlhbGl6ZUZvck51bWJlclR5cGUodmFsdWUp
OwogfQogCi0vLyBGSVhNRTogQ291bGQgc2hhcmUgdGhpcyB3aXRoIEJhc2VCdXR0b25JbnB1dFR5
cGUgYW5kIEJhc2VDaGVja2FibGVJbnB1dFR5cGUgaWYgd2UgaGFkIGEgY29tbW9uIGJhc2UgY2xh
c3MuCisvLyBGSVhNRTogQ291bGQgc2hhcmUgdGhpcyB3aXRoIEJhc2VDbGlja2FibGVXaXRoS2V5
SW5wdXRUeXBlIGFuZCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlIGlmIHdlIGhhZCBhIGNvbW1vbiBi
YXNlIGNsYXNzLgogdm9pZCBSYW5nZUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2Vu
ZE1vdXNlRXZlbnRzKQogewogICAgIElucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3Vz
ZUV2ZW50cyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>