<?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>85766</bug_id>
          
          <creation_ts>2012-05-06 19:49:38 -0700</creation_ts>
          <short_desc>[Chromium] Move createLocalStorageNamespace to Platform.h</short_desc>
          <delta_ts>2012-06-05 11:54:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>86313</dependson>
          <blocked>82948</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Pilgrim (Google)">pilgrim</reporter>
          <assigned_to name="Mark Pilgrim (Google)">pilgrim</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>gavinp</cc>
    
    <cc>haraken</cc>
    
    <cc>jamesr</cc>
    
    <cc>michaeln</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>617310</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-05-06 19:49:38 -0700</bug_when>
    <thetext>[Chromium] Move createLocalStorageNamespace to Platform.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617311</commentid>
    <comment_count>1</comment_count>
      <attachid>140459</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-05-06 19:50:28 -0700</bug_when>
    <thetext>Created attachment 140459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617312</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-06 19:51:47 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617338</commentid>
    <comment_count>3</comment_count>
      <attachid>140459</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-06 20:42:59 -0700</bug_when>
    <thetext>Comment on attachment 140459
Patch

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

&gt; Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h:-64
&gt; -class WebStorageNamespace; // FIXME: Does this belong in platform?

Please move WebStorageNamespace.h and WebStorageArea.h at the same time.  It looks like there aren&apos;t any further dependencies, so that should work out fine.  We can then remove the FIXME comment because the answer seems to be &quot;yes&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617876</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-05-07 13:24:50 -0700</bug_when>
    <thetext>please wait till https://bugs.webkit.org/show_bug.cgi?id=85221 is committed prior to shuffling things around, i expect to commit tomorrow (been waiting on the m20 branch to be cut)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617950</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-05-07 14:26:29 -0700</bug_when>
    <thetext>Just looked more closely at the patch, it doesn&apos;t actually resolve then linkage problem with the static StorageNamespace::create&lt;&lt;&gt;&gt; methods. I&apos;m not sure shuffling the WebKit API method definitions to create WebStorageNamespace instances around needs to be done w/o actually solving the linkage problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617986</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-07 15:13:30 -0700</bug_when>
    <thetext>&gt; I&apos;m not sure shuffling the WebKit API method definitions to create WebStorageNamespace instances around needs to be done w/o actually solving the linkage problems.

We&apos;ll solve the linkage problems eventually.  This patch is just a step in the right direction.  Rather than solving this problem &quot;depth first&quot; by resolving each linkage problem, we&apos;re going &quot;breath first&quot; and refactoring the API to the point where we can fix these problems internally in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621195</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-05-10 19:01:03 -0700</bug_when>
    <thetext>fyi https://bugs.webkit.org/show_bug.cgi?id=85221 is landed, thnx for waiting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621894</commentid>
    <comment_count>8</comment_count>
      <attachid>141477</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-05-11 12:43:47 -0700</bug_when>
    <thetext>Created attachment 141477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621895</commentid>
    <comment_count>9</comment_count>
      <attachid>141477</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-05-11 12:44:45 -0700</bug_when>
    <thetext>Comment on attachment 141477
Patch

Also moves the other classes Adam wanted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621904</commentid>
    <comment_count>10</comment_count>
      <attachid>141477</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-05-11 12:54:04 -0700</bug_when>
    <thetext>Comment on attachment 141477
Patch

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

&gt; Source/WebKit/chromium/public/WebStorageArea.h:31
&gt; +#include &quot;../../../Platform/chromium/public/WebStorageArea.h&quot;

geez... look at that include path... is the plan to leave this files in WebKit/chromium/public or to switch consumers to include from Platform/chromium/public directly?

just curious</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621906</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-05-11 12:56:36 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 141477 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141477&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebStorageArea.h:31
&gt; &gt; +#include &quot;../../../Platform/chromium/public/WebStorageArea.h&quot;
&gt; 
&gt; geez... look at that include path... is the plan to leave this files in WebKit/chromium/public or to switch consumers to include from Platform/chromium/public directly?
&gt; 
&gt; just curious

We have two WebKit APIs - the client and the platform API.  If this header is logically part of the client API (i.e. it makes sense to talk about it in code that&apos;s otherwise using just the client API), then we leave this forwarding header in place.  If it&apos;s only used by code talking to the platform API, then we should update the chromium code to use the Platform location and then delete this header.  I don&apos;t want to force all chromium code currently using #includes from  WebKit/chromium/public/ to also have to #include stuff from Platform/... just to pick up types it wants to use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621930</commentid>
    <comment_count>12</comment_count>
      <attachid>141477</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-11 13:31:49 -0700</bug_when>
    <thetext>Comment on attachment 141477
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621931</commentid>
    <comment_count>13</comment_count>
      <attachid>141477</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-11 13:32:23 -0700</bug_when>
    <thetext>Comment on attachment 141477
Patch

It looks like Bug 85221 has landed, so we should be good to go here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622025</commentid>
    <comment_count>14</comment_count>
      <attachid>141477</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 15:29:50 -0700</bug_when>
    <thetext>Comment on attachment 141477
Patch

Clearing flags on attachment: 141477

Committed r116812: &lt;http://trac.webkit.org/changeset/116812&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622026</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 15:29:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622475</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-12 23:00:44 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 86313</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622971</commentid>
    <comment_count>17</comment_count>
      <attachid>141729</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-05-14 07:55:17 -0700</bug_when>
    <thetext>Created attachment 141729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622972</commentid>
    <comment_count>18</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-05-14 07:57:43 -0700</bug_when>
    <thetext>Mark, my apologies: webkit-patch spazziness led me to this bad upload.  I have obsoleted my upload, and unobsoleted yours.  I&apos;m sorry for the confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641550</commentid>
    <comment_count>19</comment_count>
      <attachid>145797</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-06-05 08:00:31 -0700</bug_when>
    <thetext>Created attachment 145797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641554</commentid>
    <comment_count>20</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-06-05 08:03:13 -0700</bug_when>
    <thetext>Unbitrotting this patch after it was reviewed, committed, landed, mistakenly blamed for a downstream crash, rolled back, mistakenly obsoleted, and probably some other stuff I forgot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641781</commentid>
    <comment_count>21</comment_count>
      <attachid>145797</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-05 11:54:08 -0700</bug_when>
    <thetext>Comment on attachment 145797
Patch

Clearing flags on attachment: 145797

Committed r119510: &lt;http://trac.webkit.org/changeset/119510&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641782</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-05 11:54:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140459</attachid>
            <date>2012-05-06 19:50:28 -0700</date>
            <delta_ts>2012-05-11 12:43:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85766-20120506224944.patch</filename>
            <type>text/plain</type>
            <size>5014</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTE2MjYxKQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA1LTA2ICBNYXJr
IFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1v
dmUgY3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlIHRvIFBsYXRmb3JtLmgKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzY2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFydCBvZiBhIHJlZmFjdG9yaW5n
IHNlcmllcy4gU2VlIHRyYWNraW5nIGJ1ZyA4Mjk0OC4KKworICAgICAgICAqIGNocm9taXVtL3B1
YmxpYy9QbGF0Zm9ybS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFBsYXRmb3JtKToK
KyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm06OmNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZSk6
CisKIDIwMTItMDUtMDQgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAK
ICAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBNYWtlIFBlZXJDb25uZWN0aW9uMDAncyBBUEkgZnVs
bHkgY29tcGxpYW50IHdpdGggdGhlIGRyYWZ0CkluZGV4OiBTb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1BsYXRmb3JtL2Nocm9t
aXVtL3B1YmxpYy9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxMTYyNTUpCisrKyBTb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3
LDcgQEAgY2xhc3MgV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXI7CiBjbGFzcyBXZWJQZWVyQ29u
bmVjdGlvbjAwSGFuZGxlckNsaWVudDsKIGNsYXNzIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlcjsK
IGNsYXNzIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDsKK2NsYXNzIFdlYlN0b3JhZ2VO
YW1lc3BhY2U7IC8vIEZJWE1FOiBEb2VzIHRoaXMgYmVsb25nIGluIHBsYXRmb3JtPwogY2xhc3Mg
V2ViVVJMOwogY2xhc3MgV2ViVVJMTG9hZGVyOwogY2xhc3MgV2ViU29ja2V0U3RyZWFtSGFuZGxl
OwpAQCAtNjksNiArNzAsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQXVkaW9EZXZpY2Uq
IGNyZWF0ZUF1ZGlvRGV2aWNlKHNpemVfdCBidWZmZXJTaXplLCB1bnNpZ25lZCBudW1iZXJPZkNo
YW5uZWxzLCBkb3VibGUgc2FtcGxlUmF0ZSwgV2ViQXVkaW9EZXZpY2U6OlJlbmRlckNhbGxiYWNr
KikgeyByZXR1cm4gMDsgfQogCiAKKyAgICAvLyBET00gU3RvcmFnZSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gUmV0dXJuIGEgTG9j
YWxTdG9yYWdlIG5hbWVzcGFjZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBmb2xsb3dpbmcgcGF0
aC4KKyAgICB2aXJ0dWFsIFdlYlN0b3JhZ2VOYW1lc3BhY2UqIGNyZWF0ZUxvY2FsU3RvcmFnZU5h
bWVzcGFjZShjb25zdCBXZWJTdHJpbmcmIHBhdGgsIHVuc2lnbmVkIHF1b3RhKSB7IHJldHVybiAw
OyB9CisKKwogICAgIC8vIEdhbWVwYWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgdmlydHVhbCB2b2lkIHNhbXBsZUdh
bWVwYWRzKFdlYkdhbWVwYWRzJiBpbnRvKSB7IGludG8ubGVuZ3RoID0gMDsgfQpJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNjI2MSkKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTIt
MDUtMDYgIE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtD
aHJvbWl1bV0gTW92ZSBjcmVhdGVMb2NhbFN0b3JhZ2VOYW1lc3BhY2UgdG8gUGxhdGZvcm0uaAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU3NjYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXJ0IG9mIGEg
cmVmYWN0b3Jpbmcgc2VyaWVzLiBTZWUgdHJhY2tpbmcgYnVnIDgyOTQ4LgorCisgICAgICAgICog
cHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdFBsYXRmb3JtU3VwcG9ydCk6CisgICAgICAgICogc3JjL1N0b3Jh
Z2VOYW1lc3BhY2VQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNl
Ojpsb2NhbFN0b3JhZ2VOYW1lc3BhY2UpOgorCiAyMDEyLTA1LTA2ICBLZWlzaGkgSGF0dG9yaSAg
PGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIFdlYktpdCBBUEkg
dG8gYWNjZXNzIG11bHRpcGxlIGF0dHJpYnV0ZSBvZiBpbnB1dCBlbGVtZW50CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9X
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAkocmV2aXNpb24gMTE2MjU1KQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTYxLDcgKzYxLDYgQEAgY2xhc3MgV2ViTWVzc2FnZVBvcnRDaGFubmVsOyAv
LyBGSVhNRTogRAogY2xhc3MgV2ViUGx1Z2luTGlzdEJ1aWxkZXI7IC8vIEZJWE1FOiBEb2VzIHRo
aXMgYmVsb25nIGluIHBsYXRmb3JtPwogY2xhc3MgV2ViU2FuZGJveFN1cHBvcnQ7CiBjbGFzcyBX
ZWJTaGFyZWRXb3JrZXJSZXBvc2l0b3J5OyAvLyBGSVhNRTogRG9lcyB0aGlzIGJlbG9uZyBpbiBw
bGF0Zm9ybT8KLWNsYXNzIFdlYlN0b3JhZ2VOYW1lc3BhY2U7IC8vIEZJWE1FOiBEb2VzIHRoaXMg
YmVsb25nIGluIHBsYXRmb3JtPwogY2xhc3MgV2ViVGhlbWVFbmdpbmU7CiBjbGFzcyBXZWJXb3Jr
ZXJSdW5Mb29wOwogCkBAIC05MCw5ICs4OSw2IEBAIHB1YmxpYzoKIAogICAgIC8vIERPTSBTdG9y
YWdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
LSAgICAvLyBSZXR1cm4gYSBMb2NhbFN0b3JhZ2UgbmFtZXNwYWNlIHRoYXQgY29ycmVzcG9uZHMg
dG8gdGhlIGZvbGxvd2luZyBwYXRoLgotICAgIHZpcnR1YWwgV2ViU3RvcmFnZU5hbWVzcGFjZSog
Y3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKGNvbnN0IFdlYlN0cmluZyYgcGF0aCwgdW5zaWdu
ZWQgcXVvdGEpIHsgcmV0dXJuIDA7IH0KLQogICAgIC8vIERFUFJFQ0FURUQKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hTdG9yYWdlRXZlbnQoY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdl
YlN0cmluZyYgb2xkVmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFdlYlN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFdlYlN0cmluZyYgb3JpZ2luLApJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZU5hbWVzcGFjZVByb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlTmFtZXNwYWNl
UHJveHkuY3BwCShyZXZpc2lvbiAxMTYyNTUpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9TdG9yYWdlTmFtZXNwYWNlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxNyArMzIs
MTggQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVh
UHJveHkuaCIKICNpbmNsdWRlICJXZWJLaXQuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJLaXRQ
bGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5j
bHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgog
I2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4K
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IFN0
b3JhZ2VOYW1lc3BhY2U6OmxvY2FsU3RvcmFnZU5hbWVzcGFjZShjb25zdCBTdHJpbmcmIHBhdGgs
IHVuc2lnbmVkIHF1b3RhKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RvcmFnZU5hbWVz
cGFjZVByb3h5KFdlYktpdDo6d2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmNyZWF0ZUxvY2FsU3Rv
cmFnZU5hbWVzcGFjZShwYXRoLCBxdW90YSksIExvY2FsU3RvcmFnZSkpOworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU3RvcmFnZU5hbWVzcGFjZVByb3h5KFdlYktpdDo6UGxhdGZvcm06OmN1cnJl
bnQoKS0+Y3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKHBhdGgsIHF1b3RhKSwgTG9jYWxTdG9y
YWdlKSk7CiB9CiAKIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFj
ZTo6c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoUGFnZSogcGFnZSwgdW5zaWduZWQgcXVvdGEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141477</attachid>
            <date>2012-05-11 12:43:47 -0700</date>
            <delta_ts>2012-06-05 08:00:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85766-20120511154342.patch</filename>
            <type>text/plain</type>
            <size>19024</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTE2Nzk0KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA1LTExICBNYXJr
IFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1v
dmUgY3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlIHRvIFBsYXRmb3JtLmgKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzY2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFydCBvZiBhIHJlZmFjdG9yaW5n
IHNlcmllcy4gU2VlIHRyYWNraW5nIGJ1ZyA4Mjk0OC4KKworICAgICAgICAqIFBsYXRmb3JtLmd5
cGk6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmg6CisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAoUGxhdGZvcm0pOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6Y3Jl
YXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2Vi
U3RvcmFnZUFyZWEuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViU3Rv
cmFnZUFyZWEpOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQXJlYTo6fldlYlN0b3JhZ2VB
cmVhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3RvcmFnZUFyZWE6OnNldEl0ZW0pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTdG9yYWdlQXJlYTo6cmVtb3ZlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlN0b3JhZ2VBcmVhOjpjbGVhcik6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlN0
b3JhZ2VOYW1lc3BhY2UuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
U3RvcmFnZU5hbWVzcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VOYW1lc3BhY2U6
On5XZWJTdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3RvcmFnZU5hbWVz
cGFjZTo6aXNTYW1lTmFtZXNwYWNlKToKKwogMjAxMi0wNS0xMCAgTWFyayBQaWxncmltICA8cGls
Z3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBSZW1vdmUgV0VCS0lUX1VT
SU5HX1NLSUEgaWZkZWZzIHRoYXQgYXJlIGFsd2F5cyB0cnVlCkluZGV4OiBTb3VyY2UvUGxhdGZv
cm0vUGxhdGZvcm0uZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0u
Z3lwaQkocmV2aXNpb24gMTE2NzkzKQorKysgU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkJ
KHdvcmtpbmcgY29weSkKQEAgLTkwLDYgKzkwLDggQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9w
dWJsaWMvV2ViU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL3B1YmxpYy9XZWJTb2xpZENvbG9yTGF5ZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0v
cHVibGljL1dlYlN0cmluZy5oJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViU3Rv
cmFnZUFyZWEuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VOYW1l
c3BhY2UuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlRocmVhZC5oJywKICAg
ICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVGhyZWFkU2FmZURhdGEuaCcsCiAgICAgICAg
ICAgICAnY2hyb21pdW0vcHVibGljL1dlYlVSTC5oJywKSW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgJKHJldmlzaW9uIDExNjc5MykKKysrIFNvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtNDks
NiArNDksNyBAQCBjbGFzcyBXZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlcjsKIGNsYXNzIFdlYlBl
ZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50OwogY2xhc3MgV2ViUGVlckNvbm5lY3Rpb25IYW5k
bGVyOwogY2xhc3MgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OworY2xhc3MgV2ViU3Rv
cmFnZU5hbWVzcGFjZTsKIGNsYXNzIFdlYlVSTDsKIGNsYXNzIFdlYlVSTExvYWRlcjsKIGNsYXNz
IFdlYlNvY2tldFN0cmVhbUhhbmRsZTsKQEAgLTc5LDYgKzgwLDEyIEBAIHB1YmxpYzoKICAgICAv
LyBNdXN0IHJldHVybiBub24tbnVsbC4KICAgICB2aXJ0dWFsIFdlYkZpbGVTeXN0ZW0qIGZpbGVT
eXN0ZW0oKSB7IHJldHVybiAwOyB9CiAKKyAgICAvLyBET00gU3RvcmFnZSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gUmV0dXJuIGEg
TG9jYWxTdG9yYWdlIG5hbWVzcGFjZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBmb2xsb3dpbmcg
cGF0aC4KKyAgICB2aXJ0dWFsIFdlYlN0b3JhZ2VOYW1lc3BhY2UqIGNyZWF0ZUxvY2FsU3RvcmFn
ZU5hbWVzcGFjZShjb25zdCBXZWJTdHJpbmcmIHBhdGgsIHVuc2lnbmVkIHF1b3RhKSB7IHJldHVy
biAwOyB9CisKKwogICAgIC8vIEdhbWVwYWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgdmlydHVhbCB2b2lkIHNhbXBs
ZUdhbWVwYWRzKFdlYkdhbWVwYWRzJiBpbnRvKSB7IGludG8ubGVuZ3RoID0gMDsgfQpJbmRleDog
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlQXJlYS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZUFyZWEuaAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFn
ZUFyZWEuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViU3RvcmFnZUFy
ZWFfaAorI2RlZmluZSBXZWJTdG9yYWdlQXJlYV9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIK
KyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlVSTDsKKworY2xhc3MgV2ViU3RvcmFnZUFyZWEgeworcHVibGljOgorICAgIHZpcnR1YWwgfldl
YlN0b3JhZ2VBcmVhKCkgeyB9CisKKyAgICBlbnVtIFJlc3VsdCB7CisgICAgICAgIFJlc3VsdE9L
ID0gMCwKKyAgICAgICAgUmVzdWx0QmxvY2tlZEJ5UXVvdGEKKyAgICB9OworCisgICAgLy8gVGhl
IG51bWJlciBvZiBrZXkvdmFsdWUgcGFpcnMgaW4gdGhlIHN0b3JhZ2UgYXJlYS4KKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIGxlbmd0aCgpID0gMDsKKworICAgIC8vIEdldCBhIHZhbHVlIGZvciBhIHNw
ZWNpZmljIGtleS4gVmFsaWQga2V5IGluZGljZXMgYXJlIDAgdGhyb3VnaCBsZW5ndGgoKSAtIDEu
CisgICAgLy8gSW5kZXhlcyBtYXkgY2hhbmdlIG9uIGFueSBzZXQvcmVtb3ZlSXRlbSBjYWxsLiBX
aWxsIHJldHVybiBudWxsIGlmIHRoZSBpbmRleAorICAgIC8vIHByb3ZpZGVkIGlzIG91dCBvZiBy
YW5nZS4KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBrZXkodW5zaWduZWQgaW5kZXgpID0gMDsKKwor
ICAgIC8vIEdldCB0aGUgdmFsdWUgdGhhdCBjb3JyZXNwb25kcyB0byBhIHNwZWNpZmljIGtleS4g
VGhpcyByZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMKKyAgICAvLyBubyBlbnRyeSBmb3IgdGhhdCBr
ZXkuCisgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0SXRlbShjb25zdCBXZWJTdHJpbmcmIGtleSkg
PSAwOworCisgICAgLy8gU2V0IHRoZSB2YWx1ZSB0aGF0IGNvcnJlc3BvbmRzIHRvIGEgc3BlY2lm
aWMga2V5LiBSZXN1bHQgd2lsbCBlaXRoZXIgYmUgUmVzdWx0T0sKKyAgICAvLyBvciBzb21lIHBh
cnRpY3VsYXIgZXJyb3IuIFRoZSB2YWx1ZSBpcyBOT1Qgc2V0IHdoZW4gdGhlcmUncyBhbiBlcnJv
ci4gfHBhZ2VVcmx8IGlzIHRoZQorICAgIC8vIHVybCB0aGF0IHNob3VsZCBiZSB1c2VkIGlmIGEg
c3RvcmFnZSBldmVudCBmaXJlcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbShjb25zdCBXZWJT
dHJpbmcmIGtleSwgY29uc3QgV2ViU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgV2ViVVJMJiBwYWdl
VXJsLCBSZXN1bHQmIHJlc3VsdCkKKyAgICB7CisgICAgICAgIFdlYlN0cmluZyB1bnVzZWQ7Cisg
ICAgICAgIHNldEl0ZW0oa2V5LCBuZXdWYWx1ZSwgcGFnZVVybCwgcmVzdWx0LCB1bnVzZWQpOwor
ICAgIH0KKworCisgICAgLy8gUmVtb3ZlIHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggYSBwYXJ0
aWN1bGFyIGtleS4gfHBhZ2VVcmx8IGlzIHRoZSB1cmwgdGhhdCBzaG91bGQgYmUgdXNlZAorICAg
IC8vIGlmIGEgc3RvcmFnZSBldmVudCBmaXJlcy4KKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSXRl
bShjb25zdCBXZWJTdHJpbmcmIGtleSwgY29uc3QgV2ViVVJMJiBwYWdlVXJsKQorICAgIHsKKyAg
ICAgICAgV2ViU3RyaW5nIHVudXNlZDsKKyAgICAgICAgcmVtb3ZlSXRlbShrZXksIHBhZ2VVcmws
IHVudXNlZCk7CisgICAgfQorCisgICAgLy8gQ2xlYXIgYWxsIGtleS92YWx1ZSBwYWlycy4gfHBh
Z2VVcmx8IGlzIHRoZSB1cmwgdGhhdCBzaG91bGQgYmUgdXNlZCBpZiBhIHN0b3JhZ2UgZXZlbnQg
ZmlyZXMuCisgICAgdmlydHVhbCB2b2lkIGNsZWFyKGNvbnN0IFdlYlVSTCYgcGFnZVVybCkKKyAg
ICB7CisgICAgICAgIGJvb2wgdW51c2VkOworICAgICAgICBjbGVhcihwYWdlVXJsLCB1bnVzZWQp
OworICAgIH0KKworICAgIC8vIERFUFJFQ0FURUQgLSBiZWluZyByZXBsYWNlZCBieSB0aGUgYXN5
bmMgdmFyaWFudHMgYWJvdmUgd2hpY2ggZG8gbm90IHJldHVybiBvbGRWYWx1ZXMgb3IgYmxvY2sg
dW50aWwgY29tcGxldGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbShjb25zdCBXZWJTdHJp
bmcmIGtleSwgY29uc3QgV2ViU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgV2ViVVJMJiwgUmVzdWx0
JiwgV2ViU3RyaW5nJiBvbGRWYWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJdGVt
KGNvbnN0IFdlYlN0cmluZyYga2V5LCBjb25zdCBXZWJVUkwmIHBhZ2VVcmwsIFdlYlN0cmluZyYg
b2xkVmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoY29uc3QgV2ViVVJMJiBwYWdl
VXJsLCBib29sJiBzb21ldGhpbmdDbGVhcmVkKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIFdlYlN0b3JhZ2VBcmVhX2gKSW5kZXg6IFNvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZU5hbWVzcGFjZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZU5hbWVzcGFjZS5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlTmFt
ZXNwYWNlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlN0b3JhZ2VO
YW1lc3BhY2VfaAorI2RlZmluZSBXZWJTdG9yYWdlTmFtZXNwYWNlX2gKKworI2luY2x1ZGUgIldl
YkNvbW1vbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU3RvcmFnZUFyZWE7
CitjbGFzcyBXZWJTdHJpbmc7CisKKy8vIFdlYlN0b3JhZ2VOYW1lc3BhY2UgcmVwcmVzZW50cyBh
IGNvbGxlY3Rpb24gb2YgU3RvcmFnZUFyZWFzLiBUeXBpY2FsbHksIHlvdSdsbCBoYXZlCisvLyBt
dWx0aXBsZSBTdG9yYWdlTmFtZXNwYWNlcyB0byByZXByZXNlbnQgdGhlIFNlc3Npb25TdG9yYWdl
IGZvciBlYWNoIHRhYiBhbmQgYSBzaW5nbGUKKy8vIFN0b3JhZ2VOYW1lc3BhY2UgdG8gcmVwcmVz
ZW50IExvY2FsU3RvcmFnZSBmb3IgdGhlIGVudGlyZSBicm93c2VyLgorY2xhc3MgV2ViU3RvcmFn
ZU5hbWVzcGFjZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViU3RvcmFnZU5hbWVzcGFjZSgp
IHsgfQorCisgICAgLy8gQ3JlYXRlIGEgbmV3IFdlYlN0b3JhZ2VBcmVhIG9iamVjdC4gVHdvIHN1
YnNlcXVlbnQgY2FsbHMgd2l0aCB0aGUgc2FtZSBvcmlnaW4KKyAgICAvLyB3aWxsIHJldHVybiB0
d28gZGlmZmVyZW50IFdlYlN0b3JhZ2VBcmVhIG9iamVjdHMgdGhhdCBzaGFyZSB0aGUgc2FtZSBi
YWNraW5nIHN0b3JlLgorICAgIC8vIFlvdSBzaG91bGQgY2FsbCBkZWxldGUgb24gdGhlIHJldHVy
bmVkIG9iamVjdCB3aGVuIHlvdSdyZSBmaW5pc2hlZC4KKyAgICB2aXJ0dWFsIFdlYlN0b3JhZ2VB
cmVhKiBjcmVhdGVTdG9yYWdlQXJlYShjb25zdCBXZWJTdHJpbmcmIG9yaWdpbikgPSAwOworCisg
ICAgLy8gQ29weSBhIFN0b3JhZ2VOYW1lc3BhY2UuIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpbiB0
aGUgY2FzZSBvZiBTZXNzaW9uU3RvcmFnZS4KKyAgICB2aXJ0dWFsIFdlYlN0b3JhZ2VOYW1lc3Bh
Y2UqIGNvcHkoKSA9IDA7CisKKyAgICAvLyBSZXR1cm5zIHRydWUgb2YgdGhlIHR3byBpbnN0YW5j
ZXMgcmVwcmVzZW50IHRoZSBzYW1lIHN0b3JhZ2UgbmFtZXNwYWNlLgorICAgIHZpcnR1YWwgYm9v
bCBpc1NhbWVOYW1lc3BhY2UoY29uc3QgV2ViU3RvcmFnZU5hbWVzcGFjZSYpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdl
YlN0b3JhZ2VOYW1lc3BhY2VfaApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDExNjc5NCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDUtMTEgIE1hcmsgUGlsZ3JpbSAgPHBpbGdy
aW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gTW92ZSBjcmVhdGVMb2NhbFN0
b3JhZ2VOYW1lc3BhY2UgdG8gUGxhdGZvcm0uaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU3NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQYXJ0IG9mIGEgcmVmYWN0b3Jpbmcgc2VyaWVzLiBTZWUgdHJh
Y2tpbmcgYnVnIDgyOTQ4LgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJs
aWMvV2ViU3RvcmFnZUFyZWEuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViU3RvcmFnZU5hbWVzcGFj
ZS5oOgorICAgICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaDoK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBsYXRmb3JtU3VwcG9y
dDo6YmxvYlJlZ2lzdHJ5KToKKyAgICAgICAgKiBzcmMvU3RvcmFnZUFyZWFQcm94eS5jcHA6Cisg
ICAgICAgICogc3JjL1N0b3JhZ2VOYW1lc3BhY2VQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdG9yYWdlTmFtZXNwYWNlOjpsb2NhbFN0b3JhZ2VOYW1lc3BhY2UpOgorCiAyMDEyLTA1LTEx
ICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gRW5zdXJlIHRoYXQgYW5pbWF0aW9ucyBjb250aW51ZSB0byBydW4gd2hlbiB0cmFuc2Zvcm0t
c3R5bGUgaXMgY2hhbmdlZApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkocmV2aXNp
b24gMTE2NzkzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNTgsOSArMjU4LDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlNw
ZWVjaFJlY29nbml6ZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTcGVl
Y2hSZWNvZ25pemVyLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3BlbGxDaGVja0Ns
aWVudC5oJywKLSAgICAgICAgICAgICAgICAncHVibGljL1dlYlN0b3JhZ2VBcmVhLmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oJywKLSAgICAg
ICAgICAgICAgICAncHVibGljL1dlYlN0b3JhZ2VOYW1lc3BhY2UuaCcsCiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MuaCcsCiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJTdG9yYWdlUXVvdGFUeXBlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViU3Vycm91bmRpbmdUZXh0LmgnLApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU3RvcmFnZUFyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTdG9yYWdlQXJlYS5oCShyZXZpc2lvbiAxMTY3OTMpCisrKyBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlQXJlYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCw2OCArMjgsNCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYlN0b3JhZ2VB
cmVhX2gKLSNkZWZpbmUgV2ViU3RvcmFnZUFyZWFfaAotCi0jaW5jbHVkZSAicGxhdGZvcm0vV2Vi
Q29tbW9uLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCi0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1jbGFzcyBXZWJVUkw7Ci0KLWNsYXNzIFdlYlN0b3JhZ2VBcmVhIHsKLXB1Ymxp
YzoKLSAgICB2aXJ0dWFsIH5XZWJTdG9yYWdlQXJlYSgpIHsgfQotCi0gICAgZW51bSBSZXN1bHQg
ewotICAgICAgICBSZXN1bHRPSyA9IDAsCi0gICAgICAgIFJlc3VsdEJsb2NrZWRCeVF1b3RhCi0g
ICAgfTsKLQotICAgIC8vIFRoZSBudW1iZXIgb2Yga2V5L3ZhbHVlIHBhaXJzIGluIHRoZSBzdG9y
YWdlIGFyZWEuCi0gICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSA9IDA7Ci0KLSAgICAvLyBH
ZXQgYSB2YWx1ZSBmb3IgYSBzcGVjaWZpYyBrZXkuIFZhbGlkIGtleSBpbmRpY2VzIGFyZSAwIHRo
cm91Z2ggbGVuZ3RoKCkgLSAxLgotICAgIC8vIEluZGV4ZXMgbWF5IGNoYW5nZSBvbiBhbnkgc2V0
L3JlbW92ZUl0ZW0gY2FsbC4gV2lsbCByZXR1cm4gbnVsbCBpZiB0aGUgaW5kZXgKLSAgICAvLyBw
cm92aWRlZCBpcyBvdXQgb2YgcmFuZ2UuCi0gICAgdmlydHVhbCBXZWJTdHJpbmcga2V5KHVuc2ln
bmVkIGluZGV4KSA9IDA7Ci0KLSAgICAvLyBHZXQgdGhlIHZhbHVlIHRoYXQgY29ycmVzcG9uZHMg
dG8gYSBzcGVjaWZpYyBrZXkuIFRoaXMgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlzCi0gICAgLy8g
bm8gZW50cnkgZm9yIHRoYXQga2V5LgotICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldEl0ZW0oY29u
c3QgV2ViU3RyaW5nJiBrZXkpID0gMDsKLQotICAgIC8vIFNldCB0aGUgdmFsdWUgdGhhdCBjb3Jy
ZXNwb25kcyB0byBhIHNwZWNpZmljIGtleS4gUmVzdWx0IHdpbGwgZWl0aGVyIGJlIFJlc3VsdE9L
Ci0gICAgLy8gb3Igc29tZSBwYXJ0aWN1bGFyIGVycm9yLiBUaGUgdmFsdWUgaXMgTk9UIHNldCB3
aGVuIHRoZXJlJ3MgYW4gZXJyb3IuIHxwYWdlVXJsfCBpcyB0aGUKLSAgICAvLyB1cmwgdGhhdCBz
aG91bGQgYmUgdXNlZCBpZiBhIHN0b3JhZ2UgZXZlbnQgZmlyZXMuCi0gICAgdmlydHVhbCB2b2lk
IHNldEl0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdlYlN0cmluZyYgbmV3VmFsdWUs
IGNvbnN0IFdlYlVSTCYgcGFnZVVybCwgUmVzdWx0JiByZXN1bHQpCi0gICAgewotICAgICAgICBX
ZWJTdHJpbmcgdW51c2VkOwotICAgICAgICBzZXRJdGVtKGtleSwgbmV3VmFsdWUsIHBhZ2VVcmws
IHJlc3VsdCwgdW51c2VkKTsKLSAgICB9Ci0KLQotICAgIC8vIFJlbW92ZSB0aGUgdmFsdWUgYXNz
b2NpYXRlZCB3aXRoIGEgcGFydGljdWxhciBrZXkuIHxwYWdlVXJsfCBpcyB0aGUgdXJsIHRoYXQg
c2hvdWxkIGJlIHVzZWQKLSAgICAvLyBpZiBhIHN0b3JhZ2UgZXZlbnQgZmlyZXMuCi0gICAgdmly
dHVhbCB2b2lkIHJlbW92ZUl0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdlYlVSTCYg
cGFnZVVybCkKLSAgICB7Ci0gICAgICAgIFdlYlN0cmluZyB1bnVzZWQ7Ci0gICAgICAgIHJlbW92
ZUl0ZW0oa2V5LCBwYWdlVXJsLCB1bnVzZWQpOwotICAgIH0KLQotICAgIC8vIENsZWFyIGFsbCBr
ZXkvdmFsdWUgcGFpcnMuIHxwYWdlVXJsfCBpcyB0aGUgdXJsIHRoYXQgc2hvdWxkIGJlIHVzZWQg
aWYgYSBzdG9yYWdlIGV2ZW50IGZpcmVzLgotICAgIHZpcnR1YWwgdm9pZCBjbGVhcihjb25zdCBX
ZWJVUkwmIHBhZ2VVcmwpCi0gICAgewotICAgICAgICBib29sIHVudXNlZDsKLSAgICAgICAgY2xl
YXIocGFnZVVybCwgdW51c2VkKTsKLSAgICB9Ci0KLSAgICAvLyBERVBSRUNBVEVEIC0gYmVpbmcg
cmVwbGFjZWQgYnkgdGhlIGFzeW5jIHZhcmlhbnRzIGFib3ZlIHdoaWNoIGRvIG5vdCByZXR1cm4g
b2xkVmFsdWVzIG9yIGJsb2NrIHVudGlsIGNvbXBsZXRpb24uCi0gICAgdmlydHVhbCB2b2lkIHNl
dEl0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdlYlN0cmluZyYgbmV3VmFsdWUsIGNv
bnN0IFdlYlVSTCYsIFJlc3VsdCYsIFdlYlN0cmluZyYgb2xkVmFsdWUpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlSXRlbShjb25zdCBXZWJTdHJpbmcmIGtleSwgY29uc3QgV2ViVVJMJiBw
YWdlVXJsLCBXZWJTdHJpbmcmIG9sZFZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFy
KGNvbnN0IFdlYlVSTCYgcGFnZVVybCwgYm9vbCYgc29tZXRoaW5nQ2xlYXJlZCkgPSAwOwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJTdG9yYWdlQXJlYV9oCisj
aW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VBcmVh
LmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlTmFtZXNw
YWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3Rv
cmFnZU5hbWVzcGFjZS5oCShyZXZpc2lvbiAxMTY3OTMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJTdG9yYWdlTmFtZXNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDM1
ICsyOCw0IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2ViU3RvcmFnZU5hbWVz
cGFjZV9oCi0jZGVmaW5lIFdlYlN0b3JhZ2VOYW1lc3BhY2VfaAotCi0jaW5jbHVkZSAicGxhdGZv
cm0vV2ViQ29tbW9uLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJTdG9yYWdl
QXJlYTsKLWNsYXNzIFdlYlN0cmluZzsKLQotLy8gV2ViU3RvcmFnZU5hbWVzcGFjZSByZXByZXNl
bnRzIGEgY29sbGVjdGlvbiBvZiBTdG9yYWdlQXJlYXMuIFR5cGljYWxseSwgeW91J2xsIGhhdmUK
LS8vIG11bHRpcGxlIFN0b3JhZ2VOYW1lc3BhY2VzIHRvIHJlcHJlc2VudCB0aGUgU2Vzc2lvblN0
b3JhZ2UgZm9yIGVhY2ggdGFiIGFuZCBhIHNpbmdsZQotLy8gU3RvcmFnZU5hbWVzcGFjZSB0byBy
ZXByZXNlbnQgTG9jYWxTdG9yYWdlIGZvciB0aGUgZW50aXJlIGJyb3dzZXIuCi1jbGFzcyBXZWJT
dG9yYWdlTmFtZXNwYWNlIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJTdG9yYWdlTmFtZXNw
YWNlKCkgeyB9Ci0KLSAgICAvLyBDcmVhdGUgYSBuZXcgV2ViU3RvcmFnZUFyZWEgb2JqZWN0LiBU
d28gc3Vic2VxdWVudCBjYWxscyB3aXRoIHRoZSBzYW1lIG9yaWdpbgotICAgIC8vIHdpbGwgcmV0
dXJuIHR3byBkaWZmZXJlbnQgV2ViU3RvcmFnZUFyZWEgb2JqZWN0cyB0aGF0IHNoYXJlIHRoZSBz
YW1lIGJhY2tpbmcgc3RvcmUuCi0gICAgLy8gWW91IHNob3VsZCBjYWxsIGRlbGV0ZSBvbiB0aGUg
cmV0dXJuZWQgb2JqZWN0IHdoZW4geW91J3JlIGZpbmlzaGVkLgotICAgIHZpcnR1YWwgV2ViU3Rv
cmFnZUFyZWEqIGNyZWF0ZVN0b3JhZ2VBcmVhKGNvbnN0IFdlYlN0cmluZyYgb3JpZ2luKSA9IDA7
Ci0KLSAgICAvLyBDb3B5IGEgU3RvcmFnZU5hbWVzcGFjZS4gVGhpcyBvbmx5IG1ha2VzIHNlbnNl
IGluIHRoZSBjYXNlIG9mIFNlc3Npb25TdG9yYWdlLgotICAgIHZpcnR1YWwgV2ViU3RvcmFnZU5h
bWVzcGFjZSogY29weSgpID0gMDsKLQotICAgIC8vIFJldHVybnMgdHJ1ZSBvZiB0aGUgdHdvIGlu
c3RhbmNlcyByZXByZXNlbnQgdGhlIHNhbWUgc3RvcmFnZSBuYW1lc3BhY2UuCi0gICAgdmlydHVh
bCBib29sIGlzU2FtZU5hbWVzcGFjZShjb25zdCBXZWJTdG9yYWdlTmFtZXNwYWNlJikgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYg
Ly8gV2ViU3RvcmFnZU5hbWVzcGFjZV9oCisjaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYlN0b3JhZ2VOYW1lc3BhY2UuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRm
b3JtU3VwcG9ydC5oCShyZXZpc2lvbiAxMTY3OTMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAkod29ya2luZyBjb3B5KQpA
QCAtNTksNyArNTksNiBAQCBjbGFzcyBXZWJNZXNzYWdlUG9ydENoYW5uZWw7IC8vIEZJWE1FOiBE
CiBjbGFzcyBXZWJQbHVnaW5MaXN0QnVpbGRlcjsgLy8gRklYTUU6IERvZXMgdGhpcyBiZWxvbmcg
aW4gcGxhdGZvcm0/CiBjbGFzcyBXZWJTYW5kYm94U3VwcG9ydDsKIGNsYXNzIFdlYlNoYXJlZFdv
cmtlclJlcG9zaXRvcnk7IC8vIEZJWE1FOiBEb2VzIHRoaXMgYmVsb25nIGluIHBsYXRmb3JtPwot
Y2xhc3MgV2ViU3RvcmFnZU5hbWVzcGFjZTsgLy8gRklYTUU6IERvZXMgdGhpcyBiZWxvbmcgaW4g
cGxhdGZvcm0/CiBjbGFzcyBXZWJUaGVtZUVuZ2luZTsKIGNsYXNzIFdlYldvcmtlclJ1bkxvb3A7
CiAKQEAgLTgzLDEyICs4Miw2IEBAIHB1YmxpYzoKICAgICAvLyBNdXN0IHJldHVybiBub24tbnVs
bC4KICAgICB2aXJ0dWFsIFdlYkJsb2JSZWdpc3RyeSogYmxvYlJlZ2lzdHJ5KCkgeyByZXR1cm4g
MDsgfQogCi0gICAgLy8gRE9NIFN0b3JhZ2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgIC8vIFJldHVybiBhIExvY2FsU3RvcmFnZSBuYW1l
c3BhY2UgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgZm9sbG93aW5nIHBhdGguCi0gICAgdmlydHVh
bCBXZWJTdG9yYWdlTmFtZXNwYWNlKiBjcmVhdGVMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoY29uc3Qg
V2ViU3RyaW5nJiBwYXRoLCB1bnNpZ25lZCBxdW90YSkgeyByZXR1cm4gMDsgfQotCi0KICAgICAv
LyBIVE1MNSBEYXRhYmFzZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAogI2lmZGVmIFdJTjMyCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcAkocmV2aXNpb24gMTE2NzkzKQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQxLDExICs0MSwxMiBAQAogCiAjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCiAj
aW5jbHVkZSAiV2ViUGVybWlzc2lvbkNsaWVudC5oIgotI2luY2x1ZGUgIldlYlN0b3JhZ2VBcmVh
LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0v
V2ViVVJMLmgiCiAjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKIAorI2luY2x1ZGUgPHB1YmxpYy9X
ZWJTdG9yYWdlQXJlYS5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEZJWE1FOiBzdG9y
YWdlQXJlYSBhcmd1bWVudCBzaG91bGQgYmUgYSBQYXNzT3duUHRyLgpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZU5hbWVzcGFjZVByb3h5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlTmFtZXNwYWNlUHJveHkuY3BwCShy
ZXZpc2lvbiAxMTY3OTMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlTmFt
ZXNwYWNlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxNyArMzIsMTggQEAKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhUHJveHkuaCIKICNp
bmNsdWRlICJXZWJLaXQuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBv
cnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAicGxhdGZv
cm0vV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgogI2luY2x1ZGUgIldl
YlZpZXdJbXBsLmgiCiAKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IFN0b3JhZ2VOYW1lc3Bh
Y2U6OmxvY2FsU3RvcmFnZU5hbWVzcGFjZShjb25zdCBTdHJpbmcmIHBhdGgsIHVuc2lnbmVkIHF1
b3RhKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RvcmFnZU5hbWVzcGFjZVByb3h5KFdl
YktpdDo6d2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFj
ZShwYXRoLCBxdW90YSksIExvY2FsU3RvcmFnZSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U3RvcmFnZU5hbWVzcGFjZVByb3h5KFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y3JlYXRl
TG9jYWxTdG9yYWdlTmFtZXNwYWNlKHBhdGgsIHF1b3RhKSwgTG9jYWxTdG9yYWdlKSk7CiB9CiAK
IFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFjZTo6c2Vzc2lvblN0
b3JhZ2VOYW1lc3BhY2UoUGFnZSogcGFnZSwgdW5zaWduZWQgcXVvdGEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141729</attachid>
            <date>2012-05-14 07:55:17 -0700</date>
            <delta_ts>2012-05-14 07:56:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85766-20120514105515.patch</filename>
            <type>text/plain</type>
            <size>92386</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2ODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBjYThhYWFiMTYyYzZh
NDU4MDRhYjgzMWY0MmU4ZjgzYTE1NDI3ZmZkLi5hMjNkMWI4NzZjZDdkMTEwZDNhNDE3NzAyYTYz
NzU3ZmM0NGZjODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMi0wNS0wMiAg
R2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgUHJlcmVu
ZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZhY2UgZm9yIFByZXJl
bmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBbQ2hy
b21pdW1dIEZpeCBXZWJQcmVyZW5kZXI6OnJlZmVycmVyKCkgdGh1bmsuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTI5MAorICAgICAgICBUaGUgcHJl
cmVuZGVyIGNhc2UgaXNuJ3QgcXVpdGUgYSByZXNvdXJjZSBsb2FkLCBhbmQgdXNpbmcgcmVzb3Vy
Y2UgbG9hZGluZyB0bworICAgICAgICByZXRyaWV2ZSB0aGVtIGhhcyBjb25zdHJhaW5lZCB0aGUg
QVBJLCBhbmQgdW5uZWNlc3NhcmlseSBjb21wbGljYXRlZCB0aGUgbG9hZGVyLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBUaGUgbmV3IFByZXJlbmRlcmVy
IGFuZCBQcmVyZW5kZXJIYW5kbGUgbGV0IDxsaW5rIHJlbD1wcmVyZW5kZXIuLi4+IGVsZW1lbnRz
IHNpZ25hbAorICAgICAgICByZW1vdmFsIGFuZCB1bmxvYWQgdG8gdGhlaXIgcGxhdGZvcm0uCisK
KyAgICAgICAgKiBQbGF0Zm9ybS5neXBpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJQ
cmVyZW5kZXIuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpyZWZlcnJlcik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYlByZXJlbmRlcik6CisgICAgICAgICogY2hy
b21pdW0vcHVibGljL1dlYlByZXJlbmRlcmluZ1N1cHBvcnQuaDoKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJQcmVyZW5kZXJpbmdTdXBwb3J0KToKKyAgICAgICAgKiBjaHJvbWl1bS9w
dWJsaWMvV2ViVVJMUmVxdWVzdC5oOgorICAgICAgICAqIGNocm9taXVtL3NyYy9XZWJQcmVyZW5k
ZXJpbmdTdXBwb3J0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcmVyZW5kZXJpbmdTdXBwb3J0Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJlcmVuZGVyaW5nU3VwcG9ydDo6c2h1dGRvd24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVyZW5kZXJpbmdTdXBwb3J0OjpjdXJyZW50KToKKwogMjAxMi0wNS0xMSAgTWFyayBQaWxn
cmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBNb3ZlIGNy
ZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZSB0byBQbGF0Zm9ybS5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc3
ZjFhNTI1Y2Q0ODBjZTdmNjliZWE4ODFmYTRiODZiNWEyYjNjNS4uZjJjNGVhYTFmN2NjMzUwNzlk
ZjQ0YjJhOGE4YTIyNGYxZGIxMTA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwxMyArMSwxMjcgQEAKLTIw
MTItMDUtMTEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorMjAx
Mi0wNS0wMiAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KIAotICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMTE2ODAyLgotICAgICAgICBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8xMTY4MDIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg2MjYwCisgICAgICAgIEFkZCBQcmVyZW5kZXJlciwgUHJlcmVuZGVy
SGFuZGxlIGFuZCBhIGNocm9taXVtIGludGVyZmFjZSBmb3IgUHJlcmVuZGVyaW5nLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUwMDUKIAotICAgICAg
ICBUaGlzIHBhdGNoIGNhdXNlcyBjb21waWxpbmcgZXJyb3IgdG8gY2hyb21pdW0gYnVpbGRzCi0g
ICAgICAgIChSZXF1ZXN0ZWQgYnkgamlhbmxpXyBvbiAjd2Via2l0KS4KKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWRhbSBCYXJ0aC4KIAorICAgICAgICBUaGUgcHJlcmVuZGVyIGNhc2UgaXNuJ3QgcXVp
dGUgYSByZXNvdXJjZSBsb2FkLCBhbmQgdXNpbmcgcmVzb3VyY2UgbG9hZGluZyB0bworICAgICAg
ICByZXRyaWV2ZSB0aGVtIGhhcyBjb25zdHJhaW5lZCB0aGUgQVBJLCBhbmQgdW5uZWNlc3Nhcmls
eSBjb21wbGljYXRlZCB0aGUgbG9hZGVyLgorCisgICAgICAgIFRoZSBuZXcgUHJlcmVuZGVyZXIg
YW5kIFByZXJlbmRlckhhbmRsZSBsZXQgPGxpbmsgcmVsPXByZXJlbmRlci4uLj4gZWxlbWVudHMg
c2lnbmFsCisgICAgICAgIHJlbW92YWwgYW5kIHVubG9hZCB0byB0aGVpciBwbGF0Zm9ybS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIGFzIHRoaXMgaW50ZXJmYWNlIHJlcXVpcmVzIGEgZnVsbCBw
bGF0Zm9ybSB0byB3b3JrLCBhbmQgZG9lc24ndCBhZmZlY3QgbGF5b3V0LiAgVGVzdAorICAgICAg
ICBpdCB3aXRoIHlvdXIgcGxhdGZvcm0gd2hlbiBpbXBsZW1lbnRlZCBmb3IgaXQuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CiAgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnByZXJlbmRlcmVyKToK
KyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTGlua0VsZW1lbnQ6OnJlbW92ZWRGcm9tKToKKyAgICAgICAgKiBodG1sL0xpbmtSZWxBdHRy
aWJ1dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlua1JlbEF0dHJpYnV0ZTo6TGlua1JlbEF0
dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9MaW5rUmVsQXR0cmlidXRlLmg6CisgICAgICAgIChM
aW5rUmVsQXR0cmlidXRlKToKKyAgICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpsb2FkTGluayk6CisgICAgICAgIChXZWJDb3JlOjpM
aW5rTG9hZGVyOjpyZWxlYXNlZCk6CisgICAgICAgICogbG9hZGVyL0xpbmtMb2FkZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTGlua0xvYWRlcik6CisgICAgICAgICogbG9hZGVy
L1ByZXJlbmRlcmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlByZXJlbmRlcmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVy
ZXI6OlByZXJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyOjp+UHJlcmVu
ZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXI6OnJlbmRlcik6CisgICAgICAg
IChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5k
ZXJlcjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6cmVzdW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyOjpkb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpQcmVyZW5kZXJlcjo6Y2xpZW50KToKKyAgICAgICAgKiBsb2FkZXIvUHJlcmVuZGVyZXIu
aDogQ29waWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5k
ZXIuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUHJlcmVuZGVyZXIpOgorICAgICAg
ICAqIGxvYWRlci9QcmVyZW5kZXJlckNsaWVudC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpQcmVyZW5kZXJlckNsaWVudDo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6UHJlcmVuZGVyZXJDbGllbnQ6OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6cHJv
dmlkZVByZXJlbmRlcmVyQ2xpZW50VG8pOgorICAgICAgICAqIGxvYWRlci9QcmVyZW5kZXJlckNs
aWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUu
aC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUHJlcmVuZGVyZXJDbGllbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXJDbGllbnQ6On5QcmVyZW5kZXJlckNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlckNsaWVudDo6UHJlcmVuZGVyZXJDbGllbnQpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpkZWZhdWx0UHJpb3JpdHlGb3JSZXNvdXJjZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Y2FjaGVkUmVzb3VyY2VUeXBlVG9UYXJnZXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjppZ25vcmVGb3JSZXF1ZXN0Q291
bnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL1ByZXJlbmRlckhhbmRsZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYlByZXJlbmRlci5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChQcmVyZW5kZXJIYW5kbGUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVy
ZW5kZXI6OlByZXJlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6On5QcmVyZW5k
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjpzZXRTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQcmVyZW5kZXI6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OmNh
bmNlbCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OmFiYW5kb24pOgorICAgICAgICAo
V2ViQ29yZTo6UHJlcmVuZGVyOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRl
cjo6cmVzdW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXIuaDogQ29w
aWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUHJlcmVuZGVyKToKKyAgICAgICAgKEV4dHJh
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OkV4dHJhRGF0YTo6fkV4dHJhRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OnVybCk6CisgICAgICAgIChXZWJDb3Jl
OjpQcmVyZW5kZXI6OnJlZmVycmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6cmVm
ZXJyZXJQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjpzZXRFeHRyYURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjpleHRyYURhdGEpOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlckhhbmRsZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyLmguCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6UHJlcmVuZGVySGFuZGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OlByZXJlbmRlckhhbmRsZTo6flByZXJlbmRlckhhbmRsZSk6CisgICAgICAgIChXZWJD
b3JlOjpQcmVyZW5kZXJIYW5kbGU6OnByZXJlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmVy
ZW5kZXJIYW5kbGU6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OmNh
bmNlbCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OmFiYW5kb24pOgorICAg
ICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlByZXJlbmRlckhhbmRsZTo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRl
ckhhbmRsZTo6dXJsKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6cmVmZXJy
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjpyZWZlcnJlclBvbGljeSk6
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJQcmVyZW5kZXIuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5o
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVyZW5kZXI6OldlYlByZXJlbmRlcik6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVyZW5kZXI6On5XZWJQcmVyZW5kZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVyZW5kZXI6OnVybCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByZXJlbmRlcjo6cmVmZXJyZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVyZW5kZXI6
OnJlZmVycmVyUG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpzZXRFeHRy
YURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVyZW5kZXI6OmV4dHJhRGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFja0Jl
cnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsYXRmb3JtVGFyZ2V0VHlwZUZvclJlcXVlc3Qp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0Lmg6
CiAKIDIwMTItMDUtMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKQEAgLTEx
MDEsNiArMTIxNSwxNyBAQAogCiAyMDEyLTA1LTExICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAorICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTE2
ODAyLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMTY4MDIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MjYwCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBjYXVzZXMgY29tcGlsaW5nIGVycm9yIHRvIGNocm9taXVtIGJ1aWxk
cworICAgICAgICAoUmVxdWVzdGVkIGJ5IGppYW5saV8gb24gI3dlYmtpdCkuCisKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisKKzIwMTItMDUtMTEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmll
dy5ib3RAZ21haWwuY29tPgorCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTY3
NTIuCiAgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzExNjc1MgogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYyMDEKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMWFmZTA2MzY1NzI0NDRkOGE4MDQ4NjQ3NThiZGVjYzQ4
MjdjYzU0NS4uZGE0NGNiN2U3OGUxZDRiNWFmY2FlNzBkNDZhY2M5ZTdjNjE4YjliMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMTUgKzEsMzQgQEAKLTIwMTItMDUtMTEgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorMjAxMi0wNS0xNCAgR2F2aW4g
UGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KIAotICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTE2ODAyLgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNl
dC8xMTY4MDIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg2MjYwCisgICAgICAgIEFkZCBQcmVyZW5kZXJlciwgUHJlcmVuZGVySGFuZGxlIGFuZCBhIGNo
cm9taXVtIGludGVyZmFjZSBmb3IgUHJlcmVuZGVyaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUwMDUKIAotICAgICAgICBUaGlzIHBhdGNoIGNh
dXNlcyBjb21waWxpbmcgZXJyb3IgdG8gY2hyb21pdW0gYnVpbGRzCi0gICAgICAgIChSZXF1ZXN0
ZWQgYnkgamlhbmxpXyBvbiAjd2Via2l0KS4KKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KIAotICAgICAgICAqIGZlYXR1cmVzLmd5cGk6Ci0gICAgICAgICogc3JjL1dlYklucHV0RXZl
bnRDb252ZXJzaW9uLmNwcDoKLSAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1HZXN0dXJlRXZlbnRC
dWlsZGVyOjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIpOgorICAgICAgICBUaGUgcHJlcmVu
ZGVyIGNhc2UgaXNuJ3QgcXVpdGUgYSByZXNvdXJjZSBsb2FkLCBhbmQgdXNpbmcgcmVzb3VyY2Ug
bG9hZGluZyB0bworICAgICAgICByZXRyaWV2ZSB0aGVtIGhhcyBjb25zdHJhaW5lZCB0aGUgQVBJ
LCBhbmQgdW5uZWNlc3NhcmlseSBjb21wbGljYXRlZCB0aGUgbG9hZGVyLgorCisgICAgICAgIFRo
ZSBuZXcgUHJlcmVuZGVyZXIgYW5kIFByZXJlbmRlckhhbmRsZSBsZXQgPGxpbmsgcmVsPXByZXJl
bmRlci4uLj4gZWxlbWVudHMgc2lnbmFsCisgICAgICAgIHJlbW92YWwgYW5kIHVubG9hZCB0byB0
aGVpciBwbGF0Zm9ybS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGlj
L1dlYlZpZXcuaDoKKyAgICAgICAgKiBzcmMvUHJlcmVuZGVyZXJDbGllbnRJbXBsLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmguCisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpQcmVyZW5kZXJlckNsaWVudEltcGw6OlByZXJl
bmRlcmVyQ2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OlByZXJlbmRlcmVyQ2xpZW50SW1w
bDo6d2lsbEFkZFByZXJlbmRlcik6CisgICAgICAgICogc3JjL1ByZXJlbmRlcmVyQ2xpZW50SW1w
bC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFByZXJlbmRl
cmVyQ2xpZW50SW1wbCk6CisgICAgICAgICogc3JjL1dlYktpdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OnNodXRkb3duKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UHJlcmVuZGVyZXJDbGllbnQpOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJWaWV3SW1wbCk6CiAKIDIwMTItMDUtMTEgIE1hcmsgUGlsZ3JpbSAgPHBpbGdy
aW1AY2hyb21pdW0ub3JnPgogCkBAIC0xMjgsNiArMTQ3LDE5IEBACiAKIDIwMTItMDUtMTEgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCisgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTY4MDIuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5v
cmcvY2hhbmdlc2V0LzExNjgwMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODYyNjAKKworICAgICAgICBUaGlzIHBhdGNoIGNhdXNlcyBjb21waWxpbmcg
ZXJyb3IgdG8gY2hyb21pdW0gYnVpbGRzCisgICAgICAgIChSZXF1ZXN0ZWQgYnkgamlhbmxpXyBv
biAjd2Via2l0KS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisgICAgICAgICogc3JjL1dl
YklucHV0RXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1HZXN0
dXJlRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIpOgorCisyMDEyLTA1
LTExICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKwogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTE2NzI3LgogICAgICAgICBodHRwOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC8xMTY3MjcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg2MTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vUGxh
dGZvcm0uZ3lwaSBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCmluZGV4IGU0YTZlMWIz
MDNkMjZlOTkwMTU0M2FmMTAyNmQ4ZTI0ODJlODdjNTIuLjliZDhiNDM1YTVhZmI2N2MzMDIxNmQx
M2QzYzU5YTU0OTBmYTdkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5n
eXBpCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCkBAIC05NSw2ICs5NSw3IEBA
CiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlRocmVhZC5oJywKICAgICAgICAgICAg
ICdjaHJvbWl1bS9wdWJsaWMvV2ViVGhyZWFkU2FmZURhdGEuaCcsCiAgICAgICAgICAgICAnY2hy
b21pdW0vcHVibGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4LmgnLAorICAgICAgICAgICAgJ2No
cm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVi
bGljL1dlYlVSTC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVVJMRXJyb3Iu
aCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRUaW1pbmcuaCcsCkBA
IC0xMDgsNiArMTA5LDcgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9zcmMvUGxhdGZvcm0uY3Bw
JywKICAgICAgICAgICAgICdjaHJvbWl1bS9zcmMvV2ViQ1N0cmluZy5jcHAnLAogICAgICAgICAg
ICAgJ2Nocm9taXVtL3NyYy9XZWJGbG9hdFF1YWQuY3BwJywKKyAgICAgICAgICAgICdjaHJvbWl1
bS9zcmMvV2ViUHJlcmVuZGVyaW5nU3VwcG9ydC5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVt
L3NyYy9XZWJTdHJpbmcuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9zcmMvV2ViVmlkZW9G
cmFtZS5jcHAnLAogICAgICAgICBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYlByZXJlbmRlci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJQcmVyZW5kZXIuaAppbmRleCA0MTc0YmY0NzM4MzMwZTBmZThkZWE3ZjIwM2JmZGE3YjJk
ZDQxMWM2Li41ZWQ4MDQ5MDBmYzZmYTBiNmNjODE4NTQ2NDdkY2I2OWEyMzI1YWM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5oCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyLmgKQEAgLTQxLDI5
ICs0MSwzNSBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjZW5kaWYKIAorbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgUHJlcmVuZGVyOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotLy8gVGhpcyB0aHVuayBpbXBsZW1lbnRhdGlvbiBvZiBXZWJQcmVyZW5kZXIgZXhpc3RzIG9u
bHkgZm9yIHN0YWdpbmc7IHRoaXMgd2lsbCBhbGxvdwotLy8gdGhlIENocm9taXVtIHNpZGUgb2Yg
dGhlIFByZXJlbmRlcmluZyBBUEkgdG8gbGFuZCwgYW5kIHRoZW4gbGF0ZXIgd2UgY2FuIGF0b21p
Y2x5Ci0vLyBzd2l0Y2ggV2ViS2l0IHRvIHByZXJlbmRlciwgYW5kIGZpbmFsbHkgcmVtb3ZlIHRo
ZSBvbGQgcGhhbnRvbS1yZXF1ZXN0IHByZXJlbmRlcgotLy8gaW1wbGVtZW50YXRpb24gZnJvbSBD
aHJvbWl1bS4KLS8vIEZJWE1FOiBQdXQgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBoZXJlIGFm
dGVyIHRoZSBDaHJvbWl1bSBzaWRlIG9mIHRoaXMgQVBJCi0vLyBsYW5kcy4KIGNsYXNzIFdlYlBy
ZXJlbmRlciB7CiBwdWJsaWM6CiAgICAgY2xhc3MgRXh0cmFEYXRhIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIHZpcnR1YWwgfkV4dHJhRGF0YSgpIHsgfQogICAgIH07Ci0gICAgV2ViVVJMIHVybCgp
IGNvbnN0IHsgcmV0dXJuIFdlYlVSTCgpOyB9Ci0gICAgV2ViU3RyaW5nIHJlZmVycmVyKCkgY29u
c3QgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KLSAgICBXZWJSZWZlcnJlclBvbGljeSByZWZlcnJl
clBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIFdlYlJlZmVycmVyUG9saWN5KCk7IH0KLSAgICB2b2lk
IHNldEV4dHJhRGF0YShFeHRyYURhdGEqKSB7IH0KLSAgICBjb25zdCBFeHRyYURhdGEqIGV4dHJh
RGF0YSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgor
ICAgIGV4cGxpY2l0IFdlYlByZXJlbmRlcihQYXNzUmVmUHRyPFdlYkNvcmU6OlByZXJlbmRlcj4p
OworICAgIH5XZWJQcmVyZW5kZXIoKTsKKyNlbmRpZgorCisgICAgV0VCS0lUX0VYUE9SVCBXZWJV
UkwgdXJsKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgcmVmZXJyZXIoKSBj
b25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5
KCkgY29uc3Q7CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0RXh0cmFEYXRhKEV4dHJhRGF0
YSopOworICAgIFdFQktJVF9FWFBPUlQgY29uc3QgRXh0cmFEYXRhKiBleHRyYURhdGEoKSBjb25z
dDsKIAogcHJpdmF0ZToKLSAgICBXZWJQcmVyZW5kZXIoKSB7IH0KLSAgICB+V2ViUHJlcmVuZGVy
KCkgeyB9CisgICAgV2ViUHJlcmVuZGVyKCk7CisKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6
OlByZXJlbmRlcj4gbV9wcml2YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlcmluZ1N1
cHBvcnQuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5n
U3VwcG9ydC5oCmluZGV4IGRjMzE4YTMyYzk2NDllNjkxZTk3NDVkODEwMzFiMDUzMTZjYmFjZjYu
LmEyNjcyOTExZmE1MGE4MzM1OGQyYmY0YjA5OTZmZDU0OTM4MDZiYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nU3VwcG9ydC5oCisr
KyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nU3VwcG9y
dC5oCkBAIC0zNywyNSArMzcsMjkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBy
ZXJlbmRlcjsKIAotLy8gVGhpcyB0aHVuayBpbXBsZW1lbnRhdGlvbiBvZiBXZWJQcmVyZW5kZXJp
bmdTdXBwb3J0IGV4aXN0cyBvbmx5IGZvciBzdGFnaW5nOyB0aGlzIHdpbGwKLS8vIGFsbG93IHRo
ZSBDaHJvbWl1bSBzaWRlIG9mIHRoZSBQcmVyZW5kZXJpbmcgQVBJIHRvIGxhbmQsIGFuZCB0aGVu
IGxhdGVyIHdlIGNhbiBhdG9taWNseQotLy8gc3dpdGNoIFdlYktpdCB0byBwcmVyZW5kZXIsIGFu
ZCBmaW5hbGx5IHJlbW92ZSB0aGUgb2xkIHBoYW50b20tcmVxdWVzdCBwcmVyZW5kZXIKLS8vIGlt
cGxlbWVudGF0aW9uIGZyb20gQ2hyb21pdW0uCi0vLyBGSVhNRTogUHV0IHRoZSBhY3R1YWwgaW1w
bGVtZW50YXRpb24gaGVyZSBhZnRlciB0aGUgQ2hyb21pdW0gc2lkZSBvZiB0aGlzIEFQSQotLy8g
bGFuZHMuCiBjbGFzcyBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgdm9pZCBpbml0aWFsaXplKFdlYlByZXJlbmRlcmluZ1N1cHBvcnQqKSB7IH0KLSAgICBzdGF0
aWMgdm9pZCBzaHV0ZG93bigpIHsgfQotICAgIHN0YXRpYyBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0
KiBjdXJyZW50KCkgeyByZXR1cm4gMDsgfQorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZShXZWJQcmVyZW5kZXJpbmdTdXBwb3J0Kik7CisgICAgV0VCS0lUX0VYUE9SVCBz
dGF0aWMgdm9pZCBzaHV0ZG93bigpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYlByZXJl
bmRlcmluZ1N1cHBvcnQqIGN1cnJlbnQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3Qg
V2ViUHJlcmVuZGVyJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbChjb25zdCBXZWJQcmVy
ZW5kZXImKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYWJhbmRvbihjb25zdCBXZWJQcmVyZW5kZXIm
KSB7IH0KKyAgICAvLyBBIHByZXJlbmRlciBsaW5rIGVsZW1lbnQgaXMgYWRkZWQgd2hlbiBpdCBp
cyBpbnNlcnRlZCBpbnRvIGEgZG9jdW1lbnQuCisgICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBX
ZWJQcmVyZW5kZXImKSA9IDA7CisKKyAgICAvLyBBIHByZXJlbmRlciBpcyBjYW5jZWxlZCB3aGVu
IGl0IGlzIHJlbW92ZWQgZnJvbSBhIGRvY3VtZW50LgorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwo
Y29uc3QgV2ViUHJlcmVuZGVyJikgPSAwOworCisgICAgLy8gQSBwcmVyZW5kZXIgaXMgYWJhbmRv
bmVkIHdoZW4gaXQncyBuYXZpZ2F0ZWQgYXdheSBmcm9tIG9yIHN1c3BlbmRlZCBpbiB0aGUgcGFn
ZSBjYWNoZS4gVGhpcworICAgIC8vIGlzIGEgd2Vha2VyIHNpZ25hbCB0aGFuIGNhbmNlbCgpLCBz
aW5jZSB0aGUgbGF1bmNoZXIgaGFzbid0IGluZGljYXRlZCB0aGF0IHRoZSBwcmVyZW5kZXIgaXNu
J3QKKyAgICAvLyB3YW50ZWQsIGFuZCB3ZSBtYXkgZW5kIHVwIHVzaW5nIGl0IGFmdGVyLCBmb3Ig
aW5zdGFuY2UsIGEgc2hvcnQgcmVkaXJlY3QgY2hhaW4uCisgICAgdmlydHVhbCB2b2lkIGFiYW5k
b24oY29uc3QgV2ViUHJlcmVuZGVyJikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJlcmVu
ZGVyaW5nU3VwcG9ydCgpIHsgfQogICAgIHZpcnR1YWwgfldlYlByZXJlbmRlcmluZ1N1cHBvcnQo
KSB7IH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgV2ViUHJlcmVuZGVyaW5nU3VwcG9ydCogc19w
bGF0Zm9ybTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmggYi9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaAppbmRleCA4YzE4OTI1YmMwYmQwNTIy
NGRlYjk0ZDdmMTEwZTliODAyNmJlMGZlLi41NTJiZmNiMGE2Y2I2OTVmNDk5YjU2ZWU3ZjJiMjc1
NjU2Y2UyZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YlVSTFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlVS
TFJlcXVlc3QuaApAQCAtNjksMTEgKzY5LDEzIEBAIHB1YmxpYzoKICAgICAgICAgVGFyZ2V0SXNX
b3JrZXIgPSA5LAogICAgICAgICBUYXJnZXRJc1NoYXJlZFdvcmtlciA9IDEwLAogICAgICAgICBU
YXJnZXRJc1ByZWZldGNoID0gMTEsCi0gICAgICAgIFRhcmdldElzUHJlcmVuZGVyID0gMTIsCi0g
ICAgICAgIFRhcmdldElzRmF2aWNvbiA9IDEzLAotICAgICAgICBUYXJnZXRJc1hIUiA9IDE0LAot
ICAgICAgICBUYXJnZXRJc1RleHRUcmFjayA9IDE1LAotICAgICAgICBUYXJnZXRJc1Vuc3BlY2lm
aWVkID0gMTYsCisgICAgICAgIFRhcmdldElzRmF2aWNvbiA9IDEyLAorICAgICAgICBUYXJnZXRJ
c1hIUiA9IDEzLAorICAgICAgICBUYXJnZXRJc1RleHRUcmFjayA9IDE0LAorICAgICAgICBUYXJn
ZXRJc1Vuc3BlY2lmaWVkID0gMTUsCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIG9sZCBlbnVtIHZh
bHVlIGlzIG9ubHkgYmVpbmcgbGVmdCBpbiB3aGlsZSBwcmVyZW5kZXJpbmcgaXMgc3RhZ2luZyBp
bnRvIGNocm9taXVtLiBBZnRlciBodHRwOi8vY29kZXJldmlldy5jaHJvbWl1bS5vcmcvMTAyNDQw
MDcvCisgICAgICAgIC8vIGxhbmRzLCB0aGlzIHNob3VsZCBiZSByZW1vdmVkLgorICAgICAgICBU
YXJnZXRJc1ByZXJlbmRlciA9IFRhcmdldElzVW5zcGVjaWZpZWQsCiAgICAgfTsKIAogICAgIGNs
YXNzIEV4dHJhRGF0YSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vc3Jj
L1dlYlByZXJlbmRlcmluZ1N1cHBvcnQuY3BwIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3Ny
Yy9XZWJQcmVyZW5kZXJpbmdTdXBwb3J0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2IzZTAzNTgwMDAwNTFj
ZDBlMmYzODNhZTEwNzAzOGZmMmI5YTM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3NyYy9XZWJQcmVyZW5kZXJpbmdTdXBwb3J0LmNwcApAQCAtMCwwICsxLDUy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXJpbmdTdXBwb3J0Lmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitXZWJQcmVyZW5kZXJpbmdTdXBwb3J0KiBXZWJQcmVyZW5kZXJpbmdTdXBw
b3J0OjpzX3BsYXRmb3JtID0gMDsKKwordm9pZCBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0Ojppbml0
aWFsaXplKFdlYlByZXJlbmRlcmluZ1N1cHBvcnQqIHBsYXRmb3JtKQoreworICAgIHNfcGxhdGZv
cm0gPSBwbGF0Zm9ybTsKK30KKwordm9pZCBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0OjpzaHV0ZG93
bigpCit7CisgICAgc19wbGF0Zm9ybSA9IDA7Cit9CisKK1dlYlByZXJlbmRlcmluZ1N1cHBvcnQq
IFdlYlByZXJlbmRlcmluZ1N1cHBvcnQ6OmN1cnJlbnQoKQoreworICAgIHJldHVybiBzX3BsYXRm
b3JtOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5OWI0Mzk4NjZk
ZDQ0NzQwODM3ZDE5YzFjMWI4YTExZTk3ODAwZDBmLi45YTVkOTI1NmQyNGQ3YTNkZjg5MDNjMTQw
MzhmMDNjNTNjY2U0MTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4NTAs
NiArMjg1MCwxMCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qb2xpY3lDYWxsYmFjay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tl
ci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmggXAorCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QcmVyZW5kZXJlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGll
bnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25TY2hlZHVsZXIuY3BwIFwKQEAgLTM1NDcsNiArMzU1MSw3IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QcmVy
ZW5kZXJIYW5kbGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVy
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlUHJpb3JpdHkuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBlMDVl
Y2ZiMzlmZTZjZjhlZjY1MDgzNTRiZTMzOTczZjU4MmZmYmY5Li5kNmRhMWQyMjNhMTM2OWVhMzQ1
ZjQ3YzBmYmMzY2U5MzBkNzYxZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTk4NCw2ICs5ODQsOCBAQCBT
T1VSQ0VTICs9IFwKICAgICBsb2FkZXIvUG9saWN5Q2FsbGJhY2suY3BwIFwKICAgICBsb2FkZXIv
UG9saWN5Q2hlY2tlci5jcHAgXAogICAgIGxvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwIFwKKyAg
ICBsb2FkZXIvUHJlcmVuZGVyZXIuY3BwIFwKKyAgICBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQu
Y3BwIFwKICAgICBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgXAogICAgIGxvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAg
XApAQCAtMjEwNiw2ICsyMTA4LDggQEAgSEVBREVSUyArPSBcCiAgICAgbG9hZGVyL05hdmlnYXRp
b25BY3Rpb24uaCBcCiAgICAgbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmggXAog
ICAgIGxvYWRlci9QbGFjZWhvbGRlckRvY3VtZW50LmggXAorICAgIGxvYWRlci9QcmVyZW5kZXJl
ci5oIFwKKyAgICBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaCBcCiAgICAgbG9hZGVyL1Byb2dy
ZXNzVHJhY2tlci5oIFwKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBcCiAgICAgbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmggXApAQCAtMjM5MSw2ICsyMzk1LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgcGxhdGZvcm0vVGltZXIuaCBcCiAgICAgcGxhdGZvcm0vV2lkZ2V0LmggXAogICAgIHBs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oIFwKKyAgICBwbGF0Zm9ybS9QcmVyZW5kZXJIYW5k
bGUuaCBcCiAgICAgcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIFwKICAgICBwbHVnaW5zL0RP
TU1pbWVUeXBlQXJyYXkuaCBcCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZS5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCA5YzQ2NzU5ZjVkZDExNDc2ZDZmM2VhZWFjMTYyOGE4MjJhNDFiOWMxLi5lMjI1
Nzc4YTE1YmY0Yzc2ODE5OWU3MTI1NTM1M2NmZjkyNDgxZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC0yODY5LDYgKzI4NjksMTAgQEAKICAgICAgICAgICAgICdsb2FkZXIvUGxhY2Vob2xkZXJEb2N1
bWVudC5oJywKICAgICAgICAgICAgICdsb2FkZXIvUG9saWN5Q2FsbGJhY2suY3BwJywKICAgICAg
ICAgICAgICdsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9Q
cmVyZW5kZXJlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9QcmVyZW5kZXJlci5oJywKKyAg
ICAgICAgICAgICdsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwJywKKyAgICAgICAgICAgICds
b2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL1Byb2dyZXNz
VHJhY2tlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5j
cHAnLAogICAgICAgICAgICAgJ2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwJywKQEAg
LTMxNTUsNiArMzE1OSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmgnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2ludC5oJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9QcmVyZW5kZXJIYW5kbGUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUHVy
Z2VhYmxlQnVmZmVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1JlZmVycmVyUG9saWN5Lmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL1J1bkxvb3BUaW1lci5oJywKQEAgLTMzMzQsNiArMzMz
OSw5IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudVByaXZhdGUuaCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vY2hyb21pdW0vUHJlcmVuZGVyLmNwcCcsCisgICAgICAgICAgICAncGxhdGZv
cm0vY2hyb21pdW0vUHJlcmVuZGVyLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L1ByZXJlbmRlckhhbmRsZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NT
TEtleUdlbmVyYXRvckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21p
dW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2No
cm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW0uaCcsCkBAIC04MjkxLDYgKzgyOTksNyBAQAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1EZXNj
cmlwdG9yLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJN
ZWRpYVN0cmVhbVNvdXJjZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvV2ViTWVkaWFTdHJlYW1Tb3VyY2VzUmVxdWVzdC5jcHAnLAorICAgICAgICAgICAgJ3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJUaHJlYWRTYWZlRGF0YS5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlVSTC5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAz
NzM1YmM4YzAyNTc5OWY0NTVmZGIwNTUxNDdmM2QxYzY0NDZhZDIzLi42MzVmZjRiNzVmNzJjZTRm
ODQ3MzBmNjA5YzIyMjQ3YzA3YWNiZjYzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjcwNjIsNiArMjcwNjIsMjIgQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXFByZXJlbmRlcmVy
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
bG9hZGVyXFByZXJlbmRlcmVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxQcmVyZW5kZXJlckNsaWVudC5jcHAiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxQcmVyZW5kZXJl
ckNsaWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxsb2FkZXJcUHJvZ3Jlc3NUcmFja2VyLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0y
Nzk0Niw2ICsyNzk2MiwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxQcmVyZW5kZXJIYW5kbGUuaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUHVyZ2VhYmxlQnVm
ZmVyLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg1Yzg0YTcwNzllZTUxMWUwNTBhOTA0NDIz
ZDc1NGY1MDM0MGVhNDkuLjM1MjY2YjIxYWNhODBiNGVhMTc0YjQ5NzNiNDgxZmJhMjA3NThkN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTM2MDQsNiArMzYwNCwxMSBAQAogCQk5N0Y4RTY2NjE1MUQ0QTRFMDBEMkQxODEgLyog
V29ya2VyQ29udGV4dE5vdGlmaWNhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3RjhFNjYyMTUxRDRBM0YwMEQyRDE4MSAvKiBXb3JrZXJDb250
ZXh0Tm90aWZpY2F0aW9ucy5oICovOyB9OwogCQk5ODMxQUU0QTE1NDIyNUM5MDBGRTI2NDQgLyog
UmVmZXJyZXJQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk4MzFBRTQ5MTU0MjI1QTIwMEZFMjY0NCAvKiBSZWZlcnJlclBvbGljeS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk4NDI2NEYxMTJE
NTI4MEEwMDBEODhBNCAvKiBMaW5rTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5ODQyNjRFRjEyRDUyODBBMDAwRDg4QTQgLyogTGlu
a0xvYWRlckNsaWVudC5oICovOyB9OworCQk5ODU2RjhDQzE1NDlFODI0MDBCMDRGM0EgLyogUHJl
cmVuZGVyZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTg1NkY4QzgxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyLmNwcCAqLzsgfTsKKwkJ
OTg1NkY4Q0QxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5ODU2RjhDOTE1NDlFODI0MDBCMDRGM0Eg
LyogUHJlcmVuZGVyZXIuaCAqLzsgfTsKKwkJOTg1NkY4Q0UxNTQ5RTgyNDAwQjA0RjNBIC8qIFBy
ZXJlbmRlcmVyQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk4NTZGOENBMTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlckNsaWVudC5j
cHAgKi87IH07CisJCTk4NTZGOENGMTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTg1NkY4
Q0IxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyQ2xpZW50LmggKi87IH07CisJCTk4NTZG
OEQxMTU0OUU4NEYwMEIwNEYzQSAvKiBQcmVyZW5kZXJIYW5kbGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4NTZGOEQwMTU0OUU4NEYwMEIwNEYzQSAv
KiBQcmVyZW5kZXJIYW5kbGUuaCAqLzsgfTsKIAkJOTg1QkI5NkQxM0E5NDA1ODAwN0EwQjY5IC8q
IExpbmtSZWxBdHRyaWJ1dGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTg1QkI5NkIxM0E5NDA1ODAwN0EwQjY5IC8qIExpbmtSZWxBdHRyaWJ1dGUu
Y3BwICovOyB9OwogCQk5ODVCQjk2RTEzQTk0MDU4MDA3QTBCNjkgLyogTGlua1JlbEF0dHJpYnV0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTg1QkI5
NkMxM0E5NDA1ODAwN0EwQjY5IC8qIExpbmtSZWxBdHRyaWJ1dGUuaCAqLzsgfTsKIAkJOThDRTQz
MjYxMjlFMDBCRDAwNTgyMURDIC8qIExpbmtMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOThDRTQzMjUxMjlFMDBCRDAwNTgyMURDIC8qIExp
bmtMb2FkZXIuY3BwICovOyB9OwpAQCAtMTA2NTMsNiArMTA2NTgsMTEgQEAKIAkJOTdGOEU2NjMx
NTFENEEzRjAwRDJEMTgxIC8qIFdvcmtlckNvbnRleHROb3RpZmljYXRpb25zLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IG5hbWUgPSBXb3JrZXJDb250ZXh0Tm90aWZpY2F0aW9ucy5pZGw7IHBhdGggPSBu
b3RpZmljYXRpb25zL1dvcmtlckNvbnRleHROb3RpZmljYXRpb25zLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTgzMUFFNDkxNTQyMjVBMjAwRkUyNjQ0IC8qIFJlZmVycmVyUG9s
aWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZmVycmVyUG9saWN5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk4NDI2NEVGMTJENTI4MEEwMDBEODhBNCAv
KiBMaW5rTG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExp
bmtMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTg1NkY4Qzgx
NTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFByZXJlbmRlcmVyLmNwcDsgcGF0aCA9IGxvYWRlci9QcmVyZW5kZXJl
ci5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJOTg1NkY4QzkxNTQ5RTgyNDAw
QjA0RjNBIC8qIFByZXJlbmRlcmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFByZXJlbmRlcmVyLmg7IHBhdGggPSBsb2FkZXIvUHJlcmVuZGVyZXIuaDsgc291cmNlVHJlZSA9
IFNPVVJDRV9ST09UOyB9OworCQk5ODU2RjhDQTE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVuZGVy
ZXJDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUHJlcmVu
ZGVyZXJDbGllbnQuY3BwOyBwYXRoID0gbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmNwcDsgc291
cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk5ODU2RjhDQjE1NDlFODI0MDBCMDRGM0EgLyog
UHJlcmVuZGVyZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJl
cmVuZGVyZXJDbGllbnQuaDsgcGF0aCA9IGxvYWRlci9QcmVyZW5kZXJlckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTk4NTZGOEQwMTU0OUU4NEYwMEIwNEYzQSAvKiBQ
cmVyZW5kZXJIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJlcmVu
ZGVySGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk4NUJCOTZCMTNBOTQw
NTgwMDdBMEI2OSAvKiBMaW5rUmVsQXR0cmlidXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExpbmtSZWxBdHRyaWJ1dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5ODVCQjk2QzEzQTk0MDU4MDA3QTBCNjkgLyogTGlua1JlbEF0dHJpYnV0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaW5rUmVsQXR0cmlidXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk4Q0U0MzI1MTI5RTAwQkQwMDU4MjFEQyAvKiBM
aW5rTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExpbmtM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQxMzYsNiArMTQxNDYs
MTAgQEAKIAkJCQkxQThGNkJCNDBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZUdy
b3VwLmggKi8sCiAJCQkJMjRGNTRFQUExMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcCAqLywKIAkJCQkyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRp
b25DYWNoZUhvc3QuaCAqLywKKwkJCQk5ODU2RjhDODE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVu
ZGVyZXIuY3BwICovLAorCQkJCTk4NTZGOEM5MTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJl
ci5oICovLAorCQkJCTk4NTZGOENBMTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlckNsaWVu
dC5jcHAgKi8sCisJCQkJOTg1NkY4Q0IxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyQ2xp
ZW50LmggKi8sCiAJCQkJMUE4RjZCQjUwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZS5jcHAgKi8sCiAJCQkJMUE4RjZCQjYwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZS5oICovLAogCQkJCTFBMkFBQzU2MERDMkEzQjEwMEEyMEQ5QSAv
KiBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAgKi8sCkBAIC0xNDkyNiw2ICsxNDk0MCw3IEBA
CiAJCQkJNDlFOTEyQTUwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbi5jcHAgKi8sCiAJCQkJ
NDlFOTEyQTYwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbi5oICovLAogCQkJCTQ5RTkxMkE3
MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25MaXN0LmNwcCAqLywKKwkJCQk5ODU2RjhEMDE1
NDlFODRGMDBCMDRGM0EgLyogUHJlcmVuZGVySGFuZGxlLmggKi8sCiAJCQkJNDlFOTEyQTgwRUZB
QzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbkxpc3QuaCAqLywKIAkJCQkwRjU4MEZBRTE0OTgwMEQ0
MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVzLmggKi8sCiAJCQkJNDlFOTEyQTkwRUZBQzkw
NjAwOUQwQ0FGIC8qIFRpbWluZ0Z1bmN0aW9uLmggKi8sCkBAIC0yNDg3Niw2ICsyNDg5MSw5IEBA
CiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTg1NkY4Q0QxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRl
cmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5ODU2RjhDRjE1NDlFODI0MDBCMDRGM0EgLyogUHJl
cmVuZGVyZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTk4NTZGOEQxMTU0OUU4NEYwMEIw
NEYzQSAvKiBQcmVyZW5kZXJIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEOEM0NkVDMTU0
NjA4RTcwMEE1OTEwQyAvKiBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTcxQTU3REYyMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3OEQwMkJDNjE1NEExOERGMDBCNjJEMDUgLyogQ1NTUHJvcGVydHlB
bmltYXRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjc4OTcsNiArMjc5MTUsOCBAQAogCQkJCUUx
QkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTk4NTZGOENDMTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5ODU2RjhDRTE1NDlFODI0MDBCMDRGM0EgLyogUHJl
cmVuZGVyZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ4QzQ2RUIxNTQ2MDhFNzAw
QTU5MTBDIC8qIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3MUE1N0RGMTE1NEJFMjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3OEQwMkJDNTE1NEExOERGMDBCNjJEMDUgLyogQ1NTUHJvcGVydHlBbmlt
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA0MjNm
YzlmMDkzYmIxNjUxZjVkNzA4Zjc3ZDZkYzljMjAzYzkzYmMwLi5kNzM0NDQ4MGZiNjFhZWIzNzIw
NzMxZjQ5ZDE2YjdlYTk0NWRlYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwNyw2
ICsyMDcsMTAgQEAKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKICNlbmRpZgogCisjaWYgRU5B
QkxFKExJTktfUFJFUkVOREVSKQorI2luY2x1ZGUgIlByZXJlbmRlcmVyLmgiCisjZW5kaWYKKwog
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiB1c2luZyBuYW1lc3Bh
Y2UgVW5pY29kZTsKQEAgLTUxMCw3ICs1MTQsOSBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUq
IGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAg
bV9tYXJrZXJzID0gYWRvcHRQdHIobmV3IERvY3VtZW50TWFya2VyQ29udHJvbGxlcik7CiAKICAg
ICBtX2NhY2hlZFJlc291cmNlTG9hZGVyID0gYWRvcHRQdHIobmV3IENhY2hlZFJlc291cmNlTG9h
ZGVyKHRoaXMpKTsKLQorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBtX3ByZXJlbmRl
cmVyID0gUHJlcmVuZGVyZXI6OmNyZWF0ZSh0aGlzKTsKKyNlbmRpZgogICAgIG1fdmlzdWFsbHlP
cmRlcmVkID0gZmFsc2U7CiAgICAgbV9iUGFyc2luZyA9IGZhbHNlOwogICAgIG1fd2VsbEZvcm1l
ZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAxZWY2YjRhOWJhYmRhYzM3OGNmZmM4
ZGU4ZTAzN2YyMDEyMTAyNzlmLi5kZjRiNjY0N2VkODE4Zjk0OTlkZWVhZGI5ZDZmNTdjNGEyZmY0
MzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTY3LDYgKzE2NywxMCBAQCBjbGFzcyBTY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI7CiBjbGFzcyBNaWNyb0RhdGFJdGVtTGlzdDsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorY2xhc3MgUHJlcmVuZGVyZXI7CisjZW5k
aWYKKwogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgRm9ybUVsZW1lbnRLZXkg
ewpAQCAtMTE1Myw2ICsxMTU3LDEwIEBAIHB1YmxpYzoKIAogICAgIEludFNpemUgdmlld3BvcnRT
aXplKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisgICAgUHJlcmVuZGVy
ZXIqIHByZXJlbmRlcmVyKCkgeyByZXR1cm4gbV9wcmVyZW5kZXJlci5nZXQoKTsgfQorI2VuZGlm
CisKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGlz
WEhUTUwsIGJvb2wgaXNIVE1MKTsKIApAQCAtMTQ5Nyw2ICsxNTA1LDExIEBAIHByaXZhdGU6CiAK
ICAgICBUaW1lcjxEb2N1bWVudD4gbV9wZW5kaW5nVGFza3NUaW1lcjsKICAgICBWZWN0b3I8T3du
UHRyPFRhc2s+ID4gbV9wZW5kaW5nVGFza3M7CisKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIp
CisgICAgT3duUHRyPFByZXJlbmRlcmVyPiBtX3ByZXJlbmRlcmVyOworI2VuZGlmCisKICAgICBi
b29sIG1fc2NoZWR1bGVkVGFza3NBcmVTdXNwZW5kZWQ7CiAgICAgCiAgICAgYm9vbCBtX3Zpc3Vh
bFVwZGF0ZXNBbGxvd2VkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmlu
ZGV4IGUxNzkyNWZiZTNjMGE3N2VjMWZhZDE3Mzc0OGVhODY2MWRmZWYyMDkuLjIxMDVhNDkxYzRl
NmJkYWFkMGJmZTFhMjA4NTc2MzMzYmY3NjRhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
aW5rRWxlbWVudC5jcHAKQEAgLTI2NSw2ICsyNjUsOCBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6
cmVtb3ZlZEZyb20oTm9kZSogaW5zZXJ0aW9uUG9pbnQpCiAgICAgaWYgKCFpbnNlcnRpb25Qb2lu
dC0+aW5Eb2N1bWVudCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX2xpbmtMb2FkZXIucmVs
ZWFzZWQoKTsKKwogICAgIGlmIChtX2lzSW5TaGFkb3dUcmVlKSB7CiAgICAgICAgIEFTU0VSVCgh
bV9zaGVldCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRy
aWJ1dGUuY3BwCmluZGV4IDUyNjFkZjJkMDhmZjI2YTAzYTVkODFlMjQzMWZhNjNmNGM2NTcyMGMu
Ljg3MDcxYjk5YjI4ZDY1ZDIxOGYwYWJkMmRiOGE1N2NkMDAxZjZhNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcApAQCAtNDEsOSArNDEsMTEgQEAgTGlua1JlbEF0
dHJpYnV0ZTo6TGlua1JlbEF0dHJpYnV0ZSgpCiAgICAgLCBtX2lzRE5TUHJlZmV0Y2goZmFsc2Up
CiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgLCBtX2lzTGlua1ByZWZldGNoKGZhbHNl
KQotICAgICwgbV9pc0xpbmtQcmVyZW5kZXIoZmFsc2UpCiAgICAgLCBtX2lzTGlua1N1YnJlc291
cmNlKGZhbHNlKQogI2VuZGlmCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgICwgbV9p
c0xpbmtQcmVyZW5kZXIoZmFsc2UpCisjZW5kaWYKIHsKIH0KIApAQCAtNTQsOSArNTYsMTEgQEAg
TGlua1JlbEF0dHJpYnV0ZTo6TGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKICAg
ICAsIG1faXNETlNQcmVmZXRjaChmYWxzZSkKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAg
ICAsIG1faXNMaW5rUHJlZmV0Y2goZmFsc2UpCi0gICAgLCBtX2lzTGlua1ByZXJlbmRlcihmYWxz
ZSkKICAgICAsIG1faXNMaW5rU3VicmVzb3VyY2UoZmFsc2UpCiAjZW5kaWYKKyNpZiBFTkFCTEUo
TElOS19QUkVSRU5ERVIpCisgICAgLCBtX2lzTGlua1ByZXJlbmRlcihmYWxzZSkKKyNlbmRpZgog
ewogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZWwsICJzdHlsZXNoZWV0IikpCiAgICAgICAg
IG1faXNTdHlsZVNoZWV0ID0gdHJ1ZTsKQEAgLTk2LDExICsxMDAsMTMgQEAgTGlua1JlbEF0dHJp
YnV0ZTo6TGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKICNpZiBFTkFCTEUoTElO
S19QUkVGRVRDSCkKICAgICAgICAgICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKCppdCwg
InByZWZldGNoIikpCiAgICAgICAgICAgICAgIG1faXNMaW5rUHJlZmV0Y2ggPSB0cnVlOwotICAg
ICAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoKml0LCAicHJlcmVuZGVyIikpCi0g
ICAgICAgICAgICAgIG1faXNMaW5rUHJlcmVuZGVyID0gdHJ1ZTsKICAgICAgICAgICAgIGVsc2Ug
aWYgKGVxdWFsSWdub3JpbmdDYXNlKCppdCwgInN1YnJlc291cmNlIikpCiAgICAgICAgICAgICAg
IG1faXNMaW5rU3VicmVzb3VyY2UgPSB0cnVlOwogI2VuZGlmCisjaWYgRU5BQkxFKExJTktfUFJF
UkVOREVSKQorICAgICAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoKml0LCAicHJl
cmVuZGVyIikpCisgICAgICAgICAgICAgIG1faXNMaW5rUHJlcmVuZGVyID0gdHJ1ZTsKKyNlbmRp
ZgogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9M
aW5rUmVsQXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUu
aAppbmRleCAzMTc4MTk0YjQ5YTFiZDA1YjliMGMxNDQ0MWViZjVmODYyNTc4YWNjLi45OGRkNDgx
OTFjOWY4MzczZWYyNGIxZDIyOWIxMjIzZTJkYTI3NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xp
bmtSZWxBdHRyaWJ1dGUuaApAQCAtNDQsOSArNDQsMTEgQEAgcHVibGljOgogICAgIGJvb2wgbV9p
c0ROU1ByZWZldGNoOwogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGJvb2wgbV9pc0xp
bmtQcmVmZXRjaDsKLSAgICBib29sIG1faXNMaW5rUHJlcmVuZGVyOwogICAgIGJvb2wgbV9pc0xp
bmtTdWJyZXNvdXJjZTsKICNlbmRpZgorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBi
b29sIG1faXNMaW5rUHJlcmVuZGVyOworI2VuZGlmCiAKICAgICBMaW5rUmVsQXR0cmlidXRlKCk7
CiAgICAgZXhwbGljaXQgTGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcAppbmRleCBlNTYyZDEwNTA1OTczODI1MzUxNzMzODQzMTdl
YmFhZGUzOWZkYmQ1Li5hZjI1YTg2ODAzYzQwNzQ3OWMxMDI2N2FmMjY2N2VhMDJhZTVkMmYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC00NCw2ICs0NCwxMSBAQAogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogCisjaWYgRU5B
QkxFKExJTktfUFJFUkVOREVSKQorI2luY2x1ZGUgIlByZXJlbmRlckhhbmRsZS5oIgorI2luY2x1
ZGUgIlByZXJlbmRlcmVyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBMaW5r
TG9hZGVyOjpMaW5rTG9hZGVyKExpbmtMb2FkZXJDbGllbnQqIGNsaWVudCkKQEAgLTEwMyw3ICsx
MDgsNyBAQCBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUm
IHJlbEF0dHJpYnV0ZSwgY29uc3QgU3RyaW5nJiB0eQogICAgIH0KIAogI2lmIEVOQUJMRShMSU5L
X1BSRUZFVENIKQotICAgIGlmICgocmVsQXR0cmlidXRlLm1faXNMaW5rUHJlZmV0Y2ggfHwgcmVs
QXR0cmlidXRlLm1faXNMaW5rUHJlcmVuZGVyIHx8IHJlbEF0dHJpYnV0ZS5tX2lzTGlua1N1YnJl
c291cmNlKSAmJiBocmVmLmlzVmFsaWQoKSAmJiBkb2N1bWVudC0+ZnJhbWUoKSkgeworICAgIGlm
ICgocmVsQXR0cmlidXRlLm1faXNMaW5rUHJlZmV0Y2ggfHwgcmVsQXR0cmlidXRlLm1faXNMaW5r
U3VicmVzb3VyY2UpICYmIGhyZWYuaXNWYWxpZCgpICYmIGRvY3VtZW50LT5mcmFtZSgpKSB7CiAg
ICAgICAgIGlmICghbV9jbGllbnQtPnNob3VsZExvYWRMaW5rKCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5ID0gUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkOwpAQCAtMTEzLDkgKzExOCw3IEBAIGJvb2wgTGlua0xv
YWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25z
dCBTdHJpbmcmIHR5CiAgICAgICAgIGlmIChyZWxBdHRyaWJ1dGUubV9pc0xpbmtTdWJyZXNvdXJj
ZSkgewogICAgICAgICAgICAgcHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdzsKICAg
ICAgICAgICAgIHR5cGUgPSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOwotICAgICAg
ICB9IGVsc2UgaWYgKHJlbEF0dHJpYnV0ZS5tX2lzTGlua1ByZXJlbmRlcikKLSAgICAgICAgICAg
IHR5cGUgPSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjsKLQorICAgICAgICB9CiAgICAg
ICAgIFJlc291cmNlUmVxdWVzdCBsaW5rUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaHJl
ZikpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fY2FjaGVkTGlua1Jlc291cmNlKSB7CkBAIC0x
MjcsOCArMTMwLDI2IEBAIGJvb2wgTGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0
dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25zdCBTdHJpbmcmIHR5CiAgICAgICAgICAgICBtX2Nh
Y2hlZExpbmtSZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOwogICAgIH0KICNlbmRpZgorCisjaWYg
RU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgIGlmIChyZWxBdHRyaWJ1dGUubV9pc0xpbmtQcmVy
ZW5kZXIpIHsKKyAgICAgICAgQVNTRVJUKCFtX3ByZXJlbmRlckhhbmRsZSk7CisgICAgICAgIG1f
cHJlcmVuZGVySGFuZGxlID0gZG9jdW1lbnQtPnByZXJlbmRlcmVyKCktPnJlbmRlcihocmVmKTsK
KyAgICB9CisjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBMaW5rTG9hZGVyOjpy
ZWxlYXNlZCgpCit7CisgICAgLy8gT25seSBwcmVyZW5kZXJzIG5lZWQgdHJlYXRtZW50IGhlcmU7
IG90aGVyIGxpbmtzIGVpdGhlciB1c2UgdGhlIENhY2hlZFJlc291cmNlIGludGVyZmFjZSwgb3Ig
YXJlIG5vdGlvbmFsbHkKKyAgICAvLyBhdG9taWMgKGRucyBwcmVmZXRjaCkuCisjaWYgRU5BQkxF
KExJTktfUFJFUkVOREVSKQorICAgIGlmIChtX3ByZXJlbmRlckhhbmRsZSkgeworICAgICAgICBt
X3ByZXJlbmRlckhhbmRsZS0+Y2FuY2VsKCk7CisgICAgICAgIG1fcHJlcmVuZGVySGFuZGxlLmNs
ZWFyKCk7CisgICAgfQorI2VuZGlmCit9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5o
CmluZGV4IDFmYmMxOGQ3Yzc2ZWI2YTZlN2E0ZWZkNzE5MTExYjYzOTYwZTc5ZGIuLjU4YjI5YTc3
NGY3OGQxNDgwZjE4NDYzNTJhY2RkN2Q4NTNjMjBmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9MaW5rTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtM
b2FkZXIuaApAQCAtMzcsOSArMzcsMTQgQEAKICNpbmNsdWRlICJMaW5rTG9hZGVyQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiVGltZXIuaCIKIAorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgTGlua1JlbEF0dHJpYnV0ZTsKKyNpZiBFTkFCTEUoTElO
S19QUkVSRU5ERVIpCitjbGFzcyBQcmVyZW5kZXJIYW5kbGU7CisjZW5kaWYKIAogLy8gVGhlIExp
bmtMb2FkZXIgY2FuIGxvYWQgbGluayByZWwgdHlwZXMgaWNvbiwgZG5zLXByZWZldGNoLCBzdWJy
ZXNvdXJjZSwgcHJlZmV0Y2ggYW5kIHByZXJlbmRlci4KIGNsYXNzIExpbmtMb2FkZXIgOiBwdWJs
aWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewpAQCAtNTAsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gZnJvbSBDYWNoZWRSZXNvdXJjZUNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5p
c2hlZChDYWNoZWRSZXNvdXJjZSopOwogICAgIAorICAgIHZvaWQgcmVsZWFzZWQoKTsKICAgICBi
b29sIGxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUmLCBjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgc2l6ZXMsIGNvbnN0IEtVUkwmLCBEb2N1bWVudCopOwogCiBwcml2YXRl
OgpAQCAtNjEsNiArNjcsMTAgQEAgcHJpdmF0ZToKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSZXNvdXJjZT4gbV9jYWNoZWRMaW5rUmVzb3VyY2U7CiAgICAgVGltZXI8TGlua0xvYWRl
cj4gbV9saW5rTG9hZFRpbWVyOwogICAgIFRpbWVyPExpbmtMb2FkZXI+IG1fbGlua0xvYWRpbmdF
cnJvclRpbWVyOworCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgIFJlZlB0cjxQcmVy
ZW5kZXJIYW5kbGU+IG1fcHJlcmVuZGVySGFuZGxlOworI2VuZGlmCiB9OwogICAgIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVmZDhkZDhiN2Q0OTJi
YzcwNmU4MjY1MzM4MzU3NzdmNmYxOGJkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9QcmVyZW5kZXJlci5jcHAKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlByZXJlbmRlcmVyLmgiCisKKyNpZiBFTkFCTEUoTElOS19Q
UkVSRU5ERVIpCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJQcmVyZW5kZXJIYW5kbGUuaCIKKyNp
bmNsdWRlICJQcmVyZW5kZXJlckNsaWVudC5oIgorI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5Lmgi
CisjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworLy8gc3RhdGljCitQYXNzT3duUHRyPFByZXJlbmRlcmVyPiBQcmVyZW5kZXJlcjo6Y3JlYXRl
KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBQcmVyZW5kZXJlciogcHJlcmVuZGVyZXIgPSBu
ZXcgUHJlcmVuZGVyZXIoZG9jdW1lbnQpOworICAgIHByZXJlbmRlcmVyLT5zdXNwZW5kSWZOZWVk
ZWQoKTsKKyAgICByZXR1cm4gYWRvcHRQdHIocHJlcmVuZGVyZXIpOworfQorCitQcmVyZW5kZXJl
cjo6UHJlcmVuZGVyZXIoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogQWN0aXZlRE9NT2JqZWN0
KGRvY3VtZW50LCB0aGlzKQorICAgICwgbV9jbGllbnQoMCkKK3sKK30KKworUHJlcmVuZGVyZXI6
On5QcmVyZW5kZXJlcigpCit7Cit9CisKK1Bhc3NSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiBQcmVy
ZW5kZXJlcjo6cmVuZGVyKGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICAvLyBQcmVyZW5kZXJzIGFy
ZSB1bmxpa2UgcmVxdWVzdHMgaW4gbW9zdCB3YXlzIChmb3IgaW5zdGFuY2UsIHRoZXkgcGFzcyBk
b3duIGZyYWdtZW50cywgYW5kIHRoZXkgZG9uJ3QgcmV0dXJuIGRhdGEpLAorICAgIC8vIGJ1dCB0
aGV5IGRvIGhhdmUgcmVmZXJyZXJzLgorICAgIGNvbnN0IFJlZmVycmVyUG9saWN5IHJlZmVycmVy
UG9saWN5ID0gZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKTsKKyAgICBjb25zdCBTdHJpbmcg
cmVmZXJyZXIgPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihyZWZlcnJl
clBvbGljeSwgdXJsLCBkb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZl
cnJlcigpKTsKKworICAgIFJlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IHByZXJlbmRlckhhbmRsZSA9
IFByZXJlbmRlckhhbmRsZTo6Y3JlYXRlKHVybCwgcmVmZXJyZXIsIHJlZmVycmVyUG9saWN5KTsK
KworICAgIGNsaWVudCgpLT53aWxsQWRkUHJlcmVuZGVyKHByZXJlbmRlckhhbmRsZS5nZXQoKSk7
CisgICAgcHJlcmVuZGVySGFuZGxlLT5hZGQoKTsKKworICAgIG1fYWN0aXZlSGFuZGxlcy5hcHBl
bmQocHJlcmVuZGVySGFuZGxlKTsKKyAgICByZXR1cm4gcHJlcmVuZGVySGFuZGxlOworfQorCit2
b2lkIFByZXJlbmRlcmVyOjpzdG9wKCkKK3sKKyAgICB3aGlsZSAoIW1fYWN0aXZlSGFuZGxlcy5p
c0VtcHR5KCkpIHsKKyAgICAgICAgUmVmUHRyPFByZXJlbmRlckhhbmRsZT4gaGFuZGxlID0gbV9h
Y3RpdmVIYW5kbGVzWzBdLnJlbGVhc2UoKTsKKyAgICAgICAgbV9hY3RpdmVIYW5kbGVzLnJlbW92
ZSgwKTsKKyAgICAgICAgaGFuZGxlLT5hYmFuZG9uKCk7CisgICAgfQorICAgIHdoaWxlICghbV9z
dXNwZW5kZWRIYW5kbGVzLmlzRW1wdHkoKSkgeworICAgICAgICBSZWZQdHI8UHJlcmVuZGVySGFu
ZGxlPiBoYW5kbGUgPSBtX3N1c3BlbmRlZEhhbmRsZXNbMF0ucmVsZWFzZSgpOworICAgICAgICBt
X3N1c3BlbmRlZEhhbmRsZXMucmVtb3ZlKDApOworICAgICAgICBoYW5kbGUtPmFiYW5kb24oKTsK
KyAgICB9Cit9CisKK3ZvaWQgUHJlcmVuZGVyZXI6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lv
biByZWFzb24pCit7CisgICAgaWYgKHJlYXNvbiA9PSBEb2N1bWVudFdpbGxCZWNvbWVJbmFjdGl2
ZSB8fCByZWFzb24gPT0gUGFnZVdpbGxCZVN1c3BlbmRlZCkgeworICAgICAgICB3aGlsZSAoIW1f
YWN0aXZlSGFuZGxlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxQcmVyZW5kZXJI
YW5kbGU+IGhhbmRsZSA9IG1fYWN0aXZlSGFuZGxlc1swXS5yZWxlYXNlKCk7CisgICAgICAgICAg
ICBtX2FjdGl2ZUhhbmRsZXMucmVtb3ZlKDApOworICAgICAgICAgICAgaGFuZGxlLT5zdXNwZW5k
KCk7CisgICAgICAgICAgICBtX3N1c3BlbmRlZEhhbmRsZXMuYXBwZW5kKGhhbmRsZSk7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgUHJlcmVuZGVyZXI6OnJlc3VtZSgpCit7CisgICAgd2hp
bGUgKCFtX3N1c3BlbmRlZEhhbmRsZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIFJlZlB0cjxQcmVy
ZW5kZXJIYW5kbGU+IGhhbmRsZSA9IG1fc3VzcGVuZGVkSGFuZGxlc1swXS5yZWxlYXNlKCk7Cisg
ICAgICAgIG1fc3VzcGVuZGVkSGFuZGxlcy5yZW1vdmUoMCk7CisgICAgICAgIGhhbmRsZS0+cmVz
dW1lKCk7CisgICAgICAgIG1fYWN0aXZlSGFuZGxlcy5hcHBlbmQoaGFuZGxlKTsKKyAgICB9Cit9
CisKK0RvY3VtZW50KiBQcmVyZW5kZXJlcjo6ZG9jdW1lbnQoKQoreworICAgIEFTU0VSVChzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PERvY3VtZW50Kj4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKK30KKworUHJlcmVuZGVy
ZXJDbGllbnQqIFByZXJlbmRlcmVyOjpjbGllbnQoKQoreworICAgIGlmICghbV9jbGllbnQpCisg
ICAgICAgIG1fY2xpZW50ID0gUHJlcmVuZGVyZXJDbGllbnQ6OmZyb20oZG9jdW1lbnQoKS0+cGFn
ZSgpKTsKKyAgICByZXR1cm4gbV9jbGllbnQ7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShM
SU5LX1BSRVJFTkRFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5k
ZXJlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzJmMzUwODM0MmQxMmI0M2NhZWIxZWMwODk1N2RmMGQzNjk0YmEwOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlci5oCkBAIC0wLDAgKzEsODUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8K
KworI2lmbmRlZiBQcmVyZW5kZXJlcl9oCisjZGVmaW5lIFByZXJlbmRlcmVyX2gKKworI2lmIEVO
QUJMRShMSU5LX1BSRVJFTkRFUikKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2lu
Y2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvU2luZ2x5TGlua2VkTGlzdC5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2Ns
YXNzIFByZXJlbmRlckhhbmRsZTsKK2NsYXNzIFByZXJlbmRlcmVyQ2xpZW50OworY2xhc3MgUGFn
ZTsKKworY2xhc3MgUHJlcmVuZGVyZXIgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShQcmVyZW5kZXJlcik7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
UHJlcmVuZGVyZXIoKTsKKworICAgIFBhc3NSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiByZW5kZXIo
Y29uc3QgS1VSTCYpOworCisgICAgc3RhdGljIFBhc3NPd25QdHI8UHJlcmVuZGVyZXI+IGNyZWF0
ZShEb2N1bWVudCopOworCitwcml2YXRlOgorICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxQcmVy
ZW5kZXJIYW5kbGU+ID4gSGFuZGxlVmVjdG9yOworICAgIHR5cGVkZWYgVmVjdG9yPEtVUkw+IEtV
UkxWZWN0b3I7CisKKyAgICBleHBsaWNpdCBQcmVyZW5kZXJlcihEb2N1bWVudCopOworCisgICAg
dmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3Vz
cGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVz
dW1lKCkgT1ZFUlJJREU7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKTsKKyAgICBQcmVyZW5k
ZXJlckNsaWVudCogY2xpZW50KCk7CisKKyAgICBQcmVyZW5kZXJlckNsaWVudCogbV9jbGllbnQ7
CisgICAgSGFuZGxlVmVjdG9yIG1fYWN0aXZlSGFuZGxlczsKKyAgICBIYW5kbGVWZWN0b3IgbV9z
dXNwZW5kZWRIYW5kbGVzOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKExJTktfUFJFUkVO
REVSKQorCisjZW5kaWYgLy8gUHJlcmVuZGVyZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
cmVyZW5kZXJlckNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhmMjQ3MGUyNjE2NGE0ZGQxNTkzNTk1
YzYzZjEyNzFhZmZlNmMxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QcmVyZW5kZXJlckNsaWVudC5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUHJlcmVuZGVyZXJDbGllbnQuaCIKKworI2luY2x1ZGUgIlBhZ2Uu
aCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21p
Y1N0cmluZy5oPgorCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKy8vIHN0YXRpYworY29uc3QgQXRvbWljU3RyaW5nJiBQcmVyZW5kZXJlckNsaWVu
dDo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBuYW1lLCAoIlByZXJlbmRlcmVyQ2xpZW50IikpOworICAgIHJldHVybiBuYW1lOworfQor
CisvLyBzdGF0aWMKK1ByZXJlbmRlcmVyQ2xpZW50KiBQcmVyZW5kZXJlckNsaWVudDo6ZnJvbShQ
YWdlKiBwYWdlKQoreworICAgIFByZXJlbmRlcmVyQ2xpZW50KiBzdXBwbGVtZW50ID0gc3RhdGlj
X2Nhc3Q8UHJlcmVuZGVyZXJDbGllbnQqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1
cHBsZW1lbnROYW1lKCkpKTsKKyAgICBBU1NFUlQoc3VwcGxlbWVudCk7CisgICAgcmV0dXJuIHN1
cHBsZW1lbnQ7Cit9CisKK3ZvaWQgcHJvdmlkZVByZXJlbmRlcmVyQ2xpZW50VG8oUGFnZSogcGFn
ZSwgUHJlcmVuZGVyZXJDbGllbnQqIGNsaWVudCkKK3sKKyAgICBQcmVyZW5kZXJlckNsaWVudDo6
cHJvdmlkZVRvKHBhZ2UsIFByZXJlbmRlcmVyQ2xpZW50OjpzdXBwbGVtZW50TmFtZSgpLCBhZG9w
dFB0cihjbGllbnQpKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9QcmVyZW5kZXJlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1By
ZXJlbmRlcmVyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE0Y2U5NDZmNjM4NzE4MDY3ODI2YzVkN2Uw
NWFhZjdmNGNmMTVmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
cmVyZW5kZXJlckNsaWVudC5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lmbmRlZiBQcmVyZW5kZXJl
ckNsaWVudF9oCisjZGVmaW5lIFByZXJlbmRlcmVyQ2xpZW50X2gKKworI2lmIEVOQUJMRShMSU5L
X1BSRVJFTkRFUikKKworI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsK
K2NsYXNzIFBhZ2U7CitjbGFzcyBQcmVyZW5kZXJIYW5kbGU7CisKK2NsYXNzIFByZXJlbmRlcmVy
Q2xpZW50IDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4geworcHVibGljOgorICAgIHZpcnR1YWwg
flByZXJlbmRlcmVyQ2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEFkZFByZXJl
bmRlcihQcmVyZW5kZXJIYW5kbGUqKSA9IDA7CisKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0YXRpYyBQcmVyZW5kZXJlckNsaWVudCogZnJv
bShQYWdlKik7CisKK3Byb3RlY3RlZDoKKyAgICBQcmVyZW5kZXJlckNsaWVudCgpIHsgfQorfTsK
Kwordm9pZCBwcm92aWRlUHJlcmVuZGVyZXJDbGllbnRUbyhQYWdlKiwgUHJlcmVuZGVyZXJDbGll
bnQqKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFRChMSU5L
X1BSRVJFTkRFUikKKworI2VuZGlmIC8vIFByZXJlbmRlcmVyQ2xpZW50X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IDAzNjhhNzI0NTI1
ZmFmZTY0OTA1ODdiZWIyYjRmNmU2ZTlmY2M2ZTYuLmM5NWFiZWRiNGM5MDhjNTk3ZGU0MzVlMmQ1
Mzg4ZGI0MjE0NDNlYWIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcApAQCAtNzMsOCArNzMsNiBAQCBzdGF0aWMgUmVzb3VyY2VMb2FkUHJpb3Jp
dHkgZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlCiAj
aWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Okxp
bmtQcmVmZXRjaDoKICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlM
b3c7Ci0gICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXI6Ci0gICAgICAg
ICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93OwogICAgICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlWZXJ5TG93OwogI2VuZGlmCkBAIC0xMTQsOCArMTEyLDYgQEAgc3RhdGlj
IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0VHlwZSBjYWNoZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5
cGUoQ2FjaGVkUmVzb3VyY2UKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g6CiAgICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVl
c3Q6OlRhcmdldElzUHJlZmV0Y2g7Ci0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJl
bmRlcjoKLSAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNQcmVyZW5kZXI7
CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogICAgICAgICByZXR1
cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlOwogI2VuZGlmCkBAIC0yMjAs
NyArMjE2LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRl
ciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGNvbnN0IFJlc28KICAgICB9CiAKICNpZiBFTkFCTEUo
TElOS19QUkVGRVRDSCkKLSAgICBpZiAodHlwZSgpID09IENhY2hlZFJlc291cmNlOjpMaW5rUHJl
ZmV0Y2ggfHwgdHlwZSgpID09IENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyIHx8IHR5cGUo
KSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlKQorICAgIGlmICh0eXBlKCkgPT0g
Q2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCB8fCB0eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6
OkxpbmtTdWJyZXNvdXJjZSkKICAgICAgICAgbV9yZXNvdXJjZVJlcXVlc3Quc2V0SFRUUEhlYWRl
ckZpZWxkKCJQdXJwb3NlIiwgInByZWZldGNoIik7CiAjZW5kaWYKICAgICBtX3Jlc291cmNlUmVx
dWVzdC5zZXRQcmlvcml0eShsb2FkUHJpb3JpdHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IGMwN2IyMzFkNGQ1OTg1NzUxY2NjYTA2MjFk
Mzc1N2E5NTY2YjQ2OTguLjkxMWY4NTBlODg1Y2NmZjdmMWQyNGNiNjhjNTZlNDBlNWZhZjJmN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC03
NCw3ICs3NCw2IEBAIHB1YmxpYzoKICNlbmRpZgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQog
ICAgICAgICAsIExpbmtQcmVmZXRjaAotICAgICAgICAsIExpbmtQcmVyZW5kZXIKICAgICAgICAg
LCBMaW5rU3VicmVzb3VyY2UKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKQEAgLTE1
MCw3ICsxNDksNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBmYWxzZQogI2lmIEVOQUJMRShM
SU5LX1BSRUZFVENIKQogICAgICAgICAgICAgfHwgdHlwZSgpID09IExpbmtQcmVmZXRjaAotICAg
ICAgICAgICAgfHwgdHlwZSgpID09IExpbmtQcmVyZW5kZXIKICAgICAgICAgICAgIHx8IHR5cGUo
KSA9PSBMaW5rU3VicmVzb3VyY2UKICNlbmRpZgogICAgICAgICAgICAgfHwgdHlwZSgpID09IFJh
d1Jlc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggOWUzOWMxZTQ4YmM4ZDY1YjE3ODdlOWRlMTNlNmE5ZDNl
ZmEzNTJmNy4uN2UwYzhmYmZhZjk3NDU1NDljNGZiOTkzNzlhYjE5MDViZDFlY2E3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwCkBAIC04OCw4ICs4OCw2IEBAIHN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0CiAjaWYgRU5BQkxF
KExJTktfUFJFRkVUQ0gpCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoOgog
ICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNl
OjpMaW5rUHJlZmV0Y2gpOwotICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXI6
Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVkUmVzb3Vy
Y2U6OkxpbmtQcmVyZW5kZXIpOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNv
dXJjZToKICAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRSZXNvdXJjZShyZXF1ZXN0LCBDYWNoZWRS
ZXNvdXJjZTo6TGlua1N1YnJlc291cmNlKTsKICNlbmRpZgpAQCAtMjM2LDcgKzIzNCw3IEBAIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFNWR0RvY3VtZW50CiBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJj
ZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlv
cml0eSBwcmlvcml0eSkKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7Ci0gICAgQVNTRVJUKHR5cGUg
PT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCB8fCB0eXBlID09IENhY2hlZFJlc291cmNl
OjpMaW5rUHJlcmVuZGVyIHx8IHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJj
ZSk7CisgICAgQVNTRVJUKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCB8fCB0
eXBlID09IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2UpOwogICAgIHJldHVybiByZXF1
ZXN0UmVzb3VyY2UodHlwZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJj
ZU9wdGlvbnMoKSwgcHJpb3JpdHkpOwogfQogI2VuZGlmCkBAIC0yODIsNyArMjgwLDYgQEAgYm9v
bCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgY29uc3QKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJj
ZToKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpM
aW5rUHJlZmV0Y2g6Ci0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjoKICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAgICAgICAgIC8vIFByZWZl
dGNoIGNhbm5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgZG9jdW1lbnQuCiAjZW5kaWYKQEAgLTMxMSw3
ICszMDgsNiBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJl
c291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlJhd1Jlc291cmNlOgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaDoKLSAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5r
UHJlcmVuZGVyOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICNl
bmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKQEAgLTM4MSw3ICszNzcsNiBAQCBib29sIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUs
IGNvbnN0IEtVUkwmIHVybAogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOgog
I2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQ
cmVmZXRjaDoKLSAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOgogICAgIGNh
c2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICNlbmRpZgogICAgICAgICBicmVh
azsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ByZXJlbmRlckhhbmRsZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJlcmVuZGVySGFuZGxlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDRmZGFmY2Y0MGY0ZWFmZTg0MGIwOGJmOTYwZTcxNDIzZGY3MmE3YQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ByZXJlbmRlckhhbmRsZS5oCkBAIC0wLDAgKzEs
ODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
CisgKi8KKworI2lmbmRlZiBQcmVyZW5kZXJIYW5kbGVfaAorI2RlZmluZSBQcmVyZW5kZXJIYW5k
bGVfaAorCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorCisjaW5jbHVkZSAiUmVmZXJyZXJQ
b2xpY3kuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEtVUkw7CitjbGFzcyBQ
cmVyZW5kZXI7CisKK2NsYXNzIFByZXJlbmRlckhhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPFBy
ZXJlbmRlckhhbmRsZT4geworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByZXJlbmRlckhhbmRs
ZSk7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiBjcmVh
dGUoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFJlZmVycmVyUG9saWN5KTsK
KyAgICB+UHJlcmVuZGVySGFuZGxlKCk7CisKKyAgICBQcmVyZW5kZXIqIHByZXJlbmRlcigpOwor
CisgICAgLy8gRklYTUU6IG9uZSBkYXkgdGhlcmUgd2lsbCBiZSBldmVudHMgaGVyZSwgYW5kIHdl
IHdpbGwgYmUgYSBQcmVyZW5kZXJDbGllbnQuCisKKyAgICAvLyBBIHByZXJlbmRlciBsaW5rIGVs
ZW1lbnQgaXMgYWRkZWQgd2hlbiBpdCBpcyBpbnNlcnRlZCBpbnRvIGEgZG9jdW1lbnQuCisgICAg
dm9pZCBhZGQoKTsKKworICAgIC8vIEEgcHJlcmVuZGVyIGlzIGFiYW5kb25lZCB3aGVuIGl0J3Mg
bmF2aWdhdGVkIGF3YXkgZnJvbS4gVGhpcyBpcyBpcyBhIHdlYWtlciBzaWduYWwKKyAgICAvLyB0
aGFuIGNhbmNlbCgpLCBzaW5jZSB0aGUgbGF1bmNoZXIgaGFzbid0IGluZGljYXRlZCB0aGF0IHRo
ZSBwcmVyZW5kZXIgaXNuJ3Qgd2FudGVkLAorICAgIC8vIGFuZCB3ZSBtYXkgZW5kIHVwIHVzaW5n
IGl0IGFmdGVyLCBmb3IgaW5zdGFuY2UsIGEgc2hvcnQgcmVkaXJlY3QgY2hhaW4uCisgICAgdm9p
ZCBhYmFuZG9uKCk7CisKKyAgICAvLyBBIHByZXJlbmRlciBpcyBjYW5jZWxlZCB3aGVuIGl0IGlz
IHJlbW92ZWQgZnJvbSBhIGRvY3VtZW50LgorICAgIHZvaWQgY2FuY2VsKCk7CisKKyAgICAvLyBB
IHByZXJlbmRlciBpcyBzdXNwZW5kZWQgYWxvbmcgd2l0aCB0aGUgRE9NIGNvbnRhaW5pbmcgaXRz
IGxpbmtsb2FkZXIgJiBwcmVyZW5kZXJlci4KKyAgICB2b2lkIHN1c3BlbmQoKTsKKyAgICB2b2lk
IHJlc3VtZSgpOworCisgICAgY29uc3QgS1VSTCYgdXJsKCkgY29uc3Q7CisgICAgY29uc3QgU3Ry
aW5nJiByZWZlcnJlcigpIGNvbnN0OworICAgIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5
KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgUHJlcmVuZGVySGFuZGxlKGNvbnN0IEtVUkwmLCBj
b25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZWZlcnJlclBvbGljeSk7CisgICAgUmVmUHRyPFByZXJl
bmRlcj4gbV9wcmVyZW5kZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNlbmRpZiAvLyBQcmVyZW5kZXJIYW5kbGVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUHJlcmVuZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTMzYThhYTcxYzAzM2VlODIxN2ExN2VhNDQ3MTViNDhhYmZjN2Q3NwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5j
cHAKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBy
ZXJlbmRlci5oIgorCisjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CisjaW5jbHVkZSA8cHVi
bGljL1dlYlByZXJlbmRlci5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXJpbmdTdXBw
b3J0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJlZmVycmVyUG9saWN5Lmg+CisjaW5jbHVkZSA8
cHVibGljL1dlYlN0cmluZy5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJVUkwuaD4KKworI2lmIEVO
QUJMRShMSU5LX1BSRVJFTkRFUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQcmVyZW5kZXI6
OlByZXJlbmRlcihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFJlZmVy
cmVyUG9saWN5IHBvbGljeSkKKyAgICA6IG1fdXJsKHVybCkKKyAgICAsIG1fcmVmZXJyZXIocmVm
ZXJyZXIpCisgICAgLCBtX3JlZmVycmVyUG9saWN5KHBvbGljeSkKKyNpZm5kZWYgTkRFQlVHCisg
ICAgLCBtX3N0YXRlKEluYWN0aXZlKQorI2VuZGlmCit7Cit9CisKK1ByZXJlbmRlcjo6flByZXJl
bmRlcigpCit7Cit9CisKK3ZvaWQgUHJlcmVuZGVyOjpzZXRTdGF0ZShTdGF0ZSBzdGF0ZSkKK3sK
KyNpZmRlZiBOREVCVUcKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUpOworI2Vsc2UKKyAgICBtX3N0
YXRlID0gc3RhdGU7CisjZW5kaWYKK30KKwordm9pZCBQcmVyZW5kZXI6OmFkZCgpCit7CisgICAg
QVNTRVJUKG1fc3RhdGUgPT0gSW5hY3RpdmUpOworICAgIFdlYktpdDo6V2ViUHJlcmVuZGVyaW5n
U3VwcG9ydCogcGxhdGZvcm0gPSBXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1N1cHBvcnQ6OmN1cnJl
bnQoKTsKKyAgICBpZiAoIXBsYXRmb3JtKQorICAgICAgICByZXR1cm47CisgICAgV2ViS2l0OjpX
ZWJQcmVyZW5kZXIgd2ViUHJlcmVuZGVyKHRoaXMpOworICAgIHBsYXRmb3JtLT5hZGQod2ViUHJl
cmVuZGVyKTsKKyAgICBzZXRTdGF0ZShBY3RpdmUpOworfQorCit2b2lkIFByZXJlbmRlcjo6Y2Fu
Y2VsKCkKK3sKKyAgICBBU1NFUlQoV2ViS2l0OjpXZWJQcmVyZW5kZXJpbmdTdXBwb3J0OjpjdXJy
ZW50KCkpOworICAgIFdlYktpdDo6V2ViUHJlcmVuZGVyaW5nU3VwcG9ydCogcGxhdGZvcm0gPSBX
ZWJLaXQ6OldlYlByZXJlbmRlcmluZ1N1cHBvcnQ6OmN1cnJlbnQoKTsKKyAgICBpZiAoIXBsYXRm
b3JtKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gQWN0aXZlKTsKKyAg
ICBXZWJLaXQ6OldlYlByZXJlbmRlciB3ZWJQcmVyZW5kZXIodGhpcyk7CisgICAgcGxhdGZvcm0t
PmNhbmNlbCh3ZWJQcmVyZW5kZXIpOworICAgIHNldFN0YXRlKEluYWN0aXZlKTsKK30KKwordm9p
ZCBQcmVyZW5kZXI6OmFiYW5kb24oKQoreworICAgIFdlYktpdDo6V2ViUHJlcmVuZGVyaW5nU3Vw
cG9ydCogcGxhdGZvcm0gPSBXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1N1cHBvcnQ6OmN1cnJlbnQo
KTsKKyAgICBpZiAoIXBsYXRmb3JtKQorICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IEFz
c2VydCBvbiB0aGUgc3RhdGUgYXMgSW5hY3RpdmUgaGVyZS4gSXQgaXMgY3VycmVudGx5IGNvbW1v
biB0byBjYWxsIGFiYW5kb24oKSBvbiBhbiBJbmFjdGl2ZQorICAgIC8vIHByZXJlbmRlciwgYXMg
dGhlIFByZXJlbmRlcmVyIGRvZXNuJ3Qga2VlcCB0cmFjayBvZiB3aGljaCBwcmVyZW5kZXJzIGFy
ZSBhY3RpdmUsIGFuZCBzbyBhbnkgcGFnZSB0aGF0CisgICAgLy8gZXZlciBoYWQgYSBub3ctY2Fu
Y2VsZWQgUHJlcmVuZGVyIHdpbGwgZ2V0IHRoaXMgYm9ndXMgc3RvcCgpIGNhbGwuCisgICAgV2Vi
S2l0OjpXZWJQcmVyZW5kZXIgd2ViUHJlcmVuZGVyKHRoaXMpOworICAgIHBsYXRmb3JtLT5hYmFu
ZG9uKHdlYlByZXJlbmRlcik7CisgICAgc2V0U3RhdGUoSW5hY3RpdmUpOworfQorCit2b2lkIFBy
ZXJlbmRlcjo6c3VzcGVuZCgpCit7CisgICAgYWJhbmRvbigpOworfQorCit2b2lkIFByZXJlbmRl
cjo6cmVzdW1lKCkKK3sKKyAgICBhZGQoKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKExJ
TktfUFJFUkVOREVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vUHJlcmVuZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5k
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NDY1YjIyY2FiMGFkZWQ2YTg2YjAzYjEyMzYyNzRkOWI5NDU5ZGQ5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUHJl
cmVuZGVyLmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZuZGVmIFByZXJlbmRlcl9oCisjZGVmaW5l
IFByZXJlbmRlcl9oCisKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUmVmZXJyZXJQb2xp
Y3kuaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2ViU2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBFTkFCTEUoTElOS19QUkVS
RU5ERVIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUHJlcmVuZGVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8UHJlcmVuZGVyPiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUHJlcmVu
ZGVyKTsKK3B1YmxpYzoKKyAgICBjbGFzcyBFeHRyYURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxF
eHRyYURhdGE+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfkV4dHJhRGF0YSgpIHsg
fQorICAgIH07CisKKyAgICBQcmVyZW5kZXIoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVm
ZXJyZXIsIFJlZmVycmVyUG9saWN5KTsKKyAgICB+UHJlcmVuZGVyKCk7CisKKyAgICB2b2lkIGFk
ZCgpOworICAgIHZvaWQgY2FuY2VsKCk7CisgICAgdm9pZCBhYmFuZG9uKCk7CisgICAgdm9pZCBz
dXNwZW5kKCk7CisgICAgdm9pZCByZXN1bWUoKTsKKworICAgIGNvbnN0IEtVUkwmIHVybCgpIGNv
bnN0IHsgcmV0dXJuIG1fdXJsOyB9CisgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlcigpIGNvbnN0
IHsgcmV0dXJuIG1fcmVmZXJyZXI7IH0KKyAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGlj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJyZXJQb2xpY3k7IH0KKworICAgIHZvaWQgc2V0RXh0
cmFEYXRhKFBhc3NSZWZQdHI8RXh0cmFEYXRhPiBleHRyYURhdGEpIHsgbV9leHRyYURhdGEgPSBl
eHRyYURhdGE7IH0KKyAgICBFeHRyYURhdGEqIGV4dHJhRGF0YSgpIHsgcmV0dXJuIG1fZXh0cmFE
YXRhLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgZW51bSBTdGF0ZSB7CisgICAgICAgIEluYWN0
aXZlLAorICAgICAgICBBY3RpdmUsCisgICAgfTsKKworICAgIHZvaWQgc2V0U3RhdGUoU3RhdGUp
OworCisgICAgY29uc3QgS1VSTCBtX3VybDsKKyAgICBjb25zdCBTdHJpbmcgbV9yZWZlcnJlcjsK
KyAgICBjb25zdCBSZWZlcnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5OworCisgICAgUmVmUHRy
PEV4dHJhRGF0YT4gbV9leHRyYURhdGE7CisKKyNpZm5kZWYgTkRFQlVHCisgICAgU3RhdGUgbV9z
dGF0ZTsKKyNlbmRpZgorfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKExJTktfUFJFUkVOREVS
KQorCisjZW5kaWYgLy8gUHJlcmVuZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlckhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3Y2VjNzk3OWNk
NzUzZmE0ZDAyZDgyN2Q3MTEzM2UzNTk4OGFlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwCkBAIC0wLDAgKzEs
MTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
KgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVyZW5kZXJIYW5kbGUu
aCIKKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworI2luY2x1ZGUgIktVUkwuaCIKKyNp
bmNsdWRlICJQcmVyZW5kZXIuaCIKKyNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IFByZXJl
bmRlckhhbmRsZTo6Y3JlYXRlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJl
ciwgUmVmZXJyZXJQb2xpY3kgcG9saWN5KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJl
cmVuZGVySGFuZGxlKHVybCwgcmVmZXJyZXIsIHBvbGljeSkpOworfQorCitQcmVyZW5kZXJIYW5k
bGU6OlByZXJlbmRlckhhbmRsZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIFJlZmVycmVyUG9saWN5IHBvbGljeSkKKyAgICA6IG1fcHJlcmVuZGVyKGFkb3B0UmVmKG5l
dyBQcmVyZW5kZXIodXJsLCByZWZlcnJlciwgcG9saWN5KSkpCit7Cit9CisKK1ByZXJlbmRlckhh
bmRsZTo6flByZXJlbmRlckhhbmRsZSgpCit7Cit9CisKK1ByZXJlbmRlciogUHJlcmVuZGVySGFu
ZGxlOjpwcmVyZW5kZXIoKQoreworICAgIHJldHVybiBtX3ByZXJlbmRlci5nZXQoKTsKK30KKwor
dm9pZCBQcmVyZW5kZXJIYW5kbGU6OmFkZCgpCit7CisgICAgcHJlcmVuZGVyKCktPmFkZCgpOwor
fQorCit2b2lkIFByZXJlbmRlckhhbmRsZTo6Y2FuY2VsKCkKK3sKKyAgICBwcmVyZW5kZXIoKS0+
Y2FuY2VsKCk7Cit9CisKK3ZvaWQgUHJlcmVuZGVySGFuZGxlOjphYmFuZG9uKCkKK3sKKyAgICBw
cmVyZW5kZXIoKS0+YWJhbmRvbigpOworfQorCit2b2lkIFByZXJlbmRlckhhbmRsZTo6c3VzcGVu
ZCgpCit7CisgICAgcHJlcmVuZGVyKCktPnN1c3BlbmQoKTsKK30KKwordm9pZCBQcmVyZW5kZXJI
YW5kbGU6OnJlc3VtZSgpCit7CisgICAgcHJlcmVuZGVyKCktPnJlc3VtZSgpOworfQorCitjb25z
dCBLVVJMJiBQcmVyZW5kZXJIYW5kbGU6OnVybCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJl
cmVuZGVyLT51cmwoKTsKK30KKworY29uc3QgU3RyaW5nJiBQcmVyZW5kZXJIYW5kbGU6OnJlZmVy
cmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmVyZW5kZXItPnVybCgpOworfQorCitSZWZl
cnJlclBvbGljeSBQcmVyZW5kZXJIYW5kbGU6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9wcmVyZW5kZXItPnJlZmVycmVyUG9saWN5KCk7Cit9CisKK30KKworI2VuZGlm
IC8vIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
MzI3ZmJkNzA2ZmM0MzA3ZmJjYTJmZmUwZjlmYWI4ODQ0YTA2M2MwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJQcmVyZW5kZXIu
Y3BwCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJQcmVyZW5kZXIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCisjaWYgRU5B
QkxFKExJTktfUFJFUkVOREVSKQorCisjaW5jbHVkZSAiUHJlcmVuZGVyLmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCituYW1lc3BhY2UgeworCitjbGFzcyBFeHRyYURhdGFDb250YWluZXIgOiBw
dWJsaWMgV2ViQ29yZTo6UHJlcmVuZGVyOjpFeHRyYURhdGEgeworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEV4dHJhRGF0YUNvbnRhaW5lcj4gY3JlYXRlKFdlYlByZXJlbmRlcjo6RXh0
cmFEYXRhKiBleHRyYURhdGEpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFeHRyYURhdGFDb250YWlu
ZXIoZXh0cmFEYXRhKSk7IH0KKworICAgIHZpcnR1YWwgfkV4dHJhRGF0YUNvbnRhaW5lcigpIHsg
fQorCisgICAgV2ViUHJlcmVuZGVyOjpFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNvbnN0IHsgcmV0
dXJuIG1fZXh0cmFEYXRhLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgRXh0cmFE
YXRhQ29udGFpbmVyKFdlYlByZXJlbmRlcjo6RXh0cmFEYXRhKiBleHRyYURhdGEpCisgICAgICAg
IDogbV9leHRyYURhdGEoYWRvcHRQdHIoZXh0cmFEYXRhKSkKKyAgICB7CisgICAgfQorCisgICAg
T3duUHRyPFdlYlByZXJlbmRlcjo6RXh0cmFEYXRhPiBtX2V4dHJhRGF0YTsKK307CisKK30gLy8g
YW5vbiBuYW1lc3BhY2UKKworV2ViUHJlcmVuZGVyOjpXZWJQcmVyZW5kZXIoUGFzc1JlZlB0cjxX
ZWJDb3JlOjpQcmVyZW5kZXI+IHByZXJlbmRlcikKKyAgICA6IG1fcHJpdmF0ZShwcmVyZW5kZXIp
Cit7Cit9CisKK1dlYlByZXJlbmRlcjo6fldlYlByZXJlbmRlcigpCit7CisgICAgbV9wcml2YXRl
LnJlc2V0KCk7Cit9CisKK1dlYlVSTCBXZWJQcmVyZW5kZXI6OnVybCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIFdlYlVSTChtX3ByaXZhdGUtPnVybCgpKTsKK30KKworV2ViU3RyaW5nIFdlYlByZXJl
bmRlcjo6cmVmZXJyZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnJlZmVycmVy
KCk7Cit9CisKK1dlYlJlZmVycmVyUG9saWN5IFdlYlByZXJlbmRlcjo6cmVmZXJyZXJQb2xpY3ko
KSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJSZWZlcnJlclBvbGljeT4obV9w
cml2YXRlLT5yZWZlcnJlclBvbGljeSgpKTsKK30KKwordm9pZCBXZWJQcmVyZW5kZXI6OnNldEV4
dHJhRGF0YShXZWJQcmVyZW5kZXI6OkV4dHJhRGF0YSogZXh0cmFEYXRhKQoreworICAgIG1fcHJp
dmF0ZS0+c2V0RXh0cmFEYXRhKEV4dHJhRGF0YUNvbnRhaW5lcjo6Y3JlYXRlKGV4dHJhRGF0YSkp
OworfQorCitjb25zdCBXZWJQcmVyZW5kZXI6OkV4dHJhRGF0YSogV2ViUHJlcmVuZGVyOjpleHRy
YURhdGEoKSBjb25zdAoreworICAgIFJlZlB0cjxXZWJDb3JlOjpQcmVyZW5kZXI6OkV4dHJhRGF0
YT4gd2ViY29yZUV4dHJhRGF0YSA9IG1fcHJpdmF0ZS0+ZXh0cmFEYXRhKCk7CisgICAgaWYgKCF3
ZWJjb3JlRXh0cmFEYXRhKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8RXh0cmFEYXRhQ29udGFpbmVyKj4od2ViY29yZUV4dHJhRGF0YS5nZXQoKSktPmV4dHJhRGF0
YSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRUQoTElO
S19QUkVSRU5ERVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggOTY0YzM1Yzc0YTY3MTZl
MjY0YmFmMTE4Yzc3NzdkYTVlYWYyYjk2NC4uZmRkOWRiMjhhMjk1OWU1ZGJkYWJhNzYyZjNhOWUw
YjRiN2M2MTQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9i
bGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3QuaApAQCAtNDUsNyArNDUsNiBAQCBw
dWJsaWM6CiAgICAgICAgIFRhcmdldElzV29ya2VyLAogICAgICAgICBUYXJnZXRJc1NoYXJlZFdv
cmtlciwKICAgICAgICAgVGFyZ2V0SXNQcmVmZXRjaCwKLSAgICAgICAgVGFyZ2V0SXNQcmVyZW5k
ZXIsCiAgICAgICAgIFRhcmdldElzRmF2aWNvbiwKICAgICAgICAgVGFyZ2V0SXNYSFIsCiAgICAg
ICAgIFRhcmdldElzVGV4dFRyYWNrLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJs
YWNrQmVycnkuY3BwCmluZGV4IDU4NDRmM2RiODIxZWRiNzJkNmMwODA0YTI3NzUxNmRlMzU5YmM0
MzIuLjVjZmZkZTAzOWRkZDNjMDI1M2FmYmEzNTUyODkxNWNiMGYzZWMxOWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVl
c3RCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHAKQEAgLTg2LDggKzg2LDYgQEAg
c3RhdGljIGlubGluZSBOZXR3b3JrUmVxdWVzdDo6VGFyZ2V0VHlwZSBwbGF0Zm9ybVRhcmdldFR5
cGVGb3JSZXF1ZXN0KGNvbnN0IFJlc28KICAgICAgICAgcmV0dXJuIE5ldHdvcmtSZXF1ZXN0OjpU
YXJnZXRJc0ltYWdlOwogICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1ByZWZldGNo
OgogICAgICAgICByZXR1cm4gTmV0d29ya1JlcXVlc3Q6OlRhcmdldElzU3VicmVzb3VyY2U7Ci0g
ICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzUHJlcmVuZGVyOgotICAgICAgICByZXR1
cm4gTmV0d29ya1JlcXVlc3Q6OlRhcmdldElzU3VicmVzb3VyY2U7CiAgICAgY2FzZSBSZXNvdXJj
ZVJlcXVlc3Q6OlRhcmdldElzWEhSOgogICAgICAgICByZXR1cm4gTmV0d29ya1JlcXVlc3Q6OlRh
cmdldElzU3VicmVzb3VyY2U7CiAgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzVGV4
dFRyYWNrOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJv
bWl1bS9SZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggZmNlMWViZmQwNzIzOTk0NDM0MTk2MzNk
ZDFkNzEwOWVlODcyMzQzMi4uN2VhNjFhODg4YmM5ZmI4YWViYjI0MTNiODQxYjNjYzM2ZTI2NWNl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9S
ZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2No
cm9taXVtL1Jlc291cmNlUmVxdWVzdC5oCkBAIC01Myw3ICs1Myw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgICAgIFRhcmdldElzV29ya2VyLAogICAgICAgICAgICAgVGFyZ2V0SXNT
aGFyZWRXb3JrZXIsCiAgICAgICAgICAgICBUYXJnZXRJc1ByZWZldGNoLAotICAgICAgICAgICAg
VGFyZ2V0SXNQcmVyZW5kZXIsCiAgICAgICAgICAgICBUYXJnZXRJc0Zhdmljb24sCiAgICAgICAg
ICAgICBUYXJnZXRJc1hIUiwKICAgICAgICAgICAgIFRhcmdldElzVGV4dFRyYWNrLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGZkZGQ2OGQ0OTBhOTRlMTdkOWRhYTRjM2Y4ZDkwYmJh
MWQyNTI5Y2UuLmM3N2FlZDk3MzBhODc0NTA2NTJkNGU5YmZiNzU3Y2Y4YmM2N2Y4ZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTQzMSw2ICs0MzEsOCBAQAogICAgICAgICAgICAg
ICAgICdzcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmgnLAogICAgICAgICAgICAgICAg
ICdzcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9QcmVy
ZW5kZXJlckNsaWVudEltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9QcmVyZW5kZXJlckNs
aWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL2FuZHJvaWQvV2ViSW5wdXRFdmVu
dEZhY3RvcnkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL2xpbnV4L1dlYkZvbnRJbmZvLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9saW51eC9XZWJGb250UmVuZGVyaW5nLmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggMTExZWNjNjQxODIxMjNi
M2ViM2I5OTdjZGI2NTZmYmZlYjBhN2U1Ny4uYzFhMjljZWQ5OThlZDAzMmRlMTg4MmIwNWI2ODE1
MzA5NDE1OWQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAt
MTA3LDkgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXV0b2ZpbGxDbGll
bnQoV2ViQXV0b2ZpbGxDbGllbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERldlRvb2xz
QWdlbnRDbGllbnQoV2ViRGV2VG9vbHNBZ2VudENsaWVudCopID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNzaW9uQ2xpZW50KikgPSAwOwotICAgIC8v
IEZJWE1FOiBBZnRlciB0aGUgUHJlcmVuZGVyaW5nIEFQSSBsYW5kcyBpbiBjaHJvbWUsIHJlbW92
ZSB0aGlzIHN0YWdpbmcgdGh1bmsKLSAgICAvLyBmb3Igc2V0UHJlcmVuZGVyZXJDbGllbnQoKS4K
LSAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlcmVuZGVyZXJDbGllbnQoV2ViUHJlcmVuZGVyZXJDbGll
bnQqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlcmVuZGVyZXJDbGllbnQoV2ViUHJlcmVu
ZGVyZXJDbGllbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNwZWxsQ2hlY2tDbGllbnQo
V2ViU3BlbGxDaGVja0NsaWVudCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkVGV4dEZpZWxk
RGVjb3JhdG9yQ2xpZW50KFdlYlRleHRGaWVsZERlY29yYXRvckNsaWVudCopID0gMDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUHJlcmVuZGVyZXJDbGllbnRJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRlcmVyQ2xpZW50SW1wbC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDY1MWQyNzlkZTg0NTFhOGJiYTFkYjU0ODY0NWY5ZGM2ZDA2NjMyNwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRlcmVy
Q2xpZW50SW1wbC5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUHJlcmVuZGVyZXJDbGllbnRJbXBsLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUHJlcmVuZGVyLmgiCisjaW5jbHVkZSAi
UHJlcmVuZGVySGFuZGxlLmgiCisjaW5jbHVkZSAiV2ViUHJlcmVuZGVyZXJDbGllbnQuaCIKKyNp
bmNsdWRlICJXZWJWaWV3SW1wbC5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXIuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUHJl
cmVuZGVyZXJDbGllbnRJbXBsOjpQcmVyZW5kZXJlckNsaWVudEltcGwoV2ViUHJlcmVuZGVyZXJD
bGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKK3sKK30KKwordm9pZCBQcmVy
ZW5kZXJlckNsaWVudEltcGw6OndpbGxBZGRQcmVyZW5kZXIoV2ViQ29yZTo6UHJlcmVuZGVySGFu
ZGxlKiBwcmVyZW5kZXJIYW5kbGUpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0
dXJuOworICAgIFdlYlByZXJlbmRlciB3ZWJQcmVyZW5kZXIocHJlcmVuZGVySGFuZGxlLT5wcmVy
ZW5kZXIoKSk7CisgICAgbV9jbGllbnQtPndpbGxBZGRQcmVyZW5kZXIoJndlYlByZXJlbmRlcik7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRl
cmVyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUHJlcmVuZGVyZXJD
bGllbnRJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODUxNzYzMmFlYTQ1Y2NmNmE1ZTM2MGNlZWMxOGQ0Y2Q1
MzkzMTI1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1By
ZXJlbmRlcmVyQ2xpZW50SW1wbC5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lmbmRlZiBQcmVyZW5k
ZXJlckNsaWVudEltcGxfaAorI2RlZmluZSBQcmVyZW5kZXJlckNsaWVudEltcGxfaAorCisjaW5j
bHVkZSAiUHJlcmVuZGVyZXJDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBQcmVyZW5kZXJIYW5kbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQ
cmVyZW5kZXJlckNsaWVudDsKKworY2xhc3MgUHJlcmVuZGVyZXJDbGllbnRJbXBsIDogcHVibGlj
IFdlYkNvcmU6OlByZXJlbmRlcmVyQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQ
cmVyZW5kZXJlckNsaWVudEltcGwpOworcHVibGljOgorICAgIGV4cGxpY2l0IFByZXJlbmRlcmVy
Q2xpZW50SW1wbChXZWJQcmVyZW5kZXJlckNsaWVudCopOworCisgICAgdm9pZCB3aWxsQWRkUHJl
cmVuZGVyKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZSopIE9WRVJSSURFOworCitwcml2YXRlOgor
ICAgIFdlYlByZXJlbmRlcmVyQ2xpZW50KiBtX2NsaWVudDsKK307CisKK30KKworI2VuZGlmIC8v
IFByZXJlbmRlcmVyQ2xpZW50SW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJLaXQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNw
cAppbmRleCBkYTU0Y2NhNTAxZTk5Mzc5ZTM0NGU1Y2E1ZWRlOGRkNTViMGJiNGMzLi5lZTk5OWE5
MTYxNmRiMDkwMjY0ZTE5NmIzM2RlMTZkZjFhY2JhN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJLaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYktpdC5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJU
aHJlYWQuaCIKICNpbmNsdWRlICJ2OC5oIgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgor
I2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXJpbmdTdXBwb3J0Lmg+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRpbmcuaD4KQEAgLTE2Myw2ICsxNjQsNyBAQCB2b2lkIHNodXRkb3duKCkKICNlbmRp
ZgogICAgIHNfd2ViS2l0UGxhdGZvcm1TdXBwb3J0ID0gMDsKICAgICBQbGF0Zm9ybTo6c2h1dGRv
d24oKTsKKyAgICBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0OjpzaHV0ZG93bigpOwogfQogCiBXZWJL
aXRQbGF0Zm9ybVN1cHBvcnQqIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYjIyMjk0MzlkYzA1YTQ2NTRkZTk3
YjllOWE2YTM0ZmMyMjEwY2NmZS4uYTc3NDdlMWYzNmI4NGFhMjZhYjgxMzM4M2IzMDU0OWY2M2Ew
NzRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAt
OTksNiArOTksNyBAQAogI2luY2x1ZGUgIlBvaW50ZXJMb2NrQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIlBvcHVwQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5j
bHVkZSAiUHJlcmVuZGVyZXJDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2Vy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVy
Vmlldy5oIgpAQCAtMzIxLDYgKzMyMiwxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQZXJtaXNz
aW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGllbnQqIHBlcm1pc3Npb25DbGllbnQpCiAgICAgbV9w
ZXJtaXNzaW9uQ2xpZW50ID0gcGVybWlzc2lvbkNsaWVudDsKIH0KIAordm9pZCBXZWJWaWV3SW1w
bDo6c2V0UHJlcmVuZGVyZXJDbGllbnQoV2ViUHJlcmVuZGVyZXJDbGllbnQqIHByZXJlbmRlcmVy
Q2xpZW50KQoreworICAgIHByb3ZpZGVQcmVyZW5kZXJlckNsaWVudFRvKG1fcGFnZS5nZXQoKSwg
bmV3IFByZXJlbmRlcmVyQ2xpZW50SW1wbChwcmVyZW5kZXJlckNsaWVudCkpOworfQorCiB2b2lk
IFdlYlZpZXdJbXBsOjpzZXRTcGVsbENoZWNrQ2xpZW50KFdlYlNwZWxsQ2hlY2tDbGllbnQqIHNw
ZWxsQ2hlY2tDbGllbnQpCiB7CiAgICAgbV9zcGVsbENoZWNrQ2xpZW50ID0gc3BlbGxDaGVja0Ns
aWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDliNDRm
YjY4ZDNiZDBlN2VmMzQxODMzZTllZGE0N2U0ZmRjYTM5ZjUuLmNmZGIyMzNhNWM3OTcyNzQwMDMy
MDlhNTJhOWExMzg4OWJkMzZlZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuaApAQCAtOTEsNiArOTEsNyBAQCBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFBy
b3h5OwogY2xhc3MgRHJhZ1Njcm9sbFRpbWVyOwogY2xhc3MgR2VvbG9jYXRpb25DbGllbnRQcm94
eTsKIGNsYXNzIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDsKK2NsYXNzIFByZXJlbmRlcmVyQ2xp
ZW50SW1wbDsKIGNsYXNzIFNwZWVjaElucHV0Q2xpZW50SW1wbDsKIGNsYXNzIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50UHJveHk7CiBjbGFzcyBVc2VyTWVkaWFDbGllbnRJbXBsOwpAQCAtMTAxLDYg
KzEwMiw3IEBAIGNsYXNzIFdlYkRldlRvb2xzQWdlbnRQcml2YXRlOwogY2xhc3MgV2ViRnJhbWVJ
bXBsOwogY2xhc3MgV2ViR2VzdHVyZUV2ZW50OwogY2xhc3MgV2ViUGFnZVBvcHVwSW1wbDsKK2Ns
YXNzIFdlYlByZXJlbmRlcmVyQ2xpZW50OwogY2xhc3MgV2ViSW1hZ2U7CiBjbGFzcyBXZWJLZXli
b2FyZEV2ZW50OwogY2xhc3MgV2ViTW91c2VFdmVudDsKQEAgLTE2MSw2ICsxNjMsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEF1dG9maWxsQ2xpZW50KFdlYkF1dG9maWxsQ2xpZW50
Kik7CiAgICAgdmlydHVhbCB2b2lkIHNldERldlRvb2xzQWdlbnRDbGllbnQoV2ViRGV2VG9vbHNB
Z2VudENsaWVudCopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBl
cm1pc3Npb25DbGllbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlcmVuZGVyZXJDbGllbnQo
V2ViUHJlcmVuZGVyZXJDbGllbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3Bl
bGxDaGVja0NsaWVudChXZWJTcGVsbENoZWNrQ2xpZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIGFk
ZFRleHRGaWVsZERlY29yYXRvckNsaWVudChXZWJUZXh0RmllbGREZWNvcmF0b3JDbGllbnQqKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIFdlYlNldHRpbmdzKiBzZXR0aW5ncygpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY4
MTVhMTM5NDQ0MGIzZDlkMmVmMWFmNTBhYTAwZjAyMDU3NDRiOWEuLjA0Y2ExZDEyNmRkYjdmNmY2
MDk1ZDVhMzJkODkyYmVjZmRkNjMxMGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wNS0x
NCAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgUHJl
cmVuZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZhY2UgZm9yIFBy
ZXJlbmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBU
aGUgcHJlcmVuZGVyIGNhc2UgaXNuJ3QgcXVpdGUgYSByZXNvdXJjZSBsb2FkLCBhbmQgdXNpbmcg
cmVzb3VyY2UgbG9hZGluZyB0bworICAgICAgICByZXRyaWV2ZSB0aGVtIGhhcyBjb25zdHJhaW5l
ZCB0aGUgQVBJLCBhbmQgdW5uZWNlc3NhcmlseSBjb21wbGljYXRlZCB0aGUgbG9hZGVyLgorCisg
ICAgICAgIFRoZSBuZXcgUHJlcmVuZGVyZXIgYW5kIFByZXJlbmRlckhhbmRsZSBsZXQgPGxpbmsg
cmVsPXByZXJlbmRlci4uLj4gZWxlbWVudHMgc2lnbmFsCisgICAgICAgIHJlbW92YWwgYW5kIHVu
bG9hZCB0byB0aGVpciBwbGF0Zm9ybS4KKworICAgICAgICBUaGVzZSB0ZXN0cyBhcmUgYmVpbmcg
cmVtb3ZlZCwgYW5kIGV4cGVjdGF0aW9ucyB1cGRhdGVkLCBiZWNhdXNlIHRoZSBvbGQgcGhhbnRv
bS1sb2FkCisgICAgICAgIHByZXJlbmRlcmluZyBpbnRlcmZhY2Ugd2FzIHN1c2NlcHRpYmxlIHRv
IGxheW91dCB0ZXN0aW5nLCBhbmQgdGhlIG5ldyBpbnRlcmZhY2UgcmVxdWlyZXMKKyAgICAgICAg
YSBmdWxsIHBsYXRmb3JtIHRvIHRlc3QsIHNvIGl0IGNhbid0IHJlYWxseSBiZSBhIGxheW91dCB0
ZXN0LgorCisgICAgICAgICogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3By
ZXJlbmRlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay90ZXN0X2V4cGVj
dGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkOgorCiAyMDEyLTA1LTExICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBhIENocm9taXVtIHRl
c3QgZXhwZWN0YXRpb24gbm93IHRoYXQgdGhlIHJlZ3Jlc3Npb24gaXMgZml4ZWQgaW4gcjExNjgx
NC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVy
ZW5kZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50
L3ByZXJlbmRlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2
NWJmZTI2NDUyMDRkMTMyNTdlY2QyNDYyOTVjMGE5NGQ3MWNjZWQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExp
bmtFbGVtZW50L3ByZXJlbmRlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLXByZWZldGNoLmxpbmsgaGFzIE1JTUUgdHlwZSBhcHBsaWNhdGlvbi9vY3RldC1zdHJl
YW0KLVBBU1Mgb25sb2FkIGNhbGxlZCEKLVRoaXMgdGVzdCB3aWxsIG9ubHkgcHJpbnQgIlBBU1Mi
IG9yICJGQUlMIiBpZiBsaW5rIHByZWZldGNoZXMgYXJlIGVuYWJsZWQsIG90aGVyd2lzZSBpdCB3
aWxsIHNob3cgbm90aGluZyBiZWxvdy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNjk3OGY0MmNlZWM2Mzc1M2QwNjdjMjRiMjhhZWQ3M2ZlYzYzNGM2Ni4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCww
IEBACi08Ym9keT4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rp
b24gcHJlZmV0Y2hfb25sb2FkKCkgewotICAgIHRlc3RQYXNzZWQoJ29ubG9hZCBjYWxsZWQhJyk7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotfQotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKTsKLX0KLTwv
c2NyaXB0PgotPGh0bWw+Ci08cD5UaGlzIHRlc3Qgd2lsbCBvbmx5IHByaW50ICJQQVNTIiBvciAi
RkFJTCIgaWYgbGluayBwcmVmZXRjaGVzIGFyZQotZW5hYmxlZCwgb3RoZXJ3aXNlIGl0IHdpbGwg
c2hvdyBub3RoaW5nIGJlbG93LjwvcD4KLTxsaW5rIGhyZWY9InByZWZldGNoLmxpbmsiIHJlbD0i
cHJlcmVuZGVyIiBvbmxvYWQ9InByZWZldGNoX29ubG9hZCgpIiBvbmVycm9yPSJ0ZXN0RmFpbGVk
KCdvbmVycm9yJykiIC8+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
dGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDljNDFlZDk3NzRjMTFlNzViZDJmNWNlM2Q3OWVk
NzQ1YjM2NjlmNDAuLmRlN2ExNTU2ZjY0NzIwMzYyNWI2MDEwMTVlNzY5OGRiNDlhZWJhZmIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAt
ODM3LDcgKzgzNyw2IEBAIEJVR1dLR1RLIDogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZl
dGNoLmh0bWwgPSBGQUlMCiBCVUdXS0dUSyA6IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVm
ZXRjaC1iZWZvcmVsb2FkLmh0bWwgPSBGQUlMCiBCVUdXS0dUSyA6IGZhc3QvZG9tL0hUTUxMaW5r
RWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0bWwgPSBGQUlMCiBCVUdXS0dUSyA6IGZhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmxvYWQuaHRtbCA9IEZBSUwKLUJVR1dLR1RLIDog
ZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci5odG1sID0gRkFJTAogQlVHV0tHVEsg
OiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc3VicmVzb3VyY2UuaHRtbCA9IEZBSUwKIAogLy8g
VGVzdHMgZmFpbGluZyBiZWNhdXNlIHRoZSBjb250ZXh0IG1lbnUgaXMgZ3JhYmJpbmcgbW91c2Ug
ZXZlbnRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCA2NTM2NDY1ZjBlNmY3NDk1MThi
NzRiMWI3ZjVhNGNiMzJlNmE0NTY3Li5mNzc0ODhjNTMyMDEzYTAxZWJjOWVjMTY5YjMxNGNmMjY4
NWEwYmY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTkzLDcgKzE5Myw2IEBAIGZh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKIGZhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5r
RWxlbWVudC9wcmVmZXRjaC1vbmxvYWQuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3By
ZWZldGNoLXRvby1tYW55LWNsaWVudHMuaHRtbAotZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3By
ZXJlbmRlci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc3VicmVzb3VyY2UuaHRtbAog
aHR0cC90ZXN0cy9taXNjL2xpbmstcmVsLXByZWZldGNoLWFuZC1zdWJyZXNvdXJjZS5odG1sCiBo
dHRwL3Rlc3RzL21pc2MvcHJlZmV0Y2gtcHVycG9zZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBl
ZAppbmRleCAzZTBhZTUzYjdiNDE4ZTJjOTFiNGUwYjVlOGQ5ZTY2OWY0MGVlNmNiLi4wOGI1NzJk
MmY2NzgwMGM0MDAwNDM5Njg0ZDM5YzMxYjg5ZTAxMzIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQKQEAgLTE0NCw3ICsxNDQsNiBAQCBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gt
YmVmb3JlbG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJv
ci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwKIGZh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC10b28tbWFueS1jbGllbnRzLmh0bWwKLWZh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbAogZmFzdC9kb20vSFRNTExpbmtF
bGVtZW50L3N1YnJlc291cmNlLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1wcmVmZXRj
aC1hbmQtc3VicmVzb3VyY2UuaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2Uu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA5M2EwNjEyYTNiMDg0Zjg5MzNkMzdh
MDZkMDFmZDFlNDc4NmM4MmQ0Li4wY2FlNDRmMTNjNDkyNGUyNzgxMzk2ZWFkYTU4YTRkZWY0NWUy
ZTZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTA5Nyw3ICsxMDk3LDYgQEAgZmFz
dC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1l
bnQvcHJlZmV0Y2gtdG9vLW1hbnktY2xpZW50cy5odG1sCiBodHRwL3Rlc3RzL21pc2MvbGluay1y
ZWwtcHJlZmV0Y2gtYW5kLXN1YnJlc291cmNlLmh0bWwKLWZhc3QvZG9tL0hUTUxMaW5rRWxlbWVu
dC9wcmVyZW5kZXIuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3N1YnJlc291cmNlLmh0
bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbmNhaXJvL1NraXBwZWQKaW5kZXggOTgzYzNiNTI5NjkzMDJjMmE2MGI5ZDRiYmYxOGMy
MjVlN2E4NmY0MS4uY2JmODg4NTVjZGQ5NDMzMGY3MDU0MTliMWU2MzY4YzMyZmQ5OWZlZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCkBAIC0xNjEyLDcgKzE2MTIsNiBAQCBm
YXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9I
VE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxl
bWVudC9wcmVmZXRjaC10b28tbWFueS1jbGllbnRzLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9saW5r
LXJlbC1wcmVmZXRjaC1hbmQtc3VicmVzb3VyY2UuaHRtbAotZmFzdC9kb20vSFRNTExpbmtFbGVt
ZW50L3ByZXJlbmRlci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc3VicmVzb3VyY2Uu
aHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2UuaHRtbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145797</attachid>
            <date>2012-06-05 08:00:31 -0700</date>
            <delta_ts>2012-06-05 11:54:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85766-20120605105942.patch</filename>
            <type>text/plain</type>
            <size>17408</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5NDg2KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA2LTA1ICBNYXJr
IFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1v
dmUgY3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlIHRvIFBsYXRmb3JtLmgKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzY2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFydCBvZiBhIHJlZmFjdG9yaW5n
IHNlcmllcy4gU2VlIHRyYWNraW5nIGJ1ZyA4Mjk0OC4KKyAgICAgICAgCisgICAgICAgICogUGxh
dGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaDoKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChQbGF0Zm9ybSk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRm
b3JtOjpjcmVhdGVMb2NhbFN0b3JhZ2VOYW1lc3BhY2UpOgorICAgICAgICAqIGNocm9taXVtL3B1
YmxpYy9XZWJTdG9yYWdlQXJlYS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJTdG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VBcmVhOjp+V2Vi
U3RvcmFnZUFyZWEpOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQXJlYTo6c2V0SXRlbSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VBcmVhOjpyZW1vdmVJdGVtKToKKyAgICAgICAg
KFdlYktpdDo6V2ViU3RvcmFnZUFyZWE6OmNsZWFyKToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJs
aWMvV2ViU3RvcmFnZU5hbWVzcGFjZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJTdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3RvcmFnZU5h
bWVzcGFjZTo6fldlYlN0b3JhZ2VOYW1lc3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9y
YWdlTmFtZXNwYWNlOjppc1NhbWVOYW1lc3BhY2UpOgorCiAyMDEyLTA2LTAxICBBbGV4YW5kcmUg
RWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIFNvZnR3YXJl
IGNvbXBvc2l0b3IgaW5pdGlhbGl6YXRpb24gYW5kIGJhc2UgY2xhc3NlcwpJbmRleDogU291cmNl
L1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1BsYXRmb3JtL1Bs
YXRmb3JtLmd5cGkJKHJldmlzaW9uIDExOTQ4NikKKysrIFNvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9y
bS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC05Niw2ICs5Niw4IEBACiAgICAgICAgICAgICAnY2hy
b21pdW0vcHVibGljL1dlYlNvY2tldFN0cmVhbUhhbmRsZS5oJywKICAgICAgICAgICAgICdjaHJv
bWl1bS9wdWJsaWMvV2ViU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmgnLAogICAgICAgICAgICAg
J2Nocm9taXVtL3B1YmxpYy9XZWJTb2xpZENvbG9yTGF5ZXIuaCcsCisgICAgICAgICAgICAnY2hy
b21pdW0vcHVibGljL1dlYlN0b3JhZ2VBcmVhLmgnLAorICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9XZWJTdG9yYWdlTmFtZXNwYWNlLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1Ymxp
Yy9XZWJTdHJpbmcuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlRocmVhZC5o
JywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVGhyZWFkU2FmZURhdGEuaCcsCklu
ZGV4OiBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCShyZXZpc2lv
biAxMTk0ODYpCisrKyBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDcgQEAgY2xhc3MgV2ViVVJMOwogY2xhc3MgV2Vi
VVJMTG9hZGVyOwogY2xhc3MgV2ViU2FuZGJveFN1cHBvcnQ7CiBjbGFzcyBXZWJTb2NrZXRTdHJl
YW1IYW5kbGU7CitjbGFzcyBXZWJTdG9yYWdlTmFtZXNwYWNlOwogY2xhc3MgV2ViVGhlbWVFbmdp
bmU7CiBjbGFzcyBXZWJUaHJlYWQ7CiBjbGFzcyBXZWJXb3JrZXJSdW5Mb29wOwpAQCAtMTAxLDYg
KzEwMiwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJCbG9iUmVnaXN0cnkqIGJsb2JSZWdp
c3RyeSgpIHsgcmV0dXJuIDA7IH0KIAogCisgICAgLy8gRE9NIFN0b3JhZ2UgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFJldHVybiBh
IExvY2FsU3RvcmFnZSBuYW1lc3BhY2UgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgZm9sbG93aW5n
IHBhdGguCisgICAgdmlydHVhbCBXZWJTdG9yYWdlTmFtZXNwYWNlKiBjcmVhdGVMb2NhbFN0b3Jh
Z2VOYW1lc3BhY2UoY29uc3QgV2ViU3RyaW5nJiBwYXRoLCB1bnNpZ25lZCBxdW90YSkgeyByZXR1
cm4gMDsgfQorCisKICAgICAvLyBGaWxlU3lzdGVtIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIC8vIE11c3QgcmV0dXJuIG5v
bi1udWxsLgpAQCAtMzQ3LDcgKzM1NCw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIHZhbHVlIG11
c3QgYmUgY2hlY2tlZCBhZ2FpbiBhZnRlciBhIGNvbnRleHQgbG9zcyBldmVudCBhcyB0aGUgcGxh
dGZvcm0ncyBjYXBhYmlsaXRpZXMgbWF5IGhhdmUgY2hhbmdlZC4KICAgICB2aXJ0dWFsIGJvb2wg
Y2FuQWNjZWxlcmF0ZTJkQ2FudmFzKCkgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIAorCiAgICAg
Ly8gV2ViUlRDIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAogICAgIC8vIERFUFJFQ0FURUQKSW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZUFyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VBcmVhLmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VBcmVhLmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlN0b3JhZ2VBcmVhX2gKKyNkZWZpbmUgV2Vi
U3RvcmFnZUFyZWFfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViU3Ry
aW5nLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJVUkw7CisKK2NsYXNzIFdl
YlN0b3JhZ2VBcmVhIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJTdG9yYWdlQXJlYSgpIHsg
fQorCisgICAgZW51bSBSZXN1bHQgeworICAgICAgICBSZXN1bHRPSyA9IDAsCisgICAgICAgIFJl
c3VsdEJsb2NrZWRCeVF1b3RhCisgICAgfTsKKworICAgIC8vIFRoZSBudW1iZXIgb2Yga2V5L3Zh
bHVlIHBhaXJzIGluIHRoZSBzdG9yYWdlIGFyZWEuCisgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5n
dGgoKSA9IDA7CisKKyAgICAvLyBHZXQgYSB2YWx1ZSBmb3IgYSBzcGVjaWZpYyBrZXkuIFZhbGlk
IGtleSBpbmRpY2VzIGFyZSAwIHRocm91Z2ggbGVuZ3RoKCkgLSAxLgorICAgIC8vIEluZGV4ZXMg
bWF5IGNoYW5nZSBvbiBhbnkgc2V0L3JlbW92ZUl0ZW0gY2FsbC4gV2lsbCByZXR1cm4gbnVsbCBp
ZiB0aGUgaW5kZXgKKyAgICAvLyBwcm92aWRlZCBpcyBvdXQgb2YgcmFuZ2UuCisgICAgdmlydHVh
bCBXZWJTdHJpbmcga2V5KHVuc2lnbmVkIGluZGV4KSA9IDA7CisKKyAgICAvLyBHZXQgdGhlIHZh
bHVlIHRoYXQgY29ycmVzcG9uZHMgdG8gYSBzcGVjaWZpYyBrZXkuIFRoaXMgcmV0dXJucyBudWxs
IGlmIHRoZXJlIGlzCisgICAgLy8gbm8gZW50cnkgZm9yIHRoYXQga2V5LgorICAgIHZpcnR1YWwg
V2ViU3RyaW5nIGdldEl0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXkpID0gMDsKKworICAgIC8vIFNl
dCB0aGUgdmFsdWUgdGhhdCBjb3JyZXNwb25kcyB0byBhIHNwZWNpZmljIGtleS4gUmVzdWx0IHdp
bGwgZWl0aGVyIGJlIFJlc3VsdE9LCisgICAgLy8gb3Igc29tZSBwYXJ0aWN1bGFyIGVycm9yLiBU
aGUgdmFsdWUgaXMgTk9UIHNldCB3aGVuIHRoZXJlJ3MgYW4gZXJyb3IuIHxwYWdlVXJsfCBpcyB0
aGUKKyAgICAvLyB1cmwgdGhhdCBzaG91bGQgYmUgdXNlZCBpZiBhIHN0b3JhZ2UgZXZlbnQgZmly
ZXMuCisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0
IFdlYlN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFdlYlVSTCYgcGFnZVVybCwgUmVzdWx0JiByZXN1
bHQpCisgICAgeworICAgICAgICBXZWJTdHJpbmcgdW51c2VkOworICAgICAgICBzZXRJdGVtKGtl
eSwgbmV3VmFsdWUsIHBhZ2VVcmwsIHJlc3VsdCwgdW51c2VkKTsKKyAgICB9CisKKworICAgIC8v
IFJlbW92ZSB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEgcGFydGljdWxhciBrZXkuIHxwYWdl
VXJsfCBpcyB0aGUgdXJsIHRoYXQgc2hvdWxkIGJlIHVzZWQKKyAgICAvLyBpZiBhIHN0b3JhZ2Ug
ZXZlbnQgZmlyZXMuCisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUl0ZW0oY29uc3QgV2ViU3RyaW5n
JiBrZXksIGNvbnN0IFdlYlVSTCYgcGFnZVVybCkKKyAgICB7CisgICAgICAgIFdlYlN0cmluZyB1
bnVzZWQ7CisgICAgICAgIHJlbW92ZUl0ZW0oa2V5LCBwYWdlVXJsLCB1bnVzZWQpOworICAgIH0K
KworICAgIC8vIENsZWFyIGFsbCBrZXkvdmFsdWUgcGFpcnMuIHxwYWdlVXJsfCBpcyB0aGUgdXJs
IHRoYXQgc2hvdWxkIGJlIHVzZWQgaWYgYSBzdG9yYWdlIGV2ZW50IGZpcmVzLgorICAgIHZpcnR1
YWwgdm9pZCBjbGVhcihjb25zdCBXZWJVUkwmIHBhZ2VVcmwpCisgICAgeworICAgICAgICBib29s
IHVudXNlZDsKKyAgICAgICAgY2xlYXIocGFnZVVybCwgdW51c2VkKTsKKyAgICB9CisKKyAgICAv
LyBERVBSRUNBVEVEIC0gYmVpbmcgcmVwbGFjZWQgYnkgdGhlIGFzeW5jIHZhcmlhbnRzIGFib3Zl
IHdoaWNoIGRvIG5vdCByZXR1cm4gb2xkVmFsdWVzIG9yIGJsb2NrIHVudGlsIGNvbXBsZXRpb24u
CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdl
YlN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFdlYlVSTCYsIFJlc3VsdCYsIFdlYlN0cmluZyYgb2xk
VmFsdWUpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJdGVtKGNvbnN0IFdlYlN0cmluZyYg
a2V5LCBjb25zdCBXZWJVUkwmIHBhZ2VVcmwsIFdlYlN0cmluZyYgb2xkVmFsdWUpICB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXIoY29uc3QgV2ViVVJMJiBwYWdlVXJsLCBib29sJiBzb21ldGhp
bmdDbGVhcmVkKSAgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IFdlYlN0b3JhZ2VBcmVhX2gKSW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViU3RvcmFnZU5hbWVzcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViU3RvcmFnZU5hbWVzcGFjZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlTmFtZXNwYWNlLmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlN0b3JhZ2VOYW1lc3BhY2VfaAorI2RlZmlu
ZSBXZWJTdG9yYWdlTmFtZXNwYWNlX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU3RvcmFnZUFyZWE7CitjbGFzcyBXZWJTdHJpbmc7
CisKKy8vIFdlYlN0b3JhZ2VOYW1lc3BhY2UgcmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgU3Rv
cmFnZUFyZWFzLiBUeXBpY2FsbHksIHlvdSdsbCBoYXZlCisvLyBtdWx0aXBsZSBTdG9yYWdlTmFt
ZXNwYWNlcyB0byByZXByZXNlbnQgdGhlIFNlc3Npb25TdG9yYWdlIGZvciBlYWNoIHRhYiBhbmQg
YSBzaW5nbGUKKy8vIFN0b3JhZ2VOYW1lc3BhY2UgdG8gcmVwcmVzZW50IExvY2FsU3RvcmFnZSBm
b3IgdGhlIGVudGlyZSBicm93c2VyLgorY2xhc3MgV2ViU3RvcmFnZU5hbWVzcGFjZSB7CitwdWJs
aWM6CisgICAgdmlydHVhbCB+V2ViU3RvcmFnZU5hbWVzcGFjZSgpIHsgfQorCisgICAgLy8gQ3Jl
YXRlIGEgbmV3IFdlYlN0b3JhZ2VBcmVhIG9iamVjdC4gVHdvIHN1YnNlcXVlbnQgY2FsbHMgd2l0
aCB0aGUgc2FtZSBvcmlnaW4KKyAgICAvLyB3aWxsIHJldHVybiB0d28gZGlmZmVyZW50IFdlYlN0
b3JhZ2VBcmVhIG9iamVjdHMgdGhhdCBzaGFyZSB0aGUgc2FtZSBiYWNraW5nIHN0b3JlLgorICAg
IC8vIFlvdSBzaG91bGQgY2FsbCBkZWxldGUgb24gdGhlIHJldHVybmVkIG9iamVjdCB3aGVuIHlv
dSdyZSBmaW5pc2hlZC4KKyAgICB2aXJ0dWFsIFdlYlN0b3JhZ2VBcmVhKiBjcmVhdGVTdG9yYWdl
QXJlYShjb25zdCBXZWJTdHJpbmcmIG9yaWdpbikgPSAwOworCisgICAgLy8gQ29weSBhIFN0b3Jh
Z2VOYW1lc3BhY2UuIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpbiB0aGUgY2FzZSBvZiBTZXNzaW9u
U3RvcmFnZS4KKyAgICB2aXJ0dWFsIFdlYlN0b3JhZ2VOYW1lc3BhY2UqIGNvcHkoKSA9IDA7CisK
KyAgICAvLyBSZXR1cm5zIHRydWUgb2YgdGhlIHR3byBpbnN0YW5jZXMgcmVwcmVzZW50IHRoZSBz
YW1lIHN0b3JhZ2UgbmFtZXNwYWNlLgorICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVOYW1lc3BhY2Uo
Y29uc3QgV2ViU3RvcmFnZU5hbWVzcGFjZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlN0b3JhZ2VOYW1lc3BhY2Vf
aApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExOTQ4NikKKysrIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTItMDYtMDUgIE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtDaHJvbWl1bV0gTW92ZSBjcmVhdGVMb2NhbFN0b3JhZ2VOYW1lc3BhY2UgdG8g
UGxhdGZvcm0uaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODU3NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAg
CisgICAgICAgIFBhcnQgb2YgYSByZWZhY3RvcmluZyBzZXJpZXMuIFNlZSB0cmFja2luZyBidWcg
ODI5NDguCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJTdG9y
YWdlQXJlYS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJTdG9yYWdlTmFtZXNwYWNlLmg6CisgICAg
ICAgICogcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYktpdFBsYXRmb3JtU3VwcG9ydCk6CisKIDIwMTItMDYtMDUg
IERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBBZGQgJ2lzUHJvdG9j
b2xIYW5kbGVyUmVnaXN0ZXJlZCcgYW5kICd1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyJy4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHJldmlzaW9uIDExOTQ4NikKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkod29ya2luZyBjb3B5KQpAQCAtMjU5LDkgKzI1
OSw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTcGVlY2hSZWNvZ25pemVyQ2xpZW50
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3BlZWNoUmVjb2duaXplci5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYlNwZWxsQ2hlY2tDbGllbnQuaCcsCi0gICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJTdG9yYWdlQXJlYS5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlN0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCcsCi0gICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJTdG9yYWdlTmFtZXNwYWNlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFn
ZVF1b3RhQ2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZVF1
b3RhVHlwZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlN1cnJvdW5kaW5nVGV4dC5o
JywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VBcmVhLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZUFy
ZWEuaAkocmV2aXNpb24gMTE5NDg2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU3RvcmFnZUFyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNjggKzI4LDQgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBXZWJTdG9yYWdlQXJlYV9oCi0jZGVmaW5lIFdlYlN0
b3JhZ2VBcmVhX2gKLQotI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNvbW1vbi5oIgotI2luY2x1ZGUg
InBsYXRmb3JtL1dlYlN0cmluZy5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2Vi
VVJMOwotCi1jbGFzcyBXZWJTdG9yYWdlQXJlYSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2Vi
U3RvcmFnZUFyZWEoKSB7IH0KLQotICAgIGVudW0gUmVzdWx0IHsKLSAgICAgICAgUmVzdWx0T0sg
PSAwLAotICAgICAgICBSZXN1bHRCbG9ja2VkQnlRdW90YQotICAgIH07Ci0KLSAgICAvLyBUaGUg
bnVtYmVyIG9mIGtleS92YWx1ZSBwYWlycyBpbiB0aGUgc3RvcmFnZSBhcmVhLgotICAgIHZpcnR1
YWwgdW5zaWduZWQgbGVuZ3RoKCkgPSAwOwotCi0gICAgLy8gR2V0IGEgdmFsdWUgZm9yIGEgc3Bl
Y2lmaWMga2V5LiBWYWxpZCBrZXkgaW5kaWNlcyBhcmUgMCB0aHJvdWdoIGxlbmd0aCgpIC0gMS4K
LSAgICAvLyBJbmRleGVzIG1heSBjaGFuZ2Ugb24gYW55IHNldC9yZW1vdmVJdGVtIGNhbGwuIFdp
bGwgcmV0dXJuIG51bGwgaWYgdGhlIGluZGV4Ci0gICAgLy8gcHJvdmlkZWQgaXMgb3V0IG9mIHJh
bmdlLgotICAgIHZpcnR1YWwgV2ViU3RyaW5nIGtleSh1bnNpZ25lZCBpbmRleCkgPSAwOwotCi0g
ICAgLy8gR2V0IHRoZSB2YWx1ZSB0aGF0IGNvcnJlc3BvbmRzIHRvIGEgc3BlY2lmaWMga2V5LiBU
aGlzIHJldHVybnMgbnVsbCBpZiB0aGVyZSBpcwotICAgIC8vIG5vIGVudHJ5IGZvciB0aGF0IGtl
eS4KLSAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRJdGVtKGNvbnN0IFdlYlN0cmluZyYga2V5KSA9
IDA7Ci0KLSAgICAvLyBTZXQgdGhlIHZhbHVlIHRoYXQgY29ycmVzcG9uZHMgdG8gYSBzcGVjaWZp
YyBrZXkuIFJlc3VsdCB3aWxsIGVpdGhlciBiZSBSZXN1bHRPSwotICAgIC8vIG9yIHNvbWUgcGFy
dGljdWxhciBlcnJvci4gVGhlIHZhbHVlIGlzIE5PVCBzZXQgd2hlbiB0aGVyZSdzIGFuIGVycm9y
LiB8cGFnZVVybHwgaXMgdGhlCi0gICAgLy8gdXJsIHRoYXQgc2hvdWxkIGJlIHVzZWQgaWYgYSBz
dG9yYWdlIGV2ZW50IGZpcmVzLgotICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtKGNvbnN0IFdlYlN0
cmluZyYga2V5LCBjb25zdCBXZWJTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBXZWJVUkwmIHBhZ2VV
cmwsIFJlc3VsdCYgcmVzdWx0KQotICAgIHsKLSAgICAgICAgV2ViU3RyaW5nIHVudXNlZDsKLSAg
ICAgICAgc2V0SXRlbShrZXksIG5ld1ZhbHVlLCBwYWdlVXJsLCByZXN1bHQsIHVudXNlZCk7Ci0g
ICAgfQotCi0KLSAgICAvLyBSZW1vdmUgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRp
Y3VsYXIga2V5LiB8cGFnZVVybHwgaXMgdGhlIHVybCB0aGF0IHNob3VsZCBiZSB1c2VkCi0gICAg
Ly8gaWYgYSBzdG9yYWdlIGV2ZW50IGZpcmVzLgotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJdGVt
KGNvbnN0IFdlYlN0cmluZyYga2V5LCBjb25zdCBXZWJVUkwmIHBhZ2VVcmwpCi0gICAgewotICAg
ICAgICBXZWJTdHJpbmcgdW51c2VkOwotICAgICAgICByZW1vdmVJdGVtKGtleSwgcGFnZVVybCwg
dW51c2VkKTsKLSAgICB9Ci0KLSAgICAvLyBDbGVhciBhbGwga2V5L3ZhbHVlIHBhaXJzLiB8cGFn
ZVVybHwgaXMgdGhlIHVybCB0aGF0IHNob3VsZCBiZSB1c2VkIGlmIGEgc3RvcmFnZSBldmVudCBm
aXJlcy4KLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoY29uc3QgV2ViVVJMJiBwYWdlVXJsKQotICAg
IHsKLSAgICAgICAgYm9vbCB1bnVzZWQ7Ci0gICAgICAgIGNsZWFyKHBhZ2VVcmwsIHVudXNlZCk7
Ci0gICAgfQotCi0gICAgLy8gREVQUkVDQVRFRCAtIGJlaW5nIHJlcGxhY2VkIGJ5IHRoZSBhc3lu
YyB2YXJpYW50cyBhYm92ZSB3aGljaCBkbyBub3QgcmV0dXJuIG9sZFZhbHVlcyBvciBibG9jayB1
bnRpbCBjb21wbGV0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtKGNvbnN0IFdlYlN0cmlu
ZyYga2V5LCBjb25zdCBXZWJTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBXZWJVUkwmLCBSZXN1bHQm
LCBXZWJTdHJpbmcmIG9sZFZhbHVlKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSXRlbShj
b25zdCBXZWJTdHJpbmcmIGtleSwgY29uc3QgV2ViVVJMJiBwYWdlVXJsLCBXZWJTdHJpbmcmIG9s
ZFZhbHVlKSAgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyKGNvbnN0IFdlYlVSTCYgcGFnZVVy
bCwgYm9vbCYgc29tZXRoaW5nQ2xlYXJlZCkgIHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KLSNlbmRpZiAvLyBXZWJTdG9yYWdlQXJlYV9oCisjaW5jbHVkZSAiLi4vLi4vLi4vUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VBcmVhLmgiCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlTmFtZXNwYWNlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZU5hbWVzcGFjZS5oCShyZXZp
c2lvbiAxMTk0ODYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdl
TmFtZXNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDM1ICsyOCw0IEBACiAgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCiAKLSNpZm5kZWYgV2ViU3RvcmFnZU5hbWVzcGFjZV9oCi0jZGVmaW5lIFdlYlN0
b3JhZ2VOYW1lc3BhY2VfaAotCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViQ29tbW9uLmgiCi0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJTdG9yYWdlQXJlYTsKLWNsYXNzIFdlYlN0cmlu
ZzsKLQotLy8gV2ViU3RvcmFnZU5hbWVzcGFjZSByZXByZXNlbnRzIGEgY29sbGVjdGlvbiBvZiBT
dG9yYWdlQXJlYXMuIFR5cGljYWxseSwgeW91J2xsIGhhdmUKLS8vIG11bHRpcGxlIFN0b3JhZ2VO
YW1lc3BhY2VzIHRvIHJlcHJlc2VudCB0aGUgU2Vzc2lvblN0b3JhZ2UgZm9yIGVhY2ggdGFiIGFu
ZCBhIHNpbmdsZQotLy8gU3RvcmFnZU5hbWVzcGFjZSB0byByZXByZXNlbnQgTG9jYWxTdG9yYWdl
IGZvciB0aGUgZW50aXJlIGJyb3dzZXIuCi1jbGFzcyBXZWJTdG9yYWdlTmFtZXNwYWNlIHsKLXB1
YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJTdG9yYWdlTmFtZXNwYWNlKCkgeyB9Ci0KLSAgICAvLyBD
cmVhdGUgYSBuZXcgV2ViU3RvcmFnZUFyZWEgb2JqZWN0LiBUd28gc3Vic2VxdWVudCBjYWxscyB3
aXRoIHRoZSBzYW1lIG9yaWdpbgotICAgIC8vIHdpbGwgcmV0dXJuIHR3byBkaWZmZXJlbnQgV2Vi
U3RvcmFnZUFyZWEgb2JqZWN0cyB0aGF0IHNoYXJlIHRoZSBzYW1lIGJhY2tpbmcgc3RvcmUuCi0g
ICAgLy8gWW91IHNob3VsZCBjYWxsIGRlbGV0ZSBvbiB0aGUgcmV0dXJuZWQgb2JqZWN0IHdoZW4g
eW91J3JlIGZpbmlzaGVkLgotICAgIHZpcnR1YWwgV2ViU3RvcmFnZUFyZWEqIGNyZWF0ZVN0b3Jh
Z2VBcmVhKGNvbnN0IFdlYlN0cmluZyYgb3JpZ2luKSA9IDA7Ci0KLSAgICAvLyBDb3B5IGEgU3Rv
cmFnZU5hbWVzcGFjZS4gVGhpcyBvbmx5IG1ha2VzIHNlbnNlIGluIHRoZSBjYXNlIG9mIFNlc3Np
b25TdG9yYWdlLgotICAgIHZpcnR1YWwgV2ViU3RvcmFnZU5hbWVzcGFjZSogY29weSgpID0gMDsK
LQotICAgIC8vIFJldHVybnMgdHJ1ZSBvZiB0aGUgdHdvIGluc3RhbmNlcyByZXByZXNlbnQgdGhl
IHNhbWUgc3RvcmFnZSBuYW1lc3BhY2UuCi0gICAgdmlydHVhbCBib29sIGlzU2FtZU5hbWVzcGFj
ZShjb25zdCBXZWJTdG9yYWdlTmFtZXNwYWNlJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViU3RvcmFnZU5hbWVzcGFj
ZV9oCisjaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlN0b3Jh
Z2VOYW1lc3BhY2UuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRm
b3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCShyZXZpc2lv
biAxMTk0ODYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJL
aXRQbGF0Zm9ybVN1cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsMTcgKzU0LDEwIEBAIGNs
YXNzIFdlYklEQktleVBhdGg7IC8vIEZJWE1FOiBEb2VzIHRoaXMKIGNsYXNzIFdlYk1lc3NhZ2VQ
b3J0Q2hhbm5lbDsgLy8gRklYTUU6IERvZXMgdGhpcyBiZWxvbmcgaW4gcGxhdGZvcm0/CiBjbGFz
cyBXZWJQbHVnaW5MaXN0QnVpbGRlcjsgLy8gRklYTUU6IERvZXMgdGhpcyBiZWxvbmcgaW4gcGxh
dGZvcm0/CiBjbGFzcyBXZWJTaGFyZWRXb3JrZXJSZXBvc2l0b3J5OyAvLyBGSVhNRTogRG9lcyB0
aGlzIGJlbG9uZyBpbiBwbGF0Zm9ybT8KLWNsYXNzIFdlYlN0b3JhZ2VOYW1lc3BhY2U7IC8vIEZJ
WE1FOiBEb2VzIHRoaXMgYmVsb25nIGluIHBsYXRmb3JtPwogCiAvLyBGSVhNRTogRXZlbnR1YWxs
eSBhbGwgdGhlc2UgQVBJIHdpbGwgbmVlZCB0byBtb3ZlIHRvIFdlYktpdDo6UGxhdGZvcm0uCiBj
bGFzcyBXZWJLaXRQbGF0Zm9ybVN1cHBvcnQgOiBwdWJsaWMgUGxhdGZvcm0gewogcHVibGljOgot
ICAgIC8vIERPTSBTdG9yYWdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0KLSAgICAvLyBSZXR1cm4gYSBMb2NhbFN0b3JhZ2UgbmFtZXNwYWNlIHRo
YXQgY29ycmVzcG9uZHMgdG8gdGhlIGZvbGxvd2luZyBwYXRoLgotICAgIHZpcnR1YWwgV2ViU3Rv
cmFnZU5hbWVzcGFjZSogY3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKGNvbnN0IFdlYlN0cmlu
ZyYgcGF0aCwgdW5zaWduZWQgcXVvdGEpIHsgcmV0dXJuIDA7IH0KLQotCiAgICAgLy8gSFRNTDUg
RGF0YWJhc2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKICNpZmRlZiBXSU4zMgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>