<?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>132410</bug_id>
          
          <creation_ts>2014-04-30 16:54:41 -0700</creation_ts>
          <short_desc>If there are no services available, do not show the service controls UI</short_desc>
          <delta_ts>2014-04-30 18:19:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1005580</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-04-30 16:54:41 -0700</bug_when>
    <thetext>If there are no services available, do not show the service controls UI

&lt;rdar://problem/16735665&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005585</commentid>
    <comment_count>1</comment_count>
      <attachid>230540</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-04-30 17:07:16 -0700</bug_when>
    <thetext>Created attachment 230540
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005589</commentid>
    <comment_count>2</comment_count>
      <attachid>230540</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-04-30 17:12:12 -0700</bug_when>
    <thetext>Comment on attachment 230540
Patch v1

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

&gt; Source/WebKit2/Shared/WebProcessCreationParameters.cpp:52
&gt; +    , imageServicesExist(false)

hasImageServices, etc?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005591</commentid>
    <comment_count>3</comment_count>
      <attachid>230541</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-04-30 17:13:49 -0700</bug_when>
    <thetext>Created attachment 230541
Patch v2 - Rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005592</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-04-30 17:14:19 -0700</bug_when>
    <thetext>Will make that change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005599</commentid>
    <comment_count>5</comment_count>
      <attachid>230544</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-04-30 17:23:37 -0700</bug_when>
    <thetext>Created attachment 230544
Patch v3 - For landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005619</commentid>
    <comment_count>6</comment_count>
      <attachid>230544</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-30 18:19:24 -0700</bug_when>
    <thetext>Comment on attachment 230544
Patch v3 - For landing

Clearing flags on attachment: 230544

Committed r168074: &lt;http://trac.webkit.org/changeset/168074&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005620</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-30 18:19:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230540</attachid>
            <date>2014-04-30 17:07:16 -0700</date>
            <delta_ts>2014-04-30 17:13:49 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>25118</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkYWIzYzcwLi5jZDBjNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTkg
QEAKIDIwMTQtMDQtMzAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIElmIHRoZXJlIGFyZSBubyBzZXJ2aWNlcyBhdmFpbGFibGUsIGRvIG5vdCBzaG93IHRoZSBz
ZXJ2aWNlIGNvbnRyb2xzIFVJCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjczNTY2NT4gYW5k
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI0MTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBsaWdodHdlaWdo
dCBjbGFzcyB0aGF0IGxhemlseSBwb2xscyB0aGUgYXBwcm9wcmlhdGUgQVBJcyBmb3Igd2hldGhl
ciBvciBub3QgYXBwcm9wcmlhdGUgc2VydmljZXMKKyAgICAgICAgYXJlIGluc3RhbGxlZCBhbmQg
dXNhYmxlIG9uIHRoZSBzeXN0ZW06CisgICAgICAgICogVUlQcm9jZXNzL21hYy9TZXJ2aWNlc0Nv
bnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzQ29udHJvbGxlcjo6
aW1hZ2VTZXJ2aWNlc0V4aXN0KToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNDb250cm9sbGVy
OjpzZWxlY3Rpb25TZXJ2aWNlc0V4aXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1NlcnZp
Y2VzQ29udHJvbGxlci5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzQ29udHJv
bGxlcjo6c2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNDb250cm9sbGVyOjpTZXJ2
aWNlc0NvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc0NvbnRyb2xsZXI6OnJl
ZnJlc2hFeGlzdGluZ1NlcnZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNDb250cm9s
bGVyOjpyZWZyZXNoRXhpc3RpbmdTZXJ2aWNlc1RpbWVyRmlyZWQpOgorCisgICAgICAgIEFkZCAi
aW1hZ2Ugc2VydmljZXMgZXhpc3QiIGFuZCAic2VsZWN0aW9uIHNlcnZpY2VzIGV4aXN0IiBwYXJh
bWV0ZXJzOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnJlZnJlc2hFeGlzdGluZ1NlcnZpY2VzKTogQ2FsbGVk
IHdoZW4gdGhlIGNvbnRleHQgbWVudSBwcm94eSByZWFsaXplcyB0aGF0CisgICAgICAgICAgc2Vy
dmljZXMgbm8gbG9uZ2VyIGV4aXN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Lmg6
CisKKyAgICAgICAgRWFjaCBXZWJQcm9jZXNzIGhhbmdzIG9uIHRvIGl0cyBvd24gY29weSBvZiB0
aGUgZmxhZ3MgZm9yIHdoZXRoZXIgb3Igbm90IHRoZSBzZXJ2aWNlcyBleGlzdDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRFbmFibGVkU2Vydmlj
ZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjppbWFnZVNlcnZpY2VzRXhpc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpzZWxlY3Rpb25TZXJ2aWNlc0V4aXN0KToKKworICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dE1lbnVQcm94eU1hYzo6c2V0dXBTZXJ2aWNlc01lbnUpOiBJZiB0aGUgbWVudSBjcmVhdGlvbiBm
YWlsZWQsIHRoZSBzZXQgb2Ygc2VydmljZXMKKyAgICAgICAgICBvbiB0aGUgc3lzdGVtIG11c3Qg
aGF2ZSBjaGFuZ2VkLiBTbyBhc2sgdGhlIFdlYkNvbnRleHQgdG8gcmVmcmVzaCB0aGVtLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1NlbGVjdGlvbk92ZXJsYXlDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6U2VsZWN0aW9uT3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlv
blJlY3RzRGlkQ2hhbmdlKTogSWYgc2VydmljZXMgZG9uJ3QgZXhpc3QsIGRvbid0IGNyZWF0ZSBh
bgorICAgICAgICAgIG92ZXJsYXkgKGFuZCBkZXN0cm95IGFueSBleGlzdGluZyBvdmVybGF5ISkK
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvU2VsZWN0aW9uT3ZlcmxheUNvbnRy
b2xsZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNlbGVjdGlvbk92ZXJsYXlDb250cm9sbGVy
OjpkcmF3UmVjdCk6IElmIHNlcnZpY2VzIGRvbid0IGV4aXN0LCBkb24ndCBkcmF3LCBhbmQgZGVz
dHJveSB0aGUgb3ZlcmxheS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
KzIwMTQtMDQtMzAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAg
IEZvbGxvd3VwIHRvOiBIYW5kbGUgc2VsZWN0aW9uIHNlcnZpY2VzIG1lbnUuCiAgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xNjcyNzc5OD4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzIzNjIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGNiMWZiNzIuLjcyMDBmOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKQEAgLTQ4LDYgKzQ4LDEwIEBAIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKQogICAgICwgdXNlc05ldHdvcmtQcm9j
ZXNzKGZhbHNlKQogI2VuZGlmCiAgICAgLCBtZW1vcnlDYWNoZURpc2FibGVkKGZhbHNlKQorI2lm
IEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorICAgICwgaW1hZ2VTZXJ2aWNlc0V4aXN0KGZhbHNl
KQorICAgICwgc2VsZWN0aW9uU2VydmljZXNFeGlzdChmYWxzZSkKKyNlbmRpZgogewogfQogCkBA
IC0xMjksNiArMTMzLDExIEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwg
cGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzOwogICAgIGVuY29kZXIgPDwgcGx1Z0luQXV0b1N0
YXJ0T3JpZ2luczsKICAgICBlbmNvZGVyIDw8IG1lbW9yeUNhY2hlRGlzYWJsZWQ7CisKKyNpZiBF
TkFCTEUoU0VSVklDRV9DT05UUk9MUykKKyAgICBlbmNvZGVyIDw8IGltYWdlU2VydmljZXNFeGlz
dDsKKyAgICBlbmNvZGVyIDw8IHNlbGVjdGlvblNlcnZpY2VzRXhpc3Q7CisjZW5kaWYKIH0KIAog
Ym9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMp
CkBAIC0yNzQsNiArMjgzLDEzIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jCiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJsZWQpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaW1hZ2VTZXJ2aWNlc0V4aXN0KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zZWxlY3Rpb25T
ZXJ2aWNlc0V4aXN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggOTI3MmUxOS4uOGI0ZTViNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC0xNTUsNiArMTU1LDExIEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsK
ICAgICBWZWN0b3I8U3RyaW5nPiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5zOwogCiAgICAgYm9vbCBt
ZW1vcnlDYWNoZURpc2FibGVkOworCisjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisgICAg
Ym9vbCBpbWFnZVNlcnZpY2VzRXhpc3Q7CisgICAgYm9vbCBzZWxlY3Rpb25TZXJ2aWNlc0V4aXN0
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAyOGE4NDg0Li4yNjE5NDk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC04NSw2ICs4NSwxMCBAQAogI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzUHJveHkuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCisjaW5jbHVkZSAiU2VydmljZXNDb250cm9sbGVyLmgiCisjZW5kaWYKKwogI2lmIEVO
QUJMRShDVVNUT01fUFJPVE9DT0xTKQogI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlck1l
c3NhZ2VzLmgiCiAjZW5kaWYKQEAgLTYxMiw2ICs2MTYsMTIgQEAgV2ViUHJvY2Vzc1Byb3h5JiBX
ZWJDb250ZXh0OjpjcmVhdGVOZXdXZWJQcm9jZXNzKCkKIAogICAgIHBhcmFtZXRlcnMubWVtb3J5
Q2FjaGVEaXNhYmxlZCA9IG1fbWVtb3J5Q2FjaGVEaXNhYmxlZDsKIAorI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQorICAgIHBhcmFtZXRlcnMuaW1hZ2VTZXJ2aWNlc0V4aXN0ID0gU2Vydmlj
ZXNDb250cm9sbGVyOjpzaGFyZWQoKS5pbWFnZVNlcnZpY2VzRXhpc3QoKTsKKyAgICBwYXJhbWV0
ZXJzLnNlbGVjdGlvblNlcnZpY2VzRXhpc3QgPSBTZXJ2aWNlc0NvbnRyb2xsZXI6OnNoYXJlZCgp
LnNlbGVjdGlvblNlcnZpY2VzRXhpc3QoKTsKKyAgICBTZXJ2aWNlc0NvbnRyb2xsZXI6OnNoYXJl
ZCgpLnJlZnJlc2hFeGlzdGluZ1NlcnZpY2VzKHRoaXMpOworI2VuZGlmCisKICAgICAvLyBBZGQg
YW55IHBsYXRmb3JtIHNwZWNpZmljIHBhcmFtZXRlcnMKICAgICBwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKHBhcmFtZXRlcnMpOwogCkBAIC0xMjgzLDYgKzEyOTMsMTQgQEAgdm9pZCBXZWJD
b250ZXh0OjpkaWRHZXRTdGF0aXN0aWNzKGNvbnN0IFN0YXRpc3RpY3NEYXRhJiBzdGF0aXN0aWNz
RGF0YSwgdWludDY0X3QKIAogICAgIHJlcXVlc3QtPmNvbXBsZXRlZFJlcXVlc3QocmVxdWVzdElE
LCBzdGF0aXN0aWNzRGF0YSk7CiB9CisKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKK3Zv
aWQgV2ViQ29udGV4dDo6cmVmcmVzaEV4aXN0aW5nU2VydmljZXMoKQoreworICAgIFNlcnZpY2Vz
Q29udHJvbGxlcjo6c2hhcmVkKCkucmVmcmVzaEV4aXN0aW5nU2VydmljZXModGhpcyk7Cit9Cisj
ZW5kaWYKKwogICAgIAogdm9pZCBXZWJDb250ZXh0OjpnYXJiYWdlQ29sbGVjdEphdmFTY3JpcHRP
YmplY3RzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCmluZGV4IDUyYjI1
NzUuLjI1NDVjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaApAQCAtMzM4
LDYgKzMzOCwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1lbW9yeUNhY2hlRGlzYWJsZWQo
Ym9vbCk7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKyAgICB2b2lkIHJlZnJlc2hF
eGlzdGluZ1NlcnZpY2VzKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3Jt
SW5pdGlhbGl6ZSgpOwogCkBAIC0zODYsNyArMzkwLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAg
ICAgdm9pZCBkaWRHZXRTdGF0aXN0aWNzKGNvbnN0IFN0YXRpc3RpY3NEYXRhJiwgdWludDY0X3Qg
Y2FsbGJhY2tJRCk7Ci0gICAgICAgIAorCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVk
IFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViQ29u
dGV4dE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAg
IHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJDb250ZXh0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlcnZpY2VzQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZXJ2aWNlc0NvbnRyb2xs
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTU5NjNmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZXJ2aWNlc0NvbnRyb2xs
ZXIuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTZXJ2aWNlc0NvbnRy
b2xsZXJfaAorI2RlZmluZSBTZXJ2aWNlc0NvbnRyb2xsZXJfaAorCisjaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCisKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29udGV4dDsKKworY2xh
c3MgU2VydmljZXNDb250cm9sbGVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZXJ2aWNl
c0NvbnRyb2xsZXIpOworICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxTZXJ2aWNlc0Nv
bnRyb2xsZXI+OworcHVibGljOgorICAgIHN0YXRpYyBTZXJ2aWNlc0NvbnRyb2xsZXImIHNoYXJl
ZCgpOworCisgICAgYm9vbCBpbWFnZVNlcnZpY2VzRXhpc3QoKSBjb25zdCB7IHJldHVybiBtX2lt
YWdlU2VydmljZXNFeGlzdDsgfQorICAgIGJvb2wgc2VsZWN0aW9uU2VydmljZXNFeGlzdCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uU2VydmljZXNFeGlzdDsgfQorCisgICAgdm9pZCByZWZy
ZXNoRXhpc3RpbmdTZXJ2aWNlcyhXZWJDb250ZXh0Kik7CisKK3ByaXZhdGU6CisgICAgU2Vydmlj
ZXNDb250cm9sbGVyKCk7CisKKyAgICB2b2lkIHJlZnJlc2hFeGlzdGluZ1NlcnZpY2VzVGltZXJG
aXJlZCgpOworCisgICAgUnVuTG9vcDo6VGltZXI8U2VydmljZXNDb250cm9sbGVyPiBtX3JlZnJl
c2hFeGlzdGluZ1NlcnZpY2VzVGltZXI7CisKKyAgICBib29sIG1faW1hZ2VTZXJ2aWNlc0V4aXN0
OworICAgIGJvb2wgbV9zZWxlY3Rpb25TZXJ2aWNlc0V4aXN0OworCisgICAgSGFzaFNldDxSZWZQ
dHI8V2ViQ29udGV4dD4+IG1fY29udGV4dHNUb05vdGlmeTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisjZW5kaWYgLy8g
U2VydmljZXNDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvU2VydmljZXNDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9TZXJ2aWNlc0NvbnRyb2xsZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOTQ2MWFiYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvU2VydmljZXNDb250cm9sbGVyLm1tCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJTZXJ2aWNlc0NvbnRyb2xsZXIuaCIKKworI2lm
IEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorCisjaW1wb3J0ICJXZWJDb250ZXh0LmgiCisjaW1w
b3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgorCisjaWYgX19oYXNfaW5jbHVkZSg8QXBwS2l0L05TU2hhcmluZ1NlcnZpY2VfUHJpdmF0ZS5o
PikKKyNpbXBvcnQgPEFwcEtpdC9OU1NoYXJpbmdTZXJ2aWNlX1ByaXZhdGUuaD4KKyNlbHNlCit0
eXBlZGVmIGVudW0geworICAgIE5TU2hhcmluZ1NlcnZpY2VQaWNrZXJTdHlsZU1lbnUgPSAwLAor
ICAgIE5TU2hhcmluZ1NlcnZpY2VQaWNrZXJTdHlsZVJvbGxvdmVyID0gMSwKKyAgICBOU1NoYXJp
bmdTZXJ2aWNlUGlja2VyU3R5bGVUZXh0U2VsZWN0aW9uID0gMiwKKyAgICBOU1NoYXJpbmdTZXJ2
aWNlUGlja2VyU3R5bGVEYXRhRGV0ZWN0b3IgPSAzCit9IE5TU2hhcmluZ1NlcnZpY2VQaWNrZXJT
dHlsZTsKKworQGludGVyZmFjZSBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyIChEZXRhaWxzKQorQHBy
b3BlcnR5IE5TU2hhcmluZ1NlcnZpY2VQaWNrZXJTdHlsZSBzdHlsZTsKKy0gKE5TTWVudSAqKW1l
bnU7CitAZW5kCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1NlcnZpY2VzQ29udHJv
bGxlciYgU2VydmljZXNDb250cm9sbGVyOjpzaGFyZWQoKQoreworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTZXJ2aWNlc0NvbnRyb2xsZXI+IHNoYXJlZENvbnRyb2xsZXI7CisgICAgcmV0dXJu
IHNoYXJlZENvbnRyb2xsZXI7Cit9CisKK1NlcnZpY2VzQ29udHJvbGxlcjo6U2VydmljZXNDb250
cm9sbGVyKCkKKyAgICA6IG1fcmVmcmVzaEV4aXN0aW5nU2VydmljZXNUaW1lcihSdW5Mb29wOjpt
YWluKCksIHRoaXMsICZTZXJ2aWNlc0NvbnRyb2xsZXI6OnJlZnJlc2hFeGlzdGluZ1NlcnZpY2Vz
VGltZXJGaXJlZCkKKyAgICAsIG1faW1hZ2VTZXJ2aWNlc0V4aXN0KGZhbHNlKQorICAgICwgbV9z
ZWxlY3Rpb25TZXJ2aWNlc0V4aXN0KGZhbHNlKQoreworICAgIG1fcmVmcmVzaEV4aXN0aW5nU2Vy
dmljZXNUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgU2VydmljZXNDb250cm9sbGVy
OjpyZWZyZXNoRXhpc3RpbmdTZXJ2aWNlcyhXZWJDb250ZXh0KiBjb250ZXh0KQoreworICAgIEFT
U0VSVChjb250ZXh0KTsKKworICAgIG1fY29udGV4dHNUb05vdGlmeS5hZGQoY29udGV4dCk7Cisg
ICAgbV9yZWZyZXNoRXhpc3RpbmdTZXJ2aWNlc1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwor
dm9pZCBTZXJ2aWNlc0NvbnRyb2xsZXI6OnJlZnJlc2hFeGlzdGluZ1NlcnZpY2VzVGltZXJGaXJl
ZCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE5TSW1hZ2UgKj4gaW1hZ2UoW1tOU0lt
YWdlIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPE5TU2hhcmluZ1NlcnZpY2VQaWNrZXI+
ICBwaWNrZXIgPSBhZG9wdE5TKFtbTlNTaGFyaW5nU2VydmljZVBpY2tlciBhbGxvY10gaW5pdFdp
dGhJdGVtczpAWyBpbWFnZSBdXSk7CisgICAgW3BpY2tlciBzZXRTdHlsZTpOU1NoYXJpbmdTZXJ2
aWNlUGlja2VyU3R5bGVSb2xsb3Zlcl07CisKKyAgICBib29sIGltYWdlU2VydmljZXNFeGlzdCA9
IHBpY2tlci5nZXQoKS5tZW51OworCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE5TQXR0cmli
dXRlZFN0cmluZyAqPiBhdHRyaWJ1dGVkU3RyaW5nKFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9j
XSBpbml0V2l0aFN0cmluZzpAImEiXSk7CisgICAgcGlja2VyID0gYWRvcHROUyhbW05TU2hhcmlu
Z1NlcnZpY2VQaWNrZXIgYWxsb2NdIGluaXRXaXRoSXRlbXM6QFsgYXR0cmlidXRlZFN0cmluZyBd
XSk7CisgICAgW3BpY2tlciBzZXRTdHlsZTpOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU3R5bGVUZXh0
U2VsZWN0aW9uXTsKKworICAgIGJvb2wgc2VsZWN0aW9uU2VydmljZXNFeGlzdCA9IHBpY2tlci5n
ZXQoKS5tZW51OworCisgICAgYm9vbCBub3RpZnlDb250ZXh0cyA9IChpbWFnZVNlcnZpY2VzRXhp
c3QgIT0gbV9pbWFnZVNlcnZpY2VzRXhpc3QpIHx8IChzZWxlY3Rpb25TZXJ2aWNlc0V4aXN0ICE9
IG1fc2VsZWN0aW9uU2VydmljZXNFeGlzdCk7CisgICAgbV9zZWxlY3Rpb25TZXJ2aWNlc0V4aXN0
ID0gc2VsZWN0aW9uU2VydmljZXNFeGlzdDsKKyAgICBtX2ltYWdlU2VydmljZXNFeGlzdCA9IGlt
YWdlU2VydmljZXNFeGlzdDsKKworICAgIGlmIChub3RpZnlDb250ZXh0cykgeworICAgICAgICBm
b3IgKGNvbnN0IFJlZlB0cjxXZWJDb250ZXh0PiYgY29udGV4dCA6IG1fY29udGV4dHNUb05vdGlm
eSkKKyAgICAgICAgICAgIGNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2Vi
UHJvY2Vzczo6U2V0RW5hYmxlZFNlcnZpY2VzKG1faW1hZ2VTZXJ2aWNlc0V4aXN0LCBtX3NlbGVj
dGlvblNlcnZpY2VzRXhpc3QpKTsKKyAgICB9CisKKyAgICBtX2NvbnRleHRzVG9Ob3RpZnkuY2xl
YXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VS
VklDRV9DT05UUk9MUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCBhY2U4NTJlLi4xODY0OWVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5
TWFjLm1tCkBAIC0zMiw3ICszMiw5IEBACiAjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbC5oIgogI2lt
cG9ydCAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKKyNp
bXBvcnQgIldlYkNvbnRleHQuaCIKICNpbXBvcnQgIldlYkNvbnRleHRNZW51SXRlbURhdGEuaCIK
KyNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiV0tWaWV3LmgiCiAjaW1wb3J0
IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnRSZWN0Lmg+
CkBAIC0zOTYsNiArMzk4LDEyIEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2V0dXBT
ZXJ2aWNlc01lbnUoY29uc3QgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYgY29uCiAgICAgW1tXS1No
YXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUgc2hhcmVkU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxl
Z2F0ZV0gc2V0SW5jbHVkZUVkaXRvclNlcnZpY2VzOmluY2x1ZGVFZGl0b3JTZXJ2aWNlc107CiAK
ICAgICBtX3NlcnZpY2VzTWVudSA9IFtwaWNrZXIgbWVudV07CisKKyAgICAvLyBJZiB0aGVyZSBp
cyBubyBzZXJ2aWNlcyBtZW51LCB0aGVuIHRoZSBleGlzdGluZyBzZXJ2aWNlcyBvbiB0aGUgc3lz
dGVtIGhhdmUgY2hhbmdlZC4KKyAgICAvLyBBc2sgdGhlIFVJUHJvY2VzcyB0byByZWZyZXNoIHRo
YXQgbGlzdCBvZiBzZXJ2aWNlcy4KKyAgICAvLyBJZiA8cmRhcjovL3Byb2JsZW0vMTY3NzY4MzE+
IGlzIHJlc29sdmVkIHRoZW4gd2UgY2FuIG1vcmUgYWNjdXJhdGVseSBrZWVwIHRoZSBsaXN0IHVw
IHRvIGRhdGUgd2l0aG91dCB0aGlzIGNhbGwuCisgICAgaWYgKCFtX3NlcnZpY2VzTWVudSkKKyAg
ICAgICAgbV9wYWdlLT5wcm9jZXNzKCkuY29udGV4dCgpLnJlZnJlc2hFeGlzdGluZ1NlcnZpY2Vz
KCk7CiB9CiAKIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Y2xlYXJTZXJ2aWNlc01lbnUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGIyNjkzYjIuLjk2NDIyOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc5MSw2ICs3OTEsOCBAQAogCQk1MTNBMTY0
QzE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzQTE2NDkxNjMw
QTlCRjAwNUQ3RDIyIC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCAqLzsgfTsK
IAkJNTEzQTE2NEQxNjMwQTlCRjAwNUQ3RDIyIC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNB
MTY0QTE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAq
LzsgfTsKIAkJNTE0QkRFRDMxNkM5OEVERDAwRTRFMjVFIC8qIFN0YXRpc3RpY3NSZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRCREVEMjE2
Qzk4RUREMDBFNEUyNUUgLyogU3RhdGlzdGljc1JlcXVlc3QuaCAqLzsgfTsKKwkJNTE0RDlGNTcx
OTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0RDlGNTUxOTExOUQzNTAwMDA2M0E3IC8q
IFNlcnZpY2VzQ29udHJvbGxlci5oICovOyB9OworCQk1MTREOUY1ODE5MTE5RDM1MDAwMDYzQTcg
LyogU2VydmljZXNDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE0RDlGNTYxOTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJv
bGxlci5tbSAqLzsgfTsKIAkJNTE1MzU2OUMxMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250
ZXh0TWVudUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTUzNTY5QTEyOTFCMUQyMDAwNzQ5REMgLyogV2ViUGFnZUNvbnRleHRNZW51Q2xp
ZW50LmNwcCAqLzsgfTsKIAkJNTE1MzU2OUQxMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250
ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE1MzU2OUIxMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVu
dC5oICovOyB9OwogCQk1MTU3OEI4MzEyMDlFQ0VGMDBBMzdDNEEgLyogQVBJRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE1NzhCODIxMjA5RUNF
RjAwQTM3QzRBIC8qIEFQSURhdGEuaCAqLzsgfTsKQEAgLTI2NDAsNiArMjY0Miw4IEBACiAJCTUx
M0ExNjRBMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEzQTE2NEIxNjMwQTlCRjAw
NUQ3RDIyIC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgbmFtZSA9IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNEJERUQyMTZDOThF
REQwMEU0RTI1RSAvKiBTdGF0aXN0aWNzUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdGF0aXN0aWNzUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTREOUY1NTE5MTE5RDM1MDAwMDYzQTcgLyogU2VydmljZXNDb250cm9sbGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VzQ29udHJvbGxlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTREOUY1NjE5MTE5RDM1MDAwMDYzQTcgLyogU2Vy
dmljZXNDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gU2VydmljZXNDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTUzNTY5QTEyOTFCMUQyMDAwNzQ5REMgLyogV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBhZ2VDb250ZXh0TWVudUNs
aWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNTM1NjlCMTI5MUIxRDIw
MDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxNTc4QjgyMTIwOUVDRUYwMEEzN0M0QSAvKiBBUElEYXRhLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSURhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTYyMTIsNiArNjIxNiw4IEBACiAJCQkJRTE4RTY5MDkxNjlCNTYzRjAw
OUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHkuY3BwICovLAogCQkJCUUxOEU2OTBBMTY5QjU2M0Yw
MDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5LmggKi8sCiAJCQkJRTE4RTY5MEQxNjlCNTdERjAw
OUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJNTE0RDlGNTUx
OTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5oICovLAorCQkJCTUxNEQ5RjU2
MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIubW0gKi8sCiAJCQkJMUFBNDE3
RUQxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFjLm1tICovLAogCQkJCTFBRjA1RDg1
MTQ2ODgzNDgwMDhCMUU4MSAvKiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lmgg
Ki8sCiAJCQkJMUFGMDVEODQxNDY4ODM0ODAwOEIxRTgxIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhUHJveHkubW0gKi8sCkBAIC02NzA1LDYgKzY3MTEsNyBAQAogCQkJCUJDMDMyREFC
MTBGNDM3RDEwMDU4QzE1QSAvKiBDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTM2
MTgzRTE2MzEyNkRBMDBBOTlEREUgLyogQ29ubmVjdGlvblN0YWNrLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUMxNDE1MTE4QUM0N0VFMDA2QzYwMkMgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvblBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNEQ5RjU3MTkxMTlEMzUwMDAwNjNBNyAvKiBT
ZXJ2aWNlc0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzM4MzBDMTcyMTIyODIw
MDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxNUU3NzMwMTg0MDE1ODAwMDA3MjAzRiAvKiBVbmlxdWVJREJEYXRhYmFzZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjg3OEI2MTUxMzM0MjhEQzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5o
IGluIEhlYWRlcnMgKi8sCkBAIC04NDk2LDYgKzg1MDMsNyBAQAogCQkJCUJDMTExQTVEMTEyRjRG
QkIwMDMzN0JBQiAvKiBXZWJEcmFnQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NzRB
Mzc3MTJFNjA5OUQwMDJERkU5OCAvKiBXZWJEcmFnQ2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkNBMEVGQTAxMjMzMjY0MjAwN0QzQ0ZCIC8qIFdlYkVkaXRDb21tYW5kUHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNTE0RDlGNTgxOTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2Vz
Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQTVFMTEyRjRGQkIwMDMzN0JB
QiAvKiBXZWJFZGl0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzUyMzdGNjAxMjQ0
MUNBMzAwNzgwNDcyIC8qIFdlYkVkaXRvckNsaWVudE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUJDNTc1NjEzMTI2RTAxMzgwMDZGMEYxMiAvKiBBUElFcnJvci5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9TZWxlY3Rpb25P
dmVybGF5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
U2VsZWN0aW9uT3ZlcmxheUNvbnRyb2xsZXIuY3BwCmluZGV4IGQzYjIxZTkuLjYzN2QwNzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9TZWxlY3Rpb25PdmVy
bGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1NlbGVjdGlvbk92ZXJsYXlDb250cm9sbGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVO
QUJMRShTRVJWSUNFX0NPTlRST0xTKQogCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtOTEsMTAgKzkyLDExIEBAIHZvaWQgU2VsZWN0aW9u
T3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlvblJlY3RzRGlkQ2hhbmdlKGNvbnN0IFZlY3RvcjxM
YXlvdXRSZWN0CiAKICAgICBtX2N1cnJlbnRTZWxlY3Rpb25SZWN0cyA9IHJlY3RzOwogCi0gICAg
aWYgKG1fY3VycmVudFNlbGVjdGlvblJlY3RzLmlzRW1wdHkoKSkKLSAgICAgICAgZGVzdHJveU92
ZXJsYXkoKTsKLSAgICBlbHNlCisgICAgaWYgKFdlYlByb2Nlc3M6OnNoYXJlZCgpLnNlbGVjdGlv
blNlcnZpY2VzRXhpc3QoKSAmJiAhbV9jdXJyZW50U2VsZWN0aW9uUmVjdHMuaXNFbXB0eSgpKQog
ICAgICAgICBjcmVhdGVPdmVybGF5SWZOZWVkZWQoKTsKKyAgICBlbHNlCisgICAgICAgIGRlc3Ry
b3lPdmVybGF5KCk7CisKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHJlY3RzKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9TZWxlY3Rp
b25PdmVybGF5Q29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvU2VsZWN0aW9uT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0KaW5kZXggZDJkODk3Ni4u
MDIyYWQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9TZWxlY3Rpb25PdmVybGF5Q29udHJvbGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1NlbGVjdGlvbk92ZXJsYXlDb250cm9sbGVyTWFjLm1tCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKIAorI2ltcG9y
dCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQg
PFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01haW5GcmFtZS5o
PgpAQCAtNTksNiArNjAsMTEgQEAgdm9pZCBTZWxlY3Rpb25PdmVybGF5Q29udHJvbGxlcjo6ZHJh
d1JlY3QoUGFnZU92ZXJsYXkqIG92ZXJsYXksIFdlYkNvcmU6OkdyYXBoaWMKICAgICBpZiAobV9j
dXJyZW50U2VsZWN0aW9uUmVjdHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBp
ZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLnNlbGVjdGlvblNlcnZpY2VzRXhpc3QoKSkgeworICAg
ICAgICBkZXN0cm95T3ZlcmxheSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYg
KCFtX2N1cnJlbnRIaWdobGlnaHQpIHsKICAgICAgICAgVmVjdG9yPENHUmVjdD4gY2dSZWN0czsK
ICAgICAgICAgY2dSZWN0cy5yZXNlcnZlQ2FwYWNpdHkobV9jdXJyZW50U2VsZWN0aW9uUmVjdHMu
c2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGUy
NmVmMTUuLmQwZjVmOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cApAQCAtMTY3LDYgKzE2NywxMCBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAsIG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyKFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6Y3JlYXRlKCkpCiAjZW5kaWYK
KyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKyAgICAsIG1faW1hZ2VTZXJ2aWNlc0V4aXN0
KGZhbHNlKQorICAgICwgbV9zZWxlY3Rpb25TZXJ2aWNlc0V4aXN0KGZhbHNlKQorI2VuZGlmCiAg
ICAgLCBtX25vblZpc2libGVQcm9jZXNzQ2xlYW51cFRpbWVyKHRoaXMsICZXZWJQcm9jZXNzOjpu
b25WaXNpYmxlUHJvY2Vzc0NsZWFudXBUaW1lckZpcmVkKQogewogICAgIC8vIEluaXRpYWxpemUg
b3VyIHBsYXRmb3JtIHN0cmF0ZWdpZXMuCkBAIC0zNTksNiArMzYzLDEwIEBAIHZvaWQgV2ViUHJv
Y2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYgcGFyYW1lCiAgICAgICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2lucy5hZGQocGFyYW1l
dGVycy5wbHVnSW5BdXRvU3RhcnRPcmlnaW5zW2ldKTsKIAogICAgIHNldE1lbW9yeUNhY2hlRGlz
YWJsZWQocGFyYW1ldGVycy5tZW1vcnlDYWNoZURpc2FibGVkKTsKKworI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQorICAgIHNldEVuYWJsZWRTZXJ2aWNlcyhwYXJhbWV0ZXJzLmltYWdlU2Vy
dmljZXNFeGlzdCwgcGFyYW1ldGVycy5zZWxlY3Rpb25TZXJ2aWNlc0V4aXN0KTsKKyNlbmRpZgog
fQogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKQEAgLTExNzMsNCArMTE4MSwxMiBAQCB2
b2lkIFdlYlByb2Nlc3M6OnNldE1lbW9yeUNhY2hlRGlzYWJsZWQoYm9vbCBkaXNhYmxlZCkKICAg
ICAgICAgbWVtb3J5Q2FjaGUoKS0+c2V0RGlzYWJsZWQoZGlzYWJsZWQpOwogfQogCisjaWYgRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCit2b2lkIFdlYlByb2Nlc3M6OnNldEVuYWJsZWRTZXJ2aWNl
cyhib29sIGltYWdlU2VydmljZXNFeGlzdCwgYm9vbCBzZWxlY3Rpb25TZXJ2aWNlc0V4aXN0KQor
eworICAgIG1faW1hZ2VTZXJ2aWNlc0V4aXN0ID0gaW1hZ2VTZXJ2aWNlc0V4aXN0OworICAgIG1f
c2VsZWN0aW9uU2VydmljZXNFeGlzdCA9IHNlbGVjdGlvblNlcnZpY2VzRXhpc3Q7Cit9CisjZW5k
aWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCmluZGV4IGRiMGM4ODkuLjU5OWIyNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCkBAIC0xODMsNiArMTgzLDExIEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxB
UEk6Ok9iamVjdD4gYXBpT2JqZWN0QnlDb252ZXJ0aW5nRnJvbUhhbmRsZXMoQVBJOjpPYmplY3Qq
KTsKIAorI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorICAgIGJvb2wgaW1hZ2VTZXJ2aWNl
c0V4aXN0KCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZVNlcnZpY2VzRXhpc3Q7IH0KKyAgICBib29s
IHNlbGVjdGlvblNlcnZpY2VzRXhpc3QoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvblNlcnZp
Y2VzRXhpc3Q7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKIApAQCAt
MjQyLDYgKzI0NywxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRNZW1vcnlDYWNoZURpc2Fi
bGVkKGJvb2wpOwogCisjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisgICAgdm9pZCBzZXRF
bmFibGVkU2VydmljZXMoYm9vbCBpbWFnZVNlcnZpY2VzRXhpc3QsIGJvb2wgc2VsZWN0aW9uU2Vy
dmljZXNFeGlzdCk7CisjZW5kaWYKKwogICAgIHZvaWQgcG9zdEluamVjdGVkQnVuZGxlTWVzc2Fn
ZShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2VEYXRhKTsKICAgICB2b2lkIHNldElu
amVjdGVkQnVuZGxlUGFyYW1ldGVyKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmKTsKIApAQCAtMzI1LDYgKzMzNCwxMSBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI+IG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKyAgICBib29s
IG1faW1hZ2VTZXJ2aWNlc0V4aXN0OworICAgIGJvb2wgbV9zZWxlY3Rpb25TZXJ2aWNlc0V4aXN0
OworI2VuZGlmCisKICAgICBIYXNoU2V0PHVpbnQ2NF90PiBtX3BhZ2VzSW5XaW5kb3dzOwogICAg
IFdlYkNvcmU6OlRpbWVyPFdlYlByb2Nlc3M+IG1fbm9uVmlzaWJsZVByb2Nlc3NDbGVhbnVwVGlt
ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCmluZGV4IGE2ZmE1ZTAuLmRmMDYzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTg4LDQgKzg4LDggQEAgbWVzc2Fn
ZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogICAgIFNldE1lbW9y
eUNhY2hlRGlzYWJsZWQoYm9vbCBkaXNhYmxlZCk7CisKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05U
Uk9MUykKKyAgICBTZXRFbmFibGVkU2VydmljZXMoYm9vbCBpbWFnZVNlcnZpY2VzRXhpc3QsIGJv
b2wgc2VsZWN0aW9uU2VydmljZXNFeGlzdCkKKyNlbmRpZgogfQo=
</data>
<flag name="review"
          id="254916"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230541</attachid>
            <date>2014-04-30 17:13:49 -0700</date>
            <delta_ts>2014-04-30 17:23:37 -0700</delta_ts>
            <desc>Patch v2 - Rebased</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>25076</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkNzBlNGQzLi43MzgyZmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcg
QEAKKzIwMTQtMDQtMzAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIElmIHRoZXJlIGFyZSBubyBzZXJ2aWNlcyBhdmFpbGFibGUsIGRvIG5vdCBzaG93IHRoZSBz
ZXJ2aWNlIGNvbnRyb2xzIFVJCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjczNTY2NT4gYW5k
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI0MTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBsaWdodHdlaWdo
dCBjbGFzcyB0aGF0IGxhemlseSBwb2xscyB0aGUgYXBwcm9wcmlhdGUgQVBJcyBmb3Igd2hldGhl
ciBvciBub3QgYXBwcm9wcmlhdGUgc2VydmljZXMKKyAgICAgICAgYXJlIGluc3RhbGxlZCBhbmQg
dXNhYmxlIG9uIHRoZSBzeXN0ZW06CisgICAgICAgICogVUlQcm9jZXNzL21hYy9TZXJ2aWNlc0Nv
bnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzQ29udHJvbGxlcjo6
aW1hZ2VTZXJ2aWNlc0V4aXN0KToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNDb250cm9sbGVy
OjpzZWxlY3Rpb25TZXJ2aWNlc0V4aXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1NlcnZp
Y2VzQ29udHJvbGxlci5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzQ29udHJv
bGxlcjo6c2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNDb250cm9sbGVyOjpTZXJ2
aWNlc0NvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc0NvbnRyb2xsZXI6OnJl
ZnJlc2hFeGlzdGluZ1NlcnZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNDb250cm9s
bGVyOjpyZWZyZXNoRXhpc3RpbmdTZXJ2aWNlc1RpbWVyRmlyZWQpOgorCisgICAgICAgIEFkZCAi
aW1hZ2Ugc2VydmljZXMgZXhpc3QiIGFuZCAic2VsZWN0aW9uIHNlcnZpY2VzIGV4aXN0IiBwYXJh
bWV0ZXJzOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnJlZnJlc2hFeGlzdGluZ1NlcnZpY2VzKTogQ2FsbGVk
IHdoZW4gdGhlIGNvbnRleHQgbWVudSBwcm94eSByZWFsaXplcyB0aGF0CisgICAgICAgICAgc2Vy
dmljZXMgbm8gbG9uZ2VyIGV4aXN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Lmg6
CisKKyAgICAgICAgRWFjaCBXZWJQcm9jZXNzIGhhbmdzIG9uIHRvIGl0cyBvd24gY29weSBvZiB0
aGUgZmxhZ3MgZm9yIHdoZXRoZXIgb3Igbm90IHRoZSBzZXJ2aWNlcyBleGlzdDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRFbmFibGVkU2Vydmlj
ZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjppbWFnZVNlcnZpY2VzRXhpc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpzZWxlY3Rpb25TZXJ2aWNlc0V4aXN0KToKKworICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dE1lbnVQcm94eU1hYzo6c2V0dXBTZXJ2aWNlc01lbnUpOiBJZiB0aGUgbWVudSBjcmVhdGlvbiBm
YWlsZWQsIHRoZSBzZXQgb2Ygc2VydmljZXMKKyAgICAgICAgICBvbiB0aGUgc3lzdGVtIG11c3Qg
aGF2ZSBjaGFuZ2VkLiBTbyBhc2sgdGhlIFdlYkNvbnRleHQgdG8gcmVmcmVzaCB0aGVtLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1NlbGVjdGlvbk92ZXJsYXlDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6U2VsZWN0aW9uT3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlv
blJlY3RzRGlkQ2hhbmdlKTogSWYgc2VydmljZXMgZG9uJ3QgZXhpc3QsIGRvbid0IGNyZWF0ZSBh
bgorICAgICAgICAgIG92ZXJsYXkgKGFuZCBkZXN0cm95IGFueSBleGlzdGluZyBvdmVybGF5ISkK
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvU2VsZWN0aW9uT3ZlcmxheUNvbnRy
b2xsZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNlbGVjdGlvbk92ZXJsYXlDb250cm9sbGVy
OjpkcmF3UmVjdCk6IElmIHNlcnZpY2VzIGRvbid0IGV4aXN0LCBkb24ndCBkcmF3LCBhbmQgZGVz
dHJveSB0aGUgb3ZlcmxheS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMTQtMDQtMzAgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFtpT1NdW1dLMl0gQWRkIGEgU1BJIHRvIGV4Y2x1ZGUgdGhlIGV4dGVuZGVkIGJhY2tn
cm91bmQgZnJvbSBzb21lIGFyZWFzIG9mIFdLV2ViVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGNiMWZi
NzIuLjcyMDBmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTQ4LDYgKzQ4LDEwIEBAIFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKQogICAgICwg
dXNlc05ldHdvcmtQcm9jZXNzKGZhbHNlKQogI2VuZGlmCiAgICAgLCBtZW1vcnlDYWNoZURpc2Fi
bGVkKGZhbHNlKQorI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorICAgICwgaW1hZ2VTZXJ2
aWNlc0V4aXN0KGZhbHNlKQorICAgICwgc2VsZWN0aW9uU2VydmljZXNFeGlzdChmYWxzZSkKKyNl
bmRpZgogewogfQogCkBAIC0xMjksNiArMTMzLDExIEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIGVuY29kZXIgPDwgcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzOwogICAgIGVuY29kZXIg
PDwgcGx1Z0luQXV0b1N0YXJ0T3JpZ2luczsKICAgICBlbmNvZGVyIDw8IG1lbW9yeUNhY2hlRGlz
YWJsZWQ7CisKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKyAgICBlbmNvZGVyIDw8IGlt
YWdlU2VydmljZXNFeGlzdDsKKyAgICBlbmNvZGVyIDw8IHNlbGVjdGlvblNlcnZpY2VzRXhpc3Q7
CisjZW5kaWYKIH0KIAogYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUo
SVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCkBAIC0yNzQsNiArMjgzLDEzIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJQ
cm9jCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJs
ZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9M
UykKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaW1hZ2VTZXJ2aWNlc0V4aXN0
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5zZWxlY3Rpb25TZXJ2aWNlc0V4aXN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggOTI3MmUxOS4uOGI0ZTVi
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCkBAIC0xNTUsNiArMTU1LDExIEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzIHsKICAgICBWZWN0b3I8U3RyaW5nPiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5z
OwogCiAgICAgYm9vbCBtZW1vcnlDYWNoZURpc2FibGVkOworCisjaWYgRU5BQkxFKFNFUlZJQ0Vf
Q09OVFJPTFMpCisgICAgYm9vbCBpbWFnZVNlcnZpY2VzRXhpc3Q7CisgICAgYm9vbCBzZWxlY3Rp
b25TZXJ2aWNlc0V4aXN0OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAyYzZiYmFkLi44ZTU5YTFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC04NSw2ICs4NSwx
MCBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIKICNlbmRpZgogCisjaWYgRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisjaW5jbHVkZSAiU2VydmljZXNDb250cm9sbGVyLmgiCisj
ZW5kaWYKKwogI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQogI2luY2x1ZGUgIkN1c3RvbVBy
b3RvY29sTWFuYWdlck1lc3NhZ2VzLmgiCiAjZW5kaWYKQEAgLTYxNiw2ICs2MjAsMTIgQEAgV2Vi
UHJvY2Vzc1Byb3h5JiBXZWJDb250ZXh0OjpjcmVhdGVOZXdXZWJQcm9jZXNzKCkKIAogICAgIHBh
cmFtZXRlcnMubWVtb3J5Q2FjaGVEaXNhYmxlZCA9IG1fbWVtb3J5Q2FjaGVEaXNhYmxlZDsKIAor
I2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorICAgIHBhcmFtZXRlcnMuaW1hZ2VTZXJ2aWNl
c0V4aXN0ID0gU2VydmljZXNDb250cm9sbGVyOjpzaGFyZWQoKS5pbWFnZVNlcnZpY2VzRXhpc3Qo
KTsKKyAgICBwYXJhbWV0ZXJzLnNlbGVjdGlvblNlcnZpY2VzRXhpc3QgPSBTZXJ2aWNlc0NvbnRy
b2xsZXI6OnNoYXJlZCgpLnNlbGVjdGlvblNlcnZpY2VzRXhpc3QoKTsKKyAgICBTZXJ2aWNlc0Nv
bnRyb2xsZXI6OnNoYXJlZCgpLnJlZnJlc2hFeGlzdGluZ1NlcnZpY2VzKHRoaXMpOworI2VuZGlm
CisKICAgICAvLyBBZGQgYW55IHBsYXRmb3JtIHNwZWNpZmljIHBhcmFtZXRlcnMKICAgICBwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKHBhcmFtZXRlcnMpOwogCkBAIC0xMjkyLDYgKzEzMDIs
MTQgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRHZXRTdGF0aXN0aWNzKGNvbnN0IFN0YXRpc3RpY3NE
YXRhJiBzdGF0aXN0aWNzRGF0YSwgdWludDY0X3QKIAogICAgIHJlcXVlc3QtPmNvbXBsZXRlZFJl
cXVlc3QocmVxdWVzdElELCBzdGF0aXN0aWNzRGF0YSk7CiB9CisKKyNpZiBFTkFCTEUoU0VSVklD
RV9DT05UUk9MUykKK3ZvaWQgV2ViQ29udGV4dDo6cmVmcmVzaEV4aXN0aW5nU2VydmljZXMoKQor
eworICAgIFNlcnZpY2VzQ29udHJvbGxlcjo6c2hhcmVkKCkucmVmcmVzaEV4aXN0aW5nU2Vydmlj
ZXModGhpcyk7Cit9CisjZW5kaWYKKwogICAgIAogdm9pZCBXZWJDb250ZXh0OjpnYXJiYWdlQ29s
bGVjdEphdmFTY3JpcHRPYmplY3RzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5oCmluZGV4IDUyYjI1NzUuLjI1NDVjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHQuaApAQCAtMzM4LDYgKzMzOCwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1lbW9y
eUNhY2hlRGlzYWJsZWQoYm9vbCk7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKyAg
ICB2b2lkIHJlZnJlc2hFeGlzdGluZ1NlcnZpY2VzKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAg
ICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCkBAIC0zODYsNyArMzkwLDcgQEAgcHJpdmF0
ZToKICNlbmRpZgogCiAgICAgdm9pZCBkaWRHZXRTdGF0aXN0aWNzKGNvbnN0IFN0YXRpc3RpY3NE
YXRhJiwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgICAgIAorCiAgICAgLy8gSW1wbGVtZW50
ZWQgaW4gZ2VuZXJhdGVkIFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBk
aWRSZWNlaXZlV2ViQ29udGV4dE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdl
RGVjb2RlciYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJDb250ZXh0TWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6
TWVzc2FnZUVuY29kZXI+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1NlcnZpY2VzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9T
ZXJ2aWNlc0NvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
NTU5NjNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9T
ZXJ2aWNlc0NvbnRyb2xsZXIuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBTZXJ2aWNlc0NvbnRyb2xsZXJfaAorI2RlZmluZSBTZXJ2aWNlc0NvbnRyb2xsZXJfaAorCisj
aWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgor
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
Q29udGV4dDsKKworY2xhc3MgU2VydmljZXNDb250cm9sbGVyIHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShTZXJ2aWNlc0NvbnRyb2xsZXIpOworICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ry
b3llZDxTZXJ2aWNlc0NvbnRyb2xsZXI+OworcHVibGljOgorICAgIHN0YXRpYyBTZXJ2aWNlc0Nv
bnRyb2xsZXImIHNoYXJlZCgpOworCisgICAgYm9vbCBpbWFnZVNlcnZpY2VzRXhpc3QoKSBjb25z
dCB7IHJldHVybiBtX2ltYWdlU2VydmljZXNFeGlzdDsgfQorICAgIGJvb2wgc2VsZWN0aW9uU2Vy
dmljZXNFeGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uU2VydmljZXNFeGlzdDsgfQor
CisgICAgdm9pZCByZWZyZXNoRXhpc3RpbmdTZXJ2aWNlcyhXZWJDb250ZXh0Kik7CisKK3ByaXZh
dGU6CisgICAgU2VydmljZXNDb250cm9sbGVyKCk7CisKKyAgICB2b2lkIHJlZnJlc2hFeGlzdGlu
Z1NlcnZpY2VzVGltZXJGaXJlZCgpOworCisgICAgUnVuTG9vcDo6VGltZXI8U2VydmljZXNDb250
cm9sbGVyPiBtX3JlZnJlc2hFeGlzdGluZ1NlcnZpY2VzVGltZXI7CisKKyAgICBib29sIG1faW1h
Z2VTZXJ2aWNlc0V4aXN0OworICAgIGJvb2wgbV9zZWxlY3Rpb25TZXJ2aWNlc0V4aXN0OworCisg
ICAgSGFzaFNldDxSZWZQdHI8V2ViQ29udGV4dD4+IG1fY29udGV4dHNUb05vdGlmeTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJP
TFMpCisjZW5kaWYgLy8gU2VydmljZXNDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VydmljZXNDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9TZXJ2aWNlc0NvbnRyb2xsZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uOTQ2MWFiYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvU2VydmljZXNDb250cm9sbGVyLm1tCkBAIC0wLDAgKzEsMTAzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJTZXJ2aWNlc0NvbnRy
b2xsZXIuaCIKKworI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorCisjaW1wb3J0ICJXZWJD
b250ZXh0LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorCisjaWYgX19oYXNfaW5jbHVkZSg8QXBwS2l0L05TU2hhcmluZ1Nl
cnZpY2VfUHJpdmF0ZS5oPikKKyNpbXBvcnQgPEFwcEtpdC9OU1NoYXJpbmdTZXJ2aWNlX1ByaXZh
dGUuaD4KKyNlbHNlCit0eXBlZGVmIGVudW0geworICAgIE5TU2hhcmluZ1NlcnZpY2VQaWNrZXJT
dHlsZU1lbnUgPSAwLAorICAgIE5TU2hhcmluZ1NlcnZpY2VQaWNrZXJTdHlsZVJvbGxvdmVyID0g
MSwKKyAgICBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU3R5bGVUZXh0U2VsZWN0aW9uID0gMiwKKyAg
ICBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU3R5bGVEYXRhRGV0ZWN0b3IgPSAzCit9IE5TU2hhcmlu
Z1NlcnZpY2VQaWNrZXJTdHlsZTsKKworQGludGVyZmFjZSBOU1NoYXJpbmdTZXJ2aWNlUGlja2Vy
IChEZXRhaWxzKQorQHByb3BlcnR5IE5TU2hhcmluZ1NlcnZpY2VQaWNrZXJTdHlsZSBzdHlsZTsK
Ky0gKE5TTWVudSAqKW1lbnU7CitAZW5kCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1NlcnZpY2VzQ29udHJvbGxlciYgU2VydmljZXNDb250cm9sbGVyOjpzaGFyZWQoKQoreworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTZXJ2aWNlc0NvbnRyb2xsZXI+IHNoYXJlZENvbnRyb2xs
ZXI7CisgICAgcmV0dXJuIHNoYXJlZENvbnRyb2xsZXI7Cit9CisKK1NlcnZpY2VzQ29udHJvbGxl
cjo6U2VydmljZXNDb250cm9sbGVyKCkKKyAgICA6IG1fcmVmcmVzaEV4aXN0aW5nU2VydmljZXNU
aW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZTZXJ2aWNlc0NvbnRyb2xsZXI6OnJlZnJlc2hF
eGlzdGluZ1NlcnZpY2VzVGltZXJGaXJlZCkKKyAgICAsIG1faW1hZ2VTZXJ2aWNlc0V4aXN0KGZh
bHNlKQorICAgICwgbV9zZWxlY3Rpb25TZXJ2aWNlc0V4aXN0KGZhbHNlKQoreworICAgIG1fcmVm
cmVzaEV4aXN0aW5nU2VydmljZXNUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgU2Vy
dmljZXNDb250cm9sbGVyOjpyZWZyZXNoRXhpc3RpbmdTZXJ2aWNlcyhXZWJDb250ZXh0KiBjb250
ZXh0KQoreworICAgIEFTU0VSVChjb250ZXh0KTsKKworICAgIG1fY29udGV4dHNUb05vdGlmeS5h
ZGQoY29udGV4dCk7CisgICAgbV9yZWZyZXNoRXhpc3RpbmdTZXJ2aWNlc1RpbWVyLnN0YXJ0T25l
U2hvdCgwKTsKK30KKwordm9pZCBTZXJ2aWNlc0NvbnRyb2xsZXI6OnJlZnJlc2hFeGlzdGluZ1Nl
cnZpY2VzVGltZXJGaXJlZCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE5TSW1hZ2Ug
Kj4gaW1hZ2UoW1tOU0ltYWdlIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPE5TU2hhcmlu
Z1NlcnZpY2VQaWNrZXI+ICBwaWNrZXIgPSBhZG9wdE5TKFtbTlNTaGFyaW5nU2VydmljZVBpY2tl
ciBhbGxvY10gaW5pdFdpdGhJdGVtczpAWyBpbWFnZSBdXSk7CisgICAgW3BpY2tlciBzZXRTdHls
ZTpOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU3R5bGVSb2xsb3Zlcl07CisKKyAgICBib29sIGltYWdl
U2VydmljZXNFeGlzdCA9IHBpY2tlci5nZXQoKS5tZW51OworCisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPE5TQXR0cmlidXRlZFN0cmluZyAqPiBhdHRyaWJ1dGVkU3RyaW5nKFtbTlNBdHRyaWJ1
dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFN0cmluZzpAImEiXSk7CisgICAgcGlja2VyID0gYWRv
cHROUyhbW05TU2hhcmluZ1NlcnZpY2VQaWNrZXIgYWxsb2NdIGluaXRXaXRoSXRlbXM6QFsgYXR0
cmlidXRlZFN0cmluZyBdXSk7CisgICAgW3BpY2tlciBzZXRTdHlsZTpOU1NoYXJpbmdTZXJ2aWNl
UGlja2VyU3R5bGVUZXh0U2VsZWN0aW9uXTsKKworICAgIGJvb2wgc2VsZWN0aW9uU2VydmljZXNF
eGlzdCA9IHBpY2tlci5nZXQoKS5tZW51OworCisgICAgYm9vbCBub3RpZnlDb250ZXh0cyA9IChp
bWFnZVNlcnZpY2VzRXhpc3QgIT0gbV9pbWFnZVNlcnZpY2VzRXhpc3QpIHx8IChzZWxlY3Rpb25T
ZXJ2aWNlc0V4aXN0ICE9IG1fc2VsZWN0aW9uU2VydmljZXNFeGlzdCk7CisgICAgbV9zZWxlY3Rp
b25TZXJ2aWNlc0V4aXN0ID0gc2VsZWN0aW9uU2VydmljZXNFeGlzdDsKKyAgICBtX2ltYWdlU2Vy
dmljZXNFeGlzdCA9IGltYWdlU2VydmljZXNFeGlzdDsKKworICAgIGlmIChub3RpZnlDb250ZXh0
cykgeworICAgICAgICBmb3IgKGNvbnN0IFJlZlB0cjxXZWJDb250ZXh0PiYgY29udGV4dCA6IG1f
Y29udGV4dHNUb05vdGlmeSkKKyAgICAgICAgICAgIGNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nl
cyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0RW5hYmxlZFNlcnZpY2VzKG1faW1hZ2VTZXJ2aWNl
c0V4aXN0LCBtX3NlbGVjdGlvblNlcnZpY2VzRXhpc3QpKTsKKyAgICB9CisKKyAgICBtX2NvbnRl
eHRzVG9Ob3RpZnkuY2xlYXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCBhY2U4NTJlLi4x
ODY0OWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRl
eHRNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJD
b250ZXh0TWVudVByb3h5TWFjLm1tCkBAIC0zMiw3ICszMiw5IEBACiAjaW1wb3J0ICJQYWdlQ2xp
ZW50SW1wbC5oIgogI2ltcG9ydCAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW1wb3J0ICJTdHJpbmdV
dGlsaXRpZXMuaCIKKyNpbXBvcnQgIldlYkNvbnRleHQuaCIKICNpbXBvcnQgIldlYkNvbnRleHRN
ZW51SXRlbURhdGEuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiV0tW
aWV3LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9JbnRSZWN0Lmg+CkBAIC0zOTYsNiArMzk4LDEyIEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQ
cm94eU1hYzo6c2V0dXBTZXJ2aWNlc01lbnUoY29uc3QgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYg
Y29uCiAgICAgW1tXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUgc2hhcmVkU2hhcmluZ1Nl
cnZpY2VQaWNrZXJEZWxlZ2F0ZV0gc2V0SW5jbHVkZUVkaXRvclNlcnZpY2VzOmluY2x1ZGVFZGl0
b3JTZXJ2aWNlc107CiAKICAgICBtX3NlcnZpY2VzTWVudSA9IFtwaWNrZXIgbWVudV07CisKKyAg
ICAvLyBJZiB0aGVyZSBpcyBubyBzZXJ2aWNlcyBtZW51LCB0aGVuIHRoZSBleGlzdGluZyBzZXJ2
aWNlcyBvbiB0aGUgc3lzdGVtIGhhdmUgY2hhbmdlZC4KKyAgICAvLyBBc2sgdGhlIFVJUHJvY2Vz
cyB0byByZWZyZXNoIHRoYXQgbGlzdCBvZiBzZXJ2aWNlcy4KKyAgICAvLyBJZiA8cmRhcjovL3By
b2JsZW0vMTY3NzY4MzE+IGlzIHJlc29sdmVkIHRoZW4gd2UgY2FuIG1vcmUgYWNjdXJhdGVseSBr
ZWVwIHRoZSBsaXN0IHVwIHRvIGRhdGUgd2l0aG91dCB0aGlzIGNhbGwuCisgICAgaWYgKCFtX3Nl
cnZpY2VzTWVudSkKKyAgICAgICAgbV9wYWdlLT5wcm9jZXNzKCkuY29udGV4dCgpLnJlZnJlc2hF
eGlzdGluZ1NlcnZpY2VzKCk7CiB9CiAKIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Y2xl
YXJTZXJ2aWNlc01lbnUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGZhOTk2OGMuLmUxN2EzNzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc5MCw2ICs3OTAs
OCBAQAogCQk1MTNBMTY0QzE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTEzQTE2NDkxNjMwQTlCRjAwNUQ3RDIyIC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcCAqLzsgfTsKIAkJNTEzQTE2NEQxNjMwQTlCRjAwNUQ3RDIyIC8qIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTNBMTY0QTE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCAqLzsgfTsKIAkJNTE0QkRFRDMxNkM5OEVERDAwRTRFMjVFIC8qIFN0YXRp
c3RpY3NSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTRCREVEMjE2Qzk4RUREMDBFNEUyNUUgLyogU3RhdGlzdGljc1JlcXVlc3QuaCAqLzsg
fTsKKwkJNTE0RDlGNTcxOTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0RDlGNTUxOTEx
OUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5oICovOyB9OworCQk1MTREOUY1ODE5
MTE5RDM1MDAwMDYzQTcgLyogU2VydmljZXNDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0RDlGNTYxOTExOUQzNTAwMDA2M0E3IC8q
IFNlcnZpY2VzQ29udHJvbGxlci5tbSAqLzsgfTsKIAkJNTE1MzU2OUMxMjkxQjFEMjAwMDc0OURD
IC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTUzNTY5QTEyOTFCMUQyMDAwNzQ5REMgLyogV2ViUGFn
ZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLzsgfTsKIAkJNTE1MzU2OUQxMjkxQjFEMjAwMDc0OURD
IC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE1MzU2OUIxMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VD
b250ZXh0TWVudUNsaWVudC5oICovOyB9OwogCQk1MTU3OEI4MzEyMDlFQ0VGMDBBMzdDNEEgLyog
QVBJRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE1NzhCODIxMjA5RUNFRjAwQTM3QzRBIC8qIEFQSURhdGEuaCAqLzsgfTsKQEAgLTI2NDAsNiAr
MjY0Miw4IEBACiAJCTUxM0ExNjRBMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEz
QTE2NEIxNjMwQTlCRjAwNUQ3RDIyIC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxNEJERUQyMTZDOThFREQwMEU0RTI1RSAvKiBTdGF0aXN0aWNzUmVxdWVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGF0aXN0aWNzUmVxdWVzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1MTREOUY1NTE5MTE5RDM1MDAwMDYzQTcgLyogU2VydmljZXND
b250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VzQ29u
dHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTREOUY1NjE5MTE5RDM1
MDAwMDYzQTcgLyogU2VydmljZXNDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gU2VydmljZXNDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTUzNTY5QTEyOTFCMUQyMDAwNzQ5REMgLyogV2ViUGFnZUNvbnRleHRN
ZW51Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBh
Z2VDb250ZXh0TWVudUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
NTM1NjlCMTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNTc4QjgyMTIwOUVDRUYwMEEzN0M0QSAv
KiBBUElEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSURhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYyMTUsNiArNjIxOSw4IEBACiAJCQkJRTE4
RTY5MDkxNjlCNTYzRjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHkuY3BwICovLAogCQkJCUUx
OEU2OTBBMTY5QjU2M0YwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5LmggKi8sCiAJCQkJRTE4
RTY5MEQxNjlCNTdERjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHkubWVzc2FnZXMuaW4gKi8s
CisJCQkJNTE0RDlGNTUxOTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5oICov
LAorCQkJCTUxNEQ5RjU2MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIubW0g
Ki8sCiAJCQkJMUFBNDE3RUQxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFjLm1tICov
LAogCQkJCTFBRjA1RDg1MTQ2ODgzNDgwMDhCMUU4MSAvKiBUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYVByb3h5LmggKi8sCiAJCQkJMUFGMDVEODQxNDY4ODM0ODAwOEIxRTgxIC8qIFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0gKi8sCkBAIC02NzA4LDYgKzY3MTQsNyBA
QAogCQkJCUJDMDMyREFCMTBGNDM3RDEwMDU4QzE1QSAvKiBDb25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTM2MTgzRTE2MzEyNkRBMDBBOTlEREUgLyogQ29ubmVjdGlvblN0YWNrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUMxNDE1MTE4QUM0N0VFMDA2QzYwMkMgLyogV0tXZWJWaWV3
Q29uZmlndXJhdGlvblByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNEQ5RjU3MTkxMTlE
MzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
QzM4MzBDMTcyMTIyODIwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNUU3NzMwMTg0MDE1ODAwMDA3MjAzRiAvKiBVbmlxdWVJREJEYXRh
YmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjg3OEI2MTUxMzM0MjhEQzAwNjg4OEU5IC8qIENv
cnJlY3Rpb25QYW5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC04NTAwLDYgKzg1MDcsNyBAQAogCQkJ
CUJDMTExQTVEMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJEcmFnQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUM1NzRBMzc3MTJFNjA5OUQwMDJERkU5OCAvKiBXZWJEcmFnQ2xpZW50TWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMEVGQTAxMjMzMjY0MjAwN0QzQ0ZCIC8qIFdlYkVkaXRD
b21tYW5kUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTE0RDlGNTgxOTExOUQzNTAwMDA2
M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQTVF
MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJFZGl0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQzUyMzdGNjAxMjQ0MUNBMzAwNzgwNDcyIC8qIFdlYkVkaXRvckNsaWVudE1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUJDNTc1NjEzMTI2RTAxMzgwMDZGMEYxMiAvKiBBUElFcnJvci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9TZWxlY3Rpb25PdmVybGF5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvU2VsZWN0aW9uT3ZlcmxheUNvbnRyb2xsZXIuY3BwCmluZGV4IGQzYjIx
ZTkuLjYzN2QwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9TZWxlY3Rpb25PdmVybGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1NlbGVjdGlvbk92ZXJsYXlDb250cm9sbGVyLmNwcApAQCAtMjksNiAr
MjksNyBAQAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogCiAjaW5jbHVkZSAiV2ViUGFn
ZS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtOTEsMTAgKzkyLDExIEBA
IHZvaWQgU2VsZWN0aW9uT3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlvblJlY3RzRGlkQ2hhbmdl
KGNvbnN0IFZlY3RvcjxMYXlvdXRSZWN0CiAKICAgICBtX2N1cnJlbnRTZWxlY3Rpb25SZWN0cyA9
IHJlY3RzOwogCi0gICAgaWYgKG1fY3VycmVudFNlbGVjdGlvblJlY3RzLmlzRW1wdHkoKSkKLSAg
ICAgICAgZGVzdHJveU92ZXJsYXkoKTsKLSAgICBlbHNlCisgICAgaWYgKFdlYlByb2Nlc3M6OnNo
YXJlZCgpLnNlbGVjdGlvblNlcnZpY2VzRXhpc3QoKSAmJiAhbV9jdXJyZW50U2VsZWN0aW9uUmVj
dHMuaXNFbXB0eSgpKQogICAgICAgICBjcmVhdGVPdmVybGF5SWZOZWVkZWQoKTsKKyAgICBlbHNl
CisgICAgICAgIGRlc3Ryb3lPdmVybGF5KCk7CisKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHJl
Y3RzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9TZWxlY3Rpb25PdmVybGF5Q29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvU2VsZWN0aW9uT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0K
aW5kZXggZDJkODk3Ni4uMDIyYWQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9TZWxlY3Rpb25PdmVybGF5Q29udHJvbGxlck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1NlbGVjdGlvbk92ZXJsYXlDb250
cm9sbGVyTWFjLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05U
Uk9MUykKIAorI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZp
ZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL01haW5GcmFtZS5oPgpAQCAtNTksNiArNjAsMTEgQEAgdm9pZCBTZWxlY3Rpb25PdmVybGF5
Q29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkqIG92ZXJsYXksIFdlYkNvcmU6OkdyYXBo
aWMKICAgICBpZiAobV9jdXJyZW50U2VsZWN0aW9uUmVjdHMuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm47CiAKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLnNlbGVjdGlvblNlcnZpY2Vz
RXhpc3QoKSkgeworICAgICAgICBkZXN0cm95T3ZlcmxheSgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgaWYgKCFtX2N1cnJlbnRIaWdobGlnaHQpIHsKICAgICAgICAgVmVjdG9yPENH
UmVjdD4gY2dSZWN0czsKICAgICAgICAgY2dSZWN0cy5yZXNlcnZlQ2FwYWNpdHkobV9jdXJyZW50
U2VsZWN0aW9uUmVjdHMuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCmluZGV4IGUyNmVmMTUuLmQwZjVmOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcApAQCAtMTY3LDYgKzE2NywxMCBAQCBXZWJQcm9jZXNzOjpXZWJQcm9j
ZXNzKCkKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAsIG1fcGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6Y3Jl
YXRlKCkpCiAjZW5kaWYKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKyAgICAsIG1faW1h
Z2VTZXJ2aWNlc0V4aXN0KGZhbHNlKQorICAgICwgbV9zZWxlY3Rpb25TZXJ2aWNlc0V4aXN0KGZh
bHNlKQorI2VuZGlmCiAgICAgLCBtX25vblZpc2libGVQcm9jZXNzQ2xlYW51cFRpbWVyKHRoaXMs
ICZXZWJQcm9jZXNzOjpub25WaXNpYmxlUHJvY2Vzc0NsZWFudXBUaW1lckZpcmVkKQogewogICAg
IC8vIEluaXRpYWxpemUgb3VyIHBsYXRmb3JtIHN0cmF0ZWdpZXMuCkBAIC0zNTksNiArMzYzLDEw
IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1lCiAgICAgICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3Jp
Z2lucy5hZGQocGFyYW1ldGVycy5wbHVnSW5BdXRvU3RhcnRPcmlnaW5zW2ldKTsKIAogICAgIHNl
dE1lbW9yeUNhY2hlRGlzYWJsZWQocGFyYW1ldGVycy5tZW1vcnlDYWNoZURpc2FibGVkKTsKKwor
I2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorICAgIHNldEVuYWJsZWRTZXJ2aWNlcyhwYXJh
bWV0ZXJzLmltYWdlU2VydmljZXNFeGlzdCwgcGFyYW1ldGVycy5zZWxlY3Rpb25TZXJ2aWNlc0V4
aXN0KTsKKyNlbmRpZgogfQogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKQEAgLTExNzMs
NCArMTE4MSwxMiBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldE1lbW9yeUNhY2hlRGlzYWJsZWQoYm9v
bCBkaXNhYmxlZCkKICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+c2V0RGlzYWJsZWQoZGlzYWJsZWQp
OwogfQogCisjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCit2b2lkIFdlYlByb2Nlc3M6OnNl
dEVuYWJsZWRTZXJ2aWNlcyhib29sIGltYWdlU2VydmljZXNFeGlzdCwgYm9vbCBzZWxlY3Rpb25T
ZXJ2aWNlc0V4aXN0KQoreworICAgIG1faW1hZ2VTZXJ2aWNlc0V4aXN0ID0gaW1hZ2VTZXJ2aWNl
c0V4aXN0OworICAgIG1fc2VsZWN0aW9uU2VydmljZXNFeGlzdCA9IHNlbGVjdGlvblNlcnZpY2Vz
RXhpc3Q7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGRiMGM4ODkuLjU5OWIyNGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xODMsNiArMTgzLDExIEBAIHB1YmxpYzoK
IAogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gYXBpT2JqZWN0QnlDb252ZXJ0aW5nRnJvbUhhbmRs
ZXMoQVBJOjpPYmplY3QqKTsKIAorI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorICAgIGJv
b2wgaW1hZ2VTZXJ2aWNlc0V4aXN0KCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZVNlcnZpY2VzRXhp
c3Q7IH0KKyAgICBib29sIHNlbGVjdGlvblNlcnZpY2VzRXhpc3QoKSBjb25zdCB7IHJldHVybiBt
X3NlbGVjdGlvblNlcnZpY2VzRXhpc3Q7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlBy
b2Nlc3MoKTsKIApAQCAtMjQyLDYgKzI0NywxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRN
ZW1vcnlDYWNoZURpc2FibGVkKGJvb2wpOwogCisjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMp
CisgICAgdm9pZCBzZXRFbmFibGVkU2VydmljZXMoYm9vbCBpbWFnZVNlcnZpY2VzRXhpc3QsIGJv
b2wgc2VsZWN0aW9uU2VydmljZXNFeGlzdCk7CisjZW5kaWYKKwogICAgIHZvaWQgcG9zdEluamVj
dGVkQnVuZGxlTWVzc2FnZShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2VEYXRhKTsK
ICAgICB2b2lkIHNldEluamVjdGVkQnVuZGxlUGFyYW1ldGVyKGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKIApAQCAtMzI1LDYgKzMzNCwxMSBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI+IG1fcGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05U
Uk9MUykKKyAgICBib29sIG1faW1hZ2VTZXJ2aWNlc0V4aXN0OworICAgIGJvb2wgbV9zZWxlY3Rp
b25TZXJ2aWNlc0V4aXN0OworI2VuZGlmCisKICAgICBIYXNoU2V0PHVpbnQ2NF90PiBtX3BhZ2Vz
SW5XaW5kb3dzOwogICAgIFdlYkNvcmU6OlRpbWVyPFdlYlByb2Nlc3M+IG1fbm9uVmlzaWJsZVBy
b2Nlc3NDbGVhbnVwVGltZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGE2ZmE1ZTAuLmRmMDYzOWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTg4LDQg
Kzg4LDggQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYK
IAogICAgIFNldE1lbW9yeUNhY2hlRGlzYWJsZWQoYm9vbCBkaXNhYmxlZCk7CisKKyNpZiBFTkFC
TEUoU0VSVklDRV9DT05UUk9MUykKKyAgICBTZXRFbmFibGVkU2VydmljZXMoYm9vbCBpbWFnZVNl
cnZpY2VzRXhpc3QsIGJvb2wgc2VsZWN0aW9uU2VydmljZXNFeGlzdCkKKyNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230544</attachid>
            <date>2014-04-30 17:23:37 -0700</date>
            <delta_ts>2014-04-30 18:19:24 -0700</delta_ts>
            <desc>Patch v3 - For landing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>24964</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkNzBlNGQzLi4wODdhODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcg
QEAKKzIwMTQtMDQtMzAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIElmIHRoZXJlIGFyZSBubyBzZXJ2aWNlcyBhdmFpbGFibGUsIGRvIG5vdCBzaG93IHRoZSBz
ZXJ2aWNlIGNvbnRyb2xzIFVJCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjczNTY2NT4gYW5k
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI0MTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZCBhIGxpZ2h0d2VpZ2h0IGNs
YXNzIHRoYXQgbGF6aWx5IHBvbGxzIHRoZSBhcHByb3ByaWF0ZSBBUElzIGZvciB3aGV0aGVyIG9y
IG5vdCBhcHByb3ByaWF0ZSBzZXJ2aWNlcworICAgICAgICBhcmUgaW5zdGFsbGVkIGFuZCB1c2Fi
bGUgb24gdGhlIHN5c3RlbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1NlcnZpY2VzQ29udHJv
bGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNDb250cm9sbGVyOjppbWFn
ZVNlcnZpY2VzRXhpc3QpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc0NvbnRyb2xsZXI6OnNl
bGVjdGlvblNlcnZpY2VzRXhpc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvU2VydmljZXND
b250cm9sbGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNDb250cm9sbGVy
OjpzaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc0NvbnRyb2xsZXI6OlNlcnZpY2Vz
Q29udHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzQ29udHJvbGxlcjo6cmVmcmVz
aEV4aXN0aW5nU2VydmljZXMpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc0NvbnRyb2xsZXI6
OnJlZnJlc2hFeGlzdGluZ1NlcnZpY2VzVGltZXJGaXJlZCk6CisKKyAgICAgICAgQWRkICJpbWFn
ZSBzZXJ2aWNlcyBleGlzdCIgYW5kICJzZWxlY3Rpb24gc2VydmljZXMgZXhpc3QiIHBhcmFtZXRl
cnM6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29udGV4dDo6cmVmcmVzaEV4aXN0aW5nU2VydmljZXMpOiBDYWxsZWQgd2hl
biB0aGUgY29udGV4dCBtZW51IHByb3h5IHJlYWxpemVzIHRoYXQKKyAgICAgICAgICBzZXJ2aWNl
cyBubyBsb25nZXIgZXhpc3QuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKwor
ICAgICAgICBFYWNoIFdlYlByb2Nlc3MgaGFuZ3Mgb24gdG8gaXRzIG93biBjb3B5IG9mIHRoZSBm
bGFncyBmb3Igd2hldGhlciBvciBub3QgdGhlIHNlcnZpY2VzIGV4aXN0OgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Oldl
YlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldEVuYWJsZWRTZXJ2aWNlcyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmltYWdlU2VydmljZXNFeGlzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OnNlbGVjdGlvblNlcnZpY2VzRXhpc3QpOgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9X
ZWJDb250ZXh0TWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVu
dVByb3h5TWFjOjpzZXR1cFNlcnZpY2VzTWVudSk6IElmIHRoZSBtZW51IGNyZWF0aW9uIGZhaWxl
ZCwgdGhlIHNldCBvZiBzZXJ2aWNlcworICAgICAgICAgIG9uIHRoZSBzeXN0ZW0gbXVzdCBoYXZl
IGNoYW5nZWQuIFNvIGFzayB0aGUgV2ViQ29udGV4dCB0byByZWZyZXNoIHRoZW0uCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvU2VsZWN0aW9uT3ZlcmxheUNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTZWxlY3Rpb25PdmVybGF5Q29udHJvbGxlcjo6c2VsZWN0aW9uUmVj
dHNEaWRDaGFuZ2UpOiBJZiBzZXJ2aWNlcyBkb24ndCBleGlzdCwgZG9uJ3QgY3JlYXRlIGFuCisg
ICAgICAgICAgb3ZlcmxheSAoYW5kIGRlc3Ryb3kgYW55IGV4aXN0aW5nIG92ZXJsYXkhKQorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9TZWxlY3Rpb25PdmVybGF5Q29udHJvbGxl
ck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6U2VsZWN0aW9uT3ZlcmxheUNvbnRyb2xsZXI6OmRy
YXdSZWN0KTogSWYgc2VydmljZXMgZG9uJ3QgZXhpc3QsIGRvbid0IGRyYXcsIGFuZCBkZXN0cm95
IHRoZSBvdmVybGF5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAx
NC0wNC0zMCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgW2lPU11bV0syXSBBZGQgYSBTUEkgdG8gZXhjbHVkZSB0aGUgZXh0ZW5kZWQgYmFja2dyb3Vu
ZCBmcm9tIHNvbWUgYXJlYXMgb2YgV0tXZWJWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggY2IxZmI3Mi4u
YmRjOTg4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNDgsNiArNDgsMTAgQEAgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpCiAgICAgLCB1c2Vz
TmV0d29ya1Byb2Nlc3MoZmFsc2UpCiAjZW5kaWYKICAgICAsIG1lbW9yeUNhY2hlRGlzYWJsZWQo
ZmFsc2UpCisjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisgICAgLCBoYXNJbWFnZVNlcnZp
Y2VzKGZhbHNlKQorICAgICwgaGFzU2VsZWN0aW9uU2VydmljZXMoZmFsc2UpCisjZW5kaWYKIHsK
IH0KIApAQCAtMTI5LDYgKzEzMywxMSBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNv
ZGVyIDw8IHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlczsKICAgICBlbmNvZGVyIDw8IHBsdWdJ
bkF1dG9TdGFydE9yaWdpbnM7CiAgICAgZW5jb2RlciA8PCBtZW1vcnlDYWNoZURpc2FibGVkOwor
CisjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisgICAgZW5jb2RlciA8PCBoYXNJbWFnZVNl
cnZpY2VzOworICAgIGVuY29kZXIgPDwgaGFzU2VsZWN0aW9uU2VydmljZXM7CisjZW5kaWYKIH0K
IAogYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCkBAIC0yNzQsNiArMjgzLDEzIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jCiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJsZWQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaGFzSW1hZ2VTZXJ2aWNlcykpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaGFzU2VsZWN0
aW9uU2VydmljZXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKwogICAgIHJldHVy
biB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA5MjcyZTE5Li5kZjE0MDIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTE1NSw2ICsxNTUsMTEgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewog
ICAgIFZlY3RvcjxTdHJpbmc+IHBsdWdJbkF1dG9TdGFydE9yaWdpbnM7CiAKICAgICBib29sIG1l
bW9yeUNhY2hlRGlzYWJsZWQ7CisKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKyAgICBi
b29sIGhhc0ltYWdlU2VydmljZXM7CisgICAgYm9vbCBoYXNTZWxlY3Rpb25TZXJ2aWNlczsKKyNl
bmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHAKaW5kZXggMmM2YmJhZC4uY2NiMTE4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtODUsNiArODUsMTAgQEAKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc1Byb3h5LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xT
KQorI2luY2x1ZGUgIlNlcnZpY2VzQ29udHJvbGxlci5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUo
Q1VTVE9NX1BST1RPQ09MUykKICNpbmNsdWRlICJDdXN0b21Qcm90b2NvbE1hbmFnZXJNZXNzYWdl
cy5oIgogI2VuZGlmCkBAIC02MTYsNiArNjIwLDEyIEBAIFdlYlByb2Nlc3NQcm94eSYgV2ViQ29u
dGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2VzcygpCiAKICAgICBwYXJhbWV0ZXJzLm1lbW9yeUNhY2hl
RGlzYWJsZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJsZWQ7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9D
T05UUk9MUykKKyAgICBwYXJhbWV0ZXJzLmhhc0ltYWdlU2VydmljZXMgPSBTZXJ2aWNlc0NvbnRy
b2xsZXI6OnNoYXJlZCgpLmhhc0ltYWdlU2VydmljZXMoKTsKKyAgICBwYXJhbWV0ZXJzLmhhc1Nl
bGVjdGlvblNlcnZpY2VzID0gU2VydmljZXNDb250cm9sbGVyOjpzaGFyZWQoKS5oYXNTZWxlY3Rp
b25TZXJ2aWNlcygpOworICAgIFNlcnZpY2VzQ29udHJvbGxlcjo6c2hhcmVkKCkucmVmcmVzaEV4
aXN0aW5nU2VydmljZXModGhpcyk7CisjZW5kaWYKKwogICAgIC8vIEFkZCBhbnkgcGxhdGZvcm0g
c3BlY2lmaWMgcGFyYW1ldGVycwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MocGFy
YW1ldGVycyk7CiAKQEAgLTEyOTIsNiArMTMwMiwxNCBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZEdl
dFN0YXRpc3RpY3MoY29uc3QgU3RhdGlzdGljc0RhdGEmIHN0YXRpc3RpY3NEYXRhLCB1aW50NjRf
dAogCiAgICAgcmVxdWVzdC0+Y29tcGxldGVkUmVxdWVzdChyZXF1ZXN0SUQsIHN0YXRpc3RpY3NE
YXRhKTsKIH0KKworI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQordm9pZCBXZWJDb250ZXh0
OjpyZWZyZXNoRXhpc3RpbmdTZXJ2aWNlcygpCit7CisgICAgU2VydmljZXNDb250cm9sbGVyOjpz
aGFyZWQoKS5yZWZyZXNoRXhpc3RpbmdTZXJ2aWNlcyh0aGlzKTsKK30KKyNlbmRpZgorCiAgICAg
CiB2b2lkIFdlYkNvbnRleHQ6OmdhcmJhZ2VDb2xsZWN0SmF2YVNjcmlwdE9iamVjdHMoKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKaW5kZXggNTJiMjU3NS4uMjU0NWM1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCkBAIC0zMzgsNiArMzM4LDEwIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TWVtb3J5Q2FjaGVEaXNhYmxlZChib29sKTsKIAorI2lm
IEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorICAgIHZvaWQgcmVmcmVzaEV4aXN0aW5nU2Vydmlj
ZXMoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7
CiAKQEAgLTM4Niw3ICszOTAsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIGRpZEdl
dFN0YXRpc3RpY3MoY29uc3QgU3RhdGlzdGljc0RhdGEmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsK
LSAgICAgICAgCisKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQ29udGV4dE1l
c3NhZ2VSZWNlaXZlci5jcHAKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRSZWNl
aXZlU3luY1dlYkNvbnRleHRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VydmljZXNDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlcnZpY2VzQ29udHJvbGxlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhNjQzNTcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlcnZpY2VzQ29udHJvbGxlci5oCkBAIC0wLDAg
KzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNlcnZpY2VzQ29udHJvbGxlcl9oCisjZGVm
aW5lIFNlcnZpY2VzQ29udHJvbGxlcl9oCisKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykK
KworI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb250ZXh0OworCitjbGFzcyBTZXJ2aWNlc0Nv
bnRyb2xsZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNlcnZpY2VzQ29udHJvbGxlcik7
CisgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPFNlcnZpY2VzQ29udHJvbGxlcj47Citw
dWJsaWM6CisgICAgc3RhdGljIFNlcnZpY2VzQ29udHJvbGxlciYgc2hhcmVkKCk7CisKKyAgICBi
b29sIGhhc0ltYWdlU2VydmljZXMoKSBjb25zdCB7IHJldHVybiBtX2hhc0ltYWdlU2VydmljZXM7
IH0KKyAgICBib29sIGhhc1NlbGVjdGlvblNlcnZpY2VzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNT
ZWxlY3Rpb25TZXJ2aWNlczsgfQorCisgICAgdm9pZCByZWZyZXNoRXhpc3RpbmdTZXJ2aWNlcyhX
ZWJDb250ZXh0Kik7CisKK3ByaXZhdGU6CisgICAgU2VydmljZXNDb250cm9sbGVyKCk7CisKKyAg
ICB2b2lkIHJlZnJlc2hFeGlzdGluZ1NlcnZpY2VzVGltZXJGaXJlZCgpOworCisgICAgUnVuTG9v
cDo6VGltZXI8U2VydmljZXNDb250cm9sbGVyPiBtX3JlZnJlc2hFeGlzdGluZ1NlcnZpY2VzVGlt
ZXI7CisKKyAgICBib29sIG1faGFzSW1hZ2VTZXJ2aWNlczsKKyAgICBib29sIG1faGFzU2VsZWN0
aW9uU2VydmljZXM7CisKKyAgICBIYXNoU2V0PFJlZlB0cjxXZWJDb250ZXh0Pj4gbV9jb250ZXh0
c1RvTm90aWZ5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoU0VSVklDRV9DT05UUk9MUykKKyNlbmRpZiAvLyBTZXJ2aWNlc0NvbnRyb2xsZXJfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZXJ2aWNlc0NvbnRyb2xsZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlcnZpY2VzQ29udHJvbGxlci5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTQ2NWVkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZXJ2aWNlc0NvbnRyb2xsZXIubW0K
QEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIlNlcnZpY2VzQ29udHJvbGxlci5oIgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMp
CisKKyNpbXBvcnQgIldlYkNvbnRleHQuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3NNZXNzYWdlcy5o
IgorI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKKyNpZiBfX2hhc19pbmNsdWRlKDxB
cHBLaXQvTlNTaGFyaW5nU2VydmljZV9Qcml2YXRlLmg+KQorI2ltcG9ydCA8QXBwS2l0L05TU2hh
cmluZ1NlcnZpY2VfUHJpdmF0ZS5oPgorI2Vsc2UKK3R5cGVkZWYgZW51bSB7CisgICAgTlNTaGFy
aW5nU2VydmljZVBpY2tlclN0eWxlTWVudSA9IDAsCisgICAgTlNTaGFyaW5nU2VydmljZVBpY2tl
clN0eWxlUm9sbG92ZXIgPSAxLAorICAgIE5TU2hhcmluZ1NlcnZpY2VQaWNrZXJTdHlsZVRleHRT
ZWxlY3Rpb24gPSAyLAorICAgIE5TU2hhcmluZ1NlcnZpY2VQaWNrZXJTdHlsZURhdGFEZXRlY3Rv
ciA9IDMKK30gTlNTaGFyaW5nU2VydmljZVBpY2tlclN0eWxlOworCitAaW50ZXJmYWNlIE5TU2hh
cmluZ1NlcnZpY2VQaWNrZXIgKERldGFpbHMpCitAcHJvcGVydHkgTlNTaGFyaW5nU2VydmljZVBp
Y2tlclN0eWxlIHN0eWxlOworLSAoTlNNZW51ICopbWVudTsKK0BlbmQKKyNlbmRpZgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworU2VydmljZXNDb250cm9sbGVyJiBTZXJ2aWNlc0NvbnRyb2xsZXI6
OnNoYXJlZCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNlcnZpY2VzQ29udHJvbGxl
cj4gc2hhcmVkQ29udHJvbGxlcjsKKyAgICByZXR1cm4gc2hhcmVkQ29udHJvbGxlcjsKK30KKwor
U2VydmljZXNDb250cm9sbGVyOjpTZXJ2aWNlc0NvbnRyb2xsZXIoKQorICAgIDogbV9yZWZyZXNo
RXhpc3RpbmdTZXJ2aWNlc1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlNlcnZpY2VzQ29u
dHJvbGxlcjo6cmVmcmVzaEV4aXN0aW5nU2VydmljZXNUaW1lckZpcmVkKQorICAgICwgbV9oYXNJ
bWFnZVNlcnZpY2VzKGZhbHNlKQorICAgICwgbV9oYXNTZWxlY3Rpb25TZXJ2aWNlcyhmYWxzZSkK
K3sKKyAgICBtX3JlZnJlc2hFeGlzdGluZ1NlcnZpY2VzVGltZXIuc3RhcnRPbmVTaG90KDApOwor
fQorCit2b2lkIFNlcnZpY2VzQ29udHJvbGxlcjo6cmVmcmVzaEV4aXN0aW5nU2VydmljZXMoV2Vi
Q29udGV4dCogY29udGV4dCkKK3sKKyAgICBBU1NFUlQoY29udGV4dCk7CisKKyAgICBtX2NvbnRl
eHRzVG9Ob3RpZnkuYWRkKGNvbnRleHQpOworICAgIG1fcmVmcmVzaEV4aXN0aW5nU2VydmljZXNU
aW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgU2VydmljZXNDb250cm9sbGVyOjpyZWZy
ZXNoRXhpc3RpbmdTZXJ2aWNlc1RpbWVyRmlyZWQoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxOU0ltYWdlICo+IGltYWdlKFtbTlNJbWFnZSBhbGxvY10gaW5pdF0pOworICAgIFJldGFp
blB0cjxOU1NoYXJpbmdTZXJ2aWNlUGlja2VyPiAgcGlja2VyID0gYWRvcHROUyhbW05TU2hhcmlu
Z1NlcnZpY2VQaWNrZXIgYWxsb2NdIGluaXRXaXRoSXRlbXM6QFsgaW1hZ2UgXV0pOworICAgIFtw
aWNrZXIgc2V0U3R5bGU6TlNTaGFyaW5nU2VydmljZVBpY2tlclN0eWxlUm9sbG92ZXJdOworCisg
ICAgYm9vbCBoYXNJbWFnZVNlcnZpY2VzID0gcGlja2VyLmdldCgpLm1lbnU7CisKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8TlNBdHRyaWJ1dGVkU3RyaW5nICo+IGF0dHJpYnV0ZWRTdHJpbmco
W1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxsb2NdIGluaXRXaXRoU3RyaW5nOkAiYSJdKTsKKyAgICBw
aWNrZXIgPSBhZG9wdE5TKFtbTlNTaGFyaW5nU2VydmljZVBpY2tlciBhbGxvY10gaW5pdFdpdGhJ
dGVtczpAWyBhdHRyaWJ1dGVkU3RyaW5nIF1dKTsKKyAgICBbcGlja2VyIHNldFN0eWxlOk5TU2hh
cmluZ1NlcnZpY2VQaWNrZXJTdHlsZVRleHRTZWxlY3Rpb25dOworCisgICAgYm9vbCBoYXNTZWxl
Y3Rpb25TZXJ2aWNlcyA9IHBpY2tlci5nZXQoKS5tZW51OworCisgICAgYm9vbCBub3RpZnlDb250
ZXh0cyA9IChoYXNJbWFnZVNlcnZpY2VzICE9IG1faGFzSW1hZ2VTZXJ2aWNlcykgfHwgKGhhc1Nl
bGVjdGlvblNlcnZpY2VzICE9IG1faGFzU2VsZWN0aW9uU2VydmljZXMpOworICAgIG1faGFzU2Vs
ZWN0aW9uU2VydmljZXMgPSBoYXNTZWxlY3Rpb25TZXJ2aWNlczsKKyAgICBtX2hhc0ltYWdlU2Vy
dmljZXMgPSBoYXNJbWFnZVNlcnZpY2VzOworCisgICAgaWYgKG5vdGlmeUNvbnRleHRzKSB7Cisg
ICAgICAgIGZvciAoY29uc3QgUmVmUHRyPFdlYkNvbnRleHQ+JiBjb250ZXh0IDogbV9jb250ZXh0
c1RvTm90aWZ5KQorICAgICAgICAgICAgY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpTZXRFbmFibGVkU2VydmljZXMobV9oYXNJbWFnZVNlcnZpY2VzLCBt
X2hhc1NlbGVjdGlvblNlcnZpY2VzKSk7CisgICAgfQorCisgICAgbV9jb250ZXh0c1RvTm90aWZ5
LmNsZWFyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfQ09OVFJPTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KaW5kZXggYWNlODUyZS4uMTg2NDllYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5tbQpAQCAtMzIsNyArMzIsOSBAQAogI2ltcG9ydCAiUGFnZUNsaWVudEltcGwuaCIK
ICNpbXBvcnQgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgi
CisjaW1wb3J0ICJXZWJDb250ZXh0LmgiCiAjaW1wb3J0ICJXZWJDb250ZXh0TWVudUl0ZW1EYXRh
LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIldLVmlldy5oIgogI2lt
cG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW50UmVj
dC5oPgpAQCAtMzk2LDYgKzM5OCwxMiBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnNl
dHVwU2VydmljZXNNZW51KGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEmIGNvbgogICAgIFtb
V0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlIHNoYXJlZFNoYXJpbmdTZXJ2aWNlUGlja2Vy
RGVsZWdhdGVdIHNldEluY2x1ZGVFZGl0b3JTZXJ2aWNlczppbmNsdWRlRWRpdG9yU2VydmljZXNd
OwogCiAgICAgbV9zZXJ2aWNlc01lbnUgPSBbcGlja2VyIG1lbnVdOworCisgICAgLy8gSWYgdGhl
cmUgaXMgbm8gc2VydmljZXMgbWVudSwgdGhlbiB0aGUgZXhpc3Rpbmcgc2VydmljZXMgb24gdGhl
IHN5c3RlbSBoYXZlIGNoYW5nZWQuCisgICAgLy8gQXNrIHRoZSBVSVByb2Nlc3MgdG8gcmVmcmVz
aCB0aGF0IGxpc3Qgb2Ygc2VydmljZXMuCisgICAgLy8gSWYgPHJkYXI6Ly9wcm9ibGVtLzE2Nzc2
ODMxPiBpcyByZXNvbHZlZCB0aGVuIHdlIGNhbiBtb3JlIGFjY3VyYXRlbHkga2VlcCB0aGUgbGlz
dCB1cCB0byBkYXRlIHdpdGhvdXQgdGhpcyBjYWxsLgorICAgIGlmICghbV9zZXJ2aWNlc01lbnUp
CisgICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLmNvbnRleHQoKS5yZWZyZXNoRXhpc3RpbmdTZXJ2
aWNlcygpOwogfQogCiB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmNsZWFyU2VydmljZXNN
ZW51KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBmYTk5NjhjLi5lMTdhMzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03OTAsNiArNzkwLDggQEAKIAkJNTEz
QTE2NEMxNjMwQTlCRjAwNUQ3RDIyIC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxM0ExNjQ5
MTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi87
IH07CiAJCTUxM0ExNjREMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTEzQTE2NEExNjMwQTlCRjAwNUQ3RDIyIC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmggKi87IH07CiAJCTUxNEJERUQzMTZDOThFREQwMEU0RTI1RSAvKiBTdGF0aXN0aWNzUmVxdWVz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0QkRF
RDIxNkM5OEVERDAwRTRFMjVFIC8qIFN0YXRpc3RpY3NSZXF1ZXN0LmggKi87IH07CisJCTUxNEQ5
RjU3MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEQ5RjU1MTkxMTlEMzUwMDAwNjNB
NyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIuaCAqLzsgfTsKKwkJNTE0RDlGNTgxOTExOUQzNTAwMDA2
M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEQ5RjU2MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0Nv
bnRyb2xsZXIubW0gKi87IH07CiAJCTUxNTM1NjlDMTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdl
Q29udGV4dE1lbnVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE1MzU2OUExMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVu
dUNsaWVudC5jcHAgKi87IH07CiAJCTUxNTM1NjlEMTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdl
Q29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNTM1NjlCMTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVD
bGllbnQuaCAqLzsgfTsKIAkJNTE1NzhCODMxMjA5RUNFRjAwQTM3QzRBIC8qIEFQSURhdGEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNTc4QjgyMTIw
OUVDRUYwMEEzN0M0QSAvKiBBUElEYXRhLmggKi87IH07CkBAIC0yNjQwLDYgKzI2NDIsOCBAQAog
CQk1MTNBMTY0QTE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxM0ExNjRCMTYzMEE5
QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbjsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRCREVEMjE2
Qzk4RUREMDBFNEUyNUUgLyogU3RhdGlzdGljc1JlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3RhdGlzdGljc1JlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTE0RDlGNTUxOTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlc0NvbnRyb2xsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0RDlGNTYxOTExOUQzNTAwMDA2M0E3IC8q
IFNlcnZpY2VzQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFNlcnZpY2VzQ29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTE1MzU2OUExMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQYWdlQ29udGV4dE1l
bnVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTUzNTY5QjEyOTFC
MUQyMDAwNzQ5REMgLyogV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTU3OEI4MjEyMDlFQ0VGMDBBMzdDNEEgLyogQVBJRGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElEYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC02MjE1LDYgKzYyMTksOCBAQAogCQkJCUUxOEU2OTA5MTY5QjU2
M0YwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5LmNwcCAqLywKIAkJCQlFMThFNjkwQTE2OUI1
NjNGMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eS5oICovLAogCQkJCUUxOEU2OTBEMTY5QjU3
REYwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTUxNEQ5
RjU1MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIuaCAqLywKKwkJCQk1MTRE
OUY1NjE5MTE5RDM1MDAwMDYzQTcgLyogU2VydmljZXNDb250cm9sbGVyLm1tICovLAogCQkJCTFB
QTQxN0VEMTJDMDBEODcwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlck1hYy5tbSAqLywKIAkJCQkxQUYw
NUQ4NTE0Njg4MzQ4MDA4QjFFODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94
eS5oICovLAogCQkJCTFBRjA1RDg0MTQ2ODgzNDgwMDhCMUU4MSAvKiBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYVByb3h5Lm1tICovLApAQCAtNjcwOCw2ICs2NzE0LDcgQEAKIAkJCQlCQzAz
MkRBQjEwRjQzN0QxMDA1OEMxNUEgLyogQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTEzNjE4M0UxNjMxMjZEQTAwQTk5RERFIC8qIENvbm5lY3Rpb25TdGFjay5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUFDMTQxNTExOEFDNDdFRTAwNkM2MDJDIC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRp
b25Qcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTREOUY1NzE5MTE5RDM1MDAwMDYzQTcg
LyogU2VydmljZXNDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREMzODMwQzE3MjEy
MjgyMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTVFNzczMDE4NDAxNTgwMDAwNzIwM0YgLyogVW5pcXVlSURCRGF0YWJhc2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUI4NzhCNjE1MTMzNDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0aW9uUGFu
ZWwuaCBpbiBIZWFkZXJzICovLApAQCAtODUwMCw2ICs4NTA3LDcgQEAKIAkJCQlCQzExMUE1RDEx
MkY0RkJCMDAzMzdCQUIgLyogV2ViRHJhZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
NTc0QTM3NzEyRTYwOTlEMDAyREZFOTggLyogV2ViRHJhZ0NsaWVudE1hYy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDQTBFRkEwMTIzMzI2NDIwMDdEM0NGQiAvKiBXZWJFZGl0Q29tbWFuZFByb3h5
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxNEQ5RjU4MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2
aWNlc0NvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzExMUE1RTExMkY0RkJCMDAz
MzdCQUIgLyogV2ViRWRpdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1MjM3RjYw
MTI0NDFDQTMwMDc4MDQ3MiAvKiBXZWJFZGl0b3JDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQlCQzU3NTYxMzEyNkUwMTM4MDA2RjBGMTIgLyogQVBJRXJyb3IuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvU2VsZWN0
aW9uT3ZlcmxheUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1NlbGVjdGlvbk92ZXJsYXlDb250cm9sbGVyLmNwcAppbmRleCBkM2IyMWU5Li44ZTAzZjVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvU2VsZWN0aW9u
T3ZlcmxheUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9TZWxlY3Rpb25PdmVybGF5Q29udHJvbGxlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNp
ZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKIAogI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTkxLDEwICs5MiwxMSBAQCB2b2lkIFNlbGVj
dGlvbk92ZXJsYXlDb250cm9sbGVyOjpzZWxlY3Rpb25SZWN0c0RpZENoYW5nZShjb25zdCBWZWN0
b3I8TGF5b3V0UmVjdAogCiAgICAgbV9jdXJyZW50U2VsZWN0aW9uUmVjdHMgPSByZWN0czsKIAot
ICAgIGlmIChtX2N1cnJlbnRTZWxlY3Rpb25SZWN0cy5pc0VtcHR5KCkpCi0gICAgICAgIGRlc3Ry
b3lPdmVybGF5KCk7Ci0gICAgZWxzZQorICAgIGlmIChXZWJQcm9jZXNzOjpzaGFyZWQoKS5oYXNT
ZWxlY3Rpb25TZXJ2aWNlcygpICYmICFtX2N1cnJlbnRTZWxlY3Rpb25SZWN0cy5pc0VtcHR5KCkp
CiAgICAgICAgIGNyZWF0ZU92ZXJsYXlJZk5lZWRlZCgpOworICAgIGVsc2UKKyAgICAgICAgZGVz
dHJveU92ZXJsYXkoKTsKKwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocmVjdHMpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1NlbGVj
dGlvbk92ZXJsYXlDb250cm9sbGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9TZWxlY3Rpb25PdmVybGF5Q29udHJvbGxlck1hYy5tbQppbmRleCBkMmQ4OTc2
Li43NzdhZWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1NlbGVjdGlvbk92ZXJsYXlDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvU2VsZWN0aW9uT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0K
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogCisjaW1w
b3J0ICJXZWJQcm9jZXNzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVmlldy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWFpbkZyYW1l
Lmg+CkBAIC01OSw2ICs2MCwxMSBAQCB2b2lkIFNlbGVjdGlvbk92ZXJsYXlDb250cm9sbGVyOjpk
cmF3UmVjdChQYWdlT3ZlcmxheSogb3ZlcmxheSwgV2ViQ29yZTo6R3JhcGhpYwogICAgIGlmICht
X2N1cnJlbnRTZWxlY3Rpb25SZWN0cy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAorICAg
IGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuaGFzU2VsZWN0aW9uU2VydmljZXMoKSkgeworICAg
ICAgICBkZXN0cm95T3ZlcmxheSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYg
KCFtX2N1cnJlbnRIaWdobGlnaHQpIHsKICAgICAgICAgVmVjdG9yPENHUmVjdD4gY2dSZWN0czsK
ICAgICAgICAgY2dSZWN0cy5yZXNlcnZlQ2FwYWNpdHkobV9jdXJyZW50U2VsZWN0aW9uUmVjdHMu
c2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGUy
NmVmMTUuLmVlOTVkMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cApAQCAtMTY3LDYgKzE2NywxMCBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAsIG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyKFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6Y3JlYXRlKCkpCiAjZW5kaWYK
KyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKyAgICAsIG1faGFzSW1hZ2VTZXJ2aWNlcyhm
YWxzZSkKKyAgICAsIG1faGFzU2VsZWN0aW9uU2VydmljZXMoZmFsc2UpCisjZW5kaWYKICAgICAs
IG1fbm9uVmlzaWJsZVByb2Nlc3NDbGVhbnVwVGltZXIodGhpcywgJldlYlByb2Nlc3M6Om5vblZp
c2libGVQcm9jZXNzQ2xlYW51cFRpbWVyRmlyZWQpCiB7CiAgICAgLy8gSW5pdGlhbGl6ZSBvdXIg
cGxhdGZvcm0gc3RyYXRlZ2llcy4KQEAgLTM1OSw2ICszNjMsMTAgQEAgdm9pZCBXZWJQcm9jZXNz
Ojppbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWUKICAgICAgICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5zLmFkZChwYXJhbWV0ZXJz
LnBsdWdJbkF1dG9TdGFydE9yaWdpbnNbaV0pOwogCiAgICAgc2V0TWVtb3J5Q2FjaGVEaXNhYmxl
ZChwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJsZWQpOworCisjaWYgRU5BQkxFKFNFUlZJQ0Vf
Q09OVFJPTFMpCisgICAgc2V0RW5hYmxlZFNlcnZpY2VzKHBhcmFtZXRlcnMuaGFzSW1hZ2VTZXJ2
aWNlcywgcGFyYW1ldGVycy5oYXNTZWxlY3Rpb25TZXJ2aWNlcyk7CisjZW5kaWYKIH0KIAogI2lm
IEVOQUJMRShORVRXT1JLX1BST0NFU1MpCkBAIC0xMTczLDQgKzExODEsMTIgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpzZXRNZW1vcnlDYWNoZURpc2FibGVkKGJvb2wgZGlzYWJsZWQpCiAgICAgICAgIG1l
bW9yeUNhY2hlKCktPnNldERpc2FibGVkKGRpc2FibGVkKTsKIH0KIAorI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQordm9pZCBXZWJQcm9jZXNzOjpzZXRFbmFibGVkU2VydmljZXMoYm9vbCBo
YXNJbWFnZVNlcnZpY2VzLCBib29sIGhhc1NlbGVjdGlvblNlcnZpY2VzKQoreworICAgIG1faGFz
SW1hZ2VTZXJ2aWNlcyA9IGhhc0ltYWdlU2VydmljZXM7CisgICAgbV9oYXNTZWxlY3Rpb25TZXJ2
aWNlcyA9IGhhc1NlbGVjdGlvblNlcnZpY2VzOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBkYjBjODg5
Li4yZTI5ODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTgz
LDYgKzE4MywxMSBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IGFwaU9iamVj
dEJ5Q29udmVydGluZ0Zyb21IYW5kbGVzKEFQSTo6T2JqZWN0Kik7CiAKKyNpZiBFTkFCTEUoU0VS
VklDRV9DT05UUk9MUykKKyAgICBib29sIGhhc0ltYWdlU2VydmljZXMoKSBjb25zdCB7IHJldHVy
biBtX2hhc0ltYWdlU2VydmljZXM7IH0KKyAgICBib29sIGhhc1NlbGVjdGlvblNlcnZpY2VzKCkg
Y29uc3QgeyByZXR1cm4gbV9oYXNTZWxlY3Rpb25TZXJ2aWNlczsgfQorI2VuZGlmCisKIHByaXZh
dGU6CiAgICAgV2ViUHJvY2VzcygpOwogCkBAIC0yNDIsNiArMjQ3LDEwIEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHNldE1lbW9yeUNhY2hlRGlzYWJsZWQoYm9vbCk7CiAKKyNpZiBFTkFCTEUoU0VS
VklDRV9DT05UUk9MUykKKyAgICB2b2lkIHNldEVuYWJsZWRTZXJ2aWNlcyhib29sIGhhc0ltYWdl
U2VydmljZXMsIGJvb2wgaGFzU2VsZWN0aW9uU2VydmljZXMpOworI2VuZGlmCisKICAgICB2b2lk
IHBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNz
YWdlRGF0YSk7CiAgICAgdm9pZCBzZXRJbmplY3RlZEJ1bmRsZVBhcmFtZXRlcihjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAKQEAgLTMyNSw2ICszMzQsMTEg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyPiBt
X3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKFNF
UlZJQ0VfQ09OVFJPTFMpCisgICAgYm9vbCBtX2hhc0ltYWdlU2VydmljZXM7CisgICAgYm9vbCBt
X2hhc1NlbGVjdGlvblNlcnZpY2VzOworI2VuZGlmCisKICAgICBIYXNoU2V0PHVpbnQ2NF90PiBt
X3BhZ2VzSW5XaW5kb3dzOwogICAgIFdlYkNvcmU6OlRpbWVyPFdlYlByb2Nlc3M+IG1fbm9uVmlz
aWJsZVByb2Nlc3NDbGVhbnVwVGltZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGE2ZmE1ZTAuLjhkZTc5MTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTg4LDQgKzg4LDggQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAj
ZW5kaWYKIAogICAgIFNldE1lbW9yeUNhY2hlRGlzYWJsZWQoYm9vbCBkaXNhYmxlZCk7CisKKyNp
ZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKyAgICBTZXRFbmFibGVkU2VydmljZXMoYm9vbCBo
YXNJbWFnZVNlcnZpY2VzLCBib29sIGhhc1NlbGVjdGlvblNlcnZpY2VzKQorI2VuZGlmCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>