<?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>98097</bug_id>
          
          <creation_ts>2012-10-01 17:07:12 -0700</creation_ts>
          <short_desc>Attempt to simplify IPC message dispatching logic in WebKit2</short_desc>
          <delta_ts>2012-10-03 00:10:37 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>abecsi</cc>
    
    <cc>bw80.lee</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>menard</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zan</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>732137</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-01 17:07:12 -0700</bug_when>
    <thetext>Attempt to simplify IPC message dispatching logic in WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732142</commentid>
    <comment_count>1</comment_count>
      <attachid>166577</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-01 17:13:56 -0700</bug_when>
    <thetext>Created attachment 166577
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732192</commentid>
    <comment_count>2</comment_count>
      <attachid>166577</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-10-01 18:30:18 -0700</bug_when>
    <thetext>Comment on attachment 166577
Patch

Attachment 166577 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14130085</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732196</commentid>
    <comment_count>3</comment_count>
      <attachid>166577</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-10-01 18:35:03 -0700</bug_when>
    <thetext>Comment on attachment 166577
Patch

Attachment 166577 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14124154</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732816</commentid>
    <comment_count>4</comment_count>
      <attachid>166713</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-02 10:53:18 -0700</bug_when>
    <thetext>Created attachment 166713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732959</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-02 12:35:23 -0700</bug_when>
    <thetext>Not sure why the GTK+ bot isn&apos;t finding the new files - I&apos;m going to land this anyway and see if it breaks the build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732981</commentid>
    <comment_count>6</comment_count>
      <attachid>166737</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-02 12:59:57 -0700</bug_when>
    <thetext>Created attachment 166737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732982</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-02 13:00:19 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Not sure why the GTK+ bot isn&apos;t finding the new files - I&apos;m going to land this anyway and see if it breaks the build.

Looks like i used spaces instead of tabs in the Makefile. Trying again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733041</commentid>
    <comment_count>8</comment_count>
      <attachid>166743</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-02 13:44:39 -0700</bug_when>
    <thetext>Created attachment 166743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733055</commentid>
    <comment_count>9</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-02 14:02:26 -0700</bug_when>
    <thetext>Committed r130207: &lt;http://trac.webkit.org/changeset/130207&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733400</commentid>
    <comment_count>10</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-03 00:10:37 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; Not sure why the GTK+ bot isn&apos;t finding the new files - I&apos;m going to land this anyway and see if it breaks the build.
&gt; 
&gt; Looks like i used spaces instead of tabs in the Makefile. Trying again.

It still broke the build, but fixed in r130257.
http://trac.webkit.org/changeset/130257</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166577</attachid>
            <date>2012-10-01 17:13:56 -0700</date>
            <delta_ts>2012-10-02 10:53:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98097-20121001171309.patch</filename>
            <type>text/plain</type>
            <size>28215</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjllZmQyYTY2ZjYyYmU1
MTQzYTJlMTEwYmQ4YzcxMzNkZDBlYTYyYi4uYzk5ZDkyYzEzNmViNWNlZWQ1MjEwNDAzZDgzMDYz
NDNiOGFkMWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTEwLTAxICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQXR0ZW1wdCB0byBz
aW1wbGlmeSBJUEMgbWVzc2FnZSBkaXNwYXRjaGluZyBsb2dpYyBpbiBXZWJLaXQyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODA5NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIENvbm5lY3Rp
b246Ok1lc3NhZ2VSZWNlaXZlciBjbGFzcyB0byBpdHMgb3duIGhlYWRlciBmaWxlLiBBZGQgYSBN
ZXNzYWdlUmVjZWl2ZXJNYXAgaGVscGVyIGNsYXNzCisgICAgICAgIHRoYXQgd2lsbCBiZSB1c2Vk
IGZvciBkaXNwYXRjaGluZyBtZXNzYWdlcyBiYXNlZCBvbiBtZXNzYWdlIGNsYXNzIChhbmQgZXZl
bnR1YWxseSBkZXN0aW5hdGlvbiBJRCkuCisKKyAgICAgICAgQ29udmVydCBBdXRoZW50aWNhdGlv
bk1hbmFnZXIgYW5kIFdlYkdlb2xvY2F0aW9uTWFuYWdlciBvdmVyIHRvIHRoaXMgbmV3IG1lY2hh
bmlzbS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxl
Lmxpc3QuYW06CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9D
b3JlSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6ZGlz
cGF0Y2hNZXNzYWdlKToKKyAgICAgICAgQ2hlY2sgd2l0aCB0aGUgbWVzc2FnZSByZWNlaXZlciBt
YXAgZmlyc3QgYmVmb3JlIGNhbGxpbmcgQ29ubmVjdGlvbjo6Q2xpZW50OjpkaWRSZWNlaXZlTWVz
c2FnZS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oOgorICAgICAg
ICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6YWRkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgQ2Fs
bCB0aHJvdWdoIHRvIHRoZSBtZXNzYWdlIHJlY2VpdmVyIG1hcC4KKworICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZUlELmg6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlSUQ6Om1l
c3NhZ2VDbGFzcyk6CisgICAgICAgIFJlbmFtZSBNZXNzYWdlQ2xhc3NSZXNlcnZlZCB0byBNZXNz
YWdlQ2xhc3NJbnZhbGlkLgorCisgICAgICAgIChNZXNzYWdlSUQpOgorICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyLmg6CisgICAgICAgIE1vdmUgTWVzc2FnZVJlY2Vp
dmVyIGZyb20gQ29ubmVjdGlvbi5oIHRvIGl0cyBvd24gZmlsZS4KKworICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcDoKKyAgICAgICAgTmV3IGhlbHBlciBj
bGFzcy4KKworICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyTWFwOjphZGRNZXNzYWdl
UmVjZWl2ZXIpOgorICAgICAgICBBZGQgdGhlIHJlY2VpdmVyIHRvIHRoZSBtYXAgb2YgcmVjZWl2
ZXJzLgorCisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXA6OmRpc3BhdGNoTWVz
c2FnZSk6CisgICAgICAgIENoZWNrIGlmIHdlIGhhdmUgYW55IHJlZ2lzdGVyZWQgcmVjZWl2ZXJz
IGZvciB0aGlzIG1lc3NhZ2UgY2xhc3MuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01l
c3NhZ2VSZWNlaXZlck1hcC5oOgorICAgICAgICBOZXcgZmlsZS4KKworICAgICAgICAqIFRhcmdl
dC5wcmk6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5h
Z2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
TWFuYWdlci5oOgorICAgICAgICAoQXV0aGVudGljYXRpb25NYW5hZ2VyKToKKyAgICAgICAgUmVn
aXN0ZXIgdGhlIGF1dGhlbnRpY2F0aW9uIG1hbmFnZXIgYXMgYSBtZXNzYWdlIHJlY2VpdmVyLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OldlYkdlb2xvY2F0
aW9uTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uTWFuYWdlcik6CisgICAgICAg
IFJlZ2lzdGVyIHRoZSBnZW9sb2NhdGlvbiBtYW5hZ2VyIGFzIGEgbWVzc2FnZSByZWNlaXZlci4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgUmVtb3ZlIGNoZWNrcyBm
b3IgYXV0aGVudGljYXRpb24gbWFuYWdlciBhbmQgZ2VvbG9jYXRpb24gbWFuYWdlciBtZXNzYWdl
cy4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKyAgICAgICAgQWRkIG5ldyBmaWxl
cy4KKwogMjAxMi0xMC0wMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50
ZWwuY29tPgogCiAgICAgICAgIEZpeCBjb21waWxhdGlvbiB3YXJuaW5ncwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dAppbmRleCBkMDA5NmFjMjVhNDczNDM5MjQyMjI2NTI5NDBkMjIyNjMxNjI2ZDk0Li4xMTli
NTQxZjMwNTVmNjYyMzFiYTQ5ZGYzYzYxZjkxNGJlOTEyNjg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dApAQCAtMTIzLDYgKzEyMyw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBQbGF0Zm9ybS9D
b3JlSVBDL0JpbmFyeVNlbWFwaG9yZS5jcHAKICAgICBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rp
b24uY3BwCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcAorICAgIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAogCiAgICAgUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuY3BwCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlv
blBhcmFtZXRlcnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxM2M2ZmE3
ZDUyMjBkMGI2MDg5OWZlMTE4ZTA5NTNjY2E2N2Y3NjFjLi42OTUyMDE0OWU2MjllZTM5ZDkyNGQ1
YzQ5MGI1ZDNmMGFhNjIyMWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI1
Miw2ICsyNTIsOSBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvQ29yZUlQQ01lc3NhZ2VLaW5kcy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL0RhdGFSZWZlcmVuY2UuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0RhdGFSZWZlcmVuY2UuaCBcCisgICAgU291cmNlLldlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9NZXNzYWdlUmVjZWl2ZXIuaCBcCisgICAgU291cmNlLldlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIFwKKyAgICBTb3VyY2UuV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9NZXNzYWdlSUQuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9N
ZXNzYWdlU2VuZGVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29u
bmVjdGlvbi5jcHAKaW5kZXggYjE5ZWI3NTA3MDExZDRmNjZmNTYzM2VkMjcwYWE0YTBhYmEwMjk5
MC4uZDM0Y2U5NWFiZjY1Njk5NGU4NWFjOTI0MGJhMTE3ZTEzNWI5MTY0MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC02NjgsNiArNjY4
LDE1IEBAIHZvaWQgQ29ubmVjdGlvbjo6ZW5xdWV1ZUluY29taW5nTWVzc2FnZShJbmNvbWluZ01l
c3NhZ2UmIGluY29taW5nTWVzc2FnZSkKICAgICBtX2NsaWVudFJ1bkxvb3AtPmRpc3BhdGNoKFdU
Rjo6YmluZCgmQ29ubmVjdGlvbjo6ZGlzcGF0Y2hPbmVNZXNzYWdlLCB0aGlzKSk7CiB9CiAKK3Zv
aWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKE1lc3NhZ2VJRCBtZXNzYWdlSUQsIEFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyKQoreworICAgIC8vIFRyeSB0aGUgbWVzc2FnZSBy
ZWNlaXZlciBtYXAgZmlyc3QuCisgICAgaWYgKG1fbWVzc2FnZVJlY2VpdmVyTWFwLmRpc3BhdGNo
TWVzc2FnZSh0aGlzLCBtZXNzYWdlSUQsIGFyZ3VtZW50RGVjb2RlcikpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZSh0aGlzLCBtZXNzYWdlSUQsIGFy
Z3VtZW50RGVjb2Rlcik7Cit9CisKIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKElu
Y29taW5nTWVzc2FnZSYgbWVzc2FnZSkKIHsKICAgICBPd25QdHI8QXJndW1lbnREZWNvZGVyPiBh
cmd1bWVudHMgPSBtZXNzYWdlLnJlbGVhc2VBcmd1bWVudHMoKTsKQEAgLTY4OCw3ICs2OTcsNyBA
QCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2UmIG1lc3Nh
Z2UpCiAgICAgaWYgKG1lc3NhZ2UubWVzc2FnZUlEKCkuaXNTeW5jKCkpCiAgICAgICAgIGRpc3Bh
dGNoU3luY01lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQoKSwgYXJndW1lbnRzLmdldCgpKTsKICAg
ICBlbHNlCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZSh0aGlzLCBtZXNzYWdl
Lm1lc3NhZ2VJRCgpLCBhcmd1bWVudHMuZ2V0KCkpOworICAgICAgICBkaXNwYXRjaE1lc3NhZ2Uo
bWVzc2FnZS5tZXNzYWdlSUQoKSwgYXJndW1lbnRzLmdldCgpKTsKIAogICAgIG1fZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlIHw9IGFyZ3VtZW50cy0+aXNJbnZhbGlkKCk7CiAgICAgbV9pbkRpc3Bh
dGNoTWVzc2FnZUNvdW50LS07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29u
bmVjdGlvbi5oCmluZGV4IDg4NTBkZTBkM2VmMTM1ZjNlOGQ5ZTAzYjhlOWE0MjlhN2RjNGE4MjQu
LjhjMzg4MDA0MDEzY2U4MDZiMWExZWExYTBkNmQyNDRkMjg3ZWE4MTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCkBAIC0zMSw5ICszMSw5IEBACiAj
aW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgi
CiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCi0jaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVk
ZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCiAj
aW5jbHVkZSAiV29ya1F1ZXVlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CkBAIC04NSwxNSArODUsNiBAQCB3aGlsZSAoMCkKIAogY2xhc3MgQ29u
bmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDb25uZWN0aW9uPiB7CiBwdWJs
aWM6Ci0gICAgY2xhc3MgTWVzc2FnZVJlY2VpdmVyIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBBcmd1
bWVudERlY29kZXIqKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiwgT3duUHRyPEFy
Z3VtZW50RW5jb2Rlcj4mKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0KLSAgICBwcm90ZWN0
ZWQ6Ci0gICAgICAgIHZpcnR1YWwgfk1lc3NhZ2VSZWNlaXZlcigpIHsgfQotICAgIH07Ci0gICAg
CiAgICAgY2xhc3MgQ2xpZW50IDogcHVibGljIE1lc3NhZ2VSZWNlaXZlciB7CiAgICAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29ubmVjdGlvbiopID0gMDsKQEAgLTE4
MSw2ICsxNzIsMTEgQEAgcHVibGljOgogICAgIHZvaWQgYWRkUXVldWVDbGllbnQoUXVldWVDbGll
bnQqKTsKICAgICB2b2lkIHJlbW92ZVF1ZXVlQ2xpZW50KFF1ZXVlQ2xpZW50Kik7CiAKKyAgICB2
b2lkIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlQ2xhc3MgbWVzc2FnZUNsYXNzLCBNZXNzYWdl
UmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZlcikKKyAgICB7CisgICAgICAgIG1fbWVzc2FnZVJlY2Vp
dmVyTWFwLmFkZE1lc3NhZ2VSZWNlaXZlcihtZXNzYWdlQ2xhc3MsIG1lc3NhZ2VSZWNlaXZlcik7
CisgICAgfQorCiAgICAgYm9vbCBvcGVuKCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAgICAg
dm9pZCBtYXJrQ3VycmVudGx5RGlzcGF0Y2hlZE1lc3NhZ2VBc0ludmFsaWQoKTsKQEAgLTI3OSw4
ICsyNzUsOSBAQCBwcml2YXRlOgogCiAgICAgLy8gQ2FsbGVkIG9uIHRoZSBsaXN0ZW5lciB0aHJl
YWQuCiAgICAgdm9pZCBkaXNwYXRjaENvbm5lY3Rpb25EaWRDbG9zZSgpOwotICAgIHZvaWQgZGlz
cGF0Y2hNZXNzYWdlKEluY29taW5nTWVzc2FnZSYpOwogICAgIHZvaWQgZGlzcGF0Y2hPbmVNZXNz
YWdlKCk7CisgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2UoSW5jb21pbmdNZXNzYWdlJik7CisgICAg
dm9pZCBkaXNwYXRjaE1lc3NhZ2UoTWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqKTsKICAgICB2
b2lkIGRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqKTsKICAg
ICB2b2lkIGRpZEZhaWxUb1NlbmRTeW5jTWVzc2FnZSgpOwogCkBAIC0zMTEsNiArMzA4LDggQEAg
cHJpdmF0ZToKICAgICBNdXRleCBtX2luY29taW5nTWVzc2FnZXNMb2NrOwogICAgIERlcXVlPElu
Y29taW5nTWVzc2FnZT4gbV9pbmNvbWluZ01lc3NhZ2VzOwogCisgICAgTWVzc2FnZVJlY2VpdmVy
TWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOworCiAgICAgLy8gT3V0Z29pbmcgbWVzc2FnZXMuCiAg
ICAgTXV0ZXggbV9vdXRnb2luZ01lc3NhZ2VzTG9jazsKICAgICBEZXF1ZTxPdXRnb2luZ01lc3Nh
Z2U+IG1fb3V0Z29pbmdNZXNzYWdlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZUlELmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VJRC5oCmluZGV4IDIyZDMwNmIwNGY3ZDNiY2MyZWY5NjRiYTQ5MDA3ZTljYTQyY2Jl
MzMuLjE4ZDJkNzlmYzU5YmEyMmJiZTBiNWVkZDE1ZWNkY2ZkYWZkM2I3NWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaApAQCAtMjksNyArMjksNyBAQAog
bmFtZXNwYWNlIENvcmVJUEMgewogCiBlbnVtIE1lc3NhZ2VDbGFzcyB7Ci0gICAgTWVzc2FnZUNs
YXNzUmVzZXJ2ZWQgPSAwLAorICAgIE1lc3NhZ2VDbGFzc0ludmFsaWQgPSAwLAogCiAgICAgLy8g
TWVzc2FnZXMgc2VudCBieSBDb3JlIElQQy4KICAgICBNZXNzYWdlQ2xhc3NDb3JlSVBDLApAQCAt
MTgwLDYgKzE4MCwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGREaXNwYXRjaE1lc3NhZ2VX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWdzKCkgJiBEaXNw
YXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTsgfQogICAgIGJvb2wgaXNTeW5jKCkg
Y29uc3QgeyByZXR1cm4gZ2V0RmxhZ3MoKSAmIFN5bmNNZXNzYWdlOyB9CiAKKyAgICBNZXNzYWdl
Q2xhc3MgbWVzc2FnZUNsYXNzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxNZXNzYWdlQ2xhc3M+KGdldENsYXNzKCkpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBz
dGF0aWMgaW5saW5lIHVuc2lnbmVkIHN0cmlwTW9zdFNpZ25pZmljYW50Qml0KHVuc2lnbmVkIHZh
bHVlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZVJlY2VpdmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3Nh
Z2VSZWNlaXZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3YjYxY2NkYzMwNmVlZWNiNmJmNjdmMWExNDhlNTBh
NTRiZDU0ODcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL01lc3NhZ2VSZWNlaXZlci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIE1lc3NhZ2VSZWNlaXZlcl9oCisjZGVmaW5lIE1lc3NhZ2VSZWNlaXZlcl9oCisKKyNpbmNs
dWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworCitjbGFzcyBBcmd1bWVudERl
Y29kZXI7CitjbGFzcyBBcmd1bWVudEVuY29kZXI7CitjbGFzcyBDb25uZWN0aW9uOworCitjbGFz
cyBNZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgfk1lc3NhZ2VSZWNlaXZl
cigpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvbm5lY3Rpb24q
LCBNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2Rl
ciosIE93blB0cjxBcmd1bWVudEVuY29kZXI+JikKKyAgICB7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIENvcmVJUEMKKworI2VuZGlm
IC8vIE1lc3NhZ2VSZWNlaXZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWNlNzdkYzYyZDVm
Y2Q2Y2JkZjdjZTkyOWVjMzdlMWM4N2U5MGFjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcApAQCAtMCwwICsx
LDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lc3Nh
Z2VSZWNlaXZlck1hcC5oIgorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisKK25hbWVz
cGFjZSBDb3JlSVBDIHsKKworTWVzc2FnZVJlY2VpdmVyTWFwOjpNZXNzYWdlUmVjZWl2ZXJNYXAo
KQoreworfQorCitNZXNzYWdlUmVjZWl2ZXJNYXA6On5NZXNzYWdlUmVjZWl2ZXJNYXAoKQorewor
fQorCit2b2lkIE1lc3NhZ2VSZWNlaXZlck1hcDo6YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VD
bGFzcyBtZXNzYWdlQ2xhc3MsIE1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyKQorewor
ICAgIEFTU0VSVCghbV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJNYXAuY29udGFpbnMobWVzc2FnZUNs
YXNzKSk7CisgICAgbV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJNYXAuc2V0KG1lc3NhZ2VDbGFzcywg
bWVzc2FnZVJlY2VpdmVyKTsKK30KKworYm9vbCBNZXNzYWdlUmVjZWl2ZXJNYXA6OmRpc3BhdGNo
TWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlSUQgbWVzc2FnZUlELCBBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlcikKK3sKKyAgICBpZiAoTWVzc2FnZVJlY2VpdmVy
KiBtZXNzYWdlUmVjZWl2ZXIgPSBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlck1hcC5nZXQobWVzc2Fn
ZUlELm1lc3NhZ2VDbGFzcygpKSkgeworICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5h
bWVzcGFjZSBDb3JlSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9NZXNzYWdlUmVjZWl2ZXJNYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2ZlNGNkNTQ1MzkxNTNmYWM4ODA5
MjQ4NDQxNzUzOGRjZjY4NGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaApAQCAtMCwwICsxLDU0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBNZXNzYWdlUmVjZWl2ZXJNYXBfaAorI2RlZmluZSBNZXNzYWdlUmVj
ZWl2ZXJNYXBfaAorCisjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworCitjbGFzcyBBcmd1bWVudERlY29kZXI7Citj
bGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZVJlY2VpdmVyOworCitjbGFzcyBNZXNzYWdl
UmVjZWl2ZXJNYXAgeworcHVibGljOgorICAgIE1lc3NhZ2VSZWNlaXZlck1hcCgpOworICAgIH5N
ZXNzYWdlUmVjZWl2ZXJNYXAoKTsKKworICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VDbGFzcywgTWVzc2FnZVJlY2VpdmVyKik7CisKKyAgICBib29sIGRpc3BhdGNoTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKworcHJpdmF0ZToKKyAgICAvLyBNZXNzYWdlIHJlY2VpdmVycyB0aGF0IGRv
bid0IHJlcXVpcmUgYSBkZXN0aW5hdGlvbiBJRC4KKyAgICBIYXNoTWFwPHVuc2lnbmVkLCBNZXNz
YWdlUmVjZWl2ZXIqPiBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlck1hcDsKK307CisKK307CisKKyNl
bmRpZiAvLyBNZXNzYWdlUmVjZWl2ZXJNYXBfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggMTVmYTBiMThhMTE4
OGM2N2QwODA3YzA4YTYwNjExMTlhNTJiNTdmMi4uNGYzOTMwNzUzY2FmYzE4YzAwMDdhZDdjYTFi
ZjQ4OGVlNjE0YjkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0yNiw2ICsyNiw4IEBAIEhFQURFUlMgKz0g
XAogICAgIFBsYXRmb3JtL0NvcmVJUEMvRGF0YVJlZmVyZW5jZS5oIFwKICAgICBQbGF0Zm9ybS9D
b3JlSVBDL0hhbmRsZU1lc3NhZ2UuaCBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQu
aCBcCisgICAgUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXIuaCBcCisgICAgUGxhdGZv
cm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaCBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9N
ZXNzYWdlU2VuZGVyLmggXAogICAgIFBsYXRmb3JtL0xvZ2dpbmcuaCBcCiAgICAgUGxhdGZvcm0v
TW9kdWxlLmggXApAQCAtMzgyLDYgKzM4NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFBsYXRmb3Jt
L0NvcmVJUEMvQXR0YWNobWVudC5jcHAgXAogICAgIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlv
bi5jcHAgXAogICAgIFBsYXRmb3JtL0NvcmVJUEMvRGF0YVJlZmVyZW5jZS5jcHAgXAorICAgIFBs
YXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcCBcCiAgICAgUGxhdGZvcm0vTG9n
Z2luZy5jcHAgXAogICAgIFBsYXRmb3JtL01vZHVsZS5jcHAgXAogICAgIFBsYXRmb3JtL1dvcmtR
dWV1ZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDQ0ZmE5NzA4YjFlYWY1YWZjYTc3ZGVlYTMxNjQxZjU1NTE5MzU4YTIu
LmQzMjliMzAxYmZlMWQxOGM0MWIzNTIzYjgyM2ZmNjU5MGUyNWY5NDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExNSw2ICsx
MTUsOSBAQAogCQkxQTNERDIwNjEyNUU1QTJGMDA0NTE1RTYgLyogQVBJQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTNERDIwNTEyNUU1QTJG
MDA0NTE1RTYgLyogQVBJQ2xpZW50LmggKi87IH07CiAJCTFBM0U3MzYxMTFDQzI2NTkwMDdCRDUz
OSAvKiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0U3MzVGMTFDQzI2NTkwMDdCRDUzOSAvKiBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaCAqLzsgfTsKIAkJMUEzRTczNjIxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQTNFNzM2MDExQ0MyNjU5MDA3QkQ1MzkgLyogV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcCAqLzsgfTsKKwkJMUEzRUVEMEUxNjFBNTM1NDAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNl
aXZlck1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTNFRUQwQzE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmNwcCAqLzsg
fTsKKwkJMUEzRUVEMEYxNjFBNTM1NDAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEzRUVEMEQxNjFB
NTM1MzAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5oICovOyB9OworCQkxQTNFRUQxMjE2
MUE1M0Q2MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTNFRUQxMTE2MUE1M0Q2MDBBRUI0RjUgLyogTWVz
c2FnZVJlY2VpdmVyLmggKi87IH07CiAJCTFBNDMzRjBEMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJF
cnJvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
NDMzRjBDMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCAqLzsgfTsKIAkJMUE0QTlBQTgx
MkI3RTc5NjAwOEZFOTg0IC8qIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0QTlBQTYxMkI3RTc5NjAw
OEZFOTg0IC8qIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5oICovOyB9OwogCQkxQTRBOUFB
OTEyQjdFNzk2MDA4RkU5ODQgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0QTlBQTcxMkI3RTc5
NjAwOEZFOTg0IC8qIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbSAqLzsgfTsKQEAgLTEx
NDksNiArMTE1Miw5IEBACiAJCTFBM0REMjA1MTI1RTVBMkYwMDQ1MTVFNiAvKiBBUElDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBM0U3MzVGMTFDQzI2NTkwMDdCRDUzOSAvKiBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBM0U3MzYw
MTFDQzI2NTkwMDdCRDUzOSAvKiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEzRUVEMEMxNjFBNTM1MzAwQUVCNEY1IC8qIE1l
c3NhZ2VSZWNlaXZlck1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
QTNFRUQwRDE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZlck1hcC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQTNFRUQxMTE2MUE1M0Q2MDBBRUI0RjUgLyogTWVzc2FnZVJl
Y2VpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTQzM0YwQzExM0M1M0REMDBGQUNE
RTkgLyogV2ViRXJyb3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkVy
cm9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTRBOUFBNjEyQjdFNzk2MDA4
RkU5ODQgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQTRBOUFBNzEyQjdFNzk2MDA4RkU5ODQgLyogV0tUZXh0SW5w
dXRXaW5kb3dDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjYwMCw2ICsyNjA2LDkgQEAKIAkJCQkxQThFRkRGOTEyNTNDQUEyMDBGNzA2
N0YgLyogRGF0YVJlZmVyZW5jZS5oICovLAogCQkJCUMwQ0U3MkFDMTI0N0U3OEQwMEJDMEVDNCAv
KiBIYW5kbGVNZXNzYWdlLmggKi8sCiAJCQkJQkMwMzJEQTQxMEY0MzdEMTAwNThDMTVBIC8qIE1l
c3NhZ2VJRC5oICovLAorCQkJCTFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVj
ZWl2ZXIuaCAqLywKKwkJCQkxQTNFRUQwQzE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2Vp
dmVyTWFwLmNwcCAqLywKKwkJCQkxQTNFRUQwRDE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJl
Y2VpdmVyTWFwLmggKi8sCiAJCQkJMUExMTlBOTQxMjdCNzk2MjAwQTlFQ0IxIC8qIE1lc3NhZ2VT
ZW5kZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gQ29yZUlQQzsKQEAgLTQyOTksNiArNDMwOCw4
IEBACiAJCQkJQkM1OTU0ODkxNUM3ODY4NTAwRkQxRTNFIC8qIFdlYktpdDIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDREMzMDg4MTVGRDZBOEIwMDZCNjY5NSAvKiBXZWJQcm9jZXNzSW5pdGlhbGl6
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREMzMDhDMTVGRDZDRDEwMDZCNjY5NSAvKiBX
ZWJQcm9jZXNzU2VydmljZUVudHJ5UG9pbnRzLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTNFRUQw
RjE2MUE1MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggaW4gSGVhZGVycyAqLywK
KwkJCQkxQTNFRUQxMjE2MUE1M0Q2MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKQEAgLTUxNTUsNiArNTE2Niw3IEBACiAJCQkJQ0Q2N0QzMEUxNUMwOEY5QTAwODQz
QURGIC8qIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDREMzMDg3MTVGRDZBOEIwMDZCNjY5NSAvKiBXZWJQcm9jZXNzSW5p
dGlhbGl6YXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0RDMzA4QjE1RkQ2Q0QxMDA2QjY2
OTUgLyogV2ViUHJvY2Vzc1NlcnZpY2VFbnRyeVBvaW50cy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTFBM0VFRDBFMTYxQTUzNTQwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggNDRlODMw
NmUwMTk2ZGE0NGZhZTY0Y2VkOWI0OTZjNTI3YTU0M2UwMi4uYTY4NThhYzI4ZDU5ZGNlNjI4NWQ2
YzM2YTc3ZGI0N2U3NjdhMmUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNw
cApAQCAtNTUsNiArNTUsNyBAQCBBdXRoZW50aWNhdGlvbk1hbmFnZXImIEF1dGhlbnRpY2F0aW9u
TWFuYWdlcjo6c2hhcmVkKCkKIAogQXV0aGVudGljYXRpb25NYW5hZ2VyOjpBdXRoZW50aWNhdGlv
bk1hbmFnZXIoKQogeworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+YWRk
TWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0F1dGhlbnRpY2F0aW9uTWFuYWdl
ciwgdGhpcyk7CiB9CiAKIHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0aW9uTWFuYWdlci5oCmluZGV4IDE5MmM5MWFlZjE3OTU5YjI2ZjUyZDVkMTNiZDI4
ZmMwYjhjY2U1M2YuLjkxODZkNDJmOWQ3YjAxNmY5ZmI1NzI3YmM3ZGNmMGY2NmY2YTgwMTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRl
ZiBBdXRoZW50aWNhdGlvbk1hbmFnZXJfaAogI2RlZmluZSBBdXRoZW50aWNhdGlvbk1hbmFnZXJf
aAogCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewpAQCAtNDUsMTQgKzQ2LDEyIEBAIGNsYXNzIERvd25s
b2FkOwogY2xhc3MgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBXZWJGcmFtZTsKIAot
Y2xhc3MgQXV0aGVudGljYXRpb25NYW5hZ2VyIHsKK2NsYXNzIEF1dGhlbnRpY2F0aW9uTWFuYWdl
ciA6IHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShBdXRoZW50aWNhdGlvbk1hbmFnZXIpOwogCiBwdWJsaWM6CiAgICAgc3RhdGljIEF1
dGhlbnRpY2F0aW9uTWFuYWdlciYgc2hhcmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOwotCiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoV2ViRnJhbWUqLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYp
OwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvd25sb2FkKiwg
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKIApAQCAtNjMsNiArNjIs
OSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlcigpOwogCisg
ICAgLy8gTWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopIE9WRVJSSURFOworCiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKIAogICAgIGJvb2wgdHJ5VXNlUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm9Gb3JDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXIuY3BwCmluZGV4IGYwN2M0MDYwZGNmNjgwNzkzNzhlZGYzOTM0ZDJmNjkyM2Yw
OWZiYWIuLjJiNzViMDQyZmZjZWI4MWFkOWU1ZTRkOGRlYzQ4MGM5ZjZiZmI5ODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25N
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dl
Ykdlb2xvY2F0aW9uTWFuYWdlci5jcHAKQEAgLTQyLDYgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OldlYkdlb2xvY2F0aW9uTWFuYWdlcihXZWJQcm9j
ZXNzKiBwcm9jZXNzKQogICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCiB7CisgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5hZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyLCB0aGlzKTsKIH0KIAogV2ViR2VvbG9jYXRp
b25NYW5hZ2VyOjp+V2ViR2VvbG9jYXRpb25NYW5hZ2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdl
ci5oCmluZGV4IDVjM2RmYWU5MzY0Njc2NDNiZTQzZjdlZTM0YjVjMmE3ZTg3ZmRlMjIuLmVlYjlh
Mjk2MzE1NTExYmJiOTYxMzc3OTBlZDg2MDU1MDBjZmNjM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1h
bmFnZXIuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJf
aAogI2RlZmluZSBXZWJHZW9sb2NhdGlvbk1hbmFnZXJfaAogCi0jaW5jbHVkZSAiTWVzc2FnZUlE
LmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KQEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJQ
cm9jZXNzOwogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgV2ViR2VvbG9jYXRpb25NYW5hZ2VyIHsK
K2NsYXNzIFdlYkdlb2xvY2F0aW9uTWFuYWdlciA6IHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJl
Y2VpdmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJHZW9sb2NhdGlvbk1hbmFnZXIp
OwogcHVibGljOgogICAgIGV4cGxpY2l0IFdlYkdlb2xvY2F0aW9uTWFuYWdlcihXZWJQcm9jZXNz
Kik7CkBAIC02MSw5ICs2MSwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNz
aW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOwogCiBwcml2YXRlOgorICAgIC8vIE1lc3NhZ2VSZWNlaXZlcgorICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKKwogICAg
IC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggZGUxODMyNDU5OTc3ZTUxNTAwN2E0Y2EwZjcyZWRhOGQ4YWZmNTk5MC4uMDA2MTM4
OGY1OTM3NDhiMTJiNDZjMzNlN2FhNzAxOWYwNTlmMjg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogCi0jaW5jbHVkZSAiQXV0aGVudGljYXRpb25N
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiSW5qZWN0
ZWRCdW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU1lc3NhZ2VLaW5kcy5oIgpAQCAt
NjM4LDExICs2MzcsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NBdXRo
ZW50aWNhdGlvbk1hbmFnZXI+KCkpIHsKLSAgICAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpz
aGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyPigpKSB7CiAgICAgICAg
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVybjsKQEAgLTY2
MCwxMSArNjU0LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMKICAgICB9CiAjZW5kaWYKIAot
ICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25N
YW5hZ2VyPigpKSB7Ci0gICAgICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyLmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKICAgICBpZiAobWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkJhdHRlcnlNYW5hZ2VyPigpKSB7CiAgICAgICAgIG1f
YmF0dGVyeU1hbmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBh
cmd1bWVudHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9q
IGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCmluZGV4IGYxYjBmNjVlYjNhZDBh
NzhhOTlkN2Q5Y2YxNWNlMjUxYWIwYmUxNzAuLmJkMDllMDhmMTIzYTg3YTYyOTMwNmIxNGJmN2Jm
YjM3NjQ2MTBlZTYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTQwOTAsNiArNDA5
MCwxOCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cUGxhdGZvcm1cQ29yZUlQQ1xNZXNzYWdlUmVjZWl2ZXIuaCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBsYXRmb3JtXENvcmVJUENc
TWVzc2FnZVJlY2VpdmVyTWFwLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBsYXRmb3JtXENvcmVJUENcTWVzc2FnZVJlY2VpdmVyTWFw
LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxQbGF0Zm9ybVxDb3JlSVBDXE1lc3NhZ2VTZW5kZXIuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166713</attachid>
            <date>2012-10-02 10:53:18 -0700</date>
            <delta_ts>2012-10-02 12:59:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98097-20121002105233.patch</filename>
            <type>text/plain</type>
            <size>28784</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjllZmQyYTY2ZjYyYmU1
MTQzYTJlMTEwYmQ4YzcxMzNkZDBlYTYyYi4uYzk5ZDkyYzEzNmViNWNlZWQ1MjEwNDAzZDgzMDYz
NDNiOGFkMWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTEwLTAxICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQXR0ZW1wdCB0byBz
aW1wbGlmeSBJUEMgbWVzc2FnZSBkaXNwYXRjaGluZyBsb2dpYyBpbiBXZWJLaXQyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODA5NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIENvbm5lY3Rp
b246Ok1lc3NhZ2VSZWNlaXZlciBjbGFzcyB0byBpdHMgb3duIGhlYWRlciBmaWxlLiBBZGQgYSBN
ZXNzYWdlUmVjZWl2ZXJNYXAgaGVscGVyIGNsYXNzCisgICAgICAgIHRoYXQgd2lsbCBiZSB1c2Vk
IGZvciBkaXNwYXRjaGluZyBtZXNzYWdlcyBiYXNlZCBvbiBtZXNzYWdlIGNsYXNzIChhbmQgZXZl
bnR1YWxseSBkZXN0aW5hdGlvbiBJRCkuCisKKyAgICAgICAgQ29udmVydCBBdXRoZW50aWNhdGlv
bk1hbmFnZXIgYW5kIFdlYkdlb2xvY2F0aW9uTWFuYWdlciBvdmVyIHRvIHRoaXMgbmV3IG1lY2hh
bmlzbS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxl
Lmxpc3QuYW06CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9D
b3JlSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6ZGlz
cGF0Y2hNZXNzYWdlKToKKyAgICAgICAgQ2hlY2sgd2l0aCB0aGUgbWVzc2FnZSByZWNlaXZlciBt
YXAgZmlyc3QgYmVmb3JlIGNhbGxpbmcgQ29ubmVjdGlvbjo6Q2xpZW50OjpkaWRSZWNlaXZlTWVz
c2FnZS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oOgorICAgICAg
ICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6YWRkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgQ2Fs
bCB0aHJvdWdoIHRvIHRoZSBtZXNzYWdlIHJlY2VpdmVyIG1hcC4KKworICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZUlELmg6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlSUQ6Om1l
c3NhZ2VDbGFzcyk6CisgICAgICAgIFJlbmFtZSBNZXNzYWdlQ2xhc3NSZXNlcnZlZCB0byBNZXNz
YWdlQ2xhc3NJbnZhbGlkLgorCisgICAgICAgIChNZXNzYWdlSUQpOgorICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyLmg6CisgICAgICAgIE1vdmUgTWVzc2FnZVJlY2Vp
dmVyIGZyb20gQ29ubmVjdGlvbi5oIHRvIGl0cyBvd24gZmlsZS4KKworICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcDoKKyAgICAgICAgTmV3IGhlbHBlciBj
bGFzcy4KKworICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyTWFwOjphZGRNZXNzYWdl
UmVjZWl2ZXIpOgorICAgICAgICBBZGQgdGhlIHJlY2VpdmVyIHRvIHRoZSBtYXAgb2YgcmVjZWl2
ZXJzLgorCisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXA6OmRpc3BhdGNoTWVz
c2FnZSk6CisgICAgICAgIENoZWNrIGlmIHdlIGhhdmUgYW55IHJlZ2lzdGVyZWQgcmVjZWl2ZXJz
IGZvciB0aGlzIG1lc3NhZ2UgY2xhc3MuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01l
c3NhZ2VSZWNlaXZlck1hcC5oOgorICAgICAgICBOZXcgZmlsZS4KKworICAgICAgICAqIFRhcmdl
dC5wcmk6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5h
Z2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
TWFuYWdlci5oOgorICAgICAgICAoQXV0aGVudGljYXRpb25NYW5hZ2VyKToKKyAgICAgICAgUmVn
aXN0ZXIgdGhlIGF1dGhlbnRpY2F0aW9uIG1hbmFnZXIgYXMgYSBtZXNzYWdlIHJlY2VpdmVyLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OldlYkdlb2xvY2F0
aW9uTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uTWFuYWdlcik6CisgICAgICAg
IFJlZ2lzdGVyIHRoZSBnZW9sb2NhdGlvbiBtYW5hZ2VyIGFzIGEgbWVzc2FnZSByZWNlaXZlci4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgUmVtb3ZlIGNoZWNrcyBm
b3IgYXV0aGVudGljYXRpb24gbWFuYWdlciBhbmQgZ2VvbG9jYXRpb24gbWFuYWdlciBtZXNzYWdl
cy4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKyAgICAgICAgQWRkIG5ldyBmaWxl
cy4KKwogMjAxMi0xMC0wMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50
ZWwuY29tPgogCiAgICAgICAgIEZpeCBjb21waWxhdGlvbiB3YXJuaW5ncwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dAppbmRleCBkMDA5NmFjMjVhNDczNDM5MjQyMjI2NTI5NDBkMjIyNjMxNjI2ZDk0Li4xMTli
NTQxZjMwNTVmNjYyMzFiYTQ5ZGYzYzYxZjkxNGJlOTEyNjg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dApAQCAtMTIzLDYgKzEyMyw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBQbGF0Zm9ybS9D
b3JlSVBDL0JpbmFyeVNlbWFwaG9yZS5jcHAKICAgICBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rp
b24uY3BwCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcAorICAgIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAogCiAgICAgUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuY3BwCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlv
blBhcmFtZXRlcnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxM2M2ZmE3
ZDUyMjBkMGI2MDg5OWZlMTE4ZTA5NTNjY2E2N2Y3NjFjLi5jZDE2ZTk5NjIxODE3NjhlYmI0ZTA1
NmQ5Zjg3YzQ3MTgxMWJhZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI1
NCw2ICsyNTQsOSBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvRGF0YVJlZmVyZW5jZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0hhbmRsZU1lc3NhZ2UuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9NZXNzYWdlSUQuaCBcCisgICAgU291cmNlLldlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNz
YWdlUmVjZWl2ZXIuaCBcCisgICAgU291cmNlLldlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNz
YWdlUmVjZWl2ZXJNYXAuY3BwIFwKKyAgICBTb3VyY2UuV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VSZWNlaXZlck1hcC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VTZW5kZXIuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4
L0F0dGFjaG1lbnRVbml4LmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91
bml4L0Nvbm5lY3Rpb25Vbml4LmNwcCBcCkBAIC0xMjE0LDYgKzEyMTcsOSBAQCB3ZWJraXQyX3Bs
dWdpbl9wcm9jZXNzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvRGF0YVJlZmVyZW5jZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hh
bmRsZU1lc3NhZ2UuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdl
SUQuaCBcCisgICAgU291cmNlLldlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXIuaCBcCisgICAgU291cmNlLldlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwIFwKKyAgICBTb3VyY2UuV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VS
ZWNlaXZlck1hcC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VT
ZW5kZXIuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0F0dGFjaG1l
bnRVbml4LmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0Nvbm5l
Y3Rpb25Vbml4LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25u
ZWN0aW9uLmNwcAppbmRleCBiMTllYjc1MDcwMTFkNGY2NmY1NjMzZWQyNzBhYTRhMGFiYTAyOTkw
Li5kMzRjZTk1YWJmNjU2OTk0ZTg1YWM5MjQwYmExMTdlMTM1YjkxNjQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTY2OCw2ICs2Njgs
MTUgQEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKEluY29taW5nTWVz
c2FnZSYgaW5jb21pbmdNZXNzYWdlKQogICAgIG1fY2xpZW50UnVuTG9vcC0+ZGlzcGF0Y2goV1RG
OjpiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaE9uZU1lc3NhZ2UsIHRoaXMpKTsKIH0KIAordm9p
ZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgQXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIpCit7CisgICAgLy8gVHJ5IHRoZSBtZXNzYWdlIHJl
Y2VpdmVyIG1hcCBmaXJzdC4KKyAgICBpZiAobV9tZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hN
ZXNzYWdlKHRoaXMsIG1lc3NhZ2VJRCwgYXJndW1lbnREZWNvZGVyKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIG1lc3NhZ2VJRCwgYXJn
dW1lbnREZWNvZGVyKTsKK30KKwogdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoSW5j
b21pbmdNZXNzYWdlJiBtZXNzYWdlKQogewogICAgIE93blB0cjxBcmd1bWVudERlY29kZXI+IGFy
Z3VtZW50cyA9IG1lc3NhZ2UucmVsZWFzZUFyZ3VtZW50cygpOwpAQCAtNjg4LDcgKzY5Nyw3IEBA
IHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKEluY29taW5nTWVzc2FnZSYgbWVzc2Fn
ZSkKICAgICBpZiAobWVzc2FnZS5tZXNzYWdlSUQoKS5pc1N5bmMoKSkKICAgICAgICAgZGlzcGF0
Y2hTeW5jTWVzc2FnZShtZXNzYWdlLm1lc3NhZ2VJRCgpLCBhcmd1bWVudHMuZ2V0KCkpOwogICAg
IGVsc2UKLSAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIG1lc3NhZ2Uu
bWVzc2FnZUlEKCksIGFyZ3VtZW50cy5nZXQoKSk7CisgICAgICAgIGRpc3BhdGNoTWVzc2FnZSht
ZXNzYWdlLm1lc3NhZ2VJRCgpLCBhcmd1bWVudHMuZ2V0KCkpOwogCiAgICAgbV9kaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UgfD0gYXJndW1lbnRzLT5pc0ludmFsaWQoKTsKICAgICBtX2luRGlzcGF0
Y2hNZXNzYWdlQ291bnQtLTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25u
ZWN0aW9uLmgKaW5kZXggODg1MGRlMGQzZWYxMzVmM2U4ZDllMDNiOGU5YTQyOWE3ZGM0YTgyNC4u
OGMzODgwMDQwMTNjZTgwNmIxYTFlYTFhMGQ2ZDI0NGQyODdlYTgxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTMxLDkgKzMxLDkgQEAKICNp
bmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKICNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIK
ICNpbmNsdWRlICJBcmd1bWVudHMuaCIKLSNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKICNp
bmNsdWRlICJXb3JrUXVldWUuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRpbmcuaD4KQEAgLTg1LDE1ICs4NSw2IEBAIHdoaWxlICgwKQogCiBjbGFzcyBDb25u
ZWN0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvbm5lY3Rpb24+IHsKIHB1Ymxp
YzoKLSAgICBjbGFzcyBNZXNzYWdlUmVjZWl2ZXIgewotICAgIHB1YmxpYzoKLSAgICAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFyZ3Vt
ZW50RGVjb2RlciopID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqLCBPd25QdHI8QXJn
dW1lbnRFbmNvZGVyPiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLQotICAgIHByb3RlY3Rl
ZDoKLSAgICAgICAgdmlydHVhbCB+TWVzc2FnZVJlY2VpdmVyKCkgeyB9Ci0gICAgfTsKLSAgICAK
ICAgICBjbGFzcyBDbGllbnQgOiBwdWJsaWMgTWVzc2FnZVJlY2VpdmVyIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb25uZWN0aW9uKikgPSAwOwpAQCAtMTgx
LDYgKzE3MiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRRdWV1ZUNsaWVudChRdWV1ZUNsaWVu
dCopOwogICAgIHZvaWQgcmVtb3ZlUXVldWVDbGllbnQoUXVldWVDbGllbnQqKTsKIAorICAgIHZv
aWQgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VDbGFzcyBtZXNzYWdlQ2xhc3MsIE1lc3NhZ2VS
ZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyKQorICAgIHsKKyAgICAgICAgbV9tZXNzYWdlUmVjZWl2
ZXJNYXAuYWRkTWVzc2FnZVJlY2VpdmVyKG1lc3NhZ2VDbGFzcywgbWVzc2FnZVJlY2VpdmVyKTsK
KyAgICB9CisKICAgICBib29sIG9wZW4oKTsKICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICB2
b2lkIG1hcmtDdXJyZW50bHlEaXNwYXRjaGVkTWVzc2FnZUFzSW52YWxpZCgpOwpAQCAtMjc5LDgg
KzI3NSw5IEBAIHByaXZhdGU6CiAKICAgICAvLyBDYWxsZWQgb24gdGhlIGxpc3RlbmVyIHRocmVh
ZC4KICAgICB2b2lkIGRpc3BhdGNoQ29ubmVjdGlvbkRpZENsb3NlKCk7Ci0gICAgdm9pZCBkaXNw
YXRjaE1lc3NhZ2UoSW5jb21pbmdNZXNzYWdlJik7CiAgICAgdm9pZCBkaXNwYXRjaE9uZU1lc3Nh
Z2UoKTsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2UmKTsKKyAgICB2
b2lkIGRpc3BhdGNoTWVzc2FnZShNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopOwogICAgIHZv
aWQgZGlzcGF0Y2hTeW5jTWVzc2FnZShNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopOwogICAg
IHZvaWQgZGlkRmFpbFRvU2VuZFN5bmNNZXNzYWdlKCk7CiAKQEAgLTMxMSw2ICszMDgsOCBAQCBw
cml2YXRlOgogICAgIE11dGV4IG1faW5jb21pbmdNZXNzYWdlc0xvY2s7CiAgICAgRGVxdWU8SW5j
b21pbmdNZXNzYWdlPiBtX2luY29taW5nTWVzc2FnZXM7CiAKKyAgICBNZXNzYWdlUmVjZWl2ZXJN
YXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7CisKICAgICAvLyBPdXRnb2luZyBtZXNzYWdlcy4KICAg
ICBNdXRleCBtX291dGdvaW5nTWVzc2FnZXNMb2NrOwogICAgIERlcXVlPE91dGdvaW5nTWVzc2Fn
ZT4gbV9vdXRnb2luZ01lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9NZXNzYWdlSUQuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZUlELmgKaW5kZXggMjJkMzA2YjA0ZjdkM2JjYzJlZjk2NGJhNDkwMDdlOWNhNDJjYmUz
My4uMThkMmQ3OWZjNTliYTIyYmJlMGI1ZWRkMTVlY2RjZmRhZmQzYjc1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCkBAIC0yOSw3ICsyOSw3IEBACiBu
YW1lc3BhY2UgQ29yZUlQQyB7CiAKIGVudW0gTWVzc2FnZUNsYXNzIHsKLSAgICBNZXNzYWdlQ2xh
c3NSZXNlcnZlZCA9IDAsCisgICAgTWVzc2FnZUNsYXNzSW52YWxpZCA9IDAsCiAKICAgICAvLyBN
ZXNzYWdlcyBzZW50IGJ5IENvcmUgSVBDLgogICAgIE1lc3NhZ2VDbGFzc0NvcmVJUEMsCkBAIC0x
ODAsNiArMTgwLDExIEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZERpc3BhdGNoTWVzc2FnZVdo
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZ3MoKSAmIERpc3Bh
dGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OyB9CiAgICAgYm9vbCBpc1N5bmMoKSBj
b25zdCB7IHJldHVybiBnZXRGbGFncygpICYgU3luY01lc3NhZ2U7IH0KIAorICAgIE1lc3NhZ2VD
bGFzcyBtZXNzYWdlQ2xhc3MoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PE1lc3NhZ2VDbGFzcz4oZ2V0Q2xhc3MoKSk7CisgICAgfQorCiBwcml2YXRlOgogICAgIHN0
YXRpYyBpbmxpbmUgdW5zaWduZWQgc3RyaXBNb3N0U2lnbmlmaWNhbnRCaXQodW5zaWduZWQgdmFs
dWUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9N
ZXNzYWdlUmVjZWl2ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZVJlY2VpdmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiNjFjY2RjMzA2ZWVlY2I2YmY2N2YxYTE0OGU1MGE1
NGJkNTQ4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZVJlY2VpdmVyLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgTWVzc2FnZVJlY2VpdmVyX2gKKyNkZWZpbmUgTWVzc2FnZVJlY2VpdmVyX2gKKworI2luY2x1
ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8
d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisKK2NsYXNzIEFyZ3VtZW50RGVj
b2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247CisKK2NsYXNz
IE1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TWVzc2FnZVJlY2VpdmVy
KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29ubmVjdGlvbios
IE1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVy
KiwgT3duUHRyPEFyZ3VtZW50RW5jb2Rlcj4mKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgQ29yZUlQQworCisjZW5kaWYg
Ly8gTWVzc2FnZVJlY2VpdmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Y2U3N2RjNjJkNWZj
ZDZjYmRmN2NlOTI5ZWMzN2UxYzg3ZTkwYWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCkBAIC0wLDAgKzEs
NTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyTWFwLmgiCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKworbmFtZXNw
YWNlIENvcmVJUEMgeworCitNZXNzYWdlUmVjZWl2ZXJNYXA6Ok1lc3NhZ2VSZWNlaXZlck1hcCgp
Cit7Cit9CisKK01lc3NhZ2VSZWNlaXZlck1hcDo6fk1lc3NhZ2VSZWNlaXZlck1hcCgpCit7Cit9
CisKK3ZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjphZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZUNs
YXNzIG1lc3NhZ2VDbGFzcywgTWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIpCit7Cisg
ICAgQVNTRVJUKCFtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlck1hcC5jb250YWlucyhtZXNzYWdlQ2xh
c3MpKTsKKyAgICBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlck1hcC5zZXQobWVzc2FnZUNsYXNzLCBt
ZXNzYWdlUmVjZWl2ZXIpOworfQorCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hN
ZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VJRCBtZXNzYWdlSUQsIEFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyKQoreworICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIq
IG1lc3NhZ2VSZWNlaXZlciA9IG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVyTWFwLmdldChtZXNzYWdl
SUQubWVzc2FnZUNsYXNzKCkpKSB7CisgICAgICAgIG1lc3NhZ2VSZWNlaXZlci0+ZGlkUmVjZWl2
ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudERlY29kZXIpOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIENvcmVJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZVJlY2VpdmVyTWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VSZWNlaXZlck1hcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3ZmU0Y2Q1NDUzOTE1M2ZhYzg4MDky
NDg0NDE3NTM4ZGNmNjg0ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIE1lc3NhZ2VSZWNlaXZlck1hcF9oCisjZGVmaW5lIE1lc3NhZ2VSZWNl
aXZlck1hcF9oCisKKyNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2Ns
YXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7CisKK2NsYXNzIE1lc3NhZ2VS
ZWNlaXZlck1hcCB7CitwdWJsaWM6CisgICAgTWVzc2FnZVJlY2VpdmVyTWFwKCk7CisgICAgfk1l
c3NhZ2VSZWNlaXZlck1hcCgpOworCisgICAgdm9pZCBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZUNsYXNzLCBNZXNzYWdlUmVjZWl2ZXIqKTsKKworICAgIGJvb2wgZGlzcGF0Y2hNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOworCitwcml2YXRlOgorICAgIC8vIE1lc3NhZ2UgcmVjZWl2ZXJzIHRoYXQgZG9u
J3QgcmVxdWlyZSBhIGRlc3RpbmF0aW9uIElELgorICAgIEhhc2hNYXA8dW5zaWduZWQsIE1lc3Nh
Z2VSZWNlaXZlcio+IG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVyTWFwOworfTsKKworfTsKKworI2Vu
ZGlmIC8vIE1lc3NhZ2VSZWNlaXZlck1hcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9U
YXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCAxNWZhMGIxOGExMTg4
YzY3ZDA4MDdjMDhhNjA2MTExOWE1MmI1N2YyLi40ZjM5MzA3NTNjYWZjMThjMDAwN2FkN2NhMWJm
NDg4ZWU2MTRiOTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTI2LDYgKzI2LDggQEAgSEVBREVSUyArPSBc
CiAgICAgUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmggXAogICAgIFBsYXRmb3JtL0Nv
cmVJUEMvSGFuZGxlTWVzc2FnZS5oIFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5o
IFwKKyAgICBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oIFwKKyAgICBQbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oIFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL01l
c3NhZ2VTZW5kZXIuaCBcCiAgICAgUGxhdGZvcm0vTG9nZ2luZy5oIFwKICAgICBQbGF0Zm9ybS9N
b2R1bGUuaCBcCkBAIC0zODIsNiArMzg0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgUGxhdGZvcm0v
Q29yZUlQQy9BdHRhY2htZW50LmNwcCBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9u
LmNwcCBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcCBcCisgICAgUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIFwKICAgICBQbGF0Zm9ybS9Mb2dn
aW5nLmNwcCBcCiAgICAgUGxhdGZvcm0vTW9kdWxlLmNwcCBcCiAgICAgUGxhdGZvcm0vV29ya1F1
ZXVlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNDRmYTk3MDhiMWVhZjVhZmNhNzdkZWVhMzE2NDFmNTU1MTkzNThhMi4u
ZDMyOWIzMDFiZmUxZDE4YzQxYjM1MjNiODIzZmY2NTkwZTI1Zjk0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE1LDYgKzEx
NSw5IEBACiAJCTFBM0REMjA2MTI1RTVBMkYwMDQ1MTVFNiAvKiBBUElDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0REMjA1MTI1RTVBMkYw
MDQ1MTVFNiAvKiBBUElDbGllbnQuaCAqLzsgfTsKIAkJMUEzRTczNjExMUNDMjY1OTAwN0JENTM5
IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUEzRTczNUYxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oICovOyB9OwogCQkxQTNFNzM2MjExQ0MyNjU5MDA3QkQ1MzkgLyogV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBM0U3MzYwMTFDQzI2NTkwMDdCRDUzOSAvKiBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwICovOyB9OworCQkxQTNFRUQwRTE2MUE1MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJlY2Vp
dmVyTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBM0VFRDBDMTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwICovOyB9
OworCQkxQTNFRUQwRjE2MUE1MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTNFRUQwRDE2MUE1
MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggKi87IH07CisJCTFBM0VFRDEyMTYx
QTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNz
YWdlUmVjZWl2ZXIuaCAqLzsgfTsKIAkJMUE0MzNGMEQxMTNDNTNERDAwRkFDREU5IC8qIFdlYkVy
cm9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0
MzNGMEMxMTNDNTNERDAwRkFDREU5IC8qIFdlYkVycm9ycy5oICovOyB9OwogCQkxQTRBOUFBODEy
QjdFNzk2MDA4RkU5ODQgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTRBOUFBNjEyQjdFNzk2MDA4
RkU5ODQgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmggKi87IH07CiAJCTFBNEE5QUE5
MTJCN0U3OTYwMDhGRTk4NCAvKiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTRBOUFBNzEyQjdFNzk2
MDA4RkU5ODQgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tICovOyB9OwpAQCAtMTE0
OSw2ICsxMTUyLDkgQEAKIAkJMUEzREQyMDUxMjVFNUEyRjAwNDUxNUU2IC8qIEFQSUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzRTczNUYxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzRTczNjAx
MUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQTNFRUQwQzE2MUE1MzUzMDBBRUI0RjUgLyogTWVz
c2FnZVJlY2VpdmVyTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1lc3NhZ2VSZWNlaXZlck1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFB
M0VFRDBEMTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZVJlY2VpdmVyTWFwLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVj
ZWl2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZVJlY2VpdmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNDMzRjBDMTEzQzUzREQwMEZBQ0RF
OSAvKiBXZWJFcnJvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRXJy
b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNEE5QUE2MTJCN0U3OTYwMDhG
RTk4NCAvKiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFBNEE5QUE3MTJCN0U3OTYwMDhGRTk4NCAvKiBXS1RleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yNjAwLDYgKzI2MDYsOSBAQAogCQkJCTFBOEVGREY5MTI1M0NBQTIwMEY3MDY3
RiAvKiBEYXRhUmVmZXJlbmNlLmggKi8sCiAJCQkJQzBDRTcyQUMxMjQ3RTc4RDAwQkMwRUM0IC8q
IEhhbmRsZU1lc3NhZ2UuaCAqLywKIAkJCQlCQzAzMkRBNDEwRjQzN0QxMDA1OEMxNUEgLyogTWVz
c2FnZUlELmggKi8sCisJCQkJMUEzRUVEMTExNjFBNTNENjAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNl
aXZlci5oICovLAorCQkJCTFBM0VFRDBDMTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwICovLAorCQkJCTFBM0VFRDBEMTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVj
ZWl2ZXJNYXAuaCAqLywKIAkJCQkxQTExOUE5NDEyN0I3OTYyMDBBOUVDQjEgLyogTWVzc2FnZVNl
bmRlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBDb3JlSVBDOwpAQCAtNDI5OSw2ICs0MzA4LDgg
QEAKIAkJCQlCQzU5NTQ4OTE1Qzc4Njg1MDBGRDFFM0UgLyogV2ViS2l0Mi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNEQzMwODgxNUZENkE4QjAwNkI2Njk1IC8qIFdlYlByb2Nlc3NJbml0aWFsaXph
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEQzMwOEMxNUZENkNEMTAwNkI2Njk1IC8qIFdl
YlByb2Nlc3NTZXJ2aWNlRW50cnlQb2ludHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBM0VFRDBG
MTYxQTUzNTQwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFBM0VFRDEyMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtNTE1NSw2ICs1MTY2LDcgQEAKIAkJCQlDRDY3RDMwRTE1QzA4RjlBMDA4NDNB
REYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNEQzMwODcxNUZENkE4QjAwNkI2Njk1IC8qIFdlYlByb2Nlc3NJbml0
aWFsaXphdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDREMzMDhCMTVGRDZDRDEwMDZCNjY5
NSAvKiBXZWJQcm9jZXNzU2VydmljZUVudHJ5UG9pbnRzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
MUEzRUVEMEUxNjFBNTM1NDAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA0NGU4MzA2
ZTAxOTZkYTQ0ZmFlNjRjZWQ5YjQ5NmM1MjdhNTQzZTAyLi5hNjg1OGFjMjhkNTlkY2U2Mjg1ZDZj
MzZhNzdkYjQ3ZTc2N2EyZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3Bw
CkBAIC01NSw2ICs1NSw3IEBAIEF1dGhlbnRpY2F0aW9uTWFuYWdlciYgQXV0aGVudGljYXRpb25N
YW5hZ2VyOjpzaGFyZWQoKQogCiBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OkF1dGhlbnRpY2F0aW9u
TWFuYWdlcigpCiB7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5hZGRN
ZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzQXV0aGVudGljYXRpb25NYW5hZ2Vy
LCB0aGlzKTsKIH0KIAogdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggMTkyYzkxYWVmMTc5NTliMjZmNTJkNWQxM2JkMjhm
YzBiOGNjZTUzZi4uOTE4NmQ0MmY5ZDdiMDE2ZjlmYjU3MjdiYzdkY2YwZjY2ZjZhODAxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVm
IEF1dGhlbnRpY2F0aW9uTWFuYWdlcl9oCiAjZGVmaW5lIEF1dGhlbnRpY2F0aW9uTWFuYWdlcl9o
CiAKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CkBAIC00NSwxNCArNDYsMTIgQEAgY2xhc3MgRG93bmxv
YWQ7CiBjbGFzcyBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzsKIGNsYXNzIFdlYkZyYW1lOwogCi1j
bGFzcyBBdXRoZW50aWNhdGlvbk1hbmFnZXIgeworY2xhc3MgQXV0aGVudGljYXRpb25NYW5hZ2Vy
IDogcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEF1dGhlbnRpY2F0aW9uTWFuYWdlcik7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgQXV0
aGVudGljYXRpb25NYW5hZ2VyJiBzaGFyZWQoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7Ci0KICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShXZWJGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7
CiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG93bmxvYWQqLCBj
b25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogCkBAIC02Myw2ICs2Miw5
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyKCk7CiAKKyAg
ICAvLyBNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKikgT1ZFUlJJREU7CisKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogCiAgICAgYm9vbCB0cnlVc2VQbGF0Zm9ybUNl
cnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYsIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0
aW9uTWFuYWdlci5jcHAKaW5kZXggZjA3YzQwNjBkY2Y2ODA3OTM3OGVkZjM5MzRkMmY2OTIzZjA5
ZmJhYi4uMmI3NWIwNDJmZmNlYjgxYWQ5ZTVlNGQ4ZGVjNDgwYzlmNmJmYjk4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtNDIsNiArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyKFdlYlByb2Nl
c3MqIHByb2Nlc3MpCiAgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKIHsKKyAgICBXZWJQcm9jZXNz
OjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXIsIHRoaXMpOwogfQogCiBXZWJHZW9sb2NhdGlv
bk1hbmFnZXI6On5XZWJHZW9sb2NhdGlvbk1hbmFnZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
LmgKaW5kZXggNWMzZGZhZTkzNjQ2NzY0M2JlNDNmN2VlMzRiNWMyYTdlODdmZGUyMi4uZWViOWEy
OTYzMTU1MTFiYmI5NjEzNzc5MGVkODYwNTUwMGNmY2MzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFu
YWdlci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFdlYkdlb2xvY2F0aW9uTWFuYWdlcl9o
CiAjZGVmaW5lIFdlYkdlb2xvY2F0aW9uTWFuYWdlcl9oCiAKLSNpbmNsdWRlICJNZXNzYWdlSUQu
aCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlv
blBvc2l0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgpAQCAtNTAsNyArNTAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBy
b2Nlc3M7CiBjbGFzcyBXZWJQYWdlOwogCi1jbGFzcyBXZWJHZW9sb2NhdGlvbk1hbmFnZXIgewor
Y2xhc3MgV2ViR2VvbG9jYXRpb25NYW5hZ2VyIDogcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkdlb2xvY2F0aW9uTWFuYWdlcik7
CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyKFdlYlByb2Nlc3Mq
KTsKQEAgLTYxLDkgKzYxLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Np
b24oV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CiAKIHByaXZhdGU6CisgICAgLy8gTWVzc2FnZVJlY2VpdmVyCisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOworCiAgICAg
Ly8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCBkZTE4MzI0NTk5NzdlNTE1MDA3YTRjYTBmNzJlZGE4ZDhhZmY1OTkwLi4wMDYxMzg4
ZjU5Mzc0OGIxMmI0NmMzM2U3YWE3MDE5ZjA1OWYyODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAKLSNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1h
bmFnZXIuaCIKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJJbmplY3Rl
ZEJ1bmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTWVzc2FnZUtpbmRzLmgiCkBAIC02
MzgsMTEgKzYzNyw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0F1dGhl
bnRpY2F0aW9uTWFuYWdlcj4oKSkgewotICAgICAgICBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnNo
YXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRz
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI+KCkpIHsKICAgICAgICAg
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNjYw
LDExICs2NTQsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwogICAgIH0KICNlbmRpZgogCi0g
ICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1h
bmFnZXI+KCkpIHsKLSAgICAgICAgbV9nZW9sb2NhdGlvbk1hbmFnZXIuZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQogICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQmF0dGVyeU1hbmFnZXI+KCkpIHsKICAgICAgICAgbV9i
YXR0ZXJ5TWFuYWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2og
Yi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggZjFiMGY2NWViM2FkMGE3
OGE5OWQ3ZDljZjE1Y2UyNTFhYjBiZTE3MC4uYmQwOWUwOGYxMjNhODdhNjI5MzA2YjE0YmY3YmZi
Mzc2NDYxMGVlNiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtNDA5MCw2ICs0MDkw
LDE4IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxQbGF0Zm9ybVxDb3JlSVBDXE1lc3NhZ2VSZWNlaXZlci5oIgorCQkJCQk+CisJCQkJPC9G
aWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZvcm1cQ29yZUlQQ1xN
ZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZvcm1cQ29yZUlQQ1xNZXNzYWdlUmVjZWl2ZXJNYXAu
aCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFBsYXRmb3JtXENvcmVJUENcTWVzc2FnZVNlbmRlci5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166737</attachid>
            <date>2012-10-02 12:59:57 -0700</date>
            <delta_ts>2012-10-02 13:44:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98097-20121002125911.patch</filename>
            <type>text/plain</type>
            <size>28784</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjllZmQyYTY2ZjYyYmU1
MTQzYTJlMTEwYmQ4YzcxMzNkZDBlYTYyYi4uYzk5ZDkyYzEzNmViNWNlZWQ1MjEwNDAzZDgzMDYz
NDNiOGFkMWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTEwLTAxICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQXR0ZW1wdCB0byBz
aW1wbGlmeSBJUEMgbWVzc2FnZSBkaXNwYXRjaGluZyBsb2dpYyBpbiBXZWJLaXQyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODA5NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIENvbm5lY3Rp
b246Ok1lc3NhZ2VSZWNlaXZlciBjbGFzcyB0byBpdHMgb3duIGhlYWRlciBmaWxlLiBBZGQgYSBN
ZXNzYWdlUmVjZWl2ZXJNYXAgaGVscGVyIGNsYXNzCisgICAgICAgIHRoYXQgd2lsbCBiZSB1c2Vk
IGZvciBkaXNwYXRjaGluZyBtZXNzYWdlcyBiYXNlZCBvbiBtZXNzYWdlIGNsYXNzIChhbmQgZXZl
bnR1YWxseSBkZXN0aW5hdGlvbiBJRCkuCisKKyAgICAgICAgQ29udmVydCBBdXRoZW50aWNhdGlv
bk1hbmFnZXIgYW5kIFdlYkdlb2xvY2F0aW9uTWFuYWdlciBvdmVyIHRvIHRoaXMgbmV3IG1lY2hh
bmlzbS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxl
Lmxpc3QuYW06CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9D
b3JlSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6ZGlz
cGF0Y2hNZXNzYWdlKToKKyAgICAgICAgQ2hlY2sgd2l0aCB0aGUgbWVzc2FnZSByZWNlaXZlciBt
YXAgZmlyc3QgYmVmb3JlIGNhbGxpbmcgQ29ubmVjdGlvbjo6Q2xpZW50OjpkaWRSZWNlaXZlTWVz
c2FnZS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oOgorICAgICAg
ICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6YWRkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgQ2Fs
bCB0aHJvdWdoIHRvIHRoZSBtZXNzYWdlIHJlY2VpdmVyIG1hcC4KKworICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZUlELmg6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlSUQ6Om1l
c3NhZ2VDbGFzcyk6CisgICAgICAgIFJlbmFtZSBNZXNzYWdlQ2xhc3NSZXNlcnZlZCB0byBNZXNz
YWdlQ2xhc3NJbnZhbGlkLgorCisgICAgICAgIChNZXNzYWdlSUQpOgorICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyLmg6CisgICAgICAgIE1vdmUgTWVzc2FnZVJlY2Vp
dmVyIGZyb20gQ29ubmVjdGlvbi5oIHRvIGl0cyBvd24gZmlsZS4KKworICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcDoKKyAgICAgICAgTmV3IGhlbHBlciBj
bGFzcy4KKworICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyTWFwOjphZGRNZXNzYWdl
UmVjZWl2ZXIpOgorICAgICAgICBBZGQgdGhlIHJlY2VpdmVyIHRvIHRoZSBtYXAgb2YgcmVjZWl2
ZXJzLgorCisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXA6OmRpc3BhdGNoTWVz
c2FnZSk6CisgICAgICAgIENoZWNrIGlmIHdlIGhhdmUgYW55IHJlZ2lzdGVyZWQgcmVjZWl2ZXJz
IGZvciB0aGlzIG1lc3NhZ2UgY2xhc3MuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01l
c3NhZ2VSZWNlaXZlck1hcC5oOgorICAgICAgICBOZXcgZmlsZS4KKworICAgICAgICAqIFRhcmdl
dC5wcmk6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5h
Z2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
TWFuYWdlci5oOgorICAgICAgICAoQXV0aGVudGljYXRpb25NYW5hZ2VyKToKKyAgICAgICAgUmVn
aXN0ZXIgdGhlIGF1dGhlbnRpY2F0aW9uIG1hbmFnZXIgYXMgYSBtZXNzYWdlIHJlY2VpdmVyLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OldlYkdlb2xvY2F0
aW9uTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uTWFuYWdlcik6CisgICAgICAg
IFJlZ2lzdGVyIHRoZSBnZW9sb2NhdGlvbiBtYW5hZ2VyIGFzIGEgbWVzc2FnZSByZWNlaXZlci4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgUmVtb3ZlIGNoZWNrcyBm
b3IgYXV0aGVudGljYXRpb24gbWFuYWdlciBhbmQgZ2VvbG9jYXRpb24gbWFuYWdlciBtZXNzYWdl
cy4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKyAgICAgICAgQWRkIG5ldyBmaWxl
cy4KKwogMjAxMi0xMC0wMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50
ZWwuY29tPgogCiAgICAgICAgIEZpeCBjb21waWxhdGlvbiB3YXJuaW5ncwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dAppbmRleCBkMDA5NmFjMjVhNDczNDM5MjQyMjI2NTI5NDBkMjIyNjMxNjI2ZDk0Li4xMTli
NTQxZjMwNTVmNjYyMzFiYTQ5ZGYzYzYxZjkxNGJlOTEyNjg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dApAQCAtMTIzLDYgKzEyMyw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBQbGF0Zm9ybS9D
b3JlSVBDL0JpbmFyeVNlbWFwaG9yZS5jcHAKICAgICBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rp
b24uY3BwCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcAorICAgIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAogCiAgICAgUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuY3BwCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlv
blBhcmFtZXRlcnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxM2M2ZmE3
ZDUyMjBkMGI2MDg5OWZlMTE4ZTA5NTNjY2E2N2Y3NjFjLi5jZDE2ZTk5NjIxODE3NjhlYmI0ZTA1
NmQ5Zjg3YzQ3MTgxMWJhZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI1
NCw2ICsyNTQsOSBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvRGF0YVJlZmVyZW5jZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0hhbmRsZU1lc3NhZ2UuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9NZXNzYWdlSUQuaCBcCisgICAgU291cmNlLldlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNz
YWdlUmVjZWl2ZXIuaCBcCisgICAgU291cmNlLldlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNz
YWdlUmVjZWl2ZXJNYXAuY3BwIFwKKyAgICBTb3VyY2UuV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VSZWNlaXZlck1hcC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VTZW5kZXIuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4
L0F0dGFjaG1lbnRVbml4LmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91
bml4L0Nvbm5lY3Rpb25Vbml4LmNwcCBcCkBAIC0xMjE0LDYgKzEyMTcsOSBAQCB3ZWJraXQyX3Bs
dWdpbl9wcm9jZXNzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvRGF0YVJlZmVyZW5jZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hh
bmRsZU1lc3NhZ2UuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdl
SUQuaCBcCisgICAgU291cmNlLldlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXIuaCBcCisgICAgU291cmNlLldlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwIFwKKyAgICBTb3VyY2UuV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VS
ZWNlaXZlck1hcC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VT
ZW5kZXIuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0F0dGFjaG1l
bnRVbml4LmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0Nvbm5l
Y3Rpb25Vbml4LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25u
ZWN0aW9uLmNwcAppbmRleCBiMTllYjc1MDcwMTFkNGY2NmY1NjMzZWQyNzBhYTRhMGFiYTAyOTkw
Li5kMzRjZTk1YWJmNjU2OTk0ZTg1YWM5MjQwYmExMTdlMTM1YjkxNjQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTY2OCw2ICs2Njgs
MTUgQEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKEluY29taW5nTWVz
c2FnZSYgaW5jb21pbmdNZXNzYWdlKQogICAgIG1fY2xpZW50UnVuTG9vcC0+ZGlzcGF0Y2goV1RG
OjpiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaE9uZU1lc3NhZ2UsIHRoaXMpKTsKIH0KIAordm9p
ZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgQXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIpCit7CisgICAgLy8gVHJ5IHRoZSBtZXNzYWdlIHJl
Y2VpdmVyIG1hcCBmaXJzdC4KKyAgICBpZiAobV9tZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hN
ZXNzYWdlKHRoaXMsIG1lc3NhZ2VJRCwgYXJndW1lbnREZWNvZGVyKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIG1lc3NhZ2VJRCwgYXJn
dW1lbnREZWNvZGVyKTsKK30KKwogdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoSW5j
b21pbmdNZXNzYWdlJiBtZXNzYWdlKQogewogICAgIE93blB0cjxBcmd1bWVudERlY29kZXI+IGFy
Z3VtZW50cyA9IG1lc3NhZ2UucmVsZWFzZUFyZ3VtZW50cygpOwpAQCAtNjg4LDcgKzY5Nyw3IEBA
IHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKEluY29taW5nTWVzc2FnZSYgbWVzc2Fn
ZSkKICAgICBpZiAobWVzc2FnZS5tZXNzYWdlSUQoKS5pc1N5bmMoKSkKICAgICAgICAgZGlzcGF0
Y2hTeW5jTWVzc2FnZShtZXNzYWdlLm1lc3NhZ2VJRCgpLCBhcmd1bWVudHMuZ2V0KCkpOwogICAg
IGVsc2UKLSAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIG1lc3NhZ2Uu
bWVzc2FnZUlEKCksIGFyZ3VtZW50cy5nZXQoKSk7CisgICAgICAgIGRpc3BhdGNoTWVzc2FnZSht
ZXNzYWdlLm1lc3NhZ2VJRCgpLCBhcmd1bWVudHMuZ2V0KCkpOwogCiAgICAgbV9kaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UgfD0gYXJndW1lbnRzLT5pc0ludmFsaWQoKTsKICAgICBtX2luRGlzcGF0
Y2hNZXNzYWdlQ291bnQtLTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25u
ZWN0aW9uLmgKaW5kZXggODg1MGRlMGQzZWYxMzVmM2U4ZDllMDNiOGU5YTQyOWE3ZGM0YTgyNC4u
OGMzODgwMDQwMTNjZTgwNmIxYTFlYTFhMGQ2ZDI0NGQyODdlYTgxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTMxLDkgKzMxLDkgQEAKICNp
bmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKICNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIK
ICNpbmNsdWRlICJBcmd1bWVudHMuaCIKLSNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKICNp
bmNsdWRlICJXb3JrUXVldWUuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRpbmcuaD4KQEAgLTg1LDE1ICs4NSw2IEBAIHdoaWxlICgwKQogCiBjbGFzcyBDb25u
ZWN0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvbm5lY3Rpb24+IHsKIHB1Ymxp
YzoKLSAgICBjbGFzcyBNZXNzYWdlUmVjZWl2ZXIgewotICAgIHB1YmxpYzoKLSAgICAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFyZ3Vt
ZW50RGVjb2RlciopID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqLCBPd25QdHI8QXJn
dW1lbnRFbmNvZGVyPiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLQotICAgIHByb3RlY3Rl
ZDoKLSAgICAgICAgdmlydHVhbCB+TWVzc2FnZVJlY2VpdmVyKCkgeyB9Ci0gICAgfTsKLSAgICAK
ICAgICBjbGFzcyBDbGllbnQgOiBwdWJsaWMgTWVzc2FnZVJlY2VpdmVyIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb25uZWN0aW9uKikgPSAwOwpAQCAtMTgx
LDYgKzE3MiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRRdWV1ZUNsaWVudChRdWV1ZUNsaWVu
dCopOwogICAgIHZvaWQgcmVtb3ZlUXVldWVDbGllbnQoUXVldWVDbGllbnQqKTsKIAorICAgIHZv
aWQgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VDbGFzcyBtZXNzYWdlQ2xhc3MsIE1lc3NhZ2VS
ZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyKQorICAgIHsKKyAgICAgICAgbV9tZXNzYWdlUmVjZWl2
ZXJNYXAuYWRkTWVzc2FnZVJlY2VpdmVyKG1lc3NhZ2VDbGFzcywgbWVzc2FnZVJlY2VpdmVyKTsK
KyAgICB9CisKICAgICBib29sIG9wZW4oKTsKICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICB2
b2lkIG1hcmtDdXJyZW50bHlEaXNwYXRjaGVkTWVzc2FnZUFzSW52YWxpZCgpOwpAQCAtMjc5LDgg
KzI3NSw5IEBAIHByaXZhdGU6CiAKICAgICAvLyBDYWxsZWQgb24gdGhlIGxpc3RlbmVyIHRocmVh
ZC4KICAgICB2b2lkIGRpc3BhdGNoQ29ubmVjdGlvbkRpZENsb3NlKCk7Ci0gICAgdm9pZCBkaXNw
YXRjaE1lc3NhZ2UoSW5jb21pbmdNZXNzYWdlJik7CiAgICAgdm9pZCBkaXNwYXRjaE9uZU1lc3Nh
Z2UoKTsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2UmKTsKKyAgICB2
b2lkIGRpc3BhdGNoTWVzc2FnZShNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopOwogICAgIHZv
aWQgZGlzcGF0Y2hTeW5jTWVzc2FnZShNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopOwogICAg
IHZvaWQgZGlkRmFpbFRvU2VuZFN5bmNNZXNzYWdlKCk7CiAKQEAgLTMxMSw2ICszMDgsOCBAQCBw
cml2YXRlOgogICAgIE11dGV4IG1faW5jb21pbmdNZXNzYWdlc0xvY2s7CiAgICAgRGVxdWU8SW5j
b21pbmdNZXNzYWdlPiBtX2luY29taW5nTWVzc2FnZXM7CiAKKyAgICBNZXNzYWdlUmVjZWl2ZXJN
YXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7CisKICAgICAvLyBPdXRnb2luZyBtZXNzYWdlcy4KICAg
ICBNdXRleCBtX291dGdvaW5nTWVzc2FnZXNMb2NrOwogICAgIERlcXVlPE91dGdvaW5nTWVzc2Fn
ZT4gbV9vdXRnb2luZ01lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9NZXNzYWdlSUQuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZUlELmgKaW5kZXggMjJkMzA2YjA0ZjdkM2JjYzJlZjk2NGJhNDkwMDdlOWNhNDJjYmUz
My4uMThkMmQ3OWZjNTliYTIyYmJlMGI1ZWRkMTVlY2RjZmRhZmQzYjc1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCkBAIC0yOSw3ICsyOSw3IEBACiBu
YW1lc3BhY2UgQ29yZUlQQyB7CiAKIGVudW0gTWVzc2FnZUNsYXNzIHsKLSAgICBNZXNzYWdlQ2xh
c3NSZXNlcnZlZCA9IDAsCisgICAgTWVzc2FnZUNsYXNzSW52YWxpZCA9IDAsCiAKICAgICAvLyBN
ZXNzYWdlcyBzZW50IGJ5IENvcmUgSVBDLgogICAgIE1lc3NhZ2VDbGFzc0NvcmVJUEMsCkBAIC0x
ODAsNiArMTgwLDExIEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZERpc3BhdGNoTWVzc2FnZVdo
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZ3MoKSAmIERpc3Bh
dGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OyB9CiAgICAgYm9vbCBpc1N5bmMoKSBj
b25zdCB7IHJldHVybiBnZXRGbGFncygpICYgU3luY01lc3NhZ2U7IH0KIAorICAgIE1lc3NhZ2VD
bGFzcyBtZXNzYWdlQ2xhc3MoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PE1lc3NhZ2VDbGFzcz4oZ2V0Q2xhc3MoKSk7CisgICAgfQorCiBwcml2YXRlOgogICAgIHN0
YXRpYyBpbmxpbmUgdW5zaWduZWQgc3RyaXBNb3N0U2lnbmlmaWNhbnRCaXQodW5zaWduZWQgdmFs
dWUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9N
ZXNzYWdlUmVjZWl2ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZVJlY2VpdmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiNjFjY2RjMzA2ZWVlY2I2YmY2N2YxYTE0OGU1MGE1
NGJkNTQ4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZVJlY2VpdmVyLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgTWVzc2FnZVJlY2VpdmVyX2gKKyNkZWZpbmUgTWVzc2FnZVJlY2VpdmVyX2gKKworI2luY2x1
ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8
d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisKK2NsYXNzIEFyZ3VtZW50RGVj
b2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247CisKK2NsYXNz
IE1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TWVzc2FnZVJlY2VpdmVy
KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29ubmVjdGlvbios
IE1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVy
KiwgT3duUHRyPEFyZ3VtZW50RW5jb2Rlcj4mKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgQ29yZUlQQworCisjZW5kaWYg
Ly8gTWVzc2FnZVJlY2VpdmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Y2U3N2RjNjJkNWZj
ZDZjYmRmN2NlOTI5ZWMzN2UxYzg3ZTkwYWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCkBAIC0wLDAgKzEs
NTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyTWFwLmgiCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKworbmFtZXNw
YWNlIENvcmVJUEMgeworCitNZXNzYWdlUmVjZWl2ZXJNYXA6Ok1lc3NhZ2VSZWNlaXZlck1hcCgp
Cit7Cit9CisKK01lc3NhZ2VSZWNlaXZlck1hcDo6fk1lc3NhZ2VSZWNlaXZlck1hcCgpCit7Cit9
CisKK3ZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjphZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZUNs
YXNzIG1lc3NhZ2VDbGFzcywgTWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIpCit7Cisg
ICAgQVNTRVJUKCFtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlck1hcC5jb250YWlucyhtZXNzYWdlQ2xh
c3MpKTsKKyAgICBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlck1hcC5zZXQobWVzc2FnZUNsYXNzLCBt
ZXNzYWdlUmVjZWl2ZXIpOworfQorCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hN
ZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VJRCBtZXNzYWdlSUQsIEFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyKQoreworICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIq
IG1lc3NhZ2VSZWNlaXZlciA9IG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVyTWFwLmdldChtZXNzYWdl
SUQubWVzc2FnZUNsYXNzKCkpKSB7CisgICAgICAgIG1lc3NhZ2VSZWNlaXZlci0+ZGlkUmVjZWl2
ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudERlY29kZXIpOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIENvcmVJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZVJlY2VpdmVyTWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VSZWNlaXZlck1hcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3ZmU0Y2Q1NDUzOTE1M2ZhYzg4MDky
NDg0NDE3NTM4ZGNmNjg0ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIE1lc3NhZ2VSZWNlaXZlck1hcF9oCisjZGVmaW5lIE1lc3NhZ2VSZWNl
aXZlck1hcF9oCisKKyNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2Ns
YXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7CisKK2NsYXNzIE1lc3NhZ2VS
ZWNlaXZlck1hcCB7CitwdWJsaWM6CisgICAgTWVzc2FnZVJlY2VpdmVyTWFwKCk7CisgICAgfk1l
c3NhZ2VSZWNlaXZlck1hcCgpOworCisgICAgdm9pZCBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZUNsYXNzLCBNZXNzYWdlUmVjZWl2ZXIqKTsKKworICAgIGJvb2wgZGlzcGF0Y2hNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOworCitwcml2YXRlOgorICAgIC8vIE1lc3NhZ2UgcmVjZWl2ZXJzIHRoYXQgZG9u
J3QgcmVxdWlyZSBhIGRlc3RpbmF0aW9uIElELgorICAgIEhhc2hNYXA8dW5zaWduZWQsIE1lc3Nh
Z2VSZWNlaXZlcio+IG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVyTWFwOworfTsKKworfTsKKworI2Vu
ZGlmIC8vIE1lc3NhZ2VSZWNlaXZlck1hcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9U
YXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCAxNWZhMGIxOGExMTg4
YzY3ZDA4MDdjMDhhNjA2MTExOWE1MmI1N2YyLi40ZjM5MzA3NTNjYWZjMThjMDAwN2FkN2NhMWJm
NDg4ZWU2MTRiOTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTI2LDYgKzI2LDggQEAgSEVBREVSUyArPSBc
CiAgICAgUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmggXAogICAgIFBsYXRmb3JtL0Nv
cmVJUEMvSGFuZGxlTWVzc2FnZS5oIFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5o
IFwKKyAgICBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oIFwKKyAgICBQbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oIFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL01l
c3NhZ2VTZW5kZXIuaCBcCiAgICAgUGxhdGZvcm0vTG9nZ2luZy5oIFwKICAgICBQbGF0Zm9ybS9N
b2R1bGUuaCBcCkBAIC0zODIsNiArMzg0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgUGxhdGZvcm0v
Q29yZUlQQy9BdHRhY2htZW50LmNwcCBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9u
LmNwcCBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcCBcCisgICAgUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIFwKICAgICBQbGF0Zm9ybS9Mb2dn
aW5nLmNwcCBcCiAgICAgUGxhdGZvcm0vTW9kdWxlLmNwcCBcCiAgICAgUGxhdGZvcm0vV29ya1F1
ZXVlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNDRmYTk3MDhiMWVhZjVhZmNhNzdkZWVhMzE2NDFmNTU1MTkzNThhMi4u
ZDMyOWIzMDFiZmUxZDE4YzQxYjM1MjNiODIzZmY2NTkwZTI1Zjk0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE1LDYgKzEx
NSw5IEBACiAJCTFBM0REMjA2MTI1RTVBMkYwMDQ1MTVFNiAvKiBBUElDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0REMjA1MTI1RTVBMkYw
MDQ1MTVFNiAvKiBBUElDbGllbnQuaCAqLzsgfTsKIAkJMUEzRTczNjExMUNDMjY1OTAwN0JENTM5
IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUEzRTczNUYxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oICovOyB9OwogCQkxQTNFNzM2MjExQ0MyNjU5MDA3QkQ1MzkgLyogV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBM0U3MzYwMTFDQzI2NTkwMDdCRDUzOSAvKiBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwICovOyB9OworCQkxQTNFRUQwRTE2MUE1MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJlY2Vp
dmVyTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBM0VFRDBDMTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwICovOyB9
OworCQkxQTNFRUQwRjE2MUE1MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTNFRUQwRDE2MUE1
MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggKi87IH07CisJCTFBM0VFRDEyMTYx
QTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNz
YWdlUmVjZWl2ZXIuaCAqLzsgfTsKIAkJMUE0MzNGMEQxMTNDNTNERDAwRkFDREU5IC8qIFdlYkVy
cm9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0
MzNGMEMxMTNDNTNERDAwRkFDREU5IC8qIFdlYkVycm9ycy5oICovOyB9OwogCQkxQTRBOUFBODEy
QjdFNzk2MDA4RkU5ODQgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTRBOUFBNjEyQjdFNzk2MDA4
RkU5ODQgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmggKi87IH07CiAJCTFBNEE5QUE5
MTJCN0U3OTYwMDhGRTk4NCAvKiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTRBOUFBNzEyQjdFNzk2
MDA4RkU5ODQgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tICovOyB9OwpAQCAtMTE0
OSw2ICsxMTUyLDkgQEAKIAkJMUEzREQyMDUxMjVFNUEyRjAwNDUxNUU2IC8qIEFQSUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzRTczNUYxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzRTczNjAx
MUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQTNFRUQwQzE2MUE1MzUzMDBBRUI0RjUgLyogTWVz
c2FnZVJlY2VpdmVyTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1lc3NhZ2VSZWNlaXZlck1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFB
M0VFRDBEMTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZVJlY2VpdmVyTWFwLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVj
ZWl2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZVJlY2VpdmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNDMzRjBDMTEzQzUzREQwMEZBQ0RF
OSAvKiBXZWJFcnJvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRXJy
b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNEE5QUE2MTJCN0U3OTYwMDhG
RTk4NCAvKiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFBNEE5QUE3MTJCN0U3OTYwMDhGRTk4NCAvKiBXS1RleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yNjAwLDYgKzI2MDYsOSBAQAogCQkJCTFBOEVGREY5MTI1M0NBQTIwMEY3MDY3
RiAvKiBEYXRhUmVmZXJlbmNlLmggKi8sCiAJCQkJQzBDRTcyQUMxMjQ3RTc4RDAwQkMwRUM0IC8q
IEhhbmRsZU1lc3NhZ2UuaCAqLywKIAkJCQlCQzAzMkRBNDEwRjQzN0QxMDA1OEMxNUEgLyogTWVz
c2FnZUlELmggKi8sCisJCQkJMUEzRUVEMTExNjFBNTNENjAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNl
aXZlci5oICovLAorCQkJCTFBM0VFRDBDMTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwICovLAorCQkJCTFBM0VFRDBEMTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVj
ZWl2ZXJNYXAuaCAqLywKIAkJCQkxQTExOUE5NDEyN0I3OTYyMDBBOUVDQjEgLyogTWVzc2FnZVNl
bmRlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBDb3JlSVBDOwpAQCAtNDI5OSw2ICs0MzA4LDgg
QEAKIAkJCQlCQzU5NTQ4OTE1Qzc4Njg1MDBGRDFFM0UgLyogV2ViS2l0Mi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNEQzMwODgxNUZENkE4QjAwNkI2Njk1IC8qIFdlYlByb2Nlc3NJbml0aWFsaXph
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEQzMwOEMxNUZENkNEMTAwNkI2Njk1IC8qIFdl
YlByb2Nlc3NTZXJ2aWNlRW50cnlQb2ludHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBM0VFRDBG
MTYxQTUzNTQwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFBM0VFRDEyMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtNTE1NSw2ICs1MTY2LDcgQEAKIAkJCQlDRDY3RDMwRTE1QzA4RjlBMDA4NDNB
REYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNEQzMwODcxNUZENkE4QjAwNkI2Njk1IC8qIFdlYlByb2Nlc3NJbml0
aWFsaXphdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDREMzMDhCMTVGRDZDRDEwMDZCNjY5
NSAvKiBXZWJQcm9jZXNzU2VydmljZUVudHJ5UG9pbnRzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
MUEzRUVEMEUxNjFBNTM1NDAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA0NGU4MzA2
ZTAxOTZkYTQ0ZmFlNjRjZWQ5YjQ5NmM1MjdhNTQzZTAyLi5hNjg1OGFjMjhkNTlkY2U2Mjg1ZDZj
MzZhNzdkYjQ3ZTc2N2EyZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3Bw
CkBAIC01NSw2ICs1NSw3IEBAIEF1dGhlbnRpY2F0aW9uTWFuYWdlciYgQXV0aGVudGljYXRpb25N
YW5hZ2VyOjpzaGFyZWQoKQogCiBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OkF1dGhlbnRpY2F0aW9u
TWFuYWdlcigpCiB7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5hZGRN
ZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzQXV0aGVudGljYXRpb25NYW5hZ2Vy
LCB0aGlzKTsKIH0KIAogdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggMTkyYzkxYWVmMTc5NTliMjZmNTJkNWQxM2JkMjhm
YzBiOGNjZTUzZi4uOTE4NmQ0MmY5ZDdiMDE2ZjlmYjU3MjdiYzdkY2YwZjY2ZjZhODAxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVm
IEF1dGhlbnRpY2F0aW9uTWFuYWdlcl9oCiAjZGVmaW5lIEF1dGhlbnRpY2F0aW9uTWFuYWdlcl9o
CiAKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CkBAIC00NSwxNCArNDYsMTIgQEAgY2xhc3MgRG93bmxv
YWQ7CiBjbGFzcyBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzsKIGNsYXNzIFdlYkZyYW1lOwogCi1j
bGFzcyBBdXRoZW50aWNhdGlvbk1hbmFnZXIgeworY2xhc3MgQXV0aGVudGljYXRpb25NYW5hZ2Vy
IDogcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEF1dGhlbnRpY2F0aW9uTWFuYWdlcik7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgQXV0
aGVudGljYXRpb25NYW5hZ2VyJiBzaGFyZWQoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7Ci0KICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShXZWJGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7
CiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG93bmxvYWQqLCBj
b25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogCkBAIC02Myw2ICs2Miw5
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyKCk7CiAKKyAg
ICAvLyBNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKikgT1ZFUlJJREU7CisKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogCiAgICAgYm9vbCB0cnlVc2VQbGF0Zm9ybUNl
cnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYsIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0
aW9uTWFuYWdlci5jcHAKaW5kZXggZjA3YzQwNjBkY2Y2ODA3OTM3OGVkZjM5MzRkMmY2OTIzZjA5
ZmJhYi4uMmI3NWIwNDJmZmNlYjgxYWQ5ZTVlNGQ4ZGVjNDgwYzlmNmJmYjk4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtNDIsNiArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyKFdlYlByb2Nl
c3MqIHByb2Nlc3MpCiAgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKIHsKKyAgICBXZWJQcm9jZXNz
OjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXIsIHRoaXMpOwogfQogCiBXZWJHZW9sb2NhdGlv
bk1hbmFnZXI6On5XZWJHZW9sb2NhdGlvbk1hbmFnZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
LmgKaW5kZXggNWMzZGZhZTkzNjQ2NzY0M2JlNDNmN2VlMzRiNWMyYTdlODdmZGUyMi4uZWViOWEy
OTYzMTU1MTFiYmI5NjEzNzc5MGVkODYwNTUwMGNmY2MzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFu
YWdlci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFdlYkdlb2xvY2F0aW9uTWFuYWdlcl9o
CiAjZGVmaW5lIFdlYkdlb2xvY2F0aW9uTWFuYWdlcl9oCiAKLSNpbmNsdWRlICJNZXNzYWdlSUQu
aCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlv
blBvc2l0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgpAQCAtNTAsNyArNTAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBy
b2Nlc3M7CiBjbGFzcyBXZWJQYWdlOwogCi1jbGFzcyBXZWJHZW9sb2NhdGlvbk1hbmFnZXIgewor
Y2xhc3MgV2ViR2VvbG9jYXRpb25NYW5hZ2VyIDogcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkdlb2xvY2F0aW9uTWFuYWdlcik7
CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyKFdlYlByb2Nlc3Mq
KTsKQEAgLTYxLDkgKzYxLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Np
b24oV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CiAKIHByaXZhdGU6CisgICAgLy8gTWVzc2FnZVJlY2VpdmVyCisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOworCiAgICAg
Ly8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCBkZTE4MzI0NTk5NzdlNTE1MDA3YTRjYTBmNzJlZGE4ZDhhZmY1OTkwLi4wMDYxMzg4
ZjU5Mzc0OGIxMmI0NmMzM2U3YWE3MDE5ZjA1OWYyODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAKLSNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1h
bmFnZXIuaCIKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJJbmplY3Rl
ZEJ1bmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTWVzc2FnZUtpbmRzLmgiCkBAIC02
MzgsMTEgKzYzNyw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0F1dGhl
bnRpY2F0aW9uTWFuYWdlcj4oKSkgewotICAgICAgICBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnNo
YXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRz
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI+KCkpIHsKICAgICAgICAg
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNjYw
LDExICs2NTQsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwogICAgIH0KICNlbmRpZgogCi0g
ICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1h
bmFnZXI+KCkpIHsKLSAgICAgICAgbV9nZW9sb2NhdGlvbk1hbmFnZXIuZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQogICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQmF0dGVyeU1hbmFnZXI+KCkpIHsKICAgICAgICAgbV9i
YXR0ZXJ5TWFuYWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2og
Yi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggZjFiMGY2NWViM2FkMGE3
OGE5OWQ3ZDljZjE1Y2UyNTFhYjBiZTE3MC4uYmQwOWUwOGYxMjNhODdhNjI5MzA2YjE0YmY3YmZi
Mzc2NDYxMGVlNiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtNDA5MCw2ICs0MDkw
LDE4IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxQbGF0Zm9ybVxDb3JlSVBDXE1lc3NhZ2VSZWNlaXZlci5oIgorCQkJCQk+CisJCQkJPC9G
aWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZvcm1cQ29yZUlQQ1xN
ZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZvcm1cQ29yZUlQQ1xNZXNzYWdlUmVjZWl2ZXJNYXAu
aCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFBsYXRmb3JtXENvcmVJUENcTWVzc2FnZVNlbmRlci5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166743</attachid>
            <date>2012-10-02 13:44:39 -0700</date>
            <delta_ts>2012-10-02 13:53:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98097-20121002134353.patch</filename>
            <type>text/plain</type>
            <size>28766</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjllZmQyYTY2ZjYyYmU1
MTQzYTJlMTEwYmQ4YzcxMzNkZDBlYTYyYi4uYzk5ZDkyYzEzNmViNWNlZWQ1MjEwNDAzZDgzMDYz
NDNiOGFkMWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTEwLTAxICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQXR0ZW1wdCB0byBz
aW1wbGlmeSBJUEMgbWVzc2FnZSBkaXNwYXRjaGluZyBsb2dpYyBpbiBXZWJLaXQyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODA5NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIENvbm5lY3Rp
b246Ok1lc3NhZ2VSZWNlaXZlciBjbGFzcyB0byBpdHMgb3duIGhlYWRlciBmaWxlLiBBZGQgYSBN
ZXNzYWdlUmVjZWl2ZXJNYXAgaGVscGVyIGNsYXNzCisgICAgICAgIHRoYXQgd2lsbCBiZSB1c2Vk
IGZvciBkaXNwYXRjaGluZyBtZXNzYWdlcyBiYXNlZCBvbiBtZXNzYWdlIGNsYXNzIChhbmQgZXZl
bnR1YWxseSBkZXN0aW5hdGlvbiBJRCkuCisKKyAgICAgICAgQ29udmVydCBBdXRoZW50aWNhdGlv
bk1hbmFnZXIgYW5kIFdlYkdlb2xvY2F0aW9uTWFuYWdlciBvdmVyIHRvIHRoaXMgbmV3IG1lY2hh
bmlzbS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxl
Lmxpc3QuYW06CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9D
b3JlSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6ZGlz
cGF0Y2hNZXNzYWdlKToKKyAgICAgICAgQ2hlY2sgd2l0aCB0aGUgbWVzc2FnZSByZWNlaXZlciBt
YXAgZmlyc3QgYmVmb3JlIGNhbGxpbmcgQ29ubmVjdGlvbjo6Q2xpZW50OjpkaWRSZWNlaXZlTWVz
c2FnZS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oOgorICAgICAg
ICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6YWRkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgQ2Fs
bCB0aHJvdWdoIHRvIHRoZSBtZXNzYWdlIHJlY2VpdmVyIG1hcC4KKworICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZUlELmg6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlSUQ6Om1l
c3NhZ2VDbGFzcyk6CisgICAgICAgIFJlbmFtZSBNZXNzYWdlQ2xhc3NSZXNlcnZlZCB0byBNZXNz
YWdlQ2xhc3NJbnZhbGlkLgorCisgICAgICAgIChNZXNzYWdlSUQpOgorICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyLmg6CisgICAgICAgIE1vdmUgTWVzc2FnZVJlY2Vp
dmVyIGZyb20gQ29ubmVjdGlvbi5oIHRvIGl0cyBvd24gZmlsZS4KKworICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcDoKKyAgICAgICAgTmV3IGhlbHBlciBj
bGFzcy4KKworICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyTWFwOjphZGRNZXNzYWdl
UmVjZWl2ZXIpOgorICAgICAgICBBZGQgdGhlIHJlY2VpdmVyIHRvIHRoZSBtYXAgb2YgcmVjZWl2
ZXJzLgorCisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXA6OmRpc3BhdGNoTWVz
c2FnZSk6CisgICAgICAgIENoZWNrIGlmIHdlIGhhdmUgYW55IHJlZ2lzdGVyZWQgcmVjZWl2ZXJz
IGZvciB0aGlzIG1lc3NhZ2UgY2xhc3MuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01l
c3NhZ2VSZWNlaXZlck1hcC5oOgorICAgICAgICBOZXcgZmlsZS4KKworICAgICAgICAqIFRhcmdl
dC5wcmk6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5h
Z2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
TWFuYWdlci5oOgorICAgICAgICAoQXV0aGVudGljYXRpb25NYW5hZ2VyKToKKyAgICAgICAgUmVn
aXN0ZXIgdGhlIGF1dGhlbnRpY2F0aW9uIG1hbmFnZXIgYXMgYSBtZXNzYWdlIHJlY2VpdmVyLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OldlYkdlb2xvY2F0
aW9uTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uTWFuYWdlcik6CisgICAgICAg
IFJlZ2lzdGVyIHRoZSBnZW9sb2NhdGlvbiBtYW5hZ2VyIGFzIGEgbWVzc2FnZSByZWNlaXZlci4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgUmVtb3ZlIGNoZWNrcyBm
b3IgYXV0aGVudGljYXRpb24gbWFuYWdlciBhbmQgZ2VvbG9jYXRpb24gbWFuYWdlciBtZXNzYWdl
cy4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKyAgICAgICAgQWRkIG5ldyBmaWxl
cy4KKwogMjAxMi0xMC0wMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50
ZWwuY29tPgogCiAgICAgICAgIEZpeCBjb21waWxhdGlvbiB3YXJuaW5ncwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dAppbmRleCBkMDA5NmFjMjVhNDczNDM5MjQyMjI2NTI5NDBkMjIyNjMxNjI2ZDk0Li4xMTli
NTQxZjMwNTVmNjYyMzFiYTQ5ZGYzYzYxZjkxNGJlOTEyNjg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dApAQCAtMTIzLDYgKzEyMyw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBQbGF0Zm9ybS9D
b3JlSVBDL0JpbmFyeVNlbWFwaG9yZS5jcHAKICAgICBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rp
b24uY3BwCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcAorICAgIFBsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAogCiAgICAgUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuY3BwCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlv
blBhcmFtZXRlcnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxM2M2ZmE3
ZDUyMjBkMGI2MDg5OWZlMTE4ZTA5NTNjY2E2N2Y3NjFjLi5lYWJhZTQwZGI3Y2ZlMmVhMTYwMjQ2
NmYxMDA3MDcyN2Y4MjViMjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI1
NCw2ICsyNTQsOSBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvRGF0YVJlZmVyZW5jZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0hhbmRsZU1lc3NhZ2UuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9NZXNzYWdlSUQuaCBcCisJU291cmNlLldlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdl
UmVjZWl2ZXIuaCBcCisJU291cmNlLldlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVj
ZWl2ZXJNYXAuY3BwIFwKKwlTb3VyY2UuV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VS
ZWNlaXZlck1hcC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VT
ZW5kZXIuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0F0dGFjaG1l
bnRVbml4LmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0Nvbm5l
Y3Rpb25Vbml4LmNwcCBcCkBAIC0xMjE0LDYgKzEyMTcsOSBAQCB3ZWJraXQyX3BsdWdpbl9wcm9j
ZXNzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJl
ZmVyZW5jZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3Nh
Z2UuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaCBcCisJ
U291cmNlLldlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXIuaCBcCisJU291
cmNlLldlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIFwKKwlT
b3VyY2UuV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VTZW5kZXIuaCBcCiAJU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0F0dGFjaG1lbnRVbml4LmNwcCBcCiAJU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAppbmRleCBi
MTllYjc1MDcwMTFkNGY2NmY1NjMzZWQyNzBhYTRhMGFiYTAyOTkwLi5kMzRjZTk1YWJmNjU2OTk0
ZTg1YWM5MjQwYmExMTdlMTM1YjkxNjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTY2OCw2ICs2NjgsMTUgQEAgdm9pZCBDb25uZWN0
aW9uOjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKEluY29taW5nTWVzc2FnZSYgaW5jb21pbmdNZXNz
YWdlKQogICAgIG1fY2xpZW50UnVuTG9vcC0+ZGlzcGF0Y2goV1RGOjpiaW5kKCZDb25uZWN0aW9u
OjpkaXNwYXRjaE9uZU1lc3NhZ2UsIHRoaXMpKTsKIH0KIAordm9pZCBDb25uZWN0aW9uOjpkaXNw
YXRjaE1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dERlY29kZXIpCit7CisgICAgLy8gVHJ5IHRoZSBtZXNzYWdlIHJlY2VpdmVyIG1hcCBmaXJzdC4K
KyAgICBpZiAobV9tZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hNZXNzYWdlKHRoaXMsIG1lc3Nh
Z2VJRCwgYXJndW1lbnREZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQt
PmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIG1lc3NhZ2VJRCwgYXJndW1lbnREZWNvZGVyKTsKK30K
Kwogdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoSW5jb21pbmdNZXNzYWdlJiBtZXNz
YWdlKQogewogICAgIE93blB0cjxBcmd1bWVudERlY29kZXI+IGFyZ3VtZW50cyA9IG1lc3NhZ2Uu
cmVsZWFzZUFyZ3VtZW50cygpOwpAQCAtNjg4LDcgKzY5Nyw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6
ZGlzcGF0Y2hNZXNzYWdlKEluY29taW5nTWVzc2FnZSYgbWVzc2FnZSkKICAgICBpZiAobWVzc2Fn
ZS5tZXNzYWdlSUQoKS5pc1N5bmMoKSkKICAgICAgICAgZGlzcGF0Y2hTeW5jTWVzc2FnZShtZXNz
YWdlLm1lc3NhZ2VJRCgpLCBhcmd1bWVudHMuZ2V0KCkpOwogICAgIGVsc2UKLSAgICAgICAgbV9j
bGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIG1lc3NhZ2UubWVzc2FnZUlEKCksIGFyZ3Vt
ZW50cy5nZXQoKSk7CisgICAgICAgIGRpc3BhdGNoTWVzc2FnZShtZXNzYWdlLm1lc3NhZ2VJRCgp
LCBhcmd1bWVudHMuZ2V0KCkpOwogCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgfD0g
YXJndW1lbnRzLT5pc0ludmFsaWQoKTsKICAgICBtX2luRGlzcGF0Y2hNZXNzYWdlQ291bnQtLTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggODg1
MGRlMGQzZWYxMzVmM2U4ZDllMDNiOGU5YTQyOWE3ZGM0YTgyNC4uOGMzODgwMDQwMTNjZTgwNmIx
YTFlYTFhMGQ2ZDI0NGQyODdlYTgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmgKQEAgLTMxLDkgKzMxLDkgQEAKICNpbmNsdWRlICJBcmd1bWVudERl
Y29kZXIuaCIKICNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJBcmd1bWVu
dHMuaCIKLSNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKICNpbmNsdWRlICJXb3JrUXVldWUu
aCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAg
LTg1LDE1ICs4NSw2IEBAIHdoaWxlICgwKQogCiBjbGFzcyBDb25uZWN0aW9uIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPENvbm5lY3Rpb24+IHsKIHB1YmxpYzoKLSAgICBjbGFzcyBNZXNz
YWdlUmVjZWl2ZXIgewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopID0gMDsK
LSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb25uZWN0aW9uKiwg
TWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqLCBPd25QdHI8QXJndW1lbnRFbmNvZGVyPiYpIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLQotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVh
bCB+TWVzc2FnZVJlY2VpdmVyKCkgeyB9Ci0gICAgfTsKLSAgICAKICAgICBjbGFzcyBDbGllbnQg
OiBwdWJsaWMgTWVzc2FnZVJlY2VpdmVyIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRDbG9zZShDb25uZWN0aW9uKikgPSAwOwpAQCAtMTgxLDYgKzE3MiwxMSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhZGRRdWV1ZUNsaWVudChRdWV1ZUNsaWVudCopOwogICAgIHZvaWQgcmVt
b3ZlUXVldWVDbGllbnQoUXVldWVDbGllbnQqKTsKIAorICAgIHZvaWQgYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VDbGFzcyBtZXNzYWdlQ2xhc3MsIE1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJl
Y2VpdmVyKQorICAgIHsKKyAgICAgICAgbV9tZXNzYWdlUmVjZWl2ZXJNYXAuYWRkTWVzc2FnZVJl
Y2VpdmVyKG1lc3NhZ2VDbGFzcywgbWVzc2FnZVJlY2VpdmVyKTsKKyAgICB9CisKICAgICBib29s
IG9wZW4oKTsKICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICB2b2lkIG1hcmtDdXJyZW50bHlE
aXNwYXRjaGVkTWVzc2FnZUFzSW52YWxpZCgpOwpAQCAtMjc5LDggKzI3NSw5IEBAIHByaXZhdGU6
CiAKICAgICAvLyBDYWxsZWQgb24gdGhlIGxpc3RlbmVyIHRocmVhZC4KICAgICB2b2lkIGRpc3Bh
dGNoQ29ubmVjdGlvbkRpZENsb3NlKCk7Ci0gICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2UoSW5jb21p
bmdNZXNzYWdlJik7CiAgICAgdm9pZCBkaXNwYXRjaE9uZU1lc3NhZ2UoKTsKKyAgICB2b2lkIGRp
c3BhdGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2UmKTsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2Fn
ZShNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlzcGF0Y2hTeW5jTWVz
c2FnZShNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkRmFpbFRvU2Vu
ZFN5bmNNZXNzYWdlKCk7CiAKQEAgLTMxMSw2ICszMDgsOCBAQCBwcml2YXRlOgogICAgIE11dGV4
IG1faW5jb21pbmdNZXNzYWdlc0xvY2s7CiAgICAgRGVxdWU8SW5jb21pbmdNZXNzYWdlPiBtX2lu
Y29taW5nTWVzc2FnZXM7CiAKKyAgICBNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2
ZXJNYXA7CisKICAgICAvLyBPdXRnb2luZyBtZXNzYWdlcy4KICAgICBNdXRleCBtX291dGdvaW5n
TWVzc2FnZXNMb2NrOwogICAgIERlcXVlPE91dGdvaW5nTWVzc2FnZT4gbV9vdXRnb2luZ01lc3Nh
Z2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdl
SUQuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKaW5kZXgg
MjJkMzA2YjA0ZjdkM2JjYzJlZjk2NGJhNDkwMDdlOWNhNDJjYmUzMy4uMThkMmQ3OWZjNTliYTIy
YmJlMGI1ZWRkMTVlY2RjZmRhZmQzYjc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL01lc3NhZ2VJRC5oCkBAIC0yOSw3ICsyOSw3IEBACiBuYW1lc3BhY2UgQ29yZUlQQyB7
CiAKIGVudW0gTWVzc2FnZUNsYXNzIHsKLSAgICBNZXNzYWdlQ2xhc3NSZXNlcnZlZCA9IDAsCisg
ICAgTWVzc2FnZUNsYXNzSW52YWxpZCA9IDAsCiAKICAgICAvLyBNZXNzYWdlcyBzZW50IGJ5IENv
cmUgSVBDLgogICAgIE1lc3NhZ2VDbGFzc0NvcmVJUEMsCkBAIC0xODAsNiArMTgwLDExIEBAIHB1
YmxpYzoKICAgICBib29sIHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5KCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZ3MoKSAmIERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5OyB9CiAgICAgYm9vbCBpc1N5bmMoKSBjb25zdCB7IHJldHVybiBnZXRG
bGFncygpICYgU3luY01lc3NhZ2U7IH0KIAorICAgIE1lc3NhZ2VDbGFzcyBtZXNzYWdlQ2xhc3Mo
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE1lc3NhZ2VDbGFzcz4o
Z2V0Q2xhc3MoKSk7CisgICAgfQorCiBwcml2YXRlOgogICAgIHN0YXRpYyBpbmxpbmUgdW5zaWdu
ZWQgc3RyaXBNb3N0U2lnbmlmaWNhbnRCaXQodW5zaWduZWQgdmFsdWUpCiAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjdiNjFjY2RjMzA2ZWVlY2I2YmY2N2YxYTE0OGU1MGE1NGJkNTQ4NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVy
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVzc2FnZVJlY2VpdmVy
X2gKKyNkZWZpbmUgTWVzc2FnZVJlY2VpdmVyX2gKKworI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgor
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCitu
YW1lc3BhY2UgQ29yZUlQQyB7CisKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIEFyZ3Vt
ZW50RW5jb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247CisKK2NsYXNzIE1lc3NhZ2VSZWNlaXZlciB7
CitwdWJsaWM6CisgICAgdmlydHVhbCB+TWVzc2FnZVJlY2VpdmVyKCkgeyB9CisKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1l
bnREZWNvZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Q29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiwgT3duUHRyPEFyZ3VtZW50
RW5jb2Rlcj4mKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQor
fTsKKworfSAvLyBuYW1lc3BhY2UgQ29yZUlQQworCisjZW5kaWYgLy8gTWVzc2FnZVJlY2VpdmVy
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJl
Y2VpdmVyTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJl
Y2VpdmVyTWFwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Y2U3N2RjNjJkNWZjZDZjYmRmN2NlOTI5ZWMzN2Ux
Yzg3ZTkwYWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCisK
KyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKworbmFtZXNwYWNlIENvcmVJUEMgeworCitN
ZXNzYWdlUmVjZWl2ZXJNYXA6Ok1lc3NhZ2VSZWNlaXZlck1hcCgpCit7Cit9CisKK01lc3NhZ2VS
ZWNlaXZlck1hcDo6fk1lc3NhZ2VSZWNlaXZlck1hcCgpCit7Cit9CisKK3ZvaWQgTWVzc2FnZVJl
Y2VpdmVyTWFwOjphZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZUNsYXNzIG1lc3NhZ2VDbGFzcywg
TWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIpCit7CisgICAgQVNTRVJUKCFtX2dsb2Jh
bE1lc3NhZ2VSZWNlaXZlck1hcC5jb250YWlucyhtZXNzYWdlQ2xhc3MpKTsKKyAgICBtX2dsb2Jh
bE1lc3NhZ2VSZWNlaXZlck1hcC5zZXQobWVzc2FnZUNsYXNzLCBtZXNzYWdlUmVjZWl2ZXIpOwor
fQorCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hNZXNzYWdlKENvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIE1lc3NhZ2VJRCBtZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnREZWNvZGVyKQoreworICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZlciA9
IG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVyTWFwLmdldChtZXNzYWdlSUQubWVzc2FnZUNsYXNzKCkp
KSB7CisgICAgICAgIG1lc3NhZ2VSZWNlaXZlci0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudERlY29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIENvcmVJUEMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVy
TWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1h
cC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc3ZmU0Y2Q1NDUzOTE1M2ZhYzg4MDkyNDg0NDE3NTM4ZGNmNjg0ZDkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3Nh
Z2VSZWNlaXZlck1hcC5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1l
c3NhZ2VSZWNlaXZlck1hcF9oCisjZGVmaW5lIE1lc3NhZ2VSZWNlaXZlck1hcF9oCisKKyNpbmNs
dWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2Ug
Q29yZUlQQyB7CisKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247Citj
bGFzcyBNZXNzYWdlUmVjZWl2ZXI7CisKK2NsYXNzIE1lc3NhZ2VSZWNlaXZlck1hcCB7CitwdWJs
aWM6CisgICAgTWVzc2FnZVJlY2VpdmVyTWFwKCk7CisgICAgfk1lc3NhZ2VSZWNlaXZlck1hcCgp
OworCisgICAgdm9pZCBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZUNsYXNzLCBNZXNzYWdlUmVj
ZWl2ZXIqKTsKKworICAgIGJvb2wgZGlzcGF0Y2hNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2
YXRlOgorICAgIC8vIE1lc3NhZ2UgcmVjZWl2ZXJzIHRoYXQgZG9uJ3QgcmVxdWlyZSBhIGRlc3Rp
bmF0aW9uIElELgorICAgIEhhc2hNYXA8dW5zaWduZWQsIE1lc3NhZ2VSZWNlaXZlcio+IG1fZ2xv
YmFsTWVzc2FnZVJlY2VpdmVyTWFwOworfTsKKworfTsKKworI2VuZGlmIC8vIE1lc3NhZ2VSZWNl
aXZlck1hcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNl
L1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCAxNWZhMGIxOGExMTg4YzY3ZDA4MDdjMDhhNjA2MTEx
OWE1MmI1N2YyLi40ZjM5MzA3NTNjYWZjMThjMDAwN2FkN2NhMWJmNDg4ZWU2MTRiOTM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Rh
cmdldC5wcmkKQEAgLTI2LDYgKzI2LDggQEAgSEVBREVSUyArPSBcCiAgICAgUGxhdGZvcm0vQ29y
ZUlQQy9EYXRhUmVmZXJlbmNlLmggXAogICAgIFBsYXRmb3JtL0NvcmVJUEMvSGFuZGxlTWVzc2Fn
ZS5oIFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oIFwKKyAgICBQbGF0Zm9ybS9D
b3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oIFwKKyAgICBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VS
ZWNlaXZlck1hcC5oIFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VTZW5kZXIuaCBcCiAg
ICAgUGxhdGZvcm0vTG9nZ2luZy5oIFwKICAgICBQbGF0Zm9ybS9Nb2R1bGUuaCBcCkBAIC0zODIs
NiArMzg0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50
LmNwcCBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcCBcCiAgICAgUGxhdGZv
cm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcCBcCisgICAgUGxhdGZvcm0vQ29yZUlQQy9NZXNz
YWdlUmVjZWl2ZXJNYXAuY3BwIFwKICAgICBQbGF0Zm9ybS9Mb2dnaW5nLmNwcCBcCiAgICAgUGxh
dGZvcm0vTW9kdWxlLmNwcCBcCiAgICAgUGxhdGZvcm0vV29ya1F1ZXVlLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDRm
YTk3MDhiMWVhZjVhZmNhNzdkZWVhMzE2NDFmNTU1MTkzNThhMi4uZDMyOWIzMDFiZmUxZDE4YzQx
YjM1MjNiODIzZmY2NTkwZTI1Zjk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE1LDYgKzExNSw5IEBACiAJCTFBM0REMjA2
MTI1RTVBMkYwMDQ1MTVFNiAvKiBBUElDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0REMjA1MTI1RTVBMkYwMDQ1MTVFNiAvKiBBUElDbGll
bnQuaCAqLzsgfTsKIAkJMUEzRTczNjExMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUEzRTczNUYxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5oICovOyB9
OwogCQkxQTNFNzM2MjExQ0MyNjU5MDA3QkQ1MzkgLyogV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0U3MzYw
MTFDQzI2NTkwMDdCRDUzOSAvKiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovOyB9OworCQkx
QTNFRUQwRTE2MUE1MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0VFRDBDMTYxQTUzNTMw
MEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwICovOyB9OworCQkxQTNFRUQwRjE2MUE1
MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTNFRUQwRDE2MUE1MzUzMDBBRUI0RjUgLyogTWVz
c2FnZVJlY2VpdmVyTWFwLmggKi87IH07CisJCTFBM0VFRDEyMTYxQTUzRDYwMEFFQjRGNSAvKiBN
ZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCAqLzsg
fTsKIAkJMUE0MzNGMEQxMTNDNTNERDAwRkFDREU5IC8qIFdlYkVycm9ycy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0MzNGMEMxMTNDNTNERDAwRkFD
REU5IC8qIFdlYkVycm9ycy5oICovOyB9OwogCQkxQTRBOUFBODEyQjdFNzk2MDA4RkU5ODQgLyog
V0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTRBOUFBNjEyQjdFNzk2MDA4RkU5ODQgLyogV0tUZXh0SW5w
dXRXaW5kb3dDb250cm9sbGVyLmggKi87IH07CiAJCTFBNEE5QUE5MTJCN0U3OTYwMDhGRTk4NCAv
KiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTRBOUFBNzEyQjdFNzk2MDA4RkU5ODQgLyogV0tUZXh0
SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tICovOyB9OwpAQCAtMTE0OSw2ICsxMTUyLDkgQEAKIAkJ
MUEzREQyMDUxMjVFNUEyRjAwNDUxNUU2IC8qIEFQSUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBUElDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUEzRTczNUYxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzRTczNjAxMUNDMjY1OTAwN0JENTM5IC8q
IFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQTNFRUQwQzE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZlck1h
cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBM0VFRDBEMTYxQTUzNTMwMEFF
QjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVzc2FnZVJlY2VpdmVyTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZVJlY2VpdmVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFBNDMzRjBDMTEzQzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRXJyb3JzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFBNEE5QUE2MTJCN0U3OTYwMDhGRTk4NCAvKiBXS1RleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tU
ZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFBNEE5QUE3MTJCN0U3OTYwMDhGRTk4NCAvKiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1RleHRJbnB1dFdp
bmRvd0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjAwLDYg
KzI2MDYsOSBAQAogCQkJCTFBOEVGREY5MTI1M0NBQTIwMEY3MDY3RiAvKiBEYXRhUmVmZXJlbmNl
LmggKi8sCiAJCQkJQzBDRTcyQUMxMjQ3RTc4RDAwQkMwRUM0IC8qIEhhbmRsZU1lc3NhZ2UuaCAq
LywKIAkJCQlCQzAzMkRBNDEwRjQzN0QxMDA1OEMxNUEgLyogTWVzc2FnZUlELmggKi8sCisJCQkJ
MUEzRUVEMTExNjFBNTNENjAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlci5oICovLAorCQkJCTFB
M0VFRDBDMTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwICovLAorCQkJ
CTFBM0VFRDBEMTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCAqLywKIAkJ
CQkxQTExOUE5NDEyN0I3OTYyMDBBOUVDQjEgLyogTWVzc2FnZVNlbmRlci5oICovLAogCQkJKTsK
IAkJCXBhdGggPSBDb3JlSVBDOwpAQCAtNDI5OSw2ICs0MzA4LDggQEAKIAkJCQlCQzU5NTQ4OTE1
Qzc4Njg1MDBGRDFFM0UgLyogV2ViS2l0Mi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEQzMwODgx
NUZENkE4QjAwNkI2Njk1IC8qIFdlYlByb2Nlc3NJbml0aWFsaXphdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNEQzMwOEMxNUZENkNEMTAwNkI2Njk1IC8qIFdlYlByb2Nlc3NTZXJ2aWNlRW50
cnlQb2ludHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBM0VFRDBGMTYxQTUzNTQwMEFFQjRGNSAv
KiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBM0VFRDEyMTYxQTUz
RDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNTE1NSw2
ICs1MTY2LDcgQEAKIAkJCQlDRDY3RDMwRTE1QzA4RjlBMDA4NDNBREYgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNE
QzMwODcxNUZENkE4QjAwNkI2Njk1IC8qIFdlYlByb2Nlc3NJbml0aWFsaXphdGlvbi5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUJDREMzMDhCMTVGRDZDRDEwMDZCNjY5NSAvKiBXZWJQcm9jZXNzU2Vy
dmljZUVudHJ5UG9pbnRzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMUEzRUVEMEUxNjFBNTM1NDAw
QUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA0NGU4MzA2ZTAxOTZkYTQ0ZmFlNjRjZWQ5
YjQ5NmM1MjdhNTQzZTAyLi5hNjg1OGFjMjhkNTlkY2U2Mjg1ZDZjMzZhNzdkYjQ3ZTc2N2EyZTA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9B
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC01NSw2ICs1NSw3IEBA
IEF1dGhlbnRpY2F0aW9uTWFuYWdlciYgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpzaGFyZWQoKQog
CiBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcigpCiB7CisgICAg
V2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5hZGRNZXNzYWdlUmVjZWl2ZXIoQ29y
ZUlQQzo6TWVzc2FnZUNsYXNzQXV0aGVudGljYXRpb25NYW5hZ2VyLCB0aGlzKTsKIH0KIAogdm9p
ZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
LmgKaW5kZXggMTkyYzkxYWVmMTc5NTliMjZmNTJkNWQxM2JkMjhmYzBiOGNjZTUzZi4uOTE4NmQ0
MmY5ZDdiMDE2ZjlmYjU3MjdiYzdkY2YwZjY2ZjZhODAxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEF1dGhlbnRpY2F0aW9uTWFu
YWdlcl9oCiAjZGVmaW5lIEF1dGhlbnRpY2F0aW9uTWFuYWdlcl9oCiAKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgQ29y
ZUlQQyB7CkBAIC00NSwxNCArNDYsMTIgQEAgY2xhc3MgRG93bmxvYWQ7CiBjbGFzcyBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbzsKIGNsYXNzIFdlYkZyYW1lOwogCi1jbGFzcyBBdXRoZW50aWNhdGlv
bk1hbmFnZXIgeworY2xhc3MgQXV0aGVudGljYXRpb25NYW5hZ2VyIDogcHJpdmF0ZSBDb3JlSVBD
OjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1dGhlbnRpY2F0
aW9uTWFuYWdlcik7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgQXV0aGVudGljYXRpb25NYW5hZ2Vy
JiBzaGFyZWQoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0K
ICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJGcmFtZSosIGNv
bnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAgICAgdm9pZCBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG93bmxvYWQqLCBjb25zdCBXZWJDb3JlOjpBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogCkBAIC02Myw2ICs2Miw5IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyKCk7CiAKKyAgICAvLyBNZXNzYWdlUmVjZWl2
ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJ
REU7CisKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOwogCiAgICAgYm9vbCB0cnlVc2VQbGF0Zm9ybUNlcnRpZmljYXRlSW5mb0ZvckNo
YWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0IFBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5k
ZXggZjA3YzQwNjBkY2Y2ODA3OTM3OGVkZjM5MzRkMmY2OTIzZjA5ZmJhYi4uMmI3NWIwNDJmZmNl
YjgxYWQ5ZTVlNGQ4ZGVjNDgwYzlmNmJmYjk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
LmNwcApAQCAtNDIsNiArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyKFdlYlByb2Nlc3MqIHByb2Nlc3MpCiAgICAg
OiBtX3Byb2Nlc3MocHJvY2VzcykKIHsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0
aW9uKCktPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJHZW9sb2Nh
dGlvbk1hbmFnZXIsIHRoaXMpOwogfQogCiBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6On5XZWJHZW9s
b2NhdGlvbk1hbmFnZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKaW5kZXggNWMzZGZhZTkz
NjQ2NzY0M2JlNDNmN2VlMzRiNWMyYTdlODdmZGUyMi4uZWViOWEyOTYzMTU1MTFiYmI5NjEzNzc5
MGVkODYwNTUwMGNmY2MzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC0yNiw3ICsy
Niw3IEBACiAjaWZuZGVmIFdlYkdlb2xvY2F0aW9uTWFuYWdlcl9oCiAjZGVmaW5lIFdlYkdlb2xv
Y2F0aW9uTWFuYWdlcl9oCiAKLSNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTAsNyAr
NTAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlByb2Nlc3M7CiBjbGFzcyBXZWJQ
YWdlOwogCi1jbGFzcyBXZWJHZW9sb2NhdGlvbk1hbmFnZXIgeworY2xhc3MgV2ViR2VvbG9jYXRp
b25NYW5hZ2VyIDogcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFdlYkdlb2xvY2F0aW9uTWFuYWdlcik7CiBwdWJsaWM6CiAgICAgZXhw
bGljaXQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyKFdlYlByb2Nlc3MqKTsKQEAgLTYxLDkgKzYxLDEx
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6R2VvbG9j
YXRpb24qKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAKIHBy
aXZhdGU6CisgICAgLy8gTWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOworCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4g
Z2VuZXJhdGVkIFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICAgICB2
b2lkIGRpZFJlY2VpdmVXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBkZTE4MzI0NTk5
NzdlNTE1MDA3YTRjYTBmNzJlZGE4ZDhhZmY1OTkwLi4wMDYxMzg4ZjU5Mzc0OGIxMmI0NmMzM2U3
YWE3MDE5ZjA1OWYyODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCiAKLSNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRl
ICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgogI2luY2x1
ZGUgIkluamVjdGVkQnVuZGxlTWVzc2FnZUtpbmRzLmgiCkBAIC02MzgsMTEgKzYzNyw2IEBAIHZv
aWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAo
bWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0F1dGhlbnRpY2F0aW9uTWFuYWdlcj4o
KSkgewotICAgICAgICBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXI+KCkpIHsKICAgICAgICAgV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNjYwLDExICs2NTQsNiBAQCB2b2lk
IFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lcwogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXI+KCkpIHsKLSAgICAg
ICAgbV9nZW9sb2NhdGlvbk1hbmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAjaWYgRU5BQkxF
KEJBVFRFUllfU1RBVFVTKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNs
YXNzV2ViQmF0dGVyeU1hbmFnZXI+KCkpIHsKICAgICAgICAgbV9iYXR0ZXJ5TWFuYWdlci5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggZjFiMGY2NWViM2FkMGE3OGE5OWQ3ZDljZjE1Y2UyNTFh
YjBiZTE3MC4uYmQwOWUwOGYxMjNhODdhNjI5MzA2YjE0YmY3YmZiMzc2NDYxMGVlNiAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtNDA5MCw2ICs0MDkwLDE4IEBACiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxQbGF0Zm9ybVxDb3Jl
SVBDXE1lc3NhZ2VSZWNlaXZlci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZvcm1cQ29yZUlQQ1xNZXNzYWdlUmVjZWl2ZXJNYXAu
Y3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cUGxhdGZvcm1cQ29yZUlQQ1xNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBsYXRmb3JtXENvcmVJUENc
TWVzc2FnZVNlbmRlci5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgo=
</data>
<flag name="review"
          id="179181"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>