<?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>38594</bug_id>
          
          <creation_ts>2010-05-05 10:33:49 -0700</creation_ts>
          <short_desc>Change IndexedDB to use events instead of callbacks</short_desc>
          <delta_ts>2010-05-10 03:28:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>abarth</cc>
    
    <cc>andreip</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>221183</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-05 10:33:49 -0700</bug_when>
    <thetext>Change IndexedDB to use events instead of callbacks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221191</commentid>
    <comment_count>1</comment_count>
      <attachid>55138</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-05 10:46:35 -0700</bug_when>
    <thetext>Created attachment 55138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221235</commentid>
    <comment_count>2</comment_count>
      <attachid>55143</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-05 12:36:56 -0700</bug_when>
    <thetext>Created attachment 55143
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221339</commentid>
    <comment_count>3</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-05 16:14:21 -0700</bug_when>
    <thetext>I know it&apos;s big, but can one of you guys take a look?  I&apos;m planning on starting on the JSC bindings tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221799</commentid>
    <comment_count>4</comment_count>
      <attachid>55258</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-06 10:41:16 -0700</bug_when>
    <thetext>Created attachment 55258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221803</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-06 10:43:10 -0700</bug_when>
    <thetext>Now with JSC bindings and support for build systems other than GYP.

Please take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221826</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-06 11:13:31 -0700</bug_when>
    <thetext>+ adam in case he&apos;s willing to take a look</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221837</commentid>
    <comment_count>7</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-06 11:28:49 -0700</bug_when>
    <thetext>Nate kindly said he&apos;d take a look.

Note: I&apos;ve only built this on Chromium and mac Safari.  I&apos;ll be sure to watch the build bots closely when I actually commit in case I messed something up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221985</commentid>
    <comment_count>8</comment_count>
      <attachid>55258</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-05-06 14:56:28 -0700</bug_when>
    <thetext>Comment on attachment 55258
Patch

Your WebCore/ChangeLog diff is pretty far out of date in terms of the files listed. Plus a couple of nits inline.

Besides that, LGTM.

&gt; --- a/WebCore/bindings/js/JSEventCustom.cpp
&gt; +++ b/WebCore/bindings/js/JSEventCustom.cpp
&gt; @@ -38,6 +38,7 @@
&gt;  #include &quot;JSCustomEvent.h&quot;
&gt;  #include &quot;JSCompositionEvent.h&quot;
&gt;  #include &quot;JSErrorEvent.h&quot;
&gt; +#include &quot;JSIDBRequest.h&quot;
&gt;  #include &quot;JSKeyboardEvent.h&quot;
&gt;  #include &quot;JSMessageEvent.h&quot;
&gt;  #include &quot;JSMouseEvent.h&quot;

Why is this necessary?

&gt; +    ASSERT(0);
&gt; +    return jsUndefined();
&gt; +}

Nit (here and in V8IDBRequestCustom.cpp): Any reason not to use ASSERT_NOT_REACHED instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222973</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-08 23:16:13 -0700</bug_when>
    <thetext>Attachment 55258 was posted by a committer and has review+, assigning to Jeremy Orlow for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223209</commentid>
    <comment_count>10</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-10 02:36:10 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 55258 [details])
&gt; Your WebCore/ChangeLog diff is pretty far out of date in terms of the files listed. Plus a couple of nits inline.

Done.

&gt; 
&gt; Besides that, LGTM.
&gt; 
&gt; &gt; --- a/WebCore/bindings/js/JSEventCustom.cpp
&gt; &gt; +++ b/WebCore/bindings/js/JSEventCustom.cpp
&gt; &gt; @@ -38,6 +38,7 @@
&gt; &gt;  #include &quot;JSCustomEvent.h&quot;
&gt; &gt;  #include &quot;JSCompositionEvent.h&quot;
&gt; &gt;  #include &quot;JSErrorEvent.h&quot;
&gt; &gt; +#include &quot;JSIDBRequest.h&quot;
&gt; &gt;  #include &quot;JSKeyboardEvent.h&quot;
&gt; &gt;  #include &quot;JSMessageEvent.h&quot;
&gt; &gt;  #include &quot;JSMouseEvent.h&quot;
&gt; 
&gt; Why is this necessary?

It isn&apos;t anymore.
 
&gt; &gt; +    ASSERT(0);
&gt; &gt; +    return jsUndefined();
&gt; &gt; +}
&gt; 
&gt; Nit (here and in V8IDBRequestCustom.cpp): Any reason not to use ASSERT_NOT_REACHED instead?

Oops, changed.



Btw, wasn&apos;t there one other problem you noticed when we were chatting on chat?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223218</commentid>
    <comment_count>11</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-10 02:56:29 -0700</bug_when>
    <thetext>Committed r59068: &lt;http://trac.webkit.org/changeset/59068&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223230</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-10 03:28:54 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59068 might have broken Qt Linux Release minimal</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55138</attachid>
            <date>2010-05-05 10:46:35 -0700</date>
            <delta_ts>2010-05-05 12:36:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38594-20100505184632.patch</filename>
            <type>text/plain</type>
            <size>48305</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGQxYjFkZGRmZDJmYTRjMGMxYjc1ZDQ4ODkwZWQzNzhjMjMwMzgzYS4uNjdjMWIwNDVkNWZiMWU3
NzY5MGYyM2IwN2I1YjQ3ZmYyZjljYjEwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxMC0wNS0wNSAgSmVy
ZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgSW5kZXhlZERCIHRvIHVzZSBldmVudHMg
aW5zdGVhZCBvZiBjYWxsYmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM4NTk0CisKKyAgICAgICAgU3dpdGNoIEluZGV4ZWREQiBvdmVyIHRvIGFu
IGV2ZW50IGJhc2VkIG1vZGVsIHRvIG1hdGNoIHdoYXQKKyAgICAgICAgTW96aWxsYSAoYW5kIHBy
b2JhYmx5IE1TPykgYXJlIGRvaW5nLiAgVGhpcyBhbHNvIGdldHMgcmlkIG9mCisgICAgICAgIGEg
bG90IG9mIHRlbXBsYXRlIG1lc3MgYXQgdGhlIGV4cGVuc2Ugb2YgYSBsaXR0bGUgZXh0cmEgYm9p
bGVyCisgICAgICAgIHBsYXRlIGNvZGUgKGZvciBlYWNoIHR5cGUgdGhhdCBJREJSZXN1bHQucmVz
dWx0IGNvdWxkIGJlKS4KKworICAgICAgICBTdGlsbCBub3QgdGVzdGFibGUuICBOZXh0IHN0ZXA6
IEpTQyBiaW5kaW5ncy4gIEhvcGluZyB0byBzdGFydAorICAgICAgICBhZGRpbmcgdGVzdHMgc29v
biBub3cgdGhhdCB0aGUgYmFzaWMgQVBJIGlzIHN0YWJsZS4KKworICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhET01XcmFwcGVyOjpjb252ZXJ0RXZlbnRUYXJnZXRUb1Y4T2JqZWN0KToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21JREJDYWxsYmFja3MuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbmRleGVkRGF0YWJhc2VSZXF1ZXN0
Q3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnRvSURCUmVxdWVzdCk6CisgICAgICAgICogZG9t
L0V2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogc3RvcmFnZS9JREJDYWxsYmFja3MuaDoKKyAgICAg
ICAgKiBzdG9yYWdlL0lEQlJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlcXVlc3Q6OklEQlJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6fklE
QlJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25FcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6
SURCUmVxdWVzdDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpzdG9wKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCUmVxdWVzdDo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmV2
ZW50VGFyZ2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjplbnN1cmVFdmVu
dFRhcmdldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6dGltZXJGaXJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvbkV2ZW50Q29tbW9uKToKKyAgICAgICAg
KiBzdG9yYWdlL0lEQlJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1
ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlJlcXVlc3Q6OnJlc3VsdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6aWRiRGF0YWJhc2VSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6cmVhZHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjplcnJvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp0b0lEQlJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCUmVxdWVzdDo6cmVmRXZlbnRUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6ZGVyZWZFdmVudFRhcmdldCk6CisgICAgICAgICogc3RvcmFnZS9JREJSZXF1ZXN0
LmlkbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9JbmRleGVkRGF0YWJhc2UuaDoKKyAgICAg
ICAgKiBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5kZXhlZERhdGFiYXNlSW1wbDo6b3Blbik6CisgICAgICAgICogc3RvcmFnZS9JbmRleGVkRGF0
YWJhc2VJbXBsLmg6CisgICAgICAgICogc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZVJlcXVlc3Q6Om9wZW4pOgorICAg
ICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oOgorICAgICAgICAqIHN0b3Jh
Z2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGw6CisKIDIwMTAtMDUtMDUgIE5pa29sYXMgWmlt
bWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkLiBB
ZGQgbWlzc2luZyBmaWxlcyBnZW5lcmF0ZWQgYnkgInJ1bi1iaW5kaW5ncy10ZXN0IiwgYWZ0ZXIg
dGhlIERPTVRlc3RDYWxsYmFjay5pZGwgYWRkaXRpb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGM5MGI3ODk5Y2ZiOTE2NTMw
MGYyYzkzMWI4NmQ1YzhiY2E2NzRmZjAuLjMzZWEyZjBhMzlmYTFlNzdiNDYyZGEwOTFjNjNjZGE1
NjBkZGRhZmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0yMjIsNiArMjIyLDcgQEAKICAgICAgICAgICAgICdzdG9yYWdlL0lE
QkRhdGFiYXNlRXJyb3IuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXhj
ZXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRs
JywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQlJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdz
dG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdl
L1NRTEVycm9yLmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9TUUxSZXN1bHRTZXQuaWRsJywK
QEAgLTY5OSw3ICs3MDAsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENT
U1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhDU1NTdHlsZVNoZWV0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q1NTVmFsdWVDdXN0b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhDdXN0b21JREJDYWxsYmFja3MuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q3VzdG9tRXZlbnRMaXN0ZW5lci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUV2ZW50TGlzdGVuZXIuaCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tUG9zaXRpb25DYWxsYmFjay5jcHAnLApAQCAtNzQ0LDcg
Kzc0NCw2IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTFBsdWdJbkVs
ZW1lbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1M
U2VsZWN0RWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEhUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmgnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEluZGV4ZWREYXRhYmFzZVJlcXVlc3RDdXN0b20uY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhKYXZhU2NyaXB0Q2Fs
bEZyYW1lQ3VzdG9tLmNwcCcsCkBAIC0zMzEwLDYgKzMzMDksOCBAQAogICAgICAgICAgICAgJ3N0
b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRpb24uaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJE
YXRhYmFzZVJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlUmVx
dWVzdC5oJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQlJlcXVlc3QuY3BwJywKKyAgICAgICAg
ICAgICdzdG9yYWdlL0lEQlJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JbmRleGVk
RGF0YWJhc2UuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5oJywK
ICAgICAgICAgICAgICdzdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwJywKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01XcmFwcGVyLmNwcAppbmRleCBiMmVlZWI0OTViODNlZWJmMzEwZDAwOGM0ZTk1
NmVhMDAxYmMxZDg0Li5jMTUzNTVjMjNhMTg4NDdmODcyYzZkMGRiN2Q2MTYzMzY4YzdkMjI5IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5j
bHVkZSAiVjhFdmVudFNvdXJjZS5oIgogI2luY2x1ZGUgIlY4SFRNTENvbGxlY3Rpb24uaCIKICNp
bmNsdWRlICJWOEhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIlY4SURCUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIlY4SXNvbGF0ZWRDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhMb2NhdGlvbi5oIgogI2lu
Y2x1ZGUgIlY4TWVzc2FnZUNoYW5uZWwuaCIKQEAgLTM3Nyw2ICszNzgsMTEgQEAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4RE9NV3JhcHBlcjo6Y29udmVydEV2ZW50VGFyZ2V0VG9WOE9iamVjdChF
dmVudFRhcmdldCogdGEKICAgICAgICAgcmV0dXJuIHRvVjgobm90aWZpY2F0aW9uKTsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisgICAgaWYgKElEQlJlcXVlc3QqIGlk
YlJlcXVlc3QgPSB0YXJnZXQtPnRvSURCUmVxdWVzdCgpKQorICAgICAgICByZXR1cm4gdG9WOChp
ZGJSZXF1ZXN0KTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQogICAgIGlmIChX
ZWJTb2NrZXQqIHdlYlNvY2tldCA9IHRhcmdldC0+dG9XZWJTb2NrZXQoKSkKICAgICAgICAgcmV0
dXJuIHRvVjgod2ViU29ja2V0KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4Q3VzdG9tSURCQ2FsbGJhY2tzLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEN1c3RvbUlEQkNhbGxiYWNrcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTE3
ZjE1YjI0MjZiODM2MTBiMDYwMzE4ZTY3YmUxNGE2NWQ3ZTliLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
Q3VzdG9tSURCQ2FsbGJhY2tzLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjMgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBk
aXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgVjhDdXN0b21JREJDYWxsYmFja3NfaAotI2RlZmluZSBWOEN1c3RvbUlEQkNhbGxiYWNrc19o
Ci0KLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAi
SURCRGF0YWJhc2VFcnJvci5oIgotI2luY2x1ZGUgIlY4Q3VzdG9tVm9pZENhbGxiYWNrLmgiCi0j
aW5jbHVkZSAiVjhJREJEYXRhYmFzZUVycm9yLmgiCi0jaW5jbHVkZSAiV29ybGRDb250ZXh0SGFu
ZGxlLmgiCi0jaW5jbHVkZSA8djguaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi0jaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gRklY
TUU6IE1heWJlIHNwbGl0IGNvbW1vbiBwYXJ0cyBpbnRvIGEgYmFzZSBjbGFzcy4KLXRlbXBsYXRl
IDx0eXBlbmFtZSBSZXN1bHRUeXBlLCB0eXBlbmFtZSBSZXN1bHRXcmFwcGVyVHlwZT4KLWNsYXNz
IFY4Q3VzdG9tSURCQ2FsbGJhY2tzIDogcHVibGljIElEQkNhbGxiYWNrczxSZXN1bHRUeXBlPiB7
Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VjhDdXN0b21JREJDYWxsYmFja3M+IGNy
ZWF0ZSh2ODo6TG9jYWw8djg6OlZhbHVlPiBvblN1Y2Nlc3MsIHY4OjpMb2NhbDx2ODo6VmFsdWU+
IG9uRXJyb3IsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
Ci0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFY4Q3VzdG9tSURCQ2FsbGJhY2tz
KG9uU3VjY2Vzcywgb25FcnJvciwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpOwotICAgIH0KLQot
ICAgIHZpcnR1YWwgflY4Q3VzdG9tSURCQ2FsbGJhY2tzKCkKLSAgICB7Ci0gICAgICAgIG1fb25T
dWNjZXNzLkRpc3Bvc2UoKTsKLSAgICAgICAgbV9vbkVycm9yLkRpc3Bvc2UoKTsKLSAgICB9Ci0K
LSAgICAvLyBGSVhNRTogSGFuZGxlIHN1c3BlbmQvcmVzdW1lIGNvcnJlY3RseS4KLQotcHJpdmF0
ZToKLSAgICBWOEN1c3RvbUlEQkNhbGxiYWNrcyh2ODo6TG9jYWw8djg6OlZhbHVlPiBvblN1Y2Nl
c3MsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IG9uRXJyb3IsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0gICAgICAgIDogSURCQ2FsbGJhY2tzPFJlc3VsdFR5
cGU+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHRoaXMpCi0gICAgICAgICwgbV9vblN1Y2Nlc3Mo
b25TdWNjZXNzLT5Jc09iamVjdCgpID8gdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhv
blN1Y2Nlc3MtPlRvT2JqZWN0KCkpIDogdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4oKSkKLSAg
ICAgICAgLCBtX29uRXJyb3Iob25FcnJvci0+SXNPYmplY3QoKSA/IHY4OjpQZXJzaXN0ZW50PHY4
OjpPYmplY3Q+OjpOZXcob25FcnJvci0+VG9PYmplY3QoKSkgOiB2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0PigpKQotICAgICAgICAsIG1fd29ybGRDb250ZXh0KFVzZUN1cnJlbnRXb3JsZCkKLSAg
ICB7Ci0gICAgfQotCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFR5cGU+Ci0gICAgdm9pZCBvbkV2
ZW50KHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBQYXNzUmVmUHRyPFR5cGU+
IHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKCFBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGNhbGxiYWNr
LklzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2ODo6SGFuZGxlU2Nv
cGUgaGFuZGxlU2NvcGU7Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQg
PSB0b1Y4Q29udGV4dChBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
bV93b3JsZENvbnRleHQpOwotICAgICAgICBpZiAoY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKGNvbnRleHQp
OwotICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdID0gewotICAgICAgICAgICAg
dG9WOCh2YWx1ZSkKLSAgICAgICAgfTsKLQotICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGlzIHdv
cmsgZm9yIHdvcmtlcnMuCi0gICAgICAgIEFTU0VSVChBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKTsKLSAgICAgICAgUmVmUHRyPEZyYW1lPiBw
cm90ZWN0b3Ioc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSktPmZyYW1lKCkpOwotCi0gICAgICAgIGJvb2wgY2FsbGJhY2tSZXR1
cm5WYWx1ZSA9IGZhbHNlOwotICAgICAgICAvLyBGSVhNRTogRG8gd2UgY2FyZSBpZiB0aGlzIHRo
aW5nIHJldHVybnMgdHJ1ZSAoaS5lLiBpdCByYWlzZWQgYW4gZXhjZXB0aW9uKT8KLSAgICAgICAg
aW52b2tlQ2FsbGJhY2soY2FsbGJhY2ssIDEsIGFyZ3YsIGNhbGxiYWNrUmV0dXJuVmFsdWUpOwot
ICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NBc3luYyhQYXNzUmVmUHRyPFJlc3Vs
dFR5cGU+IHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIG9uRXZlbnQobV9vblN1Y2Nlc3MsIFJlc3Vs
dFdyYXBwZXJUeXBlOjpjcmVhdGUocmVzdWx0KSk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lk
IG9uRXJyb3JBc3luYyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9yKQotICAgIHsK
LSAgICAgICAgb25FdmVudChtX29uRXJyb3IsIGVycm9yKTsKLSAgICB9Ci0KLSAgICAvLyBGSVhN
RTogVXNlIE93bkhhbmRsZXMuCi0gICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gbV9vblN1
Y2Nlc3M7Ci0gICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gbV9vbkVycm9yOwotCi0gICAg
V29ybGRDb250ZXh0SGFuZGxlIG1fd29ybGRDb250ZXh0OwotfTsKLQotfQotCi0jZW5kaWYKLQot
I2VuZGlmIC8vIFY4Q3VzdG9tSURCQ2FsbGJhY2tzX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SW5kZXhlZERhdGFiYXNlUmVxdWVzdEN1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluZGV4ZWREYXRhYmFzZVJlcXVlc3RDdXN0b20uY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGMyYjY4ODhjZTMxZWQ4MTFiNjVhMTMz
MjM0MmYwMmUyMjVhNzMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5kZXhlZERhdGFiYXNlUmVxdWVz
dEN1c3RvbS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlv
bi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0jaW5jbHVkZSAiVjhJbmRleGVk
RGF0YWJhc2VSZXF1ZXN0LmgiCi0KLSNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCi0jaW5j
bHVkZSAiSURCRGF0YWJhc2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jaW5j
bHVkZSAiVjhDdXN0b21JREJDYWxsYmFja3MuaCIKLSNpbmNsdWRlICJWOElEQkRhdGFiYXNlRXJy
b3IuaCIKLSNpbmNsdWRlICJWOElEQkRhdGFiYXNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIlY4UHJv
eHkuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJ
bmRleGVkRGF0YWJhc2VSZXF1ZXN0OjpvcGVuQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKLXsKLSAgICBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0KiBpbXAgPSBWOEluZGV4ZWREYXRh
YmFzZVJlcXVlc3Q6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIGlmIChhcmdzLkxlbmd0
aCgpIDwgMikKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoVjhQcm94eTo6VHlwZUVycm9yKTsK
LSAgICBWOFBhcmFtZXRlcjw+IG5hbWUgPSBhcmdzWzBdOwotICAgIFY4UGFyYW1ldGVyPD4gZGVz
Y3JpcHRpb24gPSBhcmdzWzFdOwotCi0gICAgYm9vbCBtb2RpZnlEYXRhYmFzZSA9IHRydWU7Ci0g
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAyICYmICFhcmdzWzJdLT5Jc1VuZGVmaW5lZCgpICYmICFh
cmdzWzJdLT5Jc051bGwoKSkKLSAgICAgICAgbW9kaWZ5RGF0YWJhc2UgPSBhcmdzWzJdLT5Cb29s
ZWFuVmFsdWUoKTsKLQotICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IG9uRXJyb3I7Ci0gICAgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4gb25TdWNjZXNzOwotICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMyAm
JiAhYXJnc1szXS0+SXNVbmRlZmluZWQoKSAmJiAhYXJnc1szXS0+SXNOdWxsKCkpIHsKLSAgICAg
ICAgaWYgKCFhcmdzWzNdLT5Jc09iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoIm9uZXJyb3IgY2FsbGJhY2sgd2FzIG5vdCB0aGUgcHJvcGVyIHR5cGUiKTsKLSAgICAgICAg
b25FcnJvciA9IGFyZ3NbM107Ci0gICAgfQotICAgIGlmIChhcmdzLkxlbmd0aCgpID4gNCAmJiAh
YXJnc1s0XS0+SXNVbmRlZmluZWQoKSAmJiAhYXJnc1s0XS0+SXNOdWxsKCkpIHsKLSAgICAgICAg
aWYgKCFhcmdzWzRdLT5Jc09iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3Io
Im9uc3VjY2VzcyBjYWxsYmFjayB3YXMgbm90IHRoZSBwcm9wZXIgdHlwZSIpOwotICAgICAgICBv
blN1Y2Nlc3MgPSBhcmdzWzRdOwotICAgIH0KLSAgICBpZiAoIW9uRXJyb3ItPklzT2JqZWN0KCkg
JiYgIW9uU3VjY2Vzcy0+SXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5l
aXRoZXIgdGhlIG9uZXJyb3Igbm9yIHRoZSBvbnN1Y2Nlc3MgY2FsbGJhY2tzIHdlcmUgc2V0LiIp
OwotCi0gICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckN1cnJlbnRD
b250ZXh0KCk7Ci0gICAgUmVmUHRyPFY4Q3VzdG9tSURCQ2FsbGJhY2tzPElEQkRhdGFiYXNlLCBJ
REJEYXRhYmFzZVJlcXVlc3Q+ID4gY2FsbGJhY2tzID0KLSAgICAgICAgVjhDdXN0b21JREJDYWxs
YmFja3M8SURCRGF0YWJhc2UsIElEQkRhdGFiYXNlUmVxdWVzdD46OmNyZWF0ZShvblN1Y2Nlc3Ms
IG9uRXJyb3IsIGZyYW1lLT5kb2N1bWVudCgpKTsKLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgIGltcC0+b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5RGF0YWJhc2UsIGNhbGxi
YWNrcywgZWMpOwotICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZWMpOwot
ICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNw
cCBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAppbmRleCAxNTk4NzkwMGEyMTFlMDA2YzY5
ODFlNDVjN2RjMGUzMmVkZjUxNWM5Li5jZmEwMzI5NzEzNjFkNTE4YWY2MWMzYTQyZTM2Mjg2M2Nj
N2JhZmNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCkBAIC0xNTYsNiArMTU2LDEzIEBAIE5vdGlmaWNhdGlv
biogRXZlbnRUYXJnZXQ6OnRvTm90aWZpY2F0aW9uKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCitJREJSZXF1ZXN0KiBFdmVudFRhcmdldDo6dG9JREJSZXF1ZXN0
KCkKK3sKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCiBib29sIEV2ZW50VGFyZ2V0OjphZGRF
dmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEV2
ZW50TGlzdGVuZXI+IGxpc3RlbmVyLCBib29sIHVzZUNhcHR1cmUpCiB7CiAgICAgRXZlbnRUYXJn
ZXREYXRhKiBkID0gZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldC5oIGIvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAppbmRleCBkYTk4
ZDk4OGE0NTY4NjU0NWYzYWUwMmU5N2JkZGQxNWVmOTY5ZTU3Li5jY2I2YmQyZTVlNzEzNjc2YmMw
MmI2MDdmOTIwNzQ5ZWRmZTZjNzY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dC5oCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEV2ZW50OwogICAgIGNsYXNzIEV2ZW50TGlzdGVu
ZXI7CiAgICAgY2xhc3MgRXZlbnRTb3VyY2U7CisgICAgY2xhc3MgSURCUmVxdWVzdDsKICAgICBj
bGFzcyBNZXNzYWdlUG9ydDsKICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNzIE5vdGlmaWNhdGlv
bjsKQEAgLTExOSw2ICsxMjAsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0
dWFsIE5vdGlmaWNhdGlvbiogdG9Ob3RpZmljYXRpb24oKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisgICAgICAgIHZpcnR1YWwgSURCUmVxdWVzdCogdG9JREJSZXF1
ZXN0KCk7CisjZW5kaWYKKwogICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCA9IDA7CiAKICAgICAgICAgdmlydHVhbCBi
b29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NS
ZWZQdHI8RXZlbnRMaXN0ZW5lcj4sIGJvb2wgdXNlQ2FwdHVyZSk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tz
LmgKaW5kZXggY2UwZDIwZDIzYzIyYmQ1ZWE2YWNiYTg1OTA2NzhjZTc0NWJlZmY3Yi4uNzRjMTFk
ODUyZjRlZGM1MGM4OTUzNmU1NDQ3YTQyNDhmOTY0NmZiOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9z
dG9yYWdlL0lEQkNhbGxiYWNrcy5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3Mu
aApAQCAtMjksNzQgKzI5LDIyIEBACiAjaWZuZGVmIElEQkNhbGxiYWNrc19oCiAjZGVmaW5lIElE
QkNhbGxiYWNrc19oCiAKLSNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJJ
REJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRlICJU
aW1lci5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSAiU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEFsbCBJbmRl
eGVkREIgY2FsbGJhY2tzIG11c3QgaW1wbGVtZW50IHRoaXMgY2xhc3MuICBJdCBoYW5kbGVzIHRo
ZSBhc3luY2hyb25vdXMgZmlyaW5nIG9mCi0vLyB0aGUgY2FsbGJhY2tzLgotdGVtcGxhdGUgPHR5
cGVuYW1lIFJlc3VsdFR5cGU+Ci1jbGFzcyBJREJDYWxsYmFja3MgOiBwdWJsaWMgUmVmQ291bnRl
ZDxJREJDYWxsYmFja3M8UmVzdWx0VHlwZT4gPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7Citj
bGFzcyBJREJDYWxsYmFja3MgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJDYWxsYmFja3M+IHsKIHB1
YmxpYzoKLSAgICBJREJDYWxsYmFja3MoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgdm9pZCogdXBjYXN0UG9pbnRlcikKLSAgICAgICAgOiBBY3RpdmVET01P
YmplY3Qoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgdXBjYXN0UG9pbnRlcikKLSAgICAgICAgLCBt
X3RpbWVyKHRoaXMsICZJREJDYWxsYmFja3M6OnRpbWVyRmlyZWQpCi0gICAgewotICAgIH0KLQog
ICAgIHZpcnR1YWwgfklEQkNhbGxiYWNrcygpIHsgfQogCi0gICAgdm9pZCBvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxSZXN1bHRUeXBlPiByZXN1bHQpCi0gICAgewotICAgICAgICBBU1NFUlQoIW1fcmVz
dWx0KTsKLSAgICAgICAgQVNTRVJUKCFtX2Vycm9yKTsKLSAgICAgICAgbV9yZXN1bHQgPSByZXN1
bHQ7Ci0gICAgICAgIEFTU0VSVChtX3Jlc3VsdCk7Ci0KLSAgICAgICAgQVNTRVJUKCFtX3RpbWVy
LmlzQWN0aXZlKCkpOwotICAgICAgICBtX3NlbGZSZWYgPSB0aGlzOwotICAgICAgICBtX3RpbWVy
LnN0YXJ0T25lU2hvdCgwKTsKLSAgICB9Ci0KLSAgICB2b2lkIG9uRXJyb3IoUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUVycm9yPiBlcnJvcikKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9yZXN1bHQp
OwotICAgICAgICBBU1NFUlQoIW1fZXJyb3IpOwotICAgICAgICBtX2Vycm9yID0gZXJyb3I7Ci0g
ICAgICAgIEFTU0VSVChtX2Vycm9yKTsKLQotICAgICAgICBBU1NFUlQoIW1fdGltZXIuaXNBY3Rp
dmUoKSk7Ci0gICAgICAgIG1fc2VsZlJlZiA9IHRoaXM7Ci0gICAgICAgIG1fdGltZXIuc3RhcnRP
bmVTaG90KDApOwotICAgIH0KLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3NBc3luYyhQYXNzUmVmUHRyPFJlc3VsdFR5cGU+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIG9u
RXJyb3JBc3luYyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSA9IDA7Ci0KLSAgICB2b2lk
IHRpbWVyRmlyZWQoVGltZXI8SURCQ2FsbGJhY2tzPiopCi0gICAgewotICAgICAgICBpZiAobV9y
ZXN1bHQpIHsKLSAgICAgICAgICAgIG9uU3VjY2Vzc0FzeW5jKG1fcmVzdWx0KTsKLSAgICAgICAg
ICAgIG1fcmVzdWx0ID0gMDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG9uRXJyb3JB
c3luYyhtX2Vycm9yKTsKLSAgICAgICAgICAgIG1fZXJyb3IgPSAwOwotICAgICAgICB9Ci0gICAg
ICAgIG1fc2VsZlJlZiA9IDA7IC8vIE1heSB0cmlnZ2VyIGEgZGVsZXRlIGltbWVkaWF0ZWx5Lgot
ICAgIH0KLQotcHJpdmF0ZToKLSAgICBUaW1lcjxJREJDYWxsYmFja3M+IG1fdGltZXI7Ci0gICAg
UmVmUHRyPElEQkNhbGxiYWNrcz4gbV9zZWxmUmVmOwotICAgIFJlZlB0cjxSZXN1bHRUeXBlPiBt
X3Jlc3VsdDsKLSAgICBSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gbV9lcnJvcjsKKyAgICB2aXJ0
dWFsIHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlPikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
KSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGIxNThkZjJlZmZmMGVjMDI0Y2FjNDQ5ZTI0ZjIzY2QwOGVmM2M0NwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcApAQCAtMCwwICsx
LDE1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2Yg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQorCisjaW5jbHVkZSAiSURCUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNp
bmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0lEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0
LCB0aGlzKQorICAgICwgbV9yZXN1bHRUeXBlKFVOREVGSU5FRCkKKyAgICAsIG1fdGltZXIodGhp
cywgJklEQlJlcXVlc3Q6OnRpbWVyRmlyZWQpCisgICAgLCBtX3N0b3BwZWQoZmFsc2UpCisgICAg
LCBtX2Fib3J0ZWQoZmFsc2UpCisgICAgLCBtX3JlYWR5U3RhdGUoSU5JVElBTCkKK3sKK30KKwor
SURCUmVxdWVzdDo6fklEQlJlcXVlc3QoKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgIT0gRE9O
RSkKKyAgICAgICAgYWJvcnQoKTsKK30KKwordm9pZCBJREJSZXF1ZXN0OjpvbkVycm9yKFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpCit7CisgICAgb25FdmVudENvbW1vbigpOwor
ICAgIG1fZXJyb3IgPSBlcnJvcjsKK30KKwordm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UpCit7CisgICAgb25FdmVudENvbW1vbigp
OworICAgIG1fcmVzdWx0VHlwZSA9IElEQkRBVEFCQVNFOworICAgIG1faWRiRGF0YWJhc2VSZXN1
bHQgPSBpZGJEYXRhYmFzZTsKK30KKwordm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkKK3sKKyAg
ICBvbkV2ZW50Q29tbW9uKCk7CisgICAgbV9yZXN1bHRUeXBlID0gU0VSSUFMSVpFRFNDUklQVFZB
TFVFOworICAgIG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlUmVzdWx0ID0gc2VyaWFsaXplZFNjcmlw
dFZhbHVlOworfQorCit2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKK3sKKyAgICBtX3RpbWVyLnN0
b3AoKTsKKyAgICBtX2Fib3J0ZWQgPSB0cnVlOworICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBj
YW5jZWwgYW55IHBlbmRpbmcgd29yayBiZWluZyBkb25lIGluIHRoZSBiYWNrZW5kLgorfQorCitT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBJREJSZXF1ZXN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCk7Cit9CisKK3ZvaWQgSURCUmVxdWVzdDo6c3RvcCgpCit7CisgICAgYWJvcnQoKTsK
KyAgICBtX3NlbGZSZWYgPSAwOyAvLyBDb3VsZCB0cmlnZ2VyIGEgZGVsZXRlLgorfQorCit2b2lk
IElEQlJlcXVlc3Q6OnN1c3BlbmQoKQoreworICAgIG1fdGltZXIuc3RvcCgpOworfQorCit2b2lk
IElEQlJlcXVlc3Q6OnJlc3VtZSgpCit7CisgICAgLy8gV2Ugb25seSBob2xkIG91ciBzZWxmIHJl
ZiB3aGVuIHdlJ3JlIHdhaXRpbmcgdG8gZGlzcGF0Y2ggYW4gZXZlbnQuCisgICAgaWYgKG1fc2Vs
ZlJlZiAmJiAhbV9hYm9ydGVkKQorICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30K
KworRXZlbnRUYXJnZXREYXRhKiBJREJSZXF1ZXN0OjpldmVudFRhcmdldERhdGEoKQoreworICAg
IHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Cit9CisKK0V2ZW50VGFyZ2V0RGF0YSogSURCUmVx
dWVzdDo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJn
ZXREYXRhOworfQorCit2b2lkIElEQlJlcXVlc3Q6OnRpbWVyRmlyZWQoVGltZXI8SURCUmVxdWVz
dD4qKQoreworICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAgQVNTRVJUKG1f
c2VsZlJlZik7CisgICAgQVNTRVJUKCFtX3N0b3BwZWQpOworICAgIEFTU0VSVCghbV9hYm9ydGVk
KTsKKworICAgIGlmIChtX2Vycm9yKSB7CisgICAgICAgIEFTU0VSVChtX3Jlc3VsdFR5cGUgPT0g
VU5ERUZJTkVEKTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5lcnJvckV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBB
U1NFUlQobV9yZXN1bHRUeXBlICE9IFVOREVGSU5FRCk7CisgICAgICAgIGRpc3BhdGNoRXZlbnQo
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50LCBmYWxzZSwgZmFsc2UpKTsg
ICAgICAgIAorICAgIH0KKyAgICBtX3NlbGZSZWYgPSAwOyAvLyBDb3VsZCB0cmlnZ2VyIGEgZGVs
ZXRlLgorfQorCit2b2lkIElEQlJlcXVlc3Q6Om9uRXZlbnRDb21tb24oKQoreworICAgIEFTU0VS
VChtX3JlYWR5U3RhdGUgPCBET05FKTsKKyAgICBBU1NFUlQobV9yZXN1bHRUeXBlID09IFVOREVG
SU5FRCk7CisgICAgQVNTRVJUKCFtX2Vycm9yKTsKKyAgICBBU1NFUlQoIW1fc2VsZlJlZik7Cisg
ICAgQVNTRVJUKCFtX3RpbWVyLmlzQWN0aXZlKCkpOworCisgICAgaWYgKG1fYWJvcnRlZCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9yZWFkeVN0YXRlID0gRE9ORTsKKyAgICBtX3NlbGZSZWYg
PSB0aGlzOworICAgIGlmICghbV9zdG9wcGVkKQorICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hv
dCgwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVz
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ2NWEzYjlhYzhjMTU3YzE0YjU0OWZjNmFkZjk0NmUwMmZiNTUxNmQK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oCkBAIC0wLDAg
KzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAg
IGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBJREJSZXF1ZXN0X2gKKyNkZWZpbmUgSURCUmVxdWVzdF9oCisK
KyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVj
dC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKKyNp
bmNsdWRlICJUaW1lci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQlJlcXVl
c3QgOiBwdWJsaWMgSURCQ2FsbGJhY2tzLCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3Rp
dmVET01PYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgSURCUmVxdWVzdChjb250ZXh0KSk7IH0KKyAgICB2aXJ0dWFsIH5JREJSZXF1ZXN0KCk7
CisKKyAgICAvLyBUaGUgcmVzdWx0IGF0dHJpYnV0ZSBvZiB0aGlzIGNsYXNzIGNhbiByZXByZXNl
bnQgbWFueSBkaWZmZXJlbnQgV2ViQ29yZSB0eXBlcy4KKyAgICBlbnVtIFJlc3VsdFR5cGUgewor
ICAgICAgICBVTkRFRklORUQgPSAwLAorICAgICAgICBJREJEQVRBQkFTRSwKKyAgICAgICAgU0VS
SUFMSVpFRFNDUklQVFZBTFVFCisgICAgfTsKKyAgICBSZXN1bHRUeXBlIHJlc3VsdFR5cGUoKSBj
b25zdCB7IHJldHVybiBtX3Jlc3VsdFR5cGU7IH0KKyAgICBQYXNzUmVmUHRyPElEQkRhdGFiYXNl
PiBpZGJEYXRhYmFzZVJlc3VsdCgpIHsgcmV0dXJuIG1faWRiRGF0YWJhc2VSZXN1bHQ7IH0KKyAg
ICAvLyBGSVhNRTogSGF2ZSBvbmUgc3VjaCBnZXR0ZXIgZm9yIGVhY2ggcG9zc2libGUgcmVzdWx0
IHR5cGUuCisKKyAgICAvLyBEZWZpbmVkIGluIHRoZSBJREwKKyAgICB2b2lkIGFib3J0KCk7Cisg
ICAgZW51bSBSZWFkeVN0YXRlIHsKKyAgICAgICAgSU5JVElBTCA9IDAsCisgICAgICAgIExPQURJ
TkcgPSAxLAorICAgICAgICBET05FID0gMgorICAgIH07CisgICAgdW5zaWduZWQgc2hvcnQgcmVh
ZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlTdGF0ZTsgfQorICAgIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yOyB9CisgICAg
REVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihzdWNjZXNzKTsKKyAgICBERUZJTkVfQVRU
UklCVVRFX0VWRU5UX0xJU1RFTkVSKGVycm9yKTsKKworICAgIC8vIElEQkNhbGxiYWNrcworICAg
IHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pOworICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4pOworICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsK
KyAgICAvLyBGSVhNRTogSGF2ZSBvbmUgb25TdWNjZXNzIGZ1bmN0aW9uIGZvciBlYWNoIHBvc3Np
YmxlIHJlc3VsdCB0eXBlLgorCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICB2aXJ0dWFsIElEQlJl
cXVlc3QqIHRvSURCUmVxdWVzdCgpIHsgcmV0dXJuIHRoaXM7IH0KKworICAgIC8vIEFjdGl2ZURP
TU9iamVjdAorICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CisgICAgdmlydHVh
bCB2b2lkIHN1c3BlbmQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCk7CisKKyAgICB1c2lu
ZyBSZWZDb3VudGVkPElEQkNhbGxiYWNrcz46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPElE
QkNhbGxiYWNrcz46OmRlcmVmOworCitwcml2YXRlOgorICAgIElEQlJlcXVlc3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCopOworCisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPElEQlJlcXVlc3Q+
Kik7CisgICAgdm9pZCBvbkV2ZW50Q29tbW9uKCk7CisKKyAgICAvLyBFdmVudFRhcmdldAorICAg
IHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZGVyZWZFdmVudFRhcmdldCgpIHsgZGVyZWYoKTsgfQorICAgIHZpcnR1YWwgRXZlbnRUYXJn
ZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSog
ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7CisKKyAgICBSZXN1bHRUeXBlIG1fcmVzdWx0VHlwZTsK
KyAgICAvLyBPbmx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHNob3VsZCBldmVyIGJlIGluIHVzZSBh
dCBhbnkgZ2l2ZW4gdGltZS4gIG1fcmVzdWx0VHlwZSBkZWZpbmVzIHdoaWNoIG9uZS4KKyAgICBS
ZWZQdHI8SURCRGF0YWJhc2U+IG1faWRiRGF0YWJhc2VSZXN1bHQ7CisgICAgUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gbV9zZXJpYWxpemVkU2NyaXB0VmFsdWVSZXN1bHQ7CisgICAgUmVm
UHRyPElEQkRhdGFiYXNlRXJyb3I+IG1fZXJyb3I7CisKKyAgICAvLyBVc2VkIHRvIGZpcmUgZXZl
bnRzIGFzeW5jaHJvbm91c2x5LgorICAgIFRpbWVyPElEQlJlcXVlc3Q+IG1fdGltZXI7CisgICAg
UmVmUHRyPElEQlJlcXVlc3Q+IG1fc2VsZlJlZjsgLy8gVGhpcyBpcyBzZXQgdG8gdXMgaWZmIHRo
ZXJlJ3MgYW4gZXZlbnQgcGVuZGluZy4KKworICAgIGJvb2wgbV9zdG9wcGVkOworICAgIGJvb2wg
bV9hYm9ydGVkOworICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlOworICAgIEV2ZW50VGFyZ2V0
RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjZW5kaWYgLy8gSURCUmVxdWVz
dF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5pZGwgYi9XZWJDb3Jl
L3N0b3JhZ2UvSURCUmVxdWVzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFlNTM4NzllZWY4NTk4MzE2YWJk
NGVjM2MxMDY5YzAwY2ViMmY0MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9J
REJSZXF1ZXN0LmlkbApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2UgeworCisgICAg
aW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwKKyAgICAg
ICAgRXZlbnRUYXJnZXQKKyAgICBdIElEQlJlcXVlc3QgeworICAgICAgICB2b2lkIGFib3J0KCk7
CisKKyAgICAgICAgLy8gU3RhdGVzCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IElOSVRJ
QUwgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBMT0FESU5HID0gMTsKKyAgICAg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRE9ORSA9IDI7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBzaG9ydCByZWFkeVN0YXRlOworCisgICAgICAgIC8vIFBvc3NpYmxlIHJl
c3VsdHMKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQkRhdGFiYXNlRXJyb3IgZXJyb3I7
CisgICAgICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkgcmVzdWx0OyAvLyBGSVhNRTogTmVl
ZCB0byBpbXBsZW1lbnQuCisKKyAgICAgICAgLy8gRXZlbnRzCisgICAgICAgIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9uc3VjY2VzczsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25lcnJvcjsKKworICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKKyAgICAgICAgdm9p
ZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgIHZvaWQgcmVtb3Zl
RXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICBib29sZWFuIGRp
c3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZ0KQorICAgICAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0
aW9uKTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRh
YmFzZS5oIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5oCmluZGV4IDEwMjdmYjc5
YzAxMTA5N2UzZGRkMWFiZDAxZmZkZWYwOTM2NDRlMjMuLjFlNDM3ODE3YTM3OTYyM2I1MmI0ZTU0
NzI3YTI2NDk1YjhjNDAzMGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0
YWJhc2UuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmgKQEAgLTQwLDgg
KzQwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRnJhbWU7CiBjbGFzcyBJREJEYXRh
YmFzZTsKIAotdHlwZWRlZiBJREJDYWxsYmFja3M8SURCRGF0YWJhc2U+IElEQkRhdGFiYXNlQ2Fs
bGJhY2tzOwotCiAvLyBUaGlzIGNsYXNzIGlzIHNoYXJlZCBieSBJbmRleGVkRGF0YWJhc2VSZXF1
ZXN0IChhc3luYykgYW5kIEluZGV4ZWREYXRhYmFzZVN5bmMgKHN5bmMpLgogLy8gVGhpcyBpcyBp
bXBsZW1lbnRlZCBieSBJbmRleGVkRGF0YWJhc2VJbXBsIGFuZCBvcHRpb25hbGx5IG90aGVycyAo
aW4gb3JkZXIgdG8gcHJveHkKIC8vIGNhbGxzIGFjcm9zcyBwcm9jZXNzIGJhcnJpZXJzKS4gQWxs
IGNhbGxzIHRvIHRoZXNlIGNsYXNzZXMgc2hvdWxkIGJlIG5vbi1ibG9ja2luZyBhbmQKQEAgLTUx
LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluZGV4ZWREYXRhYmFz
ZT4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCB+SW5kZXhlZERhdGFiYXNlKCkgeyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFj
a3M+LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlm
eURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIEZyYW1lKiwgRXhjZXB0aW9uQ29k
ZSYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRl
eGVkRGF0YWJhc2VJbXBsLmNwcAppbmRleCBiODJkZWU4ZDQ1NDllMzY5ZmQxNmJhMDNlMTMzNThl
ODYxZDI4ZmVjLi5hODUwOWQwMDFkYjkwMmFhOTU1YTYzNWZiNDMyODYyZjNlMzIyMDFkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAKKysrIGIvV2Vi
Q29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwCkBAIC00OSw3ICs0OSw3IEBAIElu
ZGV4ZWREYXRhYmFzZUltcGw6On5JbmRleGVkRGF0YWJhc2VJbXBsKCkKIHsKIH0KIAotdm9pZCBJ
bmRleGVkRGF0YWJhc2VJbXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUNhbGxiYWNrcz4sIEZyYW1lKiwgRXhjZXB0aW9uQ29kZSYpCit2b2lkIEluZGV4ZWREYXRhYmFz
ZUltcGw6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
LCBib29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIEZyYW1lKiwg
RXhjZXB0aW9uQ29kZSYpCiB7CiAgICAgLy8gRklYTUU6IFdyaXRlLgogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUlt
cGwuaCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmgKaW5kZXggNTQxM2I5
YjRmOGYzMGZlYjNmYjE1ZDlhNDlmYzRhNDFiYTYwOWQ0Ni4uNzNlZGY2YjEzMjA5Yzk1ZGVlNTE5
YTg5Yjc4M2ZmNjU0NzFkNzllMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWRE
YXRhYmFzZUltcGwuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5o
CkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmRleGVk
RGF0YWJhc2VJbXBsPiBjcmVhdGUoKTsKICAgICB2aXJ0dWFsIH5JbmRleGVkRGF0YWJhc2VJbXBs
KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPElEQkRhdGFiYXNlPiA+LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgRnJhbWUq
LCBFeGNlcHRpb25Db2RlJik7CiAKIHByaXZhdGU6CiAgICAgSW5kZXhlZERhdGFiYXNlSW1wbCgp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3Bw
IGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCmluZGV4IDQ0MzAx
MTU3NGUxZTAzMTU3OTdiYjgwYjJhYTZhMzA5NzVjZGE5MTIuLjM3NDcwNDJhMGRmYTE4NTA4YmNj
OWQ2MzdjZGQ3ZWEzODExOWYxMmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVk
RGF0YWJhc2VSZXF1ZXN0LmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNl
UmVxdWVzdC5jcHAKQEAgLTMwLDcgKzMwLDkgQEAKICNpbmNsdWRlICJJbmRleGVkRGF0YWJhc2VS
ZXF1ZXN0LmgiCiAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgorI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNp
bmNsdWRlICJJbmRleGVkRGF0YWJhc2UuaCIKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQpAQCAtNDcsOSArNDksMTEgQEAgSW5kZXhlZERhdGFiYXNlUmVxdWVzdDo6fkluZGV4ZWREYXRh
YmFzZVJlcXVlc3QoKQogewogfQogCi12b2lkIEluZGV4ZWREYXRhYmFzZVJlcXVlc3Q6Om9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlm
eURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBjYWxsYmFja3MsIEV4
Y2VwdGlvbkNvZGUmIGV4Y2VwdGlvbikKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSW5kZXhlZERh
dGFiYXNlUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGV4Y2VwdGlvbikK
IHsKLSAgICBtX2luZGV4ZWREYXRhYmFzZS0+b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5
RGF0YWJhc2UsIGNhbGxiYWNrcywgbV9mcmFtZSwgZXhjZXB0aW9uKTsKKyAgICBSZWZQdHI8SURC
UmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgp
KTsKKyAgICBtX2luZGV4ZWREYXRhYmFzZS0+b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5
RGF0YWJhc2UsIHJlcXVlc3QsIG1fZnJhbWUsIGV4Y2VwdGlvbik7CisgICAgcmV0dXJuIHJlcXVl
c3Q7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3Rv
cmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERh
dGFiYXNlUmVxdWVzdC5oCmluZGV4IDgzMjM1YjZjNTI1Mjc3Y2FhOGE3ZjhlMzAzM2UyYTUxY2Fh
OWY0ZDcuLmJlNWU1YzhkZGIwNDYzMTQ2NzQ0MzkwNmVjYWNhNDU0NWE3ZmM2ZDcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJs
aWM6CiAgICAgfQogICAgIH5JbmRleGVkRGF0YWJhc2VSZXF1ZXN0KCk7CiAKLSAgICB2b2lkIG9w
ZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1v
ZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3Blbihjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIEV4Y2Vw
dGlvbkNvZGUmKTsKIAogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCkgeyBtX2ZyYW1lID0gMDsg
fQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5p
ZGwgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwKaW5kZXggMmMy
YTkwZWNhMDM3Njc4MTAzZmYwMzcyMDc4YzA3OGUzYjIzNTY1MC4uZTQyM2ViMDFkMjI5ZTA5ZDY2
ZGE4YzljMzIxODZlMGI5NzdiZmY5OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4
ZWREYXRhYmFzZVJlcXVlc3QuaWRsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJh
c2VSZXF1ZXN0LmlkbApAQCAtMzAsNyArMzAsNyBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgaW50
ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogICAgIF0gSW5k
ZXhlZERhdGFiYXNlUmVxdWVzdCB7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgb3BlbihpbiBET01T
dHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIGRlc2NyaXB0aW9uLCBpbiBvcHRpb25hbCBib29sZWFu
IG1vZGlmeURhdGFiYXNlLCBJREJEYXRhYmFzZUVycm9yQ2FsbGJhY2sgb25lcnJvciwgSURCRGF0
YWJhc2VSZXF1ZXN0Q2FsbGJhY2sgb25zdWNjZXNzKQorICAgICAgICBJREJSZXF1ZXN0IG9wZW4o
aW4gRE9NU3RyaW5nIG5hbWUsIGluIERPTVN0cmluZyBkZXNjcmlwdGlvbiwgaW4gYm9vbGVhbiBt
b2RpZnlEYXRhYmFzZSkKICAgICAgICAgICAgIHJhaXNlcyhJREJEYXRhYmFzZUV4Y2VwdGlvbik7
CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOWJiYTdiNzVjMjdhOGJhODFiMzM4ZmM4N2MwYWFi
ODEzMGQzZDgyNC4uZTY1ZjE4YjljODAxOGQ0OGRhZGYwMzI5M2JkNjExZGEyMzVjYTllNyAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDUtMDUgIEplcmVteSBPcmxvdyAgPGpv
cmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2hhbmdlIEluZGV4ZWREQiB0byB1c2UgZXZlbnRzIGluc3RlYWQgb2YgY2Fs
bGJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
ODU5NAorCisgICAgICAgIENoYW5nZSB0aGUgZ2x1ZSBoZXJlIHRvIG1hdGNoIHRoZSBjaGFuZ2Vz
IEkgbWFkZSBpbiBXZWJDb3JlLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBw
dWJsaWMvV2ViSURCQ2FsbGJhY2tzLmg6CisgICAgICAgICogcHVibGljL1dlYkluZGV4ZWREYXRh
YmFzZS5oOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6OklEQkNhbGxiYWNrc1Byb3h5KToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkNhbGxiYWNrc1Byb3h5Ojp+SURCQ2FsbGJhY2tzUHJveHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6Om9uRXJyb3IpOgorICAgICAgICAo
V2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2Vzcyk6CisgICAgICAgICogc3JjL0lE
QkNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgICogc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZVByb3h5OjpvcGVuKToKKyAgICAg
ICAgKiBzcmMvSW5kZXhlZERhdGFiYXNlUHJveHkuaDoKKyAgICAgICAgKiBzcmMvV2ViSW5kZXhl
ZERhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluZGV4ZWREYXRhYmFzZUlt
cGw6Om9wZW4pOgorICAgICAgICAqIHNyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmg6CisKIDIw
MTAtMDUtMDQgIFZhbmdlbGlzIEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggYjNhOTI2
ZWYyNzFhZDE5YTViMzkyNmY0NjU5YjE2ZDhiMjI5NGE4MS4uOTU1NTEzNzcxN2I1OTk2YjkzNzU2
ZDVmOTM2M2RmN2MzYWRkZTEyOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTI2MSw2ICsyNjEsNyBAQAog
ICAgICAgICAgICAgICAgICdzcmMvZ3RrL1dlYkZvbnRJbmZvLmNwcCcsCiAgICAgICAgICAgICAg
ICAgJ3NyYy9ndGsvV2ViRm9udEluZm8uaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9ndGsvV2Vi
SW5wdXRFdmVudEZhY3RvcnkuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL0lEQkNhbGxiYWNr
c1Byb3h5LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JREJDYWxsYmFja3NQcm94eS5oJywK
ICAgICAgICAgICAgICAgICAnc3JjL0lEQkRhdGFiYXNlUHJveHkuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL0lEQkRhdGFiYXNlUHJveHkuaCcsCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
REJDYWxsYmFja3MuaAppbmRleCA5ZTg1YWE4YzVmMDhhYmM5MGMwZmFjNDAyYWE5YWVkMWI5OTE0
OTg5Li42MTBmN2Q0NGFhMGU2MWY1YjIxMThkODc3NGVmOTU1NTU1NGQ3YjkzIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKQEAgLTMzLDIyICszMywxOSBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViSURCRGF0YWJhc2U7CiBjbGFzcyBXZWJJREJE
YXRhYmFzZUVycm9yOworY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogCi0vLyBFdmVy
eSBJbmRleGVkREIgbWV0aG9kIHRha2VzIGluIGEgcGFpciBvZiBjYWxsYmFja3MgZm9yIGVycm9y
L3N1Y2Nlc3Mgd2hpY2gKLS8vIGltcGxlbWVudCB0aGlzIGNsYXNzLiAgRWl0aGVyIDAgb3IgMSBv
ZiB0aGVzZSBtZXRob2RzIHdpbGwgYmUgY2FsbGVkIGFuZCB0aGUKLS8vIGNhbGxiYWNrIGNsYXNz
IG1heSBiZSBkZWxldGVkIGFueSB0aW1lIGFmdGVyIHRoZSBjYWxsYmFjayBpcyBjYWxsZWQuCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgUmVzdWx0VHlwZT4KIGNsYXNzIFdlYklEQkNhbGxiYWNrcyB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+V2ViSURCQ2FsbGJhY2tzKCkgeyB9CiAKLSAgICAvLyBJZiB0
aGUgbWV0aG9kIHdhcyBhIHN1Y2Nlc3MsIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aXRoIHRoZSBy
ZXN1bHQuICBUaGUKLSAgICAvLyByZXN1bHQgaXMgYSBwb2ludGVyIHRoYXQgdGhlIGNhbGxiYWNr
IHRha2VzIG93bmVyc2hpcCBvZi4KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFJlc3VsdFR5
cGUqKSA9IDA7Ci0KLSAgICAvLyBDYWxsZWQgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLgorICAg
IC8vIEZvciBjbGFzc2VzIHRoYXQgZm9sbG93IHRoZSBQSW1wbCBwYXR0ZXJuLCBwYXNzIGEgY29u
c3QgcmVmZXJlbmNlLgorICAgIC8vIEZvciB0aGUgcmVzdCwgcGFzcyBvd25lcnNoaXAgdG8gdGhl
IGNhbGxlZSB2aWEgYSBwb2ludGVyLgogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKGNvbnN0IFdl
YklEQkRhdGFiYXNlRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJ
REJEYXRhYmFzZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbmRleGVkRGF0YWJhc2UuaCBi
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5kZXhlZERhdGFiYXNlLmgKaW5kZXggYmI3NTE3
MDhmMjBmZDkzM2Y2N2FjMzM3NDIyNjA0ZmQyYTdhZjA2OC4uOTZlODA3ZGM2OTlmYWEyYzY4NmMz
YWQxYjM0YWEyMGYyMTRiZjcxNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJbmRleGVkRGF0YWJhc2UuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkluZGV4
ZWREYXRhYmFzZS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfldl
YkluZGV4ZWREYXRhYmFzZSgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2Vi
U3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURh
dGFiYXNlLCBXZWJJREJDYWxsYmFja3M8V2ViSURCRGF0YWJhc2U+KiwgV2ViRnJhbWUqLCBpbnQm
IGV4Y2VwdGlvbkNvZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJp
bmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJh
c2UsIFdlYklEQkNhbGxiYWNrcyosIFdlYkZyYW1lKiwgaW50JiBleGNlcHRpb25Db2RlKSA9IDA7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxs
YmFja3NQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDM0NmI1OGRhNzM2ZWVmZDRkNTdjMWU1NjhlYmE0
OGZiZjAzM2IwMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2Fs
bGJhY2tzUHJveHkuY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
IDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSURCQ2FsbGJhY2tzUHJveHkuaCIKKworI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5o
IgorI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZVBy
b3h5LmgiCisjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiV2ViSURCRGF0
YWJhc2UuaCIKKyNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCisjaW5jbHVkZSAiV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJREJDYWxsYmFja3NQcm94eTo6SURCQ2FsbGJhY2tz
UHJveHkoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICA6IG1fY2FsbGJh
Y2tzKGNhbGxiYWNrcykKK3sKK30KKworSURCQ2FsbGJhY2tzUHJveHk6On5JREJDYWxsYmFja3NQ
cm94eSgpCit7Cit9CisKK3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uRXJyb3IoY29uc3QgV2Vi
S2l0OjpXZWJJREJEYXRhYmFzZUVycm9yJiBlcnJvcikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25F
cnJvcihlcnJvcik7CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKK30KKwordm9pZCBJREJDYWxs
YmFja3NQcm94eTo6b25TdWNjZXNzKFdlYktpdDo6V2ViSURCRGF0YWJhc2UqIHdlYktpdEluc3Rh
bmNlKQoreworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoSURCRGF0YWJhc2VQcm94eTo6Y3Jl
YXRlKHdlYktpdEluc3RhbmNlKSk7CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKK30KKwordm9p
ZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKGNvbnN0IFdlYktpdDo6V2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlJiBzZXJpYWxpemVkU2NyaXB0VmFsdWUpCit7CisgICAgbV9jYWxsYmFja3Mt
Pm9uU3VjY2VzcyhzZXJpYWxpemVkU2NyaXB0VmFsdWUpOworICAgIG1fY2FsbGJhY2tzLmNsZWFy
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQorCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxi
YWNrc1Byb3h5LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKaW5k
ZXggZTgwM2M5NjZkNzBhNzk4ZTdjODgwMTExNWEwZjgzOTkwYzk5MTI5OC4uNjkyYjBhM2MzMTcx
ODg2YzQ2OTBmNjQ1ZGVmOTdmNWQ0MmQzM2MwYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJDYWxsYmFja3NQcm94eS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2Fs
bGJhY2tzUHJveHkuaApAQCAtMjksNDAgKzI5LDMzIEBACiAjaWZuZGVmIElEQkNhbGxiYWNrc1By
b3h5X2gKICNkZWZpbmUgSURCQ2FsbGJhY2tzUHJveHlfaAogCi0jaW5jbHVkZSAiSURCQ2FsbGJh
Y2tzLmgiCi0jaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIldlYklEQkNh
bGxiYWNrcy5oIgotI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgV2ViS2l0
IHsKK2NsYXNzIFdlYklEQkRhdGFiYXNlOworY2xhc3MgV2ViSURCRGF0YWJhc2VFcnJvcjsKK2Ns
YXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKK30KIAotdGVtcGxhdGUgPHR5cGVuYW1lIFdl
YktpdENsYXNzLCB0eXBlbmFtZSBXZWJDb3JlQ2xhc3MsIHR5cGVuYW1lIFdlYkNvcmVQcm94eT4K
LWNsYXNzIElEQkNhbGxiYWNrc1Byb3h5IDogcHVibGljIFdlYktpdDo6V2ViSURCQ2FsbGJhY2tz
PFdlYktpdENsYXNzPiB7Ci1wdWJsaWM6Ci0gICAgSURCQ2FsbGJhY2tzUHJveHkoUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M8V2ViQ29yZUNsYXNzPiA+IGNhbGxiYWNrcykKLSAgICAgICAgOiBtX2Nh
bGxiYWNrcyhjYWxsYmFja3MpIHsgfQorbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgdmlydHVh
bCB+SURCQ2FsbGJhY2tzUHJveHkoKSB7IH0KK2NsYXNzIElEQkNhbGxiYWNrczsKIAotICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViS2l0Q2xhc3MqIHdlYktpdEluc3RhbmNlKQotICAgIHsK
LSAgICAgICAgUmVmUHRyPFdlYkNvcmVDbGFzcz4gcHJveHkgPSBXZWJDb3JlUHJveHk6OmNyZWF0
ZSh3ZWJLaXRJbnN0YW5jZSk7Ci0gICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MocHJveHkp
OwotICAgICAgICBtX2NhbGxiYWNrcy5jbGVhcigpOwotICAgIH0KK2NsYXNzIElEQkNhbGxiYWNr
c1Byb3h5IDogcHVibGljIFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzIHsKK3B1YmxpYzoKKyAgICBJ
REJDYWxsYmFja3NQcm94eShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKTsKKyAg
ICB2aXJ0dWFsIH5JREJDYWxsYmFja3NQcm94eSgpOwogCi0gICAgdmlydHVhbCB2b2lkIG9uRXJy
b3IoY29uc3QgV2ViS2l0OjpXZWJJREJEYXRhYmFzZUVycm9yJiBlcnJvcikKLSAgICB7Ci0gICAg
ICAgIG1fY2FsbGJhY2tzLT5vbkVycm9yKGVycm9yKTsKLSAgICAgICAgbV9jYWxsYmFja3MuY2xl
YXIoKTsKLSAgICB9CisgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViS2l0OjpXZWJJ
REJEYXRhYmFzZUVycm9yJiBlcnJvcik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJL
aXQ6OldlYklEQkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSk7CisgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2Vzcyhjb25zdCBXZWJLaXQ6OldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKTsKIAogcHJpdmF0ZToKLSAgICBQYXNzUmVmUHRyPElEQkNhbGxiYWNrczxX
ZWJDb3JlQ2xhc3M+ID4gbV9jYWxsYmFja3M7CisgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gbV9j
YWxsYmFja3M7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5kZXhl
ZERhdGFiYXNlUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQ
cm94eS5jcHAKaW5kZXggOTA2OWI0NjMwZTI0MjUwZjEzOGE1OWE2OWU0ODA4ZDNlZWJmODI4OC4u
NDhkZTZhMTBiMjJlZjRiMzIxNzQ2MjM5MjQwMTc2OGNjZDliMjMwMSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5jcHAKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5jcHAKQEAgLTU3LDExICs1NywxMCBAQCBJ
bmRleGVkRGF0YWJhc2VQcm94eTo6fkluZGV4ZWREYXRhYmFzZVByb3h5KCkKIHsKIH0KIAotdm9p
ZCBJbmRleGVkRGF0YWJhc2VQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VDYWxsYmFja3M+IGNhbGxiYWNrcywgRnJhbWUqIGZyYW1lLCBFeGNlcHRpb25Db2RlJiBl
YykKK3ZvaWQgSW5kZXhlZERhdGFiYXNlUHJveHk6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBGcmFtZSogZnJhbWUsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIFdlYktpdDo6V2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViS2l0OjpXZWJGcmFtZUlt
cGw6OmZyb21GcmFtZShmcmFtZSk7Ci0gICAgdHlwZWRlZiBJREJDYWxsYmFja3NQcm94eTxXZWJL
aXQ6OldlYklEQkRhdGFiYXNlLCBJREJEYXRhYmFzZSwgSURCRGF0YWJhc2VQcm94eT4gQ2FsbGJh
Y2tzUHJveHk7Ci0gICAgbV93ZWJJbmRleGVkRGF0YWJhc2UtPm9wZW4obmFtZSwgZGVzY3JpcHRp
b24sIG1vZGlmeURhdGFiYXNlLCBuZXcgQ2FsbGJhY2tzUHJveHkoY2FsbGJhY2tzKSwgd2ViRnJh
bWUsIGVjKTsKKyAgICBtX3dlYkluZGV4ZWREYXRhYmFzZS0+b3BlbihuYW1lLCBkZXNjcmlwdGlv
biwgbW9kaWZ5RGF0YWJhc2UsIG5ldyBJREJDYWxsYmFja3NQcm94eShjYWxsYmFja3MpLCB3ZWJG
cmFtZSwgZWMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmggYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmgKaW5kZXggZDBmNTViNmQwNGVlNmU2N2FmNjAwMmRj
MTFmYTNlNTY0NTJhYmI5NC4uMGM4Njc0YTM1MzgyMmVhNmY4MGVlODNlMWQxODBlMDM0MTZiNGI0
NiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5o
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5kZXhlZERhdGFiYXNlUHJveHkuaApAQCAtNDIs
NyArNDIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5kZXhlZERhdGFiYXNl
PiBjcmVhdGUoKTsKICAgICB2aXJ0dWFsIH5JbmRleGVkRGF0YWJhc2VQcm94eSgpOwogCi0gICAg
dmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJh
Y2tzPiwgRnJhbWUqLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURh
dGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIEZyYW1lKiwgRXhjZXB0aW9uQ29kZSYp
OwogCiBwcml2YXRlOgogICAgIEluZGV4ZWREYXRhYmFzZVByb3h5KCk7CmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWREYXRhYmFzZUltcGwuY3BwIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmNwcAppbmRleCA2YTYzMjdiNTExZGRj
ODE1OTBjMjc3MzQxNDNlNmY2OGY4ODA5YTdlLi5iYjM3ZDJkM2Y3NGY2YWVkMjFlZGYzNGEyZTI0
ZGYwNmEwMDNjZWE3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWRE
YXRhYmFzZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFi
YXNlSW1wbC5jcHAKQEAgLTQ3LDkgKzQ3LDkgQEAgV2ViSW5kZXhlZERhdGFiYXNlSW1wbDo6fldl
YkluZGV4ZWREYXRhYmFzZUltcGwoKQogewogfQogCi12b2lkIFdlYkluZGV4ZWREYXRhYmFzZUlt
cGw6Om9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0
aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBXZWJJREJDYWxsYmFja3M8V2ViSURCRGF0YWJhc2U+
KiBjYWxsYmFja3NQdHIsIFdlYkZyYW1lKiwgaW50JiBleGNlcHRpb25Db2RlKQordm9pZCBXZWJJ
bmRleGVkRGF0YWJhc2VJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2Vi
U3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgV2ViSURCQ2FsbGJhY2tz
KiBjYWxsYmFja3NQdHIsIFdlYkZyYW1lKiwgaW50JiBleGNlcHRpb25Db2RlKQogewotICAgIE93
blB0cjxXZWJJREJDYWxsYmFja3M8V2ViSURCRGF0YWJhc2U+Kj4gY2FsbGJhY2tzKGNhbGxiYWNr
c1B0cik7CisgICAgT3duUHRyPFdlYklEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKGNhbGxiYWNrc1B0
cik7CiAgICAgY2FsbGJhY2tzLT5vbkVycm9yKFdlYklEQkRhdGFiYXNlRXJyb3IoMCwgIk5vdCBp
bXBsZW1lbnRlZCIpKTsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciByZWFsei4KIH0KZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1wbC5oIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmgKaW5kZXggYjRiOGM5
OTZkNTgwZDk2ZDliN2FmNGUyY2E5MDgzZWU2N2I4NDI2YS4uMmM5ZWQ1NGRiMTI2ZmQ2YmFlNDkw
NjliMDkyZTA3MDUyNDA0MjFkMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
bmRleGVkRGF0YWJhc2VJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVk
RGF0YWJhc2VJbXBsLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgV2ViSW5kZXhlZERhdGFiYXNl
SW1wbCA6IHB1YmxpYyBXZWJJbmRleGVkRGF0YWJhc2UgewogcHVibGljOgogICAgIHZpcnR1YWwg
fldlYkluZGV4ZWREYXRhYmFzZUltcGwoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0
IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2Rp
ZnlEYXRhYmFzZSwgV2ViSURCQ2FsbGJhY2tzPFdlYklEQkRhdGFiYXNlPiosIFdlYkZyYW1lKiwg
aW50JiBleGNlcHRpb25Db2RlKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJp
bmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJh
c2UsIFdlYklEQkNhbGxiYWNrcyosIFdlYkZyYW1lKiwgaW50JiBleGNlcHRpb25Db2RlKTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55143</attachid>
            <date>2010-05-05 12:36:56 -0700</date>
            <delta_ts>2010-05-06 10:41:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38594-20100505203654.patch</filename>
            <type>text/plain</type>
            <size>51862</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGQxYjFkZGRmZDJmYTRjMGMxYjc1ZDQ4ODkwZWQzNzhjMjMwMzgzYS4uNjdjMWIwNDVkNWZiMWU3
NzY5MGYyM2IwN2I1YjQ3ZmYyZjljYjEwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxMC0wNS0wNSAgSmVy
ZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgSW5kZXhlZERCIHRvIHVzZSBldmVudHMg
aW5zdGVhZCBvZiBjYWxsYmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM4NTk0CisKKyAgICAgICAgU3dpdGNoIEluZGV4ZWREQiBvdmVyIHRvIGFu
IGV2ZW50IGJhc2VkIG1vZGVsIHRvIG1hdGNoIHdoYXQKKyAgICAgICAgTW96aWxsYSAoYW5kIHBy
b2JhYmx5IE1TPykgYXJlIGRvaW5nLiAgVGhpcyBhbHNvIGdldHMgcmlkIG9mCisgICAgICAgIGEg
bG90IG9mIHRlbXBsYXRlIG1lc3MgYXQgdGhlIGV4cGVuc2Ugb2YgYSBsaXR0bGUgZXh0cmEgYm9p
bGVyCisgICAgICAgIHBsYXRlIGNvZGUgKGZvciBlYWNoIHR5cGUgdGhhdCBJREJSZXN1bHQucmVz
dWx0IGNvdWxkIGJlKS4KKworICAgICAgICBTdGlsbCBub3QgdGVzdGFibGUuICBOZXh0IHN0ZXA6
IEpTQyBiaW5kaW5ncy4gIEhvcGluZyB0byBzdGFydAorICAgICAgICBhZGRpbmcgdGVzdHMgc29v
biBub3cgdGhhdCB0aGUgYmFzaWMgQVBJIGlzIHN0YWJsZS4KKworICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhET01XcmFwcGVyOjpjb252ZXJ0RXZlbnRUYXJnZXRUb1Y4T2JqZWN0KToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21JREJDYWxsYmFja3MuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbmRleGVkRGF0YWJhc2VSZXF1ZXN0
Q3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnRvSURCUmVxdWVzdCk6CisgICAgICAgICogZG9t
L0V2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogc3RvcmFnZS9JREJDYWxsYmFja3MuaDoKKyAgICAg
ICAgKiBzdG9yYWdlL0lEQlJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlcXVlc3Q6OklEQlJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6fklE
QlJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25FcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6
SURCUmVxdWVzdDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpzdG9wKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCUmVxdWVzdDo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmV2
ZW50VGFyZ2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjplbnN1cmVFdmVu
dFRhcmdldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6dGltZXJGaXJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvbkV2ZW50Q29tbW9uKToKKyAgICAgICAg
KiBzdG9yYWdlL0lEQlJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1
ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlJlcXVlc3Q6OnJlc3VsdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6aWRiRGF0YWJhc2VSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6cmVhZHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjplcnJvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp0b0lEQlJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCUmVxdWVzdDo6cmVmRXZlbnRUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6ZGVyZWZFdmVudFRhcmdldCk6CisgICAgICAgICogc3RvcmFnZS9JREJSZXF1ZXN0
LmlkbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9JbmRleGVkRGF0YWJhc2UuaDoKKyAgICAg
ICAgKiBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5kZXhlZERhdGFiYXNlSW1wbDo6b3Blbik6CisgICAgICAgICogc3RvcmFnZS9JbmRleGVkRGF0
YWJhc2VJbXBsLmg6CisgICAgICAgICogc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZVJlcXVlc3Q6Om9wZW4pOgorICAg
ICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oOgorICAgICAgICAqIHN0b3Jh
Z2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGw6CisKIDIwMTAtMDUtMDUgIE5pa29sYXMgWmlt
bWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkLiBB
ZGQgbWlzc2luZyBmaWxlcyBnZW5lcmF0ZWQgYnkgInJ1bi1iaW5kaW5ncy10ZXN0IiwgYWZ0ZXIg
dGhlIERPTVRlc3RDYWxsYmFjay5pZGwgYWRkaXRpb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGM5MGI3ODk5Y2ZiOTE2NTMw
MGYyYzkzMWI4NmQ1YzhiY2E2NzRmZjAuLjZjMzc5NmI2YjgzMzVmNWI3MWFhOWE1ZDI0N2UyZWVi
MWIxYjk3YTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0yMjIsNiArMjIyLDcgQEAKICAgICAgICAgICAgICdzdG9yYWdlL0lE
QkRhdGFiYXNlRXJyb3IuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXhj
ZXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRs
JywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQlJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdz
dG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdl
L1NRTEVycm9yLmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9TUUxSZXN1bHRTZXQuaWRsJywK
QEAgLTY5OSw3ICs3MDAsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENT
U1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhDU1NTdHlsZVNoZWV0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q1NTVmFsdWVDdXN0b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhDdXN0b21JREJDYWxsYmFja3MuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q3VzdG9tRXZlbnRMaXN0ZW5lci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUV2ZW50TGlzdGVuZXIuaCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tUG9zaXRpb25DYWxsYmFjay5jcHAnLApAQCAtNzQ0LDcg
Kzc0NCw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTFBsdWdJbkVs
ZW1lbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1M
U2VsZWN0RWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEhUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmgnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEluZGV4ZWREYXRhYmFzZVJlcXVlc3RDdXN0b20uY3BwJywKKyAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhJREJSZXF1ZXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3Vz
dG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SmF2YVNjcmlwdENh
bGxGcmFtZUN1c3RvbS5jcHAnLApAQCAtMzMxMCw2ICszMzEwLDggQEAKICAgICAgICAgICAgICdz
dG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURC
RGF0YWJhc2VSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZVJl
cXVlc3QuaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJSZXF1ZXN0LmNwcCcsCisgICAgICAg
ICAgICAnc3RvcmFnZS9JREJSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSW5kZXhl
ZERhdGFiYXNlLmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JbmRleGVkRGF0YWJhc2UuaCcs
CiAgICAgICAgICAgICAnc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcCcsCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKaW5kZXggYjJlZWViNDk1YjgzZWViZjMxMGQwMDhjNGU5
NTZlYTAwMWJjMWQ4NC4uYzE1MzU1YzIzYTE4ODQ3Zjg3MmM2ZDBkYjdkNjE2MzM2OGM3ZDIyOSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAtNDksNiArNDksNyBAQAogI2lu
Y2x1ZGUgIlY4RXZlbnRTb3VyY2UuaCIKICNpbmNsdWRlICJWOEhUTUxDb2xsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiVjhIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJWOElEQlJlcXVlc3QuaCIKICNp
bmNsdWRlICJWOElzb2xhdGVkQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4TG9jYXRpb24uaCIKICNp
bmNsdWRlICJWOE1lc3NhZ2VDaGFubmVsLmgiCkBAIC0zNzcsNiArMzc4LDExIEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOERPTVdyYXBwZXI6OmNvbnZlcnRFdmVudFRhcmdldFRvVjhPYmplY3Qo
RXZlbnRUYXJnZXQqIHRhCiAgICAgICAgIHJldHVybiB0b1Y4KG5vdGlmaWNhdGlvbik7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIGlmIChJREJSZXF1ZXN0KiBp
ZGJSZXF1ZXN0ID0gdGFyZ2V0LT50b0lEQlJlcXVlc3QoKSkKKyAgICAgICAgcmV0dXJuIHRvVjgo
aWRiUmVxdWVzdCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShXRUJfU09DS0VUUykKICAgICBpZiAo
V2ViU29ja2V0KiB3ZWJTb2NrZXQgPSB0YXJnZXQtPnRvV2ViU29ja2V0KCkpCiAgICAgICAgIHJl
dHVybiB0b1Y4KHdlYlNvY2tldCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEN1c3RvbUlEQkNhbGxiYWNrcy5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhDdXN0b21JREJDYWxsYmFja3MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTUx
N2YxNWIyNDI2YjgzNjEwYjA2MDMxOGU2N2JlMTRhNjVkN2U5Yi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEN1c3RvbUlEQkNhbGxiYWNrcy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTIzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFY4Q3VzdG9tSURCQ2FsbGJhY2tzX2gKLSNkZWZpbmUgVjhDdXN0b21JREJDYWxsYmFja3Nf
aAotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUg
IklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRlICJWOEN1c3RvbVZvaWRDYWxsYmFjay5oIgot
I2luY2x1ZGUgIlY4SURCRGF0YWJhc2VFcnJvci5oIgotI2luY2x1ZGUgIldvcmxkQ29udGV4dEhh
bmRsZS5oIgotI2luY2x1ZGUgPHY4Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIEZJ
WE1FOiBNYXliZSBzcGxpdCBjb21tb24gcGFydHMgaW50byBhIGJhc2UgY2xhc3MuCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgUmVzdWx0VHlwZSwgdHlwZW5hbWUgUmVzdWx0V3JhcHBlclR5cGU+Ci1jbGFz
cyBWOEN1c3RvbUlEQkNhbGxiYWNrcyA6IHB1YmxpYyBJREJDYWxsYmFja3M8UmVzdWx0VHlwZT4g
ewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4Q3VzdG9tSURCQ2FsbGJhY2tzPiBj
cmVhdGUodjg6OkxvY2FsPHY4OjpWYWx1ZT4gb25TdWNjZXNzLCB2ODo6TG9jYWw8djg6OlZhbHVl
PiBvbkVycm9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWOEN1c3RvbUlEQkNhbGxiYWNr
cyhvblN1Y2Nlc3MsIG9uRXJyb3IsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKTsKLSAgICB9Ci0K
LSAgICB2aXJ0dWFsIH5WOEN1c3RvbUlEQkNhbGxiYWNrcygpCi0gICAgewotICAgICAgICBtX29u
U3VjY2Vzcy5EaXNwb3NlKCk7Ci0gICAgICAgIG1fb25FcnJvci5EaXNwb3NlKCk7Ci0gICAgfQot
Ci0gICAgLy8gRklYTUU6IEhhbmRsZSBzdXNwZW5kL3Jlc3VtZSBjb3JyZWN0bHkuCi0KLXByaXZh
dGU6Ci0gICAgVjhDdXN0b21JREJDYWxsYmFja3Modjg6OkxvY2FsPHY4OjpWYWx1ZT4gb25TdWNj
ZXNzLCB2ODo6TG9jYWw8djg6OlZhbHVlPiBvbkVycm9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQotICAgICAgICA6IElEQkNhbGxiYWNrczxSZXN1bHRU
eXBlPihzY3JpcHRFeGVjdXRpb25Db250ZXh0LCB0aGlzKQotICAgICAgICAsIG1fb25TdWNjZXNz
KG9uU3VjY2Vzcy0+SXNPYmplY3QoKSA/IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXco
b25TdWNjZXNzLT5Ub09iamVjdCgpKSA6IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KCkpCi0g
ICAgICAgICwgbV9vbkVycm9yKG9uRXJyb3ItPklzT2JqZWN0KCkgPyB2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0Pjo6TmV3KG9uRXJyb3ItPlRvT2JqZWN0KCkpIDogdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4oKSkKLSAgICAgICAgLCBtX3dvcmxkQ29udGV4dChVc2VDdXJyZW50V29ybGQpCi0g
ICAgewotICAgIH0KLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlPgotICAgIHZvaWQgb25F
dmVudCh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgUGFzc1JlZlB0cjxUeXBl
PiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICghQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChjYWxsYmFj
ay5Jc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdjg6OkhhbmRsZVNj
b3BlIGhhbmRsZVNjb3BlOwotICAgICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0
ID0gdG9WOENvbnRleHQoQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
IG1fd29ybGRDb250ZXh0KTsKLSAgICAgICAgaWYgKGNvbnRleHQuSXNFbXB0eSgpKQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIHY4OjpDb250ZXh0OjpTY29wZSBzY29wZShjb250ZXh0
KTsKLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSA9IHsKLSAgICAgICAgICAg
IHRvVjgodmFsdWUpCi0gICAgICAgIH07Ci0KLSAgICAgICAgLy8gRklYTUU6IE1ha2UgdGhpcyB3
b3JrIGZvciB3b3JrZXJzLgotICAgICAgICBBU1NFUlQoQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSk7Ci0gICAgICAgIFJlZlB0cjxGcmFtZT4g
cHJvdGVjdG9yKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpLT5mcmFtZSgpKTsKLQotICAgICAgICBib29sIGNhbGxiYWNrUmV0
dXJuVmFsdWUgPSBmYWxzZTsKLSAgICAgICAgLy8gRklYTUU6IERvIHdlIGNhcmUgaWYgdGhpcyB0
aGluZyByZXR1cm5zIHRydWUgKGkuZS4gaXQgcmFpc2VkIGFuIGV4Y2VwdGlvbik/Ci0gICAgICAg
IGludm9rZUNhbGxiYWNrKGNhbGxiYWNrLCAxLCBhcmd2LCBjYWxsYmFja1JldHVyblZhbHVlKTsK
LSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzQXN5bmMoUGFzc1JlZlB0cjxSZXN1
bHRUeXBlPiByZXN1bHQpCi0gICAgewotICAgICAgICBvbkV2ZW50KG1fb25TdWNjZXNzLCBSZXN1
bHRXcmFwcGVyVHlwZTo6Y3JlYXRlKHJlc3VsdCkpOwotICAgIH0KLQotICAgIHZpcnR1YWwgdm9p
ZCBvbkVycm9yQXN5bmMoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKLSAgICB7
Ci0gICAgICAgIG9uRXZlbnQobV9vbkVycm9yLCBlcnJvcik7Ci0gICAgfQotCi0gICAgLy8gRklY
TUU6IFVzZSBPd25IYW5kbGVzLgotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IG1fb25T
dWNjZXNzOwotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IG1fb25FcnJvcjsKLQotICAg
IFdvcmxkQ29udGV4dEhhbmRsZSBtX3dvcmxkQ29udGV4dDsKLX07Ci0KLX0KLQotI2VuZGlmCi0K
LSNlbmRpZiAvLyBWOEN1c3RvbUlEQkNhbGxiYWNrc19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOElEQlJlcXVlc3RDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhJREJSZXF1ZXN0Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODM2NzEzNjNm
YzQ0MDNkNDE5ZTgwOTkxZDYwN2M3OTliNjJhZGMyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtMCwwICsxLDYx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
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
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlY4SURCUmVxdWVzdC5oIgorCisjaW5j
bHVkZSAiSURCUmVxdWVzdC5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgor
I2luY2x1ZGUgIlY4SURCRGF0YWJhc2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgor
CisjaW5jbHVkZSA8djguaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhJREJSZXF1ZXN0OjpyZXN1bHRBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNf
U1RBVFMoIkRPTS5JREJSZXF1ZXN0LnJlc3VsdCIpOworCisgICAgSURCUmVxdWVzdCogaWRiUmVx
dWVzdCA9IFY4SURCUmVxdWVzdDo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgc3dpdGNo
IChpZGJSZXF1ZXN0LT5yZXN1bHRUeXBlKCkpIHsKKyAgICBjYXNlIElEQlJlcXVlc3Q6OlVOREVG
SU5FRDoKKyAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKKyAgICBjYXNlIElEQlJlcXVl
c3Q6OklEQkRBVEFCQVNFOgorICAgICAgICByZXR1cm4gdG9WOChpZGJSZXF1ZXN0LT5pZGJEYXRh
YmFzZVJlc3VsdCgpKTsKKyAgICBjYXNlIElEQlJlcXVlc3Q6OlNFUklBTElaRURTQ1JJUFRWQUxV
RToKKyAgICAgICAgcmV0dXJuIGlkYlJlcXVlc3QtPnNlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJlc3Vs
dCgpLT5kZXNlcmlhbGl6ZSgpOworICAgIH0KKworICAgIEFTU0VSVCgwKTsKKyAgICByZXR1cm4g
djg6OlVuZGVmaW5lZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluZGV4ZWREYXRhYmFzZVJlcXVlc3RDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmRleGVkRGF0YWJhc2VSZXF1
ZXN0Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZThjMmI2ODg4Y2Uz
MWVkODExYjY1YTEzMzIzNDJmMDJlMjI1YTczMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluZGV4ZWRE
YXRhYmFzZVJlcXVlc3RDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0g
KiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotI2luY2x1
ZGUgIlY4SW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oIgotCi0jaW5jbHVkZSAiSURCRGF0YWJhc2VF
cnJvci5oIgotI2luY2x1ZGUgIklEQkRhdGFiYXNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIlY4Qmlu
ZGluZy5oIgotI2luY2x1ZGUgIlY4Q3VzdG9tSURCQ2FsbGJhY2tzLmgiCi0jaW5jbHVkZSAiVjhJ
REJEYXRhYmFzZUVycm9yLmgiCi0jaW5jbHVkZSAiVjhJREJEYXRhYmFzZVJlcXVlc3QuaCIKLSNp
bmNsdWRlICJWOFByb3h5LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4SW5kZXhlZERhdGFiYXNlUmVxdWVzdDo6b3BlbkNhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCi17Ci0gICAgSW5kZXhlZERhdGFiYXNlUmVxdWVzdCogaW1wID0g
VjhJbmRleGVkRGF0YWJhc2VSZXF1ZXN0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBp
ZiAoYXJncy5MZW5ndGgoKSA8IDIpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFY4UHJveHk6
OlR5cGVFcnJvcik7Ci0gICAgVjhQYXJhbWV0ZXI8PiBuYW1lID0gYXJnc1swXTsKLSAgICBWOFBh
cmFtZXRlcjw+IGRlc2NyaXB0aW9uID0gYXJnc1sxXTsKLQotICAgIGJvb2wgbW9kaWZ5RGF0YWJh
c2UgPSB0cnVlOwotICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMiAmJiAhYXJnc1syXS0+SXNVbmRl
ZmluZWQoKSAmJiAhYXJnc1syXS0+SXNOdWxsKCkpCi0gICAgICAgIG1vZGlmeURhdGFiYXNlID0g
YXJnc1syXS0+Qm9vbGVhblZhbHVlKCk7Ci0KLSAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBvbkVy
cm9yOwotICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IG9uU3VjY2VzczsKLSAgICBpZiAoYXJncy5M
ZW5ndGgoKSA+IDMgJiYgIWFyZ3NbM10tPklzVW5kZWZpbmVkKCkgJiYgIWFyZ3NbM10tPklzTnVs
bCgpKSB7Ci0gICAgICAgIGlmICghYXJnc1szXS0+SXNPYmplY3QoKSkKLSAgICAgICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKCJvbmVycm9yIGNhbGxiYWNrIHdhcyBub3QgdGhlIHByb3BlciB0eXBl
Iik7Ci0gICAgICAgIG9uRXJyb3IgPSBhcmdzWzNdOwotICAgIH0KLSAgICBpZiAoYXJncy5MZW5n
dGgoKSA+IDQgJiYgIWFyZ3NbNF0tPklzVW5kZWZpbmVkKCkgJiYgIWFyZ3NbNF0tPklzTnVsbCgp
KSB7Ci0gICAgICAgIGlmICghYXJnc1s0XS0+SXNPYmplY3QoKSkKLSAgICAgICAgICAgIHJldHVy
biB0aHJvd0Vycm9yKCJvbnN1Y2Nlc3MgY2FsbGJhY2sgd2FzIG5vdCB0aGUgcHJvcGVyIHR5cGUi
KTsKLSAgICAgICAgb25TdWNjZXNzID0gYXJnc1s0XTsKLSAgICB9Ci0gICAgaWYgKCFvbkVycm9y
LT5Jc09iamVjdCgpICYmICFvblN1Y2Nlc3MtPklzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKCJOZWl0aGVyIHRoZSBvbmVycm9yIG5vciB0aGUgb25zdWNjZXNzIGNhbGxiYWNr
cyB3ZXJlIHNldC4iKTsKLQotICAgIEZyYW1lKiBmcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJh
bWVGb3JDdXJyZW50Q29udGV4dCgpOwotICAgIFJlZlB0cjxWOEN1c3RvbUlEQkNhbGxiYWNrczxJ
REJEYXRhYmFzZSwgSURCRGF0YWJhc2VSZXF1ZXN0PiA+IGNhbGxiYWNrcyA9Ci0gICAgICAgIFY4
Q3VzdG9tSURCQ2FsbGJhY2tzPElEQkRhdGFiYXNlLCBJREJEYXRhYmFzZVJlcXVlc3Q+OjpjcmVh
dGUob25TdWNjZXNzLCBvbkVycm9yLCBmcmFtZS0+ZG9jdW1lbnQoKSk7Ci0KLSAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBpbXAtPm9wZW4obmFtZSwgZGVzY3JpcHRpb24sIG1vZGlmeURh
dGFiYXNlLCBjYWxsYmFja3MsIGVjKTsKLSAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKGVjKTsKLSAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldC5jcHAgYi9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKaW5kZXggMTU5ODc5
MDBhMjExZTAwNmM2OTgxZTQ1YzdkYzBlMzJlZGY1MTVjOS4uY2ZhMDMyOTcxMzYxZDUxOGFmNjFj
M2E0MmUzNjI4NjNjYzdiYWZjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQu
Y3BwCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcApAQCAtMTU2LDYgKzE1NiwxMyBA
QCBOb3RpZmljYXRpb24qIEV2ZW50VGFyZ2V0Ojp0b05vdGlmaWNhdGlvbigpCiB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorSURCUmVxdWVzdCogRXZlbnRUYXJnZXQ6
OnRvSURCUmVxdWVzdCgpCit7CisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKwogYm9vbCBFdmVu
dFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
UGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQogewog
ICAgIEV2ZW50VGFyZ2V0RGF0YSogZCA9IGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaCBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmgKaW5kZXggZGE5OGQ5ODhhNDU2ODY1NDVmM2FlMDJlOTdiZGRkMTVlZjk2OWU1Ny4uY2NiNmJk
MmU1ZTcxMzY3NmJjMDJiNjA3ZjkyMDc0OWVkZmU2Yzc2NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9k
b20vRXZlbnRUYXJnZXQuaAorKysgYi9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCkBAIC00OCw2
ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBFdmVudDsKICAgICBjbGFz
cyBFdmVudExpc3RlbmVyOwogICAgIGNsYXNzIEV2ZW50U291cmNlOworICAgIGNsYXNzIElEQlJl
cXVlc3Q7CiAgICAgY2xhc3MgTWVzc2FnZVBvcnQ7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFz
cyBOb3RpZmljYXRpb247CkBAIC0xMTksNiArMTIwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdmlydHVhbCBOb3RpZmljYXRpb24qIHRvTm90aWZpY2F0aW9uKCk7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgICAgICB2aXJ0dWFsIElEQlJlcXVl
c3QqIHRvSURCUmVxdWVzdCgpOworI2VuZGlmCisKICAgICAgICAgdmlydHVhbCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgPSAwOwogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+LCBib29sIHVzZUNhcHR1cmUpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oIGIvV2ViQ29yZS9zdG9yYWdl
L0lEQkNhbGxiYWNrcy5oCmluZGV4IGNlMGQyMGQyM2MyMmJkNWVhNmFjYmE4NTkwNjc4Y2U3NDVi
ZWZmN2IuLjc0YzExZDg1MmY0ZWRjNTBjODk1MzZlNTQ0N2E0MjQ4Zjk2NDZmYjggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3MuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2Uv
SURCQ2FsbGJhY2tzLmgKQEAgLTI5LDc0ICsyOSwyMiBAQAogI2lmbmRlZiBJREJDYWxsYmFja3Nf
aAogI2RlZmluZSBJREJDYWxsYmFja3NfaAogCi0jaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0Lmgi
CisjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgi
Ci0jaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1
ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci0vLyBBbGwgSW5kZXhlZERCIGNhbGxiYWNrcyBtdXN0IGltcGxlbWVudCB0aGlzIGNsYXNzLiAg
SXQgaGFuZGxlcyB0aGUgYXN5bmNocm9ub3VzIGZpcmluZyBvZgotLy8gdGhlIGNhbGxiYWNrcy4K
LXRlbXBsYXRlIDx0eXBlbmFtZSBSZXN1bHRUeXBlPgotY2xhc3MgSURCQ2FsbGJhY2tzIDogcHVi
bGljIFJlZkNvdW50ZWQ8SURCQ2FsbGJhY2tzPFJlc3VsdFR5cGU+ID4sIHB1YmxpYyBBY3RpdmVE
T01PYmplY3QgeworY2xhc3MgSURCQ2FsbGJhY2tzIDogcHVibGljIFJlZkNvdW50ZWQ8SURCQ2Fs
bGJhY2tzPiB7CiBwdWJsaWM6Ci0gICAgSURCQ2FsbGJhY2tzKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHZvaWQqIHVwY2FzdFBvaW50ZXIpCi0gICAgICAg
IDogQWN0aXZlRE9NT2JqZWN0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHVwY2FzdFBvaW50ZXIp
Ci0gICAgICAgICwgbV90aW1lcih0aGlzLCAmSURCQ2FsbGJhY2tzOjp0aW1lckZpcmVkKQotICAg
IHsKLSAgICB9Ci0KICAgICB2aXJ0dWFsIH5JREJDYWxsYmFja3MoKSB7IH0KIAotICAgIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8UmVzdWx0VHlwZT4gcmVzdWx0KQotICAgIHsKLSAgICAgICAg
QVNTRVJUKCFtX3Jlc3VsdCk7Ci0gICAgICAgIEFTU0VSVCghbV9lcnJvcik7Ci0gICAgICAgIG1f
cmVzdWx0ID0gcmVzdWx0OwotICAgICAgICBBU1NFUlQobV9yZXN1bHQpOwotCi0gICAgICAgIEFT
U0VSVCghbV90aW1lci5pc0FjdGl2ZSgpKTsKLSAgICAgICAgbV9zZWxmUmVmID0gdGhpczsKLSAg
ICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7Ci0gICAgfQotCi0gICAgdm9pZCBvbkVycm9y
KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpCi0gICAgewotICAgICAgICBBU1NF
UlQoIW1fcmVzdWx0KTsKLSAgICAgICAgQVNTRVJUKCFtX2Vycm9yKTsKLSAgICAgICAgbV9lcnJv
ciA9IGVycm9yOwotICAgICAgICBBU1NFUlQobV9lcnJvcik7Ci0KLSAgICAgICAgQVNTRVJUKCFt
X3RpbWVyLmlzQWN0aXZlKCkpOwotICAgICAgICBtX3NlbGZSZWYgPSB0aGlzOwotICAgICAgICBt
X3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLSAgICB9Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzQXN5bmMoUGFzc1JlZlB0cjxSZXN1bHRUeXBlPikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBvbkVycm9yQXN5bmMoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgPSAw
OwotCi0gICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPElEQkNhbGxiYWNrcz4qKQotICAgIHsKLSAg
ICAgICAgaWYgKG1fcmVzdWx0KSB7Ci0gICAgICAgICAgICBvblN1Y2Nlc3NBc3luYyhtX3Jlc3Vs
dCk7Ci0gICAgICAgICAgICBtX3Jlc3VsdCA9IDA7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBvbkVycm9yQXN5bmMobV9lcnJvcik7Ci0gICAgICAgICAgICBtX2Vycm9yID0gMDsKLSAg
ICAgICAgfQotICAgICAgICBtX3NlbGZSZWYgPSAwOyAvLyBNYXkgdHJpZ2dlciBhIGRlbGV0ZSBp
bW1lZGlhdGVseS4KLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgVGltZXI8SURCQ2FsbGJhY2tzPiBt
X3RpbWVyOwotICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IG1fc2VsZlJlZjsKLSAgICBSZWZQdHI8
UmVzdWx0VHlwZT4gbV9yZXN1bHQ7Ci0gICAgUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IG1fZXJy
b3I7CisgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9y
PikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZT4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lE
QlJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiZmI5MWM5NGJjMWJmOWZjMjBiNmNjZDJiZDA5Njg3
OTg5MTAwZWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5j
cHAKQEAgLTAsMCArMSwxNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKKworI2luY2x1ZGUg
IkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJFdmVudExp
c3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNl
UmVxdWVzdC5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAg
ICAsIG1fcmVzdWx0VHlwZShVTkRFRklORUQpCisgICAgLCBtX3RpbWVyKHRoaXMsICZJREJSZXF1
ZXN0Ojp0aW1lckZpcmVkKQorICAgICwgbV9zdG9wcGVkKGZhbHNlKQorICAgICwgbV9hYm9ydGVk
KGZhbHNlKQorICAgICwgbV9yZWFkeVN0YXRlKElOSVRJQUwpCit7Cit9CisKK0lEQlJlcXVlc3Q6
On5JREJSZXF1ZXN0KCkKK3sKKyAgICBpZiAobV9yZWFkeVN0YXRlICE9IERPTkUpCisgICAgICAg
IGFib3J0KCk7Cit9CisKKworUGFzc1JlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+IElEQlJlcXVl
c3Q6OmlkYkRhdGFiYXNlUmVzdWx0KCkKK3sKKyAgICBBU1NFUlQobV9yZXN1bHRUeXBlID09IElE
QkRBVEFCQVNFKTsKKyAgICByZXR1cm4gbV9pZGJEYXRhYmFzZVJlc3VsdDsKK30KKworCitQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gSURCUmVxdWVzdDo6c2VyaWFsaXplZFNjcmlw
dFZhbHVlUmVzdWx0KCkKK3sKKyAgICBBU1NFUlQobV9yZXN1bHRUeXBlID09IFNFUklBTElaRURT
Q1JJUFRWQUxVRSk7CisgICAgcmV0dXJuIG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlUmVzdWx0Owor
fQorCit2b2lkIElEQlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9y
PiBlcnJvcikKK3sKKyAgICBvbkV2ZW50Q29tbW9uKCk7CisgICAgbV9lcnJvciA9IGVycm9yOwor
fQorCit2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlPiBp
ZGJEYXRhYmFzZSkKK3sKKyAgICBvbkV2ZW50Q29tbW9uKCk7CisgICAgbV9yZXN1bHRUeXBlID0g
SURCREFUQUJBU0U7CisgICAgbV9pZGJEYXRhYmFzZVJlc3VsdCA9IElEQkRhdGFiYXNlUmVxdWVz
dDo6Y3JlYXRlKGlkYkRhdGFiYXNlKTsKK30KKwordm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkK
K3sKKyAgICBvbkV2ZW50Q29tbW9uKCk7CisgICAgbV9yZXN1bHRUeXBlID0gU0VSSUFMSVpFRFND
UklQVFZBTFVFOworICAgIG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlUmVzdWx0ID0gc2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOworfQorCit2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKK3sKKyAgICBtX3Rp
bWVyLnN0b3AoKTsKKyAgICBtX2Fib3J0ZWQgPSB0cnVlOworICAgIC8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBjYW5jZWwgYW55IHBlbmRpbmcgd29yayBiZWluZyBkb25lIGluIHRoZSBiYWNrZW5kLgor
fQorCitTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBJREJSZXF1ZXN0OjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7Cit9CisKK3ZvaWQgSURCUmVxdWVzdDo6c3RvcCgpCit7CisgICAgYWJv
cnQoKTsKKyAgICBtX3NlbGZSZWYgPSAwOyAvLyBDb3VsZCB0cmlnZ2VyIGEgZGVsZXRlLgorfQor
Cit2b2lkIElEQlJlcXVlc3Q6OnN1c3BlbmQoKQoreworICAgIG1fdGltZXIuc3RvcCgpOworfQor
Cit2b2lkIElEQlJlcXVlc3Q6OnJlc3VtZSgpCit7CisgICAgLy8gV2Ugb25seSBob2xkIG91ciBz
ZWxmIHJlZiB3aGVuIHdlJ3JlIHdhaXRpbmcgdG8gZGlzcGF0Y2ggYW4gZXZlbnQuCisgICAgaWYg
KG1fc2VsZlJlZiAmJiAhbV9hYm9ydGVkKQorICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKK30KKworRXZlbnRUYXJnZXREYXRhKiBJREJSZXF1ZXN0OjpldmVudFRhcmdldERhdGEoKQor
eworICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Cit9CisKK0V2ZW50VGFyZ2V0RGF0YSog
SURCUmVxdWVzdDo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZl
bnRUYXJnZXREYXRhOworfQorCit2b2lkIElEQlJlcXVlc3Q6OnRpbWVyRmlyZWQoVGltZXI8SURC
UmVxdWVzdD4qKQoreworICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAgQVNT
RVJUKG1fc2VsZlJlZik7CisgICAgQVNTRVJUKCFtX3N0b3BwZWQpOworICAgIEFTU0VSVCghbV9h
Ym9ydGVkKTsKKworICAgIC8vIFdlIG5lZWQgdG8ga2VlcCBzZWxmLXJlZmVyZW5jaW5nIG91cnNl
bGYsIG90aGVyd2lzZSBpdCdzIHBvc3NpYmxlIHdlJ2xsIGJlIGRlbGV0ZWQuCisgICAgLy8gQnV0
IGluIHNvbWUgY2FzZXMsIHN1c3BlbmQoKSBjb3VsZCBiZSBjYWxsZWQgd2hpbGUgd2UncmUgZGlz
cGF0Y2hpbmcgYW4gZXZlbnQsIHNvIHdlCisgICAgLy8gbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBy
ZXN1bWUoKSBkb2Vzbid0IHJlLXN0YXJ0IHRoZSB0aW1lciBiYXNlZCBvbiBtX3NlbGZSZWYgYmVp
bmcgc2V0LgorICAgIFJlZlB0cjxJREJSZXF1ZXN0PiBzZWxmUmVmID0gbV9zZWxmUmVmLnJlbGVh
c2UoKTsKKworICAgIGlmIChtX2Vycm9yKSB7CisgICAgICAgIEFTU0VSVChtX3Jlc3VsdFR5cGUg
PT0gVU5ERUZJTkVEKTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5lcnJvckV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBBU1NFUlQobV9yZXN1bHRUeXBlICE9IFVOREVGSU5FRCk7CisgICAgICAgIGRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50LCBmYWxzZSwgZmFsc2Up
KTsgICAgICAgIAorICAgIH0KK30KKwordm9pZCBJREJSZXF1ZXN0OjpvbkV2ZW50Q29tbW9uKCkK
K3sKKyAgICBBU1NFUlQobV9yZWFkeVN0YXRlIDwgRE9ORSk7CisgICAgQVNTRVJUKG1fcmVzdWx0
VHlwZSA9PSBVTkRFRklORUQpOworICAgIEFTU0VSVCghbV9lcnJvcik7CisgICAgQVNTRVJUKCFt
X3NlbGZSZWYpOworICAgIEFTU0VSVCghbV90aW1lci5pc0FjdGl2ZSgpKTsKKworICAgIGlmICht
X2Fib3J0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVhZHlTdGF0ZSA9IERPTkU7Cisg
ICAgbV9zZWxmUmVmID0gdGhpczsKKyAgICBpZiAoIW1fc3RvcHBlZCkKKyAgICAgICAgbV90aW1l
ci5zdGFydE9uZVNob3QoMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oIGIvV2ViQ29yZS9zdG9y
YWdlL0lEQlJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGZkZTQ5MjBjZDIxYTZjODhmM2Y2NTFhOTY2
ZmVkYzA0NTY2YjE0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVl
c3QuaApAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURCUmVxdWVzdF9oCisjZGVmaW5lIElE
QlJlcXVlc3RfaAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJB
Y3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiSURCQ2Fs
bGJhY2tzLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBJREJEYXRhYmFzZVJlcXVlc3Q7CisKK2NsYXNzIElEQlJlcXVlc3QgOiBwdWJsaWMgSURC
Q2FsbGJhY2tzLCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVET01PYmplY3Qgewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0KSB7IHJldHVybiBhZG9wdFJlZihuZXcgSURCUmVxdWVz
dChjb250ZXh0KSk7IH0KKyAgICB2aXJ0dWFsIH5JREJSZXF1ZXN0KCk7CisKKyAgICAvLyBUaGUg
cmVzdWx0IGF0dHJpYnV0ZSBvZiB0aGlzIGNsYXNzIGNhbiByZXByZXNlbnQgbWFueSBkaWZmZXJl
bnQgV2ViQ29yZSB0eXBlcy4KKyAgICBlbnVtIFJlc3VsdFR5cGUgeworICAgICAgICBVTkRFRklO
RUQgPSAwLAorICAgICAgICBJREJEQVRBQkFTRSwKKyAgICAgICAgU0VSSUFMSVpFRFNDUklQVFZB
TFVFCisgICAgfTsKKyAgICBSZXN1bHRUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3Jlc3VsdFR5cGU7IH0KKyAgICBQYXNzUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4gaWRiRGF0
YWJhc2VSZXN1bHQoKTsKKyAgICBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2Vy
aWFsaXplZFNjcmlwdFZhbHVlUmVzdWx0KCk7CisgICAgLy8gRklYTUU6IEhhdmUgb25lIHN1Y2gg
Z2V0dGVyIGZvciBlYWNoIHBvc3NpYmxlIHJlc3VsdCB0eXBlLgorCisgICAgLy8gRGVmaW5lZCBp
biB0aGUgSURMCisgICAgdm9pZCBhYm9ydCgpOworICAgIGVudW0gUmVhZHlTdGF0ZSB7CisgICAg
ICAgIElOSVRJQUwgPSAwLAorICAgICAgICBMT0FESU5HID0gMSwKKyAgICAgICAgRE9ORSA9IDIK
KyAgICB9OworICAgIHVuc2lnbmVkIHNob3J0IHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3JlYWR5U3RhdGU7IH0KKyAgICBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9yKCkg
Y29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQorICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIoc3VjY2Vzcyk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihlcnJv
cik7CisKKyAgICAvLyBJREJDYWxsYmFja3MKKyAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNz
UmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBh
c3NSZWZQdHI8SURCRGF0YWJhc2U+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CisgICAgLy8gRklYTUU6IEhhdmUgb25lIG9u
U3VjY2VzcyBmdW5jdGlvbiBmb3IgZWFjaCBwb3NzaWJsZSByZXN1bHQgdHlwZS4KKworICAgIC8v
IEV2ZW50VGFyZ2V0CisgICAgdmlydHVhbCBJREJSZXF1ZXN0KiB0b0lEQlJlcXVlc3QoKSB7IHJl
dHVybiB0aGlzOyB9CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICB2aXJ0dWFsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHZvaWQgc3RvcCgpOworICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKCk7CisgICAgdmly
dHVhbCB2b2lkIHJlc3VtZSgpOworCisgICAgdXNpbmcgUmVmQ291bnRlZDxJREJDYWxsYmFja3M+
OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxJREJDYWxsYmFja3M+OjpkZXJlZjsKKworcHJp
dmF0ZToKKyAgICBJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworICAgIHZv
aWQgdGltZXJGaXJlZChUaW1lcjxJREJSZXF1ZXN0PiopOworICAgIHZvaWQgb25FdmVudENvbW1v
bigpOworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7IGRl
cmVmKCk7IH0KKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7
CisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwor
CisgICAgUmVzdWx0VHlwZSBtX3Jlc3VsdFR5cGU7CisgICAgLy8gT25seSBvbmUgb2YgdGhlIGZv
bGxvd2luZyBzaG91bGQgZXZlciBiZSBpbiB1c2UgYXQgYW55IGdpdmVuIHRpbWUuICBtX3Jlc3Vs
dFR5cGUgZGVmaW5lcyB3aGljaCBvbmUuCisgICAgUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4g
bV9pZGJEYXRhYmFzZVJlc3VsdDsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBt
X3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJlc3VsdDsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2VFcnJv
cj4gbV9lcnJvcjsKKworICAgIC8vIFVzZWQgdG8gZmlyZSBldmVudHMgYXN5bmNocm9ub3VzbHku
CisgICAgVGltZXI8SURCUmVxdWVzdD4gbV90aW1lcjsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4g
bV9zZWxmUmVmOyAvLyBUaGlzIGlzIHNldCB0byB1cyBpZmYgdGhlcmUncyBhbiBldmVudCBwZW5k
aW5nLgorCisgICAgYm9vbCBtX3N0b3BwZWQ7CisgICAgYm9vbCBtX2Fib3J0ZWQ7CisgICAgUmVh
ZHlTdGF0ZSBtX3JlYWR5U3RhdGU7CisgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXRE
YXRhOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCisKKyNlbmRpZiAvLyBJREJSZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hNTdjMWQ0OWJjYzk5YTZjMjc5NmI0N2FmZTA1ZjA1YzE4OTdjZWE0
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaWRsCkBAIC0w
LDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAg
ICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCittb2R1bGUgc3RvcmFnZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAg
ICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFLAorICAgICAgICBFdmVudFRhcmdldAorICAg
IF0gSURCUmVxdWVzdCB7CisgICAgICAgIHZvaWQgYWJvcnQoKTsKKworICAgICAgICAvLyBTdGF0
ZXMKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgSU5JVElBTCA9IDA7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IExPQURJTkcgPSAxOworICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBET05FID0gMjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0
IHJlYWR5U3RhdGU7CisKKyAgICAgICAgLy8gUG9zc2libGUgcmVzdWx0cworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgSURCRGF0YWJhc2VFcnJvciBlcnJvcjsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtWOEN1c3RvbUdldHRlcl0gYW55IHJlc3VsdDsKKworICAgICAgICAvLyBFdmVu
dHMKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zdWNjZXNzOworICAgICAgICBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmVycm9yOworCisgICAgICAgIC8vIEV2ZW50VGFyZ2V0
IGludGVyZmFjZQorICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5
cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3Rl
bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiB1c2VDYXB0dXJl
KTsKKyAgICAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5l
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gdXNlQ2FwdHVy
ZSk7CisgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCisgICAgICAg
ICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmggYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERh
dGFiYXNlLmgKaW5kZXggMTAyN2ZiNzljMDExMDk3ZTNkZGQxYWJkMDFmZmRlZjA5MzY0NGUyMy4u
MWU0Mzc4MTdhMzc5NjIzYjUyYjRlNTQ3MjdhMjY0OTViOGM0MDMwZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JbmRl
eGVkRGF0YWJhc2UuaApAQCAtNDAsOCArNDAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBGcmFtZTsKIGNsYXNzIElEQkRhdGFiYXNlOwogCi10eXBlZGVmIElEQkNhbGxiYWNrczxJREJE
YXRhYmFzZT4gSURCRGF0YWJhc2VDYWxsYmFja3M7Ci0KIC8vIFRoaXMgY2xhc3MgaXMgc2hhcmVk
IGJ5IEluZGV4ZWREYXRhYmFzZVJlcXVlc3QgKGFzeW5jKSBhbmQgSW5kZXhlZERhdGFiYXNlU3lu
YyAoc3luYykuCiAvLyBUaGlzIGlzIGltcGxlbWVudGVkIGJ5IEluZGV4ZWREYXRhYmFzZUltcGwg
YW5kIG9wdGlvbmFsbHkgb3RoZXJzIChpbiBvcmRlciB0byBwcm94eQogLy8gY2FsbHMgYWNyb3Nz
IHByb2Nlc3MgYmFycmllcnMpLiBBbGwgY2FsbHMgdG8gdGhlc2UgY2xhc3NlcyBzaG91bGQgYmUg
bm9uLWJsb2NraW5nIGFuZApAQCAtNTEsNyArNDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8SW5kZXhlZERhdGFiYXNlPiBjcmVhdGUoKTsKICAgICB2aXJ0dWFsIH5JbmRleGVk
RGF0YWJhc2UoKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIEZyYW1lKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiwgRnJhbWUqLCBFeGNlcHRpb25Db2RlJikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3Bw
IGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwCmluZGV4IGI4MmRlZThk
NDU0OWUzNjlmZDE2YmEwM2UxMzM1OGU4NjFkMjhmZWMuLmE4NTA5ZDAwMWRiOTAyYWE5NTVhNjM1
ZmI0MzI4NjJmM2UzMjIwMWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0
YWJhc2VJbXBsLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5j
cHAKQEAgLTQ5LDcgKzQ5LDcgQEAgSW5kZXhlZERhdGFiYXNlSW1wbDo6fkluZGV4ZWREYXRhYmFz
ZUltcGwoKQogewogfQogCi12b2lkIEluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4oY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNl
LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgRnJhbWUqLCBFeGNlcHRpb25Db2Rl
JikKK3ZvaWQgSW5kZXhlZERhdGFiYXNlSW1wbDo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiwgRnJhbWUqLCBFeGNlcHRpb25Db2RlJikKIHsKICAgICAvLyBGSVhNRTog
V3JpdGUuCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0
b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5oIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRh
YmFzZUltcGwuaAppbmRleCA1NDEzYjliNGY4ZjMwZmViM2ZiMTVkOWE0OWZjNGE0MWJhNjA5ZDQ2
Li43M2VkZjZiMTMyMDljOTVkZWU1MTlhODliNzgzZmY2NTQ3MWQ3OWUxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5oCisrKyBiL1dlYkNvcmUvc3RvcmFn
ZS9JbmRleGVkRGF0YWJhc2VJbXBsLmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEluZGV4ZWREYXRhYmFzZUltcGw+IGNyZWF0ZSgpOwogICAgIHZpcnR1
YWwgfkluZGV4ZWREYXRhYmFzZUltcGwoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRh
YmFzZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M8SURCRGF0YWJhc2U+ID4sIEZyYW1lKiwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKICAg
ICBJbmRleGVkRGF0YWJhc2VJbXBsKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSW5k
ZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNl
UmVxdWVzdC5jcHAKaW5kZXggNDQzMDExNTc0ZTFlMDMxNTc5N2JiODBiMmFhNmEzMDk3NWNkYTkx
Mi4uMzc0NzA0MmEwZGZhMTg1MDhiY2M5ZDYzN2NkZDdlYTM4MTE5ZjEyZiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCisrKyBiL1dlYkNvcmUv
c3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcApAQCAtMzAsNyArMzAsOSBAQAogI2lu
Y2x1ZGUgIkluZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCIKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCisjaW5j
bHVkZSAiSURCUmVxdWVzdC5oIgogI2luY2x1ZGUgIkluZGV4ZWREYXRhYmFzZS5oIgogCiAjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCkBAIC00Nyw5ICs0OSwxMSBAQCBJbmRleGVkRGF0YWJh
c2VSZXF1ZXN0Ojp+SW5kZXhlZERhdGFiYXNlUmVxdWVzdCgpCiB7CiB9CiAKLXZvaWQgSW5kZXhl
ZERhdGFiYXNlUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VD
YWxsYmFja3M+IGNhbGxiYWNrcywgRXhjZXB0aW9uQ29kZSYgZXhjZXB0aW9uKQorUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgRXhj
ZXB0aW9uQ29kZSYgZXhjZXB0aW9uKQogewotICAgIG1faW5kZXhlZERhdGFiYXNlLT5vcGVuKG5h
bWUsIGRlc2NyaXB0aW9uLCBtb2RpZnlEYXRhYmFzZSwgY2FsbGJhY2tzLCBtX2ZyYW1lLCBleGNl
cHRpb24pOworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3Jl
YXRlKG1fZnJhbWUtPmRvY3VtZW50KCkpOworICAgIG1faW5kZXhlZERhdGFiYXNlLT5vcGVuKG5h
bWUsIGRlc2NyaXB0aW9uLCBtb2RpZnlEYXRhYmFzZSwgcmVxdWVzdCwgbV9mcmFtZSwgZXhjZXB0
aW9uKTsKKyAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCBiL1dl
YkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgKaW5kZXggODMyMzViNmM1MjUy
NzdjYWE4YTdmOGUzMDMzZTJhNTFjYWE5ZjRkNy4uYmU1ZTVjOGRkYjA0NjMxNDY3NDQzOTA2ZWNh
Y2E0NTQ1YTdmYzZkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFz
ZVJlcXVlc3QuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5o
CkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgfkluZGV4ZWREYXRhYmFzZVJl
cXVlc3QoKTsKIAotICAgIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VDYWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9v
bCBtb2RpZnlEYXRhYmFzZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBkaXNjb25uZWN0
RnJhbWUoKSB7IG1fZnJhbWUgPSAwOyB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9J
bmRleGVkRGF0YWJhc2VSZXF1ZXN0LmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJh
c2VSZXF1ZXN0LmlkbAppbmRleCAyYzJhOTBlY2EwMzc2NzgxMDNmZjAzNzIwNzhjMDc4ZTNiMjM1
NjUwLi5lNDIzZWIwMWQyMjllMDlkNjZkYThjOWMzMjE4NmUwYjk3N2JmZjk5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaWRsCkBAIC0zMCw3ICszMCw3IEBAIG1v
ZHVsZSBzdG9yYWdlIHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1JTkRF
WEVEX0RBVEFCQVNFCiAgICAgXSBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0IHsKLSAgICAgICAgW0N1
c3RvbV0gdm9pZCBvcGVuKGluIERPTVN0cmluZyBuYW1lLCBpbiBET01TdHJpbmcgZGVzY3JpcHRp
b24sIGluIG9wdGlvbmFsIGJvb2xlYW4gbW9kaWZ5RGF0YWJhc2UsIElEQkRhdGFiYXNlRXJyb3JD
YWxsYmFjayBvbmVycm9yLCBJREJEYXRhYmFzZVJlcXVlc3RDYWxsYmFjayBvbnN1Y2Nlc3MpCisg
ICAgICAgIElEQlJlcXVlc3Qgb3BlbihpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIGRl
c2NyaXB0aW9uLCBpbiBib29sZWFuIG1vZGlmeURhdGFiYXNlKQogICAgICAgICAgICAgcmFpc2Vz
KElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5YmJhN2I3
NWMyN2E4YmE4MWIzMzhmYzg3YzBhYWI4MTMwZDNkODI0Li5lNjVmMThiOWM4MDE4ZDQ4ZGFkZjAz
MjkzYmQ2MTFkYTIzNWNhOWU3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0w
NS0wNSAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgSW5kZXhlZERCIHRvIHVz
ZSBldmVudHMgaW5zdGVhZCBvZiBjYWxsYmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NTk0CisKKyAgICAgICAgQ2hhbmdlIHRoZSBnbHVlIGhl
cmUgdG8gbWF0Y2ggdGhlIGNoYW5nZXMgSSBtYWRlIGluIFdlYkNvcmUuCisKKyAgICAgICAgKiBX
ZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJJREJDYWxsYmFja3MuaDoKKyAgICAgICAg
KiBwdWJsaWMvV2ViSW5kZXhlZERhdGFiYXNlLmg6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNr
c1Byb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJDYWxsYmFja3NQcm94eTo6
SURCQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6
On5JREJDYWxsYmFja3NQcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDYWxsYmFja3NQcm94
eTo6b25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJDYWxsYmFja3NQcm94eTo6b25TdWNj
ZXNzKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuaDoKKyAgICAgICAgKiBzcmMv
SW5kZXhlZERhdGFiYXNlUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5kZXhlZERhdGFi
YXNlUHJveHk6Om9wZW4pOgorICAgICAgICAqIHNyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5oOgor
ICAgICAgICAqIHNyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSW5kZXhlZERhdGFiYXNlSW1wbDo6b3Blbik6CisgICAgICAgICogc3JjL1dlYkluZGV4
ZWREYXRhYmFzZUltcGwuaDoKKwogMjAxMC0wNS0wNCAgVmFuZ2VsaXMgS29ra2V2aXMgIDx2YW5n
ZWxpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cAppbmRleCBiM2E5MjZlZjI3MWFkMTlhNWIzOTI2ZjQ2NTliMTZkOGIyMjk0YTgx
Li45NTU1MTM3NzE3YjU5OTZiOTM3NTZkNWY5MzYzZGY3YzNhZGRlMTI5IDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cApAQCAtMjYxLDYgKzI2MSw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9ndGsvV2ViRm9udElu
Zm8uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL2d0ay9XZWJGb250SW5mby5oJywKICAgICAg
ICAgICAgICAgICAnc3JjL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAnLAorICAgICAgICAg
ICAgICAgICdzcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L0lEQkNhbGxiYWNrc1Byb3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvSURCRGF0YWJhc2VQ
cm94eS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvSURCRGF0YWJhc2VQcm94eS5oJywKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmggYi9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCmluZGV4IDllODVhYThjNWYwOGFi
YzkwYzBmYWM0MDJhYTlhZWQxYjk5MTQ5ODkuLjYxMGY3ZDQ0YWEwZTYxZjViMjExOGQ4Nzc0ZWY5
NTU1NTU0ZDdiOTMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2Fs
bGJhY2tzLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaApA
QCAtMzMsMjIgKzMzLDE5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJJREJE
YXRhYmFzZTsKIGNsYXNzIFdlYklEQkRhdGFiYXNlRXJyb3I7CitjbGFzcyBXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWU7CiAKLS8vIEV2ZXJ5IEluZGV4ZWREQiBtZXRob2QgdGFrZXMgaW4gYSBwYWly
IG9mIGNhbGxiYWNrcyBmb3IgZXJyb3Ivc3VjY2VzcyB3aGljaAotLy8gaW1wbGVtZW50IHRoaXMg
Y2xhc3MuICBFaXRoZXIgMCBvciAxIG9mIHRoZXNlIG1ldGhvZHMgd2lsbCBiZSBjYWxsZWQgYW5k
IHRoZQotLy8gY2FsbGJhY2sgY2xhc3MgbWF5IGJlIGRlbGV0ZWQgYW55IHRpbWUgYWZ0ZXIgdGhl
IGNhbGxiYWNrIGlzIGNhbGxlZC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBSZXN1bHRUeXBlPgogY2xh
c3MgV2ViSURCQ2FsbGJhY2tzIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJJREJDYWxsYmFj
a3MoKSB7IH0KIAotICAgIC8vIElmIHRoZSBtZXRob2Qgd2FzIGEgc3VjY2VzcywgdGhpcyBtZXRo
b2QgaXMgY2FsbGVkIHdpdGggdGhlIHJlc3VsdC4gIFRoZQotICAgIC8vIHJlc3VsdCBpcyBhIHBv
aW50ZXIgdGhhdCB0aGUgY2FsbGJhY2sgdGFrZXMgb3duZXJzaGlwIG9mLgotICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoUmVzdWx0VHlwZSopID0gMDsKLQotICAgIC8vIENhbGxlZCBpbiB0aGUg
ZXZlbnQgb2YgYW4gZXJyb3IuCisgICAgLy8gRm9yIGNsYXNzZXMgdGhhdCBmb2xsb3cgdGhlIFBJ
bXBsIHBhdHRlcm4sIHBhc3MgYSBjb25zdCByZWZlcmVuY2UuCisgICAgLy8gRm9yIHRoZSByZXN0
LCBwYXNzIG93bmVyc2hpcCB0byB0aGUgY2FsbGVlIHZpYSBhIHBvaW50ZXIuCiAgICAgdmlydHVh
bCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViSURCRGF0YWJhc2VFcnJvciYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkRhdGFiYXNlKikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJikgPSAwOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkluZGV4ZWREYXRhYmFzZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbmRleGVk
RGF0YWJhc2UuaAppbmRleCBiYjc1MTcwOGYyMGZkOTMzZjY3YWMzMzc0MjI2MDRmZDJhN2FmMDY4
Li45NmU4MDdkYzY5OWZhYTJjNjg2YzNhZDFiMzRhYTIwZjIxNGJmNzE3IDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkluZGV4ZWREYXRhYmFzZS5oCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSW5kZXhlZERhdGFiYXNlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB+V2ViSW5kZXhlZERhdGFiYXNlKCkgeyB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgZGVz
Y3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFdlYklEQkNhbGxiYWNrczxXZWJJREJEYXRh
YmFzZT4qLCBXZWJGcmFtZSosIGludCYgZXhjZXB0aW9uQ29kZSkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkZXNjcmlw
dGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgV2ViSURCQ2FsbGJhY2tzKiwgV2ViRnJhbWUqLCBp
bnQmIGV4Y2VwdGlvbkNvZGUpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzQ2YjU4
ZGE3MzZlZWZkNGQ1N2MxZTU2OGViYTQ4ZmJmMDMzYjAzCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKQEAgLTAsMCArMSw3NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJDYWxsYmFja3NQcm94eS5oIgorCisj
aW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgor
I2luY2x1ZGUgIklEQkRhdGFiYXNlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJJREJDYWxsYmFja3Mu
aCIKKyNpbmNsdWRlICJXZWJJREJEYXRhYmFzZS5oIgorI2luY2x1ZGUgIldlYklEQkRhdGFiYXNl
RXJyb3IuaCIKKyNpbmNsdWRlICJXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKworI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0lEQkNhbGxi
YWNrc1Byb3h5OjpJREJDYWxsYmFja3NQcm94eShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2Fs
bGJhY2tzKQorICAgIDogbV9jYWxsYmFja3MoY2FsbGJhY2tzKQoreworfQorCitJREJDYWxsYmFj
a3NQcm94eTo6fklEQkNhbGxiYWNrc1Byb3h5KCkKK3sKK30KKwordm9pZCBJREJDYWxsYmFja3NQ
cm94eTo6b25FcnJvcihjb25zdCBXZWJLaXQ6OldlYklEQkRhdGFiYXNlRXJyb3ImIGVycm9yKQor
eworICAgIG1fY2FsbGJhY2tzLT5vbkVycm9yKGVycm9yKTsKKyAgICBtX2NhbGxiYWNrcy5jbGVh
cigpOworfQorCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoV2ViS2l0OjpXZWJJ
REJEYXRhYmFzZSogd2ViS2l0SW5zdGFuY2UpCit7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vz
cyhJREJEYXRhYmFzZVByb3h5OjpjcmVhdGUod2ViS2l0SW5zdGFuY2UpKTsKKyAgICBtX2NhbGxi
YWNrcy5jbGVhcigpOworfQorCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoY29u
c3QgV2ViS2l0OjpXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSkKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7
CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCQ2FsbGJhY2tzUHJveHkuaAppbmRleCBlODAzYzk2NmQ3MGE3OThlN2M4ODAxMTE1YTBmODM5
OTBjOTkxMjk4Li42OTJiMGEzYzMxNzE4ODZjNDY5MGY2NDVkZWY5N2Y1ZDQyZDMzYzBhIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCkBAIC0yOSw0MCArMjksMzMgQEAK
ICNpZm5kZWYgSURCQ2FsbGJhY2tzUHJveHlfaAogI2RlZmluZSBJREJDYWxsYmFja3NQcm94eV9o
CiAKLSNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKLSNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9y
LmgiCiAjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCi0jaW5jbHVkZSAiV2ViSURCRGF0YWJh
c2VFcnJvci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKLW5hbWVzcGFjZSBXZWJD
b3JlIHsKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViSURCRGF0YWJhc2U7CitjbGFzcyBX
ZWJJREJEYXRhYmFzZUVycm9yOworY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOworfQog
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgV2ViS2l0Q2xhc3MsIHR5cGVuYW1lIFdlYkNvcmVDbGFzcywg
dHlwZW5hbWUgV2ViQ29yZVByb3h5PgotY2xhc3MgSURCQ2FsbGJhY2tzUHJveHkgOiBwdWJsaWMg
V2ViS2l0OjpXZWJJREJDYWxsYmFja3M8V2ViS2l0Q2xhc3M+IHsKLXB1YmxpYzoKLSAgICBJREJD
YWxsYmFja3NQcm94eShQYXNzUmVmUHRyPElEQkNhbGxiYWNrczxXZWJDb3JlQ2xhc3M+ID4gY2Fs
bGJhY2tzKQotICAgICAgICA6IG1fY2FsbGJhY2tzKGNhbGxiYWNrcykgeyB9CituYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLSAgICB2aXJ0dWFsIH5JREJDYWxsYmFja3NQcm94eSgpIHsgfQorY2xhc3Mg
SURCQ2FsbGJhY2tzOwogCi0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJLaXRDbGFzcyog
d2ViS2l0SW5zdGFuY2UpCi0gICAgewotICAgICAgICBSZWZQdHI8V2ViQ29yZUNsYXNzPiBwcm94
eSA9IFdlYkNvcmVQcm94eTo6Y3JlYXRlKHdlYktpdEluc3RhbmNlKTsKLSAgICAgICAgbV9jYWxs
YmFja3MtPm9uU3VjY2Vzcyhwcm94eSk7Ci0gICAgICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7Ci0g
ICAgfQorY2xhc3MgSURCQ2FsbGJhY2tzUHJveHkgOiBwdWJsaWMgV2ViS2l0OjpXZWJJREJDYWxs
YmFja3MgeworcHVibGljOgorICAgIElEQkNhbGxiYWNrc1Byb3h5KFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiBjYWxsYmFja3MpOworICAgIHZpcnR1YWwgfklEQkNhbGxiYWNrc1Byb3h5KCk7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihjb25zdCBXZWJLaXQ6OldlYklEQkRhdGFiYXNlRXJy
b3ImIGVycm9yKQotICAgIHsKLSAgICAgICAgbV9jYWxsYmFja3MtPm9uRXJyb3IoZXJyb3IpOwot
ICAgICAgICBtX2NhbGxiYWNrcy5jbGVhcigpOwotICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgb25F
cnJvcihjb25zdCBXZWJLaXQ6OldlYklEQkRhdGFiYXNlRXJyb3ImIGVycm9yKTsKKyAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKFdlYktpdDo6V2ViSURCRGF0YWJhc2UqIHdlYktpdEluc3RhbmNl
KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYktpdDo6V2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlJiBzZXJpYWxpemVkU2NyaXB0VmFsdWUpOwogCiBwcml2YXRlOgotICAgIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPFdlYkNvcmVDbGFzcz4gPiBtX2NhbGxiYWNrczsKKyAgICBS
ZWZQdHI8SURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKIH07CiAKIApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5jcHAgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNwcAppbmRleCA5MDY5YjQ2MzBlMjQyNTBmMTM4
YTU5YTY5ZTQ4MDhkM2VlYmY4Mjg4Li40OGRlNmExMGIyMmVmNGIzMjE3NDYyMzkyNDAxNzY4Y2Nk
OWIyMzAxIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0luZGV4ZWREYXRhYmFzZVBy
b3h5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNw
cApAQCAtNTcsMTEgKzU3LDEwIEBAIEluZGV4ZWREYXRhYmFzZVByb3h5Ojp+SW5kZXhlZERhdGFi
YXNlUHJveHkoKQogewogfQogCi12b2lkIEluZGV4ZWREYXRhYmFzZVByb3h5OjpvcGVuKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRh
YmFzZSwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBGcmFtZSog
ZnJhbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBJbmRleGVkRGF0YWJhc2VQcm94eTo6b3Bl
bihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9k
aWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIEZyYW1lKiBm
cmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgV2ViS2l0OjpXZWJGcmFtZSogd2ViRnJh
bWUgPSBXZWJLaXQ6OldlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGZyYW1lKTsKLSAgICB0eXBlZGVm
IElEQkNhbGxiYWNrc1Byb3h5PFdlYktpdDo6V2ViSURCRGF0YWJhc2UsIElEQkRhdGFiYXNlLCBJ
REJEYXRhYmFzZVByb3h5PiBDYWxsYmFja3NQcm94eTsKLSAgICBtX3dlYkluZGV4ZWREYXRhYmFz
ZS0+b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5RGF0YWJhc2UsIG5ldyBDYWxsYmFja3NQ
cm94eShjYWxsYmFja3MpLCB3ZWJGcmFtZSwgZWMpOworICAgIG1fd2ViSW5kZXhlZERhdGFiYXNl
LT5vcGVuKG5hbWUsIGRlc2NyaXB0aW9uLCBtb2RpZnlEYXRhYmFzZSwgbmV3IElEQkNhbGxiYWNr
c1Byb3h5KGNhbGxiYWNrcyksIHdlYkZyYW1lLCBlYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5kZXhlZERhdGFiYXNlUHJv
eHkuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5kZXhlZERhdGFiYXNlUHJveHkuaAppbmRleCBk
MGY1NWI2ZDA0ZWU2ZTY3YWY2MDAyZGMxMWZhM2U1NjQ1MmFiYjk0Li4wYzg2NzRhMzUzODIyZWE2
ZjgwZWU4M2UxZDE4MGUwMzQxNmI0YjQ2IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0luZGV4ZWREYXRhYmFzZVByb3h5LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVk
RGF0YWJhc2VQcm94eS5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJbmRleGVkRGF0YWJhc2U+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkluZGV4ZWRE
YXRhYmFzZVByb3h5KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
RnJhbWUqLCBFeGNlcHRpb25Db2RlJik7CiAKIHByaXZhdGU6CiAgICAgSW5kZXhlZERhdGFiYXNl
UHJveHkoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFi
YXNlSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWREYXRhYmFzZUltcGwu
Y3BwCmluZGV4IDZhNjMyN2I1MTFkZGM4MTU5MGMyNzczNDE0M2U2ZjY4Zjg4MDlhN2UuLmJiMzdk
MmQzZjc0ZjZhZWQyMWVkZjM0YTJlMjRkZjA2YTAwM2NlYTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmNwcApAQCAtNDcsOSArNDcsOSBAQCBXZWJJ
bmRleGVkRGF0YWJhc2VJbXBsOjp+V2ViSW5kZXhlZERhdGFiYXNlSW1wbCgpCiB7CiB9CiAKLXZv
aWQgV2ViSW5kZXhlZERhdGFiYXNlSW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNv
bnN0IFdlYlN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFdlYklEQkNh
bGxiYWNrczxXZWJJREJEYXRhYmFzZT4qIGNhbGxiYWNrc1B0ciwgV2ViRnJhbWUqLCBpbnQmIGV4
Y2VwdGlvbkNvZGUpCit2b2lkIFdlYkluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4oY29uc3QgV2Vi
U3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURh
dGFiYXNlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrc1B0ciwgV2ViRnJhbWUqLCBpbnQmIGV4
Y2VwdGlvbkNvZGUpCiB7Ci0gICAgT3duUHRyPFdlYklEQkNhbGxiYWNrczxXZWJJREJEYXRhYmFz
ZT4qPiBjYWxsYmFja3MoY2FsbGJhY2tzUHRyKTsKKyAgICBPd25QdHI8V2ViSURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MoY2FsbGJhY2tzUHRyKTsKICAgICBjYWxsYmFja3MtPm9uRXJyb3IoV2ViSURC
RGF0YWJhc2VFcnJvcigwLCAiTm90IGltcGxlbWVudGVkIikpOwogICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgZm9yIHJlYWx6LgogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
bmRleGVkRGF0YWJhc2VJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWREYXRh
YmFzZUltcGwuaAppbmRleCBiNGI4Yzk5NmQ1ODBkOTZkOWI3YWY0ZTJjYTkwODNlZTY3Yjg0MjZh
Li4yYzllZDU0ZGIxMjZmZDZiYWU0OTA2OWIwOTJlMDcwNTI0MDQyMWQzIDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWREYXRhYmFzZUltcGwuaAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkluZGV4ZWREYXRhYmFzZUltcGwuaApAQCAtMzcsNyArMzcsNyBAQCBj
bGFzcyBXZWJJbmRleGVkRGF0YWJhc2VJbXBsIDogcHVibGljIFdlYkluZGV4ZWREYXRhYmFzZSB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViSW5kZXhlZERhdGFiYXNlSW1wbCgpOwogCi0gICAg
dmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcm
IGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBXZWJJREJDYWxsYmFja3M8V2ViSURC
RGF0YWJhc2U+KiwgV2ViRnJhbWUqLCBpbnQmIGV4Y2VwdGlvbkNvZGUpOworICAgIHZpcnR1YWwg
dm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkZXNjcmlw
dGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgV2ViSURCQ2FsbGJhY2tzKiwgV2ViRnJhbWUqLCBp
bnQmIGV4Y2VwdGlvbkNvZGUpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55258</attachid>
            <date>2010-05-06 10:41:16 -0700</date>
            <delta_ts>2010-05-06 14:56:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38594-20100506184114.patch</filename>
            <type>text/plain</type>
            <size>89165</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGQxYjFkZGRmZDJmYTRjMGMxYjc1ZDQ4ODkwZWQzNzhjMjMwMzgzYS4uNjdjMWIwNDVkNWZiMWU3
NzY5MGYyM2IwN2I1YjQ3ZmYyZjljYjEwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxMC0wNS0wNSAgSmVy
ZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgSW5kZXhlZERCIHRvIHVzZSBldmVudHMg
aW5zdGVhZCBvZiBjYWxsYmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM4NTk0CisKKyAgICAgICAgU3dpdGNoIEluZGV4ZWREQiBvdmVyIHRvIGFu
IGV2ZW50IGJhc2VkIG1vZGVsIHRvIG1hdGNoIHdoYXQKKyAgICAgICAgTW96aWxsYSAoYW5kIHBy
b2JhYmx5IE1TPykgYXJlIGRvaW5nLiAgVGhpcyBhbHNvIGdldHMgcmlkIG9mCisgICAgICAgIGEg
bG90IG9mIHRlbXBsYXRlIG1lc3MgYXQgdGhlIGV4cGVuc2Ugb2YgYSBsaXR0bGUgZXh0cmEgYm9p
bGVyCisgICAgICAgIHBsYXRlIGNvZGUgKGZvciBlYWNoIHR5cGUgdGhhdCBJREJSZXN1bHQucmVz
dWx0IGNvdWxkIGJlKS4KKworICAgICAgICBTdGlsbCBub3QgdGVzdGFibGUuICBOZXh0IHN0ZXA6
IEpTQyBiaW5kaW5ncy4gIEhvcGluZyB0byBzdGFydAorICAgICAgICBhZGRpbmcgdGVzdHMgc29v
biBub3cgdGhhdCB0aGUgYmFzaWMgQVBJIGlzIHN0YWJsZS4KKworICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhET01XcmFwcGVyOjpjb252ZXJ0RXZlbnRUYXJnZXRUb1Y4T2JqZWN0KToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21JREJDYWxsYmFja3MuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbmRleGVkRGF0YWJhc2VSZXF1ZXN0
Q3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnRvSURCUmVxdWVzdCk6CisgICAgICAgICogZG9t
L0V2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogc3RvcmFnZS9JREJDYWxsYmFja3MuaDoKKyAgICAg
ICAgKiBzdG9yYWdlL0lEQlJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlcXVlc3Q6OklEQlJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6fklE
QlJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25FcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6
SURCUmVxdWVzdDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpzdG9wKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCUmVxdWVzdDo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmV2
ZW50VGFyZ2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjplbnN1cmVFdmVu
dFRhcmdldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6dGltZXJGaXJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvbkV2ZW50Q29tbW9uKToKKyAgICAgICAg
KiBzdG9yYWdlL0lEQlJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1
ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlJlcXVlc3Q6OnJlc3VsdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6aWRiRGF0YWJhc2VSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6cmVhZHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjplcnJvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp0b0lEQlJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCUmVxdWVzdDo6cmVmRXZlbnRUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6ZGVyZWZFdmVudFRhcmdldCk6CisgICAgICAgICogc3RvcmFnZS9JREJSZXF1ZXN0
LmlkbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9JbmRleGVkRGF0YWJhc2UuaDoKKyAgICAg
ICAgKiBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5kZXhlZERhdGFiYXNlSW1wbDo6b3Blbik6CisgICAgICAgICogc3RvcmFnZS9JbmRleGVkRGF0
YWJhc2VJbXBsLmg6CisgICAgICAgICogc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZVJlcXVlc3Q6Om9wZW4pOgorICAg
ICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oOgorICAgICAgICAqIHN0b3Jh
Z2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGw6CisKIDIwMTAtMDUtMDUgIE5pa29sYXMgWmlt
bWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkLiBB
ZGQgbWlzc2luZyBmaWxlcyBnZW5lcmF0ZWQgYnkgInJ1bi1iaW5kaW5ncy10ZXN0IiwgYWZ0ZXIg
dGhlIERPTVRlc3RDYWxsYmFjay5pZGwgYWRkaXRpb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcCBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IGM4YmUz
M2Y2ODMyODAwYjQ2NGZhYTQwNTJlYTJmYjJkODM3M2UyZDguLjQxZGNhNGFhZDQwNDliZTQyODEw
MzMzNDMwYzQxYWZiOGU2NGRmOTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
Y3BwCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0xNjMsNyArMTYzLDEyIEBA
CiAjaW5jbHVkZSAiSlNIVE1MVGl0bGVFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxVTGlz
dEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTSFRNTFZpZGVvRWxlbWVudC5jcHAiCisjaW5jbHVk
ZSAiSlNJREJEYXRhYmFzZUVycm9yLmNwcCIKKyNpbmNsdWRlICJKU0lEQkRhdGFiYXNlRXhjZXB0
aW9uLmNwcCIKKyNpbmNsdWRlICJKU0lEQkRhdGFiYXNlUmVxdWVzdC5jcHAiCisjaW5jbHVkZSAi
SlNJREJSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0ltYWdlRGF0YS5jcHAiCisjaW5jbHVkZSAi
SlNJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0phdmFTY3JpcHRDYWxs
RnJhbWUuY3BwIgogI2luY2x1ZGUgIkpTS2V5Ym9hcmRFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNM
b2NhdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNzZkNjIyYTY4ZjZmYzA5MWM0OWZiNmQw
ZDE1ZmIzN2VlYjk4MzkwYS4uZDE3M2JkM2UyYzliMTRjNzc0ODUyZjlmMjlmNDA0ODI0ZDE4YWIx
MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjA2LDcgKzIwNiwxMiBAQCBET01fQ0xBU1NFUyA9IFwK
ICAgICBIVE1MVUxpc3RFbGVtZW50IFwKICAgICBIVE1MVmlkZW9FbGVtZW50IFwKICAgICBIaXN0
b3J5IFwKKyAgICBJREJEYXRhYmFzZUVycm9yIFwKKyAgICBJREJEYXRhYmFzZUV4Y2VwdGlvbiBc
CisgICAgSURCRGF0YWJhc2VSZXF1ZXN0IFwKKyAgICBJREJSZXF1ZXN0IFwKICAgICBJbWFnZURh
dGEgXAorICAgIEluZGV4ZWREYXRhYmFzZVJlcXVlc3QgXAogICAgIEluamVjdGVkU2NyaXB0SG9z
dCBcCiAgICAgSW5zcGVjdG9yQmFja2VuZCBcCiAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0IFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCmluZGV4IDFkOGM2YzBiOWI2M2EyZTRjNGJjNTgxMmU4NjBjNWQyZTk2ZDc4NTUuLjY1OThl
ZDRmZTBjOWQ4YmY1YzQyNDRlMGYwMjYwYmRlMGU1N2UwZjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjQwNiw2ICsy
NDA2LDQyIEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogZW5kaWYgIyBFTkFCTEVfRVZFTlRTT1VS
Q0UKIAogIyAtLS0tCisjIEluZGV4ZWQgRGF0YWJhc2UgQVBJIHN1cHBvcnQKKyMgLS0tLQoraWYg
RU5BQkxFX0lOREVYRURfREFUQUJBU0UKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRT0xCisKK0lETF9CSU5ESU5HUyArPSBcCisJV2ViQ29yZS9zdG9yYWdlL0lEQkRh
dGFiYXNlRXJyb3IuaWRsIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRpb24u
aWRsIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbCBcCisJV2ViQ29y
ZS9zdG9yYWdlL0lEQlJlcXVlc3QuaWRsIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFi
YXNlUmVxdWVzdC5pZGwKKword2ViY29yZV9jcHBmbGFncyArPSBcCisJLURFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRT0xCisKK3dlYmNvcmVfc291cmNlcyArPSBcCisJV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0lEQlJlcXVlc3RDdXN0b20uY3BwIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tz
LmNwcCBcCisJV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oIFwKKwlXZWJDb3JlL3N0b3Jh
Z2UvSURCRGF0YWJhc2UuY3BwIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaCBcCisJ
V2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaCBcCisJV2ViQ29yZS9zdG9yYWdlL0lE
QkRhdGFiYXNlRXhjZXB0aW9uLmggXAorCVdlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVl
c3QuY3BwIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmggXAorCVdlYkNv
cmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcCBcCisJV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3Qu
aCBcCisJV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5jcHAgXAorCVdlYkNvcmUvc3Rv
cmFnZS9JbmRleGVkRGF0YWJhc2UuaCBcCisJV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFz
ZUltcGwuY3BwIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5oIFwKKwlX
ZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAgXAorCVdlYkNvcmUvc3Rv
cmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgKK2VuZGlmICMgRU5EIEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFCisKKyMgLS0tLQogIyBIVE1MNSBjbGllbnQtc2lkZSBzZXNzaW9uIGFuZCBwZXJz
aXN0ZW50IHN0b3JhZ2UKICMgLS0tLQogaWYgRU5BQkxFX0RPTV9TVE9SQUdFCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGM5MGI3
ODk5Y2ZiOTE2NTMwMGYyYzkzMWI4NmQ1YzhiY2E2NzRmZjAuLjZjMzc5NmI2YjgzMzVmNWI3MWFh
OWE1ZDI0N2UyZWViMWIxYjk3YTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMjIsNiArMjIyLDcgQEAKICAgICAgICAgICAg
ICdzdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lE
QkRhdGFiYXNlRXhjZXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFz
ZVJlcXVlc3QuaWRsJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQlJlcXVlc3QuaWRsJywKICAg
ICAgICAgICAgICdzdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaWRsJywKICAgICAgICAg
ICAgICdzdG9yYWdlL1NRTEVycm9yLmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9TUUxSZXN1
bHRTZXQuaWRsJywKQEAgLTY5OSw3ICs3MDAsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOENTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZVNoZWV0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTVmFsdWVDdXN0b20uY3BwJywKLSAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21JREJDYWxsYmFja3MuaCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tRXZlbnRMaXN0ZW5lci5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUV2ZW50TGlzdGVuZXIuaCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tUG9zaXRpb25DYWxsYmFjay5jcHAn
LApAQCAtNzQ0LDcgKzc0NCw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SFRNTFBsdWdJbkVsZW1lbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEhUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmgnLAotICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluZGV4ZWREYXRhYmFzZVJlcXVlc3RDdXN0b20uY3BwJywK
KyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhJREJSZXF1ZXN0Q3VzdG9tLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3Vz
dG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yRnJv
bnRlbmRIb3N0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAnLApAQCAtMzMxMCw2ICszMzEwLDggQEAKICAg
ICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmgnLAogICAgICAgICAgICAg
J3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9J
REJEYXRhYmFzZVJlcXVlc3QuaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJSZXF1ZXN0LmNw
cCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3N0
b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JbmRleGVk
RGF0YWJhc2UuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNw
cCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnBy
aQppbmRleCAwNTgxZGFlMTZlZjExNmE1MTcwNTA2YmQyM2RmNmM1NDQ4NWVhMGMzLi4zNWQwNTAw
ZjlhZDM0MzZmYjgzZDdmZGRiYjY1OGU1YWZjNzQxNWI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTQzNyw2ICs0MzcsMTEgQEAg
SURMX0JJTkRJTkdTICs9IFwKICAgICBwbHVnaW5zL01pbWVUeXBlQXJyYXkuaWRsIFwKICAgICBz
dG9yYWdlL0RhdGFiYXNlLmlkbCBcCiAgICAgc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmlkbCBc
CisgICAgc3RvcmFnZS9JREJEYXRhYmFzZUVycm9yLmlkbCBcCisgICAgc3RvcmFnZS9JREJEYXRh
YmFzZUV4Y2VwdGlvbi5pZGwgXAorICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbCBc
CisgICAgc3RvcmFnZS9JREJSZXF1ZXN0LmlkbCBcCisgICAgc3RvcmFnZS9JbmRleGVkRGF0YWJh
c2VSZXF1ZXN0LmlkbCBcCiAgICAgc3RvcmFnZS9TdG9yYWdlLmlkbCBcCiAgICAgc3RvcmFnZS9T
dG9yYWdlRXZlbnQuaWRsIFwKICAgICBzdG9yYWdlL1NRTEVycm9yLmlkbCBcCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAyNDYzNWFi
Yzk4ZmFhM2M4ODkzNzk1ZTljZmViNjhjNTBiNzgyMWNmLi4zNzkyMjFiNDViM2FjNTAzMGVlNGUy
NTRlZGNmZmIzMmQ2ZDUwODMwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTIzMDQsNiArMjMwNCwyOCBAQCBjb250YWlucyhERUZJ
TkVTLCBFTkFCTEVfREFUQUJBU0U9MSkgewogICAgICAgICBiaW5kaW5ncy9qcy9KU1NRTFRyYW5z
YWN0aW9uQ3VzdG9tLmNwcAogfQogCitjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRT0xKSB7CisgICAgSEVBREVSUyArPSBcCisgICAgICAgIHN0b3JhZ2UvSURCQ2FsbGJh
Y2tzLmggXAorICAgICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlLmggXAorICAgICAgICBzdG9yYWdl
L0lEQkRhdGFiYXNlRXJyb3IuaCBcCisgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRp
b24uaCBcCisgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmggXAorICAgICAgICBz
dG9yYWdlL0lEQlJlcXVlc3QuaCBcCisgICAgICAgIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmgg
XAorICAgICAgICBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuaCBcCisgICAgICAgIHN0b3Jh
Z2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oCisKKyAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAg
YmluZGluZ3MvanMvSlNJREJSZXF1ZXN0Q3VzdG9tLmNwcCBcCisgICAgICAgIHN0b3JhZ2UvSURC
RGF0YWJhc2UuY3BwIFwKKyAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwIFwK
KyAgICAgICAgc3RvcmFnZS9JREJSZXF1ZXN0LmNwcCBcCisgICAgICAgIHN0b3JhZ2UvSW5kZXhl
ZERhdGFiYXNlLmNwcCBcCisgICAgICAgIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAg
XAorICAgICAgICBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCit9CisKIGNvbnRh
aW5zKERFRklORVMsIEVOQUJMRV9ET01fU1RPUkFHRT0xKSB7CiAgICAgSEVBREVSUyArPSBcCiAg
ICAgICAgIHN0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagppbmRleCBlNWYxNTM4MzVhZTQ4MDg2NTFlMzRiZTVkODUxNTkyOTk5
YzY1ZTZlLi44ZTIyYmZiZTBmYjU1ODA2YWFlOWEzY2UyNzVlOTM3YjY5ZDQxYzZkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTM3NTI3LDYgKzM3NTI3LDIzMCBAQAog
CQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iJChX
ZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkRh
dGFiYXNlRXJyb3IuY3BwIg0KKwkJCQkJPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQor
CQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQor
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+
DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkv
Pg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iJChX
ZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkRh
dGFiYXNlRXJyb3IuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJ
UmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwIg0KKwkJCQkJPg0KKwkJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0K
KwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0K
KwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVi
dWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJ
CQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJ
CQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQor
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1
Z19BbGx8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0K
KwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4N
CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJ
CQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0lEQkRhdGFiYXNlRXhjZXB0aW9uLmgiDQorCQkJCQk+DQorCQkJCTwv
RmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkRhdGFiYXNlUmVxdWVzdC5j
cHAiDQorCQkJCQk+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1
Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJ
CQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJ
CU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQor
CQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMy
Ig0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9v
bA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0i
UmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJ
PC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCRGF0YWJhc2VSZXF1ZXN0
LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0
aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U0lEQlJlcXVlc3QuY3BwIg0KKwkJCQkJPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQor
CQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQor
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+
DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkv
Pg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iJChX
ZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQlJl
cXVlc3QuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0ltYWdlQ29uc3RydWN0b3IuY3BwIg0KIAkJCQkJPg0K
IAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMzc1NzksNiArMzc4MDMsNTggQEAKIAkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0lEQlJlcXVlc3RDdXN0b20uY3BwIg0KKwkJCQkJ
Pg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQor
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJSZWxl
YXNlfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJ
CQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQor
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fp
cm98V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJ
CQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTwvRmlsZT4NCisJ
CQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNJbWFnZUNvbnN0
cnVjdG9yLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkBAIC0zNzYzNSw2ICszNzkxMSw2MiBA
QAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQor
CQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNJbmRleGVkRGF0YWJhc2VyZXF1ZXN0LmNwcCINCisJCQkJCT4NCisJ
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZXxX
aW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJ
PFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5h
bWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdp
bjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8
VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFt
ZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJ
CQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJ
CQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxG
aWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgiDQorCQkJCQk+
DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA4ZjA0M2E2MGQ0YmIzNDBmNzJlMjA5NDEzZjQwYmQ2NDk3ODEwNjUzLi4xN2NhOGFh
NThiNjZhYjhkZTZhNmI5ODEwZjdkYTVjNTAwOTM3NDViIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDcyNywxMSArNDcyNywzNyBAQAogCQlDNTEwMkVE
MDBGRDlFRjhDMDBGQUZGMDQgLyogU3RvcmFnZUFyZWFTeW5jLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MTAyRUNFMEZEOUVGOEMwMEZBRkYwNCAv
KiBTdG9yYWdlQXJlYVN5bmMuY3BwICovOyB9OwogCQlDNTE2MEVFQTEwMDQ1NDNBMDBBN0NFRTIg
LyogU3RvcmFnZUFyZWFJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEM1MTYwRUU4MTAwNDU0M0EwMEE3Q0VFMiAvKiBTdG9yYWdlQXJlYUltcGwu
Y3BwICovOyB9OwogCQlDNTE2MEVFQjEwMDQ1NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJbXBs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTE2MEVF
OTEwMDQ1NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJbXBsLmggKi87IH07CisJCUM1MTk4RjRD
MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJDYWxsYmFja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MTk4RjM4MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJD
YWxsYmFja3MuaCAqLzsgfTsKKwkJQzUxOThGNEQxMTkyRUNGRDAwMkI3NEE2IC8qIElEQkRhdGFi
YXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1
MTk4RjM5MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZS5jcHAgKi87IH07CisJCUM1MTk4
RjRFMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxOThGM0ExMTkyRUNGRDAwMkI3NEE2IC8qIElE
QkRhdGFiYXNlLmggKi87IH07CisJCUM1MTk4RjRGMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRh
YmFzZUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDNTE5OEYzQjExOTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJhc2VFcnJvci5oICovOyB9Owor
CQlDNTE5OEY1MTExOTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJhc2VFeGNlcHRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MTk4RjNEMTE5MkVD
RkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZUV4Y2VwdGlvbi5oICovOyB9OworCQlDNTE5OEY1MzEx
OTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MTk4RjNGMTE5MkVDRkQwMDJCNzRBNiAv
KiBJREJEYXRhYmFzZVJlcXVlc3QuY3BwICovOyB9OworCQlDNTE5OEY1NDExOTJFQ0ZEMDAyQjc0
QTYgLyogSURCRGF0YWJhc2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNTE5OEY0MDExOTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJhc2VS
ZXF1ZXN0LmggKi87IH07CisJCUM1MTk4RjU2MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJSZXF1ZXN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MTk4
RjQyMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJSZXF1ZXN0LmNwcCAqLzsgfTsKKwkJQzUxOThGNTcx
MTkyRUNGRDAwMkI3NEE2IC8qIElEQlJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MTk4RjQzMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJSZXF1
ZXN0LmggKi87IH07CisJCUM1MTk4RjU5MTE5MkVDRkQwMDJCNzRBNiAvKiBJbmRleGVkRGF0YWJh
c2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUx
OThGNDUxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZS5jcHAgKi87IH07CisJCUM1
MTk4RjVBMTE5MkVDRkQwMDJCNzRBNiAvKiBJbmRleGVkRGF0YWJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MTk4RjQ2MTE5MkVDRkQwMDJCNzRB
NiAvKiBJbmRleGVkRGF0YWJhc2UuaCAqLzsgfTsKKwkJQzUxOThGNUIxMTkyRUNGRDAwMkI3NEE2
IC8qIEluZGV4ZWREYXRhYmFzZUltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzUxOThGNDcxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRh
YmFzZUltcGwuY3BwICovOyB9OworCQlDNTE5OEY1QzExOTJFQ0ZEMDAyQjc0QTYgLyogSW5kZXhl
ZERhdGFiYXNlSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzUxOThGNDgxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZUltcGwuaCAq
LzsgfTsKKwkJQzUxOThGNUQxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZVJlcXVl
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUx
OThGNDkxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwICovOyB9
OworCQlDNTE5OEY1RTExOTJFQ0ZEMDAyQjc0QTYgLyogSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxOThGNEEx
MTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCAqLzsgfTsKIAkJQzU1
RTM4QkYxMDA0MEQ1RDAwQTU2QkRCIC8qIFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTVFMzhCQjEwMDQwRDVEMDBB
NTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuaCAqLzsgfTsKIAkJQzU1RTM4QzAxMDA0MEQ1
RDAwQTU2QkRCIC8qIFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1NUUzOEJDMTAwNDBENUQwMEE1NkJEQiAvKiBT
dG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgKi87IH07CisJCUM1OTU2Njc4MTE5MzI0QzYwMEZEQ0U0
NyAvKiBKU0lEQlJlcXVlc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzU5NTY2NzcxMTkzMjRDNjAwRkRDRTQ3IC8qIEpTSURCUmVxdWVz
dEN1c3RvbS5jcHAgKi87IH07CiAJCUM1RDRBQTdBMTE2QkFGQjYwMDY5Q0E5MyAvKiBHbHlwaE1l
dHJpY3NNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEM1RDRBQTc4MTE2QkFGQjYwMDY5Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDNUU5QjY3NzEwNjk3RTEz
MDBDN0JCMUEgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUU5QjY3NjEwNjk3RTEzMDBDN0JCMUEgLyog
U3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAgKi87IH07CiAJCUM1RUJERDg0MTA1RURERUMwMDU2
ODE2RiAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUVCREQ4MTEwNUVEREVDMDA1NjgxNkYgLyogU3RvcmFn
ZUV2ZW50RGlzcGF0Y2hlci5oICovOyB9OworCQlDNUY0RjQwNjExOTMwNkFDMDBGREZBREQgLyog
SlNJREJEYXRhYmFzZUVycm9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEM1RjRGM0ZFMTE5MzA2QUMwMEZERkFERCAvKiBKU0lEQkRhdGFiYXNlRXJy
b3IuY3BwICovOyB9OworCQlDNUY0RjQwNzExOTMwNkFDMDBGREZBREQgLyogSlNJREJEYXRhYmFz
ZUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
NUY0RjNGRjExOTMwNkFDMDBGREZBREQgLyogSlNJREJEYXRhYmFzZUVycm9yLmggKi87IH07CisJ
CUM1RjRGNDA4MTE5MzA2QUMwMEZERkFERCAvKiBKU0lEQkRhdGFiYXNlRXhjZXB0aW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1RjRGNDAwMTE5
MzA2QUMwMEZERkFERCAvKiBKU0lEQkRhdGFiYXNlRXhjZXB0aW9uLmNwcCAqLzsgfTsKKwkJQzVG
NEY0MDkxMTkzMDZBQzAwRkRGQUREIC8qIEpTSURCRGF0YWJhc2VFeGNlcHRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1RjRGNDAxMTE5MzA2QUMw
MEZERkFERCAvKiBKU0lEQkRhdGFiYXNlRXhjZXB0aW9uLmggKi87IH07CisJCUM1RjRGNDBBMTE5
MzA2QUMwMEZERkFERCAvKiBKU0lEQkRhdGFiYXNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUY0RjQwMjExOTMwNkFDMDBGREZBREQg
LyogSlNJREJEYXRhYmFzZVJlcXVlc3QuY3BwICovOyB9OworCQlDNUY0RjQwQjExOTMwNkFDMDBG
REZBREQgLyogSlNJREJEYXRhYmFzZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1RjRGNDAzMTE5MzA2QUMwMEZERkFERCAvKiBKU0lEQkRh
dGFiYXNlUmVxdWVzdC5oICovOyB9OworCQlDNUY0RjQwQzExOTMwNkFDMDBGREZBREQgLyogSlNJ
REJSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM1RjRGNDA0MTE5MzA2QUMwMEZERkFERCAvKiBKU0lEQlJlcXVlc3QuY3BwICovOyB9Owor
CQlDNUY0RjQwRDExOTMwNkFDMDBGREZBREQgLyogSlNJREJSZXF1ZXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUY0RjQwNTExOTMwNkFDMDBGREZB
REQgLyogSlNJREJSZXF1ZXN0LmggKi87IH07CisJCUM1RjRGNDEwMTE5MzA2QzAwMEZERkFERCAv
KiBKU0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzVGNEY0MEUxMTkzMDZDMDAwRkRGQUREIC8qIEpTSW5kZXhl
ZERhdGFiYXNlUmVxdWVzdC5jcHAgKi87IH07CisJCUM1RjRGNDExMTE5MzA2QzAwMEZERkFERCAv
KiBKU0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEM1RjRGNDBGMTE5MzA2QzAwMEZERkFERCAvKiBKU0luZGV4ZWRE
YXRhYmFzZVJlcXVlc3QuaCAqLzsgfTsKIAkJQzZENzRBRDUwOUFBMjgyRTAwMEIwQTUyIC8qIE1v
ZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlv
bkxpc3RMZXZlbC5oICovOyB9OwogCQlDNkQ3NEFFNDA5QUEyOTBBMDAwQjBBNTIgLyogTW9kaWZ5
U2VsZWN0aW9uTGlzdExldmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEM2RDc0QUUzMDlBQTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25M
aXN0TGV2ZWwuY3BwICovOyB9OwogCQlDRTE3MkUwMTExMzZFOENFMDA2MkE1MzMgLyogWm9vbU1v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMTcy
RTAwMTEzNkU4Q0UwMDYyQTUzMyAvKiBab29tTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDEyOCwxMSArMTAxNTQsNDIgQEAKIAkJQzUx
MDJFQ0UwRkQ5RUY4QzAwRkFGRjA0IC8qIFN0b3JhZ2VBcmVhU3luYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlQXJlYVN5bmMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNTE2MEVFODEwMDQ1NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFy
ZWFJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VB
cmVhSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MTYwRUU5MTAwNDU0
M0EwMEE3Q0VFMiAvKiBTdG9yYWdlQXJlYUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3RvcmFnZUFyZWFJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUM1MTk4RjM4MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJDYWxsYmFja3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSURCQ2FsbGJhY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUM1MTk4RjM5MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJEYXRhYmFzZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1MTk4RjNBMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJE
YXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJEYXRhYmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTE5OEYzQjExOTJFQ0ZEMDAyQjc0QTYg
LyogSURCRGF0YWJhc2VFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
REJEYXRhYmFzZUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1MTk4RjND
MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZUVycm9yLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBJREJEYXRhYmFzZUVycm9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzUxOThGM0QxMTkyRUNGRDAwMkI3NEE2IC8qIElEQkRhdGFiYXNlRXhjZXB0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkRhdGFiYXNlRXhjZXB0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1MTk4RjNFMTE5MkVDRkQwMDJCNzRBNiAvKiBJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSURCRGF0YWJh
c2VFeGNlcHRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTE5OEYzRjEx
OTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQkRhdGFiYXNlUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUM1MTk4RjQwMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFz
ZVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCRGF0YWJhc2VS
ZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1MTk4RjQxMTE5MkVDRkQw
MDJCNzRBNiAvKiBJREJEYXRhYmFzZVJlcXVlc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IElEQkRhdGFiYXNlUmVxdWVzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1
MTk4RjQyMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDNTE5OEY0MzExOTJFQ0ZEMDAyQjc0QTYgLyogSURCUmVxdWVzdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUM1MTk4RjQ0MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJSZXF1ZXN0Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJREJSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzUxOThGNDUxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmRleGVkRGF0YWJh
c2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTE5OEY0NjExOTJFQ0ZEMDAy
Qjc0QTYgLyogSW5kZXhlZERhdGFiYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluZGV4ZWREYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTE5
OEY0NzExOTJFQ0ZEMDAyQjc0QTYgLyogSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmRleGVkRGF0YWJhc2VJbXBsLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzUxOThGNDgxMTkyRUNGRDAwMkI3NEE2IC8qIElu
ZGV4ZWREYXRhYmFzZUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5k
ZXhlZERhdGFiYXNlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTE5OEY0
OTExOTJFQ0ZEMDAyQjc0QTYgLyogSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzUxOThGNEExMTkyRUNGRDAwMkI3NEE2IC8q
IEluZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDNTE5OEY0QjExOTJFQ0ZEMDAyQjc0QTYgLyogSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1NUUzOEJCMTAwNDBENUQwMEE1NkJEQiAvKiBTdG9y
YWdlTmFtZXNwYWNlSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9y
YWdlTmFtZXNwYWNlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTVFMzhC
QzEwMDQwRDVEMDBBNTZCREIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTk1NjY3NzExOTMyNEM2MDBGRENFNDcgLyogSlNJ
REJSZXF1ZXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTSURCUmVxdWVzdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1
RDRBQTc4MTE2QkFGQjYwMDY5Q0E5MyAvKiBHbHlwaE1ldHJpY3NNYXAuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR2x5cGhNZXRyaWNzTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUM1RTlCNjc2MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdlRXZlbnREaXNw
YXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VF
dmVudERpc3BhdGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNUVCREQ4
MTEwNUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1RjRGM0ZFMTE5MzA2QUMwMEZERkFERCAvKiBKU0lEQkRh
dGFiYXNlRXJyb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJ
REJEYXRhYmFzZUVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzVGNEYz
RkYxMTkzMDZBQzAwRkRGQUREIC8qIEpTSURCRGF0YWJhc2VFcnJvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0lEQkRhdGFiYXNlRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzVGNEY0MDAxMTkzMDZBQzAwRkRGQUREIC8qIEpTSURCRGF0YWJhc2VF
eGNlcHRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJE
YXRhYmFzZUV4Y2VwdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1RjRG
NDAxMTE5MzA2QUMwMEZERkFERCAvKiBKU0lEQkRhdGFiYXNlRXhjZXB0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSURCRGF0YWJhc2VFeGNlcHRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzVGNEY0MDIxMTkzMDZBQzAwRkRGQUREIC8qIEpTSURC
RGF0YWJhc2VSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTSURCRGF0YWJhc2VSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzVGNEY0MDMxMTkzMDZBQzAwRkRGQUREIC8qIEpTSURCRGF0YWJhc2VSZXF1ZXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSURCRGF0YWJhc2VSZXF1ZXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1RjRGNDA0MTE5MzA2QUMwMEZERkFERCAvKiBKU0lE
QlJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJS
ZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzVGNEY0MDUxMTkzMDZB
QzAwRkRGQUREIC8qIEpTSURCUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0lEQlJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzVGNEY0
MEUxMTkzMDZDMDAwRkRGQUREIC8qIEpTSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0luZGV4ZWREYXRhYmFzZVJlcXVlc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNUY0RjQwRjExOTMwNkMwMDBGREZB
REQgLyogSlNJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDNkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlz
dExldmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGlmeVNlbGVjdGlv
bkxpc3RMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkQ3NEFFMzA5QUEy
OTBBMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFMTcyRTAwMTEzNkU4Q0UwMDYyQTUzMyAvKiBa
b29tTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBab29tTW9kZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3ODEsNiArMTA4MzgsMjYgQEAKIAkJCQkx
QUQ1MUExMzBDQjU5Q0QzMDA5NTNEMTEgLyogRGF0YWJhc2VUcmFja2VyLmNwcCAqLywKIAkJCQkx
QUQ1MUExMjBDQjU5Q0QzMDA5NTNEMTEgLyogRGF0YWJhc2VUcmFja2VyLmggKi8sCiAJCQkJNTFG
QUZFMzMwQ0VDQkYyRDAwQkIzRjI0IC8qIERhdGFiYXNlVHJhY2tlckNsaWVudC5oICovLAorCQkJ
CUM1MTk4RjM4MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJDYWxsYmFja3MuaCAqLywKKwkJCQlDNTE5
OEYzOTExOTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJhc2UuY3BwICovLAorCQkJCUM1MTk4RjNB
MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZS5oICovLAorCQkJCUM1MTk4RjNCMTE5MkVD
RkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZUVycm9yLmggKi8sCisJCQkJQzUxOThGM0MxMTkyRUNG
RDAwMkI3NEE2IC8qIElEQkRhdGFiYXNlRXJyb3IuaWRsICovLAorCQkJCUM1MTk4RjNEMTE5MkVD
RkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZUV4Y2VwdGlvbi5oICovLAorCQkJCUM1MTk4RjNFMTE5
MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwgKi8sCisJCQkJQzUxOThG
M0YxMTkyRUNGRDAwMkI3NEE2IC8qIElEQkRhdGFiYXNlUmVxdWVzdC5jcHAgKi8sCisJCQkJQzUx
OThGNDAxMTkyRUNGRDAwMkI3NEE2IC8qIElEQkRhdGFiYXNlUmVxdWVzdC5oICovLAorCQkJCUM1
MTk4RjQxMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZVJlcXVlc3QuaWRsICovLAorCQkJ
CUM1MTk4RjQyMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJSZXF1ZXN0LmNwcCAqLywKKwkJCQlDNTE5
OEY0MzExOTJFQ0ZEMDAyQjc0QTYgLyogSURCUmVxdWVzdC5oICovLAorCQkJCUM1MTk4RjQ0MTE5
MkVDRkQwMDJCNzRBNiAvKiBJREJSZXF1ZXN0LmlkbCAqLywKKwkJCQlDNTE5OEY0NTExOTJFQ0ZE
MDAyQjc0QTYgLyogSW5kZXhlZERhdGFiYXNlLmNwcCAqLywKKwkJCQlDNTE5OEY0NjExOTJFQ0ZE
MDAyQjc0QTYgLyogSW5kZXhlZERhdGFiYXNlLmggKi8sCisJCQkJQzUxOThGNDcxMTkyRUNGRDAw
MkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZUltcGwuY3BwICovLAorCQkJCUM1MTk4RjQ4MTE5MkVD
RkQwMDJCNzRBNiAvKiBJbmRleGVkRGF0YWJhc2VJbXBsLmggKi8sCisJCQkJQzUxOThGNDkxMTky
RUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwICovLAorCQkJCUM1MTk4
RjRBMTE5MkVDRkQwMDJCNzRBNiAvKiBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmggKi8sCisJCQkJ
QzUxOThGNEIxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZVJlcXVlc3QuaWRsICov
LAogCQkJCTUxMUYyMzEzMERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNwcCAq
LywKIAkJCQk1MTFGMjMxNDBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5oICov
LAogCQkJCTUxMUYyMzE1MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuY3Bw
ICovLApAQCAtMTQwNzksNiArMTQxNTYsMTYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFBRTgy
RjhEMENBQUZBOUQwMDIyMzdBRSAvKiBKU0RhdGFiYXNlLmNwcCAqLywKIAkJCQkxQUU4MkY4RTBD
QUFGQTlEMDAyMjM3QUUgLyogSlNEYXRhYmFzZS5oICovLAorCQkJCUM1RjRGM0ZFMTE5MzA2QUMw
MEZERkFERCAvKiBKU0lEQkRhdGFiYXNlRXJyb3IuY3BwICovLAorCQkJCUM1RjRGM0ZGMTE5MzA2
QUMwMEZERkFERCAvKiBKU0lEQkRhdGFiYXNlRXJyb3IuaCAqLywKKwkJCQlDNUY0RjQwMDExOTMw
NkFDMDBGREZBREQgLyogSlNJREJEYXRhYmFzZUV4Y2VwdGlvbi5jcHAgKi8sCisJCQkJQzVGNEY0
MDExMTkzMDZBQzAwRkRGQUREIC8qIEpTSURCRGF0YWJhc2VFeGNlcHRpb24uaCAqLywKKwkJCQlD
NUY0RjQwMjExOTMwNkFDMDBGREZBREQgLyogSlNJREJEYXRhYmFzZVJlcXVlc3QuY3BwICovLAor
CQkJCUM1RjRGNDAzMTE5MzA2QUMwMEZERkFERCAvKiBKU0lEQkRhdGFiYXNlUmVxdWVzdC5oICov
LAorCQkJCUM1RjRGNDA0MTE5MzA2QUMwMEZERkFERCAvKiBKU0lEQlJlcXVlc3QuY3BwICovLAor
CQkJCUM1RjRGNDA1MTE5MzA2QUMwMEZERkFERCAvKiBKU0lEQlJlcXVlc3QuaCAqLywKKwkJCQlD
NUY0RjQwRTExOTMwNkMwMDBGREZBREQgLyogSlNJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcCAq
LywKKwkJCQlDNUY0RjQwRjExOTMwNkMwMDBGREZBREQgLyogSlNJbmRleGVkRGF0YWJhc2VSZXF1
ZXN0LmggKi8sCiAJCQkJNTE0Qzc2MzUwQ0U5MjI1RTAwN0VGM0NEIC8qIEpTU1FMRXJyb3IuY3Bw
ICovLAogCQkJCUJDODI0MzI1MEQwQ0U4QTIwMDQ2MEM4RiAvKiBKU1NRTEVycm9yLmggKi8sCiAJ
CQkJMUFFODJGRUEwQ0FCMDdFRTAwMjIzN0FFIC8qIEpTU1FMUmVzdWx0U2V0LmNwcCAqLywKQEAg
LTE1MDg2LDYgKzE1MTczLDcgQEAKIAkJCQk0NDhBRDI3QTBBNDgxMzc5MDAyM0QxNzkgLyogSlNI
VE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwICovLAogCQkJCUJDMTdGOTY1MEI2NEVCQjgw
MDRBNjVDQiAvKiBKU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlBQjRDQjRF
QTBCOEJEQTNEMDA5RjQwQjAgLyogSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5oICovLAorCQkJ
CUM1OTU2Njc3MTE5MzI0QzYwMEZEQ0U0NyAvKiBKU0lEQlJlcXVlc3RDdXN0b20uY3BwICovLAog
CQkJCUE3RDAzMThEMEU5MzU0MDMwMEUyNEFDRCAvKiBKU0ltYWdlRGF0YUN1c3RvbS5jcHAgKi8s
CiAJCQkJN0EwRTc2RDQxMEJGMDUwNzAwQTAyNzZFIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0Q3Vz
dG9tLmNwcCAqLywKIAkJCQk3QTc0RUNCQzEwMTgzOURBMDBCRjkzOUUgLyogSlNJbnNwZWN0b3JG
cm9udGVuZEhvc3RDdXN0b20uY3BwICovLApAQCAtMTg5NDksNiArMTkwMzcsMjAgQEAKIAkJCQlC
NTlERDZBMTExOTAyQTUyMDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCUI1OURENkE1MTE5MDJBNjIwMDdFOTY4NCAvKiBKU1NRTFN0
YXRlbWVudENhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTlERDZBOTExOTAyQTcxMDA3
RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDNTE5OEY0QzExOTJFQ0ZEMDAyQjc0QTYgLyogSURCQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAq
LywKKwkJCQlDNTE5OEY0RTExOTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJhc2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUM1MTk4RjRGMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZUVycm9y
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDNTE5OEY1MTExOTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0
YWJhc2VFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUM1MTk4RjU0MTE5MkVDRkQwMDJC
NzRBNiAvKiBJREJEYXRhYmFzZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUM1MTk4RjU3
MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlDNTE5
OEY1QTExOTJFQ0ZEMDAyQjc0QTYgLyogSW5kZXhlZERhdGFiYXNlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlDNTE5OEY1QzExOTJFQ0ZEMDAyQjc0QTYgLyogSW5kZXhlZERhdGFiYXNlSW1wbC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQzUxOThGNUUxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRh
YmFzZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUM1RjRGNDA3MTE5MzA2QUMwMEZERkFE
RCAvKiBKU0lEQkRhdGFiYXNlRXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUM1RjRGNDA5MTE5
MzA2QUMwMEZERkFERCAvKiBKU0lEQkRhdGFiYXNlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQlDNUY0RjQwQjExOTMwNkFDMDBGREZBREQgLyogSlNJREJEYXRhYmFzZVJlcXVlc3QuaCBp
biBIZWFkZXJzICovLAorCQkJCUM1RjRGNDBEMTE5MzA2QUMwMEZERkFERCAvKiBKU0lEQlJlcXVl
c3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUM1RjRGNDExMTE5MzA2QzAwMEZERkFERCAvKiBKU0lu
ZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjExOTEsNiArMjEyOTMs
MTggQEAKIAkJCQlCNTlERDZBMjExOTAyQTUyMDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5REQ2QTYxMTkwMkE2MjAwN0U5
Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5
REQ2QUExMTkwMkE3MTAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDNTE5OEY0RDExOTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJh
c2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzUxOThGNTMxMTkyRUNGRDAwMkI3NEE2IC8qIElE
QkRhdGFiYXNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDNTE5OEY1NjExOTJFQ0ZE
MDAyQjc0QTYgLyogSURCUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDNTE5OEY1OTEx
OTJFQ0ZEMDAyQjc0QTYgLyogSW5kZXhlZERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUM1MTk4RjVCMTE5MkVDRkQwMDJCNzRBNiAvKiBJbmRleGVkRGF0YWJhc2VJbXBsLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUM1MTk4RjVEMTE5MkVDRkQwMDJCNzRBNiAvKiBJbmRleGVkRGF0YWJh
c2VSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM1RjRGNDA2MTE5MzA2QUMwMEZERkFE
RCAvKiBKU0lEQkRhdGFiYXNlRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzVGNEY0MDgx
MTkzMDZBQzAwRkRGQUREIC8qIEpTSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQzVGNEY0MEExMTkzMDZBQzAwRkRGQUREIC8qIEpTSURCRGF0YWJhc2VSZXF1ZXN0
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM1RjRGNDBDMTE5MzA2QUMwMEZERkFERCAvKiBKU0lE
QlJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzVGNEY0MTAxMTkzMDZDMDAwRkRGQURE
IC8qIEpTSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDNTk1
NjY3ODExOTMyNEM2MDBGRENFNDcgLyogSlNJREJSZXF1ZXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAKaW5kZXggNjY4NmQ3YTY5Y2My
ZDNjZWQzMzM3MjQyMmM3MTVkMTk0YTJiZTMwMy4uODQ2OWUwOTY0YmRiZGI5NGIzMzc3NTc0N2Ex
NGM5YjdmZjFjNmU1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3Vz
dG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCkBAIC0z
OCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSlNDdXN0b21FdmVudC5oIgogI2luY2x1ZGUgIkpTQ29t
cG9zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkpTRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIkpT
SURCUmVxdWVzdC5oIgogI2luY2x1ZGUgIkpTS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkpT
TWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiSlNNb3VzZUV2ZW50LmgiCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCUmVxdWVzdEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSURCUmVxdWVzdEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U2M2YyNjZkNWE5NzM2
Y2RkYzc3ODNiZGJjYTAxMTY5OWNjOGNlZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJREJSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJK
U0lEQlJlcXVlc3QuaCIKKworI2luY2x1ZGUgIklEQkRhdGFiYXNlUmVxdWVzdC5oIgorI2luY2x1
ZGUgIklEQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJKU0lEQkRhdGFiYXNlUmVxdWVzdC5oIgorI2lu
Y2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorCit1c2luZyBuYW1lc3BhY2UgSlNDOwor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTVmFsdWUgSlNJREJSZXF1ZXN0OjpyZXN1bHQoRXhl
Y1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIElEQlJlcXVlc3QqIGlkYlJlcXVlc3QgPSBzdGF0
aWNfY2FzdDxJREJSZXF1ZXN0Kj4oaW1wbCgpKTsKKyAgICBzd2l0Y2ggKGlkYlJlcXVlc3QtPnJl
c3VsdFR5cGUoKSkgeworICAgIGNhc2UgSURCUmVxdWVzdDo6VU5ERUZJTkVEOgorICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICBjYXNlIElEQlJlcXVlc3Q6OklEQkRBVEFCQVNFOgor
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgaWRiUmVxdWVzdC0+aWRi
RGF0YWJhc2VSZXN1bHQoKSk7CisgICAgY2FzZSBJREJSZXF1ZXN0OjpTRVJJQUxJWkVEU0NSSVBU
VkFMVUU6CisgICAgICAgIHJldHVybiBpZGJSZXF1ZXN0LT5zZXJpYWxpemVkU2NyaXB0VmFsdWVS
ZXN1bHQoKS0+ZGVzZXJpYWxpemUoZXhlYywgZ2xvYmFsT2JqZWN0KCkpOworICAgIH0KKworICAg
IEFTU0VSVCgwKTsKKyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKaW5kZXggYjJlZWViNDk1YjgzZWViZjMxMGQwMDhjNGU5
NTZlYTAwMWJjMWQ4NC4uYzE1MzU1YzIzYTE4ODQ3Zjg3MmM2ZDBkYjdkNjE2MzM2OGM3ZDIyOSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAtNDksNiArNDksNyBAQAogI2lu
Y2x1ZGUgIlY4RXZlbnRTb3VyY2UuaCIKICNpbmNsdWRlICJWOEhUTUxDb2xsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiVjhIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJWOElEQlJlcXVlc3QuaCIKICNp
bmNsdWRlICJWOElzb2xhdGVkQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4TG9jYXRpb24uaCIKICNp
bmNsdWRlICJWOE1lc3NhZ2VDaGFubmVsLmgiCkBAIC0zNzcsNiArMzc4LDExIEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOERPTVdyYXBwZXI6OmNvbnZlcnRFdmVudFRhcmdldFRvVjhPYmplY3Qo
RXZlbnRUYXJnZXQqIHRhCiAgICAgICAgIHJldHVybiB0b1Y4KG5vdGlmaWNhdGlvbik7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIGlmIChJREJSZXF1ZXN0KiBp
ZGJSZXF1ZXN0ID0gdGFyZ2V0LT50b0lEQlJlcXVlc3QoKSkKKyAgICAgICAgcmV0dXJuIHRvVjgo
aWRiUmVxdWVzdCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShXRUJfU09DS0VUUykKICAgICBpZiAo
V2ViU29ja2V0KiB3ZWJTb2NrZXQgPSB0YXJnZXQtPnRvV2ViU29ja2V0KCkpCiAgICAgICAgIHJl
dHVybiB0b1Y4KHdlYlNvY2tldCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEN1c3RvbUlEQkNhbGxiYWNrcy5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhDdXN0b21JREJDYWxsYmFja3MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTUx
N2YxNWIyNDI2YjgzNjEwYjA2MDMxOGU2N2JlMTRhNjVkN2U5Yi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEN1c3RvbUlEQkNhbGxiYWNrcy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTIzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFY4Q3VzdG9tSURCQ2FsbGJhY2tzX2gKLSNkZWZpbmUgVjhDdXN0b21JREJDYWxsYmFja3Nf
aAotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUg
IklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRlICJWOEN1c3RvbVZvaWRDYWxsYmFjay5oIgot
I2luY2x1ZGUgIlY4SURCRGF0YWJhc2VFcnJvci5oIgotI2luY2x1ZGUgIldvcmxkQ29udGV4dEhh
bmRsZS5oIgotI2luY2x1ZGUgPHY4Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIEZJ
WE1FOiBNYXliZSBzcGxpdCBjb21tb24gcGFydHMgaW50byBhIGJhc2UgY2xhc3MuCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgUmVzdWx0VHlwZSwgdHlwZW5hbWUgUmVzdWx0V3JhcHBlclR5cGU+Ci1jbGFz
cyBWOEN1c3RvbUlEQkNhbGxiYWNrcyA6IHB1YmxpYyBJREJDYWxsYmFja3M8UmVzdWx0VHlwZT4g
ewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4Q3VzdG9tSURCQ2FsbGJhY2tzPiBj
cmVhdGUodjg6OkxvY2FsPHY4OjpWYWx1ZT4gb25TdWNjZXNzLCB2ODo6TG9jYWw8djg6OlZhbHVl
PiBvbkVycm9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWOEN1c3RvbUlEQkNhbGxiYWNr
cyhvblN1Y2Nlc3MsIG9uRXJyb3IsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKTsKLSAgICB9Ci0K
LSAgICB2aXJ0dWFsIH5WOEN1c3RvbUlEQkNhbGxiYWNrcygpCi0gICAgewotICAgICAgICBtX29u
U3VjY2Vzcy5EaXNwb3NlKCk7Ci0gICAgICAgIG1fb25FcnJvci5EaXNwb3NlKCk7Ci0gICAgfQot
Ci0gICAgLy8gRklYTUU6IEhhbmRsZSBzdXNwZW5kL3Jlc3VtZSBjb3JyZWN0bHkuCi0KLXByaXZh
dGU6Ci0gICAgVjhDdXN0b21JREJDYWxsYmFja3Modjg6OkxvY2FsPHY4OjpWYWx1ZT4gb25TdWNj
ZXNzLCB2ODo6TG9jYWw8djg6OlZhbHVlPiBvbkVycm9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQotICAgICAgICA6IElEQkNhbGxiYWNrczxSZXN1bHRU
eXBlPihzY3JpcHRFeGVjdXRpb25Db250ZXh0LCB0aGlzKQotICAgICAgICAsIG1fb25TdWNjZXNz
KG9uU3VjY2Vzcy0+SXNPYmplY3QoKSA/IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXco
b25TdWNjZXNzLT5Ub09iamVjdCgpKSA6IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KCkpCi0g
ICAgICAgICwgbV9vbkVycm9yKG9uRXJyb3ItPklzT2JqZWN0KCkgPyB2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0Pjo6TmV3KG9uRXJyb3ItPlRvT2JqZWN0KCkpIDogdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4oKSkKLSAgICAgICAgLCBtX3dvcmxkQ29udGV4dChVc2VDdXJyZW50V29ybGQpCi0g
ICAgewotICAgIH0KLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlPgotICAgIHZvaWQgb25F
dmVudCh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgUGFzc1JlZlB0cjxUeXBl
PiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICghQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChjYWxsYmFj
ay5Jc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdjg6OkhhbmRsZVNj
b3BlIGhhbmRsZVNjb3BlOwotICAgICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0
ID0gdG9WOENvbnRleHQoQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
IG1fd29ybGRDb250ZXh0KTsKLSAgICAgICAgaWYgKGNvbnRleHQuSXNFbXB0eSgpKQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIHY4OjpDb250ZXh0OjpTY29wZSBzY29wZShjb250ZXh0
KTsKLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSA9IHsKLSAgICAgICAgICAg
IHRvVjgodmFsdWUpCi0gICAgICAgIH07Ci0KLSAgICAgICAgLy8gRklYTUU6IE1ha2UgdGhpcyB3
b3JrIGZvciB3b3JrZXJzLgotICAgICAgICBBU1NFUlQoQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSk7Ci0gICAgICAgIFJlZlB0cjxGcmFtZT4g
cHJvdGVjdG9yKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpLT5mcmFtZSgpKTsKLQotICAgICAgICBib29sIGNhbGxiYWNrUmV0
dXJuVmFsdWUgPSBmYWxzZTsKLSAgICAgICAgLy8gRklYTUU6IERvIHdlIGNhcmUgaWYgdGhpcyB0
aGluZyByZXR1cm5zIHRydWUgKGkuZS4gaXQgcmFpc2VkIGFuIGV4Y2VwdGlvbik/Ci0gICAgICAg
IGludm9rZUNhbGxiYWNrKGNhbGxiYWNrLCAxLCBhcmd2LCBjYWxsYmFja1JldHVyblZhbHVlKTsK
LSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzQXN5bmMoUGFzc1JlZlB0cjxSZXN1
bHRUeXBlPiByZXN1bHQpCi0gICAgewotICAgICAgICBvbkV2ZW50KG1fb25TdWNjZXNzLCBSZXN1
bHRXcmFwcGVyVHlwZTo6Y3JlYXRlKHJlc3VsdCkpOwotICAgIH0KLQotICAgIHZpcnR1YWwgdm9p
ZCBvbkVycm9yQXN5bmMoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKLSAgICB7
Ci0gICAgICAgIG9uRXZlbnQobV9vbkVycm9yLCBlcnJvcik7Ci0gICAgfQotCi0gICAgLy8gRklY
TUU6IFVzZSBPd25IYW5kbGVzLgotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IG1fb25T
dWNjZXNzOwotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IG1fb25FcnJvcjsKLQotICAg
IFdvcmxkQ29udGV4dEhhbmRsZSBtX3dvcmxkQ29udGV4dDsKLX07Ci0KLX0KLQotI2VuZGlmCi0K
LSNlbmRpZiAvLyBWOEN1c3RvbUlEQkNhbGxiYWNrc19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOElEQlJlcXVlc3RDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhJREJSZXF1ZXN0Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzBlYjY2MjMy
ZTlhMTRhZGViNmY3NGY2ZDRmODBkYWQ4Zjc5MDNlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtMCwwICsxLDY0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
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
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisK
KyNpbmNsdWRlICJWOElEQlJlcXVlc3QuaCIKKworI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oIgorI2luY2x1ZGUgIlY4SURCRGF0YWJhc2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiVjhQ
cm94eS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OElEQlJlcXVlc3Q6OnJlc3VsdEFjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBu
YW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9N
LklEQlJlcXVlc3QucmVzdWx0Iik7CisKKyAgICBJREJSZXF1ZXN0KiBpZGJSZXF1ZXN0ID0gVjhJ
REJSZXF1ZXN0Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBzd2l0Y2ggKGlkYlJlcXVl
c3QtPnJlc3VsdFR5cGUoKSkgeworICAgIGNhc2UgSURCUmVxdWVzdDo6VU5ERUZJTkVEOgorICAg
ICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworICAgIGNhc2UgSURCUmVxdWVzdDo6SURCREFU
QUJBU0U6CisgICAgICAgIHJldHVybiB0b1Y4KGlkYlJlcXVlc3QtPmlkYkRhdGFiYXNlUmVzdWx0
KCkpOworICAgIGNhc2UgSURCUmVxdWVzdDo6U0VSSUFMSVpFRFNDUklQVFZBTFVFOgorICAgICAg
ICByZXR1cm4gaWRiUmVxdWVzdC0+c2VyaWFsaXplZFNjcmlwdFZhbHVlUmVzdWx0KCktPmRlc2Vy
aWFsaXplKCk7CisgICAgfQorCisgICAgQVNTRVJUKDApOworICAgIHJldHVybiB2ODo6VW5kZWZp
bmVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQorCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEluZGV4ZWREYXRhYmFzZVJlcXVlc3RDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhJbmRleGVkRGF0YWJhc2VSZXF1ZXN0Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZThjMmI2ODg4Y2UzMWVkODExYjY1YTEzMzIzNDJmMDJlMjI1YTcz
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluZGV4ZWREYXRhYmFzZVJlcXVlc3RDdXN0b20uY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQotI2luY2x1ZGUgIlY4SW5kZXhlZERhdGFiYXNlUmVxdWVz
dC5oIgotCi0jaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgotI2luY2x1ZGUgIklEQkRhdGFi
YXNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIlY4QmluZGluZy5oIgotI2luY2x1ZGUgIlY4Q3VzdG9t
SURCQ2FsbGJhY2tzLmgiCi0jaW5jbHVkZSAiVjhJREJEYXRhYmFzZUVycm9yLmgiCi0jaW5jbHVk
ZSAiVjhJREJEYXRhYmFzZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJWOFByb3h5LmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW5kZXhlZERhdGFiYXNl
UmVxdWVzdDo6b3BlbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCi17Ci0gICAg
SW5kZXhlZERhdGFiYXNlUmVxdWVzdCogaW1wID0gVjhJbmRleGVkRGF0YWJhc2VSZXF1ZXN0Ojp0
b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCi0gICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKFY4UHJveHk6OlR5cGVFcnJvcik7Ci0gICAgVjhQYXJhbWV0
ZXI8PiBuYW1lID0gYXJnc1swXTsKLSAgICBWOFBhcmFtZXRlcjw+IGRlc2NyaXB0aW9uID0gYXJn
c1sxXTsKLQotICAgIGJvb2wgbW9kaWZ5RGF0YWJhc2UgPSB0cnVlOwotICAgIGlmIChhcmdzLkxl
bmd0aCgpID4gMiAmJiAhYXJnc1syXS0+SXNVbmRlZmluZWQoKSAmJiAhYXJnc1syXS0+SXNOdWxs
KCkpCi0gICAgICAgIG1vZGlmeURhdGFiYXNlID0gYXJnc1syXS0+Qm9vbGVhblZhbHVlKCk7Ci0K
LSAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBvbkVycm9yOwotICAgIHY4OjpMb2NhbDx2ODo6VmFs
dWU+IG9uU3VjY2VzczsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDMgJiYgIWFyZ3NbM10tPklz
VW5kZWZpbmVkKCkgJiYgIWFyZ3NbM10tPklzTnVsbCgpKSB7Ci0gICAgICAgIGlmICghYXJnc1sz
XS0+SXNPYmplY3QoKSkKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJvbmVycm9yIGNh
bGxiYWNrIHdhcyBub3QgdGhlIHByb3BlciB0eXBlIik7Ci0gICAgICAgIG9uRXJyb3IgPSBhcmdz
WzNdOwotICAgIH0KLSAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDQgJiYgIWFyZ3NbNF0tPklzVW5k
ZWZpbmVkKCkgJiYgIWFyZ3NbNF0tPklzTnVsbCgpKSB7Ci0gICAgICAgIGlmICghYXJnc1s0XS0+
SXNPYmplY3QoKSkKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJvbnN1Y2Nlc3MgY2Fs
bGJhY2sgd2FzIG5vdCB0aGUgcHJvcGVyIHR5cGUiKTsKLSAgICAgICAgb25TdWNjZXNzID0gYXJn
c1s0XTsKLSAgICB9Ci0gICAgaWYgKCFvbkVycm9yLT5Jc09iamVjdCgpICYmICFvblN1Y2Nlc3Mt
PklzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOZWl0aGVyIHRoZSBvbmVy
cm9yIG5vciB0aGUgb25zdWNjZXNzIGNhbGxiYWNrcyB3ZXJlIHNldC4iKTsKLQotICAgIEZyYW1l
KiBmcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JDdXJyZW50Q29udGV4dCgpOwotICAg
IFJlZlB0cjxWOEN1c3RvbUlEQkNhbGxiYWNrczxJREJEYXRhYmFzZSwgSURCRGF0YWJhc2VSZXF1
ZXN0PiA+IGNhbGxiYWNrcyA9Ci0gICAgICAgIFY4Q3VzdG9tSURCQ2FsbGJhY2tzPElEQkRhdGFi
YXNlLCBJREJEYXRhYmFzZVJlcXVlc3Q+OjpjcmVhdGUob25TdWNjZXNzLCBvbkVycm9yLCBmcmFt
ZS0+ZG9jdW1lbnQoKSk7Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXAtPm9w
ZW4obmFtZSwgZGVzY3JpcHRpb24sIG1vZGlmeURhdGFiYXNlLCBjYWxsYmFja3MsIGVjKTsKLSAg
ICBpZiAoZWMpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVjKTsKLSAgICByZXR1cm4gdjg6
OkhhbmRsZTx2ODo6VmFsdWU+KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldC5jcHAKaW5kZXggMTU5ODc5MDBhMjExZTAwNmM2OTgxZTQ1YzdkYzBlMzJl
ZGY1MTVjOS4uY2ZhMDMyOTcxMzYxZDUxOGFmNjFjM2E0MmUzNjI4NjNjYzdiYWZjYiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0LmNwcApAQCAtMTU2LDYgKzE1NiwxMyBAQCBOb3RpZmljYXRpb24qIEV2ZW50VGFyZ2V0
Ojp0b05vdGlmaWNhdGlvbigpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQorSURCUmVxdWVzdCogRXZlbnRUYXJnZXQ6OnRvSURCUmVxdWVzdCgpCit7CisgICAgcmV0
dXJuIDA7Cit9CisjZW5kaWYKKwogYm9vbCBFdmVudFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcihj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBs
aXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQogewogICAgIEV2ZW50VGFyZ2V0RGF0YSogZCA9IGVu
c3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXQuaCBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKaW5kZXggZGE5OGQ5ODhhNDU2ODY1NDVm
M2FlMDJlOTdiZGRkMTVlZjk2OWU1Ny4uY2NiNmJkMmU1ZTcxMzY3NmJjMDJiNjA3ZjkyMDc0OWVk
ZmU2Yzc2NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAorKysgYi9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5oCkBAIC00OCw2ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBFdmVudDsKICAgICBjbGFzcyBFdmVudExpc3RlbmVyOwogICAgIGNsYXNz
IEV2ZW50U291cmNlOworICAgIGNsYXNzIElEQlJlcXVlc3Q7CiAgICAgY2xhc3MgTWVzc2FnZVBv
cnQ7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBOb3RpZmljYXRpb247CkBAIC0xMTksNiAr
MTIwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBOb3RpZmljYXRp
b24qIHRvTm90aWZpY2F0aW9uKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQorICAgICAgICB2aXJ0dWFsIElEQlJlcXVlc3QqIHRvSURCUmVxdWVzdCgpOworI2VuZGlm
CisKICAgICAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgY29uc3QgPSAwOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBhZGRFdmVudExp
c3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEV2ZW50TGlz
dGVuZXI+LCBib29sIHVzZUNhcHR1cmUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lE
QkNhbGxiYWNrcy5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oCmluZGV4IGNlMGQy
MGQyM2MyMmJkNWVhNmFjYmE4NTkwNjc4Y2U3NDViZWZmN2IuLjc0YzExZDg1MmY0ZWRjNTBjODk1
MzZlNTQ0N2E0MjQ4Zjk2NDZmYjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxs
YmFja3MuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgKQEAgLTI5LDc0ICsy
OSwyMiBAQAogI2lmbmRlZiBJREJDYWxsYmFja3NfaAogI2RlZmluZSBJREJDYWxsYmFja3NfaAog
Ci0jaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIK
ICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
IgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBBbGwgSW5kZXhlZERCIGNhbGxiYWNr
cyBtdXN0IGltcGxlbWVudCB0aGlzIGNsYXNzLiAgSXQgaGFuZGxlcyB0aGUgYXN5bmNocm9ub3Vz
IGZpcmluZyBvZgotLy8gdGhlIGNhbGxiYWNrcy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBSZXN1bHRU
eXBlPgotY2xhc3MgSURCQ2FsbGJhY2tzIDogcHVibGljIFJlZkNvdW50ZWQ8SURCQ2FsbGJhY2tz
PFJlc3VsdFR5cGU+ID4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworY2xhc3MgSURCQ2FsbGJh
Y2tzIDogcHVibGljIFJlZkNvdW50ZWQ8SURCQ2FsbGJhY2tzPiB7CiBwdWJsaWM6Ci0gICAgSURC
Q2FsbGJhY2tzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IHZvaWQqIHVwY2FzdFBvaW50ZXIpCi0gICAgICAgIDogQWN0aXZlRE9NT2JqZWN0KHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQsIHVwY2FzdFBvaW50ZXIpCi0gICAgICAgICwgbV90aW1lcih0aGlzLCAm
SURCQ2FsbGJhY2tzOjp0aW1lckZpcmVkKQotICAgIHsKLSAgICB9Ci0KICAgICB2aXJ0dWFsIH5J
REJDYWxsYmFja3MoKSB7IH0KIAotICAgIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8UmVzdWx0
VHlwZT4gcmVzdWx0KQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX3Jlc3VsdCk7Ci0gICAgICAg
IEFTU0VSVCghbV9lcnJvcik7Ci0gICAgICAgIG1fcmVzdWx0ID0gcmVzdWx0OwotICAgICAgICBB
U1NFUlQobV9yZXN1bHQpOwotCi0gICAgICAgIEFTU0VSVCghbV90aW1lci5pc0FjdGl2ZSgpKTsK
LSAgICAgICAgbV9zZWxmUmVmID0gdGhpczsKLSAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3Qo
MCk7Ci0gICAgfQotCi0gICAgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJv
cj4gZXJyb3IpCi0gICAgewotICAgICAgICBBU1NFUlQoIW1fcmVzdWx0KTsKLSAgICAgICAgQVNT
RVJUKCFtX2Vycm9yKTsKLSAgICAgICAgbV9lcnJvciA9IGVycm9yOwotICAgICAgICBBU1NFUlQo
bV9lcnJvcik7Ci0KLSAgICAgICAgQVNTRVJUKCFtX3RpbWVyLmlzQWN0aXZlKCkpOwotICAgICAg
ICBtX3NlbGZSZWYgPSB0aGlzOwotICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLSAg
ICB9Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzQXN5bmMoUGFzc1Jl
ZlB0cjxSZXN1bHRUeXBlPikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yQXN5bmMoUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgPSAwOwotCi0gICAgdm9pZCB0aW1lckZpcmVkKFRp
bWVyPElEQkNhbGxiYWNrcz4qKQotICAgIHsKLSAgICAgICAgaWYgKG1fcmVzdWx0KSB7Ci0gICAg
ICAgICAgICBvblN1Y2Nlc3NBc3luYyhtX3Jlc3VsdCk7Ci0gICAgICAgICAgICBtX3Jlc3VsdCA9
IDA7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBvbkVycm9yQXN5bmMobV9lcnJvcik7
Ci0gICAgICAgICAgICBtX2Vycm9yID0gMDsKLSAgICAgICAgfQotICAgICAgICBtX3NlbGZSZWYg
PSAwOyAvLyBNYXkgdHJpZ2dlciBhIGRlbGV0ZSBpbW1lZGlhdGVseS4KLSAgICB9Ci0KLXByaXZh
dGU6Ci0gICAgVGltZXI8SURCQ2FsbGJhY2tzPiBtX3RpbWVyOwotICAgIFJlZlB0cjxJREJDYWxs
YmFja3M+IG1fc2VsZlJlZjsKLSAgICBSZWZQdHI8UmVzdWx0VHlwZT4gbV9yZXN1bHQ7Ci0gICAg
UmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IG1fZXJyb3I7CisgICAgdmlydHVhbCB2b2lkIG9uRXJy
b3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgPSAwOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRh
dGFiYXNlUmVxdWVzdC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5oCmlu
ZGV4IGMwMjdiNmEzMjJhZWM5M2UyMGUzOTkyMDRmOTE4OTdmYTYxMjFhY2YuLjE5OWViNzlhNGUx
M2I0OGU2NjVmNGFiYmI0MzhjZmExNDBhZDZiNGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJEYXRhYmFzZVJlcXVlc3QuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VS
ZXF1ZXN0LmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiAKQEAgLTQ3LDcgKzQ4LDEyIEBAIHB1YmxpYzoKICAgICB+SURCRGF0YWJhc2VSZXF1ZXN0KCk7
CiAKICAgICAvLyBGSVhNRTogV3JpdGUuCi0gICAgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50
KSB7IH0KKyAgICB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCisgICAgeworICAgICAgICBV
TlVTRURfUEFSQU0obmFtZSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShrZXlQYXRoKTsKKyAgICAg
ICAgVU5VU0VEX1BBUkFNKGF1dG9JbmNyZW1lbnQpOworICAgIH0KIAogcHJpdmF0ZToKICAgICBJ
REJEYXRhYmFzZVJlcXVlc3QoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4pOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVl
c3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNiZmI5MWM5NGJjMWJmOWZjMjBiNmNjZDJiZDA5Njg3OTg5MTAw
ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKQEAg
LTAsMCArMSwxNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisg
KiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKKworI2luY2x1ZGUgIkV2ZW50
LmgiCisjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVy
LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlUmVxdWVz
dC5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICAsIG1f
cmVzdWx0VHlwZShVTkRFRklORUQpCisgICAgLCBtX3RpbWVyKHRoaXMsICZJREJSZXF1ZXN0Ojp0
aW1lckZpcmVkKQorICAgICwgbV9zdG9wcGVkKGZhbHNlKQorICAgICwgbV9hYm9ydGVkKGZhbHNl
KQorICAgICwgbV9yZWFkeVN0YXRlKElOSVRJQUwpCit7Cit9CisKK0lEQlJlcXVlc3Q6On5JREJS
ZXF1ZXN0KCkKK3sKKyAgICBpZiAobV9yZWFkeVN0YXRlICE9IERPTkUpCisgICAgICAgIGFib3J0
KCk7Cit9CisKKworUGFzc1JlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+IElEQlJlcXVlc3Q6Omlk
YkRhdGFiYXNlUmVzdWx0KCkKK3sKKyAgICBBU1NFUlQobV9yZXN1bHRUeXBlID09IElEQkRBVEFC
QVNFKTsKKyAgICByZXR1cm4gbV9pZGJEYXRhYmFzZVJlc3VsdDsKK30KKworCitQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gSURCUmVxdWVzdDo6c2VyaWFsaXplZFNjcmlwdFZhbHVl
UmVzdWx0KCkKK3sKKyAgICBBU1NFUlQobV9yZXN1bHRUeXBlID09IFNFUklBTElaRURTQ1JJUFRW
QUxVRSk7CisgICAgcmV0dXJuIG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlUmVzdWx0OworfQorCit2
b2lkIElEQlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJv
cikKK3sKKyAgICBvbkV2ZW50Q29tbW9uKCk7CisgICAgbV9lcnJvciA9IGVycm9yOworfQorCit2
b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlPiBpZGJEYXRh
YmFzZSkKK3sKKyAgICBvbkV2ZW50Q29tbW9uKCk7CisgICAgbV9yZXN1bHRUeXBlID0gSURCREFU
QUJBU0U7CisgICAgbV9pZGJEYXRhYmFzZVJlc3VsdCA9IElEQkRhdGFiYXNlUmVxdWVzdDo6Y3Jl
YXRlKGlkYkRhdGFiYXNlKTsKK30KKwordm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkKK3sKKyAg
ICBvbkV2ZW50Q29tbW9uKCk7CisgICAgbV9yZXN1bHRUeXBlID0gU0VSSUFMSVpFRFNDUklQVFZB
TFVFOworICAgIG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlUmVzdWx0ID0gc2VyaWFsaXplZFNjcmlw
dFZhbHVlOworfQorCit2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKK3sKKyAgICBtX3RpbWVyLnN0
b3AoKTsKKyAgICBtX2Fib3J0ZWQgPSB0cnVlOworICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBj
YW5jZWwgYW55IHBlbmRpbmcgd29yayBiZWluZyBkb25lIGluIHRoZSBiYWNrZW5kLgorfQorCitT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBJREJSZXF1ZXN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCk7Cit9CisKK3ZvaWQgSURCUmVxdWVzdDo6c3RvcCgpCit7CisgICAgYWJvcnQoKTsK
KyAgICBtX3NlbGZSZWYgPSAwOyAvLyBDb3VsZCB0cmlnZ2VyIGEgZGVsZXRlLgorfQorCit2b2lk
IElEQlJlcXVlc3Q6OnN1c3BlbmQoKQoreworICAgIG1fdGltZXIuc3RvcCgpOworfQorCit2b2lk
IElEQlJlcXVlc3Q6OnJlc3VtZSgpCit7CisgICAgLy8gV2Ugb25seSBob2xkIG91ciBzZWxmIHJl
ZiB3aGVuIHdlJ3JlIHdhaXRpbmcgdG8gZGlzcGF0Y2ggYW4gZXZlbnQuCisgICAgaWYgKG1fc2Vs
ZlJlZiAmJiAhbV9hYm9ydGVkKQorICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30K
KworRXZlbnRUYXJnZXREYXRhKiBJREJSZXF1ZXN0OjpldmVudFRhcmdldERhdGEoKQoreworICAg
IHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Cit9CisKK0V2ZW50VGFyZ2V0RGF0YSogSURCUmVx
dWVzdDo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJn
ZXREYXRhOworfQorCit2b2lkIElEQlJlcXVlc3Q6OnRpbWVyRmlyZWQoVGltZXI8SURCUmVxdWVz
dD4qKQoreworICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAgQVNTRVJUKG1f
c2VsZlJlZik7CisgICAgQVNTRVJUKCFtX3N0b3BwZWQpOworICAgIEFTU0VSVCghbV9hYm9ydGVk
KTsKKworICAgIC8vIFdlIG5lZWQgdG8ga2VlcCBzZWxmLXJlZmVyZW5jaW5nIG91cnNlbGYsIG90
aGVyd2lzZSBpdCdzIHBvc3NpYmxlIHdlJ2xsIGJlIGRlbGV0ZWQuCisgICAgLy8gQnV0IGluIHNv
bWUgY2FzZXMsIHN1c3BlbmQoKSBjb3VsZCBiZSBjYWxsZWQgd2hpbGUgd2UncmUgZGlzcGF0Y2hp
bmcgYW4gZXZlbnQsIHNvIHdlCisgICAgLy8gbmVlZCB0byBtYWtlIHN1cmUgdGhhdCByZXN1bWUo
KSBkb2Vzbid0IHJlLXN0YXJ0IHRoZSB0aW1lciBiYXNlZCBvbiBtX3NlbGZSZWYgYmVpbmcgc2V0
LgorICAgIFJlZlB0cjxJREJSZXF1ZXN0PiBzZWxmUmVmID0gbV9zZWxmUmVmLnJlbGVhc2UoKTsK
KworICAgIGlmIChtX2Vycm9yKSB7CisgICAgICAgIEFTU0VSVChtX3Jlc3VsdFR5cGUgPT0gVU5E
RUZJTkVEKTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5lcnJvckV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBBU1NF
UlQobV9yZXN1bHRUeXBlICE9IFVOREVGSU5FRCk7CisgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50LCBmYWxzZSwgZmFsc2UpKTsgICAg
ICAgIAorICAgIH0KK30KKwordm9pZCBJREJSZXF1ZXN0OjpvbkV2ZW50Q29tbW9uKCkKK3sKKyAg
ICBBU1NFUlQobV9yZWFkeVN0YXRlIDwgRE9ORSk7CisgICAgQVNTRVJUKG1fcmVzdWx0VHlwZSA9
PSBVTkRFRklORUQpOworICAgIEFTU0VSVCghbV9lcnJvcik7CisgICAgQVNTRVJUKCFtX3NlbGZS
ZWYpOworICAgIEFTU0VSVCghbV90aW1lci5pc0FjdGl2ZSgpKTsKKworICAgIGlmIChtX2Fib3J0
ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVhZHlTdGF0ZSA9IERPTkU7CisgICAgbV9z
ZWxmUmVmID0gdGhpczsKKyAgICBpZiAoIW1fc3RvcHBlZCkKKyAgICAgICAgbV90aW1lci5zdGFy
dE9uZVNob3QoMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lE
QlJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGZkZTQ5MjBjZDIxYTZjODhmM2Y2NTFhOTY2ZmVkYzA0
NTY2YjE0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaApA
QCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURCUmVxdWVzdF9oCisjZGVmaW5lIElEQlJlcXVl
c3RfaAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJBY3RpdmVE
T01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiSURCQ2FsbGJhY2tz
LmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJ
REJEYXRhYmFzZVJlcXVlc3Q7CisKK2NsYXNzIElEQlJlcXVlc3QgOiBwdWJsaWMgSURCQ2FsbGJh
Y2tzLCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0KSB7IHJldHVybiBhZG9wdFJlZihuZXcgSURCUmVxdWVzdChjb250
ZXh0KSk7IH0KKyAgICB2aXJ0dWFsIH5JREJSZXF1ZXN0KCk7CisKKyAgICAvLyBUaGUgcmVzdWx0
IGF0dHJpYnV0ZSBvZiB0aGlzIGNsYXNzIGNhbiByZXByZXNlbnQgbWFueSBkaWZmZXJlbnQgV2Vi
Q29yZSB0eXBlcy4KKyAgICBlbnVtIFJlc3VsdFR5cGUgeworICAgICAgICBVTkRFRklORUQgPSAw
LAorICAgICAgICBJREJEQVRBQkFTRSwKKyAgICAgICAgU0VSSUFMSVpFRFNDUklQVFZBTFVFCisg
ICAgfTsKKyAgICBSZXN1bHRUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc3Vs
dFR5cGU7IH0KKyAgICBQYXNzUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4gaWRiRGF0YWJhc2VS
ZXN1bHQoKTsKKyAgICBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXpl
ZFNjcmlwdFZhbHVlUmVzdWx0KCk7CisgICAgLy8gRklYTUU6IEhhdmUgb25lIHN1Y2ggZ2V0dGVy
IGZvciBlYWNoIHBvc3NpYmxlIHJlc3VsdCB0eXBlLgorCisgICAgLy8gRGVmaW5lZCBpbiB0aGUg
SURMCisgICAgdm9pZCBhYm9ydCgpOworICAgIGVudW0gUmVhZHlTdGF0ZSB7CisgICAgICAgIElO
SVRJQUwgPSAwLAorICAgICAgICBMT0FESU5HID0gMSwKKyAgICAgICAgRE9ORSA9IDIKKyAgICB9
OworICAgIHVuc2lnbmVkIHNob3J0IHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5
U3RhdGU7IH0KKyAgICBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9yKCkgY29uc3Qg
eyByZXR1cm4gbV9lcnJvcjsgfQorICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIo
c3VjY2Vzcyk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihlcnJvcik7CisK
KyAgICAvLyBJREJDYWxsYmFja3MKKyAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNzUmVmUHRy
PElEQkRhdGFiYXNlRXJyb3I+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2U+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CisgICAgLy8gRklYTUU6IEhhdmUgb25lIG9uU3VjY2Vz
cyBmdW5jdGlvbiBmb3IgZWFjaCBwb3NzaWJsZSByZXN1bHQgdHlwZS4KKworICAgIC8vIEV2ZW50
VGFyZ2V0CisgICAgdmlydHVhbCBJREJSZXF1ZXN0KiB0b0lEQlJlcXVlc3QoKSB7IHJldHVybiB0
aGlzOyB9CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IHZvaWQgc3RvcCgpOworICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKCk7CisgICAgdmlydHVhbCB2
b2lkIHJlc3VtZSgpOworCisgICAgdXNpbmcgUmVmQ291bnRlZDxJREJDYWxsYmFja3M+OjpyZWY7
CisgICAgdXNpbmcgUmVmQ291bnRlZDxJREJDYWxsYmFja3M+OjpkZXJlZjsKKworcHJpdmF0ZToK
KyAgICBJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworICAgIHZvaWQgdGlt
ZXJGaXJlZChUaW1lcjxJREJSZXF1ZXN0PiopOworICAgIHZvaWQgb25FdmVudENvbW1vbigpOwor
CisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSB7
IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7IGRlcmVmKCk7
IH0KKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CisgICAg
dmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOworCisgICAg
UmVzdWx0VHlwZSBtX3Jlc3VsdFR5cGU7CisgICAgLy8gT25seSBvbmUgb2YgdGhlIGZvbGxvd2lu
ZyBzaG91bGQgZXZlciBiZSBpbiB1c2UgYXQgYW55IGdpdmVuIHRpbWUuICBtX3Jlc3VsdFR5cGUg
ZGVmaW5lcyB3aGljaCBvbmUuCisgICAgUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4gbV9pZGJE
YXRhYmFzZVJlc3VsdDsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtX3Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZVJlc3VsdDsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gbV9l
cnJvcjsKKworICAgIC8vIFVzZWQgdG8gZmlyZSBldmVudHMgYXN5bmNocm9ub3VzbHkuCisgICAg
VGltZXI8SURCUmVxdWVzdD4gbV90aW1lcjsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gbV9zZWxm
UmVmOyAvLyBUaGlzIGlzIHNldCB0byB1cyBpZmYgdGhlcmUncyBhbiBldmVudCBwZW5kaW5nLgor
CisgICAgYm9vbCBtX3N0b3BwZWQ7CisgICAgYm9vbCBtX2Fib3J0ZWQ7CisgICAgUmVhZHlTdGF0
ZSBtX3JlYWR5U3RhdGU7CisgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCisKKyNlbmRpZiAvLyBJREJSZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
c3RvcmFnZS9JREJSZXF1ZXN0LmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xMWExOWFiYWY1YjkyZDg4YzRmMmUxYzRhNzM3NDBjNjYyZjdmY2E5Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaWRsCkBAIC0wLDAgKzEs
NjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRz
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgc3RvcmFnZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25k
aXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFLAorICAgICAgICBFdmVudFRhcmdldAorICAgIF0gSURC
UmVxdWVzdCB7CisgICAgICAgIHZvaWQgYWJvcnQoKTsKKworICAgICAgICAvLyBTdGF0ZXMKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgSU5JVElBTCA9IDA7CisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IExPQURJTkcgPSAxOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBE
T05FID0gMjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHJlYWR5
U3RhdGU7CisKKyAgICAgICAgLy8gUG9zc2libGUgcmVzdWx0cworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgSURCRGF0YWJhc2VFcnJvciBlcnJvcjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtDdXN0b21dIGFueSByZXN1bHQ7CisKKyAgICAgICAgLy8gRXZlbnRzCisgICAgICAgIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc3VjY2VzczsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25lcnJvcjsKKworICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKKyAg
ICAgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgIHZv
aWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICBi
b29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZ0KQorICAgICAgICAgICAgcmFpc2VzKEV2
ZW50RXhjZXB0aW9uKTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lu
ZGV4ZWREYXRhYmFzZS5oIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5oCmluZGV4
IDEwMjdmYjc5YzAxMTA5N2UzZGRkMWFiZDAxZmZkZWYwOTM2NDRlMjMuLjFlNDM3ODE3YTM3OTYy
M2I1MmI0ZTU0NzI3YTI2NDk1YjhjNDAzMGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9J
bmRleGVkRGF0YWJhc2UuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmgK
QEAgLTQwLDggKzQwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRnJhbWU7CiBjbGFz
cyBJREJEYXRhYmFzZTsKIAotdHlwZWRlZiBJREJDYWxsYmFja3M8SURCRGF0YWJhc2U+IElEQkRh
dGFiYXNlQ2FsbGJhY2tzOwotCiAvLyBUaGlzIGNsYXNzIGlzIHNoYXJlZCBieSBJbmRleGVkRGF0
YWJhc2VSZXF1ZXN0IChhc3luYykgYW5kIEluZGV4ZWREYXRhYmFzZVN5bmMgKHN5bmMpLgogLy8g
VGhpcyBpcyBpbXBsZW1lbnRlZCBieSBJbmRleGVkRGF0YWJhc2VJbXBsIGFuZCBvcHRpb25hbGx5
IG90aGVycyAoaW4gb3JkZXIgdG8gcHJveHkKIC8vIGNhbGxzIGFjcm9zcyBwcm9jZXNzIGJhcnJp
ZXJzKS4gQWxsIGNhbGxzIHRvIHRoZXNlIGNsYXNzZXMgc2hvdWxkIGJlIG5vbi1ibG9ja2luZyBh
bmQKQEAgLTUxLDcgKzQ5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluZGV4
ZWREYXRhYmFzZT4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCB+SW5kZXhlZERhdGFiYXNlKCkgeyB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VDYWxsYmFja3M+LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBi
b29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIEZyYW1lKiwgRXhj
ZXB0aW9uQ29kZSYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcCBiL1dlYkNvcmUvc3Rv
cmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcAppbmRleCBiODJkZWU4ZDQ1NDllMzY5ZmQxNmJh
MDNlMTMzNThlODYxZDI4ZmVjLi42MWRjZTAwN2Q0ODE4ZmM1MGQwYTE0YzE4YjA3NzRhYWViZmVh
MWIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAK
KysrIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwCkBAIC00OSw4ICs0
OSwxMSBAQCBJbmRleGVkRGF0YWJhc2VJbXBsOjp+SW5kZXhlZERhdGFiYXNlSW1wbCgpCiB7CiB9
CiAKLXZvaWQgSW5kZXhlZERhdGFiYXNlSW1wbDo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VDYWxsYmFja3M+LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBJbmRl
eGVkRGF0YWJhc2VJbXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKQogeworICAgIFVOVVNFRF9QQVJBTShuYW1lKTsKKyAg
ICBVTlVTRURfUEFSQU0oZGVzY3JpcHRpb24pOworICAgIFVOVVNFRF9QQVJBTShtb2RpZnlEYXRh
YmFzZSk7CiAgICAgLy8gRklYTUU6IFdyaXRlLgogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuaCBiL1dl
YkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmgKaW5kZXggNTQxM2I5YjRmOGYzMGZl
YjNmYjE1ZDlhNDlmYzRhNDFiYTYwOWQ0Ni4uNzNlZGY2YjEzMjA5Yzk1ZGVlNTE5YTg5Yjc4M2Zm
NjU0NzFkNzllMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUlt
cGwuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5oCkBAIC0zOSw3
ICszOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmRleGVkRGF0YWJhc2VJ
bXBsPiBjcmVhdGUoKTsKICAgICB2aXJ0dWFsIH5JbmRleGVkRGF0YWJhc2VJbXBsKCk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPElE
QkRhdGFiYXNlPiA+LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQg
b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wg
bW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgRnJhbWUqLCBFeGNlcHRp
b25Db2RlJik7CiAKIHByaXZhdGU6CiAgICAgSW5kZXhlZERhdGFiYXNlSW1wbCgpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwIGIvV2ViQ29y
ZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCmluZGV4IDQ0MzAxMTU3NGUxZTAz
MTU3OTdiYjgwYjJhYTZhMzA5NzVjZGE5MTIuLjM3NDcwNDJhMGRmYTE4NTA4YmNjOWQ2MzdjZGQ3
ZWEzODExOWYxMmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VS
ZXF1ZXN0LmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5j
cHAKQEAgLTMwLDcgKzMwLDkgQEAKICNpbmNsdWRlICJJbmRleGVkRGF0YWJhc2VSZXF1ZXN0Lmgi
CiAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJJREJEYXRhYmFzZS5oIgorI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNpbmNsdWRlICJJ
bmRleGVkRGF0YWJhc2UuaCIKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpAQCAtNDcs
OSArNDksMTEgQEAgSW5kZXhlZERhdGFiYXNlUmVxdWVzdDo6fkluZGV4ZWREYXRhYmFzZVJlcXVl
c3QoKQogewogfQogCi12b2lkIEluZGV4ZWREYXRhYmFzZVJlcXVlc3Q6Om9wZW4oY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNl
LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBjYWxsYmFja3MsIEV4Y2VwdGlvbkNv
ZGUmIGV4Y2VwdGlvbikKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSW5kZXhlZERhdGFiYXNlUmVx
dWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24s
IGJvb2wgbW9kaWZ5RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGV4Y2VwdGlvbikKIHsKLSAgICBt
X2luZGV4ZWREYXRhYmFzZS0+b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5RGF0YWJhc2Us
IGNhbGxiYWNrcywgbV9mcmFtZSwgZXhjZXB0aW9uKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4g
cmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpKTsKKyAgICBt
X2luZGV4ZWREYXRhYmFzZS0+b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5RGF0YWJhc2Us
IHJlcXVlc3QsIG1fZnJhbWUsIGV4Y2VwdGlvbik7CisgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JbmRl
eGVkRGF0YWJhc2VSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVx
dWVzdC5oCmluZGV4IDgzMjM1YjZjNTI1Mjc3Y2FhOGE3ZjhlMzAzM2UyYTUxY2FhOWY0ZDcuLmJl
NWU1YzhkZGIwNDYzMTQ2NzQ0MzkwNmVjYWNhNDU0NWE3ZmM2ZDcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgKKysrIGIvV2ViQ29yZS9zdG9yYWdl
L0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAg
fQogICAgIH5JbmRleGVkRGF0YWJhc2VSZXF1ZXN0KCk7CiAKLSAgICB2b2lkIG9wZW4oY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFi
YXNlLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUm
KTsKIAogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCkgeyBtX2ZyYW1lID0gMDsgfQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwgYi9XZWJD
b3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwKaW5kZXggMmMyYTkwZWNhMDM3
Njc4MTAzZmYwMzcyMDc4YzA3OGUzYjIzNTY1MC4uZTQyM2ViMDFkMjI5ZTA5ZDY2ZGE4YzljMzIx
ODZlMGI5NzdiZmY5OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFz
ZVJlcXVlc3QuaWRsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0
LmlkbApAQCAtMzAsNyArMzAsNyBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgaW50ZXJmYWNlIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogICAgIF0gSW5kZXhlZERhdGFi
YXNlUmVxdWVzdCB7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgb3BlbihpbiBET01TdHJpbmcgbmFt
ZSwgaW4gRE9NU3RyaW5nIGRlc2NyaXB0aW9uLCBpbiBvcHRpb25hbCBib29sZWFuIG1vZGlmeURh
dGFiYXNlLCBJREJEYXRhYmFzZUVycm9yQ2FsbGJhY2sgb25lcnJvciwgSURCRGF0YWJhc2VSZXF1
ZXN0Q2FsbGJhY2sgb25zdWNjZXNzKQorICAgICAgICBJREJSZXF1ZXN0IG9wZW4oaW4gRE9NU3Ry
aW5nIG5hbWUsIGluIERPTVN0cmluZyBkZXNjcmlwdGlvbiwgaW4gYm9vbGVhbiBtb2RpZnlEYXRh
YmFzZSkKICAgICAgICAgICAgIHJhaXNlcyhJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgfTsK
IApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggOWJiYTdiNzVjMjdhOGJhODFiMzM4ZmM4N2MwYWFiODEzMGQzZDgy
NC4uZTY1ZjE4YjljODAxOGQ0OGRhZGYwMzI5M2JkNjExZGEyMzVjYTllNyAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDUtMDUgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ2hhbmdlIEluZGV4ZWREQiB0byB1c2UgZXZlbnRzIGluc3RlYWQgb2YgY2FsbGJhY2tzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODU5NAorCisg
ICAgICAgIENoYW5nZSB0aGUgZ2x1ZSBoZXJlIHRvIG1hdGNoIHRoZSBjaGFuZ2VzIEkgbWFkZSBp
biBXZWJDb3JlLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2Vi
SURCQ2FsbGJhY2tzLmg6CisgICAgICAgICogcHVibGljL1dlYkluZGV4ZWREYXRhYmFzZS5oOgor
ICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ2FsbGJhY2tzUHJveHk6OklEQkNhbGxiYWNrc1Byb3h5KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkNhbGxiYWNrc1Byb3h5Ojp+SURCQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAo
V2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6Om9uRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2Vzcyk6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNr
c1Byb3h5Lmg6CisgICAgICAgICogc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZVByb3h5OjpvcGVuKToKKyAgICAgICAgKiBzcmMv
SW5kZXhlZERhdGFiYXNlUHJveHkuaDoKKyAgICAgICAgKiBzcmMvV2ViSW5kZXhlZERhdGFiYXNl
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4p
OgorICAgICAgICAqIHNyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmg6CisKIDIwMTAtMDUtMDQg
IFZhbmdlbGlzIEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggYjNhOTI2ZWYyNzFhZDE5
YTViMzkyNmY0NjU5YjE2ZDhiMjI5NGE4MS4uOTU1NTEzNzcxN2I1OTk2YjkzNzU2ZDVmOTM2M2Rm
N2MzYWRkZTEyOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTI2MSw2ICsyNjEsNyBAQAogICAgICAgICAg
ICAgICAgICdzcmMvZ3RrL1dlYkZvbnRJbmZvLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9n
dGsvV2ViRm9udEluZm8uaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9ndGsvV2ViSW5wdXRFdmVu
dEZhY3RvcnkuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JREJDYWxsYmFja3NQcm94eS5oJywKICAgICAgICAg
ICAgICAgICAnc3JjL0lEQkRhdGFiYXNlUHJveHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L0lEQkRhdGFiYXNlUHJveHkuaCcsCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQkNhbGxiYWNrcy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFj
a3MuaAppbmRleCA5ZTg1YWE4YzVmMDhhYmM5MGMwZmFjNDAyYWE5YWVkMWI5OTE0OTg5Li42MTBm
N2Q0NGFhMGU2MWY1YjIxMThkODc3NGVmOTU1NTU1NGQ3YjkzIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKQEAgLTMzLDIyICszMywxOSBAQAogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAorY2xhc3MgV2ViSURCRGF0YWJhc2U7CiBjbGFzcyBXZWJJREJEYXRhYmFzZUVy
cm9yOworY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogCi0vLyBFdmVyeSBJbmRleGVk
REIgbWV0aG9kIHRha2VzIGluIGEgcGFpciBvZiBjYWxsYmFja3MgZm9yIGVycm9yL3N1Y2Nlc3Mg
d2hpY2gKLS8vIGltcGxlbWVudCB0aGlzIGNsYXNzLiAgRWl0aGVyIDAgb3IgMSBvZiB0aGVzZSBt
ZXRob2RzIHdpbGwgYmUgY2FsbGVkIGFuZCB0aGUKLS8vIGNhbGxiYWNrIGNsYXNzIG1heSBiZSBk
ZWxldGVkIGFueSB0aW1lIGFmdGVyIHRoZSBjYWxsYmFjayBpcyBjYWxsZWQuCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgUmVzdWx0VHlwZT4KIGNsYXNzIFdlYklEQkNhbGxiYWNrcyB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+V2ViSURCQ2FsbGJhY2tzKCkgeyB9CiAKLSAgICAvLyBJZiB0aGUgbWV0aG9k
IHdhcyBhIHN1Y2Nlc3MsIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aXRoIHRoZSByZXN1bHQuICBU
aGUKLSAgICAvLyByZXN1bHQgaXMgYSBwb2ludGVyIHRoYXQgdGhlIGNhbGxiYWNrIHRha2VzIG93
bmVyc2hpcCBvZi4KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFJlc3VsdFR5cGUqKSA9IDA7
Ci0KLSAgICAvLyBDYWxsZWQgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLgorICAgIC8vIEZvciBj
bGFzc2VzIHRoYXQgZm9sbG93IHRoZSBQSW1wbCBwYXR0ZXJuLCBwYXNzIGEgY29uc3QgcmVmZXJl
bmNlLgorICAgIC8vIEZvciB0aGUgcmVzdCwgcGFzcyBvd25lcnNoaXAgdG8gdGhlIGNhbGxlZSB2
aWEgYSBwb2ludGVyLgogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKGNvbnN0IFdlYklEQkRhdGFi
YXNlRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFz
ZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbmRleGVkRGF0YWJhc2UuaCBiL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSW5kZXhlZERhdGFiYXNlLmgKaW5kZXggYmI3NTE3MDhmMjBmZDkz
M2Y2N2FjMzM3NDIyNjA0ZmQyYTdhZjA2OC4uOTZlODA3ZGM2OTlmYWEyYzY4NmMzYWQxYjM0YWEy
MGYyMTRiZjcxNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbmRleGVk
RGF0YWJhc2UuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkluZGV4ZWREYXRhYmFz
ZS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfldlYkluZGV4ZWRE
YXRhYmFzZSgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBu
YW1lLCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBX
ZWJJREJDYWxsYmFja3M8V2ViSURCRGF0YWJhc2U+KiwgV2ViRnJhbWUqLCBpbnQmIGV4Y2VwdGlv
bkNvZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUs
IGNvbnN0IFdlYlN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFdlYklE
QkNhbGxiYWNrcyosIFdlYkZyYW1lKiwgaW50JiBleGNlcHRpb25Db2RlKSA9IDA7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
Q2FsbGJhY2tzUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94
eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDM0NmI1OGRhNzM2ZWVmZDRkNTdjMWU1NjhlYmE0OGZiZjAzM2Iw
MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJv
eHkuY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5h
bWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SURCQ2FsbGJhY2tzUHJveHkuaCIKKworI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgorI2luY2x1
ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZVByb3h5LmgiCisj
aW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2UuaCIK
KyNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCisjaW5jbHVkZSAiV2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitJREJDYWxsYmFja3NQcm94eTo6SURCQ2FsbGJhY2tzUHJveHkoUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICA6IG1fY2FsbGJhY2tzKGNhbGxi
YWNrcykKK3sKK30KKworSURCQ2FsbGJhY2tzUHJveHk6On5JREJDYWxsYmFja3NQcm94eSgpCit7
Cit9CisKK3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uRXJyb3IoY29uc3QgV2ViS2l0OjpXZWJJ
REJEYXRhYmFzZUVycm9yJiBlcnJvcikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25FcnJvcihlcnJv
cik7CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKK30KKwordm9pZCBJREJDYWxsYmFja3NQcm94
eTo6b25TdWNjZXNzKFdlYktpdDo6V2ViSURCRGF0YWJhc2UqIHdlYktpdEluc3RhbmNlKQorewor
ICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoSURCRGF0YWJhc2VQcm94eTo6Y3JlYXRlKHdlYktp
dEluc3RhbmNlKSk7CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKK30KKwordm9pZCBJREJDYWxs
YmFja3NQcm94eTo6b25TdWNjZXNzKGNvbnN0IFdlYktpdDo6V2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlJiBzZXJpYWxpemVkU2NyaXB0VmFsdWUpCit7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vz
cyhzZXJpYWxpemVkU2NyaXB0VmFsdWUpOworICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQorCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5
LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKaW5kZXggZTgwM2M5
NjZkNzBhNzk4ZTdjODgwMTExNWEwZjgzOTkwYzk5MTI5OC4uNjkyYjBhM2MzMTcxODg2YzQ2OTBm
NjQ1ZGVmOTdmNWQ0MmQzM2MwYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJD
YWxsYmFja3NQcm94eS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJv
eHkuaApAQCAtMjksNDAgKzI5LDMzIEBACiAjaWZuZGVmIElEQkNhbGxiYWNrc1Byb3h5X2gKICNk
ZWZpbmUgSURCQ2FsbGJhY2tzUHJveHlfaAogCi0jaW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCi0j
aW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5o
IgotI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNz
IFdlYklEQkRhdGFiYXNlOworY2xhc3MgV2ViSURCRGF0YWJhc2VFcnJvcjsKK2NsYXNzIFdlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTsKK30KIAotdGVtcGxhdGUgPHR5cGVuYW1lIFdlYktpdENsYXNz
LCB0eXBlbmFtZSBXZWJDb3JlQ2xhc3MsIHR5cGVuYW1lIFdlYkNvcmVQcm94eT4KLWNsYXNzIElE
QkNhbGxiYWNrc1Byb3h5IDogcHVibGljIFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzPFdlYktpdENs
YXNzPiB7Ci1wdWJsaWM6Ci0gICAgSURCQ2FsbGJhY2tzUHJveHkoUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M8V2ViQ29yZUNsYXNzPiA+IGNhbGxiYWNrcykKLSAgICAgICAgOiBtX2NhbGxiYWNrcyhj
YWxsYmFja3MpIHsgfQorbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgdmlydHVhbCB+SURCQ2Fs
bGJhY2tzUHJveHkoKSB7IH0KK2NsYXNzIElEQkNhbGxiYWNrczsKIAotICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3MoV2ViS2l0Q2xhc3MqIHdlYktpdEluc3RhbmNlKQotICAgIHsKLSAgICAgICAg
UmVmUHRyPFdlYkNvcmVDbGFzcz4gcHJveHkgPSBXZWJDb3JlUHJveHk6OmNyZWF0ZSh3ZWJLaXRJ
bnN0YW5jZSk7Ci0gICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MocHJveHkpOwotICAgICAg
ICBtX2NhbGxiYWNrcy5jbGVhcigpOwotICAgIH0KK2NsYXNzIElEQkNhbGxiYWNrc1Byb3h5IDog
cHVibGljIFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzIHsKK3B1YmxpYzoKKyAgICBJREJDYWxsYmFj
a3NQcm94eShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKTsKKyAgICB2aXJ0dWFs
IH5JREJDYWxsYmFja3NQcm94eSgpOwogCi0gICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3Qg
V2ViS2l0OjpXZWJJREJEYXRhYmFzZUVycm9yJiBlcnJvcikKLSAgICB7Ci0gICAgICAgIG1fY2Fs
bGJhY2tzLT5vbkVycm9yKGVycm9yKTsKLSAgICAgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKLSAg
ICB9CisgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViS2l0OjpXZWJJREJEYXRhYmFz
ZUVycm9yJiBlcnJvcik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklE
QkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSk7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhj
b25zdCBXZWJLaXQ6OldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2VyaWFsaXplZFNjcmlwdFZh
bHVlKTsKIAogcHJpdmF0ZToKLSAgICBQYXNzUmVmUHRyPElEQkNhbGxiYWNrczxXZWJDb3JlQ2xh
c3M+ID4gbV9jYWxsYmFja3M7CisgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gbV9jYWxsYmFja3M7
CiB9OwogCiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5kZXhlZERhdGFiYXNl
UHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5jcHAK
aW5kZXggOTA2OWI0NjMwZTI0MjUwZjEzOGE1OWE2OWU0ODA4ZDNlZWJmODI4OC4uNDhkZTZhMTBi
MjJlZjRiMzIxNzQ2MjM5MjQwMTc2OGNjZDliMjMwMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JbmRleGVkRGF0YWJhc2VQcm94eS5jcHAKQEAgLTU3LDExICs1NywxMCBAQCBJbmRleGVkRGF0
YWJhc2VQcm94eTo6fkluZGV4ZWREYXRhYmFzZVByb3h5KCkKIHsKIH0KIAotdm9pZCBJbmRleGVk
RGF0YWJhc2VQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxs
YmFja3M+IGNhbGxiYWNrcywgRnJhbWUqIGZyYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQg
SW5kZXhlZERhdGFiYXNlUHJveHk6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4gY2FsbGJhY2tzLCBGcmFtZSogZnJhbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IFdlYktpdDo6V2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViS2l0OjpXZWJGcmFtZUltcGw6OmZyb21G
cmFtZShmcmFtZSk7Ci0gICAgdHlwZWRlZiBJREJDYWxsYmFja3NQcm94eTxXZWJLaXQ6OldlYklE
QkRhdGFiYXNlLCBJREJEYXRhYmFzZSwgSURCRGF0YWJhc2VQcm94eT4gQ2FsbGJhY2tzUHJveHk7
Ci0gICAgbV93ZWJJbmRleGVkRGF0YWJhc2UtPm9wZW4obmFtZSwgZGVzY3JpcHRpb24sIG1vZGlm
eURhdGFiYXNlLCBuZXcgQ2FsbGJhY2tzUHJveHkoY2FsbGJhY2tzKSwgd2ViRnJhbWUsIGVjKTsK
KyAgICBtX3dlYkluZGV4ZWREYXRhYmFzZS0+b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5
RGF0YWJhc2UsIG5ldyBJREJDYWxsYmFja3NQcm94eShjYWxsYmFja3MpLCB3ZWJGcmFtZSwgZWMp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0luZGV4
ZWREYXRhYmFzZVByb3h5LmgKaW5kZXggZDBmNTViNmQwNGVlNmU2N2FmNjAwMmRjMTFmYTNlNTY0
NTJhYmI5NC4uMGM4Njc0YTM1MzgyMmVhNmY4MGVlODNlMWQxODBlMDM0MTZiNGI0NiAxMDA2NDQK
LS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5oCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvSW5kZXhlZERhdGFiYXNlUHJveHkuaApAQCAtNDIsNyArNDIsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5kZXhlZERhdGFiYXNlPiBjcmVhdGUo
KTsKICAgICB2aXJ0dWFsIH5JbmRleGVkRGF0YWJhc2VQcm94eSgpOwogCi0gICAgdmlydHVhbCB2
b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBi
b29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgRnJh
bWUqLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIEZyYW1lKiwgRXhjZXB0aW9uQ29kZSYpOwogCiBwcml2
YXRlOgogICAgIEluZGV4ZWREYXRhYmFzZVByb3h5KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkluZGV4ZWREYXRhYmFzZUltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmNwcAppbmRleCA2YTYzMjdiNTExZGRjODE1OTBjMjc3
MzQxNDNlNmY2OGY4ODA5YTdlLi5iYjM3ZDJkM2Y3NGY2YWVkMjFlZGYzNGEyZTI0ZGYwNmEwMDNj
ZWE3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWREYXRhYmFzZUlt
cGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1wbC5j
cHAKQEAgLTQ3LDkgKzQ3LDkgQEAgV2ViSW5kZXhlZERhdGFiYXNlSW1wbDo6fldlYkluZGV4ZWRE
YXRhYmFzZUltcGwoKQogewogfQogCi12b2lkIFdlYkluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4o
Y29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29s
IG1vZGlmeURhdGFiYXNlLCBXZWJJREJDYWxsYmFja3M8V2ViSURCRGF0YWJhc2U+KiBjYWxsYmFj
a3NQdHIsIFdlYkZyYW1lKiwgaW50JiBleGNlcHRpb25Db2RlKQordm9pZCBXZWJJbmRleGVkRGF0
YWJhc2VJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFj
a3NQdHIsIFdlYkZyYW1lKiwgaW50JiBleGNlcHRpb25Db2RlKQogewotICAgIE93blB0cjxXZWJJ
REJDYWxsYmFja3M8V2ViSURCRGF0YWJhc2U+Kj4gY2FsbGJhY2tzKGNhbGxiYWNrc1B0cik7Cisg
ICAgT3duUHRyPFdlYklEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKGNhbGxiYWNrc1B0cik7CiAgICAg
Y2FsbGJhY2tzLT5vbkVycm9yKFdlYklEQkRhdGFiYXNlRXJyb3IoMCwgIk5vdCBpbXBsZW1lbnRl
ZCIpKTsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciByZWFsei4KIH0KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1wbC5oIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmgKaW5kZXggYjRiOGM5OTZkNTgwZDk2
ZDliN2FmNGUyY2E5MDgzZWU2N2I4NDI2YS4uMmM5ZWQ1NGRiMTI2ZmQ2YmFlNDkwNjliMDkyZTA3
MDUyNDA0MjFkMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVkRGF0
YWJhc2VJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVkRGF0YWJhc2VJ
bXBsLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgV2ViSW5kZXhlZERhdGFiYXNlSW1wbCA6IHB1
YmxpYyBXZWJJbmRleGVkRGF0YWJhc2UgewogcHVibGljOgogICAgIHZpcnR1YWwgfldlYkluZGV4
ZWREYXRhYmFzZUltcGwoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmlu
ZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFz
ZSwgV2ViSURCQ2FsbGJhY2tzPFdlYklEQkRhdGFiYXNlPiosIFdlYkZyYW1lKiwgaW50JiBleGNl
cHRpb25Db2RlKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUs
IGNvbnN0IFdlYlN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFdlYklE
QkNhbGxiYWNrcyosIFdlYkZyYW1lKiwgaW50JiBleGNlcHRpb25Db2RlKTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="39413"
          type_id="1"
          status="+"
          setter="japhet"
    />
          </attachment>
      

    </bug>

</bugzilla>