<?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>103921</bug_id>
          
          <creation_ts>2012-12-03 13:34:04 -0800</creation_ts>
          <short_desc>IndexedDB: Stub out transaction-backend methods</short_desc>
          <delta_ts>2012-12-05 10:53:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103922</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jsbell</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>781826</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-12-03 13:34:04 -0800</bug_when>
    <thetext>this patch stubs about 5 methods:

* IDBDatabaseBackendInterface::createTransaction - a new version of this that can be called asynchronously. 
* IDBDatabaseBackendInterface::abort() and ::commit() - the two primary methods of the soon-to-be-deprecated IDBTransactionBackend
* IDBDatabaseCallbacks::onAbort() and ::onComplete() - the two primary callbacks of the soon-to-be-deprecated IDBTransactionCallbacks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782060</commentid>
    <comment_count>1</comment_count>
      <attachid>177379</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-12-03 17:16:48 -0800</bug_when>
    <thetext>Created attachment 177379
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782063</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-03 17:18:22 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782773</commentid>
    <comment_count>3</comment_count>
      <attachid>177523</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-12-04 12:02:15 -0800</bug_when>
    <thetext>Created attachment 177523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782774</commentid>
    <comment_count>4</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-12-04 12:02:49 -0800</bug_when>
    <thetext>jsbell/dgrogan - take a look? this is just the method stub-out phase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782793</commentid>
    <comment_count>5</comment_count>
      <attachid>177523</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-12-04 12:21:33 -0800</bug_when>
    <thetext>Comment on attachment 177523
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:64
&gt; +    static PassOwnPtr&lt;ScriptExecutionContext::Task&gt; create(PassRefPtr&lt;IDBDatabaseBackendImpl&gt; database, int64_t transactionId, int64_t version, PassRefPtr&lt;IDBCallbacks&gt; callbacks, PassRefPtr&lt;IDBDatabaseCallbacks&gt; databaseCallbacks, PassRefPtr&lt;IDBTransactionBackendImpl&gt; transaction)

Why is the transactionId needed here? This operation must, by definition, exist within a IDBTransactionBackendImpl which must already have been created and should have an ID assigned.

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h:71
&gt; +    virtual void commit(int64_t) { ASSERT_NOT_REACHED(); }

Give a name for the ID parameters.

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendInterface.h:64
&gt; +    virtual void commit(int64_t) = 0;

Give a name for the ID parameters.

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h:47
&gt; +    virtual void onAbort(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;) = 0;

Give a name for the ID parameters.

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.h:49
&gt; +    virtual void onAbort(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;);

Give a name for the ID parameters.

&gt; Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp:71
&gt; +void IDBOpenDBRequest::onUpgradeNeeded(int64_t oldVersion, int64_t transactionId, PassRefPtr&lt;IDBTransactionBackendInterface&gt; prpTransactionBackend, PassRefPtr&lt;IDBDatabaseBackendInterface&gt; prpDatabaseBackend)

It should not be necessary to return the transaction ID from the back-end to the front-end; the open() call can pass it to the IDBOpenDBRequest which can hold onto it. Passing the ID back could also reveal information about the back-end.

&gt; Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp:107
&gt; +void IDBOpenDBRequest::onUpgradeNeeded(int64_t oldVersion, PassRefPtr&lt;IDBTransactionBackendInterface&gt; prpTransactionBackend, PassRefPtr&lt;IDBDatabaseBackendInterface&gt; prpDatabaseBackend)

Remove the &quot;prp&quot; prefix if these aren&apos;t being assigned to local RefPtrs.

&gt; Source/WebKit/chromium/public/WebIDBDatabase.h:65
&gt; +    virtual void abort(long long) { WEBKIT_ASSERT_NOT_REACHED(); }

Give a name for the ID parameters.

&gt; Source/WebKit/chromium/src/IDBDatabaseBackendProxy.h:54
&gt; +    virtual void commit(int64_t);

Give a name for the ID parameters.

&gt; Source/WebKit/chromium/src/IDBDatabaseCallbacksProxy.h:47
&gt; +    virtual void onAbort(int64_t, PassRefPtr&lt;WebCore::IDBDatabaseError&gt;);

Give a name for the ID parameters.

&gt; Source/WebKit/chromium/src/WebIDBDatabaseImpl.h:62
&gt; +    virtual void abort(long long);

Give a name for the ID parameters.

&gt; Source/WebKit/chromium/tests/IDBAbortOnCorruptTest.cpp:111
&gt; +    virtual void onAbort(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;) OVERRIDE { }

Give a name for the ID parameters.

&gt; Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp:111
&gt; +    virtual void onAbort(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;) OVERRIDE { }

Give a name for the ID parameters.

&gt; Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp:167
&gt; +    virtual void abort(int64_t) { }

Give a name for the ID parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783033</commentid>
    <comment_count>6</comment_count>
      <attachid>177585</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-12-04 15:28:39 -0800</bug_when>
    <thetext>Created attachment 177585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783048</commentid>
    <comment_count>7</comment_count>
      <attachid>177585</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-12-04 15:48:41 -0800</bug_when>
    <thetext>Comment on attachment 177585
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:132
&gt; +    // FIXME: pass the transactionId in here

File a bug and reference here?

&gt; Source/WebKit/chromium/src/IDBFactoryBackendProxy.h:52
&gt; +    // FIXME: Remove old method in https://bugs.webkit.org/show_bug.cgi?id=103923.

old -&gt; this here and elsewhere. &quot;This method&quot; (that is, the one just below) is easier to understand out of the context of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783056</commentid>
    <comment_count>8</comment_count>
      <attachid>177591</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-12-04 15:54:29 -0800</bug_when>
    <thetext>Created attachment 177591
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783316</commentid>
    <comment_count>9</comment_count>
      <attachid>177591</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 20:30:19 -0800</bug_when>
    <thetext>Comment on attachment 177591
Patch for landing

Rejecting attachment 177591 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
bKit/chromium/src/WebIDBDatabaseImpl.cpp
patching file Source/WebKit/chromium/src/WebIDBDatabaseImpl.h
patching file Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp
patching file Source/WebKit/chromium/src/WebIDBFactoryImpl.h
patching file Source/WebKit/chromium/tests/IDBAbortOnCorruptTest.cpp
patching file Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/15138450</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783873</commentid>
    <comment_count>10</comment_count>
      <attachid>177786</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-12-05 10:11:06 -0800</bug_when>
    <thetext>Created attachment 177786
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783902</commentid>
    <comment_count>11</comment_count>
      <attachid>177786</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-05 10:53:13 -0800</bug_when>
    <thetext>Comment on attachment 177786
Patch for landing

Clearing flags on attachment: 177786

Committed r136714: &lt;http://trac.webkit.org/changeset/136714&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783903</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-05 10:53:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177379</attachid>
            <date>2012-12-03 17:16:48 -0800</date>
            <delta_ts>2012-12-04 12:02:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103921-20121203171414.patch</filename>
            <type>text/plain</type>
            <size>51160</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRiMmZjODY2NGI0YWZj
YTE1ZTQ4NGFlMWFjMWMzNmE1YzBjOTEzZS4uMTAzZmY2ZTYyNWMyZDI1MWJjOWE3MGRiNDA2NTM2
YmQ0ODJhYzg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTEyLTAzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFN0
dWIgb3V0IHRyYW5zYWN0aW9uLWJhY2tlbmQgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gcHJlcGFyYXRpb24gZm9yIGEgcmVmYWN0b3Jp
bmcuIExlZ2FjeSBtZXRob2RzIAorICAgICAgICB3aWxsIGJlIHJlbW92ZWQgaW4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIGp1c3QgYWRkaW5nIHVudXNlZCBtZXRob2RzIGZvciByZWZhY3RvcmluZy4KKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ2FsbGJhY2tzOjpvblVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpv
bkFib3J0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJh
c2U6Om9uQ29tcGxldGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
Lmg6CisgICAgICAgIChJREJEYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmg6CisgICAg
ICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZEltcGw6OmNvbW1pdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjphYm9ydCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmg6
CisgICAgICAgIChJREJEYXRhYmFzZUNhbGxiYWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25BYm9ydCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25Db21wbGV0ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6Cisg
ICAgICAgIChJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJG
YWN0b3J5QmFja2VuZEltcGw6Om9wZW4pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnlCYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tl
bmRJbXBsOjpvcGVuKToKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kSW1wbCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAg
ICAgKElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJl
cXVlc3Q6Om9uVXBncmFkZU5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0Lmg6CisgICAgICAgIChJREJPcGVuREJS
ZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaDoKKwogMjAxMi0xMS0yNyAgQWxlYyBG
bGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiByZW1v
dmUgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjp0cmFuc2FjdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IDhiZjhjNjI3MDFjZTQ5NGM3NTViNzg4YTc5NWIxODYxN2JkZDAw
ZWIuLmU2Njg5OTcyYzI0YWFkMGI1ZTI0NmEwNWYwMDgwYzM1ZWYzNDA1MzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzYgQEAKKzIwMTItMTItMDMgIEFsZWMgRmxldHQg
IDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogU3R1YiBvdXQg
dHJhbnNhY3Rpb24tYmFja2VuZCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IHNpZ25hdHVyZXMgZm9yIHJlZmFjdG9yaW5nLCB0
byBhbGxvdworICAgICAgICB0cmFuc2FjdGlvbl9pZHMgdG8gbWFrZSBpcyB0aHJvdWdoIHRoZSBv
cGVuL29uVXBncmFkZU5lZWRlZAorICAgICAgICBsb29wLgorCisgICAgICAgICogcHVibGljL1dl
YklEQkNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3M6Om9uVXBn
cmFkZU5lZWRlZCk6CisgICAgICAgICogcHVibGljL1dlYklEQkRhdGFiYXNlLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQkRhdGFiYXNlOjpjcmVhdGVUcmFuc2FjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkRhdGFiYXNlOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRh
dGFiYXNlOjpjb21taXQpOgorICAgICAgICAoV2ViSURCRGF0YWJhc2UpOgorICAgICAgICAqIHB1
YmxpYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VD
YWxsYmFja3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrczo6b25B
Ym9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzOjpvbkNvbXBs
ZXRlKToKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCRmFjdG9yeS5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJJREJGYWN0b3J5OjpvcGVuKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJREJDYWxsYmFja3NQcm94eTo6b25VcGdyYWRlTmVlZGVk
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6
CisgICAgICAgIChJREJDYWxsYmFja3NQcm94eSk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VCYWNrZW5kUHJv
eHk6OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJL
aXQ6OklEQkRhdGFiYXNlQmFja2VuZFByb3h5Ojpjb21taXQpOgorICAgICAgICAoV2ViS2l0OjpJ
REJEYXRhYmFzZUJhY2tlbmRQcm94eTo6YWJvcnQpOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFz
ZUJhY2tlbmRQcm94eS5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kUHJveHkpOgorICAg
ICAgICAqIHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25BYm9ydCk6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvbkNvbXBsZXRl
KToKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oOgorICAgICAgICAo
SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eSk6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNr
ZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJGYWN0b3J5QmFja2VuZFByb3h5Ojpv
cGVuKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNrZW5k
UHJveHkuaDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNy
Yy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJh
Y2tzSW1wbDo6b25VcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
c3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKFdlYklEQkNhbGxiYWNrc0ltcGwp
OgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uQWJvcnQpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
OjpvbkNvbXBsZXRlKToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
Lmg6CisgICAgICAgIChXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNy
Yy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFz
ZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJEYXRhYmFzZUltcGw6OmNvbW1pdCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1w
bC5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURC
RmFjdG9yeUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5SW1wbDo6b3Bl
bik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJJREJGYWN0b3J5SW1wbC5o
OgorICAgICAgICAoV2ViSURCRmFjdG9yeUltcGwpOgorICAgICAgICAqIHRlc3RzL0lEQkFib3J0
T25Db3JydXB0VGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVz
dC5jcHA6CisKIDIwMTItMTEtMjcgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEluZGV4ZWREQjogcmVtb3ZlIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZTo6dHJhbnNhY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDYWxsYmFja3MuaAppbmRleCBiODhiMGNkZTNmNzJhY2RlYzgyNzg5MGU1YzI4OWEwMWI2NmUy
MmMyLi42Y2ZkZjZmMzIyZTNkNzQxNTJmZDBiMjZiZmUyN2MzYWRjNTJjOTg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaApAQCAtNzQsNyAr
NzQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3Rp
bmdWZXJzaW9uKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgLy8gRnJvbSBJREJGYWN0
b3J5Lm9wZW4oKQorICAgIC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgdm9pZCBv
blVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlPikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBvblVwZ3Jh
ZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2U+KSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZT4pIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCBlNzk5YzBkYjJlY2FhYjVh
ZGM0ZjNiZTI3N2E2MjYyNGY0ZmY2YWNjLi4wM2RmOWUwY2VjMzBmOGE3Mjc2M2QzMTA5OTg4YTA1
MjVjZmM1ZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2UuY3BwCkBAIC0xMTMsNiArMTEzLDE2IEBAIHZvaWQgSURCRGF0YWJhc2U6OnRyYW5z
YWN0aW9uRmluaXNoZWQoSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogICAgICAgICBjbG9z
ZUNvbm5lY3Rpb24oKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZTo6b25BYm9ydChpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpCit7CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgSURCRGF0YWJhc2U6Om9uQ29tcGxldGUo
aW50NjRfdCB0cmFuc2FjdGlvbklkKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQor
CiBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IElEQkRhdGFiYXNlOjpvYmplY3RTdG9yZU5hbWVz
KCkgY29uc3QKIHsKICAgICBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gb2JqZWN0U3RvcmVOYW1lcyA9
IERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmgKaW5kZXggYThhYjk0ZDk0OTNiZGU4M2JiYTc5ODA0YjQ1MDBh
NTgwOGI0NWRiOS4uN2I3NjI0MjE0MDc0ZTFmOTY3MDMwMWRjMGJkMjhkMzQ2YzRjZjA2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCkBAIC03
Nyw2ICs3Nyw4IEBAIHB1YmxpYzoKICAgICAvLyBJREJEYXRhYmFzZUNhbGxiYWNrcwogICAgIHZp
cnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5l
d1ZlcnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5n
JiByZXF1ZXN0ZWRWZXJzaW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydChpbnQ2NF90LCBQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0
ZShpbnQ2NF90KTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAgIHZpcnR1YWwgdm9pZCBz
dG9wKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4IGE4MDJjMzVmY2EwODhk
ZTY1YmM1MTE2M2ZjMzdlNTFhMzY2MGM5ZWIuLjQwYmFhNGIxZmVjMjY0ZWMxNTExNjE5MDNlOGIz
M2ZmZTIxODk2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC0zODAsNiArMzgwLDcgQEAg
dm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKCkKICAgICB9
CiB9CiAKKy8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZVRyYW5zYWN0aW9u
KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9y
ZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKIHsKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbD4gdHJhbnNhY3Rpb24gPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVh
dGUodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZHMsIG1vZGUsIHRoaXMpOwpAQCAtMzg3LDYg
KzM4OCwxMSBAQCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURC
RGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlVHJhbnNhYwogICAgIHJldHVybiB0cmFuc2FjdGlv
bi5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlVHJh
bnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMs
IHVuc2lnbmVkIHNob3J0IG1vZGUpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
IHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4g
ZGF0YWJhc2VDYWxsYmFja3MpCiB7CiAgICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlLmdldCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
QmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEltcGwuaAppbmRleCBkZjBiYTJkYWI0MzQ4YWRjNzY3OGQ0ZDcwM2JhYjA5MGU4
YTZiNmMyLi5kNTFiODI2NzBlZDFiNDRmMmU2YjFiZTRmN2MyNTc0ZmQ1OTJjYTcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VC
YWNrZW5kSW1wbC5oCkBAIC02Myw5ICs2MywxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJE
YXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRf
dCBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5j
cmVtZW50LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogUmVt
b3ZlIG9sZCBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMzkyMy4KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGNvbnN0IFZl
Y3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpOworICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9i
amVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xv
c2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwogCisgICAgdmlydHVhbCB2b2lk
IGNvbW1pdChpbnQ2NF90KSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2
b2lkIGFib3J0KGludDY0X3QpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKwogICAgIFBhc3NS
ZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUoaW50NjRfdCBpZCk7
CiAgICAgSURCVHJhbnNhY3Rpb25Db29yZGluYXRvciogdHJhbnNhY3Rpb25Db29yZGluYXRvcigp
IGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb25Db29yZGluYXRvci5nZXQoKTsgfQogICAgIHZv
aWQgdHJhbnNhY3Rpb25TdGFydGVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bD4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCA4NTAwNjJjMjkxODczMmJhMzRh
OTI3YzdiMDdlOTk1ZWE5MDM2NGRmLi5mOWFlZGU2YWE0Mzg4NGNjNTJhMDA1YmVhYjcxOTRmNmMx
ZDUyMWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTUsOCArNTUsMTQgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZElu
dGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxl
dGVPYmplY3RTdG9yZShpbnQ2NF90LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBF
eGNlcHRpb25Db2RlJikgPSAwOworICAgIC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5z
YWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmpl
Y3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBj
cmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1
bnNpZ25lZCBzaG9ydCBtb2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBUcmFuc2FjdGlvbi1zcGVj
aWZpYyBvcGVyYXRpb25zLgorICAgIHZpcnR1YWwgdm9pZCBjb21taXQoaW50NjRfdCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBhYm9ydChpbnQ2NF90KSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUNhbGxiYWNrcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VDYWxsYmFja3MuaAppbmRleCA0NjkzZTYzN2FlZGFhY2JjNGMxOWZhMGU0ODU0
OTQyZWQxMzI1YzNiLi4yMGE1NWJlYThkMmE2Nzk1Njk2NGMyMjQ0ZmI2YzRhNmFhYTBiMzQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNh
bGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQ2FsbGJhY2tzLmgKQEAgLTQzLDYgKzQzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBvbkZvcmNlZENsb3NlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2Uo
Y29uc3QgU3RyaW5nJiB2ZXJzaW9uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNo
YW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbikgPSAwOworCisgICAg
dmlydHVhbCB2b2lkIG9uQWJvcnQoaW50NjRfdCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9y
PikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3QpID0gMDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IDk3
MGQzYTE2N2NhZjk5NmM3ZjAzMWZmNTRhNGYxNTkyNDlmMWFhMGIuLjQxMWFmM2M2ODA3NWU4OGMw
NDRhZDEzMTc2ZWIzNWExOWZkMjRlY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcApAQCAt
NzEsNiArNzEsMTggQEAgdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6OmNvbm5lY3QoSURC
RGF0YWJhc2UqIGRhdGFiYXNlKQogICAgIG1fZGF0YWJhc2UgPSBkYXRhYmFzZTsKIH0KIAordm9p
ZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uQWJvcnQoaW50NjRfdCB0cmFuc2FjdGlvbklk
LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9yKQoreworICAgIGlmIChtX2RhdGFi
YXNlKQorICAgICAgICBtX2RhdGFiYXNlLT5vbkFib3J0KHRyYW5zYWN0aW9uSWQsIGVycm9yKTsK
K30KKwordm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uQ29tcGxldGUoaW50NjRfdCB0
cmFuc2FjdGlvbklkKQoreworICAgIGlmIChtX2RhdGFiYXNlKQorICAgICAgICBtX2RhdGFiYXNl
LT5vbkNvbXBsZXRlKHRyYW5zYWN0aW9uSWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaAppbmRleCBiYjRhMWFlNzRlODIyNzM4YjMz
ZGQ2YzA4MDllNzJlNjEwZmQzY2JjLi45NTE5NmFlZDJhY2NjYzYxNmVmMzhjNzIzOGNlZDE2MDg2
MzIyZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUNhbGxiYWNrc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaApAQCAtNDYsNiArNDYsOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHZlcnNpb24p
OwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBp
bnQ2NF90IG5ld1ZlcnNpb24pOwogCisgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoaW50NjRfdCwg
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik7CisgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxl
dGUoaW50NjRfdCk7CisKICAgICB2b2lkIGNvbm5lY3QoSURCRGF0YWJhc2UqKTsKIAogcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3Rv
cnlCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5QmFja2VuZEltcGwuY3BwCmluZGV4IGVhYTczM2E1MjhlZjQ1NGFjMzgwZWMyZjBjNjFk
NDUxM2NiZjcwOWMuLmFmOGU5ODlmMjBhYzg3OWQ3OWRjMTM3MmM0YWVjODgzOGE3NDA1NzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNr
ZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeUJhY2tlbmRJbXBsLmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIFBhc3NSZWZQdHI8SURCQmFj
a2luZ1N0b3JlPiBJREJGYWN0b3J5QmFja2VuZEltcGw6Om9wZW5CYWNraW5nU3RvcmUoUGFzc1Jl
ZlB0cjxTCiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgSURCRmFjdG9yeUJhY2tlbmRJbXBsOjpv
cGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNh
bGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRh
YmFzZUNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gcHJwU2VjdXJpdHlPcmln
aW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXJlY3Rvcnkp
Cit2b2lkIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGlu
dDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFz
ZUNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gcHJwU2VjdXJpdHlPcmlnaW4s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXJlY3RvcnkpCiB7
CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IHBycFNlY3VyaXR5
T3JpZ2luOwogICAgIGNvbnN0IFN0cmluZyB1bmlxdWVJZGVudGlmaWVyID0gY29tcHV0ZVVuaXF1
ZUlkZW50aWZpZXIobmFtZSwgc2VjdXJpdHlPcmlnaW4uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaApp
bmRleCA3YTAyMGZiNjBkMmFhOTYzYzY0MjljNDVkOTYwMzdmNmQyMjFiZWQ5Li5iNGMwZjg5ZDEw
YzE0YTFmYzZlYTgzNzc4YmY5MDUzM2Q3NmRhNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaApAQCAtMjgs
NiArMjgsOCBAQAogI2lmbmRlZiBJREJGYWN0b3J5QmFja2VuZEltcGxfaAogI2RlZmluZSBJREJG
YWN0b3J5QmFja2VuZEltcGxfaAogCisjaW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVk
ZSAiSURCRGF0YWJhc2VDYWxsYmFja3MuaCIKICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2VuZElu
dGVyZmFjZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KQEAgLTU2LDcgKzU4LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlSURCQmFja2luZ1N0b3JlKGNvbnN0IFN0cmluZyYgZmlsZUlkZW50aWZpZXIpOwogCiAgICAg
dmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQ
YXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBu
YW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICAvLyBGSVhN
RTogUmVtb3ZlIG9sZCBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMzkyMy4KKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUs
IGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpCisgICAgeworICAgICAgICByZXR1cm4g
b3BlbihuYW1lLCB2ZXJzaW9uLCAwLCBjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCBzZWN1
cml0eU9yaWdpbiwgY29udGV4dCwgZGF0YURpcik7CisgICAgfQorICAgIHZpcnR1YWwgdm9pZCBv
cGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0
aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKKwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVE
YXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmIGRhdGFEaXIpOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaApp
bmRleCBiYWIyMTlmNWY0ZWM1NGRmMjNhYzdkZjRmNDU0Yjc2ZmFlYjcyZjJlLi44NGVkOThjMjI4
ZjY2ZGFjNzFlODZkN2YyNWE5MzQ4NWIxNzA0YjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNl
LmgKQEAgLTU0LDcgKzU0LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfklEQkZhY3RvcnlCYWNr
ZW5kSW50ZXJmYWNlKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSA9IDA7CisgICAgLy8g
RklYTUU6IFJlbW92ZSBvbGQgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBu
YW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0
X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElE
QkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNh
bGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCmluZGV4IDU1
MWQwZGQwOTNiYTdjZTBmZDA2ODNjMzVhYjUwMTE3YzIzZTE1MWIuLmFkOWY5ODcyODJkZTVlYTUz
MzE1MjM2NGVhNDU1YWY0Njc1ZDI4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHZv
aWQgSURCT3BlbkRCUmVxdWVzdDo6b25CbG9ja2VkKGludDY0X3Qgb2xkVmVyc2lvbikKICAgICBl
bnF1ZXVlRXZlbnQoSURCVXBncmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbV92
ZXJzaW9uLCBldmVudE5hbWVzKCkuYmxvY2tlZEV2ZW50KSk7CiB9CiAKLXZvaWQgSURCT3BlbkRC
UmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHBycFRyYW5zYWN0aW9uQmFja2VuZCwgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IHBycERhdGFiYXNlQmFja2VuZCkK
K3ZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lv
biwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZT4gcHJwVHJhbnNhY3Rpb25CYWNrZW5kLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZT4gcHJwRGF0YWJhc2VCYWNrZW5kKQogewogICAgIElEQl9UUkFDRSgi
SURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKCkiKTsKICAgICBpZiAobV9jb250ZXh0
U3RvcHBlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7CkBAIC04OSw3ICs4OSw2IEBA
IHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lv
biwgUGFzc1JlZlB0cjxJREJUcmFuc2FjCiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrcy0+Y29ubmVj
dChpZGJEYXRhYmFzZS5nZXQoKSk7CiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrcyA9IDA7CiAKLSAg
ICBpbnQ2NF90IHRyYW5zYWN0aW9uSWQgPSBJREJEYXRhYmFzZTo6bmV4dFRyYW5zYWN0aW9uSWQo
KTsKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGZyb250ZW5kID0gSURCVHJhbnNhY3Rpb246
OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRyYW5zYWN0aW9uSWQsIHRyYW5zYWN0
aW9uQmFja2VuZCwgVmVjdG9yPFN0cmluZz4oKSwgSURCVHJhbnNhY3Rpb246OlZFUlNJT05fQ0hB
TkdFLCBpZGJEYXRhYmFzZS5nZXQoKSwgdGhpcyk7CiAgICAgdHJhbnNhY3Rpb25CYWNrZW5kLT5z
ZXRDYWxsYmFja3MoZnJvbnRlbmQuZ2V0KCkpOwogICAgIG1fdHJhbnNhY3Rpb24gPSBmcm9udGVu
ZDsKQEAgLTEwNCw2ICsxMDMsMTIgQEAgdm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVO
ZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWMKICAgICBlbnF1
ZXVlRXZlbnQoSURCVXBncmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbV92ZXJz
aW9uLCBldmVudE5hbWVzKCkudXBncmFkZW5lZWRlZEV2ZW50KSk7CiB9CiAKKy8vIEZJWE1FOiBS
ZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzOTIzLgordm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQoaW50NjRf
dCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4g
cHJwVHJhbnNhY3Rpb25CYWNrZW5kLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZT4gcHJwRGF0YWJhc2VCYWNrZW5kKQoreworICAgIG9uVXBncmFkZU5lZWRlZChvbGRWZXJz
aW9uLCAwLCBwcnBUcmFuc2FjdGlvbkJhY2tlbmQsIHBycERhdGFiYXNlQmFja2VuZCk7Cit9CisK
IHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogewogICAgIElEQl9UUkFDRSgiSURCT3BlbkRCUmVx
dWVzdDo6b25TdWNjZXNzKCkiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaAppbmRleCBhNTUxNDI2NGUzNGIyMGU2OGRmNGI3NmI2
OGVhZDFjZDgwZjhmMDkzLi4yYWM5ZDVjZWQ4YTE3YzE3YWU1OTBhZDQ0YmNkZjU2ZDJlZjZlZmQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJS
ZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRC
UmVxdWVzdC5oCkBAIC00Miw3ICs0Miw5IEBAIHB1YmxpYzoKICAgICB1c2luZyBJREJSZXF1ZXN0
OjpvblN1Y2Nlc3M7CiAKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3Rp
bmdWZXJzaW9uKSBPVkVSUklERTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIG9sZCBtZXRob2QgaW4g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0
dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVk
ZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgT1ZFUlJJREU7CiAKICAgICAv
LyBFdmVudFRhcmdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCBjYzc0
ZDExNTY4MTdiYTMyOGExYzFkNzk2YzYxMmJiMWQ1MmFiODg1Li4wZjU4NmJiYjQxOWYyOGJjNGRl
NWJjNjFlZmQ1N2JjNDlhMWFhY2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uu
aApAQCAtNDAsNyArNDAsNiBAQCBjbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrczsKIAogdHlw
ZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAotLy8gVGhpcyBjbGFzcyBpcyBzaGFyZWQgYnkgSURC
VHJhbnNhY3Rpb24gKGFzeW5jKSBhbmQgSURCVHJhbnNhY3Rpb25TeW5jIChzeW5jKS4KIC8vIFRo
aXMgaXMgaW1wbGVtZW50ZWQgYnkgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCBhbmQgb3B0aW9u
YWxseSBvdGhlcnMgKGluIG9yZGVyIHRvIHByb3h5CiAvLyBjYWxscyBhY3Jvc3MgcHJvY2VzcyBi
YXJyaWVycykuIEFsbCBjYWxscyB0byB0aGVzZSBjbGFzc2VzIHNob3VsZCBiZSBub24tYmxvY2tp
bmcgYW5kCiAvLyB0cmlnZ2VyIHdvcmsgb24gYSBiYWNrZ3JvdW5kIHRocmVhZCBpZiBuZWNlc3Nh
cnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmgKaW5kZXggODI5OTg1MzIyMGNjYWE2NDU0Y2Y2NDJl
ODA1OTg0MDgyNjMzNGJmMy4uNjA5MDZmZTM1ZjRhNTdkNmFjNGYwYTcxMzczNDQ3MWEwMGM4NjE3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb25Db29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaApAQCAtMjgsNyArMjgsNiBAQAogCiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCiAKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKaW5kZXggMDk4NjFmMTMzMDBmNmIxNWYz
YzBiYWNiYTJjMTI5ZmI3ZDBiNzdlZC4uMTFjMmY0YTdjNjdiNzE0MzcwNWJhNTk0M2QxMDNjMGJi
MzVmMDk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURC
Q2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2Fs
bGJhY2tzLmgKQEAgLTYxLDcgKzYxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvbkJs
b2NrZWQoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBvbkJsb2NrZWQobG9uZyBsb25nIG9sZFZlcnNpb24pIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBX
ZWJWZWN0b3I8V2ViSURCS2V5PiYga2V5cywgY29uc3QgV2ViVmVjdG9yPFdlYklEQktleT4mIHBy
aW1hcnlLZXlzLCBjb25zdCBXZWJWZWN0b3I8V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlPiYgdmFs
dWVzKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIC8vIEZJWE1FOiBSZW1v
dmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAzOTIzLgogICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9sZFZl
cnNpb24sIFdlYklEQlRyYW5zYWN0aW9uKiwgV2ViSURCRGF0YWJhc2UqKSB7IFdFQktJVF9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQobG9u
ZyBsb25nIG9sZFZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBXZWJJREJUcmFuc2Fj
dGlvbiosIFdlYklEQkRhdGFiYXNlKikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQkRhdGFiYXNlLmgKaW5kZXggOTViYWY2NmI2NTE4Yzk4YTBmYTU3OGJiMjY0
ZjNmYzE5ZWNkNWRmNC4uYjkwMDg3OWMyYzE0ZmM1NDcxNWQzN2ZiYzY0MjFlNTZlZTY2YzRmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCkBA
IC01NiwxMCArNTYsMTUgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBj
b25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVj
KSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUg
b2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
OTIzLgogICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRyYW5zYWN0aW9uKGxv
bmcgbG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBt
b2RlKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgY3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBXZWJJREJEYXRhYmFzZUNh
bGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVk
IHNob3J0IG1vZGUpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVh
bCB2b2lkIGNsb3NlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0
dWFsIHZvaWQgZm9yY2VDbG9zZSgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAK
KyAgICB2aXJ0dWFsIHZvaWQgYWJvcnQobG9uZyBsb25nKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBjb21taXQobG9uZyBsb25nKSB7IFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgV2ViSURCRGF0YWJhc2Uo
KSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
REJEYXRhYmFzZUNhbGxiYWNrcy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SURCRGF0YWJhc2VDYWxsYmFja3MuaAppbmRleCAxMmRhN2UwYjQ3NmIxMTQ1ZGQ2OTMxNDBlMzFk
YThhYzVlMTg5NzUxLi5iNDYyNjYxZGVmMTE1YjhlZGI1NmMxMzNiYWFhZTc0MDRmNDQ2MDQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUNh
bGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgV2ViSURCRGF0YWJhc2VD
YWxsYmFja3NfaAogI2RlZmluZSBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc19oCiAKKyNpbmNsdWRl
ICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViQ29tbW9uLmgi
CiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCiAKQEAgLTM4LDYgKzM5LDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBvbkZvcmNlZENsb3NlKCkgeyBXRUJLSVRfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGxvbmcgbG9u
ZyBvbGRWZXJzaW9uLCBsb25nIGxvbmcgbmV3VmVyc2lvbikgeyBXRUJLSVRfQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFdlYlN0
cmluZyYgcmVxdWVzdGVkVmVyc2lvbikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
KworICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBjb25z
dCBXZWJJREJEYXRhYmFzZUVycm9yJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0ZShsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCkgeyBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRmFjdG9y
eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRmFjdG9yeS5oCmluZGV4
IDEyZWNmMDdjNzI3NzIwNWJiYjZkNjk3YThiOGNiMjMzMWNlMTM1YWIuLmY4OWE3ZDIzN2JhMDYw
YmYzZmRkMDVhNTdlMzE2Y2MzNGViOWFmYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYklEQkZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJREJGYWN0b3J5LmgKQEAgLTU2LDcgKzU2LDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBj
b25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdl
YlN0cmluZyYgZGF0YURpcikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAogICAg
IC8vIFRoZSBXZWJLaXQgaW1wbGVtZW50YXRpb24gb2Ygb3BlbiBpZ25vcmVzIHRoZSBXZWJGcmFt
ZSogcGFyYW1ldGVyLgorICAgIC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgdm9p
ZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIFdlYklEQkNh
bGxiYWNrcyogY2FsbGJhY2tzLCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyogZGF0YWJhc2VDYWxs
YmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiBmcmFtZSwg
Y29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQorICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBsb25n
IHZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBXZWJJREJDYWxsYmFja3MqIGNhbGxi
YWNrcywgV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGRhdGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBX
ZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYlN0cmlu
ZyYgZGF0YURpcikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAogICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxi
YWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJp
bmcmIGRhdGFEaXIpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDgz
N2NjMzJhNmIwMDAwZGFmOTQ3YjFkZTc1MWU1Njc2MDgyODZkZTEuLmM3ZjM4NjgwZjVkZjM2NDQ4
N2UxMDU2NmExNWYwMmRhZjMwZmI4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKQEAgLTE0NCwxMiArMTQ0LDE5IEBAIHZvaWQgSURC
Q2FsbGJhY2tzUHJveHk6Om9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbikKICAgICBt
X2NhbGxiYWNrcy0+b25CbG9ja2VkKGV4aXN0aW5nVmVyc2lvbik7CiB9CiAKKy8vIEZJWE1FOiBS
ZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzOTIzLgogdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25VcGdyYWRlTmVlZGVkKGludDY0
X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+
IHRyYW5zYWN0aW9uLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gZGF0
YWJhc2UpCiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2VDYWxsYmFja3MpOwogICAgIG1fY2FsbGJh
Y2tzLT5vblVwZ3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgbmV3IFdlYklEQlRyYW5zYWN0aW9uSW1w
bCh0cmFuc2FjdGlvbiksIG5ldyBXZWJJREJEYXRhYmFzZUltcGwoZGF0YWJhc2UsIG1fZGF0YWJh
c2VDYWxsYmFja3MpKTsKIH0KIAordm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25VcGdyYWRlTmVl
ZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24sIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBkYXRhYmFzZSkKK3sKKyAgICBBU1NFUlQobV9k
YXRhYmFzZUNhbGxiYWNrcyk7CisgICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRW
ZXJzaW9uLCB0cmFuc2FjdGlvbklkLCBuZXcgV2ViSURCVHJhbnNhY3Rpb25JbXBsKHRyYW5zYWN0
aW9uKSwgbmV3IFdlYklEQkRhdGFiYXNlSW1wbChkYXRhYmFzZSwgbV9kYXRhYmFzZUNhbGxiYWNr
cykpOworfQorCiB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpzZXREYXRhYmFzZUNhbGxiYWNrcyhQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk+IGRhdGFiYXNlQ2FsbGJhY2tzKQog
ewogICAgIEFTU0VSVCghbV9kYXRhYmFzZUNhbGxiYWNrcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAppbmRleCA2NWYzYjc0MGE4MmVlOGFlMmQ4
MmIwMjU5MjNiZTBlNjRlMGE0MTVhLi42MWYxMTlmZDg2YmQ5MWQ1NjE3NGMyMGJjNjYyNjQwNzJi
NDIwMjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFj
a3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1By
b3h5LmgKQEAgLTU5LDcgKzU5LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+ID4mIGtl
eXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiA+JiBwcmltYXJ5S2V5cywg
Y29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mIHZh
bHVlcyk7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBv
bkJsb2NrZWQoaW50NjRfdCBleGlzdGluZ1ZlcnNpb24pOworICAgIC8vIEZJWE1FOiBSZW1vdmUg
b2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
OTIzLgogICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9u
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4sIFBh
c3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPik7CisgICAgdmly
dHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2U+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4p
OwogCiAgICAgdm9pZCBzZXREYXRhYmFzZUNhbGxiYWNrcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNl
Q2FsbGJhY2tzUHJveHk+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCmluZGV4IGU5YzgwZDBjZjYyOWVjMjQ3N2Fk
YTEzYjg4ZjQ0N2ZhOTU5MmRhNDguLmEwZGMyNGU3YjY0ZDRmOTU0MWNjNGQ3MzA5OTNjYTg1OWEy
YWY1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRh
YmFzZUJhY2tlbmRQcm94eS5jcHAKQEAgLTk0LDYgKzk0LDIyIEBAIFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRl
VHJhbnNhCiAgICAgcmV0dXJuIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpjcmVhdGUodHJh
bnNhY3Rpb24ucmVsZWFzZSgpKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6
Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCBpZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxi
YWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1
bnNpZ25lZCBzaG9ydCBtb2RlKQoreworICAgIG1fd2ViSURCRGF0YWJhc2UtPmNyZWF0ZVRyYW5z
YWN0aW9uKGlkLCBuZXcgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIG9i
amVjdFN0b3JlSWRzLCBtb2RlKTsKK30KKwordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6
Y29tbWl0KGludDY0X3QgdHJhbnNhY3Rpb25JZCkKK3sKKyAgICBtX3dlYklEQkRhdGFiYXNlLT5j
b21taXQodHJhbnNhY3Rpb25JZCk7Cit9CisKK3ZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6
OmFib3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCkKK3sKKyAgICBtX3dlYklEQkRhdGFiYXNlLT5h
Ym9ydCh0cmFuc2FjdGlvbklkKTsKK30KKworCiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5
OjpjbG9zZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPikKIHsKICAgICBtX3dlYklE
QkRhdGFiYXNlLT5jbG9zZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgKaW5kZXggMDNkMDVkOTJiMTZlNDhjMjllOTMzN2Jh
ZmUzZjkwMDM2MmJkOTYwOS4uMjM3NzYzMDU2ZjBiYmI3ZWY3Mzg0MWE4MTIwYzNhMWE4MzhjM2Qy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNr
ZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJh
Y2tlbmRQcm94eS5oCkBAIC00Niw5ICs0NiwxNCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVP
YmplY3RTdG9yZShpbnQ2NF90LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYkNvcmU6OklE
QktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBS
ZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QsIGNvbnN0IFZlY3Rv
cjxpbnQ2NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpOworICAgIHZpcnR1YWwgdm9pZCBjcmVh
dGVUcmFuc2FjdGlvbihpbnQ2NF90LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSk7CiAg
ICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxs
YmFja3M+KTsKIAorICAgIHZpcnR1YWwgdm9pZCBjb21taXQoaW50NjRfdCk7CisgICAgdmlydHVh
bCB2b2lkIGFib3J0KGludDY0X3QpOworCiBwcml2YXRlOgogICAgIElEQkRhdGFiYXNlQmFja2Vu
ZFByb3h5KFBhc3NPd25QdHI8V2ViSURCRGF0YWJhc2U+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcAppbmRl
eCAzMTg5N2RhOWU4Y2U5MTg4OWQ1MTcyNWNlOTk5ZTgyNzM4ZDE1NTRlLi42MzY1OTI2MmNjZTk4
MDExOTU5ZmI0NmY5MWE4OWVmOGE5NWQ4NmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcApAQCAtNjMsNiAr
NjMsMTYgQEAgdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvblZlcnNpb25DaGFuZ2Uo
Y29uc3QgU3RyaW5nJiByZXF1ZXN0ZWRWZXJzaW9uKQogICAgIG1fY2FsbGJhY2tzLT5vblZlcnNp
b25DaGFuZ2UocmVxdWVzdGVkVmVyc2lvbik7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2VDYWxsYmFj
a3NQcm94eTo6b25BYm9ydChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpCit7CisgICAgbV9jYWxsYmFja3MtPm9uQWJvcnQo
dHJhbnNhY3Rpb25JZCwgZXJyb3IpOworfQorCit2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJv
eHk6Om9uQ29tcGxldGUoaW50NjRfdCB0cmFuc2FjdGlvbklkKQoreworICAgIG1fY2FsbGJhY2tz
LT5vbkNvbXBsZXRlKHRyYW5zYWN0aW9uSWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oCmluZGV4IGNi
MWRkYjM0NjZiOWZiYjFlMzMxZGZiYzkyZDZiNDk2NGUyNTBkY2UuLjhlOTY5ZmI4NDUyYWMyN2M1
OWFiMDcwYzAyMWMwZDRhYjE0NjM4M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgKQEAgLTQ0LDYgKzQ0LDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiBy
ZXF1ZXN0ZWRWZXJzaW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0
X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKTsKIAorICAgIHZpcnR1YWwgdm9pZCBv
bkFib3J0KGludDY0X3QsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4pOwor
ICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3QpOworCiBwcml2YXRlOgogICAgIElE
QkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkoUGFzc093blB0cjxXZWJJREJEYXRhYmFzZUNhbGxiYWNr
cz4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5
QmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlC
YWNrZW5kUHJveHkuY3BwCmluZGV4IDI4OTk1ZWM2NjBlMzFmZjdjZWZhZDkzZWIzYmRhMjM0MWFh
MWVmZjguLmZiOWZlY2ViOGY1MmI0ODQ4ODYwZDU2NzU3YmU4N2U4OWE5YzlhMTYgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHku
Y3BwCkBAIC0yMDUsNiArMjA1LDcgQEAgdm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5OjpnZXRE
YXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmEKIH0KIAogCisv
LyBGSVhNRTogUmVtb3ZlIG9sZCBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzkyMy4KIHZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihj
b25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gcHJwRGF0
YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2lu
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIp
CiB7CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKHBycENhbGxiYWNrcyk7CkBA
IC0yMTcsNiArMjE4LDE4IEBAIHZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25z
dCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0CiAgICAgbV93ZWJJREJG
YWN0b3J5LT5vcGVuKG5hbWUsIHZlcnNpb24sIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxi
YWNrcyksIG5ldyBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoZGF0YWJhc2VDYWxsYmFja3Mp
LCBvcmlnaW4sIHdlYkZyYW1lLCBkYXRhRGlyKTsKIH0KIAordm9pZCBJREJGYWN0b3J5QmFja2Vu
ZFByb3h5OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90
IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IHBycERhdGFiYXNlQ2FsbGJhY2tzLCBQYXNz
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKQoreworICAgIFJlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcyhwcnBDYWxsYmFja3MpOworICAgIFJlZlB0cjxJREJEYXRhYmFz
ZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MocHJwRGF0YWJhc2VDYWxsYmFja3MpOworICAg
IFdlYlNlY3VyaXR5T3JpZ2luIG9yaWdpbihzZWN1cml0eU9yaWdpbik7CisgICAgaWYgKCFhbGxv
d0luZGV4ZWREQihjb250ZXh0LCBuYW1lLCBvcmlnaW4sIGNhbGxiYWNrcykpCisgICAgICAgIHJl
dHVybjsKKworICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBnZXRXZWJGcmFtZShjb250ZXh0
KTsKKyAgICBtX3dlYklEQkZhY3RvcnktPm9wZW4obmFtZSwgdmVyc2lvbiwgdHJhbnNhY3Rpb25J
ZCwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgbmV3IFdlYklEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbChkYXRhYmFzZUNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJhbWUsIGRhdGFE
aXIpOworfQorCiB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6OmRlbGV0ZURhdGFiYXNlKGNv
bnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywg
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YURpcikKIHsKICAgICBSZWZQdHI8
SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MocHJwQ2FsbGJhY2tzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaAppbmRleCA4ODM4MGQ3
YTQyZWQxMTczMDI5MzViZWJiY2FjY2ViNmY2ZTk3ZDc4Li5kMzIxNjk1M2Q4MTdkYjIxNTE0MDUy
MDQ0YWE5ODg2ZjZmYmEzOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCkBAIC00OSw3ICs0OSw5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5JREJGYWN0b3J5QmFja2VuZFByb3h5KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIG9s
ZCBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzky
My4KICAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVy
c2lvbiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRh
dGFEaXIpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRf
dCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVs
ZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNh
bGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKIAogcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNr
c0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1w
bC5jcHAKaW5kZXggZGNmMzAzYjM5MTEyYWFhMWU2N2M2NWRmNzQyZDkzYTI0YjA2ZmQ5Mi4uOGY3
NjdhMTlmNjAxM2M2ZmM5MDZmYTA1MTcxNTRkZGM0NmExMjljYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTEyMSwxMiAr
MTIxLDE5IEBAIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKGxvbmcgbG9uZyBv
bGRWZXJzaW9uKQogICAgIG1fY2FsbGJhY2tzLT5vbkJsb2NrZWQob2xkVmVyc2lvbik7CiB9CiAK
Ky8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblVwZ3Jh
ZGVOZWVkZWQobG9uZyBsb25nIG9sZFZlcnNpb24sIFdlYklEQlRyYW5zYWN0aW9uKiB0cmFuc2Fj
dGlvbiwgV2ViSURCRGF0YWJhc2UqIGRhdGFiYXNlKQogewogICAgIG1fZGlkQ3JlYXRlRGF0YWJh
c2VQcm94eSA9IHRydWU7CiAgICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJz
aW9uLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKHRyYW5zYWN0
aW9uKSksIElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIoZGF0YWJhc2Up
KSk7CiB9CiAKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25VcGdyYWRlTmVlZGVkKGxvbmcg
bG9uZyBvbGRWZXJzaW9uLCBsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgV2ViSURCVHJhbnNhY3Rp
b24qIHRyYW5zYWN0aW9uLCBXZWJJREJEYXRhYmFzZSogZGF0YWJhc2UpCit7CisgICAgbV9kaWRD
cmVhdGVEYXRhYmFzZVByb3h5ID0gdHJ1ZTsKKyAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVl
ZGVkKG9sZFZlcnNpb24sIHRyYW5zYWN0aW9uSWQsIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5
OjpjcmVhdGUoYWRvcHRQdHIodHJhbnNhY3Rpb24pKSwgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6
OmNyZWF0ZShhZG9wdFB0cihkYXRhYmFzZSkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaAppbmRleCA4ZjhjMDJhYWEwMjhj
ZmMzOWJlOTIxYWJjMGQ2YjdkYTNmZDUzMjZmLi5lMTBhNmIxNmFlM2VjYWI0Yjk5OTJlNmMzMjM3
ZTE4OGU5NDYwMmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJDYWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
Q2FsbGJhY2tzSW1wbC5oCkBAIC01Myw3ICs1Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKCk7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOwogICAgIHZpcnR1
YWwgdm9pZCBvbkJsb2NrZWQobG9uZyBsb25nIG9sZFZlcnNpb24pOworICAgIC8vIEZJWE1FOiBS
ZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9s
ZFZlcnNpb24sIFdlYklEQlRyYW5zYWN0aW9uKiwgV2ViSURCRGF0YWJhc2UqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBsb25nIGxvbmcg
dHJhbnNhY3Rpb25JZCwgV2ViSURCVHJhbnNhY3Rpb24qLCBXZWJJREJEYXRhYmFzZSopOwogCiBw
cml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+IG1fY2FsbGJhY2tzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggNWFlODZhNjc5NmExOTg2Y2UzZjdmODJjM2JmZDE4N2Fj
MGYyNGM1My4uNmEzNmZkMjk1NmE0OTIyODQ1NDY2Y2MwNGJkNzQwNWNmMzkzYjgyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNh
bGxiYWNrc0ltcGwuY3BwCkBAIC01OSw2ICs1OSwxNyBAQCB2b2lkIFdlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbikKICAg
ICBtX2NhbGxiYWNrcy0+b25WZXJzaW9uQ2hhbmdlKHZlcnNpb24pOwogfQogCit2b2lkIFdlYklE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25BYm9ydChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwg
Y29uc3QgV2ViSURCRGF0YWJhc2VFcnJvciYgZXJyb3IpCit7CisgICAgbV9jYWxsYmFja3MtPm9u
QWJvcnQodHJhbnNhY3Rpb25JZCwgZXJyb3IpOworfQorCit2b2lkIFdlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbDo6b25Db21wbGV0ZShsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCkKK3sKKyAgICBt
X2NhbGxiYWNrcy0+b25Db21wbGV0ZSh0cmFuc2FjdGlvbklkKTsKK30KKworCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuaAppbmRleCBiMDczN2VlYjJhOWI2MGI0ZTQzNTVhODQ0MGFjNDUwOTM4YTRiODM3Li41
MjkzZDU0NzFiMDE0MGMwYjM4NGFkZDhhZjIyZTY1NTFlYzNlNmU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwu
aApAQCAtNDYsNiArNDYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uRm9yY2VkQ2xv
c2UoKTsKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGxvbmcgbG9uZyBvbGRWZXJz
aW9uLCBsb25nIGxvbmcgbmV3VmVyc2lvbik7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNo
YW5nZShjb25zdCBXZWJTdHJpbmcmIHZlcnNpb24pOworICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0
KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBjb25zdCBXZWJJREJEYXRhYmFzZUVycm9yJik7Cisg
ICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQpOwogCiBw
cml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4gbV9jYWxs
YmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRh
YmFzZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJ
bXBsLmNwcAppbmRleCA0MDNhMzBiZWU1MTA3NjMwNzZhZDE2ZjZhOWQzODQyYmJhOWZiZDQwLi43
ZGUwYzcwODJiMjljNDk0ODhkMDFlZWMzMmRmYmE0YTU0YzNmNDYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTc1LDYgKzc1
LDcgQEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9u
ZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREIKICAgICBtX2RhdGFiYXNlQmFja2VuZC0+ZGVs
ZXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZCwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKIH0KIAorLy8gRklYTUU6IFJlbW92ZSBvbGQgbWV0
aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiBX
ZWJJREJUcmFuc2FjdGlvbiogV2ViSURCRGF0YWJhc2VJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihs
b25nIGxvbmcgaWQsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBvYmplY3RTdG9yZUlkcywg
dW5zaWduZWQgc2hvcnQgbW9kZSkKIHsKICAgICBWZWN0b3I8aW50NjRfdD4gb2JqZWN0U3RvcmVJ
ZExpc3Qob2JqZWN0U3RvcmVJZHMuc2l6ZSgpKTsKQEAgLTg2LDYgKzg3LDE1IEBAIFdlYklEQlRy
YW5zYWN0aW9uKiBXZWJJREJEYXRhYmFzZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9u
ZyBpZCwgY29uc3QgV2ViCiAgICAgcmV0dXJuIG5ldyBXZWJJREJUcmFuc2FjdGlvbkltcGwodHJh
bnNhY3Rpb24pOwogfQogCit2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6Y3JlYXRlVHJhbnNhY3Rp
b24obG9uZyBsb25nIGlkLCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25z
dCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1v
ZGUpCit7CisgICAgVmVjdG9yPGludDY0X3Q+IG9iamVjdFN0b3JlSWRMaXN0KG9iamVjdFN0b3Jl
SWRzLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvYmplY3RTdG9yZUlkcy5z
aXplKCk7ICsraSkKKyAgICAgICAgb2JqZWN0U3RvcmVJZExpc3RbaV0gPSBvYmplY3RTdG9yZUlk
c1tpXTsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eT4gZGF0YWJhc2VDYWxs
YmFja3NQcm94eSA9IElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihj
YWxsYmFja3MpKTsKKyAgICBtX2RhdGFiYXNlQmFja2VuZC0+Y3JlYXRlVHJhbnNhY3Rpb24oaWQs
IGRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuZ2V0KCksIG9iamVjdFN0b3JlSWRMaXN0LCBtb2RlKTsK
K30KKwogdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmNsb3NlKCkKIHsKICAgICAvLyBVc2UgdGhl
IGNhbGxiYWNrcyBwYXNzZWQgaW4gdG8gdGhlIGNvbnN0cnVjdG9yIHNvIHRoYXQgdGhlIGJhY2tl
bmQgaW4KQEAgLTEwNCw2ICsxMTQsMTggQEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmZvcmNl
Q2xvc2UoKQogICAgIGNhbGxiYWNrcy0+b25Gb3JjZWRDbG9zZSgpOwogfQogCit2b2lkIFdlYklE
QkRhdGFiYXNlSW1wbDo6YWJvcnQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQpCit7CisgICAgaWYg
KG1fZGF0YWJhc2VCYWNrZW5kKQorICAgICAgICBtX2RhdGFiYXNlQmFja2VuZC0+YWJvcnQodHJh
bnNhY3Rpb25JZCk7Cit9CisKK3ZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpjb21taXQobG9uZyBs
b25nIHRyYW5zYWN0aW9uSWQpCit7CisgICAgaWYgKG1fZGF0YWJhc2VCYWNrZW5kKQorICAgICAg
ICBtX2RhdGFiYXNlQmFja2VuZC0+Y29tbWl0KHRyYW5zYWN0aW9uSWQpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRleCA2
NmFhODRkYmE4YTgzYzk4MThhZGM5NjJlM2NiNzIwMjU3ZGE3MmFmLi4zN2ZmYzk5NmFkZGZhODIw
YzI0ZDdiMjVkYTg3ZjBmN2NmM2NjYjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaApAQCAtNTQsOSArNTQsMTMgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBXZWJJREJPYmplY3RTdG9yZSogY3JlYXRlT2JqZWN0U3RvcmUobG9uZyBsb25n
LCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYklEQktleVBhdGgmLCBib29sIGF1dG9J
bmNyZW1lbnQsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CisgICAgLy8g
RklYTUU6IFJlbW92ZSBvbGQgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVhbCBXZWJJREJUcmFuc2FjdGlvbiogY3JlYXRl
VHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVu
c2lnbmVkIHNob3J0IG1vZGUpOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihs
b25nIGxvbmcgaWQsIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKiwgY29uc3QgV2ViVmVjdG9yPGxv
bmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VD
bG9zZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOworICAgIHZpcnR1YWwgdm9pZCBhYm9y
dChsb25nIGxvbmcpOworICAgIHZpcnR1YWwgdm9pZCBjb21taXQobG9uZyBsb25nKTsKIAogcHJp
dmF0ZToKICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U+IG1fZGF0YWJhc2VCYWNrZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCRmFjdG9yeUltcGwuY3BwCmluZGV4IDk0YThkNDY4YTkwYTkwYzQxMmM3YWE2Yzk4YWVm
Yjc0YmI3YTM3YjguLjA1NWM1YjkxOTE0OGU4NDY2ZjY3MWMyOWU0MGRkMTBjNzI4YzQ2OWIgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAK
QEAgLTY1LDYgKzY1LDcgQEAgdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6Z2V0RGF0YWJhc2VOYW1l
cyhXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2UKICAgICBtX2lkYkZhY3Rv
cnlCYWNrZW5kLT5nZXREYXRhYmFzZU5hbWVzKElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRv
cHRQdHIoY2FsbGJhY2tzKSksIG9yaWdpbiwgMCwgZGF0YURpcik7CiB9CiAKKy8vIEZJWE1FOiBS
ZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzOTIzLgogdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcm
IG5hbWUsIGxvbmcgbG9uZyB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2Vi
SURCRGF0YWJhc2VDYWxsYmFja3MqIGRhdGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0
eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikKIHsK
ICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzUHJveHk+IGNhbGxiYWNrc1Byb3h5ID0gSURCQ2FsbGJh
Y2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsKQEAgLTczLDYgKzc0LDE0IEBA
IHZvaWQgV2ViSURCRmFjdG9yeUltcGw6Om9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBsb25n
IGxvbmcgdmVyc2lvbiwgV2ViSURCQ2FsCiAgICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+b3Blbihu
YW1lLCB2ZXJzaW9uLCBjYWxsYmFja3NQcm94eS5nZXQoKSwgZGF0YWJhc2VDYWxsYmFja3NQcm94
eS5nZXQoKSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKIH0KIAordm9pZCBXZWJJREJGYWN0b3J5SW1w
bDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGxvbmcgbG9uZyB2ZXJzaW9uLCBsb25nIGxv
bmcgdHJhbnNhY3Rpb25JZCwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIFdlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzKiBkYXRhYmFzZUNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4m
IG9yaWdpbiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpCit7CisgICAgUmVm
UHRyPElEQkNhbGxiYWNrc1Byb3h5PiBjYWxsYmFja3NQcm94eSA9IElEQkNhbGxiYWNrc1Byb3h5
OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSk7CisgICAgUmVmUHRyPElEQkRhdGFiYXNlQ2Fs
bGJhY2tzUHJveHk+IGRhdGFiYXNlQ2FsbGJhY2tzUHJveHkgPSBJREJEYXRhYmFzZUNhbGxiYWNr
c1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoZGF0YWJhc2VDYWxsYmFja3MpKTsKKyAgICBjYWxsYmFj
a3NQcm94eS0+c2V0RGF0YWJhc2VDYWxsYmFja3MoZGF0YWJhc2VDYWxsYmFja3NQcm94eSk7Cisg
ICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+b3BlbihuYW1lLCB2ZXJzaW9uLCB0cmFuc2FjdGlvbklk
LCBjYWxsYmFja3NQcm94eS5nZXQoKSwgZGF0YWJhc2VDYWxsYmFja3NQcm94eS5nZXQoKSwgb3Jp
Z2luLCAwLCBkYXRhRGlyKTsKK30KKwogdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6ZGVsZXRlRGF0
YWJhc2UoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywg
Y29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJp
bmcmIGRhdGFEaXIpCiB7CiAgICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+ZGVsZXRlRGF0YWJhc2Uo
bmFtZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgb3Jp
Z2luLCAwLCBkYXRhRGlyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkZhY3RvcnlJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJG
YWN0b3J5SW1wbC5oCmluZGV4IDMzZjVhMjFkMmM3NGY1OGRmZjk0ZTFlYjdiOTBlNWFkNDMwZDE2
MjcuLjc0YWYwZGU3MGM1MmMyNGM2NGU3NTdkMGJkNjk3YTQ1OGRiZmJkNTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaApAQCAtNDUsNyArNDUs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViSURCRmFjdG9yeUltcGwoKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNl
Y3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOworICAg
IC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0
cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyosIFdlYklEQkRh
dGFiYXNlQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNv
bnN0IFdlYlN0cmluZyYgZGF0YURpcik7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2Vi
U3RyaW5nJiBuYW1lLCBsb25nIGxvbmcgdmVyc2lvbiwgbG9uZyBsb25nIHRyYW5zYWN0aW9uSWQs
IFdlYklEQkNhbGxiYWNrcyosIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2Vj
dXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgV2ViSURC
Q2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNvbnN0IFdl
YlN0cmluZyYgZGF0YURpcik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKaW5kZXggZWMwNzlmNTBj
ZDNjYmNlOWRmZTIxMjEzOWQ0NjA3ZTE5NDRmM2EyYi4uNGE2MjY2MDkzY2Y5NTYxYTY5YTgwMDUw
NDdlNjc2NjQ1M2YzNWJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcApAQCAtMTA4LDYgKzEwOCw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lv
bikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90
IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVh
bCB2b2lkIG9uRm9yY2VkQ2xvc2UoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25B
Ym9ydChpbnQ2NF90LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSBPVkVSUklERSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0ZShpbnQ2NF90KSBPVkVSUklERSB7IH0KIHByaXZh
dGU6CiAgICAgRmFrZUlEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAK
aW5kZXggMGQyNjIyNDY2NTM4MTRhNDdkYzk4ZmE4YjNjOWZhMGI5YTIxMmJhMy4uMzA3NDQ1ZTQ3
MTQ3M2M0ZjRiYzMyYjQxYzA2ZDg4MzA4MmU1YWIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCkBAIC0xMDgs
NiArMTA4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29u
c3QgU3RyaW5nJiB2ZXJzaW9uKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25WZXJz
aW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKSBPVkVSUklE
RSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgpIE9WRVJSSURFIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBvbkFib3J0KGludDY0X3QsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJv
cj4pIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3QpIE9W
RVJSSURFIHsgfQogcHJpdmF0ZToKICAgICBGYWtlSURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0K
IH07CkBAIC0xNTIsNyArMTU0LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3Qs
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVu
dCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpIHsgcmV0
dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5n
JiBuYW1lLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSB7IH0KKyAgICAvLyBGSVhN
RTogUmVtb3ZlIG9sZCBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90LCBjb25zdCBWZWN0b3I8aW50
NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKSB7IHJldHVybiAwOyB9CisgICAgdm9pZCBjcmVh
dGVUcmFuc2FjdGlvbihpbnQ2NF90LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwg
Y29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkgeyB9CiAKICAgICB2
aXJ0dWFsIHZvaWQgY2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pCiAgICAg
ewpAQCAtMTYwLDYgKzE2NCw5IEBAIHB1YmxpYzoKICAgICAgICAgbV93ZWJEYXRhYmFzZS5jbG9z
ZSgpOwogICAgIH0KIAorICAgIHZpcnR1YWwgdm9pZCBhYm9ydChpbnQ2NF90KSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgY29tbWl0KGludDY0X3QpIHsgfQorCiBwcml2YXRlOgogICAgIE1vY2tJREJE
YXRhYmFzZUJhY2tlbmRQcm94eShXZWJJREJEYXRhYmFzZUltcGwmIHdlYkRhdGFiYXNlKQogICAg
ICAgICA6IG1fd2FzQ2xvc2VDYWxsZWQoZmFsc2UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177523</attachid>
            <date>2012-12-04 12:02:15 -0800</date>
            <delta_ts>2012-12-04 15:28:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103921-20121204115940.patch</filename>
            <type>text/plain</type>
            <size>54849</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjk0OWI1Y2I5MzQwZjk2
ZDk0YzdjNGE3MjQ3ZTkzYjViZDkxNGQzNi4uZGRkMzg2YzM0NGI4MDk4YmVkMjZiY2E3MTVkYzk2
MDVlMDJlZjllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTEyLTAzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFN0
dWIgb3V0IHRyYW5zYWN0aW9uLWJhY2tlbmQgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gcHJlcGFyYXRpb24gZm9yIGEgcmVmYWN0b3Jp
bmcuIExlZ2FjeSBtZXRob2RzIAorICAgICAgICB3aWxsIGJlIHJlbW92ZWQgaW4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIGp1c3QgYWRkaW5nIHVudXNlZCBtZXRob2RzIGZvciByZWZhY3RvcmluZy4KKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ2FsbGJhY2tzOjpvblVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpv
bkFib3J0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJh
c2U6Om9uQ29tcGxldGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
Lmg6CisgICAgICAgIChJREJEYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmg6CisgICAg
ICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZEltcGw6OmNvbW1pdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjphYm9ydCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmg6
CisgICAgICAgIChJREJEYXRhYmFzZUNhbGxiYWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25BYm9ydCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25Db21wbGV0ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6Cisg
ICAgICAgIChJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJG
YWN0b3J5QmFja2VuZEltcGw6Om9wZW4pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnlCYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tl
bmRJbXBsOjpvcGVuKToKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kSW1wbCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAg
ICAgKElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJl
cXVlc3Q6Om9uVXBncmFkZU5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0Lmg6CisgICAgICAgIChJREJPcGVuREJS
ZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaDoKKwogMjAxMi0xMS0yNyAgQWxlYyBG
bGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiByZW1v
dmUgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjp0cmFuc2FjdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IDg0M2UzZjNlY2JiNjkwODg2MjA4N2ExNGM5YjQ4NzI4MjJjNDBj
MDguLjUyOTQ1ODJkZDM5YzY2YzBjNmY5ZTllMmQ1ZDVkOTRmNTNhNjczMGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzYgQEAKKzIwMTItMTItMDMgIEFsZWMgRmxldHQg
IDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogU3R1YiBvdXQg
dHJhbnNhY3Rpb24tYmFja2VuZCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IHNpZ25hdHVyZXMgZm9yIHJlZmFjdG9yaW5nLCB0
byBhbGxvdworICAgICAgICB0cmFuc2FjdGlvbl9pZHMgdG8gbWFrZSBpcyB0aHJvdWdoIHRoZSBv
cGVuL29uVXBncmFkZU5lZWRlZAorICAgICAgICBsb29wLgorCisgICAgICAgICogcHVibGljL1dl
YklEQkNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3M6Om9uVXBn
cmFkZU5lZWRlZCk6CisgICAgICAgICogcHVibGljL1dlYklEQkRhdGFiYXNlLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQkRhdGFiYXNlOjpjcmVhdGVUcmFuc2FjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkRhdGFiYXNlOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRh
dGFiYXNlOjpjb21taXQpOgorICAgICAgICAoV2ViSURCRGF0YWJhc2UpOgorICAgICAgICAqIHB1
YmxpYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VD
YWxsYmFja3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrczo6b25B
Ym9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzOjpvbkNvbXBs
ZXRlKToKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCRmFjdG9yeS5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJJREJGYWN0b3J5OjpvcGVuKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJREJDYWxsYmFja3NQcm94eTo6b25VcGdyYWRlTmVlZGVk
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6
CisgICAgICAgIChJREJDYWxsYmFja3NQcm94eSk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VCYWNrZW5kUHJv
eHk6OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJL
aXQ6OklEQkRhdGFiYXNlQmFja2VuZFByb3h5Ojpjb21taXQpOgorICAgICAgICAoV2ViS2l0OjpJ
REJEYXRhYmFzZUJhY2tlbmRQcm94eTo6YWJvcnQpOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFz
ZUJhY2tlbmRQcm94eS5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kUHJveHkpOgorICAg
ICAgICAqIHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25BYm9ydCk6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvbkNvbXBsZXRl
KToKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oOgorICAgICAgICAo
SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eSk6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNr
ZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJGYWN0b3J5QmFja2VuZFByb3h5Ojpv
cGVuKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNrZW5k
UHJveHkuaDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNy
Yy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJh
Y2tzSW1wbDo6b25VcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
c3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKFdlYklEQkNhbGxiYWNrc0ltcGwp
OgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uQWJvcnQpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
OjpvbkNvbXBsZXRlKToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
Lmg6CisgICAgICAgIChXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNy
Yy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFz
ZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJEYXRhYmFzZUltcGw6OmNvbW1pdCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1w
bC5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURC
RmFjdG9yeUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5SW1wbDo6b3Bl
bik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJJREJGYWN0b3J5SW1wbC5o
OgorICAgICAgICAoV2ViSURCRmFjdG9yeUltcGwpOgorICAgICAgICAqIHRlc3RzL0lEQkFib3J0
T25Db3JydXB0VGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVz
dC5jcHA6CisKIDIwMTItMTEtMjcgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEluZGV4ZWREQjogcmVtb3ZlIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZTo6dHJhbnNhY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDYWxsYmFja3MuaAppbmRleCBiODhiMGNkZTNmNzJhY2RlYzgyNzg5MGU1YzI4OWEwMWI2NmUy
MmMyLi42Y2ZkZjZmMzIyZTNkNzQxNTJmZDBiMjZiZmUyN2MzYWRjNTJjOTg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaApAQCAtNzQsNyAr
NzQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3Rp
bmdWZXJzaW9uKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgLy8gRnJvbSBJREJGYWN0
b3J5Lm9wZW4oKQorICAgIC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgdm9pZCBv
blVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlPikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBvblVwZ3Jh
ZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2U+KSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZT4pIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCA3MzgyM2M1ZmQ5NGEyYWUw
MDgyNmZmM2IzNTBiZDVmNzM2MWQxYTJkLi4wNzRmZWJiNGM1MDQ2NjM0MmZhOTk3Nzg3NTczN2Nj
NzA3NzhkYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2UuY3BwCkBAIC0xMTMsNiArMTEzLDE2IEBAIHZvaWQgSURCRGF0YWJhc2U6OnRyYW5z
YWN0aW9uRmluaXNoZWQoSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogICAgICAgICBjbG9z
ZUNvbm5lY3Rpb24oKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZTo6b25BYm9ydChpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpCit7CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgSURCRGF0YWJhc2U6Om9uQ29tcGxldGUo
aW50NjRfdCB0cmFuc2FjdGlvbklkKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQor
CiBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IElEQkRhdGFiYXNlOjpvYmplY3RTdG9yZU5hbWVz
KCkgY29uc3QKIHsKICAgICBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gb2JqZWN0U3RvcmVOYW1lcyA9
IERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmgKaW5kZXggYThhYjk0ZDk0OTNiZGU4M2JiYTc5ODA0YjQ1MDBh
NTgwOGI0NWRiOS4uN2I3NjI0MjE0MDc0ZTFmOTY3MDMwMWRjMGJkMjhkMzQ2YzRjZjA2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCkBAIC03
Nyw2ICs3Nyw4IEBAIHB1YmxpYzoKICAgICAvLyBJREJEYXRhYmFzZUNhbGxiYWNrcwogICAgIHZp
cnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5l
d1ZlcnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5n
JiByZXF1ZXN0ZWRWZXJzaW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydChpbnQ2NF90LCBQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0
ZShpbnQ2NF90KTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAgIHZpcnR1YWwgdm9pZCBz
dG9wKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4IDQ2Mzg4Nzc2NGI1N2Rl
MzZkNWQ5ZDE3YmRjM2RmOTQ4ZjRhYzU5NWQuLjhlOTU3MjI5YzZlYTI2NGJjODFiNjIxODc2YzRi
MjU3NWQ0ZGY3NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC02MSwxMiArNjEsMTIgQEAg
cHJpdmF0ZToKIAogY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6VmVyc2lvbkNoYW5nZU9w
ZXJhdGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6VGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4g
ZGF0YWJhc2UsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxi
YWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3Ms
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gdHJhbnNhY3Rpb24pCisgICAg
c3RhdGljIFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gY3JlYXRlKFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4gZGF0YWJhc2UsIGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcywg
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFuc2FjdGlvbikKICAgICB7
Ci0gICAgICAgIHJldHVybiBjcmVhdGVDYWxsYmFja1Rhc2soJlZlcnNpb25DaGFuZ2VPcGVyYXRp
b246OnBlcmZvcm0sIGRhdGFiYXNlLCB2ZXJzaW9uLCBjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJh
Y2tzLCB0cmFuc2FjdGlvbik7CisgICAgICAgIHJldHVybiBjcmVhdGVDYWxsYmFja1Rhc2soJlZl
cnNpb25DaGFuZ2VPcGVyYXRpb246OnBlcmZvcm0sIGRhdGFiYXNlLCB0cmFuc2FjdGlvbklkLCB2
ZXJzaW9uLCBjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCB0cmFuc2FjdGlvbik7CiAgICAg
fQogcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBwZXJmb3JtKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+LCBpbnQ2NF90IHZlcnNpb24s
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNr
cz4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOworICAgIHN0YXRpYyB2
b2lkIHBlcmZvcm0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VCYWNrZW5kSW1wbD4sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCB2ZXJzaW9uLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+KTsKIH07CiAKIGNsYXNzIElE
QkRhdGFiYXNlQmFja2VuZEltcGw6OkNyZWF0ZU9iamVjdFN0b3JlQWJvcnRPcGVyYXRpb24gewpA
QCAtMjY4LDcgKzI2OCw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6RGVsZXRlT2Jq
ZWN0U3RvcmVPcGVyYXRpb246OnBlcmZvcm0oU2NyaXB0RXhlY3V0aW9uCiAgICAgZGF0YWJhc2Ut
Pm1fYmFja2luZ1N0b3JlLT5kZWxldGVPYmplY3RTdG9yZSh0cmFuc2FjdGlvbi0+YmFja2luZ1N0
b3JlVHJhbnNhY3Rpb24oKSwgZGF0YWJhc2UtPmlkKCksIG9iamVjdFN0b3JlLT5pZCgpKTsKIH0K
IAotdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpWZXJzaW9uQ2hhbmdlT3BlcmF0aW9uOjpw
ZXJmb3JtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFj
a2VuZEltcGw+IGRhdGFiYXNlLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFi
YXNlQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5z
YWN0aW9uKQordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpWZXJzaW9uQ2hhbmdlT3BlcmF0
aW9uOjpwZXJmb3JtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQmFja2VuZEltcGw+IGRhdGFiYXNlLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qg
dmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gdHJhbnNhY3Rpb24pCiB7CiAgICAgSURCX1RSQUNFKCJW
ZXJzaW9uQ2hhbmdlT3BlcmF0aW9uIik7CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzKHBycENhbGxiYWNrcyk7CkBAIC0yODQsNiArMjg0LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpWZXJzaW9uQ2hhbmdlT3BlcmF0aW9uOjpwZXJmb3JtKFNjcmlwdEV4ZWN1dGlv
bkNvbnQKICAgICB9CiAgICAgQVNTRVJUKCFkYXRhYmFzZS0+bV9wZW5kaW5nU2Vjb25kSGFsZk9w
ZW5XaXRoVmVyc2lvbik7CiAgICAgZGF0YWJhc2UtPm1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0
aFZlcnNpb24gPSBQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbDo6Y3JlYXRlKGNhbGxiYWNrcywg
ZGF0YWJhc2VDYWxsYmFja3MsIHZlcnNpb24pOworICAgIC8vIEZJWE1FOiBwYXNzIHRoZSB0cmFu
c2FjdGlvbklkIHRocm91Z2ggaGVyZS4KICAgICBjYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChv
bGRWZXJzaW9uLCB0cmFuc2FjdGlvbiwgZGF0YWJhc2UpOwogfQogCkBAIC0zODAsNiArMzgxLDcg
QEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKCkKICAg
ICB9CiB9CiAKKy8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZVRyYW5zYWN0
aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RT
dG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKIHsKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW1wbD4gdHJhbnNhY3Rpb24gPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpj
cmVhdGUodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZHMsIG1vZGUsIHRoaXMpOwpAQCAtMzg3
LDYgKzM4OSwxMSBAQCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4g
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlVHJhbnNhYwogICAgIHJldHVybiB0cmFuc2Fj
dGlvbi5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRl
VHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNl
Q2FsbGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJ
ZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9
CisKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkNvbm5lY3Rpb24oUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNr
cz4gZGF0YWJhc2VDYWxsYmFja3MpCiB7CiAgICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlLmdldCgp
KTsKQEAgLTQzOSw3ICs0NDYsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnJ1bklu
dFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihpbnQ2NF90IHJlcXVlc3RlZFZlcgogICAgIFJlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uSW50ZXJmYWNlID0g
Y3JlYXRlVHJhbnNhY3Rpb24oMCwgb2JqZWN0U3RvcmVJZHMsIElEQlRyYW5zYWN0aW9uOjpWRVJT
SU9OX0NIQU5HRSk7CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5z
YWN0aW9uID0gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6ZnJvbSh0cmFuc2FjdGlvbkludGVy
ZmFjZS5nZXQoKSk7CiAKLSAgICBpZiAoIXRyYW5zYWN0aW9uLT5zY2hlZHVsZVRhc2soVmVyc2lv
bkNoYW5nZU9wZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIHJlcXVlc3RlZFZlcnNpb24sIGNhbGxiYWNr
cywgZGF0YWJhc2VDYWxsYmFja3MsIHRyYW5zYWN0aW9uKSwgVmVyc2lvbkNoYW5nZUFib3J0T3Bl
cmF0aW9uOjpjcmVhdGUodGhpcywgbV9tZXRhZGF0YS52ZXJzaW9uLCBtX21ldGFkYXRhLmludFZl
cnNpb24pKSkgeworICAgIGlmICghdHJhbnNhY3Rpb24tPnNjaGVkdWxlVGFzayhWZXJzaW9uQ2hh
bmdlT3BlcmF0aW9uOjpjcmVhdGUodGhpcywgMCwgcmVxdWVzdGVkVmVyc2lvbiwgY2FsbGJhY2tz
LCBkYXRhYmFzZUNhbGxiYWNrcywgdHJhbnNhY3Rpb24pLCBWZXJzaW9uQ2hhbmdlQWJvcnRPcGVy
YXRpb246OmNyZWF0ZSh0aGlzLCBtX21ldGFkYXRhLnZlcnNpb24sIG1fbWV0YWRhdGEuaW50VmVy
c2lvbikpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KICAgICBBU1NF
UlQoIW1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5o
CmluZGV4IGRmMGJhMmRhYjQzNDhhZGM3Njc4ZDRkNzAzYmFiMDkwZThhNmI2YzIuLmQ1MWI4MjY3
MGVkMWI0NGYyZTZiMWJlNGY3YzI1NzRmZDU5MmNhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKQEAg
LTYzLDkgKzYzLDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIElEQkRhdGFiYXNlTWV0YWRhdGEg
bWV0YWRhdGEoKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVC
YWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IGlkLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBp
biBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRy
YW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBv
YmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSk7CisgICAgdmlydHVhbCB2b2lkIGNy
ZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVu
c2lnbmVkIHNob3J0IG1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRyPElE
QkRhdGFiYXNlQ2FsbGJhY2tzPik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0KGludDY0X3Qp
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoaW50NjRf
dCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorCiAgICAgUGFzc1JlZlB0cjxJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZShpbnQ2NF90IGlkKTsKICAgICBJREJUcmFuc2Fj
dGlvbkNvb3JkaW5hdG9yKiB0cmFuc2FjdGlvbkNvb3JkaW5hdG9yKCkgY29uc3QgeyByZXR1cm4g
bV90cmFuc2FjdGlvbkNvb3JkaW5hdG9yLmdldCgpOyB9CiAgICAgdm9pZCB0cmFuc2FjdGlvblN0
YXJ0ZWQoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZS5oCmluZGV4IDg1MDA2MmMyOTE4NzMyYmEzNGE5MjdjN2IwN2U5OTVlYTkw
MzY0ZGYuLmY5YWVkZTZhYTQzODg0Y2M1MmEwMDViZWFiNzE5NGY2YzFkNTIxYTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZS5oCkBAIC01NSw4ICs1NSwxNCBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVP
YmplY3RTdG9yZShpbnQ2NF90LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgm
LCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4
Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGlu
dDY0X3QsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9
IDA7CisgICAgLy8gRklYTUU6IFJlbW92ZSBvbGQgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0
cmFuc2FjdGlvbklkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNp
Z25lZCBzaG9ydCBtb2RlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRyYW5zYWN0aW9u
KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4s
IGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1v
ZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4pID0gMDsKKworICAgIC8vIFRyYW5zYWN0aW9uLXNwZWNpZmljIG9wZXJhdGlvbnMu
CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdChpbnQ2NF90KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGFib3J0KGludDY0X3QpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJh
Y2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxi
YWNrcy5oCmluZGV4IDQ2OTNlNjM3YWVkYWFjYmM0YzE5ZmEwZTQ4NTQ5NDJlZDEzMjVjM2IuLjIw
YTU1YmVhOGQyYTY3OTU2OTY0YzIyNDRmYjZjNGE2YWFhMGIzNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaApA
QCAtNDMsNiArNDMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uRm9yY2VkQ2xvc2Uo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHZl
cnNpb24pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xk
VmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgb25B
Ym9ydChpbnQ2NF90LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIG9uQ29tcGxldGUoaW50NjRfdCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggOTcwZDNhMTY3Y2FmOTk2Yzdm
MDMxZmY1NGE0ZjE1OTI0OWYxYWEwYi4uNDExYWYzYzY4MDc1ZTg4YzA0NGFkMTMxNzZlYjM1YTE5
ZmQyNGVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCkBAIC03MSw2ICs3MSwxOCBAQCB2
b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6Y29ubmVjdChJREJEYXRhYmFzZSogZGF0YWJh
c2UpCiAgICAgbV9kYXRhYmFzZSA9IGRhdGFiYXNlOwogfQogCit2b2lkIElEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbDo6b25BYm9ydChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VFcnJvcj4gZXJyb3IpCit7CisgICAgaWYgKG1fZGF0YWJhc2UpCisgICAgICAgIG1f
ZGF0YWJhc2UtPm9uQWJvcnQodHJhbnNhY3Rpb25JZCwgZXJyb3IpOworfQorCit2b2lkIElEQkRh
dGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25Db21wbGV0ZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQpCit7
CisgICAgaWYgKG1fZGF0YWJhc2UpCisgICAgICAgIG1fZGF0YWJhc2UtPm9uQ29tcGxldGUodHJh
bnNhY3Rpb25JZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxi
YWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbC5oCmluZGV4IGJiNGExYWU3NGU4MjI3MzhiMzNkZDZjMDgwOWU3MmU2MTBm
ZDNjYmMuLjk1MTk2YWVkMmFjY2NjNjE2ZWYzOGM3MjM4Y2VkMTYwODYzMjJmZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tz
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbC5oCkBAIC00Niw2ICs0Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CiAgICAgdmlydHVhbCB2
b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lv
bik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydChpbnQ2NF90LCBQYXNzUmVmUHRyPElEQkRh
dGFiYXNlRXJyb3I+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0ZShpbnQ2NF90KTsKKwog
ICAgIHZvaWQgY29ubmVjdChJREJEYXRhYmFzZSopOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1w
bC5jcHAKaW5kZXggMmQ1ODQyY2QxNTA0YzFmZGNhMTM1OGUxZjgzZDhkYWFiODQ5ZDM1OC4uMjM0
NzBjOGRhNzc2ZDI0YTY5Y2FhNTM4N2RkZDU3MDhmODA1YzZmNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwu
Y3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU+IElEQkZh
Y3RvcnlCYWNrZW5kSW1wbDo6b3BlbkJhY2tpbmdTdG9yZShQYXNzUmVmUHRyPFMKICAgICByZXR1
cm4gMDsKIH0KIAotdm9pZCBJREJGYWN0b3J5QmFja2VuZEltcGw6Om9wZW4oY29uc3QgU3RyaW5n
JiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFj
a3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBQ
YXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBwcnBTZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcmVjdG9yeSkKK3ZvaWQgSURCRmFjdG9y
eUJhY2tlbmRJbXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBp
bnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3Ms
IFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBQYXNz
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBwcnBTZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcmVjdG9yeSkKIHsKICAgICBSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gcHJwU2VjdXJpdHlPcmlnaW47CiAgICAgY29u
c3QgU3RyaW5nIHVuaXF1ZUlkZW50aWZpZXIgPSBjb21wdXRlVW5pcXVlSWRlbnRpZmllcihuYW1l
LCBzZWN1cml0eU9yaWdpbi5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCmluZGV4IDdhMDIwZmI2MGQy
YWE5NjNjNjQyOWM0NWQ5NjAzN2Y2ZDIyMWJlZDkuLmI0YzBmODlkMTBjMTRhMWZjNmVhODM3Nzhi
ZjkwNTMzZDc2ZGE0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCkBAIC0yOCw2ICsyOCw4IEBACiAjaWZu
ZGVmIElEQkZhY3RvcnlCYWNrZW5kSW1wbF9oCiAjZGVmaW5lIElEQkZhY3RvcnlCYWNrZW5kSW1w
bF9oCiAKKyNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZUNh
bGxiYWNrcy5oIgogI2luY2x1ZGUgIklEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTYs
NyArNTgsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJREJCYWNraW5nU3Rv
cmUoY29uc3QgU3RyaW5nJiBmaWxlSWRlbnRpZmllcik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGly
KTsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVy
c2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOworICAgIC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1l
dGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgor
ICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9u
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdp
bj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgZGF0YURpcikKKyAgICB7CisgICAgICAgIHJldHVybiBvcGVuKG5hbWUsIHZlcnNp
b24sIDAsIGNhbGxiYWNrcywgZGF0YWJhc2VDYWxsYmFja3MsIHNlY3VyaXR5T3JpZ2luLCBjb250
ZXh0LCBkYXRhRGlyKTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5n
JiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIGRhdGFEaXIpOworCiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0
cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7
CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCmluZGV4IGJhYjIxOWY1ZjRl
YzU0ZGYyM2FjN2RmNGY0NTRiNzZmYWViNzJmMmUuLjg0ZWQ5OGMyMjhmNjZkYWM3MWU4NmQ3ZjI1
YTkzNDg1YjE3MDRiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTQsNyArNTQs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UoKSB7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIG9s
ZCBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzky
My4KICAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVy
c2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihj
b25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklk
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFj
a3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRh
YmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIGRhdGFEaXIpID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKaW5kZXggZjJlNzZkNzE1MDU2MTE5ZTQ4
N2Q1NzY4ODBhNGQwZjhkN2ZmZGYyZC4uMGU3ZWI1M2ZhZTk5NjdhNjY1ZDAzMWJkN2M4MTAwNGI5
ZjhkYjJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T3BlbkRCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT3BlbkRCUmVxdWVzdC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBJREJPcGVuREJSZXF1
ZXN0OjpvbkJsb2NrZWQoaW50NjRfdCBvbGRWZXJzaW9uKQogICAgIGVucXVldWVFdmVudChJREJV
cGdyYWRlTmVlZGVkRXZlbnQ6OmNyZWF0ZShvbGRWZXJzaW9uLCBtX3ZlcnNpb24sIGV2ZW50TmFt
ZXMoKS5ibG9ja2VkRXZlbnQpKTsKIH0KIAotdm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3Jh
ZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4gcHJwVHJhbnNhY3Rpb25CYWNrZW5kLCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZT4gcHJwRGF0YWJhc2VCYWNrZW5kKQordm9pZCBJREJPcGVuREJS
ZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IHRyYW5z
YWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBwcnBU
cmFuc2FjdGlvbkJhY2tlbmQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
PiBwcnBEYXRhYmFzZUJhY2tlbmQpCiB7CiAgICAgSURCX1RSQUNFKCJJREJPcGVuREJSZXF1ZXN0
OjpvblVwZ3JhZGVOZWVkZWQoKSIpOwogICAgIGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpIHsKQEAgLTg5LDcgKzg5LDYgQEAgdm9pZCBJREJPcGVuREJS
ZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElE
QlRyYW5zYWMKICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzLT5jb25uZWN0KGlkYkRhdGFiYXNlLmdl
dCgpKTsKICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzID0gMDsKIAotICAgIGludDY0X3QgdHJhbnNh
Y3Rpb25JZCA9IElEQkRhdGFiYXNlOjpuZXh0VHJhbnNhY3Rpb25JZCgpOwogICAgIFJlZlB0cjxJ
REJUcmFuc2FjdGlvbj4gZnJvbnRlbmQgPSBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgdHJhbnNhY3Rpb25JZCwgdHJhbnNhY3Rpb25CYWNrZW5kLCBWZWN0
b3I8U3RyaW5nPigpLCBJREJUcmFuc2FjdGlvbjo6VkVSU0lPTl9DSEFOR0UsIGlkYkRhdGFiYXNl
LmdldCgpLCB0aGlzKTsKICAgICB0cmFuc2FjdGlvbkJhY2tlbmQtPnNldENhbGxiYWNrcyhmcm9u
dGVuZC5nZXQoKSk7CiAgICAgbV90cmFuc2FjdGlvbiA9IGZyb250ZW5kOwpAQCAtMTA0LDYgKzEw
MywxMiBAQCB2b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9s
ZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNhYwogICAgIGVucXVldWVFdmVudChJREJVcGdy
YWRlTmVlZGVkRXZlbnQ6OmNyZWF0ZShvbGRWZXJzaW9uLCBtX3ZlcnNpb24sIGV2ZW50TmFtZXMo
KS51cGdyYWRlbmVlZGVkRXZlbnQpKTsKIH0KIAorLy8gRklYTUU6IFJlbW92ZSBvbGQgbWV0aG9k
IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCit2b2lk
IElEQk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBwcnBUcmFuc2FjdGlvbkJh
Y2tlbmQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBwcnBEYXRhYmFz
ZUJhY2tlbmQpCit7CisgICAgb25VcGdyYWRlTmVlZGVkKG9sZFZlcnNpb24sIDAsIHBycFRyYW5z
YWN0aW9uQmFja2VuZCwgcHJwRGF0YWJhc2VCYWNrZW5kKTsKK30KKwogdm9pZCBJREJPcGVuREJS
ZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+
IGJhY2tlbmQpCiB7CiAgICAgSURCX1RSQUNFKCJJREJPcGVuREJSZXF1ZXN0OjpvblN1Y2Nlc3Mo
KSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3Bl
bkRCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRC
UmVxdWVzdC5oCmluZGV4IGE1NTE0MjY0ZTM0YjIwZTY4ZGY0Yjc2YjY4ZWFkMWNkODBmOGYwOTMu
LjJhYzlkNWNlZDhhMTdjMTdhZTU5MGFkNDRiY2RmNTZkMmVmNmVmZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgKQEAgLTQy
LDcgKzQyLDkgQEAgcHVibGljOgogICAgIHVzaW5nIElEQlJlcXVlc3Q6Om9uU3VjY2VzczsKIAog
ICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoaW50NjRfdCBleGlzdGluZ1ZlcnNpb24pIE9WRVJS
SURFOworICAgIC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgdm9pZCBvblVwZ3Jh
ZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZl
cnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4p
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2U+KSBPVkVSUklERTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCmluZGV4IGNjNzRkMTE1NjgxN2JhMzI4YTFj
MWQ3OTZjNjEyYmIxZDUyYWI4ODUuLjBmNTg2YmJiNDE5ZjI4YmM0ZGU1YmM2MWVmZDU3YmM0OWEx
YWFjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCkBAIC00MCw3ICs0MCw2
IEBAIGNsYXNzIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzOwogCiB0eXBlZGVmIGludCBFeGNlcHRp
b25Db2RlOwogCi0vLyBUaGlzIGNsYXNzIGlzIHNoYXJlZCBieSBJREJUcmFuc2FjdGlvbiAoYXN5
bmMpIGFuZCBJREJUcmFuc2FjdGlvblN5bmMgKHN5bmMpLgogLy8gVGhpcyBpcyBpbXBsZW1lbnRl
ZCBieSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsIGFuZCBvcHRpb25hbGx5IG90aGVycyAoaW4g
b3JkZXIgdG8gcHJveHkKIC8vIGNhbGxzIGFjcm9zcyBwcm9jZXNzIGJhcnJpZXJzKS4gQWxsIGNh
bGxzIHRvIHRoZXNlIGNsYXNzZXMgc2hvdWxkIGJlIG5vbi1ibG9ja2luZyBhbmQKIC8vIHRyaWdn
ZXIgd29yayBvbiBhIGJhY2tncm91bmQgdGhyZWFkIGlmIG5lY2Vzc2FyeS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29v
cmRpbmF0b3IuaAppbmRleCA4Mjk5ODUzMjIwY2NhYTY0NTRjZjY0MmU4MDU5ODQwODI2MzM0YmYz
Li42MDkwNmZlMzVmNGE1N2Q2YWM0ZjBhNzEzNzM0NDcxYTAwYzg2MTcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25D
b29yZGluYXRvci5oCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKIAotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJREJDYWxsYmFja3MuaAppbmRleCAwOTg2MWYxMzMwMGY2YjE1ZjNjMGJhY2JhMmMxMjlmYjdk
MGI3N2VkLi4xMWMyZjRhN2M2N2I3MTQzNzA1YmE1OTQzZDEwM2MwYmIzNWYwOTgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaApAQCAtNjEs
NyArNjEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChsb25n
IGxvbmcgb2xkVmVyc2lvbikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFdlYlZlY3RvcjxXZWJJREJL
ZXk+JiBrZXlzLCBjb25zdCBXZWJWZWN0b3I8V2ViSURCS2V5PiYgcHJpbWFyeUtleXMsIGNvbnN0
IFdlYlZlY3RvcjxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiB2YWx1ZXMpIHsgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgLy8gRklYTUU6IFJlbW92ZSBvbGQgbWV0aG9kIGlu
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmly
dHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChsb25nIGxvbmcgb2xkVmVyc2lvbiwgV2ViSURCVHJh
bnNhY3Rpb24qLCBXZWJJREJEYXRhYmFzZSopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChsb25nIGxvbmcgb2xkVmVyc2lv
biwgbG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIFdlYklEQlRyYW5zYWN0aW9uKiwgV2ViSURCRGF0
YWJhc2UqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0
YWJhc2UuaAppbmRleCA5NWJhZjY2YjY1MThjOThhMGZhNTc4YmIyNjRmM2ZjMTllY2Q1ZGY0Li5i
OTAwODc5YzJjMTRmYzU0NzE1ZDM3ZmJjNjQyMWU1NmVlNjZjNGZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKQEAgLTU2LDEwICs1NiwxNSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgZGVs
ZXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGNvbnN0IFdlYklEQlRyYW5z
YWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpIHsgV0VCS0lUX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgLy8gRklYTUU6IFJlbW92ZSBvbGQgbWV0aG9kIGluIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVh
bCBXZWJJREJUcmFuc2FjdGlvbiogY3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBjb25z
dCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpIHsgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVU
cmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKiBjYWxsYmFj
a3MsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkgeyBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSB7
IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBmb3JjZUNs
b3NlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAorICAgIHZpcnR1YWwgdm9p
ZCBhYm9ydChsb25nIGxvbmcpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAg
dmlydHVhbCB2b2lkIGNvbW1pdChsb25nIGxvbmcpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9CisKIHByb3RlY3RlZDoKICAgICBXZWJJREJEYXRhYmFzZSgpIHsgfQogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUNhbGxi
YWNrcy5oCmluZGV4IDEyZGE3ZTBiNDc2YjExNDVkZDY5MzE0MGUzMWRhOGFjNWUxODk3NTEuLmI0
NjI2NjFkZWYxMTViOGVkYjU2YzEzM2JhYWFlNzQwNGY0NDYwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaApA
QCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc19oCiAjZGVm
aW5lIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzX2gKIAorI2luY2x1ZGUgIldlYklEQkRhdGFiYXNl
RXJyb3IuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKICNpbmNsdWRlICJwbGF0
Zm9ybS9XZWJTdHJpbmcuaCIKIApAQCAtMzgsNiArMzksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIG9uRm9yY2VkQ2xvc2UoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UobG9uZyBsb25nIG9sZFZlcnNpb24sIGxv
bmcgbG9uZyBuZXdWZXJzaW9uKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAg
IHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiByZXF1ZXN0ZWRW
ZXJzaW9uKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorCisgICAgdmlydHVhbCB2
b2lkIG9uQWJvcnQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGNvbnN0IFdlYklEQkRhdGFiYXNl
RXJyb3ImKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBvbkNvbXBsZXRlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkKSB7IFdFQktJVF9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJGYWN0b3J5LmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJGYWN0b3J5LmgKaW5kZXggMTJlY2YwN2M3Mjc3MjA1
YmJiNmQ2OTdhOGI4Y2IyMzMxY2UxMzVhYi4uZjg5YTdkMjM3YmEwNjBiZjNmZGQwNWE1N2UzMTZj
YzM0ZWI5YWZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SURCRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkZh
Y3RvcnkuaApAQCAtNTYsNyArNTYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldERh
dGFiYXNlTmFtZXMoV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5
T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGly
KSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCiAgICAgLy8gVGhlIFdlYktpdCBp
bXBsZW1lbnRhdGlvbiBvZiBvcGVuIGlnbm9yZXMgdGhlIFdlYkZyYW1lKiBwYXJhbWV0ZXIuCisg
ICAgLy8gRklYTUU6IFJlbW92ZSBvbGQgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2Vi
U3RyaW5nJiBuYW1lLCBsb25nIGxvbmcgdmVyc2lvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFj
a3MsIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKiBkYXRhYmFzZUNhbGxiYWNrcywgY29uc3QgV2Vi
U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJTdHJpbmcm
IGRhdGFEaXIpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2
b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBsb25nIGxvbmcgdmVyc2lvbiwgbG9uZyBs
b25nIHRyYW5zYWN0aW9uSWQsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBXZWJJREJEYXRh
YmFzZUNhbGxiYWNrcyogZGF0YWJhc2VDYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2lu
JiBvcmlnaW4sIFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdF
QktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURh
dGFiYXNlKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2Vi
U2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikgeyBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggODM3Y2MzMmE2YjAwMDBkYWY5
NDdiMWRlNzUxZTU2NzYwODI4NmRlMS4uYzdmMzg2ODBmNWRmMzY0NDg3ZTEwNTY2YTE1ZjAyZGFm
MzBmYjg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJh
Y2tzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNr
c1Byb3h5LmNwcApAQCAtMTQ0LDEyICsxNDQsMTkgQEAgdm9pZCBJREJDYWxsYmFja3NQcm94eTo6
b25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKQogICAgIG1fY2FsbGJhY2tzLT5vbkJs
b2NrZWQoZXhpc3RpbmdWZXJzaW9uKTsKIH0KIAorLy8gRklYTUU6IFJlbW92ZSBvbGQgbWV0aG9k
IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiB2b2lk
IElEQkNhbGxiYWNrc1Byb3h5OjpvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQ
YXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24sIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBkYXRhYmFzZSkKIHsKICAgICBB
U1NFUlQobV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5l
ZWRlZChvbGRWZXJzaW9uLCBuZXcgV2ViSURCVHJhbnNhY3Rpb25JbXBsKHRyYW5zYWN0aW9uKSwg
bmV3IFdlYklEQkRhdGFiYXNlSW1wbChkYXRhYmFzZSwgbV9kYXRhYmFzZUNhbGxiYWNrcykpOwog
fQogCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRW
ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2U+IGRhdGFiYXNlKQoreworICAgIEFTU0VSVChtX2RhdGFiYXNlQ2FsbGJhY2tz
KTsKKyAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNpb24sIHRyYW5zYWN0
aW9uSWQsIG5ldyBXZWJJREJUcmFuc2FjdGlvbkltcGwodHJhbnNhY3Rpb24pLCBuZXcgV2ViSURC
RGF0YWJhc2VJbXBsKGRhdGFiYXNlLCBtX2RhdGFiYXNlQ2FsbGJhY2tzKSk7Cit9CisKIHZvaWQg
SURCQ2FsbGJhY2tzUHJveHk6OnNldERhdGFiYXNlQ2FsbGJhY2tzKFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VDYWxsYmFja3NQcm94eT4gZGF0YWJhc2VDYWxsYmFja3MpCiB7CiAgICAgQVNTRVJUKCFt
X2RhdGFiYXNlQ2FsbGJhY2tzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkNhbGxiYWNrc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJD
YWxsYmFja3NQcm94eS5oCmluZGV4IDY1ZjNiNzQwYTgyZWU4YWUyZDgyYjAyNTkyM2JlMGU2NGUw
YTQxNWEuLjYxZjExOWZkODZiZDkxZDU2MTc0YzIwYmM2NjI2NDA3MmI0MjAyOWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaApAQCAtNTksNyAr
NTksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChj
b25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OklEQktleT4gPiYga2V5cywgY29uc3QgVmVjdG9y
PFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBjb25zdCBWZWN0b3I8UmVm
UHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzKTsKICAgICB2aXJ0
dWFsIHZvaWQgb25CbG9ja2VkKCk7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChpbnQ2NF90
IGV4aXN0aW5nVmVyc2lvbik7CisgICAgLy8gRklYTUU6IFJlbW92ZSBvbGQgbWV0aG9kIGluIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVh
bCB2b2lkIG9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25VcGdy
YWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPik7CiAKICAgICB2b2lkIHNl
dERhdGFiYXNlQ2FsbGJhY2tzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eT4p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJh
Y2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJh
Y2tlbmRQcm94eS5jcHAKaW5kZXggZTljODBkMGNmNjI5ZWMyNDc3YWRhMTNiODhmNDQ3ZmE5NTky
ZGE0OC4uYTBkYzI0ZTdiNjRkNGY5NTQxY2M0ZDczMDk5M2NhODU5YTJhZjViMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5
LmNwcApAQCAtOTQsNiArOTQsMjIgQEAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGVUcmFuc2EKICAgICByZXR1
cm4gSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNyZWF0ZSh0cmFuc2FjdGlvbi5yZWxlYXNl
KCkpOwogfQogCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGVUcmFuc2FjdGlv
bihpbnQ2NF90IGlkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBjYWxsYmFja3Ms
IGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1v
ZGUpCit7CisgICAgbV93ZWJJREJEYXRhYmFzZS0+Y3JlYXRlVHJhbnNhY3Rpb24oaWQsIG5ldyBX
ZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgb2JqZWN0U3RvcmVJZHMsIG1v
ZGUpOworfQorCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5Ojpjb21taXQoaW50NjRfdCB0
cmFuc2FjdGlvbklkKQoreworICAgIG1fd2ViSURCRGF0YWJhc2UtPmNvbW1pdCh0cmFuc2FjdGlv
bklkKTsKK30KKwordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6YWJvcnQoaW50NjRfdCB0
cmFuc2FjdGlvbklkKQoreworICAgIG1fd2ViSURCRGF0YWJhc2UtPmFib3J0KHRyYW5zYWN0aW9u
SWQpOworfQorCisKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNsb3NlKFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KQogewogICAgIG1fd2ViSURCRGF0YWJhc2UtPmNsb3Nl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJh
Y2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNr
ZW5kUHJveHkuaAppbmRleCAwM2QwNWQ5MmIxNmU0OGMyOWU5MzM3YmFmZTNmOTAwMzYyYmQ5NjA5
Li4yMzc3NjMwNTZmMGJiYjdlZjczODQxYTgxMjBjM2ExYTgzOGMzZDIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgKQEAg
LTQ2LDkgKzQ2LDE0IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZU9iamVjdFN0b3JlKGludDY0
X3QsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgV2ViQ29yZTo6SURCS2V5UGF0aCYsIGJvb2wg
YXV0b0luY3JlbWVudCwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RT
dG9yZShpbnQ2NF90LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CisgICAgLy8gRklYTUU6IFJlbW92ZSBvbGQgbWV0aG9k
IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5z
aWduZWQgc2hvcnQgbW9kZSk7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRyYW5zYWN0aW9uKGlu
dDY0X3QsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBW
ZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQg
Y2xvc2UoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwogCisgICAg
dmlydHVhbCB2b2lkIGNvbW1pdChpbnQ2NF90KTsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoaW50
NjRfdCk7CisKIHByaXZhdGU6CiAgICAgSURCRGF0YWJhc2VCYWNrZW5kUHJveHkoUGFzc093blB0
cjxXZWJJREJEYXRhYmFzZT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDMxODk3ZGE5ZThjZTkx
ODg5ZDUxNzI1Y2U5OTllODI3MzhkMTU1NGUuLjYzNjU5MjYyY2NlOTgwMTE5NTlmYjQ2ZjkxYTg5
ZWY4YTk1ZDg2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwCkBAIC02Myw2ICs2MywxNiBAQCB2b2lkIElE
QkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6Om9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHJl
cXVlc3RlZFZlcnNpb24pCiAgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lvbkNoYW5nZShyZXF1ZXN0
ZWRWZXJzaW9uKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvbkFib3J0
KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUVy
cm9yPiBlcnJvcikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25BYm9ydCh0cmFuc2FjdGlvbklkLCBl
cnJvcik7Cit9CisKK3ZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25Db21wbGV0ZShp
bnQ2NF90IHRyYW5zYWN0aW9uSWQpCit7CisgICAgbV9jYWxsYmFja3MtPm9uQ29tcGxldGUodHJh
bnNhY3Rpb25JZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgKaW5kZXggY2IxZGRiMzQ2NmI5ZmJiMWUz
MzFkZmJjOTJkNmI0OTY0ZTI1MGRjZS4uOGU5NjlmYjg0NTJhYzI3YzU5YWIwNzBjMDIxYzBkNGFi
MTQ2MzgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJh
c2VDYWxsYmFja3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzUHJveHkuaApAQCAtNDQsNiArNDQsOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHJlcXVlc3RlZFZlcnNpb24p
OwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBp
bnQ2NF90IG5ld1ZlcnNpb24pOwogCisgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoaW50NjRfdCwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUVycm9yPik7CisgICAgdmlydHVhbCB2b2lk
IG9uQ29tcGxldGUoaW50NjRfdCk7CisKIHByaXZhdGU6CiAgICAgSURCRGF0YWJhc2VDYWxsYmFj
a3NQcm94eShQYXNzT3duUHRyPFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzPik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAK
aW5kZXggZmZmNTQ5NjVlNzM5MGRhYTlhYzlkYWJlNTQ3MTI4NzJhMzIzYWUzZi4uODEzY2VjOWE5
NWFjNWNhYjQyZDgxOTQ2OWRlZGU1MDU1M2E3MWFlZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAKQEAgLTIwNSw2ICsy
MDUsNyBAQCB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6OmdldERhdGFiYXNlTmFtZXMoUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYQogfQogCiAKKy8vIEZJWE1FOiBSZW1vdmUg
b2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
OTIzLgogdm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFt
ZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tz
LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBwcnBEYXRhYmFzZUNhbGxiYWNrcywg
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YURpcikKIHsKICAgICBSZWZQdHI8
SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MocHJwQ2FsbGJhY2tzKTsKQEAgLTIxNyw2ICsyMTgsMTgg
QEAgdm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwg
aW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHQKICAgICBtX3dlYklEQkZhY3RvcnktPm9wZW4obmFt
ZSwgdmVyc2lvbiwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgbmV3IFdlYklE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbChkYXRhYmFzZUNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJh
bWUsIGRhdGFEaXIpOwogfQogCit2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29u
c3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUNhbGxiYWNrcz4gcHJwRGF0YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBTdHJpbmcmIGRhdGFEaXIpCit7CisgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzKHBycENhbGxiYWNrcyk7CisgICAgUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRh
YmFzZUNhbGxiYWNrcyhwcnBEYXRhYmFzZUNhbGxiYWNrcyk7CisgICAgV2ViU2VjdXJpdHlPcmln
aW4gb3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsKKyAgICBpZiAoIWFsbG93SW5kZXhlZERCKGNvbnRl
eHQsIG5hbWUsIG9yaWdpbiwgY2FsbGJhY2tzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2Vi
RnJhbWVJbXBsKiB3ZWJGcmFtZSA9IGdldFdlYkZyYW1lKGNvbnRleHQpOworICAgIG1fd2ViSURC
RmFjdG9yeS0+b3BlbihuYW1lLCB2ZXJzaW9uLCB0cmFuc2FjdGlvbklkLCBuZXcgV2ViSURCQ2Fs
bGJhY2tzSW1wbChjYWxsYmFja3MpLCBuZXcgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKGRh
dGFiYXNlQ2FsbGJhY2tzKSwgb3JpZ2luLCB3ZWJGcmFtZSwgZGF0YURpcik7Cit9CisKIHZvaWQg
SURCRmFjdG9yeUJhY2tlbmRQcm94eTo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1l
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKQogewogICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IGNh
bGxiYWNrcyhwcnBDYWxsYmFja3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCmluZGV4IDg4MzgwZDdhNDJlZDExNzMwMjkzNWJl
YmJjYWNjZWI2ZjZlOTdkNzguLmQzMjE2OTUzZDgxN2RiMjE1MTQwNTIwNDRhYTk4ODZmNmZiYTM4
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNr
ZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFj
a2VuZFByb3h5LmgKQEAgLTQ5LDcgKzQ5LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfklEQkZh
Y3RvcnlCYWNrZW5kUHJveHkoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVz
KFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmIGRhdGFEaXIpOworICAgIC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwg
dm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VD
YWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CisgICAgdmly
dHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0
X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25z
dCBTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25z
dCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAppbmRleCBkY2Yz
MDNiMzkxMTJhYWExZTY3YzY1ZGY3NDJkOTNhMjRiMDZmZDkyLi44Zjc2N2ExOWY2MDEzYzZmYzkw
NmZhMDUxNzE1NGRkYzQ2YTEyOWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcApAQCAtMTIxLDEyICsxMjEsMTkgQEAgdm9pZCBX
ZWJJREJDYWxsYmFja3NJbXBsOjpvbkJsb2NrZWQobG9uZyBsb25nIG9sZFZlcnNpb24pCiAgICAg
bV9jYWxsYmFja3MtPm9uQmxvY2tlZChvbGRWZXJzaW9uKTsKIH0KIAorLy8gRklYTUU6IFJlbW92
ZSBvbGQgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDM5MjMuCiB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uVXBncmFkZU5lZWRlZChsb25nIGxv
bmcgb2xkVmVyc2lvbiwgV2ViSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBXZWJJREJEYXRh
YmFzZSogZGF0YWJhc2UpCiB7CiAgICAgbV9kaWRDcmVhdGVEYXRhYmFzZVByb3h5ID0gdHJ1ZTsK
ICAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNpb24sIElEQlRyYW5zYWN0
aW9uQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIodHJhbnNhY3Rpb24pKSwgSURCRGF0YWJh
c2VCYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cihkYXRhYmFzZSkpKTsKIH0KIAordm9pZCBX
ZWJJREJDYWxsYmFja3NJbXBsOjpvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9sZFZlcnNpb24s
IGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBXZWJJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24s
IFdlYklEQkRhdGFiYXNlKiBkYXRhYmFzZSkKK3sKKyAgICBtX2RpZENyZWF0ZURhdGFiYXNlUHJv
eHkgPSB0cnVlOworICAgIG1fY2FsbGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQob2xkVmVyc2lvbiwg
dHJhbnNhY3Rpb25JZCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0
cih0cmFuc2FjdGlvbikpLCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRy
KGRhdGFiYXNlKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCQ2FsbGJhY2tzSW1wbC5oCmluZGV4IDhmOGMwMmFhYTAyOGNmYzM5YmU5MjFhYmMwZDZi
N2RhM2ZkNTMyNmYuLmUxMGE2YjE2YWUzZWNhYjRiOTk5MmU2YzMyMzdlMTg4ZTk0NjAyZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgK
QEAgLTUzLDcgKzUzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCk7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tl
ZChsb25nIGxvbmcgb2xkVmVyc2lvbik7CisgICAgLy8gRklYTUU6IFJlbW92ZSBvbGQgbWV0aG9k
IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAg
dmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChsb25nIGxvbmcgb2xkVmVyc2lvbiwgV2ViSURC
VHJhbnNhY3Rpb24qLCBXZWJJREJEYXRhYmFzZSopOworICAgIHZpcnR1YWwgdm9pZCBvblVwZ3Jh
ZGVOZWVkZWQobG9uZyBsb25nIG9sZFZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBX
ZWJJREJUcmFuc2FjdGlvbiosIFdlYklEQkRhdGFiYXNlKik7CiAKIHByaXZhdGU6CiAgICAgUmVm
UHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4gbV9jYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNw
cAppbmRleCA1YWU4NmE2Nzk2YTE5ODZjZTNmN2Y4MmMzYmZkMTg3YWMwZjI0YzUzLi42YTM2ZmQy
OTU2YTQ5MjI4NDU0NjZjYzA0YmQ3NDA1Y2YzOTNiODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAK
QEAgLTU5LDYgKzU5LDE3IEBAIHZvaWQgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZl
cnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiB2ZXJzaW9uKQogICAgIG1fY2FsbGJhY2tzLT5v
blZlcnNpb25DaGFuZ2UodmVyc2lvbik7CiB9CiAKK3ZvaWQgV2ViSURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsOjpvbkFib3J0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBjb25zdCBXZWJJREJEYXRh
YmFzZUVycm9yJiBlcnJvcikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25BYm9ydCh0cmFuc2FjdGlv
bklkLCBlcnJvcik7Cit9CisKK3ZvaWQgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvbkNv
bXBsZXRlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkKQoreworICAgIG1fY2FsbGJhY2tzLT5vbkNv
bXBsZXRlKHRyYW5zYWN0aW9uSWQpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCmluZGV4IGIw
NzM3ZWViMmE5YjYwYjRlNDM1NWE4NDQwYWM0NTA5MzhhNGI4MzcuLjUyOTNkNTQ3MWIwMTQwYzBi
Mzg0YWRkOGFmMjJlNjU1MWVjM2U2ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCkBAIC00Niw2ICs0Niw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgpOwogICAgIHZpcnR1
YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UobG9uZyBsb25nIG9sZFZlcnNpb24sIGxvbmcgbG9uZyBu
ZXdWZXJzaW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFdlYlN0
cmluZyYgdmVyc2lvbik7CisgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQobG9uZyBsb25nIHRyYW5z
YWN0aW9uSWQsIGNvbnN0IFdlYklEQkRhdGFiYXNlRXJyb3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQg
b25Db21wbGV0ZShsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCk7CiAKIHByaXZhdGU6CiAgICAgUmVm
UHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCmluZGV4IDQw
M2EzMGJlZTUxMDc2MzA3NmFkMTZmNmE5ZDM4NDJiYmE5ZmJkNDAuLjdkZTBjNzA4MmIyOWM0OTQ4
OGQwMWVlYzMyZGZiYTRhNTRjM2Y0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcApAQCAtNzUsNiArNzUsNyBAQCB2b2lkIFdlYklE
QkRhdGFiYXNlSW1wbDo6ZGVsZXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIG9iamVjdFN0b3JlSWQs
IGNvbnN0IFdlYklEQgogICAgIG1fZGF0YWJhc2VCYWNrZW5kLT5kZWxldGVPYmplY3RTdG9yZShv
YmplY3RTdG9yZUlkLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UoKSwgZWMpOwogfQogCisvLyBGSVhNRTogUmVtb3ZlIG9sZCBtZXRob2QgaW4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KIFdlYklEQlRyYW5zYWN0aW9u
KiBXZWJJREJEYXRhYmFzZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29u
c3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBt
b2RlKQogewogICAgIFZlY3RvcjxpbnQ2NF90PiBvYmplY3RTdG9yZUlkTGlzdChvYmplY3RTdG9y
ZUlkcy5zaXplKCkpOwpAQCAtODYsNiArODcsMTUgQEAgV2ViSURCVHJhbnNhY3Rpb24qIFdlYklE
QkRhdGFiYXNlSW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBjb25zdCBXZWIK
ICAgICByZXR1cm4gbmV3IFdlYklEQlRyYW5zYWN0aW9uSW1wbCh0cmFuc2FjdGlvbik7CiB9CiAK
K3ZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQs
IFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlZlY3Rvcjxsb25n
IGxvbmc+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKK3sKKyAgICBWZWN0
b3I8aW50NjRfdD4gb2JqZWN0U3RvcmVJZExpc3Qob2JqZWN0U3RvcmVJZHMuc2l6ZSgpKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9iamVjdFN0b3JlSWRzLnNpemUoKTsgKytpKQorICAg
ICAgICBvYmplY3RTdG9yZUlkTGlzdFtpXSA9IG9iamVjdFN0b3JlSWRzW2ldOworICAgIFJlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5PiBkYXRhYmFzZUNhbGxiYWNrc1Byb3h5ID0gSURC
RGF0YWJhc2VDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpOworICAg
IG1fZGF0YWJhc2VCYWNrZW5kLT5jcmVhdGVUcmFuc2FjdGlvbihpZCwgZGF0YWJhc2VDYWxsYmFj
a3NQcm94eS5nZXQoKSwgb2JqZWN0U3RvcmVJZExpc3QsIG1vZGUpOworfQorCiB2b2lkIFdlYklE
QkRhdGFiYXNlSW1wbDo6Y2xvc2UoKQogewogICAgIC8vIFVzZSB0aGUgY2FsbGJhY2tzIHBhc3Nl
ZCBpbiB0byB0aGUgY29uc3RydWN0b3Igc28gdGhhdCB0aGUgYmFja2VuZCBpbgpAQCAtMTA0LDYg
KzExNCwxOCBAQCB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6Zm9yY2VDbG9zZSgpCiAgICAgY2Fs
bGJhY2tzLT5vbkZvcmNlZENsb3NlKCk7CiB9CiAKK3ZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjph
Ym9ydChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCkKK3sKKyAgICBpZiAobV9kYXRhYmFzZUJhY2tl
bmQpCisgICAgICAgIG1fZGF0YWJhc2VCYWNrZW5kLT5hYm9ydCh0cmFuc2FjdGlvbklkKTsKK30K
Kwordm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmNvbW1pdChsb25nIGxvbmcgdHJhbnNhY3Rpb25J
ZCkKK3sKKyAgICBpZiAobV9kYXRhYmFzZUJhY2tlbmQpCisgICAgICAgIG1fZGF0YWJhc2VCYWNr
ZW5kLT5jb21taXQodHJhbnNhY3Rpb25JZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCmluZGV4IDY2YWE4NGRiYThhODNjOTgx
OGFkYzk2MmUzY2I3MjAyNTdkYTcyYWYuLjM3ZmZjOTk2YWRkZmE4MjBjMjRkN2IyNWRhODdmMGY3
Y2YzY2NiOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRh
dGFiYXNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFi
YXNlSW1wbC5oCkBAIC01NCw5ICs1NCwxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFdlYklE
Qk9iamVjdFN0b3JlKiBjcmVhdGVPYmplY3RTdG9yZShsb25nIGxvbmcsIGNvbnN0IFdlYlN0cmlu
ZyYgbmFtZSwgY29uc3QgV2ViSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCwgY29uc3Qg
V2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJU
cmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIG9s
ZCBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzky
My4KICAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0aW9uKiBjcmVhdGVUcmFuc2FjdGlvbihsb25n
IGxvbmcgaWQsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgdW5zaWduZWQgc2hvcnQgbW9k
ZSk7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgV2Vi
SURCRGF0YWJhc2VDYWxsYmFja3MqLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2ln
bmVkIHNob3J0IG1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBmb3JjZUNsb3NlKCk7CiAgICAgdmly
dHVhbCB2b2lkIGNsb3NlKCk7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KGxvbmcgbG9uZyk7Cisg
ICAgdmlydHVhbCB2b2lkIGNvbW1pdChsb25nIGxvbmcpOwogCiBwcml2YXRlOgogICAgIFdURjo6
UmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gbV9kYXRhYmFzZUJh
Y2tlbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0
b3J5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1w
bC5jcHAKaW5kZXggOTRhOGQ0NjhhOTBhOTBjNDEyYzdhYTZjOThhZWZiNzRiYjdhMzdiOC4uMDU1
YzViOTE5MTQ4ZTg0NjZmNjcxYzI5ZTQwZGQxMGM3MjhjNDY5YiAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcApAQCAtNjUsNiArNjUsNyBA
QCB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpnZXREYXRhYmFzZU5hbWVzKFdlYklEQkNhbGxiYWNr
cyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZQogICAgIG1faWRiRmFjdG9yeUJhY2tlbmQtPmdldERh
dGFiYXNlTmFtZXMoSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3Mp
KSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKIH0KIAorLy8gRklYTUU6IFJlbW92ZSBvbGQgbWV0aG9k
IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiB2b2lk
IFdlYklEQkZhY3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBsb25n
IHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBXZWJJREJEYXRhYmFzZUNhbGxi
YWNrcyogZGF0YWJhc2VDYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4s
IFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKQogewogICAgIFJlZlB0cjxJREJD
YWxsYmFja3NQcm94eT4gY2FsbGJhY2tzUHJveHkgPSBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRl
KGFkb3B0UHRyKGNhbGxiYWNrcykpOwpAQCAtNzMsNiArNzQsMTQgQEAgdm9pZCBXZWJJREJGYWN0
b3J5SW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGxvbmcgbG9uZyB2ZXJzaW9uLCBX
ZWJJREJDYWwKICAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIHZlcnNpb24sIGNh
bGxiYWNrc1Byb3h5LmdldCgpLCBkYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmdldCgpLCBvcmlnaW4s
IDAsIGRhdGFEaXIpOwogfQogCit2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdl
YlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklk
LCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGRh
dGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFt
ZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikKK3sKKyAgICBSZWZQdHI8SURCQ2FsbGJhY2tz
UHJveHk+IGNhbGxiYWNrc1Byb3h5ID0gSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0
cihjYWxsYmFja3MpKTsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eT4gZGF0
YWJhc2VDYWxsYmFja3NQcm94eSA9IElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShh
ZG9wdFB0cihkYXRhYmFzZUNhbGxiYWNrcykpOworICAgIGNhbGxiYWNrc1Byb3h5LT5zZXREYXRh
YmFzZUNhbGxiYWNrcyhkYXRhYmFzZUNhbGxiYWNrc1Byb3h5KTsKKyAgICBtX2lkYkZhY3RvcnlC
YWNrZW5kLT5vcGVuKG5hbWUsIHZlcnNpb24sIHRyYW5zYWN0aW9uSWQsIGNhbGxiYWNrc1Byb3h5
LmdldCgpLCBkYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmdldCgpLCBvcmlnaW4sIDAsIGRhdGFEaXIp
OworfQorCiB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpkZWxldGVEYXRhYmFzZShjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0
eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikKIHsK
ICAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5kZWxldGVEYXRhYmFzZShuYW1lLCBJREJDYWxsYmFj
a3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLCBvcmlnaW4sIDAsIGRhdGFEaXIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUlt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgKaW5k
ZXggMzNmNWEyMWQyYzc0ZjU4ZGZmOTRlMWViN2I5MGU1YWQ0MzBkMTYyNy4uNzRhZjBkZTcwYzUy
YzI0YzY0ZTc1N2QwYmQ2OTdhNDU4ZGJmYmQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oCkBAIC00NSw3ICs0NSw5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5XZWJJREJGYWN0b3J5SW1wbCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERh
dGFiYXNlTmFtZXMoV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBX
ZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7CisgICAgLy8gRklYTUU6IFJlbW92
ZSBvbGQgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDM5MjMuCiAgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBsb25n
IGxvbmcgdmVyc2lvbiwgV2ViSURCQ2FsbGJhY2tzKiwgV2ViSURCRGF0YWJhc2VDYWxsYmFja3Mq
LCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBk
YXRhRGlyKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGxv
bmcgbG9uZyB2ZXJzaW9uLCBsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgV2ViSURCQ2FsbGJhY2tz
KiwgV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdl
YkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVs
ZXRlRGF0YWJhc2UoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqLCBjb25z
dCBXZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGly
KTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
SURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
SURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAppbmRleCBlYzA3OWY1MGNkM2NiY2U5ZGZlMjEyMTM5
ZDQ2MDdlMTk0NGYzYTJiLi40YTYyNjYwOTNjZjk1NjFhNjlhODAwNTA0N2U2NzY2NDUzZjM1YmZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3Jy
dXB0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9u
Q29ycnVwdFRlc3QuY3BwCkBAIC0xMDgsNiArMTA4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKSBPVkVSUklERSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50
NjRfdCBuZXdWZXJzaW9uKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRD
bG9zZSgpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0KGludDY0X3QsIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBvbkNvbXBsZXRlKGludDY0X3QpIE9WRVJSSURFIHsgfQogcHJpdmF0ZToKICAgICBGYWtlSURC
RGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAppbmRleCAwZDI2MjI0NjY1
MzgxNGE0N2RjOThmYThiM2M5ZmEwYjlhMjEyYmEzLi4zMDc0NDVlNDcxNDczYzRmNGJjMzJiNDFj
MDZkODgzMDgyZTVhYjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKQEAgLTEwOCw2ICsxMDgsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHZlcnNp
b24pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRf
dCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBvbkZvcmNlZENsb3NlKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIG9u
QWJvcnQoaW50NjRfdCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgT1ZFUlJJREUgeyB9
CisgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoaW50NjRfdCkgT1ZFUlJJREUgeyB9CiBwcml2
YXRlOgogICAgIEZha2VJREJEYXRhYmFzZUNhbGxiYWNrcygpIHsgfQogfTsKQEAgLTE1Miw3ICsx
NTQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFj
a2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgeyByZXR1cm4gMDsgfQogICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpIHsgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1l
dGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNy
ZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIHVuc2lnbmVk
IHNob3J0IG1vZGUpIHsgcmV0dXJuIDA7IH0KKyAgICB2b2lkIGNyZWF0ZVRyYW5zYWN0aW9uKGlu
dDY0X3QsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50
NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBjbG9z
ZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPikKICAgICB7CkBAIC0xNjAsNiArMTY0
LDkgQEAgcHVibGljOgogICAgICAgICBtX3dlYkRhdGFiYXNlLmNsb3NlKCk7CiAgICAgfQogCisg
ICAgdmlydHVhbCB2b2lkIGFib3J0KGludDY0X3QpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjb21t
aXQoaW50NjRfdCkgeyB9CisKIHByaXZhdGU6CiAgICAgTW9ja0lEQkRhdGFiYXNlQmFja2VuZFBy
b3h5KFdlYklEQkRhdGFiYXNlSW1wbCYgd2ViRGF0YWJhc2UpCiAgICAgICAgIDogbV93YXNDbG9z
ZUNhbGxlZChmYWxzZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177585</attachid>
            <date>2012-12-04 15:28:39 -0800</date>
            <delta_ts>2012-12-04 15:54:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103921-20121204152605.patch</filename>
            <type>text/plain</type>
            <size>46296</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjk0OWI1Y2I5MzQwZjk2
ZDk0YzdjNGE3MjQ3ZTkzYjViZDkxNGQzNi4uZGRkMzg2YzM0NGI4MDk4YmVkMjZiY2E3MTVkYzk2
MDVlMDJlZjllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTEyLTAzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFN0
dWIgb3V0IHRyYW5zYWN0aW9uLWJhY2tlbmQgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gcHJlcGFyYXRpb24gZm9yIGEgcmVmYWN0b3Jp
bmcuIExlZ2FjeSBtZXRob2RzIAorICAgICAgICB3aWxsIGJlIHJlbW92ZWQgaW4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIGp1c3QgYWRkaW5nIHVudXNlZCBtZXRob2RzIGZvciByZWZhY3RvcmluZy4KKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ2FsbGJhY2tzOjpvblVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpv
bkFib3J0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJh
c2U6Om9uQ29tcGxldGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
Lmg6CisgICAgICAgIChJREJEYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmg6CisgICAg
ICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZEltcGw6OmNvbW1pdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjphYm9ydCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmg6
CisgICAgICAgIChJREJEYXRhYmFzZUNhbGxiYWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25BYm9ydCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25Db21wbGV0ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6Cisg
ICAgICAgIChJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJG
YWN0b3J5QmFja2VuZEltcGw6Om9wZW4pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnlCYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tl
bmRJbXBsOjpvcGVuKToKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kSW1wbCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAg
ICAgKElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJl
cXVlc3Q6Om9uVXBncmFkZU5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0Lmg6CisgICAgICAgIChJREJPcGVuREJS
ZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaDoKKwogMjAxMi0xMS0yNyAgQWxlYyBG
bGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiByZW1v
dmUgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjp0cmFuc2FjdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IDg0M2UzZjNlY2JiNjkwODg2MjA4N2ExNGM5YjQ4NzI4MjJjNDBj
MDguLjUyOTQ1ODJkZDM5YzY2YzBjNmY5ZTllMmQ1ZDVkOTRmNTNhNjczMGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzYgQEAKKzIwMTItMTItMDMgIEFsZWMgRmxldHQg
IDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogU3R1YiBvdXQg
dHJhbnNhY3Rpb24tYmFja2VuZCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IHNpZ25hdHVyZXMgZm9yIHJlZmFjdG9yaW5nLCB0
byBhbGxvdworICAgICAgICB0cmFuc2FjdGlvbl9pZHMgdG8gbWFrZSBpcyB0aHJvdWdoIHRoZSBv
cGVuL29uVXBncmFkZU5lZWRlZAorICAgICAgICBsb29wLgorCisgICAgICAgICogcHVibGljL1dl
YklEQkNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3M6Om9uVXBn
cmFkZU5lZWRlZCk6CisgICAgICAgICogcHVibGljL1dlYklEQkRhdGFiYXNlLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQkRhdGFiYXNlOjpjcmVhdGVUcmFuc2FjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkRhdGFiYXNlOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRh
dGFiYXNlOjpjb21taXQpOgorICAgICAgICAoV2ViSURCRGF0YWJhc2UpOgorICAgICAgICAqIHB1
YmxpYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VD
YWxsYmFja3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrczo6b25B
Ym9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzOjpvbkNvbXBs
ZXRlKToKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCRmFjdG9yeS5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJJREJGYWN0b3J5OjpvcGVuKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJREJDYWxsYmFja3NQcm94eTo6b25VcGdyYWRlTmVlZGVk
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6
CisgICAgICAgIChJREJDYWxsYmFja3NQcm94eSk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VCYWNrZW5kUHJv
eHk6OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJL
aXQ6OklEQkRhdGFiYXNlQmFja2VuZFByb3h5Ojpjb21taXQpOgorICAgICAgICAoV2ViS2l0OjpJ
REJEYXRhYmFzZUJhY2tlbmRQcm94eTo6YWJvcnQpOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFz
ZUJhY2tlbmRQcm94eS5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kUHJveHkpOgorICAg
ICAgICAqIHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25BYm9ydCk6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvbkNvbXBsZXRl
KToKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oOgorICAgICAgICAo
SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eSk6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNr
ZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJGYWN0b3J5QmFja2VuZFByb3h5Ojpv
cGVuKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNrZW5k
UHJveHkuaDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNy
Yy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJh
Y2tzSW1wbDo6b25VcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
c3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKFdlYklEQkNhbGxiYWNrc0ltcGwp
OgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uQWJvcnQpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
OjpvbkNvbXBsZXRlKToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
Lmg6CisgICAgICAgIChXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNy
Yy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFz
ZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJEYXRhYmFzZUltcGw6OmNvbW1pdCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1w
bC5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURC
RmFjdG9yeUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5SW1wbDo6b3Bl
bik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJJREJGYWN0b3J5SW1wbC5o
OgorICAgICAgICAoV2ViSURCRmFjdG9yeUltcGwpOgorICAgICAgICAqIHRlc3RzL0lEQkFib3J0
T25Db3JydXB0VGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVz
dC5jcHA6CisKIDIwMTItMTEtMjcgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEluZGV4ZWREQjogcmVtb3ZlIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZTo6dHJhbnNhY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2UuY3BwCmluZGV4IDczODIzYzVmZDk0YTJhZTAwODI2ZmYzYjM1MGJkNWY3MzYx
ZDFhMmQuLjA3NGZlYmI0YzUwNDY2MzQyZmE5OTc3ODc1NzM3Y2M3MDc3OGRhOGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTEx
Myw2ICsxMTMsMTYgQEAgdm9pZCBJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb25GaW5pc2hlZChJREJU
cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCiAgICAgICAgIGNsb3NlQ29ubmVjdGlvbigpOwogfQog
Cit2b2lkIElEQkRhdGFiYXNlOjpvbkFib3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKwordm9pZCBJREJEYXRhYmFzZTo6b25Db21wbGV0ZShpbnQ2NF90IHRyYW5zYWN0aW9u
SWQpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIFBhc3NSZWZQdHI8RE9NU3Ry
aW5nTGlzdD4gSURCRGF0YWJhc2U6Om9iamVjdFN0b3JlTmFtZXMoKSBjb25zdAogewogICAgIFJl
ZlB0cjxET01TdHJpbmdMaXN0PiBvYmplY3RTdG9yZU5hbWVzID0gRE9NU3RyaW5nTGlzdDo6Y3Jl
YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2Uu
aAppbmRleCBhOGFiOTRkOTQ5M2JkZTgzYmJhNzk4MDRiNDUwMGE1ODA4YjQ1ZGI5Li43Yjc2MjQy
MTQwNzRlMWY5NjcwMzAxZGMwYmQyOGQzNDZjNGNmMDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKQEAgLTc3LDYgKzc3LDggQEAgcHVibGlj
OgogICAgIC8vIElEQkRhdGFiYXNlQ2FsbGJhY2tzCiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lv
bkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbik7CiAgICAgdmly
dHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHJlcXVlc3RlZFZlcnNpb24p
OworICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0KGludDY0X3QsIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VFcnJvcj4pOworICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3QpOwogCiAgICAg
Ly8gQWN0aXZlRE9NT2JqZWN0CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggNDYzODg3NzY0YjU3ZGUzNmQ1ZDlkMTdiZGMzZGY5NDhm
NGFjNTk1ZC4uODUzNDA1MWViMDY4ZDBlZjVmNzVhODBmOWJhZDg5NWRhMTA0ZTRhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5jcHAKQEAgLTM4MCw2ICszODAsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFj
a2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogICAgIH0KIH0KIAorLy8gRklYTUU6IFJl
bW92ZSBvbGQgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM5MjMuCiBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURC
RGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlv
bklkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9y
dCBtb2RlKQogewogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFuc2Fj
dGlvbiA9IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OmNyZWF0ZSh0cmFuc2FjdGlvbklkLCBv
YmplY3RTdG9yZUlkcywgbW9kZSwgdGhpcyk7CkBAIC0zODcsNiArMzg4LDExIEBAIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRJbXBs
OjpjcmVhdGVUcmFuc2FjCiAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLnJlbGVhc2UoKTsKIH0KIAor
dm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGNhbGxiYWNrcywg
Y29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9k
ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcykK
IHsKICAgICBBU1NFUlQobV9iYWNraW5nU3RvcmUuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCmlu
ZGV4IGRmMGJhMmRhYjQzNDhhZGM3Njc4ZDRkNzAzYmFiMDkwZThhNmI2YzIuLmFiM2Q0MWEzMWIz
ZjZmN2YyNGRkMzZiNmZkNzk4ODYxZDI2YzdkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKQEAgLTYz
LDkgKzYzLDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIElEQkRhdGFiYXNlTWV0YWRhdGEgbWV0
YWRhdGEoKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW50ZXJmYWNlPiBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
KiwgRXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5z
YWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmpl
Y3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSk7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0
ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2ln
bmVkIHNob3J0IG1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0KGludDY0X3QgdHJh
bnNhY3Rpb25JZCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBh
Ym9ydChpbnQ2NF90IHRyYW5zYWN0aW9uSWQpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKwog
ICAgIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUoaW50
NjRfdCBpZCk7CiAgICAgSURCVHJhbnNhY3Rpb25Db29yZGluYXRvciogdHJhbnNhY3Rpb25Db29y
ZGluYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb25Db29yZGluYXRvci5nZXQoKTsg
fQogICAgIHZvaWQgdHJhbnNhY3Rpb25TdGFydGVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbD4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCA4NTAwNjJjMjkx
ODczMmJhMzRhOTI3YzdiMDdlOTk1ZWE5MDM2NGRmLi45YWMxNTk5N2Y0M2Q5MTFhZjA1MTQ2ZTlj
ZDRiODQxYTBiZWU5OWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTUsOCAr
NTUsMTQgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1l
dGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNy
ZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0
X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0
b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsb3Nl
KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBUcmFuc2Fj
dGlvbi1zcGVjaWZpYyBvcGVyYXRpb25zLgorICAgIHZpcnR1YWwgdm9pZCBjb21taXQoaW50NjRf
dCB0cmFuc2FjdGlvbklkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KGludDY0X3QgdHJh
bnNhY3Rpb25JZCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3Mu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tz
LmgKaW5kZXggNDY5M2U2MzdhZWRhYWNiYzRjMTlmYTBlNDg1NDk0MmVkMTMyNWMzYi4uOTgyNjgz
N2IxN2ZmNDcxM2IyMWEwNjQ3ODBmMWY1ZTU0M2MzMzNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oCkBAIC00
Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lv
bikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJz
aW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0
KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3QgdHJhbnNhY3Rpb25JZCkgPSAw
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAK
aW5kZXggOTcwZDNhMTY3Y2FmOTk2YzdmMDMxZmY1NGE0ZjE1OTI0OWYxYWEwYi4uNDExYWYzYzY4
MDc1ZTg4YzA0NGFkMTMxNzZlYjM1YTE5ZmQyNGVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwu
Y3BwCkBAIC03MSw2ICs3MSwxOCBAQCB2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6Y29u
bmVjdChJREJEYXRhYmFzZSogZGF0YWJhc2UpCiAgICAgbV9kYXRhYmFzZSA9IGRhdGFiYXNlOwog
fQogCit2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25BYm9ydChpbnQ2NF90IHRyYW5z
YWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpCit7CisgICAgaWYg
KG1fZGF0YWJhc2UpCisgICAgICAgIG1fZGF0YWJhc2UtPm9uQWJvcnQodHJhbnNhY3Rpb25JZCwg
ZXJyb3IpOworfQorCit2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25Db21wbGV0ZShp
bnQ2NF90IHRyYW5zYWN0aW9uSWQpCit7CisgICAgaWYgKG1fZGF0YWJhc2UpCisgICAgICAgIG1f
ZGF0YWJhc2UtPm9uQ29tcGxldGUodHJhbnNhY3Rpb25JZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCmluZGV4IGJiNGExYWU3NGU4
MjI3MzhiMzNkZDZjMDgwOWU3MmU2MTBmZDNjYmMuLjNjMTRmOGFlODdjMjI5ODNkZjlmMzcxODMw
NjVkYzEzODY0MjNmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCkBAIC00Niw2ICs0Niw5IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYg
dmVyc2lvbik7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZl
cnNpb24sIGludDY0X3QgbmV3VmVyc2lvbik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydChp
bnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pOworICAg
IHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3QgdHJhbnNhY3Rpb25JZCk7CisKICAgICB2
b2lkIGNvbm5lY3QoSURCRGF0YWJhc2UqKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKaW5kZXggYzE0YzY4YzkxZjYzNGFl
Nzk5MjllM2Y1YjIyMmFkNDMwNzQ5MzU2My4uYmZjYTAxOGJkZTU4YjQwMTMyZmNhOGRlOTMwZDdk
ZDJjNGZkZGVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeS5jcHAKQEAgLTEyNyw3ICsxMjcsOSBAQCBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVl
c3Q+IElEQkZhY3Rvcnk6Om9wZW5JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjbwog
ICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw+
IGRhdGFiYXNlQ2FsbGJhY2tzID0gSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpjcmVhdGUoKTsK
LSAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gcmVxdWVzdCA9IElEQk9wZW5EQlJlcXVlc3Q6
OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZU51bGwoKSwgZGF0YWJhc2VDYWxsYmFja3Ms
IHZlcnNpb24pOworICAgIGludDY0IHRyYW5zYWN0aW9uSWQgPSBJREJEYXRhYmFzZTo6bmV4dFRy
YW5zYWN0aW9uSWQoKTsKKyAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gcmVxdWVzdCA9IElE
Qk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZU51bGwoKSwgZGF0
YWJhc2VDYWxsYmFja3MsIHRyYW5zYWN0aW9uSWQsIHZlcnNpb24pOworICAgIC8vIEZJWE1FOiBw
YXNzIHRoZSB0cmFuc2FjdGlvbklkIGluIGhlcmUKICAgICBtX2JhY2tlbmQtPm9wZW4obmFtZSwg
dmVyc2lvbiwgcmVxdWVzdCwgZGF0YWJhc2VDYWxsYmFja3MsIGNvbnRleHQtPnNlY3VyaXR5T3Jp
Z2luKCksIGNvbnRleHQsIGdldEluZGV4ZWREQkRhdGFiYXNlUGF0aChjb250ZXh0KSk7CiAgICAg
cmV0dXJuIHJlcXVlc3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcAppbmRleCAyZDU4NDJjZDE1MDRj
MWZkY2ExMzU4ZTFmODNkOGRhYWI4NDlkMzU4Li4yMzQ3MGM4ZGE3NzZkMjRhNjljYWE1Mzg3ZGRk
NTcwOGY4MDVjNmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAKQEAgLTE0Miw3ICsxNDIsNyBAQCBQ
YXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gSURCRmFjdG9yeUJhY2tlbmRJbXBsOjpvcGVuQmFj
a2luZ1N0b3JlKFBhc3NSZWZQdHI8UwogICAgIHJldHVybiAwOwogfQogCi12b2lkIElEQkZhY3Rv
cnlCYWNrZW5kSW1wbDo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHBycFNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5n
JiBkYXRhRGlyZWN0b3J5KQordm9pZCBJREJGYWN0b3J5QmFja2VuZEltcGw6Om9wZW4oY29uc3Qg
U3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHBy
cFNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBk
YXRhRGlyZWN0b3J5KQogewogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmln
aW4gPSBwcnBTZWN1cml0eU9yaWdpbjsKICAgICBjb25zdCBTdHJpbmcgdW5pcXVlSWRlbnRpZmll
ciA9IGNvbXB1dGVVbmlxdWVJZGVudGlmaWVyKG5hbWUsIHNlY3VyaXR5T3JpZ2luLmdldCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlC
YWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9y
eUJhY2tlbmRJbXBsLmgKaW5kZXggN2EwMjBmYjYwZDJhYTk2M2M2NDI5YzQ1ZDk2MDM3ZjZkMjIx
YmVkOS4uYjRjMGY4OWQxMGMxNGExZmM2ZWE4Mzc3OGJmOTA1MzNkNzZkYTRlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBs
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tl
bmRJbXBsLmgKQEAgLTI4LDYgKzI4LDggQEAKICNpZm5kZWYgSURCRmFjdG9yeUJhY2tlbmRJbXBs
X2gKICNkZWZpbmUgSURCRmFjdG9yeUJhY2tlbmRJbXBsX2gKIAorI2luY2x1ZGUgIklEQkNhbGxi
YWNrcy5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01Niw3ICs1OCwxMyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZUlEQkJhY2tpbmdTdG9yZShjb25zdCBTdHJpbmcmIGZpbGVJZGVu
dGlmaWVyKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOwotICAgIHZpcnR1YWwgdm9pZCBvcGVu
KGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURp
cik7CisgICAgLy8gRklYTUU6IFJlbW92ZSBvbGQgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29u
c3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2Fs
bGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIG9wZW4obmFtZSwgdmVyc2lvbiwgMCwgY2FsbGJhY2tzLCBkYXRhYmFz
ZUNhbGxiYWNrcywgc2VjdXJpdHlPcmlnaW4sIGNvbnRleHQsIGRhdGFEaXIpOworICAgIH0KKyAg
ICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwg
aW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CisKICAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRl
cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNr
ZW5kSW50ZXJmYWNlLmgKaW5kZXggYmFiMjE5ZjVmNGVjNTRkZjIzYWM3ZGY0ZjQ1NGI3NmZhZWI3
MmYyZS4uODRlZDk4YzIyOGY2NmRhYzcxZTg2ZDdmMjVhOTM0ODViMTcwNGI4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRl
cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
QmFja2VuZEludGVyZmFjZS5oCkBAIC01NCw3ICs1NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGdl
dERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURp
cikgPSAwOworICAgIC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgdm9pZCBvcGVu
KGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURp
cikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRf
dCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVx
dWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1
ZXN0LmNwcAppbmRleCBmMmU3NmQ3MTUwNTYxMTllNDg3ZDU3Njg4MGE0ZDBmOGQ3ZmZkZjJkLi5k
ZjRkMmQwMTM1ZTUzOGFlMmY5ZjQzMjY0OGU4ZThkODBlNGFiNTRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAt
MzcsMTYgKzM3LDE3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJREJP
cGVuREJSZXF1ZXN0PiBJREJPcGVuREJSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUNhbGxiYWNrc0ltcGw+IGNhbGxiYWNrcywgaW50NjRfdCB2ZXJzaW9uKQorUGFzc1Jl
ZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBJREJPcGVuREJSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw+IGNhbGxiYWNrcywgaW50NjRfdCB0cmFuc2Fj
dGlvbklkLCBpbnQ2NF90IHZlcnNpb24pCiB7Ci0gICAgUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+
IHJlcXVlc3QoYWRvcHRSZWYobmV3IElEQk9wZW5EQlJlcXVlc3QoY29udGV4dCwgc291cmNlLCBj
YWxsYmFja3MsIHZlcnNpb24pKSk7CisgICAgUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IHJlcXVl
c3QoYWRvcHRSZWYobmV3IElEQk9wZW5EQlJlcXVlc3QoY29udGV4dCwgc291cmNlLCBjYWxsYmFj
a3MsIHRyYW5zYWN0aW9uSWQsIHZlcnNpb24pKSk7CiAgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVl
ZGVkKCk7CiAgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogCi1JREJPcGVuREJSZXF1
ZXN0OjpJREJPcGVuREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsPiBjYWxsYmFja3MsIGludDY0X3QgdmVyc2lvbikKK0lEQk9wZW5EQlJlcXVlc3Q6OklEQk9w
ZW5EQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJ
REJBbnk+IHNvdXJjZSwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw+IGNhbGxi
YWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHZlcnNpb24pCiAgICAgOiBJREJS
ZXF1ZXN0KGNvbnRleHQsIHNvdXJjZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpO
b3JtYWxUYXNrLCAwKQogICAgICwgbV9kYXRhYmFzZUNhbGxiYWNrcyhjYWxsYmFja3MpCisgICAg
LCBtX3RyYW5zYWN0aW9uSWQodHJhbnNhY3Rpb25JZCkKICAgICAsIG1fdmVyc2lvbih2ZXJzaW9u
KQogewogICAgIEFTU0VSVCghbV9yZXN1bHQpOwpAQCAtODksOCArOTAsNyBAQCB2b2lkIElEQk9w
ZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQ
dHI8SURCVHJhbnNhYwogICAgIG1fZGF0YWJhc2VDYWxsYmFja3MtPmNvbm5lY3QoaWRiRGF0YWJh
c2UuZ2V0KCkpOwogICAgIG1fZGF0YWJhc2VDYWxsYmFja3MgPSAwOwogCi0gICAgaW50NjRfdCB0
cmFuc2FjdGlvbklkID0gSURCRGF0YWJhc2U6Om5leHRUcmFuc2FjdGlvbklkKCk7Ci0gICAgUmVm
UHRyPElEQlRyYW5zYWN0aW9uPiBmcm9udGVuZCA9IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0cmFuc2FjdGlvbklkLCB0cmFuc2FjdGlvbkJhY2tlbmQs
IFZlY3RvcjxTdHJpbmc+KCksIElEQlRyYW5zYWN0aW9uOjpWRVJTSU9OX0NIQU5HRSwgaWRiRGF0
YWJhc2UuZ2V0KCksIHRoaXMpOworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gZnJvbnRlbmQg
PSBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV90cmFu
c2FjdGlvbklkLCB0cmFuc2FjdGlvbkJhY2tlbmQsIFZlY3RvcjxTdHJpbmc+KCksIElEQlRyYW5z
YWN0aW9uOjpWRVJTSU9OX0NIQU5HRSwgaWRiRGF0YWJhc2UuZ2V0KCksIHRoaXMpOwogICAgIHRy
YW5zYWN0aW9uQmFja2VuZC0+c2V0Q2FsbGJhY2tzKGZyb250ZW5kLmdldCgpKTsKICAgICBtX3Ry
YW5zYWN0aW9uID0gZnJvbnRlbmQ7CiAgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0ZShpZGJE
YXRhYmFzZS5yZWxlYXNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oCmluZGV4IGE1NTE0MjY0ZTM0YjIwZTY4ZGY0Yjc2YjY4
ZWFkMWNkODBmOGYwOTMuLjZkNWY5MDkzNzdlYTRlNzdiZTU2NTczMmRhMTFlNzZhNTEzNjQ1Nzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJS
ZXF1ZXN0LmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
OwogCiBjbGFzcyBJREJPcGVuREJSZXF1ZXN0IDogcHVibGljIElEQlJlcXVlc3QgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUNhbGxiYWNrc0ltcGw+LCBpbnQ2NF90IHZlcnNpb24pOworICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxi
YWNrc0ltcGw+LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3QgdmVyc2lvbik7CiAgICAg
dmlydHVhbCB+SURCT3BlbkRCUmVxdWVzdCgpOwogCiAgICAgdXNpbmcgSURCUmVxdWVzdDo6b25T
dWNjZXNzOwpAQCAtNTYsOSArNTYsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRFbnF1ZXVlRXZlbnQoKSBjb25zdCBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICBJREJP
cGVuREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkFueT4g
c291cmNlLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbD4sIGludDY0X3QgdmVy
c2lvbik7CisgICAgSURCT3BlbkRCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrc0lt
cGw+LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3QgdmVyc2lvbik7CiAKICAgICBSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsPiBtX2RhdGFiYXNlQ2FsbGJhY2tzOworICAgIGNv
bnN0IGludDY0X3QgbV90cmFuc2FjdGlvbklkOwogICAgIGludDY0X3QgbV92ZXJzaW9uOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCBjYzc0ZDExNTY4MTdiYTMy
OGExYzFkNzk2YzYxMmJiMWQ1MmFiODg1Li4wZjU4NmJiYjQxOWYyOGJjNGRlNWJjNjFlZmQ1N2Jj
NDlhMWFhY2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNDAsNyAr
NDAsNiBAQCBjbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrczsKIAogdHlwZWRlZiBpbnQgRXhj
ZXB0aW9uQ29kZTsKIAotLy8gVGhpcyBjbGFzcyBpcyBzaGFyZWQgYnkgSURCVHJhbnNhY3Rpb24g
KGFzeW5jKSBhbmQgSURCVHJhbnNhY3Rpb25TeW5jIChzeW5jKS4KIC8vIFRoaXMgaXMgaW1wbGVt
ZW50ZWQgYnkgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCBhbmQgb3B0aW9uYWxseSBvdGhlcnMg
KGluIG9yZGVyIHRvIHByb3h5CiAvLyBjYWxscyBhY3Jvc3MgcHJvY2VzcyBiYXJyaWVycykuIEFs
bCBjYWxscyB0byB0aGVzZSBjbGFzc2VzIHNob3VsZCBiZSBub24tYmxvY2tpbmcgYW5kCiAvLyB0
cmlnZ2VyIHdvcmsgb24gYSBiYWNrZ3JvdW5kIHRocmVhZCBpZiBuZWNlc3NhcnkuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bkNvb3JkaW5hdG9yLmgKaW5kZXggODI5OTg1MzIyMGNjYWE2NDU0Y2Y2NDJlODA1OTg0MDgyNjMz
NGJmMy4uNjA5MDZmZTM1ZjRhNTdkNmFjNGYwYTcxMzczNDQ3MWEwMGM4NjE3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGlu
YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uQ29vcmRpbmF0b3IuaApAQCAtMjgsNyArMjgsNiBAQAogCiAjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCiAKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJREJEYXRhYmFzZS5oCmluZGV4IDk1YmFmNjZiNjUxOGM5OGEwZmE1NzhiYjI2NGYzZmMx
OWVjZDVkZjQuLmU3YTFiOThiYTNmMTEyMzEzZTRkMzVmMmE2YjdmMmQxODJkZmUzZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaApAQCAtNTYs
MTAgKzU2LDE1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3Qg
V2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykgeyBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAvLyBGSVhNRTogUmVtb3ZlIG9sZCBt
ZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4K
ICAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0aW9uKiBjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxv
bmcgaWQsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkg
eyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB2
b2lkIGNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgV2ViSURCRGF0YWJhc2VDYWxsYmFj
a3MqIGNhbGxiYWNrcywgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9y
dCBtb2RlKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBjbG9zZSgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2
b2lkIGZvcmNlQ2xvc2UoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCisgICAg
dmlydHVhbCB2b2lkIGFib3J0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkKSB7IFdFQktJVF9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBjb21taXQobG9uZyBsb25nIHRy
YW5zYWN0aW9uSWQpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisKIHByb3RlY3Rl
ZDoKICAgICBXZWJJREJEYXRhYmFzZSgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oCmluZGV4IDEyZGE3
ZTBiNDc2YjExNDVkZDY5MzE0MGUzMWRhOGFjNWUxODk3NTEuLmI0NjI2NjFkZWYxMTViOGVkYjU2
YzEzM2JhYWFlNzQwNGY0NDYwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaApAQCAtMjYsNiArMjYsNyBAQAog
I2lmbmRlZiBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc19oCiAjZGVmaW5lIFdlYklEQkRhdGFiYXNl
Q2FsbGJhY2tzX2gKIAorI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRl
ICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIK
IApAQCAtMzgsNiArMzksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uRm9yY2VkQ2xv
c2UoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBv
blZlcnNpb25DaGFuZ2UobG9uZyBsb25nIG9sZFZlcnNpb24sIGxvbmcgbG9uZyBuZXdWZXJzaW9u
KSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblZl
cnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiByZXF1ZXN0ZWRWZXJzaW9uKSB7IFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorCisgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQobG9uZyBs
b25nIHRyYW5zYWN0aW9uSWQsIGNvbnN0IFdlYklEQkRhdGFiYXNlRXJyb3ImKSB7IFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGxvbmcg
bG9uZyB0cmFuc2FjdGlvbklkKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJREJGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJREJGYWN0b3J5LmgKaW5kZXggMTJlY2YwN2M3Mjc3MjA1YmJiNmQ2OTdhOGI4Y2IyMzMx
Y2UxMzVhYi4uZjg5YTdkMjM3YmEwNjBiZjNmZGQwNWE1N2UzMTZjYzM0ZWI5YWZjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRmFjdG9yeS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkZhY3RvcnkuaApAQCAtNTYsNyAr
NTYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoV2ViSURC
Q2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdl
YkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQogCiAgICAgLy8gVGhlIFdlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiBv
cGVuIGlnbm9yZXMgdGhlIFdlYkZyYW1lKiBwYXJhbWV0ZXIuCisgICAgLy8gRklYTUU6IFJlbW92
ZSBvbGQgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDM5MjMuCiAgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBsb25n
IGxvbmcgdmVyc2lvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIFdlYklEQkRhdGFiYXNl
Q2FsbGJhY2tzKiBkYXRhYmFzZUNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9y
aWdpbiwgV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2Vi
U3RyaW5nJiBuYW1lLCBsb25nIGxvbmcgdmVyc2lvbiwgbG9uZyBsb25nIHRyYW5zYWN0aW9uSWQs
IFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyogZGF0
YWJhc2VDYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1l
KiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYlN0
cmluZyYgbmFtZSwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBX
ZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikgeyBXRUJLSVRfQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAKaW5kZXggZTljODBkMGNmNjI5ZWMyNDc3YWRhMTNi
ODhmNDQ3ZmE5NTkyZGE0OC4uYTBkYzI0ZTdiNjRkNGY5NTQxY2M0ZDczMDk5M2NhODU5YTJhZjVi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNr
ZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmNwcApAQCAtOTQsNiArOTQsMjIgQEAgUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGVUcmFu
c2EKICAgICByZXR1cm4gSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNyZWF0ZSh0cmFuc2Fj
dGlvbi5yZWxlYXNlKCkpOwogfQogCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVh
dGVUcmFuc2FjdGlvbihpbnQ2NF90IGlkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2ln
bmVkIHNob3J0IG1vZGUpCit7CisgICAgbV93ZWJJREJEYXRhYmFzZS0+Y3JlYXRlVHJhbnNhY3Rp
b24oaWQsIG5ldyBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgb2JqZWN0
U3RvcmVJZHMsIG1vZGUpOworfQorCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5Ojpjb21t
aXQoaW50NjRfdCB0cmFuc2FjdGlvbklkKQoreworICAgIG1fd2ViSURCRGF0YWJhc2UtPmNvbW1p
dCh0cmFuc2FjdGlvbklkKTsKK30KKwordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6YWJv
cnQoaW50NjRfdCB0cmFuc2FjdGlvbklkKQoreworICAgIG1fd2ViSURCRGF0YWJhc2UtPmFib3J0
KHRyYW5zYWN0aW9uSWQpOworfQorCisKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNs
b3NlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KQogewogICAgIG1fd2ViSURCRGF0
YWJhc2UtPmNsb3NlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJEYXRhYmFzZUJhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RGF0YWJhc2VCYWNrZW5kUHJveHkuaAppbmRleCAwM2QwNWQ5MmIxNmU0OGMyOWU5MzM3YmFmZTNm
OTAwMzYyYmQ5NjA5Li4yMzc3NjMwNTZmMGJiYjdlZjczODQxYTgxMjBjM2ExYTgzOGMzZDIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2Vu
ZFByb3h5LmgKQEAgLTQ2LDkgKzQ2LDE0IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZU9iamVj
dFN0b3JlKGludDY0X3QsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgV2ViQ29yZTo6SURCS2V5
UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBk
ZWxldGVPYmplY3RTdG9yZShpbnQ2NF90LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CisgICAgLy8gRklYTUU6IFJlbW92
ZSBvbGQgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDM5MjMuCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCwgY29uc3QgVmVjdG9yPGlu
dDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSk7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRy
YW5zYWN0aW9uKGludDY0X3QsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFj
a3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKICAgICB2
aXJ0dWFsIHZvaWQgY2xvc2UoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNr
cz4pOwogCisgICAgdmlydHVhbCB2b2lkIGNvbW1pdChpbnQ2NF90KTsKKyAgICB2aXJ0dWFsIHZv
aWQgYWJvcnQoaW50NjRfdCk7CisKIHByaXZhdGU6CiAgICAgSURCRGF0YWJhc2VCYWNrZW5kUHJv
eHkoUGFzc093blB0cjxXZWJJREJEYXRhYmFzZT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDMx
ODk3ZGE5ZThjZTkxODg5ZDUxNzI1Y2U5OTllODI3MzhkMTU1NGUuLjYzNjU5MjYyY2NlOTgwMTE5
NTlmYjQ2ZjkxYTg5ZWY4YTk1ZDg2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwCkBAIC02Myw2ICs2Mywx
NiBAQCB2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6Om9uVmVyc2lvbkNoYW5nZShjb25z
dCBTdHJpbmcmIHJlcXVlc3RlZFZlcnNpb24pCiAgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lvbkNo
YW5nZShyZXF1ZXN0ZWRWZXJzaW9uKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc1By
b3h5OjpvbkFib3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJ
REJEYXRhYmFzZUVycm9yPiBlcnJvcikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25BYm9ydCh0cmFu
c2FjdGlvbklkLCBlcnJvcik7Cit9CisKK3ZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6
b25Db21wbGV0ZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQpCit7CisgICAgbV9jYWxsYmFja3MtPm9u
Q29tcGxldGUodHJhbnNhY3Rpb25JZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgKaW5kZXggY2IxZGRi
MzQ2NmI5ZmJiMWUzMzFkZmJjOTJkNmI0OTY0ZTI1MGRjZS4uZmFiNDViYWVkZmIyMjE0ZWJmODkx
OGEyZTlmYzg2MTYyNmVjMTIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaApAQCAtNDQsNiArNDQsOSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHJlcXVl
c3RlZFZlcnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBv
bGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pOwogCisgICAgdmlydHVhbCB2b2lkIG9uQWJv
cnQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNl
RXJyb3I+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0ZShpbnQ2NF90IHRyYW5zYWN0aW9u
SWQpOworCiBwcml2YXRlOgogICAgIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkoUGFzc093blB0
cjxXZWJJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwCmluZGV4IGZmZjU0OTY1ZTcz
OTBkYWE5YWM5ZGFiZTU0NzEyODcyYTMyM2FlM2YuLjgxM2NlYzlhOTVhYzVjYWI0MmQ4MTk0Njlk
ZWRlNTA1NTNhNzFhZWQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwCkBAIC0yMDUsNiArMjA1LDcgQEAgdm9pZCBJREJG
YWN0b3J5QmFja2VuZFByb3h5OjpnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBwcnBDYWxsYmEKIH0KIAogCisvLyBGSVhNRTogUmVtb3ZlIG9sZCBtZXRob2QgaW4gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KIHZvaWQgSURCRmFj
dG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lv
biwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUNhbGxiYWNrcz4gcHJwRGF0YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpCiB7CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2Fs
bGJhY2tzKHBycENhbGxiYWNrcyk7CkBAIC0yMTcsNiArMjE4LDE4IEBAIHZvaWQgSURCRmFjdG9y
eUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwg
UGFzc1JlZlB0CiAgICAgbV93ZWJJREJGYWN0b3J5LT5vcGVuKG5hbWUsIHZlcnNpb24sIG5ldyBX
ZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIG5ldyBXZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwoZGF0YWJhc2VDYWxsYmFja3MpLCBvcmlnaW4sIHdlYkZyYW1lLCBkYXRhRGlyKTsKIH0K
IAordm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwg
aW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IHBy
cERhdGFiYXNlQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9y
aWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBkYXRh
RGlyKQoreworICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcyhwcnBDYWxsYmFja3Mp
OworICAgIFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MocHJw
RGF0YWJhc2VDYWxsYmFja3MpOworICAgIFdlYlNlY3VyaXR5T3JpZ2luIG9yaWdpbihzZWN1cml0
eU9yaWdpbik7CisgICAgaWYgKCFhbGxvd0luZGV4ZWREQihjb250ZXh0LCBuYW1lLCBvcmlnaW4s
IGNhbGxiYWNrcykpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYkZyYW1lSW1wbCogd2ViRnJh
bWUgPSBnZXRXZWJGcmFtZShjb250ZXh0KTsKKyAgICBtX3dlYklEQkZhY3RvcnktPm9wZW4obmFt
ZSwgdmVyc2lvbiwgdHJhbnNhY3Rpb25JZCwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJh
Y2tzKSwgbmV3IFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbChkYXRhYmFzZUNhbGxiYWNrcyks
IG9yaWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIpOworfQorCiB2b2lkIElEQkZhY3RvcnlCYWNrZW5k
UHJveHk6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJp
dHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
ZGF0YURpcikKIHsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MocHJwQ2FsbGJh
Y2tzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlC
YWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNr
ZW5kUHJveHkuaAppbmRleCA4ODM4MGQ3YTQyZWQxMTczMDI5MzViZWJiY2FjY2ViNmY2ZTk3ZDc4
Li5kMzIxNjk1M2Q4MTdkYjIxNTE0MDUyMDQ0YWE5ODg2ZjZmYmEzOGM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCkBAIC00
OSw3ICs0OSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJGYWN0b3J5QmFja2VuZFByb3h5
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsK
KyAgICAvLyBGSVhNRTogUmVtb3ZlIG9sZCBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBT
dHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxs
YmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNv
bnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJ
REJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGly
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3Ry
aW5nJiBkYXRhRGlyKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IDVhZTg2
YTY3OTZhMTk4NmNlM2Y3ZjgyYzNiZmQxODdhYzBmMjRjNTMuLjZhMzZmZDI5NTZhNDkyMjg0NTQ2
NmNjMDRiZDc0MDVjZjM5M2I4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcApAQCAtNTksNiArNTks
MTcgQEAgdm9pZCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVyc2lvbkNoYW5nZShj
b25zdCBXZWJTdHJpbmcmIHZlcnNpb24pCiAgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lvbkNoYW5n
ZSh2ZXJzaW9uKTsKIH0KIAordm9pZCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uQWJv
cnQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGNvbnN0IFdlYklEQkRhdGFiYXNlRXJyb3ImIGVy
cm9yKQoreworICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KHRyYW5zYWN0aW9uSWQsIGVycm9yKTsK
K30KKwordm9pZCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uQ29tcGxldGUobG9uZyBs
b25nIHRyYW5zYWN0aW9uSWQpCit7CisgICAgbV9jYWxsYmFja3MtPm9uQ29tcGxldGUodHJhbnNh
Y3Rpb25JZCk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKaW5kZXggYjA3MzdlZWIyYTliNjBi
NGU0MzU1YTg0NDBhYzQ1MDkzOGE0YjgzNy4uNTI5M2Q1NDcxYjAxNDBjMGIzODRhZGQ4YWYyMmU2
NTUxZWMzZTZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKQEAgLTQ2LDYgKzQ2LDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBvbkZvcmNlZENsb3NlKCk7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVy
c2lvbkNoYW5nZShsb25nIGxvbmcgb2xkVmVyc2lvbiwgbG9uZyBsb25nIG5ld1ZlcnNpb24pOwog
ICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiB2ZXJzaW9u
KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgY29u
c3QgV2ViSURCRGF0YWJhc2VFcnJvciYpOworICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGxv
bmcgbG9uZyB0cmFuc2FjdGlvbklkKTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6
SURCRGF0YWJhc2VDYWxsYmFja3M+IG1fY2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKaW5kZXggNDAzYTMwYmVlNTEwNzYz
MDc2YWQxNmY2YTlkMzg0MmJiYTlmYmQ0MC4uN2RlMGM3MDgyYjI5YzQ5NDg4ZDAxZWVjMzJkZmJh
NGE1NGMzZjQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
RGF0YWJhc2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJE
YXRhYmFzZUltcGwuY3BwCkBAIC03NSw2ICs3NSw3IEBAIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBs
OjpkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViSURC
CiAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPmRlbGV0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlSWQs
IHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7CiB9
CiAKKy8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogV2ViSURCVHJhbnNhY3Rpb24qIFdlYklEQkRhdGFi
YXNlSW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBjb25zdCBXZWJWZWN0b3I8
bG9uZyBsb25nPiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiB7CiAgICAg
VmVjdG9yPGludDY0X3Q+IG9iamVjdFN0b3JlSWRMaXN0KG9iamVjdFN0b3JlSWRzLnNpemUoKSk7
CkBAIC04Niw2ICs4NywxNSBAQCBXZWJJREJUcmFuc2FjdGlvbiogV2ViSURCRGF0YWJhc2VJbXBs
OjpjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIGNvbnN0IFdlYgogICAgIHJldHVybiBu
ZXcgV2ViSURCVHJhbnNhY3Rpb25JbXBsKHRyYW5zYWN0aW9uKTsKIH0KIAordm9pZCBXZWJJREJE
YXRhYmFzZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgV2ViSURCRGF0YWJh
c2VDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIG9iamVj
dFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQoreworICAgIFZlY3RvcjxpbnQ2NF90PiBv
YmplY3RTdG9yZUlkTGlzdChvYmplY3RTdG9yZUlkcy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgb2JqZWN0U3RvcmVJZHMuc2l6ZSgpOyArK2kpCisgICAgICAgIG9iamVjdFN0
b3JlSWRMaXN0W2ldID0gb2JqZWN0U3RvcmVJZHNbaV07CisgICAgUmVmUHRyPElEQkRhdGFiYXNl
Q2FsbGJhY2tzUHJveHk+IGRhdGFiYXNlQ2FsbGJhY2tzUHJveHkgPSBJREJEYXRhYmFzZUNhbGxi
YWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSk7CisgICAgbV9kYXRhYmFzZUJh
Y2tlbmQtPmNyZWF0ZVRyYW5zYWN0aW9uKGlkLCBkYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmdldCgp
LCBvYmplY3RTdG9yZUlkTGlzdCwgbW9kZSk7Cit9CisKIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBs
OjpjbG9zZSgpCiB7CiAgICAgLy8gVXNlIHRoZSBjYWxsYmFja3MgcGFzc2VkIGluIHRvIHRoZSBj
b25zdHJ1Y3RvciBzbyB0aGF0IHRoZSBiYWNrZW5kIGluCkBAIC0xMDQsNiArMTE0LDE4IEBAIHZv
aWQgV2ViSURCRGF0YWJhc2VJbXBsOjpmb3JjZUNsb3NlKCkKICAgICBjYWxsYmFja3MtPm9uRm9y
Y2VkQ2xvc2UoKTsKIH0KIAordm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmFib3J0KGxvbmcgbG9u
ZyB0cmFuc2FjdGlvbklkKQoreworICAgIGlmIChtX2RhdGFiYXNlQmFja2VuZCkKKyAgICAgICAg
bV9kYXRhYmFzZUJhY2tlbmQtPmFib3J0KHRyYW5zYWN0aW9uSWQpOworfQorCit2b2lkIFdlYklE
QkRhdGFiYXNlSW1wbDo6Y29tbWl0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkKQoreworICAgIGlm
IChtX2RhdGFiYXNlQmFja2VuZCkKKyAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPmNvbW1pdCh0
cmFuc2FjdGlvbklkKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCRGF0YWJhc2VJbXBsLmgKaW5kZXggNjZhYTg0ZGJhOGE4M2M5ODE4YWRjOTYyZTNjYjcy
MDI1N2RhNzJhZi4uZWU4ZTY0ZDY5NWE5OTBlZmYzOTI2ZTg2OWY1MDM5YTQxYTBlNmNkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKQEAg
LTU0LDkgKzU0LDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgV2ViSURCT2JqZWN0U3RvcmUq
IGNyZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZywgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25z
dCBXZWJJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBjb25zdCBXZWJJREJUcmFuc2Fj
dGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0
U3RvcmUobG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwg
V2ViRXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBSZW1vdmUgb2xkIG1ldGhvZCBpbiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1
YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29u
c3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKKyAgICB2aXJ0
dWFsIHZvaWQgY3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBXZWJJREJEYXRhYmFzZUNh
bGxiYWNrcyosIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgdW5zaWduZWQgc2hvcnQgbW9k
ZSk7CiAgICAgdmlydHVhbCB2b2lkIGZvcmNlQ2xvc2UoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xv
c2UoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQpOwor
ICAgIHZpcnR1YWwgdm9pZCBjb21taXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQpOwogCiBwcml2
YXRlOgogICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZT4gbV9kYXRhYmFzZUJhY2tlbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJGYWN0b3J5SW1wbC5jcHAKaW5kZXggOTRhOGQ0NjhhOTBhOTBjNDEyYzdhYTZjOThhZWZi
NzRiYjdhMzdiOC4uMDU1YzViOTE5MTQ4ZTg0NjZmNjcxYzI5ZTQwZGQxMGM3MjhjNDY5YiAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcApA
QCAtNjUsNiArNjUsNyBAQCB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpnZXREYXRhYmFzZU5hbWVz
KFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZQogICAgIG1faWRiRmFjdG9y
eUJhY2tlbmQtPmdldERhdGFiYXNlTmFtZXMoSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9w
dFB0cihjYWxsYmFja3MpKSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKIH0KIAorLy8gRklYTUU6IFJl
bW92ZSBvbGQgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM5MjMuCiB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYg
bmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBXZWJJ
REJEYXRhYmFzZUNhbGxiYWNrcyogZGF0YWJhc2VDYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5
T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKQogewog
ICAgIFJlZlB0cjxJREJDYWxsYmFja3NQcm94eT4gY2FsbGJhY2tzUHJveHkgPSBJREJDYWxsYmFj
a3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpOwpAQCAtNzMsNiArNzQsMTQgQEAg
dm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGxvbmcg
bG9uZyB2ZXJzaW9uLCBXZWJJREJDYWwKICAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5h
bWUsIHZlcnNpb24sIGNhbGxiYWNrc1Byb3h5LmdldCgpLCBkYXRhYmFzZUNhbGxiYWNrc1Byb3h5
LmdldCgpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOwogfQogCit2b2lkIFdlYklEQkZhY3RvcnlJbXBs
OjpvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIGxvbmcgbG9u
ZyB0cmFuc2FjdGlvbklkLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViSURCRGF0YWJh
c2VDYWxsYmFja3MqIGRhdGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYg
b3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikKK3sKKyAgICBSZWZQ
dHI8SURCQ2FsbGJhY2tzUHJveHk+IGNhbGxiYWNrc1Byb3h5ID0gSURCQ2FsbGJhY2tzUHJveHk6
OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2VDYWxs
YmFja3NQcm94eT4gZGF0YWJhc2VDYWxsYmFja3NQcm94eSA9IElEQkRhdGFiYXNlQ2FsbGJhY2tz
UHJveHk6OmNyZWF0ZShhZG9wdFB0cihkYXRhYmFzZUNhbGxiYWNrcykpOworICAgIGNhbGxiYWNr
c1Byb3h5LT5zZXREYXRhYmFzZUNhbGxiYWNrcyhkYXRhYmFzZUNhbGxiYWNrc1Byb3h5KTsKKyAg
ICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIHZlcnNpb24sIHRyYW5zYWN0aW9uSWQs
IGNhbGxiYWNrc1Byb3h5LmdldCgpLCBkYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmdldCgpLCBvcmln
aW4sIDAsIGRhdGFEaXIpOworfQorCiB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpkZWxldGVEYXRh
YmFzZShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBj
b25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmlu
ZyYgZGF0YURpcikKIHsKICAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5kZWxldGVEYXRhYmFzZShu
YW1lLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLCBvcmln
aW4sIDAsIGRhdGFEaXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCRmFjdG9yeUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZh
Y3RvcnlJbXBsLmgKaW5kZXggMzNmNWEyMWQyYzc0ZjU4ZGZmOTRlMWViN2I5MGU1YWQ0MzBkMTYy
Ny4uNzRhZjBkZTcwYzUyYzI0YzY0ZTc1N2QwYmQ2OTdhNDU4ZGJmYmQ1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oCkBAIC00NSw3ICs0NSw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJJREJGYWN0b3J5SW1wbCgpOwogCiAgICAgdmly
dHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2Vj
dXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7CisgICAg
Ly8gRklYTUU6IFJlbW92ZSBvbGQgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3Ry
aW5nJiBuYW1lLCBsb25nIGxvbmcgdmVyc2lvbiwgV2ViSURCQ2FsbGJhY2tzKiwgV2ViSURCRGF0
YWJhc2VDYWxsYmFja3MqLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29u
c3QgV2ViU3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIGxvbmcgbG9uZyB2ZXJzaW9uLCBsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwg
V2ViSURCQ2FsbGJhY2tzKiwgV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqLCBjb25zdCBXZWJTZWN1
cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJD
YWxsYmFja3MqLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2Vi
U3RyaW5nJiBkYXRhRGlyKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAppbmRleCBlYzA3OWY1MGNk
M2NiY2U5ZGZlMjEyMTM5ZDQ2MDdlMTk0NGYzYTJiLi4yZjM5ZWI1NjBmNzMyN2Y1YTdmZTE1YWVj
MDljM2RlYjU0ZDY2YWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCkBAIC0xMDgsNiArMTA4LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9u
KSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qg
b2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgb25Gb3JjZWRDbG9zZSgpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvbkFi
b3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBl
cnJvcikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoaW50NjRfdCB0
cmFuc2FjdGlvbklkKSBPVkVSUklERSB7IH0KIHByaXZhdGU6CiAgICAgRmFrZUlEQkRhdGFiYXNl
Q2FsbGJhY2tzKCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKaW5kZXggMGQyNjIyNDY2NTM4MTRhNDdk
Yzk4ZmE4YjNjOWZhMGI5YTIxMmJhMy4uYWE5M2U1NzM5YmQ5NTJiYzJhZTZiM2FmNDU5YzlmZWUy
ODlkZGU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRh
YmFzZUJhY2tlbmRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lE
QkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCkBAIC0xMDgsNiArMTA4LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKSBPVkVS
UklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVy
c2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
b25Gb3JjZWRDbG9zZSgpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0KGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikg
T1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoaW50NjRfdCB0cmFuc2Fj
dGlvbklkKSBPVkVSUklERSB7IH0KIHByaXZhdGU6CiAgICAgRmFrZUlEQkRhdGFiYXNlQ2FsbGJh
Y2tzKCkgeyB9CiB9OwpAQCAtMTUyLDcgKzE1NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVPYmplY3RTdG9y
ZShpbnQ2NF90LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1
dG9JbmNyZW1lbnQsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNv
ZGUmKSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNv
bnN0IFN0cmluZyYgbmFtZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0
aW9uQ29kZSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90
LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgeyB9Cisg
ICAgLy8gRklYTUU6IFJlbW92ZSBvbGQgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCwgY29uc3Qg
VmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkgeyByZXR1cm4gMDsgfQorICAg
IHZvaWQgY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpIHsg
fQogCiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFj
a3M+KQogICAgIHsKQEAgLTE2MCw2ICsxNjQsOSBAQCBwdWJsaWM6CiAgICAgICAgIG1fd2ViRGF0
YWJhc2UuY2xvc2UoKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoaW50NjRfdCB0
cmFuc2FjdGlvbklkKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0KGludDY0X3QgdHJhbnNh
Y3Rpb25JZCkgeyB9CisKIHByaXZhdGU6CiAgICAgTW9ja0lEQkRhdGFiYXNlQmFja2VuZFByb3h5
KFdlYklEQkRhdGFiYXNlSW1wbCYgd2ViRGF0YWJhc2UpCiAgICAgICAgIDogbV93YXNDbG9zZUNh
bGxlZChmYWxzZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177591</attachid>
            <date>2012-12-04 15:54:29 -0800</date>
            <delta_ts>2012-12-05 10:11:03 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-103921-20121204155154.patch</filename>
            <type>text/plain</type>
            <size>46361</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjk0OWI1Y2I5MzQwZjk2
ZDk0YzdjNGE3MjQ3ZTkzYjViZDkxNGQzNi4uZGRkMzg2YzM0NGI4MDk4YmVkMjZiY2E3MTVkYzk2
MDVlMDJlZjllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTEyLTAzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFN0
dWIgb3V0IHRyYW5zYWN0aW9uLWJhY2tlbmQgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gcHJlcGFyYXRpb24gZm9yIGEgcmVmYWN0b3Jp
bmcuIExlZ2FjeSBtZXRob2RzIAorICAgICAgICB3aWxsIGJlIHJlbW92ZWQgaW4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIGp1c3QgYWRkaW5nIHVudXNlZCBtZXRob2RzIGZvciByZWZhY3RvcmluZy4KKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ2FsbGJhY2tzOjpvblVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpv
bkFib3J0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJh
c2U6Om9uQ29tcGxldGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
Lmg6CisgICAgICAgIChJREJEYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmg6CisgICAg
ICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZEltcGw6OmNvbW1pdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjphYm9ydCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmg6
CisgICAgICAgIChJREJEYXRhYmFzZUNhbGxiYWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25BYm9ydCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25Db21wbGV0ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6Cisg
ICAgICAgIChJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJG
YWN0b3J5QmFja2VuZEltcGw6Om9wZW4pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnlCYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tl
bmRJbXBsOjpvcGVuKToKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kSW1wbCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAg
ICAgKElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJl
cXVlc3Q6Om9uVXBncmFkZU5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0Lmg6CisgICAgICAgIChJREJPcGVuREJS
ZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaDoKKwogMjAxMi0xMS0yNyAgQWxlYyBG
bGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiByZW1v
dmUgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjp0cmFuc2FjdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IDg0M2UzZjNlY2JiNjkwODg2MjA4N2ExNGM5YjQ4NzI4MjJjNDBj
MDguLjUyOTQ1ODJkZDM5YzY2YzBjNmY5ZTllMmQ1ZDVkOTRmNTNhNjczMGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzYgQEAKKzIwMTItMTItMDMgIEFsZWMgRmxldHQg
IDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogU3R1YiBvdXQg
dHJhbnNhY3Rpb24tYmFja2VuZCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IHNpZ25hdHVyZXMgZm9yIHJlZmFjdG9yaW5nLCB0
byBhbGxvdworICAgICAgICB0cmFuc2FjdGlvbl9pZHMgdG8gbWFrZSBpcyB0aHJvdWdoIHRoZSBv
cGVuL29uVXBncmFkZU5lZWRlZAorICAgICAgICBsb29wLgorCisgICAgICAgICogcHVibGljL1dl
YklEQkNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3M6Om9uVXBn
cmFkZU5lZWRlZCk6CisgICAgICAgICogcHVibGljL1dlYklEQkRhdGFiYXNlLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQkRhdGFiYXNlOjpjcmVhdGVUcmFuc2FjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkRhdGFiYXNlOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRh
dGFiYXNlOjpjb21taXQpOgorICAgICAgICAoV2ViSURCRGF0YWJhc2UpOgorICAgICAgICAqIHB1
YmxpYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VD
YWxsYmFja3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrczo6b25B
Ym9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzOjpvbkNvbXBs
ZXRlKToKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCRmFjdG9yeS5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJJREJGYWN0b3J5OjpvcGVuKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJREJDYWxsYmFja3NQcm94eTo6b25VcGdyYWRlTmVlZGVk
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6
CisgICAgICAgIChJREJDYWxsYmFja3NQcm94eSk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VCYWNrZW5kUHJv
eHk6OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJL
aXQ6OklEQkRhdGFiYXNlQmFja2VuZFByb3h5Ojpjb21taXQpOgorICAgICAgICAoV2ViS2l0OjpJ
REJEYXRhYmFzZUJhY2tlbmRQcm94eTo6YWJvcnQpOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFz
ZUJhY2tlbmRQcm94eS5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kUHJveHkpOgorICAg
ICAgICAqIHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25BYm9ydCk6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvbkNvbXBsZXRl
KToKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oOgorICAgICAgICAo
SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eSk6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNr
ZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJGYWN0b3J5QmFja2VuZFByb3h5Ojpv
cGVuKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNrZW5k
UHJveHkuaDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNy
Yy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJh
Y2tzSW1wbDo6b25VcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
c3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKFdlYklEQkNhbGxiYWNrc0ltcGwp
OgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uQWJvcnQpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
OjpvbkNvbXBsZXRlKToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
Lmg6CisgICAgICAgIChXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNy
Yy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFz
ZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJEYXRhYmFzZUltcGw6OmNvbW1pdCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1w
bC5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURC
RmFjdG9yeUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5SW1wbDo6b3Bl
bik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJJREJGYWN0b3J5SW1wbC5o
OgorICAgICAgICAoV2ViSURCRmFjdG9yeUltcGwpOgorICAgICAgICAqIHRlc3RzL0lEQkFib3J0
T25Db3JydXB0VGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVz
dC5jcHA6CisKIDIwMTItMTEtMjcgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEluZGV4ZWREQjogcmVtb3ZlIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZTo6dHJhbnNhY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2UuY3BwCmluZGV4IDczODIzYzVmZDk0YTJhZTAwODI2ZmYzYjM1MGJkNWY3MzYx
ZDFhMmQuLjA3NGZlYmI0YzUwNDY2MzQyZmE5OTc3ODc1NzM3Y2M3MDc3OGRhOGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTEx
Myw2ICsxMTMsMTYgQEAgdm9pZCBJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb25GaW5pc2hlZChJREJU
cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCiAgICAgICAgIGNsb3NlQ29ubmVjdGlvbigpOwogfQog
Cit2b2lkIElEQkRhdGFiYXNlOjpvbkFib3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKwordm9pZCBJREJEYXRhYmFzZTo6b25Db21wbGV0ZShpbnQ2NF90IHRyYW5zYWN0aW9u
SWQpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIFBhc3NSZWZQdHI8RE9NU3Ry
aW5nTGlzdD4gSURCRGF0YWJhc2U6Om9iamVjdFN0b3JlTmFtZXMoKSBjb25zdAogewogICAgIFJl
ZlB0cjxET01TdHJpbmdMaXN0PiBvYmplY3RTdG9yZU5hbWVzID0gRE9NU3RyaW5nTGlzdDo6Y3Jl
YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2Uu
aAppbmRleCBhOGFiOTRkOTQ5M2JkZTgzYmJhNzk4MDRiNDUwMGE1ODA4YjQ1ZGI5Li43Yjc2MjQy
MTQwNzRlMWY5NjcwMzAxZGMwYmQyOGQzNDZjNGNmMDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKQEAgLTc3LDYgKzc3LDggQEAgcHVibGlj
OgogICAgIC8vIElEQkRhdGFiYXNlQ2FsbGJhY2tzCiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lv
bkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbik7CiAgICAgdmly
dHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHJlcXVlc3RlZFZlcnNpb24p
OworICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0KGludDY0X3QsIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VFcnJvcj4pOworICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3QpOwogCiAgICAg
Ly8gQWN0aXZlRE9NT2JqZWN0CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggNDYzODg3NzY0YjU3ZGUzNmQ1ZDlkMTdiZGMzZGY5NDhm
NGFjNTk1ZC4uY2IzYjMxNzk1NTQ1Y2VkN2FiYWU4NGY0NjE3ZmRiZjhhY2RjZGFkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5jcHAKQEAgLTM4MCw2ICszODAsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFj
a2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogICAgIH0KIH0KIAorLy8gRklYTUU6IFJl
bW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzOTIzLgogUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IElE
QkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hv
cnQgbW9kZSkKIHsKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gdHJhbnNh
Y3Rpb24gPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUodHJhbnNhY3Rpb25JZCwg
b2JqZWN0U3RvcmVJZHMsIG1vZGUsIHRoaXMpOwpAQCAtMzg3LDYgKzM4OCwxMSBAQCBQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5kSW1w
bDo6Y3JlYXRlVHJhbnNhYwogICAgIHJldHVybiB0cmFuc2FjdGlvbi5yZWxlYXNlKCk7CiB9CiAK
K3ZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0
cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBjYWxsYmFja3Ms
IGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1v
ZGUpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIHZvaWQgSURCRGF0YWJhc2VC
YWNrZW5kSW1wbDo6b3BlbkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxi
YWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3Mp
CiB7CiAgICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaApp
bmRleCBkZjBiYTJkYWI0MzQ4YWRjNzY3OGQ0ZDcwM2JhYjA5MGU4YTZiNmMyLi4yOWU0ZTUzNmUy
MGEwMTYwZmE2ZDUyNmRlN2ZiZWVhYjA2NDYxODRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC02
Myw5ICs2MywxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJEYXRhYmFzZU1ldGFkYXRhIG1l
dGFkYXRhKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFj
a2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCBpZCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGlu
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJh
bnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9i
amVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKKyAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5z
aWduZWQgc2hvcnQgbW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VDYWxsYmFja3M+KTsKIAorICAgIHZpcnR1YWwgdm9pZCBjb21taXQoaW50NjRfdCB0
cmFuc2FjdGlvbklkKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2b2lk
IGFib3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQor
CiAgICAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZShp
bnQ2NF90IGlkKTsKICAgICBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yKiB0cmFuc2FjdGlvbkNv
b3JkaW5hdG9yKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2FjdGlvbkNvb3JkaW5hdG9yLmdldCgp
OyB9CiAgICAgdm9pZCB0cmFuc2FjdGlvblN0YXJ0ZWQoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCmluZGV4IDg1MDA2MmMy
OTE4NzMyYmEzNGE5MjdjN2IwN2U5OTVlYTkwMzY0ZGYuLmIwNTk1MTU0NDU5NzJhOTQ3MDA2NjU4
ZTg5N2RlMzhiYmZjOWU2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCkBAIC01NSw4
ICs1NSwxNCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90LCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlz
IG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIz
LgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+
IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGlu
dDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVj
dFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNs
b3NlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBUcmFu
c2FjdGlvbi1zcGVjaWZpYyBvcGVyYXRpb25zLgorICAgIHZpcnR1YWwgdm9pZCBjb21taXQoaW50
NjRfdCB0cmFuc2FjdGlvbklkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KGludDY0X3Qg
dHJhbnNhY3Rpb25JZCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFj
a3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJh
Y2tzLmgKaW5kZXggNDY5M2U2MzdhZWRhYWNiYzRjMTlmYTBlNDg1NDk0MmVkMTMyNWMzYi4uOTgy
NjgzN2IxN2ZmNDcxM2IyMWEwNjQ3ODBmMWY1ZTU0M2MzMzNkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oCkBA
IC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVy
c2lvbikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRW
ZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBvbkFi
b3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3QgdHJhbnNhY3Rpb25JZCkg
PSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5j
cHAKaW5kZXggOTcwZDNhMTY3Y2FmOTk2YzdmMDMxZmY1NGE0ZjE1OTI0OWYxYWEwYi4uNDExYWYz
YzY4MDc1ZTg4YzA0NGFkMTMxNzZlYjM1YTE5ZmQyNGVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0lt
cGwuY3BwCkBAIC03MSw2ICs3MSwxOCBAQCB2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6
Y29ubmVjdChJREJEYXRhYmFzZSogZGF0YWJhc2UpCiAgICAgbV9kYXRhYmFzZSA9IGRhdGFiYXNl
OwogfQogCit2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25BYm9ydChpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpCit7CisgICAg
aWYgKG1fZGF0YWJhc2UpCisgICAgICAgIG1fZGF0YWJhc2UtPm9uQWJvcnQodHJhbnNhY3Rpb25J
ZCwgZXJyb3IpOworfQorCit2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25Db21wbGV0
ZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQpCit7CisgICAgaWYgKG1fZGF0YWJhc2UpCisgICAgICAg
IG1fZGF0YWJhc2UtPm9uQ29tcGxldGUodHJhbnNhY3Rpb25JZCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCmluZGV4IGJiNGExYWU3
NGU4MjI3MzhiMzNkZDZjMDgwOWU3MmU2MTBmZDNjYmMuLjNjMTRmOGFlODdjMjI5ODNkZjlmMzcx
ODMwNjVkYzEzODY0MjNmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCkBAIC00Niw2ICs0Niw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmlu
ZyYgdmVyc2lvbik7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9s
ZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgb25BYm9y
dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pOwor
ICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3QgdHJhbnNhY3Rpb25JZCk7CisKICAg
ICB2b2lkIGNvbm5lY3QoSURCRGF0YWJhc2UqKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKaW5kZXggYzE0YzY4YzkxZjYz
NGFlNzk5MjllM2Y1YjIyMmFkNDMwNzQ5MzU2My4uMTM0NjE5NDY5NTU0MDhlNGIwODJkOTM3ODVm
MmE1OTU3OGUzZWQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeS5jcHAKQEAgLTEyNyw3ICsxMjcsOSBAQCBQYXNzUmVmUHRyPElEQk9wZW5EQlJl
cXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW5JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
bwogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrc0lt
cGw+IGRhdGFiYXNlQ2FsbGJhY2tzID0gSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpjcmVhdGUo
KTsKLSAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gcmVxdWVzdCA9IElEQk9wZW5EQlJlcXVl
c3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZU51bGwoKSwgZGF0YWJhc2VDYWxsYmFj
a3MsIHZlcnNpb24pOworICAgIGludDY0IHRyYW5zYWN0aW9uSWQgPSBJREJEYXRhYmFzZTo6bmV4
dFRyYW5zYWN0aW9uSWQoKTsKKyAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gcmVxdWVzdCA9
IElEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZU51bGwoKSwg
ZGF0YWJhc2VDYWxsYmFja3MsIHRyYW5zYWN0aW9uSWQsIHZlcnNpb24pOworICAgIC8vIEZJWE1F
OiBwYXNzIHRoZSB0cmFuc2FjdGlvbklkIGluIGhlcmUgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMgogICAgIG1fYmFja2VuZC0+b3BlbihuYW1lLCB2ZXJz
aW9uLCByZXF1ZXN0LCBkYXRhYmFzZUNhbGxiYWNrcywgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4o
KSwgY29udGV4dCwgZ2V0SW5kZXhlZERCRGF0YWJhc2VQYXRoKGNvbnRleHQpKTsKICAgICByZXR1
cm4gcmVxdWVzdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwCmluZGV4IDJkNTg0MmNkMTUwNGMxZmRj
YTEzNThlMWY4M2Q4ZGFhYjg0OWQzNTguLjIzNDcwYzhkYTc3NmQyNGE2OWNhYTUzODdkZGQ1NzA4
ZjgwNWM2ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIFBhc3NS
ZWZQdHI8SURCQmFja2luZ1N0b3JlPiBJREJGYWN0b3J5QmFja2VuZEltcGw6Om9wZW5CYWNraW5n
U3RvcmUoUGFzc1JlZlB0cjxTCiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgSURCRmFjdG9yeUJh
Y2tlbmRJbXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gcHJw
U2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRh
dGFEaXJlY3RvcnkpCit2b2lkIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3Blbihjb25zdCBTdHJp
bmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJh
Y2tzPiBkYXRhYmFzZUNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gcHJwU2Vj
dXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFE
aXJlY3RvcnkpCiB7CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9
IHBycFNlY3VyaXR5T3JpZ2luOwogICAgIGNvbnN0IFN0cmluZyB1bmlxdWVJZGVudGlmaWVyID0g
Y29tcHV0ZVVuaXF1ZUlkZW50aWZpZXIobmFtZSwgc2VjdXJpdHlPcmlnaW4uZ2V0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tl
bmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFj
a2VuZEltcGwuaAppbmRleCA3YTAyMGZiNjBkMmFhOTYzYzY0MjljNDVkOTYwMzdmNmQyMjFiZWQ5
Li4zYzExY2QzNWEyOTgxNDBlMDdkNmQ4ZjkxYmY2NTUyOTM2NWI0YTExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZElt
cGwuaApAQCAtMjgsNiArMjgsOCBAQAogI2lmbmRlZiBJREJGYWN0b3J5QmFja2VuZEltcGxfaAog
I2RlZmluZSBJREJGYWN0b3J5QmFja2VuZEltcGxfaAogCisjaW5jbHVkZSAiSURCQ2FsbGJhY2tz
LmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VDYWxsYmFja3MuaCIKICNpbmNsdWRlICJJREJGYWN0
b3J5QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTU2LDcgKzU4LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlSURCQmFja2luZ1N0b3JlKGNvbnN0IFN0cmluZyYgZmlsZUlkZW50aWZp
ZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29u
c3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsK
KyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3Qg
U3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJh
Y2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG9wZW4obmFtZSwgdmVyc2lvbiwgMCwgY2FsbGJhY2tzLCBkYXRhYmFzZUNh
bGxiYWNrcywgc2VjdXJpdHlPcmlnaW4sIGNvbnRleHQsIGRhdGFEaXIpOworICAgIH0KKyAgICB2
aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50
NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CisKICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNh
bGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlLmgKaW5kZXggYmFiMjE5ZjVmNGVjNTRkZjIzYWM3ZGY0ZjQ1NGI3NmZhZWI3MmYy
ZS4uZWJjNjI5ZjliY2ExOGRlMWQ4MjhjZDJhZjcyMGNlNWJmOTlhYTkwNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFj
a2VuZEludGVyZmFjZS5oCkBAIC01NCw3ICs1NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5J
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGdldERh
dGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikg
PSAwOworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIHZvaWQgb3Blbihj
b25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0
eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3Qg
dmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4s
IFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVz
dC5jcHAKaW5kZXggZjJlNzZkNzE1MDU2MTE5ZTQ4N2Q1NzY4ODBhNGQwZjhkN2ZmZGYyZC4uZGY0
ZDJkMDEzNWU1MzhhZTJmOWY0MzI2NDhlOGU4ZDgwZTRhYjU0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKQEAgLTM3
LDE2ICszNywxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8SURCT3Bl
bkRCUmVxdWVzdD4gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsPiBjYWxsYmFja3MsIGludDY0X3QgdmVyc2lvbikKK1Bhc3NSZWZQ
dHI8SURCT3BlbkRCUmVxdWVzdD4gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsPiBjYWxsYmFja3MsIGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgaW50NjRfdCB2ZXJzaW9uKQogewotICAgIFJlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBy
ZXF1ZXN0KGFkb3B0UmVmKG5ldyBJREJPcGVuREJSZXF1ZXN0KGNvbnRleHQsIHNvdXJjZSwgY2Fs
bGJhY2tzLCB2ZXJzaW9uKSkpOworICAgIFJlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiByZXF1ZXN0
KGFkb3B0UmVmKG5ldyBJREJPcGVuREJSZXF1ZXN0KGNvbnRleHQsIHNvdXJjZSwgY2FsbGJhY2tz
LCB0cmFuc2FjdGlvbklkLCB2ZXJzaW9uKSkpOwogICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRl
ZCgpOwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotSURCT3BlbkRCUmVxdWVz
dDo6SURCT3BlbkRCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNz
UmVmUHRyPElEQkFueT4gc291cmNlLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bD4gY2FsbGJhY2tzLCBpbnQ2NF90IHZlcnNpb24pCitJREJPcGVuREJSZXF1ZXN0OjpJREJPcGVu
REJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURC
QW55PiBzb3VyY2UsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsPiBjYWxsYmFj
a3MsIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCB2ZXJzaW9uKQogICAgIDogSURCUmVx
dWVzdChjb250ZXh0LCBzb3VyY2UsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTo6Tm9y
bWFsVGFzaywgMCkKICAgICAsIG1fZGF0YWJhc2VDYWxsYmFja3MoY2FsbGJhY2tzKQorICAgICwg
bV90cmFuc2FjdGlvbklkKHRyYW5zYWN0aW9uSWQpCiAgICAgLCBtX3ZlcnNpb24odmVyc2lvbikK
IHsKICAgICBBU1NFUlQoIW1fcmVzdWx0KTsKQEAgLTg5LDggKzkwLDcgQEAgdm9pZCBJREJPcGVu
REJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRy
PElEQlRyYW5zYWMKICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzLT5jb25uZWN0KGlkYkRhdGFiYXNl
LmdldCgpKTsKICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzID0gMDsKIAotICAgIGludDY0X3QgdHJh
bnNhY3Rpb25JZCA9IElEQkRhdGFiYXNlOjpuZXh0VHJhbnNhY3Rpb25JZCgpOwotICAgIFJlZlB0
cjxJREJUcmFuc2FjdGlvbj4gZnJvbnRlbmQgPSBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgdHJhbnNhY3Rpb25JZCwgdHJhbnNhY3Rpb25CYWNrZW5kLCBW
ZWN0b3I8U3RyaW5nPigpLCBJREJUcmFuc2FjdGlvbjo6VkVSU0lPTl9DSEFOR0UsIGlkYkRhdGFi
YXNlLmdldCgpLCB0aGlzKTsKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGZyb250ZW5kID0g
SURCVHJhbnNhY3Rpb246OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fdHJhbnNh
Y3Rpb25JZCwgdHJhbnNhY3Rpb25CYWNrZW5kLCBWZWN0b3I8U3RyaW5nPigpLCBJREJUcmFuc2Fj
dGlvbjo6VkVSU0lPTl9DSEFOR0UsIGlkYkRhdGFiYXNlLmdldCgpLCB0aGlzKTsKICAgICB0cmFu
c2FjdGlvbkJhY2tlbmQtPnNldENhbGxiYWNrcyhmcm9udGVuZC5nZXQoKSk7CiAgICAgbV90cmFu
c2FjdGlvbiA9IGZyb250ZW5kOwogICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGUoaWRiRGF0
YWJhc2UucmVsZWFzZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9wZW5EQlJlcXVlc3QuaAppbmRleCBhNTUxNDI2NGUzNGIyMGU2OGRmNGI3NmI2OGVh
ZDFjZDgwZjhmMDkzLi42ZDVmOTA5Mzc3ZWE0ZTc3YmU1NjU3MzJkYTExZTc2YTUxMzY0NTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1
ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVx
dWVzdC5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDsK
IAogY2xhc3MgSURCT3BlbkRCUmVxdWVzdCA6IHB1YmxpYyBJREJSZXF1ZXN0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsPiwgaW50NjRfdCB2ZXJzaW9uKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsPiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHZlcnNpb24pOwogICAgIHZp
cnR1YWwgfklEQk9wZW5EQlJlcXVlc3QoKTsKIAogICAgIHVzaW5nIElEQlJlcXVlc3Q6Om9uU3Vj
Y2VzczsKQEAgLTU2LDkgKzU2LDEwIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkRW5xdWV1ZUV2ZW50KCkgY29uc3QgT1ZFUlJJREU7CiAKIHByaXZhdGU6Ci0gICAgSURCT3Bl
bkRCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJBbnk+IHNv
dXJjZSwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw+LCBpbnQ2NF90IHZlcnNp
b24pOworICAgIElEQk9wZW5EQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NS
ZWZQdHI8SURCQW55PiBzb3VyY2UsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
PiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHZlcnNpb24pOwogCiAgICAgUmVmUHRy
PElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbD4gbV9kYXRhYmFzZUNhbGxiYWNrczsKKyAgICBjb25z
dCBpbnQ2NF90IG1fdHJhbnNhY3Rpb25JZDsKICAgICBpbnQ2NF90IG1fdmVyc2lvbjsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggY2M3NGQxMTU2ODE3YmEzMjhh
MWMxZDc5NmM2MTJiYjFkNTJhYjg4NS4uMGY1ODZiYmI0MTlmMjhiYzRkZTViYzYxZWZkNTdiYzQ5
YTFhYWNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTQwLDcgKzQw
LDYgQEAgY2xhc3MgSURCVHJhbnNhY3Rpb25DYWxsYmFja3M7CiAKIHR5cGVkZWYgaW50IEV4Y2Vw
dGlvbkNvZGU7CiAKLS8vIFRoaXMgY2xhc3MgaXMgc2hhcmVkIGJ5IElEQlRyYW5zYWN0aW9uIChh
c3luYykgYW5kIElEQlRyYW5zYWN0aW9uU3luYyAoc3luYykuCiAvLyBUaGlzIGlzIGltcGxlbWVu
dGVkIGJ5IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwgYW5kIG9wdGlvbmFsbHkgb3RoZXJzIChp
biBvcmRlciB0byBwcm94eQogLy8gY2FsbHMgYWNyb3NzIHByb2Nlc3MgYmFycmllcnMpLiBBbGwg
Y2FsbHMgdG8gdGhlc2UgY2xhc3NlcyBzaG91bGQgYmUgbm9uLWJsb2NraW5nIGFuZAogLy8gdHJp
Z2dlciB3b3JrIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQgaWYgbmVjZXNzYXJ5LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGlu
YXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25D
b29yZGluYXRvci5oCmluZGV4IDgyOTk4NTMyMjBjY2FhNjQ1NGNmNjQyZTgwNTk4NDA4MjYzMzRi
ZjMuLjYwOTA2ZmUzNWY0YTU3ZDZhYzRmMGE3MTM3MzQ0NzFhMDBjODYxNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bkNvb3JkaW5hdG9yLmgKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQogCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSURCRGF0YWJhc2UuaAppbmRleCA5NWJhZjY2YjY1MThjOThhMGZhNTc4YmIyNjRmM2ZjMTll
Y2Q1ZGY0Li4xNjc2YWU2NjMwYjFlZDk4NDA4OTgzNmIwMDY0ODc1ODE0YWUzZGUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKQEAgLTU2LDEw
ICs1NiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGNvbnN0IFdl
YklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpIHsgV0VC
S0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1l
dGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgog
ICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9u
ZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKSB7
IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgY3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBXZWJJREJEYXRhYmFzZUNhbGxiYWNr
cyogY2FsbGJhY2tzLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0
IG1vZGUpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lk
IGNsb3NlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZm9yY2VDbG9zZSgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKKyAgICB2
aXJ0dWFsIHZvaWQgYWJvcnQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQpIHsgV0VCS0lUX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdChsb25nIGxvbmcgdHJh
bnNhY3Rpb25JZCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKwogcHJvdGVjdGVk
OgogICAgIFdlYklEQkRhdGFiYXNlKCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKaW5kZXggMTJkYTdl
MGI0NzZiMTE0NWRkNjkzMTQwZTMxZGE4YWM1ZTE4OTc1MS4uYjQ2MjY2MWRlZjExNWI4ZWRiNTZj
MTMzYmFhYWU3NDA0ZjQ0NjA0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
aWZuZGVmIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzX2gKICNkZWZpbmUgV2ViSURCRGF0YWJhc2VD
YWxsYmFja3NfaAogCisjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUg
InBsYXRmb3JtL1dlYkNvbW1vbi5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5oIgog
CkBAIC0zOCw2ICszOSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9z
ZSgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9u
VmVyc2lvbkNoYW5nZShsb25nIGxvbmcgb2xkVmVyc2lvbiwgbG9uZyBsb25nIG5ld1ZlcnNpb24p
IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uVmVy
c2lvbkNoYW5nZShjb25zdCBXZWJTdHJpbmcmIHJlcXVlc3RlZFZlcnNpb24pIHsgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydChsb25nIGxv
bmcgdHJhbnNhY3Rpb25JZCwgY29uc3QgV2ViSURCRGF0YWJhc2VFcnJvciYpIHsgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUobG9uZyBs
b25nIHRyYW5zYWN0aW9uSWQpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYklEQkZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQkZhY3RvcnkuaAppbmRleCAxMmVjZjA3YzcyNzcyMDViYmI2ZDY5N2E4YjhjYjIzMzFj
ZTEzNWFiLi5lYmEzODg0NGNmOWI2ZDAxNjE2N2YxOWVmYTc2NmQzM2Y3YWYyZGI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJGYWN0b3J5LmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRmFjdG9yeS5oCkBAIC01Niw3ICs1
Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhXZWJJREJD
YWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgV2Vi
RnJhbWUqIGZyYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpIHsgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9CiAKICAgICAvLyBUaGUgV2ViS2l0IGltcGxlbWVudGF0aW9uIG9mIG9w
ZW4gaWdub3JlcyB0aGUgV2ViRnJhbWUqIHBhcmFtZXRlci4KKyAgICAvLyBGSVhNRTogUmVtb3Zl
IHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDM5MjMuCiAgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBsb25n
IGxvbmcgdmVyc2lvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIFdlYklEQkRhdGFiYXNl
Q2FsbGJhY2tzKiBkYXRhYmFzZUNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9y
aWdpbiwgV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2Vi
U3RyaW5nJiBuYW1lLCBsb25nIGxvbmcgdmVyc2lvbiwgbG9uZyBsb25nIHRyYW5zYWN0aW9uSWQs
IFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyogZGF0
YWJhc2VDYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1l
KiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYlN0
cmluZyYgbmFtZSwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBX
ZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikgeyBXRUJLSVRfQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAKaW5kZXggZTljODBkMGNmNjI5ZWMyNDc3YWRhMTNi
ODhmNDQ3ZmE5NTkyZGE0OC4uYTBkYzI0ZTdiNjRkNGY5NTQxY2M0ZDczMDk5M2NhODU5YTJhZjVi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNr
ZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmNwcApAQCAtOTQsNiArOTQsMjIgQEAgUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGVUcmFu
c2EKICAgICByZXR1cm4gSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNyZWF0ZSh0cmFuc2Fj
dGlvbi5yZWxlYXNlKCkpOwogfQogCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVh
dGVUcmFuc2FjdGlvbihpbnQ2NF90IGlkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2ln
bmVkIHNob3J0IG1vZGUpCit7CisgICAgbV93ZWJJREJEYXRhYmFzZS0+Y3JlYXRlVHJhbnNhY3Rp
b24oaWQsIG5ldyBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgb2JqZWN0
U3RvcmVJZHMsIG1vZGUpOworfQorCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5Ojpjb21t
aXQoaW50NjRfdCB0cmFuc2FjdGlvbklkKQoreworICAgIG1fd2ViSURCRGF0YWJhc2UtPmNvbW1p
dCh0cmFuc2FjdGlvbklkKTsKK30KKwordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6YWJv
cnQoaW50NjRfdCB0cmFuc2FjdGlvbklkKQoreworICAgIG1fd2ViSURCRGF0YWJhc2UtPmFib3J0
KHRyYW5zYWN0aW9uSWQpOworfQorCisKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNs
b3NlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KQogewogICAgIG1fd2ViSURCRGF0
YWJhc2UtPmNsb3NlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJEYXRhYmFzZUJhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RGF0YWJhc2VCYWNrZW5kUHJveHkuaAppbmRleCAwM2QwNWQ5MmIxNmU0OGMyOWU5MzM3YmFmZTNm
OTAwMzYyYmQ5NjA5Li5iOTg4ZDM1M2FmZTE5MzgxOWI4YTdlNWNiYzRjZWI1NTJhYzk2YzI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2Vu
ZFByb3h5LmgKQEAgLTQ2LDkgKzQ2LDE0IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZU9iamVj
dFN0b3JlKGludDY0X3QsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgV2ViQ29yZTo6SURCS2V5
UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBk
ZWxldGVPYmplY3RTdG9yZShpbnQ2NF90LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CisgICAgLy8gRklYTUU6IFJlbW92
ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAzOTIzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QsIGNvbnN0IFZlY3Rvcjxp
bnQ2NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVU
cmFuc2FjdGlvbihpbnQ2NF90LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJh
Y2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSk7CiAgICAg
dmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFj
a3M+KTsKIAorICAgIHZpcnR1YWwgdm9pZCBjb21taXQoaW50NjRfdCk7CisgICAgdmlydHVhbCB2
b2lkIGFib3J0KGludDY0X3QpOworCiBwcml2YXRlOgogICAgIElEQkRhdGFiYXNlQmFja2VuZFBy
b3h5KFBhc3NPd25QdHI8V2ViSURCRGF0YWJhc2U+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcAppbmRleCAz
MTg5N2RhOWU4Y2U5MTg4OWQ1MTcyNWNlOTk5ZTgyNzM4ZDE1NTRlLi42MzY1OTI2MmNjZTk4MDEx
OTU5ZmI0NmY5MWE4OWVmOGE5NWQ4NmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcApAQCAtNjMsNiArNjMs
MTYgQEAgdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvblZlcnNpb25DaGFuZ2UoY29u
c3QgU3RyaW5nJiByZXF1ZXN0ZWRWZXJzaW9uKQogICAgIG1fY2FsbGJhY2tzLT5vblZlcnNpb25D
aGFuZ2UocmVxdWVzdGVkVmVyc2lvbik7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NQ
cm94eTo6b25BYm9ydChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpCit7CisgICAgbV9jYWxsYmFja3MtPm9uQWJvcnQodHJh
bnNhY3Rpb25JZCwgZXJyb3IpOworfQorCit2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6
Om9uQ29tcGxldGUoaW50NjRfdCB0cmFuc2FjdGlvbklkKQoreworICAgIG1fY2FsbGJhY2tzLT5v
bkNvbXBsZXRlKHRyYW5zYWN0aW9uSWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oCmluZGV4IGNiMWRk
YjM0NjZiOWZiYjFlMzMxZGZiYzkyZDZiNDk2NGUyNTBkY2UuLmZhYjQ1YmFlZGZiMjIxNGViZjg5
MThhMmU5ZmM4NjE2MjZlYzEyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgKQEAgLTQ0LDYgKzQ0LDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiByZXF1
ZXN0ZWRWZXJzaW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qg
b2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKTsKIAorICAgIHZpcnR1YWwgdm9pZCBvbkFi
b3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFz
ZUVycm9yPik7CisgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoaW50NjRfdCB0cmFuc2FjdGlv
bklkKTsKKwogcHJpdmF0ZToKICAgICBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5KFBhc3NPd25Q
dHI8V2ViSURCRGF0YWJhc2VDYWxsYmFja3M+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcAppbmRleCBmZmY1NDk2NWU3
MzkwZGFhOWFjOWRhYmU1NDcxMjg3MmEzMjNhZTNmLi5kYmVjOTZiYTJlODc2Yjk4ODBlM2QyMDky
NTE3MDYwNzZlYWUwYWRlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJGYWN0b3J5QmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcApAQCAtMjA1LDYgKzIwNSw3IEBAIHZvaWQgSURC
RmFjdG9yeUJhY2tlbmRQcm94eTo6Z2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4gcHJwQ2FsbGJhCiB9CiAKIAorLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogdm9pZCBJREJG
YWN0b3J5QmFja2VuZFByb3h5OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJz
aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPElE
QkRhdGFiYXNlQ2FsbGJhY2tzPiBwcnBEYXRhYmFzZUNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYgZGF0YURpcikKIHsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MocHJwQ2FsbGJhY2tzKTsKQEAgLTIxNyw2ICsyMTgsMTggQEAgdm9pZCBJREJGYWN0
b3J5QmFja2VuZFByb3h5OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9u
LCBQYXNzUmVmUHQKICAgICBtX3dlYklEQkZhY3RvcnktPm9wZW4obmFtZSwgdmVyc2lvbiwgbmV3
IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgbmV3IFdlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbChkYXRhYmFzZUNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIpOwog
fQogCit2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1l
LCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4g
cHJwRGF0YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5
T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRh
dGFEaXIpCit7CisgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKHBycENhbGxiYWNr
cyk7CisgICAgUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcyhw
cnBEYXRhYmFzZUNhbGxiYWNrcyk7CisgICAgV2ViU2VjdXJpdHlPcmlnaW4gb3JpZ2luKHNlY3Vy
aXR5T3JpZ2luKTsKKyAgICBpZiAoIWFsbG93SW5kZXhlZERCKGNvbnRleHQsIG5hbWUsIG9yaWdp
biwgY2FsbGJhY2tzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViRnJhbWVJbXBsKiB3ZWJG
cmFtZSA9IGdldFdlYkZyYW1lKGNvbnRleHQpOworICAgIG1fd2ViSURCRmFjdG9yeS0+b3Blbihu
YW1lLCB2ZXJzaW9uLCB0cmFuc2FjdGlvbklkLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxs
YmFja3MpLCBuZXcgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKGRhdGFiYXNlQ2FsbGJhY2tz
KSwgb3JpZ2luLCB3ZWJGcmFtZSwgZGF0YURpcik7Cit9CisKIHZvaWQgSURCRmFjdG9yeUJhY2tl
bmRQcm94eTo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1
cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5n
JiBkYXRhRGlyKQogewogICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcyhwcnBDYWxs
YmFja3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9y
eUJhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJh
Y2tlbmRQcm94eS5oCmluZGV4IDg4MzgwZDdhNDJlZDExNzMwMjkzNWJlYmJjYWNjZWI2ZjZlOTdk
NzguLmM4OTllODBiNzAyMjJmZTdhMzI4ZjY0MzBkMjUxNDlmNGVmY2VkMjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgKQEAg
LTQ5LDcgKzQ5LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfklEQkZhY3RvcnlCYWNrZW5kUHJv
eHkoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4s
IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIp
OworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25z
dCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJD
YWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOworICAgIHZpcnR1YWwgdm9pZCBvcGVu
KGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9u
SWQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRh
RGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1l
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiBkYXRhRGlyKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IDVh
ZTg2YTY3OTZhMTk4NmNlM2Y3ZjgyYzNiZmQxODdhYzBmMjRjNTMuLjZhMzZmZDI5NTZhNDkyMjg0
NTQ2NmNjMDRiZDc0MDVjZjM5M2I4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcApAQCAtNTksNiAr
NTksMTcgQEAgdm9pZCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVyc2lvbkNoYW5n
ZShjb25zdCBXZWJTdHJpbmcmIHZlcnNpb24pCiAgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lvbkNo
YW5nZSh2ZXJzaW9uKTsKIH0KIAordm9pZCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9u
QWJvcnQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGNvbnN0IFdlYklEQkRhdGFiYXNlRXJyb3Im
IGVycm9yKQoreworICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KHRyYW5zYWN0aW9uSWQsIGVycm9y
KTsKK30KKwordm9pZCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uQ29tcGxldGUobG9u
ZyBsb25nIHRyYW5zYWN0aW9uSWQpCit7CisgICAgbV9jYWxsYmFja3MtPm9uQ29tcGxldGUodHJh
bnNhY3Rpb25JZCk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKaW5kZXggYjA3MzdlZWIyYTli
NjBiNGU0MzU1YTg0NDBhYzQ1MDkzOGE0YjgzNy4uNTI5M2Q1NDcxYjAxNDBjMGIzODRhZGQ4YWYy
MmU2NTUxZWMzZTZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKQEAgLTQ2LDYgKzQ2LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBvbkZvcmNlZENsb3NlKCk7CiAgICAgdmlydHVhbCB2b2lkIG9u
VmVyc2lvbkNoYW5nZShsb25nIGxvbmcgb2xkVmVyc2lvbiwgbG9uZyBsb25nIG5ld1ZlcnNpb24p
OwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiB2ZXJz
aW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwg
Y29uc3QgV2ViSURCRGF0YWJhc2VFcnJvciYpOworICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRl
KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkKTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29y
ZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+IG1fY2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKaW5kZXggNDAzYTMwYmVlNTEw
NzYzMDc2YWQxNmY2YTlkMzg0MmJiYTlmYmQ0MC4uODY4NDY0ODMzNDg1YzQ4ZTEyOGIxYjBjODg1
YmM5ZDYzNTZmZWY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJEYXRhYmFzZUltcGwuY3BwCkBAIC03NSw2ICs3NSw3IEBAIHZvaWQgV2ViSURCRGF0YWJhc2VJ
bXBsOjpkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2Vi
SURCCiAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPmRlbGV0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3Jl
SWQsIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7
CiB9CiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KIFdlYklEQlRyYW5zYWN0aW9uKiBXZWJJREJE
YXRhYmFzZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViVmVj
dG9yPGxvbmcgbG9uZz4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQogewog
ICAgIFZlY3RvcjxpbnQ2NF90PiBvYmplY3RTdG9yZUlkTGlzdChvYmplY3RTdG9yZUlkcy5zaXpl
KCkpOwpAQCAtODYsNiArODcsMTUgQEAgV2ViSURCVHJhbnNhY3Rpb24qIFdlYklEQkRhdGFiYXNl
SW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBjb25zdCBXZWIKICAgICByZXR1
cm4gbmV3IFdlYklEQlRyYW5zYWN0aW9uSW1wbCh0cmFuc2FjdGlvbik7CiB9CiAKK3ZvaWQgV2Vi
SURCRGF0YWJhc2VJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIFdlYklEQkRh
dGFiYXNlQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBv
YmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKK3sKKyAgICBWZWN0b3I8aW50NjRf
dD4gb2JqZWN0U3RvcmVJZExpc3Qob2JqZWN0U3RvcmVJZHMuc2l6ZSgpKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG9iamVjdFN0b3JlSWRzLnNpemUoKTsgKytpKQorICAgICAgICBvYmpl
Y3RTdG9yZUlkTGlzdFtpXSA9IG9iamVjdFN0b3JlSWRzW2ldOworICAgIFJlZlB0cjxJREJEYXRh
YmFzZUNhbGxiYWNrc1Byb3h5PiBkYXRhYmFzZUNhbGxiYWNrc1Byb3h5ID0gSURCRGF0YWJhc2VD
YWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpOworICAgIG1fZGF0YWJh
c2VCYWNrZW5kLT5jcmVhdGVUcmFuc2FjdGlvbihpZCwgZGF0YWJhc2VDYWxsYmFja3NQcm94eS5n
ZXQoKSwgb2JqZWN0U3RvcmVJZExpc3QsIG1vZGUpOworfQorCiB2b2lkIFdlYklEQkRhdGFiYXNl
SW1wbDo6Y2xvc2UoKQogewogICAgIC8vIFVzZSB0aGUgY2FsbGJhY2tzIHBhc3NlZCBpbiB0byB0
aGUgY29uc3RydWN0b3Igc28gdGhhdCB0aGUgYmFja2VuZCBpbgpAQCAtMTA0LDYgKzExNCwxOCBA
QCB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6Zm9yY2VDbG9zZSgpCiAgICAgY2FsbGJhY2tzLT5v
bkZvcmNlZENsb3NlKCk7CiB9CiAKK3ZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjphYm9ydChsb25n
IGxvbmcgdHJhbnNhY3Rpb25JZCkKK3sKKyAgICBpZiAobV9kYXRhYmFzZUJhY2tlbmQpCisgICAg
ICAgIG1fZGF0YWJhc2VCYWNrZW5kLT5hYm9ydCh0cmFuc2FjdGlvbklkKTsKK30KKwordm9pZCBX
ZWJJREJEYXRhYmFzZUltcGw6OmNvbW1pdChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCkKK3sKKyAg
ICBpZiAobV9kYXRhYmFzZUJhY2tlbmQpCisgICAgICAgIG1fZGF0YWJhc2VCYWNrZW5kLT5jb21t
aXQodHJhbnNhY3Rpb25JZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCmluZGV4IDY2YWE4NGRiYThhODNjOTgxOGFkYzk2MmUz
Y2I3MjAyNTdkYTcyYWYuLjNiOTc3MjgxYTQwZThlN2MyYWUyODVjMTFiYzIxZTk4MTNjYzRjZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5o
CkBAIC01NCw5ICs1NCwxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFdlYklEQk9iamVjdFN0
b3JlKiBjcmVhdGVPYmplY3RTdG9yZShsb25nIGxvbmcsIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwg
Y29uc3QgV2ViSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCwgY29uc3QgV2ViSURCVHJh
bnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9i
amVjdFN0b3JlKGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJUcmFuc2FjdGlv
biYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9k
IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAg
dmlydHVhbCBXZWJJREJUcmFuc2FjdGlvbiogY3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlk
LCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpOworICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIFdlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzKiwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9y
dCBtb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9zZSgpOwogICAgIHZpcnR1YWwgdm9p
ZCBjbG9zZSgpOworICAgIHZpcnR1YWwgdm9pZCBhYm9ydChsb25nIGxvbmcgdHJhbnNhY3Rpb25J
ZCk7CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCk7CiAK
IHByaXZhdGU6CiAgICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlPiBtX2RhdGFiYXNlQmFja2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcAppbmRleCA5NGE4ZDQ2OGE5MGE5MGM0MTJjN2FhNmM5
OGFlZmI3NGJiN2EzN2I4Li5kMTBlYjkyMTYyY2M5NzEzYzM0OGFhNGY3ZjhkOGYwMTViODg4MzFi
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwu
Y3BwCkBAIC02NSw2ICs2NSw3IEBAIHZvaWQgV2ViSURCRmFjdG9yeUltcGw6OmdldERhdGFiYXNl
TmFtZXMoV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlCiAgICAgbV9pZGJG
YWN0b3J5QmFja2VuZC0+Z2V0RGF0YWJhc2VOYW1lcyhJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRl
KGFkb3B0UHRyKGNhbGxiYWNrcykpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOwogfQogCisvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDM5MjMuCiB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdlYlN0
cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tz
LCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyogZGF0YWJhc2VDYWxsYmFja3MsIGNvbnN0IFdlYlNl
Y3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGly
KQogewogICAgIFJlZlB0cjxJREJDYWxsYmFja3NQcm94eT4gY2FsbGJhY2tzUHJveHkgPSBJREJD
YWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpOwpAQCAtNzMsNiArNzQs
MTQgQEAgdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUs
IGxvbmcgbG9uZyB2ZXJzaW9uLCBXZWJJREJDYWwKICAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5v
cGVuKG5hbWUsIHZlcnNpb24sIGNhbGxiYWNrc1Byb3h5LmdldCgpLCBkYXRhYmFzZUNhbGxiYWNr
c1Byb3h5LmdldCgpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOwogfQogCit2b2lkIFdlYklEQkZhY3Rv
cnlJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIGxv
bmcgbG9uZyB0cmFuc2FjdGlvbklkLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViSURC
RGF0YWJhc2VDYWxsYmFja3MqIGRhdGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9y
aWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikKK3sKKyAg
ICBSZWZQdHI8SURCQ2FsbGJhY2tzUHJveHk+IGNhbGxiYWNrc1Byb3h5ID0gSURCQ2FsbGJhY2tz
UHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsKKyAgICBSZWZQdHI8SURCRGF0YWJh
c2VDYWxsYmFja3NQcm94eT4gZGF0YWJhc2VDYWxsYmFja3NQcm94eSA9IElEQkRhdGFiYXNlQ2Fs
bGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihkYXRhYmFzZUNhbGxiYWNrcykpOworICAgIGNh
bGxiYWNrc1Byb3h5LT5zZXREYXRhYmFzZUNhbGxiYWNrcyhkYXRhYmFzZUNhbGxiYWNrc1Byb3h5
KTsKKyAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIHZlcnNpb24sIHRyYW5zYWN0
aW9uSWQsIGNhbGxiYWNrc1Byb3h5LmdldCgpLCBkYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmdldCgp
LCBvcmlnaW4sIDAsIGRhdGFEaXIpOworfQorCiB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpkZWxl
dGVEYXRhYmFzZShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJh
Y2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdl
YlN0cmluZyYgZGF0YURpcikKIHsKICAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5kZWxldGVEYXRh
YmFzZShuYW1lLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykp
LCBvcmlnaW4sIDAsIGRhdGFEaXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkZhY3RvcnlJbXBsLmgKaW5kZXggMzNmNWEyMWQyYzc0ZjU4ZGZmOTRlMWViN2I5MGU1YWQ0
MzBkMTYyNy4uN2MwZGVlNzkxMTkzMmE2ZDRmMmQzOTE5OTMzYTI2MjBhOTY0NmQ5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oCkBAIC00NSw3
ICs0NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJJREJGYWN0b3J5SW1wbCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoV2ViSURCQ2FsbGJhY2tzKiwgY29uc3Qg
V2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7
CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0
IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyosIFdl
YklEQkRhdGFiYXNlQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFt
ZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29u
c3QgV2ViU3RyaW5nJiBuYW1lLCBsb25nIGxvbmcgdmVyc2lvbiwgbG9uZyBsb25nIHRyYW5zYWN0
aW9uSWQsIFdlYklEQkNhbGxiYWNrcyosIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKiwgY29uc3Qg
V2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7
CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwg
V2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNv
bnN0IFdlYlN0cmluZyYgZGF0YURpcik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKaW5kZXggZWMw
NzlmNTBjZDNjYmNlOWRmZTIxMjEzOWQ0NjA3ZTE5NDRmM2EyYi4uMmYzOWViNTYwZjczMjdmNWE3
ZmUxNWFlYzA5YzNkZWI1NGQ2NmFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcApAQCAtMTA4LDYgKzEwOCw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYg
dmVyc2lvbikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShp
bnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbikgT1ZFUlJJREUgeyB9CiAgICAg
dmlydHVhbCB2b2lkIG9uRm9yY2VkQ2xvc2UoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgb25BYm9ydChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VF
cnJvcj4gZXJyb3IpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCkgT1ZFUlJJREUgeyB9CiBwcml2YXRlOgogICAgIEZha2VJREJE
YXRhYmFzZUNhbGxiYWNrcygpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCmluZGV4IDBkMjYyMjQ2NjUz
ODE0YTQ3ZGM5OGZhOGIzYzlmYTBiOWEyMTJiYTMuLjU1Yjg1ZGEwMDM5YjNhMTEwZDE3YTAyZjRm
NzJiNjU0YzA3YmUxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
SURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcApAQCAtMTA4LDYgKzEwOCw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lv
bikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90
IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVh
bCB2b2lkIG9uRm9yY2VkQ2xvc2UoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25B
Ym9ydChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4g
ZXJyb3IpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3Qg
dHJhbnNhY3Rpb25JZCkgT1ZFUlJJREUgeyB9CiBwcml2YXRlOgogICAgIEZha2VJREJEYXRhYmFz
ZUNhbGxiYWNrcygpIHsgfQogfTsKQEAgLTE1Miw3ICsxNTQsOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gY3JlYXRlT2Jq
ZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwg
Ym9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNl
cHRpb25Db2RlJikgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RT
dG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSos
IEV4Y2VwdGlvbkNvZGUmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUo
aW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYp
IHsgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90
LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKSB7IHJldHVybiAw
OyB9CisgICAgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90LCBQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQg
bW9kZSkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUNhbGxiYWNrcz4pCiAgICAgewpAQCAtMTYwLDYgKzE2NCw5IEBAIHB1YmxpYzoKICAgICAgICAg
bV93ZWJEYXRhYmFzZS5jbG9zZSgpOwogICAgIH0KIAorICAgIHZpcnR1YWwgdm9pZCBhYm9ydChp
bnQ2NF90IHRyYW5zYWN0aW9uSWQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjb21taXQoaW50NjRf
dCB0cmFuc2FjdGlvbklkKSB7IH0KKwogcHJpdmF0ZToKICAgICBNb2NrSURCRGF0YWJhc2VCYWNr
ZW5kUHJveHkoV2ViSURCRGF0YWJhc2VJbXBsJiB3ZWJEYXRhYmFzZSkKICAgICAgICAgOiBtX3dh
c0Nsb3NlQ2FsbGVkKGZhbHNlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177786</attachid>
            <date>2012-12-05 10:11:06 -0800</date>
            <delta_ts>2012-12-05 10:53:13 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-103921-20121205100831.patch</filename>
            <type>text/plain</type>
            <size>47331</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg0YjVkYmViYTU5ZDAz
OWYwM2I3ZjBhODM3NmNkNWNmMzc3NjdlMi4uNjgyZjA1MzUxYmRiZjQ0ZTZjYWZlNDJlMGE1ZWNl
M2EzYjc1ZDViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTEyLTAzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFN0
dWIgb3V0IHRyYW5zYWN0aW9uLWJhY2tlbmQgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGltaXRyaSBHbGF6a292LgorCisgICAgICAgIEluIHByZXBhcmF0aW9uIGZvciBhIHJlZmFjdG9y
aW5nLiBMZWdhY3kgbWV0aG9kcyAKKyAgICAgICAgd2lsbCBiZSByZW1vdmVkIGluIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBqdXN0IGFkZGluZyB1bnVzZWQgbWV0aG9kcyBmb3IgcmVmYWN0b3JpbmcuCisKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQkNhbGxiYWNrczo6b25VcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6
b25BYm9ydCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlOjpvbkNvbXBsZXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZS5oOgorICAgICAgICAoSURCRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJh
c2VCYWNrZW5kSW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oOgorICAg
ICAgICAoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpjb21taXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VC
YWNrZW5kSW1wbDo6YWJvcnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZS5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5o
OgorICAgICAgICAoSURCRGF0YWJhc2VDYWxsYmFja3MpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uQWJvcnQpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uQ29tcGxldGUpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oOgor
ICAgICAgICAoSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
RmFjdG9yeUJhY2tlbmRJbXBsOjpvcGVuKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5QmFja2VuZEltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkZhY3RvcnlCYWNr
ZW5kSW1wbDo6b3Blbik6CisgICAgICAgIChJREJGYWN0b3J5QmFja2VuZEltcGwpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAg
ICAgIChJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJS
ZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oOgorICAgICAgICAoSURCT3BlbkRC
UmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmg6CisKKzIwMTItMTEtMjcgIEFsZWMg
RmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogcmVt
b3ZlIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6dHJhbnNhY3Rpb24oKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzMzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgorCisgICAgICAgIFBhcnQgMyBvZiBhIHJlZmFjdG9y
LCByZW1vdmUgdGhlIG9sZCB0cmFuc2FjdGlvbigpIG1ldGhvZC4KKworICAgICAgICBObyBuZXcg
dGVzdHMgYXMgdGhpcyBpcyBqdXN0IHBvc3QtcmVmYWN0b3IgY2xlYW51cC4KKworICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oOgorICAgICAg
ICAoSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlKToKKwogMjAxMi0xMi0wNCAgRmxvcmluIE1h
bGl0YSAgPGZtYWxpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFN0YWxlIFNWR1VzZUVsZW1l
bnQgcmVmZXJlbmNlIGluIENhY2hlZFJlc291cmNlOjpjaGVja05vdGlmeSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IGI4NDA2YjAwMDhhOTViZTIwMTM2YjFmOTE1MDdjZmQ5NTRlYzAx
OTMuLjAyNjlhMThhM2M2MmRiZDgzY2NhOWM3YWFiM2E0OGU0ZDIwYjAwNjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTUgQEAKKzIwMTItMTItMDMgIEFsZWMgRmxldHQg
IDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogU3R1YiBvdXQg
dHJhbnNhY3Rpb24tYmFja2VuZCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJp
IEdsYXprb3YuCisKKyAgICAgICAgQWRkIG5ldyBzaWduYXR1cmVzIGZvciByZWZhY3RvcmluZywg
dG8gYWxsb3cKKyAgICAgICAgdHJhbnNhY3Rpb25faWRzIHRvIG1ha2UgaXMgdGhyb3VnaCB0aGUg
b3Blbi9vblVwZ3JhZGVOZWVkZWQKKyAgICAgICAgbG9vcC4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJJREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzOjpvblVw
Z3JhZGVOZWVkZWQpOgorICAgICAgICAqIHB1YmxpYy9XZWJJREJEYXRhYmFzZS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZTo6Y3JlYXRlVHJhbnNhY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJEYXRhYmFzZTo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJE
YXRhYmFzZTo6Y29tbWl0KToKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlKToKKyAgICAgICAgKiBw
dWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNl
Q2FsbGJhY2tzKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VDYWxsYmFja3M6Om9u
QWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrczo6b25Db21w
bGV0ZSk6CisgICAgICAgICogcHVibGljL1dlYklEQkZhY3RvcnkuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCRmFjdG9yeTo6b3Blbik6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCQ2FsbGJhY2tzUHJveHk6Om9uVXBncmFkZU5lZWRl
ZCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5o
OgorICAgICAgICAoSURCQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFz
ZUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklEQkRhdGFiYXNlQmFja2VuZFBy
b3h5OjpjcmVhdGVUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
S2l0OjpJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6
SURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmFib3J0KToKKyAgICAgICAgKiBzcmMvSURCRGF0YWJh
c2VCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKElEQkRhdGFiYXNlQmFja2VuZFByb3h5KToKKyAg
ICAgICAgKiBzcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6Om9uQWJvcnQpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25Db21wbGV0
ZSk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaDoKKyAgICAgICAg
KElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAqIHNyYy9JREJGYWN0b3J5QmFj
a2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCRmFjdG9yeUJhY2tlbmRQcm94eTo6
b3Blbik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9JREJGYWN0b3J5QmFja2Vu
ZFByb3h5Lmg6CisgICAgICAgIChJREJGYWN0b3J5QmFja2VuZFByb3h5KToKKyAgICAgICAgKiBz
cmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxi
YWNrc0ltcGw6Om9uVXBncmFkZU5lZWRlZCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAq
IHNyYy9XZWJJREJDYWxsYmFja3NJbXBsLmg6CisgICAgICAgIChXZWJJREJDYWxsYmFja3NJbXBs
KToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvbkFib3J0KToKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bDo6b25Db21wbGV0ZSk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bC5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKiBz
cmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJh
c2VJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OmFib3J0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
SURCRGF0YWJhc2VJbXBsOjpjb21taXQpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUlt
cGwuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlSW1wbCk6CisgICAgICAgICogc3JjL1dlYklE
QkZhY3RvcnlJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRmFjdG9yeUltcGw6Om9w
ZW4pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViSURCRmFjdG9yeUltcGwu
aDoKKyAgICAgICAgKFdlYklEQkZhY3RvcnlJbXBsKToKKyAgICAgICAgKiB0ZXN0cy9JREJBYm9y
dE9uQ29ycnVwdFRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRl
c3QuY3BwOgorCisyMDEyLTExLTI3ICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBJbmRleGVkREI6IHJlbW92ZSBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U6OnRyYW5zYWN0aW9uKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMjczMworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKwor
ICAgICAgICBQYXJ0IDMgb2YgYSByZWZhY3RvciAtIGp1c3QgcmVtb3ZlIHRoZSBwcm94eSBjb2Rl
IGZvciB0aGUgbm93CisgICAgICAgIGRlZnVuY3QgdHJhbnNhY3Rpb24gbWV0aG9kLgorCisgICAg
ICAgICogcHVibGljL1dlYklEQkRhdGFiYXNlLmg6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHku
aDoKKyAgICAgICAgKElEQkRhdGFiYXNlQmFja2VuZFByb3h5KToKKyAgICAgICAgKiBzcmMvV2Vi
SURCRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmg6
CisgICAgICAgIChXZWJJREJEYXRhYmFzZUltcGwpOgorICAgICAgICAqIHRlc3RzL0lEQkRhdGFi
YXNlQmFja2VuZFRlc3QuY3BwOgorCiAyMDEyLTEyLTA0ICBTdGVwaGVuIFdoaXRlICA8c2Vub3Ji
bGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJvbGxlZCBERVBTICh3L0xpbnV4IGJ1aWxk
IGZpeCkuICBVbnJldmlld2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4IGExYWE5ZjdiNjQ3OTA4NTEzZGRhODViMTZlYzgxNTA4
MmQ4Njg3NDkuLjdmOGU2M2U3MTUxNDlkZmY1NjE0ZjY2ZTMyMmQzMzZkODhkZDE2MGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAg
LTExMCw2ICsxMTAsMTYgQEAgdm9pZCBJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb25GaW5pc2hlZChJ
REJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCiAgICAgICAgIGNsb3NlQ29ubmVjdGlvbigpOwog
fQogCit2b2lkIElEQkRhdGFiYXNlOjpvbkFib3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKK30KKwordm9pZCBJREJEYXRhYmFzZTo6b25Db21wbGV0ZShpbnQ2NF90IHRyYW5zYWN0
aW9uSWQpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIFBhc3NSZWZQdHI8RE9N
U3RyaW5nTGlzdD4gSURCRGF0YWJhc2U6Om9iamVjdFN0b3JlTmFtZXMoKSBjb25zdAogewogICAg
IFJlZlB0cjxET01TdHJpbmdMaXN0PiBvYmplY3RTdG9yZU5hbWVzID0gRE9NU3RyaW5nTGlzdDo6
Y3JlYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuaAppbmRleCA5YTI3ZjI1ZjI0NjJkNjQ5ZTU4MzJhNDFjMTkyZDgyMmFhY2IxMmZjLi4yMGJj
YWFhOTg2Mjk4Njg4YTIzOGQ2MTJkOWRkMGVkZDM5ZjQzODZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKQEAgLTc4LDYgKzc4LDggQEAgcHVi
bGljOgogICAgIC8vIElEQkRhdGFiYXNlQ2FsbGJhY2tzCiAgICAgdmlydHVhbCB2b2lkIG9uVmVy
c2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbik7CiAgICAg
dmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHJlcXVlc3RlZFZlcnNp
b24pOworICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0KGludDY0X3QsIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VFcnJvcj4pOworICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3QpOwogCiAg
ICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
QmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggNDYzODg3NzY0YjU3ZGUzNmQ1ZDlkMTdiZGMzZGY5
NDhmNGFjNTk1ZC4uY2IzYjMxNzk1NTQ1Y2VkN2FiYWU4NGY0NjE3ZmRiZjhhY2RjZGFkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5jcHAKQEAgLTM4MCw2ICszODAsNyBAQCB2b2lkIElEQkRhdGFiYXNl
QmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogICAgIH0KIH0KIAorLy8gRklYTUU6
IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAzOTIzLgogUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+
IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQg
c2hvcnQgbW9kZSkKIHsKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gdHJh
bnNhY3Rpb24gPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUodHJhbnNhY3Rpb25J
ZCwgb2JqZWN0U3RvcmVJZHMsIG1vZGUsIHRoaXMpOwpAQCAtMzg3LDYgKzM4OCwxMSBAQCBQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5k
SW1wbDo6Y3JlYXRlVHJhbnNhYwogICAgIHJldHVybiB0cmFuc2FjdGlvbi5yZWxlYXNlKCk7CiB9
CiAKK3ZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRf
dCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBjYWxsYmFj
a3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0
IG1vZGUpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIHZvaWQgSURCRGF0YWJh
c2VCYWNrZW5kSW1wbDo6b3BlbkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNh
bGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFj
a3MpCiB7CiAgICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwu
aAppbmRleCBkZjBiYTJkYWI0MzQ4YWRjNzY3OGQ0ZDcwM2JhYjA5MGU4YTZiNmMyLi4yOWU0ZTUz
NmUyMGEwMTYwZmE2ZDUyNmRlN2ZiZWVhYjA2NDYxODRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBA
IC02Myw5ICs2MywxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJEYXRhYmFzZU1ldGFkYXRh
IG1ldGFkYXRhKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCBpZCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9k
IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRl
VHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4m
IG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywg
dW5zaWduZWQgc2hvcnQgbW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VDYWxsYmFja3M+KTsKIAorICAgIHZpcnR1YWwgdm9pZCBjb21taXQoaW50NjRf
dCB0cmFuc2FjdGlvbklkKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2
b2lkIGFib3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQorCiAgICAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9y
ZShpbnQ2NF90IGlkKTsKICAgICBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yKiB0cmFuc2FjdGlv
bkNvb3JkaW5hdG9yKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2FjdGlvbkNvb3JkaW5hdG9yLmdl
dCgpOyB9CiAgICAgdm9pZCB0cmFuc2FjdGlvblN0YXJ0ZWQoUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbXBsPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCmluZGV4IDg1MDA2
MmMyOTE4NzMyYmEzNGE5MjdjN2IwN2U5OTVlYTkwMzY0ZGYuLmIwNTk1MTU0NDU5NzJhOTQ3MDA2
NjU4ZTg5N2RlMzhiYmZjOWU2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCkBAIC01
NSw4ICs1NSwxNCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90LCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0
aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
OTIzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9y
PGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9i
amVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGNsb3NlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KSA9IDA7CisKKyAgICAvLyBU
cmFuc2FjdGlvbi1zcGVjaWZpYyBvcGVyYXRpb25zLgorICAgIHZpcnR1YWwgdm9pZCBjb21taXQo
aW50NjRfdCB0cmFuc2FjdGlvbklkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KGludDY0
X3QgdHJhbnNhY3Rpb25JZCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxs
YmFja3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2Fs
bGJhY2tzLmgKaW5kZXggNDY5M2U2MzdhZWRhYWNiYzRjMTlmYTBlNDg1NDk0MmVkMTMyNWMzYi4u
OTgyNjgzN2IxN2ZmNDcxM2IyMWEwNjQ3ODBmMWY1ZTU0M2MzMzNkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5o
CkBAIC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9z
ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYg
dmVyc2lvbikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBv
bGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBv
bkFib3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9y
PikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3QgdHJhbnNhY3Rpb25J
ZCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bC5jcHAKaW5kZXggOTcwZDNhMTY3Y2FmOTk2YzdmMDMxZmY1NGE0ZjE1OTI0OWYxYWEwYi4uNDEx
YWYzYzY4MDc1ZTg4YzA0NGFkMTMxNzZlYjM1YTE5ZmQyNGVjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuY3BwCkBAIC03MSw2ICs3MSwxOCBAQCB2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bDo6Y29ubmVjdChJREJEYXRhYmFzZSogZGF0YWJhc2UpCiAgICAgbV9kYXRhYmFzZSA9IGRhdGFi
YXNlOwogfQogCit2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25BYm9ydChpbnQ2NF90
IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpCit7Cisg
ICAgaWYgKG1fZGF0YWJhc2UpCisgICAgICAgIG1fZGF0YWJhc2UtPm9uQWJvcnQodHJhbnNhY3Rp
b25JZCwgZXJyb3IpOworfQorCit2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25Db21w
bGV0ZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQpCit7CisgICAgaWYgKG1fZGF0YWJhc2UpCisgICAg
ICAgIG1fZGF0YWJhc2UtPm9uQ29tcGxldGUodHJhbnNhY3Rpb25JZCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCmluZGV4IGJiNGEx
YWU3NGU4MjI3MzhiMzNkZDZjMDgwOWU3MmU2MTBmZDNjYmMuLjNjMTRmOGFlODdjMjI5ODNkZjlm
MzcxODMwNjVkYzEzODY0MjNmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCkBAIC00Niw2ICs0
Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0
cmluZyYgdmVyc2lvbik7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90
IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgb25B
Ym9ydChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4p
OworICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3QgdHJhbnNhY3Rpb25JZCk7CisK
ICAgICB2b2lkIGNvbm5lY3QoSURCRGF0YWJhc2UqKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKaW5kZXggYzE0YzY4Yzkx
ZjYzNGFlNzk5MjllM2Y1YjIyMmFkNDMwNzQ5MzU2My4uMTM0NjE5NDY5NTU0MDhlNGIwODJkOTM3
ODVmMmE1OTU3OGUzZWQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRmFjdG9yeS5jcHAKQEAgLTEyNyw3ICsxMjcsOSBAQCBQYXNzUmVmUHRyPElEQk9wZW5E
QlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW5JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjbwogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGw+IGRhdGFiYXNlQ2FsbGJhY2tzID0gSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpjcmVh
dGUoKTsKLSAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gcmVxdWVzdCA9IElEQk9wZW5EQlJl
cXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZU51bGwoKSwgZGF0YWJhc2VDYWxs
YmFja3MsIHZlcnNpb24pOworICAgIGludDY0IHRyYW5zYWN0aW9uSWQgPSBJREJEYXRhYmFzZTo6
bmV4dFRyYW5zYWN0aW9uSWQoKTsKKyAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gcmVxdWVz
dCA9IElEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZU51bGwo
KSwgZGF0YWJhc2VDYWxsYmFja3MsIHRyYW5zYWN0aW9uSWQsIHZlcnNpb24pOworICAgIC8vIEZJ
WE1FOiBwYXNzIHRoZSB0cmFuc2FjdGlvbklkIGluIGhlcmUgaW4gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMgogICAgIG1fYmFja2VuZC0+b3BlbihuYW1lLCB2
ZXJzaW9uLCByZXF1ZXN0LCBkYXRhYmFzZUNhbGxiYWNrcywgY29udGV4dC0+c2VjdXJpdHlPcmln
aW4oKSwgY29udGV4dCwgZ2V0SW5kZXhlZERCRGF0YWJhc2VQYXRoKGNvbnRleHQpKTsKICAgICBy
ZXR1cm4gcmVxdWVzdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwCmluZGV4IDJkNTg0MmNkMTUwNGMx
ZmRjYTEzNThlMWY4M2Q4ZGFhYjg0OWQzNTguLjIzNDcwYzhkYTc3NmQyNGE2OWNhYTUzODdkZGQ1
NzA4ZjgwNWM2ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIFBh
c3NSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBJREJGYWN0b3J5QmFja2VuZEltcGw6Om9wZW5CYWNr
aW5nU3RvcmUoUGFzc1JlZlB0cjxTCiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgSURCRmFjdG9y
eUJhY2tlbmRJbXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNl
Q2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4g
cHJwU2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcm
IGRhdGFEaXJlY3RvcnkpCit2b2lkIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3Blbihjb25zdCBT
dHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gcHJw
U2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRh
dGFEaXJlY3RvcnkpCiB7CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdp
biA9IHBycFNlY3VyaXR5T3JpZ2luOwogICAgIGNvbnN0IFN0cmluZyB1bmlxdWVJZGVudGlmaWVy
ID0gY29tcHV0ZVVuaXF1ZUlkZW50aWZpZXIobmFtZSwgc2VjdXJpdHlPcmlnaW4uZ2V0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJh
Y2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
QmFja2VuZEltcGwuaAppbmRleCA3YTAyMGZiNjBkMmFhOTYzYzY0MjljNDVkOTYwMzdmNmQyMjFi
ZWQ5Li4zYzExY2QzNWEyOTgxNDBlMDdkNmQ4ZjkxYmY2NTUyOTM2NWI0YTExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2Vu
ZEltcGwuaApAQCAtMjgsNiArMjgsOCBAQAogI2lmbmRlZiBJREJGYWN0b3J5QmFja2VuZEltcGxf
aAogI2RlZmluZSBJREJGYWN0b3J5QmFja2VuZEltcGxfaAogCisjaW5jbHVkZSAiSURCQ2FsbGJh
Y2tzLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VDYWxsYmFja3MuaCIKICNpbmNsdWRlICJJREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTU2LDcgKzU4LDEzIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlSURCQmFja2luZ1N0b3JlKGNvbnN0IFN0cmluZyYgZmlsZUlkZW50
aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGly
KTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29u
c3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2Fs
bGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIG9wZW4obmFtZSwgdmVyc2lvbiwgMCwgY2FsbGJhY2tzLCBkYXRhYmFz
ZUNhbGxiYWNrcywgc2VjdXJpdHlPcmlnaW4sIGNvbnRleHQsIGRhdGFEaXIpOworICAgIH0KKyAg
ICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwg
aW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CisKICAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRl
cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNr
ZW5kSW50ZXJmYWNlLmgKaW5kZXggYmFiMjE5ZjVmNGVjNTRkZjIzYWM3ZGY0ZjQ1NGI3NmZhZWI3
MmYyZS4uZWJjNjI5ZjliY2ExOGRlMWQ4MjhjZDJhZjcyMGNlNWJmOTlhYTkwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRl
cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
QmFja2VuZEludGVyZmFjZS5oCkBAIC01NCw3ICs1NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGdl
dERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURp
cikgPSAwOworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIHZvaWQgb3Bl
bihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFE
aXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0
X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUs
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVx
dWVzdC5jcHAKaW5kZXggN2I2ZjhjNjk0YTU3NjE0ZGFkNjU0MDkxZDcyOTUzMDY2ZTg0ZWU1NS4u
MTI1YzMxYjJkMzA1MGRhYWU3YmQyMmMzZDg0ZjJmMzkxYTc5YWZmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKQEAg
LTM3LDE2ICszNywxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8SURC
T3BlbkRCUmVxdWVzdD4gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsPiBjYWxsYmFja3MsIGludDY0X3QgdmVyc2lvbikKK1Bhc3NS
ZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsPiBjYWxsYmFja3MsIGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgaW50NjRfdCB2ZXJzaW9uKQogewotICAgIFJlZlB0cjxJREJPcGVuREJSZXF1ZXN0
PiByZXF1ZXN0KGFkb3B0UmVmKG5ldyBJREJPcGVuREJSZXF1ZXN0KGNvbnRleHQsIHNvdXJjZSwg
Y2FsbGJhY2tzLCB2ZXJzaW9uKSkpOworICAgIFJlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiByZXF1
ZXN0KGFkb3B0UmVmKG5ldyBJREJPcGVuREJSZXF1ZXN0KGNvbnRleHQsIHNvdXJjZSwgY2FsbGJh
Y2tzLCB0cmFuc2FjdGlvbklkLCB2ZXJzaW9uKSkpOwogICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5l
ZWRlZCgpOwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotSURCT3BlbkRCUmVx
dWVzdDo6SURCT3BlbkRCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
YXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
SW1wbD4gY2FsbGJhY2tzLCBpbnQ2NF90IHZlcnNpb24pCitJREJPcGVuREJSZXF1ZXN0OjpJREJP
cGVuREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8
SURCQW55PiBzb3VyY2UsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsPiBjYWxs
YmFja3MsIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCB2ZXJzaW9uKQogICAgIDogSURC
UmVxdWVzdChjb250ZXh0LCBzb3VyY2UsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTo6
Tm9ybWFsVGFzaywgMCkKICAgICAsIG1fZGF0YWJhc2VDYWxsYmFja3MoY2FsbGJhY2tzKQorICAg
ICwgbV90cmFuc2FjdGlvbklkKHRyYW5zYWN0aW9uSWQpCiAgICAgLCBtX3ZlcnNpb24odmVyc2lv
bikKIHsKICAgICBBU1NFUlQoIW1fcmVzdWx0KTsKQEAgLTEwMCw4ICsxMDEsNyBAQCB2b2lkIElE
Qk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NS
ZWZQdHI8SURCVHJhbnNhYwogICAgIH0KICAgICBtZXRhZGF0YS5pbnRWZXJzaW9uID0gb2xkVmVy
c2lvbjsKIAotICAgIGludDY0X3QgdHJhbnNhY3Rpb25JZCA9IElEQkRhdGFiYXNlOjpuZXh0VHJh
bnNhY3Rpb25JZCgpOwotICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gZnJvbnRlbmQgPSBJREJU
cmFuc2FjdGlvbjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdHJhbnNhY3Rpb25J
ZCwgdHJhbnNhY3Rpb25CYWNrZW5kLCBpZGJEYXRhYmFzZS5nZXQoKSwgdGhpcywgbWV0YWRhdGEp
OworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gZnJvbnRlbmQgPSBJREJUcmFuc2FjdGlvbjo6
Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV90cmFuc2FjdGlvbklkLCB0cmFuc2Fj
dGlvbkJhY2tlbmQsIGlkYkRhdGFiYXNlLmdldCgpLCB0aGlzLCBtZXRhZGF0YSk7CiAgICAgdHJh
bnNhY3Rpb25CYWNrZW5kLT5zZXRDYWxsYmFja3MoZnJvbnRlbmQuZ2V0KCkpOwogICAgIG1fdHJh
bnNhY3Rpb24gPSBmcm9udGVuZDsKICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGlkYkRh
dGFiYXNlLnJlbGVhc2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgKaW5kZXggYTU1MTQyNjRlMzRiMjBlNjhkZjRiNzZiNjhl
YWQxY2Q4MGY4ZjA5My4uNmQ1ZjkwOTM3N2VhNGU3N2JlNTY1NzMyZGExMWU3NmE1MTM2NDU3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVx
dWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw7
CiAKIGNsYXNzIElEQk9wZW5EQlJlcXVlc3QgOiBwdWJsaWMgSURCUmVxdWVzdCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBQYXNzUmVmUHRyPElE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbD4sIGludDY0X3QgdmVyc2lvbik7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbD4sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCB2ZXJzaW9uKTsKICAgICB2
aXJ0dWFsIH5JREJPcGVuREJSZXF1ZXN0KCk7CiAKICAgICB1c2luZyBJREJSZXF1ZXN0OjpvblN1
Y2Nlc3M7CkBAIC01Niw5ICs1NiwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHNo
b3VsZEVucXVldWVFdmVudCgpIGNvbnN0IE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIElEQk9w
ZW5EQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCQW55PiBz
b3VyY2UsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsPiwgaW50NjRfdCB2ZXJz
aW9uKTsKKyAgICBJREJPcGVuREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNz
UmVmUHRyPElEQkFueT4gc291cmNlLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bD4sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCB2ZXJzaW9uKTsKIAogICAgIFJlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw+IG1fZGF0YWJhc2VDYWxsYmFja3M7CisgICAgY29u
c3QgaW50NjRfdCBtX3RyYW5zYWN0aW9uSWQ7CiAgICAgaW50NjRfdCBtX3ZlcnNpb247CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCmluZGV4IGNjNzRkMTE1NjgxN2JhMzI4
YTFjMWQ3OTZjNjEyYmIxZDUyYWI4ODUuLjBmNTg2YmJiNDE5ZjI4YmM0ZGU1YmM2MWVmZDU3YmM0
OWExYWFjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCkBAIC00MCw3ICs0
MCw2IEBAIGNsYXNzIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzOwogCiB0eXBlZGVmIGludCBFeGNl
cHRpb25Db2RlOwogCi0vLyBUaGlzIGNsYXNzIGlzIHNoYXJlZCBieSBJREJUcmFuc2FjdGlvbiAo
YXN5bmMpIGFuZCBJREJUcmFuc2FjdGlvblN5bmMgKHN5bmMpLgogLy8gVGhpcyBpcyBpbXBsZW1l
bnRlZCBieSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsIGFuZCBvcHRpb25hbGx5IG90aGVycyAo
aW4gb3JkZXIgdG8gcHJveHkKIC8vIGNhbGxzIGFjcm9zcyBwcm9jZXNzIGJhcnJpZXJzKS4gQWxs
IGNhbGxzIHRvIHRoZXNlIGNsYXNzZXMgc2hvdWxkIGJlIG5vbi1ibG9ja2luZyBhbmQKIC8vIHRy
aWdnZXIgd29yayBvbiBhIGJhY2tncm91bmQgdGhyZWFkIGlmIG5lY2Vzc2FyeS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRp
bmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
Q29vcmRpbmF0b3IuaAppbmRleCA4Mjk5ODUzMjIwY2NhYTY0NTRjZjY0MmU4MDU5ODQwODI2MzM0
YmYzLi42MDkwNmZlMzVmNGE1N2Q2YWM0ZjBhNzEzNzM0NDcxYTAwYzg2MTcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5h
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b25Db29yZGluYXRvci5oCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKIAotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQkRhdGFiYXNlLmgKaW5kZXggOTViYWY2NmI2NTE4Yzk4YTBmYTU3OGJiMjY0ZjNmYzE5
ZWNkNWRmNC4uMTY3NmFlNjYzMGIxZWQ5ODQwODk4MzZiMDA2NDg3NTgxNGFlM2RlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCkBAIC01Niwx
MCArNTYsMTUgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgdmlydHVh
bCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBX
ZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKSB7IFdF
QktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBt
ZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4K
ICAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0aW9uKiBjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxv
bmcgaWQsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkg
eyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB2
b2lkIGNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgV2ViSURCRGF0YWJhc2VDYWxsYmFj
a3MqIGNhbGxiYWNrcywgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9y
dCBtb2RlKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBjbG9zZSgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2
b2lkIGZvcmNlQ2xvc2UoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCisgICAg
dmlydHVhbCB2b2lkIGFib3J0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkKSB7IFdFQktJVF9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBjb21taXQobG9uZyBsb25nIHRy
YW5zYWN0aW9uSWQpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisKIHByb3RlY3Rl
ZDoKICAgICBXZWJJREJEYXRhYmFzZSgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oCmluZGV4IDEyZGE3
ZTBiNDc2YjExNDVkZDY5MzE0MGUzMWRhOGFjNWUxODk3NTEuLmI0NjI2NjFkZWYxMTViOGVkYjU2
YzEzM2JhYWFlNzQwNGY0NDYwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaApAQCAtMjYsNiArMjYsNyBAQAog
I2lmbmRlZiBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc19oCiAjZGVmaW5lIFdlYklEQkRhdGFiYXNl
Q2FsbGJhY2tzX2gKIAorI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRl
ICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIK
IApAQCAtMzgsNiArMzksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uRm9yY2VkQ2xv
c2UoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBv
blZlcnNpb25DaGFuZ2UobG9uZyBsb25nIG9sZFZlcnNpb24sIGxvbmcgbG9uZyBuZXdWZXJzaW9u
KSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblZl
cnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiByZXF1ZXN0ZWRWZXJzaW9uKSB7IFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorCisgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQobG9uZyBs
b25nIHRyYW5zYWN0aW9uSWQsIGNvbnN0IFdlYklEQkRhdGFiYXNlRXJyb3ImKSB7IFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGxvbmcg
bG9uZyB0cmFuc2FjdGlvbklkKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJREJGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJREJGYWN0b3J5LmgKaW5kZXggMTJlY2YwN2M3Mjc3MjA1YmJiNmQ2OTdhOGI4Y2IyMzMx
Y2UxMzVhYi4uZWJhMzg4NDRjZjliNmQwMTYxNjdmMTllZmE3NjZkMzNmN2FmMmRiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRmFjdG9yeS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkZhY3RvcnkuaApAQCAtNTYsNyAr
NTYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoV2ViSURC
Q2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdl
YkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQogCiAgICAgLy8gVGhlIFdlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiBv
cGVuIGlnbm9yZXMgdGhlIFdlYkZyYW1lKiBwYXJhbWV0ZXIuCisgICAgLy8gRklYTUU6IFJlbW92
ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAzOTIzLgogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9u
ZyBsb25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBXZWJJREJEYXRhYmFz
ZUNhbGxiYWNrcyogZGF0YWJhc2VDYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBv
cmlnaW4sIFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdl
YlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklk
LCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGRh
dGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFt
ZSogZnJhbWUsIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikgeyBXRUJLSVRfQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwg
V2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCmluZGV4IGU5YzgwZDBjZjYyOWVjMjQ3N2FkYTEz
Yjg4ZjQ0N2ZhOTU5MmRhNDguLmEwZGMyNGU3YjY0ZDRmOTU0MWNjNGQ3MzA5OTNjYTg1OWEyYWY1
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFj
a2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFz
ZUJhY2tlbmRQcm94eS5jcHAKQEAgLTk0LDYgKzk0LDIyIEBAIFBhc3NSZWZQdHI8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlVHJh
bnNhCiAgICAgcmV0dXJuIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpjcmVhdGUodHJhbnNh
Y3Rpb24ucmVsZWFzZSgpKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3Jl
YXRlVHJhbnNhY3Rpb24oaW50NjRfdCBpZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNr
cz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNp
Z25lZCBzaG9ydCBtb2RlKQoreworICAgIG1fd2ViSURCRGF0YWJhc2UtPmNyZWF0ZVRyYW5zYWN0
aW9uKGlkLCBuZXcgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIG9iamVj
dFN0b3JlSWRzLCBtb2RlKTsKK30KKwordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y29t
bWl0KGludDY0X3QgdHJhbnNhY3Rpb25JZCkKK3sKKyAgICBtX3dlYklEQkRhdGFiYXNlLT5jb21t
aXQodHJhbnNhY3Rpb25JZCk7Cit9CisKK3ZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmFi
b3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCkKK3sKKyAgICBtX3dlYklEQkRhdGFiYXNlLT5hYm9y
dCh0cmFuc2FjdGlvbklkKTsKK30KKworCiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5Ojpj
bG9zZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPikKIHsKICAgICBtX3dlYklEQkRh
dGFiYXNlLT5jbG9zZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkRhdGFiYXNlQmFja2VuZFByb3h5LmgKaW5kZXggMDNkMDVkOTJiMTZlNDhjMjllOTMzN2JhZmUz
ZjkwMDM2MmJkOTYwOS4uYjk4OGQzNTNhZmUxOTM4MTliOGE3ZTVjYmM0Y2ViNTUyYWM5NmMyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5k
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5oCkBAIC00Niw5ICs0NiwxNCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVPYmpl
Y3RTdG9yZShpbnQ2NF90LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYkNvcmU6OklEQktl
eVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBSZW1v
dmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMzkyMy4KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90LCBjb25zdCBWZWN0b3I8
aW50NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRl
VHJhbnNhY3Rpb24oaW50NjRfdCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxi
YWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpOwogICAg
IHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJh
Y2tzPik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0KGludDY0X3QpOworICAgIHZpcnR1YWwg
dm9pZCBhYm9ydChpbnQ2NF90KTsKKwogcHJpdmF0ZToKICAgICBJREJEYXRhYmFzZUJhY2tlbmRQ
cm94eShQYXNzT3duUHRyPFdlYklEQkRhdGFiYXNlPik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAKaW5kZXgg
MzE4OTdkYTllOGNlOTE4ODlkNTE3MjVjZTk5OWU4MjczOGQxNTU0ZS4uNjM2NTkyNjJjY2U5ODAx
MTk1OWZiNDZmOTFhODllZjhhOTVkODZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAKQEAgLTYzLDYgKzYz
LDE2IEBAIHZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25WZXJzaW9uQ2hhbmdlKGNv
bnN0IFN0cmluZyYgcmVxdWVzdGVkVmVyc2lvbikKICAgICBtX2NhbGxiYWNrcy0+b25WZXJzaW9u
Q2hhbmdlKHJlcXVlc3RlZFZlcnNpb24pOwogfQogCit2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tz
UHJveHk6Om9uQWJvcnQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPFdlYkNvcmU6
OklEQkRhdGFiYXNlRXJyb3I+IGVycm9yKQoreworICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KHRy
YW5zYWN0aW9uSWQsIGVycm9yKTsKK30KKwordm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5
OjpvbkNvbXBsZXRlKGludDY0X3QgdHJhbnNhY3Rpb25JZCkKK3sKKyAgICBtX2NhbGxiYWNrcy0+
b25Db21wbGV0ZSh0cmFuc2FjdGlvbklkKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaAppbmRleCBjYjFk
ZGIzNDY2YjlmYmIxZTMzMWRmYmM5MmQ2YjQ5NjRlMjUwZGNlLi5mYWI0NWJhZWRmYjIyMTRlYmY4
OTE4YTJlOWZjODYxNjI2ZWMxMjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oCkBAIC00NCw2ICs0NCw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgcmVx
dWVzdGVkVmVyc2lvbik7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90
IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgb25B
Ym9ydChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJh
c2VFcnJvcj4pOworICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKGludDY0X3QgdHJhbnNhY3Rp
b25JZCk7CisKIHByaXZhdGU6CiAgICAgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eShQYXNzT3du
UHRyPFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzPik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAKaW5kZXggZmZmNTQ5NjVl
NzM5MGRhYTlhYzlkYWJlNTQ3MTI4NzJhMzIzYWUzZi4uZGJlYzk2YmEyZTg3NmI5ODgwZTNkMjA5
MjUxNzA2MDc2ZWFlMGFkZSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAKQEAgLTIwNSw2ICsyMDUsNyBAQCB2b2lkIElE
QkZhY3RvcnlCYWNrZW5kUHJveHk6OmdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+IHBycENhbGxiYQogfQogCiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KIHZvaWQgSURC
RmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVy
c2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUNhbGxiYWNrcz4gcHJwRGF0YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpCiB7CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4g
Y2FsbGJhY2tzKHBycENhbGxiYWNrcyk7CkBAIC0yMTcsNiArMjE4LDE4IEBAIHZvaWQgSURCRmFj
dG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lv
biwgUGFzc1JlZlB0CiAgICAgbV93ZWJJREJGYWN0b3J5LT5vcGVuKG5hbWUsIHZlcnNpb24sIG5l
dyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIG5ldyBXZWJJREJEYXRhYmFzZUNhbGxi
YWNrc0ltcGwoZGF0YWJhc2VDYWxsYmFja3MpLCBvcmlnaW4sIHdlYkZyYW1lLCBkYXRhRGlyKTsK
IH0KIAordm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFt
ZSwgaW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
IHBycERhdGFiYXNlQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0
eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBk
YXRhRGlyKQoreworICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcyhwcnBDYWxsYmFj
a3MpOworICAgIFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3Mo
cHJwRGF0YWJhc2VDYWxsYmFja3MpOworICAgIFdlYlNlY3VyaXR5T3JpZ2luIG9yaWdpbihzZWN1
cml0eU9yaWdpbik7CisgICAgaWYgKCFhbGxvd0luZGV4ZWREQihjb250ZXh0LCBuYW1lLCBvcmln
aW4sIGNhbGxiYWNrcykpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYkZyYW1lSW1wbCogd2Vi
RnJhbWUgPSBnZXRXZWJGcmFtZShjb250ZXh0KTsKKyAgICBtX3dlYklEQkZhY3RvcnktPm9wZW4o
bmFtZSwgdmVyc2lvbiwgdHJhbnNhY3Rpb25JZCwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2Fs
bGJhY2tzKSwgbmV3IFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbChkYXRhYmFzZUNhbGxiYWNr
cyksIG9yaWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIpOworfQorCiB2b2lkIElEQkZhY3RvcnlCYWNr
ZW5kUHJveHk6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2Vj
dXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmlu
ZyYgZGF0YURpcikKIHsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MocHJwQ2Fs
bGJhY2tzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3Rv
cnlCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlC
YWNrZW5kUHJveHkuaAppbmRleCA4ODM4MGQ3YTQyZWQxMTczMDI5MzViZWJiY2FjY2ViNmY2ZTk3
ZDc4Li5jODk5ZTgwYjcwMjIyZmU3YTMyOGY2NDMwZDI1MTQ5ZjRlZmNlZDI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCkBA
IC00OSw3ICs0OSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJGYWN0b3J5QmFja2VuZFBy
b3h5KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGly
KTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVhbCB2b2lkIG9wZW4oY29u
c3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Bl
bihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlv
bklkLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0
YURpcik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFt
ZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgZGF0YURpcik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAppbmRleCA1
YWU4NmE2Nzk2YTE5ODZjZTNmN2Y4MmMzYmZkMTg3YWMwZjI0YzUzLi42YTM2ZmQyOTU2YTQ5MjI4
NDU0NjZjYzA0YmQ3NDA1Y2YzOTNiODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTU5LDYg
KzU5LDE3IEBAIHZvaWQgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFu
Z2UoY29uc3QgV2ViU3RyaW5nJiB2ZXJzaW9uKQogICAgIG1fY2FsbGJhY2tzLT5vblZlcnNpb25D
aGFuZ2UodmVyc2lvbik7CiB9CiAKK3ZvaWQgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpv
bkFib3J0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBjb25zdCBXZWJJREJEYXRhYmFzZUVycm9y
JiBlcnJvcikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25BYm9ydCh0cmFuc2FjdGlvbklkLCBlcnJv
cik7Cit9CisKK3ZvaWQgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvbkNvbXBsZXRlKGxv
bmcgbG9uZyB0cmFuc2FjdGlvbklkKQoreworICAgIG1fY2FsbGJhY2tzLT5vbkNvbXBsZXRlKHRy
YW5zYWN0aW9uSWQpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8g
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCmluZGV4IGIwNzM3ZWViMmE5
YjYwYjRlNDM1NWE4NDQwYWM0NTA5MzhhNGI4MzcuLjUyOTNkNTQ3MWIwMTQwYzBiMzg0YWRkOGFm
MjJlNjU1MWVjM2U2ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCkBAIC00Niw2ICs0Niw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgpOwogICAgIHZpcnR1YWwgdm9pZCBv
blZlcnNpb25DaGFuZ2UobG9uZyBsb25nIG9sZFZlcnNpb24sIGxvbmcgbG9uZyBuZXdWZXJzaW9u
KTsKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFdlYlN0cmluZyYgdmVy
c2lvbik7CisgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQs
IGNvbnN0IFdlYklEQkRhdGFiYXNlRXJyb3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0
ZShsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCk7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNv
cmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCmluZGV4IDQwM2EzMGJlZTUx
MDc2MzA3NmFkMTZmNmE5ZDM4NDJiYmE5ZmJkNDAuLjg2ODQ2NDgzMzQ4NWM0OGUxMjhiMWIwYzg4
NWJjOWQ2MzU2ZmVmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkRhdGFiYXNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VJbXBsLmNwcApAQCAtNzUsNiArNzUsNyBAQCB2b2lkIFdlYklEQkRhdGFiYXNl
SW1wbDo6ZGVsZXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGNvbnN0IFdl
YklEQgogICAgIG1fZGF0YWJhc2VCYWNrZW5kLT5kZWxldGVPYmplY3RTdG9yZShvYmplY3RTdG9y
ZUlkLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMp
OwogfQogCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiBXZWJJREJUcmFuc2FjdGlvbiogV2ViSURC
RGF0YWJhc2VJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIGNvbnN0IFdlYlZl
Y3Rvcjxsb25nIGxvbmc+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKIHsK
ICAgICBWZWN0b3I8aW50NjRfdD4gb2JqZWN0U3RvcmVJZExpc3Qob2JqZWN0U3RvcmVJZHMuc2l6
ZSgpKTsKQEAgLTg2LDYgKzg3LDE1IEBAIFdlYklEQlRyYW5zYWN0aW9uKiBXZWJJREJEYXRhYmFz
ZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViCiAgICAgcmV0
dXJuIG5ldyBXZWJJREJUcmFuc2FjdGlvbkltcGwodHJhbnNhY3Rpb24pOwogfQogCit2b2lkIFdl
YklEQkRhdGFiYXNlSW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBXZWJJREJE
YXRhYmFzZUNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYg
b2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpCit7CisgICAgVmVjdG9yPGludDY0
X3Q+IG9iamVjdFN0b3JlSWRMaXN0KG9iamVjdFN0b3JlSWRzLnNpemUoKSk7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBvYmplY3RTdG9yZUlkcy5zaXplKCk7ICsraSkKKyAgICAgICAgb2Jq
ZWN0U3RvcmVJZExpc3RbaV0gPSBvYmplY3RTdG9yZUlkc1tpXTsKKyAgICBSZWZQdHI8SURCRGF0
YWJhc2VDYWxsYmFja3NQcm94eT4gZGF0YWJhc2VDYWxsYmFja3NQcm94eSA9IElEQkRhdGFiYXNl
Q2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsKKyAgICBtX2RhdGFi
YXNlQmFja2VuZC0+Y3JlYXRlVHJhbnNhY3Rpb24oaWQsIGRhdGFiYXNlQ2FsbGJhY2tzUHJveHku
Z2V0KCksIG9iamVjdFN0b3JlSWRMaXN0LCBtb2RlKTsKK30KKwogdm9pZCBXZWJJREJEYXRhYmFz
ZUltcGw6OmNsb3NlKCkKIHsKICAgICAvLyBVc2UgdGhlIGNhbGxiYWNrcyBwYXNzZWQgaW4gdG8g
dGhlIGNvbnN0cnVjdG9yIHNvIHRoYXQgdGhlIGJhY2tlbmQgaW4KQEAgLTEwNCw2ICsxMTQsMTgg
QEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmZvcmNlQ2xvc2UoKQogICAgIGNhbGxiYWNrcy0+
b25Gb3JjZWRDbG9zZSgpOwogfQogCit2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6YWJvcnQobG9u
ZyBsb25nIHRyYW5zYWN0aW9uSWQpCit7CisgICAgaWYgKG1fZGF0YWJhc2VCYWNrZW5kKQorICAg
ICAgICBtX2RhdGFiYXNlQmFja2VuZC0+YWJvcnQodHJhbnNhY3Rpb25JZCk7Cit9CisKK3ZvaWQg
V2ViSURCRGF0YWJhc2VJbXBsOjpjb21taXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQpCit7Cisg
ICAgaWYgKG1fZGF0YWJhc2VCYWNrZW5kKQorICAgICAgICBtX2RhdGFiYXNlQmFja2VuZC0+Y29t
bWl0KHRyYW5zYWN0aW9uSWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRleCA2NmFhODRkYmE4YTgzYzk4MThhZGM5NjJl
M2NiNzIwMjU3ZGE3MmFmLi4zYjk3NzI4MWE0MGU4ZTdjMmFlMjg1YzExYmMyMWU5ODEzY2M0Y2Rl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUlt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwu
aApAQCAtNTQsOSArNTQsMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBXZWJJREJPYmplY3RT
dG9yZSogY3JlYXRlT2JqZWN0U3RvcmUobG9uZyBsb25nLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUs
IGNvbnN0IFdlYklEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIGNvbnN0IFdlYklEQlRy
YW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVP
YmplY3RTdG9yZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViSURCVHJhbnNhY3Rp
b24mLCBXZWJFeGNlcHRpb25Db2RlJik7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhv
ZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAg
IHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBp
ZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBXZWJJREJEYXRh
YmFzZUNhbGxiYWNrcyosIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgdW5zaWduZWQgc2hv
cnQgbW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGZvcmNlQ2xvc2UoKTsKICAgICB2aXJ0dWFsIHZv
aWQgY2xvc2UoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnQobG9uZyBsb25nIHRyYW5zYWN0aW9u
SWQpOworICAgIHZpcnR1YWwgdm9pZCBjb21taXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQpOwog
CiBwcml2YXRlOgogICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZT4gbV9kYXRhYmFzZUJhY2tlbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAKaW5kZXggOTRhOGQ0NjhhOTBhOTBjNDEyYzdhYTZj
OThhZWZiNzRiYjdhMzdiOC4uZDEwZWI5MjE2MmNjOTcxM2MzNDhhYTRmN2Y4ZDhmMDE1Yjg4ODMx
YiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUlt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBs
LmNwcApAQCAtNjUsNiArNjUsNyBAQCB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpnZXREYXRhYmFz
ZU5hbWVzKFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZQogICAgIG1faWRi
RmFjdG9yeUJhY2tlbmQtPmdldERhdGFiYXNlTmFtZXMoSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0
ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKIH0KIAorLy8gRklY
TUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzOTIzLgogdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6b3Blbihjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIGxvbmcgbG9uZyB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNr
cywgV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGRhdGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBXZWJT
ZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURp
cikKIHsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzUHJveHk+IGNhbGxiYWNrc1Byb3h5ID0gSURC
Q2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsKQEAgLTczLDYgKzc0
LDE0IEBAIHZvaWQgV2ViSURCRmFjdG9yeUltcGw6Om9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1l
LCBsb25nIGxvbmcgdmVyc2lvbiwgV2ViSURCQ2FsCiAgICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+
b3BlbihuYW1lLCB2ZXJzaW9uLCBjYWxsYmFja3NQcm94eS5nZXQoKSwgZGF0YWJhc2VDYWxsYmFj
a3NQcm94eS5nZXQoKSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKIH0KIAordm9pZCBXZWJJREJGYWN0
b3J5SW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGxvbmcgbG9uZyB2ZXJzaW9uLCBs
b25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIFdlYklE
QkRhdGFiYXNlQ2FsbGJhY2tzKiBkYXRhYmFzZUNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlP
cmlnaW4mIG9yaWdpbiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpCit7Cisg
ICAgUmVmUHRyPElEQkNhbGxiYWNrc1Byb3h5PiBjYWxsYmFja3NQcm94eSA9IElEQkNhbGxiYWNr
c1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSk7CisgICAgUmVmUHRyPElEQkRhdGFi
YXNlQ2FsbGJhY2tzUHJveHk+IGRhdGFiYXNlQ2FsbGJhY2tzUHJveHkgPSBJREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoZGF0YWJhc2VDYWxsYmFja3MpKTsKKyAgICBj
YWxsYmFja3NQcm94eS0+c2V0RGF0YWJhc2VDYWxsYmFja3MoZGF0YWJhc2VDYWxsYmFja3NQcm94
eSk7CisgICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+b3BlbihuYW1lLCB2ZXJzaW9uLCB0cmFuc2Fj
dGlvbklkLCBjYWxsYmFja3NQcm94eS5nZXQoKSwgZGF0YWJhc2VDYWxsYmFja3NQcm94eS5nZXQo
KSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKK30KKwogdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6ZGVs
ZXRlRGF0YWJhc2UoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqIGNhbGxi
YWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgV2ViRnJhbWUqLCBjb25zdCBX
ZWJTdHJpbmcmIGRhdGFEaXIpCiB7CiAgICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+ZGVsZXRlRGF0
YWJhc2UobmFtZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3Mp
KSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJGYWN0b3J5SW1wbC5oCmluZGV4IDMzZjVhMjFkMmM3NGY1OGRmZjk0ZTFlYjdiOTBlNWFk
NDMwZDE2MjcuLjdjMGRlZTc5MTE5MzJhNmQ0ZjJkMzkxOTkzM2EyNjIwYTk2NDZkOTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaApAQCAtNDUs
NyArNDUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViSURCRmFjdG9yeUltcGwoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFdlYklEQkNhbGxiYWNrcyosIGNvbnN0
IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIp
OworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25z
dCBXZWJTdHJpbmcmIG5hbWUsIGxvbmcgbG9uZyB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqLCBX
ZWJJREJEYXRhYmFzZUNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJh
bWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNv
bnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2Fj
dGlvbklkLCBXZWJJREJDYWxsYmFja3MqLCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyosIGNvbnN0
IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIp
OwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBXZWJTdHJpbmcmIG5hbWUs
IFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBj
b25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCmluZGV4IGVj
MDc5ZjUwY2QzY2JjZTlkZmUyMTIxMzlkNDYwN2UxOTQ0ZjNhMmIuLjJmMzllYjU2MGY3MzI3ZjVh
N2ZlMTVhZWMwOWMzZGViNTRkNjZhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKQEAgLTEwOCw2ICsxMDgsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcm
IHZlcnNpb24pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2Uo
aW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pIE9WRVJSSURFIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBvbkZvcmNlZENsb3NlKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2
b2lkIG9uQWJvcnQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNl
RXJyb3I+IGVycm9yKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0ZShp
bnQ2NF90IHRyYW5zYWN0aW9uSWQpIE9WRVJSSURFIHsgfQogcHJpdmF0ZToKICAgICBGYWtlSURC
RGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAppbmRleCAwZDI2MjI0NjY1
MzgxNGE0N2RjOThmYThiM2M5ZmEwYjlhMjEyYmEzLi41NWI4NWRhMDAzOWIzYTExMGQxN2EwMmY0
ZjcyYjY1NGMwN2JlMTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKQEAgLTEwOCw2ICsxMDgsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHZlcnNp
b24pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRf
dCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBvbkZvcmNlZENsb3NlKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIG9u
QWJvcnQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+
IGVycm9yKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0ZShpbnQ2NF90
IHRyYW5zYWN0aW9uSWQpIE9WRVJSSURFIHsgfQogcHJpdmF0ZToKICAgICBGYWtlSURCRGF0YWJh
c2VDYWxsYmFja3MoKSB7IH0KIH07CkBAIC0xNTIsNyArMTU0LDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZU9i
amVjdFN0b3JlKGludDY0X3QsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYs
IGJvb2wgYXV0b0luY3JlbWVudCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhj
ZXB0aW9uQ29kZSYpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0
U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uq
LCBFeGNlcHRpb25Db2RlJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3Jl
KGludDY0X3QsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUm
KSB7IH0KKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRf
dCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkgeyByZXR1cm4g
MDsgfQorICAgIHZvaWQgY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCwgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIHVuc2lnbmVkIHNob3J0
IG1vZGUpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VDYWxsYmFja3M+KQogICAgIHsKQEAgLTE2MCw2ICsxNjQsOSBAQCBwdWJsaWM6CiAgICAgICAg
IG1fd2ViRGF0YWJhc2UuY2xvc2UoKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnQo
aW50NjRfdCB0cmFuc2FjdGlvbklkKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0KGludDY0
X3QgdHJhbnNhY3Rpb25JZCkgeyB9CisKIHByaXZhdGU6CiAgICAgTW9ja0lEQkRhdGFiYXNlQmFj
a2VuZFByb3h5KFdlYklEQkRhdGFiYXNlSW1wbCYgd2ViRGF0YWJhc2UpCiAgICAgICAgIDogbV93
YXNDbG9zZUNhbGxlZChmYWxzZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>