<?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>228289</bug_id>
          
          <creation_ts>2021-07-26 11:38:48 -0700</creation_ts>
          <short_desc>Implement IDBTransaction.durability</short_desc>
          <delta_ts>2021-07-28 21:05:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jsbell</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>nham</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1779492</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-26 11:38:48 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779498</commentid>
    <comment_count>1</comment_count>
      <attachid>434221</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-26 11:51:26 -0700</bug_when>
    <thetext>Created attachment 434221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779812</commentid>
    <comment_count>2</comment_count>
      <attachid>434306</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-27 12:06:50 -0700</bug_when>
    <thetext>Created attachment 434306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779831</commentid>
    <comment_count>3</comment_count>
      <attachid>434312</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-27 14:17:24 -0700</bug_when>
    <thetext>Created attachment 434312
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780084</commentid>
    <comment_count>4</comment_count>
      <attachid>434312</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-28 09:51:34 -0700</bug_when>
    <thetext>Comment on attachment 434312
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBDatabase.h:67
&gt; +        TransactionOptions() : durability() { }

What does it mean to initialize `durability()` when it is an enum class? Shouldn&apos;t we use IDBTransactionDurability::Default?

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1155
&gt; +            WTFLogAlways(&quot;sihuil: [%p]SQLiteIDBBackingStore::commitTransaction durability strict&quot;, this);

OOPS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780085</commentid>
    <comment_count>5</comment_count>
      <attachid>434312</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-07-28 09:53:20 -0700</bug_when>
    <thetext>Comment on attachment 434312
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBTransactionDurability.h:32
&gt; +enum class IDBTransactionDurability {

: uint8_t</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780087</commentid>
    <comment_count>6</comment_count>
      <attachid>434312</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-07-28 10:00:42 -0700</bug_when>
    <thetext>Comment on attachment 434312
Patch

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

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBDatabase.h:67
&gt;&gt; +        TransactionOptions() : durability() { }
&gt; 
&gt; What does it mean to initialize `durability()` when it is an enum class? Shouldn&apos;t we use IDBTransactionDurability::Default?

It will give us the first value in the enumeration, so it will set it to IDBTransactionDurability::String; so I agree that we should either use IDBTransactionDurability::Default or reorder the enumeration values. But also, this can, and should, be done with member initialization syntax rather than a constructor.

    IDBTransactionDurability durability { IDBTransactionDurability::Default };

We should add test coverage, because the wrong default value should be observable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780092</commentid>
    <comment_count>7</comment_count>
      <attachid>434312</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-07-28 10:16:02 -0700</bug_when>
    <thetext>Comment on attachment 434312
Patch

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

&gt; Source/WebCore/platform/sql/SQLiteDatabase.h:100
&gt; +    enum class CheckpointMode : uint8_t { Passive, Full, Restart, Truncate };

These constants need to match the values expected by sqlite3_wal_checkpoint_v2. So reordering them or adding a new value would create a big problem. I can see think of two ways to handle this:

1) Could add four static_assert checks to make sure these values match values like SQLITE_CHECKPOINT_PASSIVE. Those would go into the implementation file, so would not pollute the header.
2) Could convert from our CheckpointMode to SQLITE_CHECKPOINT_* constants with a switch statement instead of by casting to int.

Or maybe you can think of another solution.

&gt; Source/WebCore/platform/sql/SQLiteDatabase.h:101
&gt; +    int checkpoint(CheckpointMode);

This should return void. If we wanted it to return a result, we would need to define what the return value means. Just passing through the integer from the sqlite3_wal_checkpoint_v2 call doesn’t seem reasonable from an encapsulation point of view.

Better, all of this should be private. I don’t see any clients outside SQLiteDatabase.cpp. Maybe not members at all. This entire thing could be kept inside the implementation file without touching the header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780116</commentid>
    <comment_count>8</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-28 10:36:14 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; Comment on attachment 434312 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=434312&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/IDBDatabase.h:67
&gt; &gt; +        TransactionOptions() : durability() { }
&gt; 
&gt; What does it mean to initialize `durability()` when it is an enum class?
&gt; Shouldn&apos;t we use IDBTransactionDurability::Default?

Yes, it should be IDBTransactionDurability::Default.

&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1155
&gt; &gt; +            WTFLogAlways(&quot;sihuil: [%p]SQLiteIDBBackingStore::commitTransaction durability strict&quot;, this);
&gt; 
&gt; OOPS.

OOPS, will remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780117</commentid>
    <comment_count>9</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-28 10:37:16 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; Comment on attachment 434312 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=434312&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/indexeddb/IDBDatabase.h:67
&gt; &gt;&gt; +        TransactionOptions() : durability() { }
&gt; &gt; 
&gt; &gt; What does it mean to initialize `durability()` when it is an enum class? Shouldn&apos;t we use IDBTransactionDurability::Default?
&gt; 
&gt; It will give us the first value in the enumeration, so it will set it to
&gt; IDBTransactionDurability::String; so I agree that we should either use
&gt; IDBTransactionDurability::Default or reorder the enumeration values. But
&gt; also, this can, and should, be done with member initialization syntax rather
&gt; than a constructor.
&gt; 
&gt;     IDBTransactionDurability durability { IDBTransactionDurability::Default
&gt; };
&gt; 
&gt; We should add test coverage, because the wrong default value should be
&gt; observable.

Will add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780118</commentid>
    <comment_count>10</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-28 10:40:19 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 434312 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=434312&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/sql/SQLiteDatabase.h:100
&gt; &gt; +    enum class CheckpointMode : uint8_t { Passive, Full, Restart, Truncate };
&gt; 
&gt; These constants need to match the values expected by
&gt; sqlite3_wal_checkpoint_v2. So reordering them or adding a new value would
&gt; create a big problem. I can see think of two ways to handle this:
&gt; 
&gt; 1) Could add four static_assert checks to make sure these values match
&gt; values like SQLITE_CHECKPOINT_PASSIVE. Those would go into the
&gt; implementation file, so would not pollute the header.
&gt; 2) Could convert from our CheckpointMode to SQLITE_CHECKPOINT_* constants
&gt; with a switch statement instead of by casting to int.
&gt; 
&gt; Or maybe you can think of another solution.

2) sounds good to me. Will change.

&gt; 
&gt; &gt; Source/WebCore/platform/sql/SQLiteDatabase.h:101
&gt; &gt; +    int checkpoint(CheckpointMode);
&gt; 
&gt; This should return void. If we wanted it to return a result, we would need
&gt; to define what the return value means. Just passing through the integer from
&gt; the sqlite3_wal_checkpoint_v2 call doesn’t seem reasonable from an
&gt; encapsulation point of view.

Okay, will change to void.

&gt; 
&gt; Better, all of this should be private. I don’t see any clients outside
&gt; SQLiteDatabase.cpp. Maybe not members at all. This entire thing could be
&gt; kept inside the implementation file without touching the header.

SQLiteIDBBackingStore uses this to force writing data back to file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780184</commentid>
    <comment_count>11</comment_count>
      <attachid>434455</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-28 13:26:54 -0700</bug_when>
    <thetext>Created attachment 434455
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780212</commentid>
    <comment_count>12</comment_count>
      <attachid>434455</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-07-28 14:42:39 -0700</bug_when>
    <thetext>Comment on attachment 434455
Patch

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

&gt; Source/WebCore/platform/sql/SQLiteDatabase.h:100
&gt; +    enum class CheckpointMode : uint8_t { Passive, Full, Restart, Truncate };

Since WebKit is only using Full and Truncate, can we leave Passive and Restart out for now? We can add then if we find we need the modes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780302</commentid>
    <comment_count>13</comment_count>
      <attachid>434492</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-28 20:04:23 -0700</bug_when>
    <thetext>Created attachment 434492
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780303</commentid>
    <comment_count>14</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-28 20:05:04 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #12)
&gt; Comment on attachment 434455 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=434455&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/sql/SQLiteDatabase.h:100
&gt; &gt; +    enum class CheckpointMode : uint8_t { Passive, Full, Restart, Truncate };
&gt; 
&gt; Since WebKit is only using Full and Truncate, can we leave Passive and
&gt; Restart out for now? We can add then if we find we need the modes.

Sure, removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780306</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-28 21:04:26 -0700</bug_when>
    <thetext>Committed r280415 (240055@main): &lt;https://commits.webkit.org/240055@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434492.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780307</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-28 21:05:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/81251758&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434221</attachid>
            <date>2021-07-26 11:51:26 -0700</date>
            <delta_ts>2021-07-27 12:06:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228289-20210726115125.patch</filename>
            <type>text/plain</type>
            <size>26236</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY2MWFlMzlhNzRlMDYy
NzVlZmRjYWZmMzM4ZDhjNzUwYjYxNzczYy4uYTg5MDQ2NGE3YThlZWViYTQ5ZWY3ZjkyMTQ4YTQ0
OTdiMmQ2NWMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA3LTI2ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBJREJUcmFu
c2FjdGlvbi5kdXJhYmlsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjgyODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRs
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5o
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkR1cmFi
aWxpdHkuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FM
aXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FM
aXRlSURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpkdXJhYmlsaXR5IGNvbnN0KToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uSW5mbzo6Y2xpZW50VHJhbnNhY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25JbmZvOjppc29sYXRlZENvcHkp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8u
aDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uSW5mbzo6ZHVyYWJpbGl0eSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkluZm86OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkluZm86OmRlY29kZSk6CisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6Y2hlY2twb2ludCk6CisgICAgICAgIChXZWJDb3Jl
OjpTUUxpdGVEYXRhYmFzZTo6dXNlV0FMSm91cm5hbE1vZGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorCiAyMDIxLTA3LTIzICBBZGl0eWEgS2VlcnRoaSAgPGFr
ZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFJlcGFpbnRpbmcgYXJ0aWZhY3Rz
IHdoZW4gbW92aW5nIGlucHV0IHR5cGU9cmFuZ2Ugc2xpZGVyIHRodW1iCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBjYTI5ZTEyYmU1YTA0
MDFhM2I0ZTg3NGMzY2YyY2Y0MTYyODZhZDMxLi43MDJmNjVhYjkwODJkZDJkNmMwZjA5MDYwNmEx
OTk5YmJkZGIyNTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKQEAgLTE1MSw2ICsxNTEsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb24uaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbkR1cmFiaWxpdHkuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbk1vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJW
ZXJzaW9uQ2hhbmdlRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9X
aW5kb3dPcldvcmtlckdsb2JhbFNjb3BlK0luZGV4ZWREYXRhYmFzZS5pZGwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMDFlODlkYmYx
NzYxYTZiZWFiYjUyYmVhMWFiMTgxNDAyYTNjMDVhNy4uMWYzNWJlOWFhMGI4ZGYyMmNlZjU5YjYw
ZWU3MDcwMjQ3ODAwMGM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKQEAgLTExNjUsNiArMTE2NSw4IEBAICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCUmVxdWVzdC5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCUmVxdWVzdC5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lEQlRyYW5zYWN0aW9uLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJUcmFu
c2FjdGlvbi5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCVHJhbnNhY3Rpb25Nb2Rl
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJU
cmFuc2FjdGlvbk1vZGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCAyMzdiMGM2NDViZDkwNWIwZjg0NjBiOWY5NmRiZTA3NmExYjZiNTlkLi4zOWIy
ZjM5ZDEwNDJjOGMyMDQ3M2FlNzNmNGQwMDc3ZDExNmRhMzBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTE3Nyw2ICsxNzcsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsIFwKKwkkKFdlYkNvcmUp
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Nb2RlLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL1dpbmRvd09yV29ya2VyR2xvYmFsU2Nv
cGUrSW5kZXhlZERhdGFiYXNlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggYTRiZDU0MjI0N2VjY2MxNmIyNjdiMjI3OTg2
M2E5ZjM1NGUxM2EwNi4uYTdiM2RjZjU5MjRkZjIzZDk3OTc4YThjZTkxMDEwYjI5YTA5MGQ5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNw
cApAQCAtMTYyLDcgKzE2Miw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxJREJPYmplY3RTdG9yZT4+IElE
QkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hCiAgICAgcmV0dXJu
IG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uLT5jcmVhdGVPYmplY3RTdG9yZShpbmZvKTsKIH0K
IAotRXhjZXB0aW9uT3I8UmVmPElEQlRyYW5zYWN0aW9uPj4gSURCRGF0YWJhc2U6OnRyYW5zYWN0
aW9uKFN0cmluZ09yVmVjdG9yT2ZTdHJpbmdzJiYgc3RvcmVOYW1lcywgSURCVHJhbnNhY3Rpb25N
b2RlIG1vZGUpCitFeGNlcHRpb25PcjxSZWY8SURCVHJhbnNhY3Rpb24+PiBJREJEYXRhYmFzZTo6
dHJhbnNhY3Rpb24oU3RyaW5nT3JWZWN0b3JPZlN0cmluZ3MmJiBzdG9yZU5hbWVzLCBJREJUcmFu
c2FjdGlvbk1vZGUgbW9kZSwgVHJhbnNhY3Rpb25PcHRpb25zIG9wdGlvbnMpCiB7CiAgICAgTE9H
KEluZGV4ZWREQiwgIklEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbiIpOwogCkBAIC0yMDAsNyArMjAw
LDcgQEAgRXhjZXB0aW9uT3I8UmVmPElEQlRyYW5zYWN0aW9uPj4gSURCRGF0YWJhc2U6OnRyYW5z
YWN0aW9uKFN0cmluZ09yVmVjdG9yT2ZTdHJpbmcKICAgICBpZiAobW9kZSAhPSBJREJUcmFuc2Fj
dGlvbk1vZGU6OlJlYWRvbmx5ICYmIG1vZGUgIT0gSURCVHJhbnNhY3Rpb25Nb2RlOjpSZWFkd3Jp
dGUpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKIAotICAgIGF1dG8g
aW5mbyA9IElEQlRyYW5zYWN0aW9uSW5mbzo6Y2xpZW50VHJhbnNhY3Rpb24obV9jb25uZWN0aW9u
UHJveHkuZ2V0KCksIG9iamVjdFN0b3JlcywgbW9kZSk7CisgICAgYXV0byBpbmZvID0gSURCVHJh
bnNhY3Rpb25JbmZvOjpjbGllbnRUcmFuc2FjdGlvbihtX2Nvbm5lY3Rpb25Qcm94eS5nZXQoKSwg
b2JqZWN0U3RvcmVzLCBtb2RlLCBvcHRpb25zLmR1cmFiaWxpdHkpOwogCiAgICAgTE9HKEluZGV4
ZWREQk9wZXJhdGlvbnMsICJJREIgY3JlYXRpbmcgdHJhbnNhY3Rpb246ICVzIiwgaW5mby5sb2dn
aW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgYXV0byB0cmFuc2FjdGlvbiA9IElEQlRy
YW5zYWN0aW9uOjpjcmVhdGUoKnRoaXMsIGluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKaW5kZXggMzM4ZjMwZTY3ZTQ5OTZmMmM3ZGUxMTJm
N2Q3YWExNGIzZGM0NjFmZi4uZTcwYjJlM2I3NTMwMjVlYjFlM2RhY2I5NDkzMWVhNDIwZjY5NThk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5o
CkBAIC02Myw3ICs2MywxMCBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQk9iamVj
dFN0b3JlPj4gY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBPYmplY3RTdG9y
ZVBhcmFtZXRlcnMmJik7CiAKICAgICB1c2luZyBTdHJpbmdPclZlY3Rvck9mU3RyaW5ncyA9IFdU
Rjo6VmFyaWFudDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKLSAgICBFeGNlcHRpb25PcjxSZWY8
SURCVHJhbnNhY3Rpb24+PiB0cmFuc2FjdGlvbihTdHJpbmdPclZlY3Rvck9mU3RyaW5ncyYmIHN0
b3JlTmFtZXMsIElEQlRyYW5zYWN0aW9uTW9kZSk7CisgICAgc3RydWN0IFRyYW5zYWN0aW9uT3B0
aW9ucyB7CisgICAgICAgIElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eSBkdXJhYmlsaXR5OworICAg
IH07CisgICAgRXhjZXB0aW9uT3I8UmVmPElEQlRyYW5zYWN0aW9uPj4gdHJhbnNhY3Rpb24oU3Ry
aW5nT3JWZWN0b3JPZlN0cmluZ3MmJiBzdG9yZU5hbWVzLCBJREJUcmFuc2FjdGlvbk1vZGUsIFRy
YW5zYWN0aW9uT3B0aW9ucyA9IHsgfSk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gZGVsZXRlT2Jq
ZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIGNsb3NlKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbAppbmRleCAz
NmRiZGJjNzdjMjBmNzk5OTM2ODg3MDliMzgwZDYwNmQ4MGRhNzEwLi4zNmNhMzM0MGIwNGFhMjI2
Njg2ZDIyZGZiMWEzYmVkNjg4ZWQ0ZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaWRsCkBAIC0zMyw4ICszMyw3IEBACiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uOwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmdMaXN0IG9iamVjdFN0b3JlTmFtZXM7CiAKLSAgICAvLyBGSVhNRTog
J3RyYW5zYWN0aW9uJyBzaG91bGQgYWxzbyB0YWtlIGFuIG9wdGlvbmFsICdJREJUcmFuc2FjdGlv
bk9wdGlvbnMnIGFyZ3VtZW50LgotICAgIFtOZXdPYmplY3RdIElEQlRyYW5zYWN0aW9uIHRyYW5z
YWN0aW9uKChET01TdHJpbmcgb3Igc2VxdWVuY2U8RE9NU3RyaW5nPikgc3RvcmVOYW1lcywgb3B0
aW9uYWwgSURCVHJhbnNhY3Rpb25Nb2RlIG1vZGUgPSAicmVhZG9ubHkiKTsKKyAgICBbTmV3T2Jq
ZWN0XSBJREJUcmFuc2FjdGlvbiB0cmFuc2FjdGlvbigoRE9NU3RyaW5nIG9yIHNlcXVlbmNlPERP
TVN0cmluZz4pIHN0b3JlTmFtZXMsIG9wdGlvbmFsIElEQlRyYW5zYWN0aW9uTW9kZSBtb2RlID0g
InJlYWRvbmx5Iiwgb3B0aW9uYWwgSURCVHJhbnNhY3Rpb25PcHRpb25zIG9wdGlvbnMpOwogICAg
IHVuZGVmaW5lZCBjbG9zZSgpOwogCiAgICAgW05ld09iamVjdF0gSURCT2JqZWN0U3RvcmUgY3Jl
YXRlT2JqZWN0U3RvcmUoRE9NU3RyaW5nIG5hbWUsIG9wdGlvbmFsIElEQk9iamVjdFN0b3JlUGFy
YW1ldGVycyBwYXJhbWV0ZXJzKTsKQEAgLTU1LDMgKzU0LDcgQEAgZGljdGlvbmFyeSBJREJPYmpl
Y3RTdG9yZVBhcmFtZXRlcnMgewogICAgIChET01TdHJpbmcgb3Igc2VxdWVuY2U8RE9NU3RyaW5n
Pik/IGtleVBhdGggPSBudWxsOwogICAgIGJvb2xlYW4gYXV0b0luY3JlbWVudCA9IGZhbHNlOwog
fTsKKworZGljdGlvbmFyeSBJREJUcmFuc2FjdGlvbk9wdGlvbnMgeworICAgIElEQlRyYW5zYWN0
aW9uRHVyYWJpbGl0eSBkdXJhYmlsaXR5ID0gImRlZmF1bHQiOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IDc3MTA4NmQz
NTNlYmM1ZTBjMmI2MzNiYjNiYTlmYjJmZjJmOWUzMDMuLjU3NmRjZGI3ZTFiZGIyYTI2ZDA4YWRj
ZDMwYTk1MDEwMWU1MjE0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAgICAgLy8g
SURCVHJhbnNhY3Rpb24gSURMCiAgICAgUmVmPERPTVN0cmluZ0xpc3Q+IG9iamVjdFN0b3JlTmFt
ZXMoKSBjb25zdDsKICAgICBJREJUcmFuc2FjdGlvbk1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJu
IG1faW5mby5tb2RlKCk7IH0KKyAgICBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkgZHVyYWJpbGl0
eSgpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5kdXJhYmlsaXR5KCk7IH0KICAgICBJREJEYXRhYmFz
ZSogZGIoKTsKICAgICBET01FeGNlcHRpb24qIGVycm9yKCkgY29uc3Q7CiAgICAgRXhjZXB0aW9u
T3I8UmVmPElEQk9iamVjdFN0b3JlPj4gb2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
LmlkbAppbmRleCAzNzcxODBmYzgyNTc5MmZhMWQ0MGVlZDIzZTIxMWU1ZDkyMTg2Zjk5Li40MWNm
YzczNDViMTQ1NDg1MjJmYmMyOTU0M2I1YzUxZGRiNmQ0YTFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsCkBAIC0zMiw4ICsz
Miw3IEBACiBdIGludGVyZmFjZSBJREJUcmFuc2FjdGlvbiA6IEV2ZW50VGFyZ2V0IHsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCBvYmplY3RTdG9yZU5hbWVzOwogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBJREJUcmFuc2FjdGlvbk1vZGUgbW9kZTsKLSAgICAvLyBJbXBsZW1l
bnQgJ2R1cmFiaWxpdHknLgotICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJUcmFuc2FjdGlv
bkR1cmFiaWxpdHkgZHVyYWJpbGl0eTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCVHJhbnNh
Y3Rpb25EdXJhYmlsaXR5IGR1cmFiaWxpdHk7CiAgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBJREJEYXRhYmFzZSBkYjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NRXhjZXB0
aW9uPyBlcnJvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWJlNTRmY2Nj
ZjI4MTRiNjhjYzFlNDYxODMxYmFkYzMyM2ZjODVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmgKQEAg
LTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIElEQlRy
YW5zYWN0aW9uRHVyYWJpbGl0eSB7CisgICAgU3RyaWN0LAorICAgIFJlbGF4ZWQsCisgICAgRGVm
YXVsdAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwor
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkR1cmFi
aWxpdHk+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHksCisgICAgICAgIFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uRHVyYWJpbGl0eTo6U3RyaWN0LAorICAgICAgICBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkR1
cmFiaWxpdHk6OlJlbGF4ZWQsCisgICAgICAgIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uRHVyYWJp
bGl0eTo6RGVmYXVsdAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uRHVyYWJp
bGl0eS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bkR1cmFiaWxpdHkuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmNjJiOWUyYmZjNWRiMzQ2NTIzNmY1N2FkYWMx
Nzg4NWJjYzE3ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworXSBlbnVtIElE
QlRyYW5zYWN0aW9uRHVyYWJpbGl0eSB7CisgICAgInN0cmljdCIsCisgICAgInJlbGF4ZWQiLAor
ICAgICJkZWZhdWx0IgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXgg
ZThkNTBjZjhlNDgwODBkZDM0NTQ4NmY5NWZjNGY1MWIxMWU2MGMxMS4uYjNmZmE2MWNjMzY2YmIz
NzMzNjFkNjIzMjRkYmM3NTAwYTI1ZWVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9y
ZS5jcHAKQEAgLTExNDksOCArMTE0OSwxMSBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgaQogICAg
ICAgICAgICAgQVNTRVJUKG1fb3JpZ2luYWxEYXRhYmFzZUluZm9CZWZvcmVWZXJzaW9uQ2hhbmdl
KTsKICAgICAgICAgICAgIG1fZGF0YWJhc2VJbmZvID0gV1RGTW92ZShtX29yaWdpbmFsRGF0YWJh
c2VJbmZvQmVmb3JlVmVyc2lvbkNoYW5nZSk7CiAgICAgICAgIH0KLSAgICB9IGVsc2UKKyAgICB9
IGVsc2UgewogICAgICAgICBtX29yaWdpbmFsRGF0YWJhc2VJbmZvQmVmb3JlVmVyc2lvbkNoYW5n
ZSA9IG51bGxwdHI7CisgICAgICAgIGlmICh0cmFuc2FjdGlvbi0+ZHVyYWJpbGl0eSgpID09IElE
QlRyYW5zYWN0aW9uRHVyYWJpbGl0eTo6U3RyaWN0KQorICAgICAgICAgICAgbV9zcWxpdGVEQi0+
Y2hlY2twb2ludChTUUxpdGVEYXRhYmFzZTo6Q2hlY2twb2ludE1vZGU6OkZ1bGwpOworICAgIH0K
IAogICAgIHJldHVybiBlcnJvcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKaW5kZXgg
NjRmNzBjMzAxNjc5ODAyNzJjZGRhYjJjNDQyNzkwM2Y4OWFhNTYzYy4uYmQwZmNhOGY5NzEwZDNm
NzdjNTI3NjIxMTM4MjBjZGQ0MmZiMDhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgK
QEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZvaWQgbm90aWZ5Q3Vyc29yc09mQ2hhbmdl
cyhpbnQ2NF90IG9iamVjdFN0b3JlSUQpOwogCiAgICAgSURCVHJhbnNhY3Rpb25Nb2RlIG1vZGUo
KSBjb25zdCB7IHJldHVybiBtX2luZm8ubW9kZSgpOyB9CisgICAgSURCVHJhbnNhY3Rpb25EdXJh
YmlsaXR5IGR1cmFiaWxpdHkoKSBjb25zdCB7IHJldHVybiBtX2luZm8uZHVyYWJpbGl0eSgpOyB9
CiAgICAgYm9vbCBpblByb2dyZXNzKCkgY29uc3Q7CiAKICAgICBTUUxpdGVUcmFuc2FjdGlvbiog
c3FsaXRlVHJhbnNhY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NxbGl0ZVRyYW5zYWN0aW9uLmdl
dCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFy
ZWQvSURCVHJhbnNhY3Rpb25JbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uY3BwCmluZGV4IDU0ODMxM2NhNTRiMDY5Y2Yx
YmJjNTVkNDZmNWUzNjVkMTYwNjBkNjQuLjQzODZjM2M4OTJiMTgzZDBkYjAwZGNlZTI1NmMyNWMy
MTQ1Y2RmZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJUcmFuc2FjdGlvbkluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uY3BwCkBAIC0zOSwxMSArMzksMTIg
QEAgSURCVHJhbnNhY3Rpb25JbmZvOjpJREJUcmFuc2FjdGlvbkluZm8oY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiBpZGVudGlmaWVyKQogewogfQogCi1JREJUcmFuc2FjdGlvbkluZm8gSURC
VHJhbnNhY3Rpb25JbmZvOjpjbGllbnRUcmFuc2FjdGlvbihjb25zdCBJREJDbGllbnQ6OklEQkNv
bm5lY3Rpb25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgb2Jq
ZWN0U3RvcmVzLCBJREJUcmFuc2FjdGlvbk1vZGUgbW9kZSkKK0lEQlRyYW5zYWN0aW9uSW5mbyBJ
REJUcmFuc2FjdGlvbkluZm86OmNsaWVudFRyYW5zYWN0aW9uKGNvbnN0IElEQkNsaWVudDo6SURC
Q29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJveHksIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBv
YmplY3RTdG9yZXMsIElEQlRyYW5zYWN0aW9uTW9kZSBtb2RlLCBJREJUcmFuc2FjdGlvbkR1cmFi
aWxpdHkgZHVyYWJpbGl0eSkKIHsKICAgICBJREJUcmFuc2FjdGlvbkluZm8gcmVzdWx0KChJREJS
ZXNvdXJjZUlkZW50aWZpZXIoY29ubmVjdGlvblByb3h5KSkpOwotICAgIHJlc3VsdC5tX21vZGUg
PSBtb2RlOwogICAgIHJlc3VsdC5tX29iamVjdFN0b3JlcyA9IG9iamVjdFN0b3JlczsKKyAgICBy
ZXN1bHQubV9tb2RlID0gbW9kZTsKKyAgICByZXN1bHQubV9kdXJhYmlsaXR5ID0gZHVyYWJpbGl0
eTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC04Miw2ICs4Myw3IEBAIHZvaWQgSURCVHJh
bnNhY3Rpb25JbmZvOjppc29sYXRlZENvcHkoY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBzb3Vy
Y2UsIElEQlRyYW5zCiB7CiAgICAgZGVzdGluYXRpb24ubV9pZGVudGlmaWVyID0gc291cmNlLm1f
aWRlbnRpZmllci5pc29sYXRlZENvcHkoKTsKICAgICBkZXN0aW5hdGlvbi5tX21vZGUgPSBzb3Vy
Y2UubV9tb2RlOworICAgIGRlc3RpbmF0aW9uLm1fZHVyYWJpbGl0eSA9IHNvdXJjZS5tX2R1cmFi
aWxpdHk7CiAgICAgZGVzdGluYXRpb24ubV9uZXdWZXJzaW9uID0gc291cmNlLm1fbmV3VmVyc2lv
bjsKIAogICAgIGRlc3RpbmF0aW9uLm1fb2JqZWN0U3RvcmVzLnJlc2VydmVDYXBhY2l0eShzb3Vy
Y2UubV9vYmplY3RTdG9yZXMuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaAppbmRleCAx
MTAzODI0Zjc4YmE5ZmY4NWVjZmIyMjlkNzcxYWE3MzVkZTBjMzgyLi43ODQ4MWQ2ZTY1ZDA2ZWRl
NWZkOThjYjRhZWU3MTZlNWQyOGU4NWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJJREJEYXRhYmFzZUluZm8uaCIKICNpbmNsdWRlICJJ
REJSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkR1cmFiaWxp
dHkuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbk1vZGUuaCIKICNpbmNsdWRlICJJbmRleGVk
REIuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00NCw3ICs0NSw3IEBAIGNsYXNzIElE
QkNvbm5lY3Rpb25Ub0NsaWVudDsKIGNsYXNzIElEQlRyYW5zYWN0aW9uSW5mbyB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIElEQlRyYW5zYWN0aW9u
SW5mbyBjbGllbnRUcmFuc2FjdGlvbihjb25zdCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94
eSYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvYmplY3RTdG9yZXMsIElEQlRyYW5zYWN0aW9uTW9k
ZSk7CisgICAgc3RhdGljIElEQlRyYW5zYWN0aW9uSW5mbyBjbGllbnRUcmFuc2FjdGlvbihjb25z
dCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBv
YmplY3RTdG9yZXMsIElEQlRyYW5zYWN0aW9uTW9kZSwgSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5
KTsKICAgICBzdGF0aWMgSURCVHJhbnNhY3Rpb25JbmZvIHZlcnNpb25DaGFuZ2UoY29uc3QgSURC
U2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQmLCBjb25zdCBJREJEYXRhYmFzZUluZm8mIG9y
aWdpbmFsRGF0YWJhc2VJbmZvLCB1aW50NjRfdCBuZXdWZXJzaW9uKTsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIElEQlRyYW5zYWN0aW9uSW5mbyhjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKQEAg
LTU5LDYgKzYwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
aWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogCiAgICAgSURCVHJh
bnNhY3Rpb25Nb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KKyAgICBJREJUcmFu
c2FjdGlvbkR1cmFiaWxpdHkgZHVyYWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fZHVyYWJpbGl0
eTsgfQogICAgIHVpbnQ2NF90IG5ld1ZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtX25ld1ZlcnNp
b247IH0KIAogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvYmplY3RTdG9yZXMoKSBjb25zdCB7
IHJldHVybiBtX29iamVjdFN0b3JlczsgfQpAQCAtODEsNiArODMsNyBAQCBwcml2YXRlOgogICAg
IElEQlJlc291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAKICAgICBJREJUcmFuc2FjdGlv
bk1vZGUgbV9tb2RlIHsgSURCVHJhbnNhY3Rpb25Nb2RlOjpSZWFkb25seSB9OworICAgIElEQlRy
YW5zYWN0aW9uRHVyYWJpbGl0eSBtX2R1cmFiaWxpdHkgeyBJREJUcmFuc2FjdGlvbkR1cmFiaWxp
dHk6OlJlbGF4ZWQgfTsKICAgICB1aW50NjRfdCBtX25ld1ZlcnNpb24geyAwIH07CiAgICAgVmVj
dG9yPFN0cmluZz4gbV9vYmplY3RTdG9yZXM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPElEQkRhdGFi
YXNlSW5mbz4gbV9vcmlnaW5hbERhdGFiYXNlSW5mbzsKQEAgLTkwLDcgKzkzLDcgQEAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgSURCVHJhbnNhY3Rpb25JbmZvOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllciA8PCBtX25l
d1ZlcnNpb24gPDwgbV9vYmplY3RTdG9yZXM7Ci0gICAgZW5jb2RlciA8PCBtX21vZGU7CisgICAg
ZW5jb2RlciA8PCBtX21vZGUgPDwgbV9kdXJhYmlsaXR5OwogCiAgICAgZW5jb2RlciA8PCAhIW1f
b3JpZ2luYWxEYXRhYmFzZUluZm87CiAgICAgaWYgKG1fb3JpZ2luYWxEYXRhYmFzZUluZm8pCkBA
IC0xMTIsNiArMTE1LDkgQEAgYm9vbCBJREJUcmFuc2FjdGlvbkluZm86OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8pCiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShpbmZvLm1fbW9kZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoaW5mby5tX2R1cmFiaWxpdHkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICBib29sIGhhc09iamVjdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc09iamVjdCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZTc2OTRjMmNlYjkxYTU2
M2ViODYxNzMzMzVhNjUxYmNmZjI3ZDE2Ny4uZGM5MzUwMjY1MDIyNjZkZmYwNmJjYzA3NmRmYmIw
MzQxNzE5MzE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTMyMDgsNiArMzIwOCw3IEBAIEpTSURCT2Jq
ZWN0U3RvcmUuY3BwCiBKU0lEQk9wZW5EQlJlcXVlc3QuY3BwCiBKU0lEQlJlcXVlc3QuY3BwCiBK
U0lEQlRyYW5zYWN0aW9uLmNwcAorSlNJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuY3BwCiBKU0lE
QlRyYW5zYWN0aW9uTW9kZS5jcHAKIEpTSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcAogSlNJZGxl
RGVhZGxpbmUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNzYxMDQxOGJiZmE4ODZmOTc0OGQ1NTlkYTRhYmE4Y2E1OGUxYmY0
Yi4uMGQyYTlhZWM1Njk4MmU2OTk0Y2ZlZTk5MDk0NGQyY2FhYTBmMTg1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjg0OSw2
ICsyODQ5LDcgQEAKIAkJOTM1RjQ1NDMwRjdDM0I1RjAwRDdDMUZCIC8qIEpTTGF6eUV2ZW50TGlz
dGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
NUY0NTQxMEY3QzNCNUYwMEQ3QzFGQiAvKiBKU0xhenlFdmVudExpc3RlbmVyLmggKi87IH07CiAJ
CTkzNUZCQzQ1MDlCQTAwQjkwMEUyMzBCMSAvKiBFdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVGQkM0NDA5QkEwMEI5MDBFMjMw
QjEgLyogRXZlbnRMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzNUZCQ0YyMDlCQTE0M0IwMEUyMzBCMSAvKiBFeGNlcHRpb25Db2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVGQkNG
MTA5QkExNDNCMDBFMjMwQjEgLyogRXhjZXB0aW9uQ29kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNjU4M0I3MjZBQjkyQjUwMDRFNjFGNCAv
KiBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzNjU4M0I2MjZBQjkxNzQwMDRFNjFGNCAvKiBJREJUcmFuc2Fj
dGlvbkR1cmFiaWxpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5MzcwOTE4RDE0MTZEODZCMDA0NzczMzMgLyogdGV4dEFyZWFSZXNpemVDb3Ju
ZXJAMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzcwOTE4QzE0MTZEODZCMDA0NzczMzMgLyogdGV4dEFyZWFSZXNpemVDb3JuZXJAMngucG5n
ICovOyB9OwogCQk5Mzc3QUJBMDE1REVGRUVGMDAzMUZEMDQgLyogUGFnaW5hdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM3N0FCOUYxNURFRkVF
RjAwMzFGRDA0IC8qIFBhZ2luYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5MzdGRjNENTFBMTAxMkQ2MDA4RUJBMzEgLyogRGljdGlvbmFy
eUxvb2t1cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM3RkYzRDQxQTEwMTJENjAwOEVCQTMxIC8qIERpY3Rpb25hcnlMb29rdXAuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE3MDMsNiArMTE3MDQs
OCBAQAogCQk5MzVGNDU0MTBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0xhenlFdmVudExpc3RlbmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUZCQzQ0MDlCQTAwQjkwMEUyMzBCMSAv
KiBFdmVudExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50
TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RkJDRjEwOUJBMTQz
QjAwRTIzMEIxIC8qIEV4Y2VwdGlvbkNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRXhjZXB0aW9uQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzY1
ODNCNDI2QUI4Q0I0MDA0RTYxRjQgLyogSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzY1ODNCNjI2QUI5MTc0MDA0RTYxRjQgLyogSURCVHJh
bnNhY3Rpb25EdXJhYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElE
QlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzZCMjFGNDFEQkJGODMwMDA1MkUxMTcgLyogQ2FudmFzUGF0aC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2FudmFzUGF0
aC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNkREMDNBMDlDRUFDMjcwMDU2
QUU4QyAvKiBSYW5nZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmFuZ2UuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzcwOTE4QzE0MTZEODZCMDA0NzczMzMgLyogdGV4
dEFyZWFSZXNpemVDb3JuZXJAMngucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gInRleHRBcmVhUmVzaXplQ29ybmVy
QDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDQyOSw2ICsyNDQzMiw4
IEBACiAJCQkJNTE2NDVCNTAxQjlGODg5QjAwRjc4OUNFIC8qIElEQlRyYW5zYWN0aW9uLmNwcCAq
LywKIAkJCQk1MTY0NUI1MTFCOUY4ODlCMDBGNzg5Q0UgLyogSURCVHJhbnNhY3Rpb24uaCAqLywK
IAkJCQk1MUQ3MTlBNjE4MTEwNkUwMDAxNkRDNTEgLyogSURCVHJhbnNhY3Rpb24uaWRsICovLAor
CQkJCTkzNjU4M0I2MjZBQjkxNzQwMDRFNjFGNCAvKiBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHku
aCAqLywKKwkJCQk5MzY1ODNCNDI2QUI4Q0I0MDA0RTYxRjQgLyogSURCVHJhbnNhY3Rpb25EdXJh
YmlsaXR5LmlkbCAqLywKIAkJCQk4MzhFRjUzNjFEQzE0OURBMDA4RjBDMzkgLyogSURCVHJhbnNh
Y3Rpb25Nb2RlLmggKi8sCiAJCQkJODM4RUY1MzcxREMxNDlEQTAwOEYwQzM5IC8qIElEQlRyYW5z
YWN0aW9uTW9kZS5pZGwgKi8sCiAJCQkJNTE2MTAzQUQxQ0FEQjlBMzAwMTZCNEM3IC8qIElEQlZh
bHVlLmNwcCAqLywKQEAgLTMzMTIxLDYgKzMzMTI2LDcgQEAKIAkJCQk5MzIzQjA3MDIzMDYxRjk3
MDA5MDFDOEIgLyogSURCU2VyaWFsaXphdGlvbkNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxODVGQ0JCMUJCNENCRjgwMDEyODk4RiAvKiBJREJTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxODVGQ0FEMUJCNEM0RTgwMDEyODk4RiAvKiBJREJUcmFuc2FjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTM2NTgzQjcyNkFCOTJCNTAwNEU2MUY0IC8qIElEQlRyYW5zYWN0aW9uRHVy
YWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE5OEY3QUQxQkJERDNFQjAwRTJDQzVGIC8q
IElEQlRyYW5zYWN0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM4RUY1MzgxREMxNDlF
MjAwOEYwQzM5IC8qIElEQlRyYW5zYWN0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2
MTAzQUYxQ0FEQkE3NzAwMTZCNEM3IC8qIElEQlZhbHVlLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCmluZGV4IGExMTEw
MjU2ODFlNDY5MzEyM2ZiYzhjYjQ5MGE4MzcwZGIzOWMxODMuLmM1OTE4YjRiMTU5OTdkYTRmOGYy
NjI4MDhkYjkyMzg5YjM0NmZjNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmNwcApAQCAtMTkyLDYgKzE5MiwxMiBAQCB2b2lkIFNRTGl0ZURhdGFi
YXNlOjplbmFibGVBdXRvbWF0aWNXQUxUcnVuY2F0aW9uKCkKICAgICBzcWxpdGUzX3dhbF9ob29r
KG1fZGIsIHdhbEF1dG9tYXRpY1RydW5jYXRpb25Ib29rLCBudWxscHRyKTsKIH0KIAoraW50IFNR
TGl0ZURhdGFiYXNlOjpjaGVja3BvaW50KENoZWNrcG9pbnRNb2RlIG1vZGUpCit7CisgICAgU1FM
aXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwor
ICAgIHJldHVybiBzcWxpdGUzX3dhbF9jaGVja3BvaW50X3YyKG1fZGIsIG51bGxwdHIsIHN0YXRp
Y19jYXN0PGludD4obW9kZSksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiB2b2lkIFNRTGl0ZURh
dGFiYXNlOjp1c2VXQUxKb3VybmFsTW9kZSgpCiB7CiAgICAgbV91c2VXQUwgPSB0cnVlOwpAQCAt
MjA3LDE1ICsyMTMsNyBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjp1c2VXQUxKb3VybmFsTW9kZSgp
CiAgICAgICAgICAgICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBmYWlsZWQgdG8gc2V0IGpv
dXJuYWxfbW9kZSB0byBXQUwsIGVycm9yOiAlcyIsIGxhc3RFcnJvck1zZygpKTsKICAgICB9CiAK
LSAgICB7Ci0gICAgICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRy
YW5zYWN0aW9uQ291bnRlcjsKLSAgICAgICAgYXV0byBjaGVja3BvaW50U3RhdGVtZW50ID0gcHJl
cGFyZVN0YXRlbWVudCgiUFJBR01BIHdhbF9jaGVja3BvaW50KFRSVU5DQVRFKSJfcyk7Ci0gICAg
ICAgIGlmIChjaGVja3BvaW50U3RhdGVtZW50ICYmIGNoZWNrcG9pbnRTdGF0ZW1lbnQtPnN0ZXAo
KSA9PSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgICAgICBpZiAoY2hlY2twb2ludFN0YXRlbWVudC0+
Y29sdW1uSW50KDApKQotICAgICAgICAgICAgICAgIExPRyhTUUxEYXRhYmFzZSwgIlNRTGl0ZSBk
YXRhYmFzZSBjaGVja3BvaW50IGlzIGJsb2NrZWQiKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBmYWlsZWQgdG8gY2hlY2twb2ludDogJXMi
LCBsYXN0RXJyb3JNc2coKSk7Ci0gICAgfQorICAgIGNoZWNrcG9pbnQoQ2hlY2twb2ludE1vZGU6
OlRydW5jYXRlKTsKIH0KIAogdm9pZCBTUUxpdGVEYXRhYmFzZTo6Y2xvc2UoU2hvdWxkU2V0RXJy
b3JTdGF0ZSBzaG91bGRTZXRFcnJvclN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cWwvU1FMaXRlRGF0YWJhc2UuaAppbmRleCA0YjIyYzhmZTY4ZTM1ZmJkZDA5NzI1ODY4YzRjOWEw
ZTVjYWIyY2YwLi5kMzhhNmRiYmM4MGIyODkxODg0OGEzZTBlZDcyZTRkYzVjYTQ4ODFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaApAQCAtOTcsNiAr
OTcsOCBAQCBwdWJsaWM6CiAgICAgLy8gU1FMSVRFX0NIRUNLUE9JTlRfVFJVTkNBVEUgd2lsbCBp
bnZva2UgdGhlIGJ1c3kgaGFuZGxlciBpZiBpdCBjYW4ndCBhY3F1aXJlIHRoZSBuZWNlc3NhcnkK
ICAgICAvLyBsb2Nrcywgd2hpY2ggY2FuIGxlYWQgdG8gdW5pbnRlbmRlZCBkZWxheXMuCiAgICAg
dm9pZCBlbmFibGVBdXRvbWF0aWNXQUxUcnVuY2F0aW9uKCk7CisgICAgZW51bSBjbGFzcyBDaGVj
a3BvaW50TW9kZSA6IHVpbnQ4X3QgeyBQYXNzaXZlLCBGdWxsLCBSZXN0YXJ0LCBUcnVuY2F0ZSB9
OworICAgIGludCBjaGVja3BvaW50KENoZWNrcG9pbnRNb2RlKTsKIAogICAgIC8vIEdldHMvc2V0
cyB0aGUgbWF4aW11bSBzaXplIGluIGJ5dGVzCiAgICAgLy8gRGVwZW5kaW5nIG9uIHBlci1kYXRh
YmFzZSBhdHRyaWJ1dGVzLCB0aGUgc2l6ZSB3aWxsIG9ubHkgYmUgc2V0dGFibGUgaW4gdW5pdHMg
dGhhdCBhcmUgdGhlIHBhZ2Ugc2l6ZSBvZiB0aGUgZGF0YWJhc2UsIHdoaWNoIGlzIGVzdGFibGlz
aGVkIGF0IGNyZWF0aW9uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434306</attachid>
            <date>2021-07-27 12:06:50 -0700</date>
            <delta_ts>2021-07-27 14:17:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228289-20210727120649.patch</filename>
            <type>text/plain</type>
            <size>34826</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRhNDIyYWM3NDZhNzcy
MjdiMTY1YWFhODNkNGQ5ZjUwYTU1OTIwNC4uMjZhMGYxNTkxYjc2ZDg0MGUyNzI0NDg3OTNlNzJk
ZTU5NDZjYThmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTA3LTI3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBJREJUcmFu
c2FjdGlvbi5kdXJhYmlsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjgyODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTcGVjOiBodHRwczovL3d3dy53My5vcmcvVFIvSW5kZXhlZERCLyNkb20taWRi
dHJhbnNhY3Rpb24tZHVyYWJpbGl0eQorICAgICAgICAgICAgICBodHRwczovL3d3dy53My5vcmcv
VFIvSW5kZXhlZERCLyNkaWN0ZGVmLWlkYnRyYW5zYWN0aW9ub3B0aW9ucworCisgICAgICAgIElE
QlRyYW5zYWN0aW9uLmR1cmFiaWxpdHkgZ2l2ZXMgYSBoaW50IGFib3V0IGR1cmFiaWxpdHkgb2Yg
YSB0cmFuc2FjdGlvbi4gSWYgaXQncyBzdHJpY3QsIGJhY2tlbmQgd291bGQgdHJ5CisgICAgICAg
IHN5bmNpbmcgZGF0YSB0byBkYXRhYmFzZSBmaWxlIGFmdGVyIHRyYW5zYWN0aW9uIGNvbW1pdCwg
d2hpY2ggZW5mb3JjZXMgZHVyYWJpbGl0eS4gSWYgaXQncyByZWxheGVkLCBpdCBtZWFucyAKKyAg
ICAgICAgZGF0YSBtYXkgc3RheSBpbiB0aGUgT1MgYnVmZmVyIHNvbWUgdGltZSBhZnRlciB0cmFu
c2FjdGlvbiBjb21taXQsIHdoaWNoIGdpdmVzIGJldHRlciBwZXJmb3JtYW5jZS4gRmlyZWZveCBh
bmQgCisgICAgICAgIENocm9tZSBhbHJlYWR5IGltcGxlbWVudGVkIGR1cmFiaWxpdHkuIFRoZXkg
aGF2ZSBkaWZmZXJlbnQgd2F5cyBvZiBzZXR0aW5nIGR1cmFiaWxpdHksIGFuZCB3ZSBjaG9vc2Ug
dG8gdXNlCisgICAgICAgIFRyYW5zYWN0aW9uT3B0aW9ucyBhcyBzcGVjLgorCisgICAgICAgIFJl
YmFzZWxpbmVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5Lmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0
eS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJ
REJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6U1FMaXRlSURCVHJhbnNhY3Rpb246OmR1cmFiaWxpdHkgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25JbmZvOjpjbGllbnRUcmFuc2FjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkluZm86OklEQlRyYW5zYWN0aW9uSW5m
byk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkluZm86Omlzb2xhdGVkQ29weSk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5o
OgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25JbmZvOjpkdXJhYmlsaXR5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uSW5mbzo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uSW5mbzo6ZGVjb2RlKToKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpjaGVja3BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlNRTGl0ZURhdGFiYXNlOjp1c2VXQUxKb3VybmFsTW9kZSk6CisgICAgICAgICogcGxhdGZvcm0v
c3FsL1NRTGl0ZURhdGFiYXNlLmg6CisKIDIwMjEtMDctMjYgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVwbG95IHNtYXJ0IHBvaW50ZXJzIGluIEFwcGx5Qmxv
Y2tFbGVtZW50Q29tbWFuZCwgSW5kZW50T3V0ZGVudENvbW1hbmQgYW5kIEluc2VydExpc3RDb21t
YW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGViZDI4MWMwYjMxZWFkNzY4Mzg2OTcyY2IwYTUx
MzA5YmYzMmNlZTkuLmM1NGEyODI2ZjcwMWY0MmFmZjQyNjJmM2VlNWJkNDliNGU3ZWM0NWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zMDMsNiArMzAzLDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NW
R19JRExfRklMRVMKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmlkbAog
ICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaWRsCiAgICAgTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb24uaWRsCisgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b25EdXJhYmlsaXR5LmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uTW9k
ZS5pZGwKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaWRsCiAg
ICAgTW9kdWxlcy9pbmRleGVkZGIvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZStJbmRleGVkRGF0
YWJhc2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCA5Nzc1ODliZDI4NzQ0NmY5MDM0YjIyY2ZlMjZiMTkyNTQxNGFjOTU3Li5iYzMx
Njg3ZjYwZGJlMGE4OTQ2NTQ1OGM1MzMzYmE0ZDM4YjExMGRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE1MSw2ICsxNTEsNyBAQCAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbk1vZGUuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaWRsCiAkKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlK0luZGV4ZWRE
YXRhYmFzZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKaW5kZXggMjZmNDU3ZmE1ZTI5MDU0MWIzNjZiYWJlN2VkNTQ0NGE3Mzg3ZDYyNS4u
NDJiZTU3M2YzM2Q5YjJiNGY3NDE4MGIxNDEyMDBmOWIyN2UxZWI5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTExNjcsNiArMTE2
Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURC
UmVxdWVzdC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTSURCUmVxdWVzdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0lEQlRyYW5zYWN0aW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNJREJUcmFuc2FjdGlvbi5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCVHJhbnNhY3Rp
b25EdXJhYmlsaXR5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSURCVHJhbnNhY3Rpb25Nb2RlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJUcmFuc2FjdGlvbk1vZGUuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBlYmExZjE3MDBlMTI1YWM4YTEwOGMz
Y2QxMGY1ODA1YmE5ZmVlZGQxLi41Y2NhZWVhMzBkMGViNjJjMWEwMTRlOTRjOTIzMGYzMTAzM2Mz
MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE3Nyw2ICsxNzcsNyBAQCBK
U19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURC
T3BlbkRCUmVxdWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURC
UmVxdWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb24uaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
RHVyYWJpbGl0eS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb25Nb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJW
ZXJzaW9uQ2hhbmdlRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRi
L1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUrSW5kZXhlZERhdGFiYXNlLmlkbCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggYTRi
ZDU0MjI0N2VjY2MxNmIyNjdiMjI3OTg2M2E5ZjM1NGUxM2EwNi4uYTdiM2RjZjU5MjRkZjIzZDk3
OTc4YThjZTkxMDEwYjI5YTA5MGQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAtMTYyLDcgKzE2Miw3IEBAIEV4Y2VwdGlvbk9y
PFJlZjxJREJPYmplY3RTdG9yZT4+IElEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25z
dCBTdHJpbmcmIG5hCiAgICAgcmV0dXJuIG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uLT5jcmVh
dGVPYmplY3RTdG9yZShpbmZvKTsKIH0KIAotRXhjZXB0aW9uT3I8UmVmPElEQlRyYW5zYWN0aW9u
Pj4gSURCRGF0YWJhc2U6OnRyYW5zYWN0aW9uKFN0cmluZ09yVmVjdG9yT2ZTdHJpbmdzJiYgc3Rv
cmVOYW1lcywgSURCVHJhbnNhY3Rpb25Nb2RlIG1vZGUpCitFeGNlcHRpb25PcjxSZWY8SURCVHJh
bnNhY3Rpb24+PiBJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24oU3RyaW5nT3JWZWN0b3JPZlN0cmlu
Z3MmJiBzdG9yZU5hbWVzLCBJREJUcmFuc2FjdGlvbk1vZGUgbW9kZSwgVHJhbnNhY3Rpb25PcHRp
b25zIG9wdGlvbnMpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkRhdGFiYXNlOjp0cmFuc2Fj
dGlvbiIpOwogCkBAIC0yMDAsNyArMjAwLDcgQEAgRXhjZXB0aW9uT3I8UmVmPElEQlRyYW5zYWN0
aW9uPj4gSURCRGF0YWJhc2U6OnRyYW5zYWN0aW9uKFN0cmluZ09yVmVjdG9yT2ZTdHJpbmcKICAg
ICBpZiAobW9kZSAhPSBJREJUcmFuc2FjdGlvbk1vZGU6OlJlYWRvbmx5ICYmIG1vZGUgIT0gSURC
VHJhbnNhY3Rpb25Nb2RlOjpSZWFkd3JpdGUpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBU
eXBlRXJyb3IgfTsKIAotICAgIGF1dG8gaW5mbyA9IElEQlRyYW5zYWN0aW9uSW5mbzo6Y2xpZW50
VHJhbnNhY3Rpb24obV9jb25uZWN0aW9uUHJveHkuZ2V0KCksIG9iamVjdFN0b3JlcywgbW9kZSk7
CisgICAgYXV0byBpbmZvID0gSURCVHJhbnNhY3Rpb25JbmZvOjpjbGllbnRUcmFuc2FjdGlvbiht
X2Nvbm5lY3Rpb25Qcm94eS5nZXQoKSwgb2JqZWN0U3RvcmVzLCBtb2RlLCBvcHRpb25zLmR1cmFi
aWxpdHkpOwogCiAgICAgTE9HKEluZGV4ZWREQk9wZXJhdGlvbnMsICJJREIgY3JlYXRpbmcgdHJh
bnNhY3Rpb246ICVzIiwgaW5mby5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAg
YXV0byB0cmFuc2FjdGlvbiA9IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoKnRoaXMsIGluZm8pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKaW5kZXgg
MzM4ZjMwZTY3ZTQ5OTZmMmM3ZGUxMTJmN2Q3YWExNGIzZGM0NjFmZi4uYzNjMTg0Zjg3MDdmYzVh
NjM3Mzc5ZGVkNmE0ODM1MjI2MWY0MTUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCkBAIC02Myw3ICs2MywxMSBAQCBwdWJsaWM6CiAgICAg
RXhjZXB0aW9uT3I8UmVmPElEQk9iamVjdFN0b3JlPj4gY3JlYXRlT2JqZWN0U3RvcmUoY29uc3Qg
U3RyaW5nJiBuYW1lLCBPYmplY3RTdG9yZVBhcmFtZXRlcnMmJik7CiAKICAgICB1c2luZyBTdHJp
bmdPclZlY3Rvck9mU3RyaW5ncyA9IFdURjo6VmFyaWFudDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+
PjsKLSAgICBFeGNlcHRpb25PcjxSZWY8SURCVHJhbnNhY3Rpb24+PiB0cmFuc2FjdGlvbihTdHJp
bmdPclZlY3Rvck9mU3RyaW5ncyYmIHN0b3JlTmFtZXMsIElEQlRyYW5zYWN0aW9uTW9kZSk7Cisg
ICAgc3RydWN0IFRyYW5zYWN0aW9uT3B0aW9ucyB7CisgICAgICAgIFRyYW5zYWN0aW9uT3B0aW9u
cygpIDogZHVyYWJpbGl0eSgpIHsgfQorICAgICAgICBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkg
ZHVyYWJpbGl0eTsKKyAgICB9OworICAgIEV4Y2VwdGlvbk9yPFJlZjxJREJUcmFuc2FjdGlvbj4+
IHRyYW5zYWN0aW9uKFN0cmluZ09yVmVjdG9yT2ZTdHJpbmdzJiYgc3RvcmVOYW1lcywgSURCVHJh
bnNhY3Rpb25Nb2RlLCBUcmFuc2FjdGlvbk9wdGlvbnMgPSB7IH0pOwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgdm9pZCBj
bG9zZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZS5pZGwKaW5kZXggMzZkYmRiYzc3YzIwZjc5OTkzNjg4NzA5YjM4MGQ2MDZkODBkYTcxMC4u
MzZjYTMzNDBiMDRhYTIyNjY4NmQyMmRmYjFhM2JlZDY4OGVkNGY5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbApAQCAtMzMsOCArMzMs
NyBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbjsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCBvYmplY3RTdG9yZU5hbWVzOwog
Ci0gICAgLy8gRklYTUU6ICd0cmFuc2FjdGlvbicgc2hvdWxkIGFsc28gdGFrZSBhbiBvcHRpb25h
bCAnSURCVHJhbnNhY3Rpb25PcHRpb25zJyBhcmd1bWVudC4KLSAgICBbTmV3T2JqZWN0XSBJREJU
cmFuc2FjdGlvbiB0cmFuc2FjdGlvbigoRE9NU3RyaW5nIG9yIHNlcXVlbmNlPERPTVN0cmluZz4p
IHN0b3JlTmFtZXMsIG9wdGlvbmFsIElEQlRyYW5zYWN0aW9uTW9kZSBtb2RlID0gInJlYWRvbmx5
Iik7CisgICAgW05ld09iamVjdF0gSURCVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24oKERPTVN0cmlu
ZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+KSBzdG9yZU5hbWVzLCBvcHRpb25hbCBJREJUcmFuc2Fj
dGlvbk1vZGUgbW9kZSA9ICJyZWFkb25seSIsIG9wdGlvbmFsIElEQlRyYW5zYWN0aW9uT3B0aW9u
cyBvcHRpb25zKTsKICAgICB1bmRlZmluZWQgY2xvc2UoKTsKIAogICAgIFtOZXdPYmplY3RdIElE
Qk9iamVjdFN0b3JlIGNyZWF0ZU9iamVjdFN0b3JlKERPTVN0cmluZyBuYW1lLCBvcHRpb25hbCBJ
REJPYmplY3RTdG9yZVBhcmFtZXRlcnMgcGFyYW1ldGVycyk7CkBAIC01NSwzICs1NCw3IEBAIGRp
Y3Rpb25hcnkgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIHsKICAgICAoRE9NU3RyaW5nIG9yIHNl
cXVlbmNlPERPTVN0cmluZz4pPyBrZXlQYXRoID0gbnVsbDsKICAgICBib29sZWFuIGF1dG9JbmNy
ZW1lbnQgPSBmYWxzZTsKIH07CisKK2RpY3Rpb25hcnkgSURCVHJhbnNhY3Rpb25PcHRpb25zIHsK
KyAgICBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkgZHVyYWJpbGl0eSA9ICJkZWZhdWx0IjsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24u
aAppbmRleCA3NzEwODZkMzUzZWJjNWUwYzJiNjMzYmIzYmE5ZmIyZmYyZjllMzAzLi41NzZkY2Ri
N2UxYmRiMmEyNmQwOGFkY2QzMGE5NTAxMDFlNTIxNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKQEAgLTc3LDYgKzc3LDcgQEAg
cHVibGljOgogICAgIC8vIElEQlRyYW5zYWN0aW9uIElETAogICAgIFJlZjxET01TdHJpbmdMaXN0
PiBvYmplY3RTdG9yZU5hbWVzKCkgY29uc3Q7CiAgICAgSURCVHJhbnNhY3Rpb25Nb2RlIG1vZGUo
KSBjb25zdCB7IHJldHVybiBtX2luZm8ubW9kZSgpOyB9CisgICAgSURCVHJhbnNhY3Rpb25EdXJh
YmlsaXR5IGR1cmFiaWxpdHkoKSBjb25zdCB7IHJldHVybiBtX2luZm8uZHVyYWJpbGl0eSgpOyB9
CiAgICAgSURCRGF0YWJhc2UqIGRiKCk7CiAgICAgRE9NRXhjZXB0aW9uKiBlcnJvcigpIGNvbnN0
OwogICAgIEV4Y2VwdGlvbk9yPFJlZjxJREJPYmplY3RTdG9yZT4+IG9iamVjdFN0b3JlKGNvbnN0
IFN0cmluZyYgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5pZGwKaW5kZXggMzc3MTgwZmM4MjU3OTJmYTFkNDBlZWQyM2UyMTFl
NWQ5MjE4NmY5OS4uNDFjZmM3MzQ1YjE0NTQ4NTIyZmJjMjk1NDNiNWM1MWRkYjZkNGExZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24u
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
LmlkbApAQCAtMzIsOCArMzIsNyBAQAogXSBpbnRlcmZhY2UgSURCVHJhbnNhY3Rpb24gOiBFdmVu
dFRhcmdldCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ0xpc3Qgb2JqZWN0U3Rv
cmVOYW1lczsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCVHJhbnNhY3Rpb25Nb2RlIG1vZGU7
Ci0gICAgLy8gSW1wbGVtZW50ICdkdXJhYmlsaXR5Jy4KLSAgICAvLyByZWFkb25seSBhdHRyaWJ1
dGUgSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5IGR1cmFiaWxpdHk7CisgICAgcmVhZG9ubHkgYXR0
cmlidXRlIElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eSBkdXJhYmlsaXR5OwogICAgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgSURCRGF0YWJhc2UgZGI7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTUV4Y2VwdGlvbj8gZXJyb3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDFiZTU0ZmNjY2YyODE0YjY4Y2MxZTQ2MTgzMWJhZGMzMjNmYzg1ZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
RHVyYWJpbGl0eS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
ZW51bSBjbGFzcyBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkgeworICAgIFN0cmljdCwKKyAgICBS
ZWxheGVkLAorICAgIERlZmF1bHQKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6SURC
VHJhbnNhY3Rpb25EdXJhYmlsaXR5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LAorICAgICAgICBXZWJD
b3JlOjpJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHk6OlN0cmljdCwKKyAgICAgICAgV2ViQ29yZTo6
SURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5OjpSZWxheGVkLAorICAgICAgICBXZWJDb3JlOjpJREJU
cmFuc2FjdGlvbkR1cmFiaWxpdHk6OkRlZmF1bHQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbkR1cmFiaWxpdHkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjYyYjllMmJmYzVk
YjM0NjUyMzZmNTdhZGFjMTc4ODViY2MxN2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmlkbApAQCAt
MCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKK10gZW51bSBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkgeworICAgICJzdHJpY3QiLAor
ICAgICJyZWxheGVkIiwKKyAgICAiZGVmYXVsdCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5n
U3RvcmUuY3BwCmluZGV4IGU4ZDUwY2Y4ZTQ4MDgwZGQzNDU0ODZmOTVmYzRmNTFiMTFlNjBjMTEu
LmRkYjBhN2FhZWRjMjI4ZjgxZmIyYTkwY2I3NjNmN2U5NGRkMTkwOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJCYWNraW5nU3RvcmUuY3BwCkBAIC0xMTQ5LDggKzExNDksMTMgQEAgSURCRXJyb3IgU1FM
aXRlSURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIGkKICAgICAgICAgICAgIEFTU0VSVChtX29yaWdpbmFsRGF0YWJhc2VJbmZvQmVm
b3JlVmVyc2lvbkNoYW5nZSk7CiAgICAgICAgICAgICBtX2RhdGFiYXNlSW5mbyA9IFdURk1vdmUo
bV9vcmlnaW5hbERhdGFiYXNlSW5mb0JlZm9yZVZlcnNpb25DaGFuZ2UpOwogICAgICAgICB9Ci0g
ICAgfSBlbHNlCisgICAgfSBlbHNlIHsKICAgICAgICAgbV9vcmlnaW5hbERhdGFiYXNlSW5mb0Jl
Zm9yZVZlcnNpb25DaGFuZ2UgPSBudWxscHRyOworICAgICAgICBpZiAodHJhbnNhY3Rpb24tPmR1
cmFiaWxpdHkoKSA9PSBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHk6OlN0cmljdCkgeworICAgICAg
ICAgICAgV1RGTG9nQWx3YXlzKCJzaWh1aWw6IFslcF1TUUxpdGVJREJCYWNraW5nU3RvcmU6OmNv
bW1pdFRyYW5zYWN0aW9uIGR1cmFiaWxpdHkgc3RyaWN0IiwgdGhpcyk7CisgICAgICAgICAgICBt
X3NxbGl0ZURCLT5jaGVja3BvaW50KFNRTGl0ZURhdGFiYXNlOjpDaGVja3BvaW50TW9kZTo6RnVs
bCk7CisgICAgICAgIH0KKyAgICB9CiAKICAgICByZXR1cm4gZXJyb3I7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNh
Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJ
REJUcmFuc2FjdGlvbi5oCmluZGV4IDY0ZjcwYzMwMTY3OTgwMjcyY2RkYWIyYzQ0Mjc5MDNmODlh
YTU2M2MuLmJkMGZjYThmOTcxMGQzZjc3YzUyNzYyMTEzODIwY2RkNDJmYjA4ZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJUcmFu
c2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9T
UUxpdGVJREJUcmFuc2FjdGlvbi5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IG5vdGlmeUN1cnNvcnNPZkNoYW5nZXMoaW50NjRfdCBvYmplY3RTdG9yZUlEKTsKIAogICAgIElE
QlRyYW5zYWN0aW9uTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvLm1vZGUoKTsgfQor
ICAgIElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eSBkdXJhYmlsaXR5KCkgY29uc3QgeyByZXR1cm4g
bV9pbmZvLmR1cmFiaWxpdHkoKTsgfQogICAgIGJvb2wgaW5Qcm9ncmVzcygpIGNvbnN0OwogCiAg
ICAgU1FMaXRlVHJhbnNhY3Rpb24qIHNxbGl0ZVRyYW5zYWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9zcWxpdGVUcmFuc2FjdGlvbi5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmNwcApp
bmRleCA1NDgzMTNjYTU0YjA2OWNmMWJiYzU1ZDQ2ZjVlMzY1ZDE2MDYwZDY0Li5lZGY3ZDdiOGY4
ZjhiZjQ5MmU1MTE3Njg4MTJlODQ1MTU4M2MyNzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZv
LmNwcApAQCAtMzksMTEgKzM5LDEyIEBAIElEQlRyYW5zYWN0aW9uSW5mbzo6SURCVHJhbnNhY3Rp
b25JbmZvKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKIH0KIAot
SURCVHJhbnNhY3Rpb25JbmZvIElEQlRyYW5zYWN0aW9uSW5mbzo6Y2xpZW50VHJhbnNhY3Rpb24o
Y29uc3QgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIG9iamVjdFN0b3JlcywgSURCVHJhbnNhY3Rpb25Nb2RlIG1vZGUp
CitJREJUcmFuc2FjdGlvbkluZm8gSURCVHJhbnNhY3Rpb25JbmZvOjpjbGllbnRUcmFuc2FjdGlv
bihjb25zdCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgb2JqZWN0U3RvcmVzLCBJREJUcmFuc2FjdGlvbk1vZGUgbW9k
ZSwgSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5IGR1cmFiaWxpdHkpCiB7CiAgICAgSURCVHJhbnNh
Y3Rpb25JbmZvIHJlc3VsdCgoSURCUmVzb3VyY2VJZGVudGlmaWVyKGNvbm5lY3Rpb25Qcm94eSkp
KTsKLSAgICByZXN1bHQubV9tb2RlID0gbW9kZTsKICAgICByZXN1bHQubV9vYmplY3RTdG9yZXMg
PSBvYmplY3RTdG9yZXM7CisgICAgcmVzdWx0Lm1fbW9kZSA9IG1vZGU7CisgICAgcmVzdWx0Lm1f
ZHVyYWJpbGl0eSA9IGR1cmFiaWxpdHk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtNjEs
NiArNjIsNyBAQCBJREJUcmFuc2FjdGlvbkluZm8gSURCVHJhbnNhY3Rpb25JbmZvOjp2ZXJzaW9u
Q2hhbmdlKGNvbnN0IElEQlNlcnZlcjo6SURCQ29ubmVjdAogSURCVHJhbnNhY3Rpb25JbmZvOjpJ
REJUcmFuc2FjdGlvbkluZm8oY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQogICAgIDog
bV9pZGVudGlmaWVyKGluZm8uaWRlbnRpZmllcigpKQogICAgICwgbV9tb2RlKGluZm8ubV9tb2Rl
KQorICAgICwgbV9kdXJhYmlsaXR5KGluZm8ubV9kdXJhYmlsaXR5KQogICAgICwgbV9uZXdWZXJz
aW9uKGluZm8ubV9uZXdWZXJzaW9uKQogICAgICwgbV9vYmplY3RTdG9yZXMoaW5mby5tX29iamVj
dFN0b3JlcykKIHsKQEAgLTgyLDYgKzg0LDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbkluZm86Omlz
b2xhdGVkQ29weShjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIHNvdXJjZSwgSURCVHJhbnMKIHsK
ICAgICBkZXN0aW5hdGlvbi5tX2lkZW50aWZpZXIgPSBzb3VyY2UubV9pZGVudGlmaWVyLmlzb2xh
dGVkQ29weSgpOwogICAgIGRlc3RpbmF0aW9uLm1fbW9kZSA9IHNvdXJjZS5tX21vZGU7CisgICAg
ZGVzdGluYXRpb24ubV9kdXJhYmlsaXR5ID0gc291cmNlLm1fZHVyYWJpbGl0eTsKICAgICBkZXN0
aW5hdGlvbi5tX25ld1ZlcnNpb24gPSBzb3VyY2UubV9uZXdWZXJzaW9uOwogCiAgICAgZGVzdGlu
YXRpb24ubV9vYmplY3RTdG9yZXMucmVzZXJ2ZUNhcGFjaXR5KHNvdXJjZS5tX29iamVjdFN0b3Jl
cy5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5oCmluZGV4IDExMDM4MjRmNzhiYTlmZjg1
ZWNmYjIyOWQ3NzFhYTczNWRlMGMzODIuLmRiMzJlOTJjZDhmZjUyY2JiYzMzNWNjNDQ4NGJkZTc1
Yjc0NTRkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAog
I2luY2x1ZGUgIklEQkRhdGFiYXNlSW5mby5oIgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRp
Zmllci5oIgorI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5oIgogI2luY2x1ZGUg
IklEQlRyYW5zYWN0aW9uTW9kZS5oIgogI2luY2x1ZGUgIkluZGV4ZWREQi5oIgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KQEAgLTQ0LDcgKzQ1LDcgQEAgY2xhc3MgSURCQ29ubmVjdGlvblRvQ2xp
ZW50OwogY2xhc3MgSURCVHJhbnNhY3Rpb25JbmZvIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgSURCVHJhbnNhY3Rpb25JbmZvIGNsaWVudFRyYW5z
YWN0aW9uKGNvbnN0IElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIG9iamVjdFN0b3JlcywgSURCVHJhbnNhY3Rpb25Nb2RlKTsKKyAgICBzdGF0aWMg
SURCVHJhbnNhY3Rpb25JbmZvIGNsaWVudFRyYW5zYWN0aW9uKGNvbnN0IElEQkNsaWVudDo6SURC
Q29ubmVjdGlvblByb3h5JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIG9iamVjdFN0b3JlcywgSURC
VHJhbnNhY3Rpb25Nb2RlLCBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkpOwogICAgIHN0YXRpYyBJ
REJUcmFuc2FjdGlvbkluZm8gdmVyc2lvbkNoYW5nZShjb25zdCBJREJTZXJ2ZXI6OklEQkNvbm5l
Y3Rpb25Ub0NsaWVudCYsIGNvbnN0IElEQkRhdGFiYXNlSW5mbyYgb3JpZ2luYWxEYXRhYmFzZUlu
Zm8sIHVpbnQ2NF90IG5ld1ZlcnNpb24pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgSURCVHJhbnNh
Y3Rpb25JbmZvKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOwpAQCAtNTksNiArNjAsNyBAQCBw
dWJsaWM6CiAgICAgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBpZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKICAgICBJREJUcmFuc2FjdGlvbk1vZGUgbW9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsgfQorICAgIElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0
eSBkdXJhYmlsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9kdXJhYmlsaXR5OyB9CiAgICAgdWludDY0
X3QgbmV3VmVyc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fbmV3VmVyc2lvbjsgfQogCiAgICAgY29u
c3QgVmVjdG9yPFN0cmluZz4mIG9iamVjdFN0b3JlcygpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0
U3RvcmVzOyB9CkBAIC04MSw2ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgSURCUmVzb3VyY2VJZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKIAogICAgIElEQlRyYW5zYWN0aW9uTW9kZSBtX21vZGUgeyBJ
REJUcmFuc2FjdGlvbk1vZGU6OlJlYWRvbmx5IH07CisgICAgSURCVHJhbnNhY3Rpb25EdXJhYmls
aXR5IG1fZHVyYWJpbGl0eSB7IElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eTo6RGVmYXVsdCB9Owog
ICAgIHVpbnQ2NF90IG1fbmV3VmVyc2lvbiB7IDAgfTsKICAgICBWZWN0b3I8U3RyaW5nPiBtX29i
amVjdFN0b3JlczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBtX29yaWdp
bmFsRGF0YWJhc2VJbmZvOwpAQCAtOTAsNyArOTMsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgogdm9pZCBJREJUcmFuc2FjdGlvbkluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogewogICAgIGVuY29kZXIgPDwgbV9pZGVudGlmaWVyIDw8IG1fbmV3VmVyc2lvbiA8PCBtX29i
amVjdFN0b3JlczsKLSAgICBlbmNvZGVyIDw8IG1fbW9kZTsKKyAgICBlbmNvZGVyIDw8IG1fbW9k
ZSA8PCBtX2R1cmFiaWxpdHk7CiAKICAgICBlbmNvZGVyIDw8ICEhbV9vcmlnaW5hbERhdGFiYXNl
SW5mbzsKICAgICBpZiAobV9vcmlnaW5hbERhdGFiYXNlSW5mbykKQEAgLTExMiw2ICsxMTUsOSBA
QCBib29sIElEQlRyYW5zYWN0aW9uSW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQlRy
YW5zYWN0aW9uSW5mbyYgaW5mbykKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubV9tb2Rl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZv
Lm1fZHVyYWJpbGl0eSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgaGFzT2Jq
ZWN0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzT2JqZWN0KSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiZWUyMzY0ZThiYWU4YTBlOTg1MmQ2YzQyM2RkMTlj
YTI2MGFjNDYyLi4yZWE5Y2M1NjljZjQ1ZDVmNDI4OGUzMGU4YjRmM2ZhM2I2MDgwYjM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtMzIxMCw2ICszMjEwLDcgQEAgSlNJREJPYmplY3RTdG9yZS5jcHAKIEpT
SURCT3BlbkRCUmVxdWVzdC5jcHAKIEpTSURCUmVxdWVzdC5jcHAKIEpTSURCVHJhbnNhY3Rpb24u
Y3BwCitKU0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5jcHAKIEpTSURCVHJhbnNhY3Rpb25Nb2Rl
LmNwcAogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwCiBKU0lkbGVEZWFkbGluZS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA5YjYzNThiMWIwZjE2MWI2NmU3NzdhOTFkYjRjNzZkZDFmNmY2ZGViLi42OTM5NmI4YjI2MzFl
MThhNGFjN2VjMTM5OWUxNjk3OGZkNDAwMjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yODQ5LDYgKzI4NDksNyBAQAogCQk5
MzVGNDU0MzBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RjQ1NDEwRjdDM0I1RjAw
RDdDMUZCIC8qIEpTTGF6eUV2ZW50TGlzdGVuZXIuaCAqLzsgfTsKIAkJOTM1RkJDNDUwOUJBMDBC
OTAwRTIzMEIxIC8qIEV2ZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUZCQzQ0MDlCQTAwQjkwMEUyMzBCMSAvKiBFdmVudExpc3Rl
bmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTM1RkJDRjIwOUJBMTQzQjAwRTIzMEIxIC8qIEV4Y2VwdGlvbkNvZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUZCQ0YxMDlCQTE0M0IwMEUyMzBC
MSAvKiBFeGNlcHRpb25Db2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOTM2NTgzQjcyNkFCOTJCNTAwNEU2MUY0IC8qIElEQlRyYW5zYWN0aW9u
RHVyYWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM2NTgzQjYyNkFCOTE3NDAwNEU2MUY0IC8qIElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNzA5
MThEMTQxNkQ4NkIwMDQ3NzMzMyAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lckAyeC5wbmcgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNzA5MThDMTQxNkQ4
NkIwMDQ3NzMzMyAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lckAyeC5wbmcgKi87IH07CiAJCTkzNzdB
QkEwMTVERUZFRUYwMDMxRkQwNCAvKiBQYWdpbmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzc3QUI5RjE1REVGRUVGMDAzMUZEMDQgLyogUGFn
aW5hdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzN0ZGM0Q1MUExMDEyRDYwMDhFQkEzMSAvKiBEaWN0aW9uYXJ5TG9va3VwLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzdGRjNENDFBMTAxMkQ2
MDA4RUJBMzEgLyogRGljdGlvbmFyeUxvb2t1cC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTcwNiw2ICsxMTcwNyw4IEBACiAJCTkzNUY0NTQx
MEY3QzNCNUYwMEQ3QzFGQiAvKiBKU0xhenlFdmVudExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTTGF6eUV2ZW50TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM1RkJDNDQwOUJBMDBCOTAwRTIzMEIxIC8qIEV2ZW50TGlzdGVuZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRMaXN0ZW5lci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzVGQkNGMTA5QkExNDNCMDBFMjMwQjEgLyogRXhj
ZXB0aW9uQ29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb25D
b2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNjU4M0I0MjZBQjhDQjQwMDRF
NjFGNCAvKiBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNjU4M0I2MjZBQjkxNzQwMDRFNjFGNCAvKiBJREJUcmFuc2FjdGlvbkR1cmFiaWxp
dHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCVHJhbnNhY3Rpb25EdXJh
YmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNkIyMUY0MURCQkY4MzAw
MDUyRTExNyAvKiBDYW52YXNQYXRoLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDYW52YXNQYXRoLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM2REQwM0EwOUNFQUMyNzAwNTZBRThDIC8qIFJhbmdlLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSYW5nZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzNzA5MThDMTQxNkQ4NkIwMDQ3NzMzMyAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5l
ckAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBpbWFnZS5wbmc7IHBhdGggPSAidGV4dEFyZWFSZXNpemVDb3JuZXJAMngucG5nIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0NDMyLDYgKzI0NDM1LDggQEAKIAkJCQk1MTY0NUI1
MDFCOUY4ODlCMDBGNzg5Q0UgLyogSURCVHJhbnNhY3Rpb24uY3BwICovLAogCQkJCTUxNjQ1QjUx
MUI5Rjg4OUIwMEY3ODlDRSAvKiBJREJUcmFuc2FjdGlvbi5oICovLAogCQkJCTUxRDcxOUE2MTgx
MTA2RTAwMDE2REM1MSAvKiBJREJUcmFuc2FjdGlvbi5pZGwgKi8sCisJCQkJOTM2NTgzQjYyNkFC
OTE3NDAwNEU2MUY0IC8qIElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5oICovLAorCQkJCTkzNjU4
M0I0MjZBQjhDQjQwMDRFNjFGNCAvKiBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaWRsICovLAog
CQkJCTgzOEVGNTM2MURDMTQ5REEwMDhGMEMzOSAvKiBJREJUcmFuc2FjdGlvbk1vZGUuaCAqLywK
IAkJCQk4MzhFRjUzNzFEQzE0OURBMDA4RjBDMzkgLyogSURCVHJhbnNhY3Rpb25Nb2RlLmlkbCAq
LywKIAkJCQk1MTYxMDNBRDFDQURCOUEzMDAxNkI0QzcgLyogSURCVmFsdWUuY3BwICovLApAQCAt
MzMxMjcsNiArMzMxMzIsNyBAQAogCQkJCTkzMjNCMDcwMjMwNjFGOTcwMDkwMUM4QiAvKiBJREJT
ZXJpYWxpemF0aW9uQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NUZDQkIxQkI0Q0JG
ODAwMTI4OThGIC8qIElEQlNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NUZDQUQxQkI0
QzRFODAwMTI4OThGIC8qIElEQlRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzY1
ODNCNzI2QUI5MkI1MDA0RTYxRjQgLyogSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTk4RjdBRDFCQkREM0VCMDBFMkNDNUYgLyogSURCVHJhbnNhY3Rpb25J
bmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzhFRjUzODFEQzE0OUUyMDA4RjBDMzkgLyogSURC
VHJhbnNhY3Rpb25Nb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTYxMDNBRjFDQURCQTc3MDAx
NkI0QzcgLyogSURCVmFsdWUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKaW5kZXggYTExMTAyNTY4MWU0NjkzMTIzZmJj
OGNiNDkwYTgzNzBkYjM5YzE4My4uYzU5MThiNGIxNTk5N2RhNGY4ZjI2MjgwOGRiOTIzODliMzQ2
ZmM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2Uu
Y3BwCkBAIC0xOTIsNiArMTkyLDEyIEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OmVuYWJsZUF1dG9t
YXRpY1dBTFRydW5jYXRpb24oKQogICAgIHNxbGl0ZTNfd2FsX2hvb2sobV9kYiwgd2FsQXV0b21h
dGljVHJ1bmNhdGlvbkhvb2ssIG51bGxwdHIpOwogfQogCitpbnQgU1FMaXRlRGF0YWJhc2U6OmNo
ZWNrcG9pbnQoQ2hlY2twb2ludE1vZGUgbW9kZSkKK3sKKyAgICBTUUxpdGVUcmFuc2FjdGlvbklu
UHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CisgICAgcmV0dXJuIHNxbGl0
ZTNfd2FsX2NoZWNrcG9pbnRfdjIobV9kYiwgbnVsbHB0ciwgc3RhdGljX2Nhc3Q8aW50Pihtb2Rl
KSwgbnVsbHB0ciwgbnVsbHB0cik7Cit9CisKIHZvaWQgU1FMaXRlRGF0YWJhc2U6OnVzZVdBTEpv
dXJuYWxNb2RlKCkKIHsKICAgICBtX3VzZVdBTCA9IHRydWU7CkBAIC0yMDcsMTUgKzIxMyw3IEBA
IHZvaWQgU1FMaXRlRGF0YWJhc2U6OnVzZVdBTEpvdXJuYWxNb2RlKCkKICAgICAgICAgICAgIExP
R19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGZhaWxlZCB0byBzZXQgam91cm5hbF9tb2RlIHRvIFdB
TCwgZXJyb3I6ICVzIiwgbGFzdEVycm9yTXNnKCkpOwogICAgIH0KIAotICAgIHsKLSAgICAgICAg
U1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVy
OwotICAgICAgICBhdXRvIGNoZWNrcG9pbnRTdGF0ZW1lbnQgPSBwcmVwYXJlU3RhdGVtZW50KCJQ
UkFHTUEgd2FsX2NoZWNrcG9pbnQoVFJVTkNBVEUpIl9zKTsKLSAgICAgICAgaWYgKGNoZWNrcG9p
bnRTdGF0ZW1lbnQgJiYgY2hlY2twb2ludFN0YXRlbWVudC0+c3RlcCgpID09IFNRTElURV9ST1cp
IHsKLSAgICAgICAgICAgIGlmIChjaGVja3BvaW50U3RhdGVtZW50LT5jb2x1bW5JbnQoMCkpCi0g
ICAgICAgICAgICAgICAgTE9HKFNRTERhdGFiYXNlLCAiU1FMaXRlIGRhdGFiYXNlIGNoZWNrcG9p
bnQgaXMgYmxvY2tlZCIpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIExPR19FUlJPUigi
U1FMaXRlIGRhdGFiYXNlIGZhaWxlZCB0byBjaGVja3BvaW50OiAlcyIsIGxhc3RFcnJvck1zZygp
KTsKLSAgICB9CisgICAgY2hlY2twb2ludChDaGVja3BvaW50TW9kZTo6VHJ1bmNhdGUpOwogfQog
CiB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZShTaG91bGRTZXRFcnJvclN0YXRlIHNob3VsZFNl
dEVycm9yU3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FM
aXRlRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFz
ZS5oCmluZGV4IDRiMjJjOGZlNjhlMzVmYmRkMDk3MjU4NjhjNGM5YTBlNWNhYjJjZjAuLmQzOGE2
ZGJiYzgwYjI4OTE4ODQ4YTNlMGVkNzJlNGRjNWNhNDg4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCkBAIC05Nyw2ICs5Nyw4IEBAIHB1YmxpYzoK
ICAgICAvLyBTUUxJVEVfQ0hFQ0tQT0lOVF9UUlVOQ0FURSB3aWxsIGludm9rZSB0aGUgYnVzeSBo
YW5kbGVyIGlmIGl0IGNhbid0IGFjcXVpcmUgdGhlIG5lY2Vzc2FyeQogICAgIC8vIGxvY2tzLCB3
aGljaCBjYW4gbGVhZCB0byB1bmludGVuZGVkIGRlbGF5cy4KICAgICB2b2lkIGVuYWJsZUF1dG9t
YXRpY1dBTFRydW5jYXRpb24oKTsKKyAgICBlbnVtIGNsYXNzIENoZWNrcG9pbnRNb2RlIDogdWlu
dDhfdCB7IFBhc3NpdmUsIEZ1bGwsIFJlc3RhcnQsIFRydW5jYXRlIH07CisgICAgaW50IGNoZWNr
cG9pbnQoQ2hlY2twb2ludE1vZGUpOwogCiAgICAgLy8gR2V0cy9zZXRzIHRoZSBtYXhpbXVtIHNp
emUgaW4gYnl0ZXMKICAgICAvLyBEZXBlbmRpbmcgb24gcGVyLWRhdGFiYXNlIGF0dHJpYnV0ZXMs
IHRoZSBzaXplIHdpbGwgb25seSBiZSBzZXR0YWJsZSBpbiB1bml0cyB0aGF0IGFyZSB0aGUgcGFn
ZSBzaXplIG9mIHRoZSBkYXRhYmFzZSwgd2hpY2ggaXMgZXN0YWJsaXNoZWQgYXQgY3JlYXRpb24K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDQwNmFlZjJkYWNiNmY5ZmEyNWYxZjdj
YjY2Nzc3MTdmYTBhMWRiOGEuLmQ5ZmMwYzhlZTE1OTYwZjcwNWQ5YmJhYmM5YzQ4NWFjOWU2MTA2
ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIx
LTA3LTI3ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxl
bWVudCBJREJUcmFuc2FjdGlvbi5kdXJhYmlsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgyODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRs
aGFybmVzcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLXJlbGF4ZWQtZHVyYWJpbGl0
eS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLXJlbGF4ZWQtZHVyYWJpbGl0eS50ZW50YXRpdmUuYW55
Lndvcmtlci1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDctMjYgIEpvaG5zb24gWmhvdSAgPHFpYW9z
b25nX3pob3VAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIEZvcm1EYXRhRXZlbnQgc3VwcG9y
dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4
cGVjdGVkLnR4dAppbmRleCA0YmQ2ZTA5N2UxMmQ1NWViYzA3ODk1ZDg1Y2U4Mzk4NGUwMmZmNmNi
Li5kYWY2NzEzZGVlN2EwYjFmMDFiYWMyYzQ3YTlmZmY3MTJmNDAwNTg2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxo
YXJuZXNzLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CkBA
IC0xODUsNyArMTg1LDcgQEAgUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG8KIFBBU1MgSURCVHJhbnNh
Y3Rpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CiBQQVNTIElEQlRyYW5zYWN0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9iamVjdFN0b3JlTmFtZXMKIFBBU1MgSURCVHJhbnNh
Y3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbW9kZQotRkFJTCBJREJUcmFuc2FjdGlvbiBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBkdXJhYmlsaXR5IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9i
amVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiZHVyYWJpbGl0eSIgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK1BBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZHVyYWJpbGl0
eQogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBkYgogUEFTUyBJREJU
cmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBlcnJvcgogUEFTUyBJREJUcmFuc2FjdGlv
biBpbnRlcmZhY2U6IG9wZXJhdGlvbiBvYmplY3RTdG9yZShET01TdHJpbmcpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dAppbmRleCBjMTA0M2M2NjY4MWU0NzU1MWUxYTBiNjE1NTAxYWRlYmIzNGNiNzNh
Li4wZWUyYjA1MmI2NmU4ZjNlZjQ5YTU2YjM1ODA3YmMzNTg0MDUzNjc1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxo
YXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKQEAgLTE4NSw3ICsxODUsNyBAQCBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgbwog
UEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKIFBB
U1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb2JqZWN0U3RvcmVOYW1lcwog
UEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtb2RlCi1GQUlMIElEQlRy
YW5zYWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGR1cmFiaWxpdHkgYXNzZXJ0X3RydWU6IFRo
ZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJkdXJhYmlsaXR5IiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBkdXJhYmlsaXR5CiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRl
IGRiCiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGVycm9yCiBQQVNT
IElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIG9iamVjdFN0b3JlKERPTVN0cmlu
ZykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLXJlbGF4ZWQtZHVyYWJpbGl0eS50ZW50YXRpdmUuYW55
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLXJlbGF4ZWQtZHVyYWJpbGl0eS50ZW50YXRpdmUuYW55
LWV4cGVjdGVkLnR4dAppbmRleCA0NGRkYTdhYjNmODIwZjRlMWNhMGExZDY3YjU3YjYxZWNkMWI0
NDdhLi5iMmE5ZGFiMjE0YWVlOGE5MDY4OGVhYjAxZmFiMTBlM2Y5OTVlMDEzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90
cmFuc2FjdGlvbi1yZWxheGVkLWR1cmFiaWxpdHkudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvdHJhbnNhY3Rpb24tcmVsYXhlZC1kdXJhYmlsaXR5LnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQu
dHh0CkBAIC0xLDEwICsxLDggQEAKIAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBi
YWNrIG91dDogY2FzZSAwIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJkZWZhdWx0
IiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4g
YmUgcmVhZCBiYWNrIG91dDogY2FzZSAxIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcp
ICJkZWZhdWx0IiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBDb21taXR0ZWQg
ZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
IChzdHJpbmcpICJkZWZhdWx0IiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBD
b21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAzIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIChzdHJpbmcpICJyZWxheGVkIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5l
ZAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSA0IGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJzdHJpY3QiIGJ1dCBnb3QgKHVuZGVmaW5lZCkg
dW5kZWZpbmVkCi1GQUlMIEludmFsaWQgZHVyYWJpbGl0eSBvcHRpb24gdGhyb3dzIGEgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgICBkYi50
cmFuc2FjdGlvbihbJ2Jvb2tzJ10sICdyZWFkd3JpdGUnLCB7IGR1cmFiaWxpdHk6ICdpbnZhbGlk
JyB9KTsKLSAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVh
ZCBiYWNrIG91dDogY2FzZSAwCitQQVNTIENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sg
b3V0OiBjYXNlIDEKK1BBU1MgQ29tbWl0dGVkIGRhdGEgY2FuIGJlIHJlYWQgYmFjayBvdXQ6IGNh
c2UgMgorUEFTUyBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAzCitQ
QVNTIENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDQKK1BBU1MgSW52
YWxpZCBkdXJhYmlsaXR5IG9wdGlvbiB0aHJvd3MgYSBUeXBlRXJyb3IKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJh
bnNhY3Rpb24tcmVsYXhlZC1kdXJhYmlsaXR5LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL3RyYW5zYWN0aW9uLXJlbGF4ZWQtZHVyYWJpbGl0eS50ZW50YXRpdmUuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKaW5kZXggNDRkZGE3YWIzZjgyMGY0ZTFjYTBhMWQ2N2I1N2I2MWVjZDFiNDQ3
YS4uYjJhOWRhYjIxNGFlZThhOTA2ODhlYWIwMWZhYjEwZTNmOTk1ZTAxMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJh
bnNhY3Rpb24tcmVsYXhlZC1kdXJhYmlsaXR5LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi90cmFuc2FjdGlvbi1yZWxheGVkLWR1cmFiaWxpdHkudGVudGF0aXZlLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDggQEAKIAotRkFJTCBDb21taXR0ZWQgZGF0YSBj
YW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAwIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJp
bmcpICJkZWZhdWx0IiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBDb21taXR0
ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAxIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIChzdHJpbmcpICJkZWZhdWx0IiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJ
TCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAyIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIChzdHJpbmcpICJkZWZhdWx0IiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVm
aW5lZAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAzIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJyZWxheGVkIiBidXQgZ290ICh1bmRlZmlu
ZWQpIHVuZGVmaW5lZAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDog
Y2FzZSA0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJzdHJpY3QiIGJ1dCBnb3Qg
KHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIEludmFsaWQgZHVyYWJpbGl0eSBvcHRpb24gdGhy
b3dzIGEgVHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
Ci0gICAgICBkYi50cmFuc2FjdGlvbihbJ2Jvb2tzJ10sICdyZWFkd3JpdGUnLCB7IGR1cmFiaWxp
dHk6ICdpbnZhbGlkJyB9KTsKLSAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBDb21taXR0ZWQgZGF0
YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAwCitQQVNTIENvbW1pdHRlZCBkYXRhIGNhbiBi
ZSByZWFkIGJhY2sgb3V0OiBjYXNlIDEKK1BBU1MgQ29tbWl0dGVkIGRhdGEgY2FuIGJlIHJlYWQg
YmFjayBvdXQ6IGNhc2UgMgorUEFTUyBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91
dDogY2FzZSAzCitQQVNTIENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNl
IDQKK1BBU1MgSW52YWxpZCBkdXJhYmlsaXR5IG9wdGlvbiB0aHJvd3MgYSBUeXBlRXJyb3IKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434312</attachid>
            <date>2021-07-27 14:17:24 -0700</date>
            <delta_ts>2021-07-28 10:40:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228289-20210727141723.patch</filename>
            <type>text/plain</type>
            <size>35428</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRhNDIyYWM3NDZhNzcy
MjdiMTY1YWFhODNkNGQ5ZjUwYTU1OTIwNC4uNzkwYzk0MDQxODA1MGQ1MDYyNjRjMTIzYWY2NjU1
N2VlYWQ5ODE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTA3LTI3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBJREJUcmFu
c2FjdGlvbi5kdXJhYmlsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjgyODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTcGVjOiBodHRwczovL3d3dy53My5vcmcvVFIvSW5kZXhlZERCLyNkb20taWRi
dHJhbnNhY3Rpb24tZHVyYWJpbGl0eQorICAgICAgICAgICAgICBodHRwczovL3d3dy53My5vcmcv
VFIvSW5kZXhlZERCLyNkaWN0ZGVmLWlkYnRyYW5zYWN0aW9ub3B0aW9ucworCisgICAgICAgIElE
QlRyYW5zYWN0aW9uLmR1cmFiaWxpdHkgZ2l2ZXMgYSBoaW50IGFib3V0IGR1cmFiaWxpdHkgb2Yg
YSB0cmFuc2FjdGlvbi4gSWYgaXQncyBzdHJpY3QsIGJhY2tlbmQgd291bGQgdHJ5CisgICAgICAg
IHN5bmNpbmcgZGF0YSB0byBkYXRhYmFzZSBmaWxlIGFmdGVyIHRyYW5zYWN0aW9uIGNvbW1pdCwg
d2hpY2ggZW5mb3JjZXMgZHVyYWJpbGl0eS4gSWYgaXQncyByZWxheGVkLCBpdCBtZWFucyAKKyAg
ICAgICAgZGF0YSBtYXkgc3RheSBpbiB0aGUgT1MgYnVmZmVyIHNvbWUgdGltZSBhZnRlciB0cmFu
c2FjdGlvbiBjb21taXQsIHdoaWNoIGdpdmVzIGJldHRlciBwZXJmb3JtYW5jZS4gRmlyZWZveCBh
bmQgCisgICAgICAgIENocm9tZSBhbHJlYWR5IGltcGxlbWVudGVkIGR1cmFiaWxpdHkuIFRoZXkg
aGF2ZSBkaWZmZXJlbnQgd2F5cyBvZiBzZXR0aW5nIGR1cmFiaWxpdHksIGFuZCB3ZSBjaG9vc2Ug
dG8gdXNlCisgICAgICAgIFRyYW5zYWN0aW9uT3B0aW9ucyBhcyBzcGVjLgorCisgICAgICAgIFJl
YmFzZWxpbmVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOgorICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OnRyYW5z
YWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbDoKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbkR1cmFiaWxpdHkuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNhY3Rp
b24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2Fj
dGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJUcmFuc2FjdGlv
bjo6ZHVyYWJpbGl0eSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0lEQlRyYW5zYWN0aW9uSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bkluZm86OmNsaWVudFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uSW5mbzo6SURCVHJhbnNhY3Rpb25JbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uSW5mbzo6aXNvbGF0ZWRDb3B5KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2Fj
dGlvbkluZm86OmR1cmFiaWxpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNh
Y3Rpb25JbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rp
b25JbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FM
aXRlRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmNoZWNr
cG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnVzZVdBTEpvdXJuYWxN
b2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaDoKKwogMjAyMS0w
Ny0yNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEZXBsb3kg
c21hcnQgcG9pbnRlcnMgaW4gQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLCBJbmRlbnRPdXRkZW50
Q29tbWFuZCBhbmQgSW5zZXJ0TGlzdENvbW1hbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZWJk
MjgxYzBiMzFlYWQ3NjgzODY5NzJjYjBhNTEzMDliZjMyY2VlOS4uYzU0YTI4MjZmNzAxZjQyYWZm
NDI2MmYzZWU1YmQ0OWI0ZTdlYzQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMwMyw2ICsz
MDMsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRsCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5pZGwKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwKKyAgICBNb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaWRsCiAgICAgTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb25Nb2RlLmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QlZlcnNpb25DaGFuZ2VFdmVudC5pZGwKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9XaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlK0luZGV4ZWREYXRhYmFzZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDk3NzU4OWJkMjg3NDQ2ZjkwMzRi
MjJjZmUyNmIxOTI1NDE0YWM5NTcuLmJjMzE2ODdmNjBkYmUwYTg5NDY1NDU4YzUzMzNiYTRkMzhi
MTEwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdApAQCAtMTUxLDYgKzE1MSw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9pbmRleGVkZGIvSURC
T3BlbkRCUmVxdWVzdC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uRHVy
YWJpbGl0eS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uTW9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25D
aGFuZ2VFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRiL1dpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGUrSW5kZXhlZERhdGFiYXNlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAyNmY0NTdmYTVlMjkwNTQx
YjM2NmJhYmU3ZWQ1NDQ0YTczODdkNjI1Li40MmJlNTczZjMzZDliMmI0Zjc0MTgwYjE0MTIwMGY5
YjI3ZTFlYjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdApAQCAtMTE2Nyw2ICsxMTY3LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJSZXF1ZXN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJSZXF1ZXN0LmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCVHJhbnNhY3Rpb24uY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lEQlRyYW5zYWN0aW9u
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCVHJh
bnNhY3Rpb25EdXJhYmlsaXR5LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJUcmFuc2FjdGlvbk1vZGUuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lEQlRyYW5zYWN0
aW9uTW9kZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IGViYTFmMTcwMGUxMjVhYzhhMTA4YzNjZDEwZjU4MDViYTlmZWVkZDEuLjVjY2FlZWEzMGQw
ZWI2MmMxYTAxNGU5NGM5MjMwZjMxMDMzYzMyMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtMTc3LDYgKzE3Nyw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbk1vZGUuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZStJbmRl
eGVkRGF0YWJhc2UuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDNiMWJiNTUwZjU2ODFhNGY1
ZGQyMzYwYTE0MTg5YThlY2FkMDU3YjkuLjIzMDM4Nzc5OTg5MGNlNzkzNDBjYjhiZTc2OGFiYTA3
MmQyNjc2MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNjYsNiArNjYsNyBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCT3Bl
bkRCUmVxdWVzdC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCiAgICAgTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAorICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb25Nb2RlLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJWYWx1ZS5oCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvSW5kZXhlZERCLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCBhNGJkNTQyMjQ3ZWNjYzE2YjI2N2IyMjc5ODYz
YTlmMzU0ZTEzYTA2Li5hN2IzZGNmNTkyNGRmMjNkOTc5NzhhOGNlOTEwMTBiMjlhMDkwZDk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
CkBAIC0xNjIsNyArMTYyLDcgQEAgRXhjZXB0aW9uT3I8UmVmPElEQk9iamVjdFN0b3JlPj4gSURC
RGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmEKICAgICByZXR1cm4g
bV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24tPmNyZWF0ZU9iamVjdFN0b3JlKGluZm8pOwogfQog
Ci1FeGNlcHRpb25PcjxSZWY8SURCVHJhbnNhY3Rpb24+PiBJREJEYXRhYmFzZTo6dHJhbnNhY3Rp
b24oU3RyaW5nT3JWZWN0b3JPZlN0cmluZ3MmJiBzdG9yZU5hbWVzLCBJREJUcmFuc2FjdGlvbk1v
ZGUgbW9kZSkKK0V4Y2VwdGlvbk9yPFJlZjxJREJUcmFuc2FjdGlvbj4+IElEQkRhdGFiYXNlOjp0
cmFuc2FjdGlvbihTdHJpbmdPclZlY3Rvck9mU3RyaW5ncyYmIHN0b3JlTmFtZXMsIElEQlRyYW5z
YWN0aW9uTW9kZSBtb2RlLCBUcmFuc2FjdGlvbk9wdGlvbnMgb3B0aW9ucykKIHsKICAgICBMT0co
SW5kZXhlZERCLCAiSURCRGF0YWJhc2U6OnRyYW5zYWN0aW9uIik7CiAKQEAgLTIwMCw3ICsyMDAs
NyBAQCBFeGNlcHRpb25PcjxSZWY8SURCVHJhbnNhY3Rpb24+PiBJREJEYXRhYmFzZTo6dHJhbnNh
Y3Rpb24oU3RyaW5nT3JWZWN0b3JPZlN0cmluZwogICAgIGlmIChtb2RlICE9IElEQlRyYW5zYWN0
aW9uTW9kZTo6UmVhZG9ubHkgJiYgbW9kZSAhPSBJREJUcmFuc2FjdGlvbk1vZGU6OlJlYWR3cml0
ZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwogCi0gICAgYXV0byBp
bmZvID0gSURCVHJhbnNhY3Rpb25JbmZvOjpjbGllbnRUcmFuc2FjdGlvbihtX2Nvbm5lY3Rpb25Q
cm94eS5nZXQoKSwgb2JqZWN0U3RvcmVzLCBtb2RlKTsKKyAgICBhdXRvIGluZm8gPSBJREJUcmFu
c2FjdGlvbkluZm86OmNsaWVudFRyYW5zYWN0aW9uKG1fY29ubmVjdGlvblByb3h5LmdldCgpLCBv
YmplY3RTdG9yZXMsIG1vZGUsIG9wdGlvbnMuZHVyYWJpbGl0eSk7CiAKICAgICBMT0coSW5kZXhl
ZERCT3BlcmF0aW9ucywgIklEQiBjcmVhdGluZyB0cmFuc2FjdGlvbjogJXMiLCBpbmZvLmxvZ2dp
bmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBhdXRvIHRyYW5zYWN0aW9uID0gSURCVHJh
bnNhY3Rpb246OmNyZWF0ZSgqdGhpcywgaW5mbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAppbmRleCAzMzhmMzBlNjdlNDk5NmYyYzdkZTExMmY3
ZDdhYTE0YjNkYzQ2MWZmLi5jM2MxODRmODcwN2ZjNWE2MzczNzlkZWQ2YTQ4MzUyMjYxZjQxNTIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgK
QEAgLTYzLDcgKzYzLDExIEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25PcjxSZWY8SURCT2JqZWN0
U3RvcmU+PiBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIE9iamVjdFN0b3Jl
UGFyYW1ldGVycyYmKTsKIAogICAgIHVzaW5nIFN0cmluZ09yVmVjdG9yT2ZTdHJpbmdzID0gV1RG
OjpWYXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+OwotICAgIEV4Y2VwdGlvbk9yPFJlZjxJ
REJUcmFuc2FjdGlvbj4+IHRyYW5zYWN0aW9uKFN0cmluZ09yVmVjdG9yT2ZTdHJpbmdzJiYgc3Rv
cmVOYW1lcywgSURCVHJhbnNhY3Rpb25Nb2RlKTsKKyAgICBzdHJ1Y3QgVHJhbnNhY3Rpb25PcHRp
b25zIHsKKyAgICAgICAgVHJhbnNhY3Rpb25PcHRpb25zKCkgOiBkdXJhYmlsaXR5KCkgeyB9Cisg
ICAgICAgIElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eSBkdXJhYmlsaXR5OworICAgIH07CisgICAg
RXhjZXB0aW9uT3I8UmVmPElEQlRyYW5zYWN0aW9uPj4gdHJhbnNhY3Rpb24oU3RyaW5nT3JWZWN0
b3JPZlN0cmluZ3MmJiBzdG9yZU5hbWVzLCBJREJUcmFuc2FjdGlvbk1vZGUsIFRyYW5zYWN0aW9u
T3B0aW9ucyA9IHsgfSk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gZGVsZXRlT2JqZWN0U3RvcmUo
Y29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIGNsb3NlKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbAppbmRleCAzNmRiZGJjNzdj
MjBmNzk5OTM2ODg3MDliMzgwZDYwNmQ4MGRhNzEwLi4zNmNhMzM0MGIwNGFhMjI2Njg2ZDIyZGZi
MWEzYmVkNjg4ZWQ0ZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuaWRsCkBAIC0zMyw4ICszMyw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmdMaXN0IG9iamVjdFN0b3JlTmFtZXM7CiAKLSAgICAvLyBGSVhNRTogJ3RyYW5zYWN0
aW9uJyBzaG91bGQgYWxzbyB0YWtlIGFuIG9wdGlvbmFsICdJREJUcmFuc2FjdGlvbk9wdGlvbnMn
IGFyZ3VtZW50LgotICAgIFtOZXdPYmplY3RdIElEQlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKChE
T01TdHJpbmcgb3Igc2VxdWVuY2U8RE9NU3RyaW5nPikgc3RvcmVOYW1lcywgb3B0aW9uYWwgSURC
VHJhbnNhY3Rpb25Nb2RlIG1vZGUgPSAicmVhZG9ubHkiKTsKKyAgICBbTmV3T2JqZWN0XSBJREJU
cmFuc2FjdGlvbiB0cmFuc2FjdGlvbigoRE9NU3RyaW5nIG9yIHNlcXVlbmNlPERPTVN0cmluZz4p
IHN0b3JlTmFtZXMsIG9wdGlvbmFsIElEQlRyYW5zYWN0aW9uTW9kZSBtb2RlID0gInJlYWRvbmx5
Iiwgb3B0aW9uYWwgSURCVHJhbnNhY3Rpb25PcHRpb25zIG9wdGlvbnMpOwogICAgIHVuZGVmaW5l
ZCBjbG9zZSgpOwogCiAgICAgW05ld09iamVjdF0gSURCT2JqZWN0U3RvcmUgY3JlYXRlT2JqZWN0
U3RvcmUoRE9NU3RyaW5nIG5hbWUsIG9wdGlvbmFsIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyBw
YXJhbWV0ZXJzKTsKQEAgLTU1LDMgKzU0LDcgQEAgZGljdGlvbmFyeSBJREJPYmplY3RTdG9yZVBh
cmFtZXRlcnMgewogICAgIChET01TdHJpbmcgb3Igc2VxdWVuY2U8RE9NU3RyaW5nPik/IGtleVBh
dGggPSBudWxsOwogICAgIGJvb2xlYW4gYXV0b0luY3JlbWVudCA9IGZhbHNlOwogfTsKKworZGlj
dGlvbmFyeSBJREJUcmFuc2FjdGlvbk9wdGlvbnMgeworICAgIElEQlRyYW5zYWN0aW9uRHVyYWJp
bGl0eSBkdXJhYmlsaXR5ID0gImRlZmF1bHQiOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IDc3MTA4NmQzNTNlYmM1ZTBj
MmI2MzNiYjNiYTlmYjJmZjJmOWUzMDMuLjU3NmRjZGI3ZTFiZGIyYTI2ZDA4YWRjZDMwYTk1MDEw
MWU1MjE0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAgICAgLy8gSURCVHJhbnNh
Y3Rpb24gSURMCiAgICAgUmVmPERPTVN0cmluZ0xpc3Q+IG9iamVjdFN0b3JlTmFtZXMoKSBjb25z
dDsKICAgICBJREJUcmFuc2FjdGlvbk1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5t
b2RlKCk7IH0KKyAgICBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkgZHVyYWJpbGl0eSgpIGNvbnN0
IHsgcmV0dXJuIG1faW5mby5kdXJhYmlsaXR5KCk7IH0KICAgICBJREJEYXRhYmFzZSogZGIoKTsK
ICAgICBET01FeGNlcHRpb24qIGVycm9yKCkgY29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8UmVmPElE
Qk9iamVjdFN0b3JlPj4gb2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbAppbmRl
eCAzNzcxODBmYzgyNTc5MmZhMWQ0MGVlZDIzZTIxMWU1ZDkyMTg2Zjk5Li40MWNmYzczNDViMTQ1
NDg1MjJmYmMyOTU0M2I1YzUxZGRiNmQ0YTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsCkBAIC0zMiw4ICszMiw3IEBACiBd
IGludGVyZmFjZSBJREJUcmFuc2FjdGlvbiA6IEV2ZW50VGFyZ2V0IHsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCBvYmplY3RTdG9yZU5hbWVzOwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBJREJUcmFuc2FjdGlvbk1vZGUgbW9kZTsKLSAgICAvLyBJbXBsZW1lbnQgJ2R1cmFi
aWxpdHknLgotICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJUcmFuc2FjdGlvbkR1cmFiaWxp
dHkgZHVyYWJpbGl0eTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCVHJhbnNhY3Rpb25EdXJh
YmlsaXR5IGR1cmFiaWxpdHk7CiAgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBJ
REJEYXRhYmFzZSBkYjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NRXhjZXB0aW9uPyBlcnJv
cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb25EdXJhYmlsaXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWJlNTRmY2NjZjI4MTRiNjhj
YzFlNDYxODMxYmFkYzMyM2ZjODVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmgKQEAgLTAsMCArMSw1
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFp
dHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIElEQlRyYW5zYWN0aW9u
RHVyYWJpbGl0eSB7CisgICAgU3RyaWN0LAorICAgIFJlbGF4ZWQsCisgICAgRGVmYXVsdAorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHk+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpJREJUcmFu
c2FjdGlvbkR1cmFiaWxpdHksCisgICAgICAgIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uRHVyYWJp
bGl0eTo6U3RyaWN0LAorICAgICAgICBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHk6
OlJlbGF4ZWQsCisgICAgICAgIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eTo6RGVm
YXVsdAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkR1cmFiaWxp
dHkuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNmNjJiOWUyYmZjNWRiMzQ2NTIzNmY1N2FkYWMxNzg4NWJjYzE3
ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworXSBlbnVtIElEQlRyYW5zYWN0
aW9uRHVyYWJpbGl0eSB7CisgICAgInN0cmljdCIsCisgICAgInJlbGF4ZWQiLAorICAgICJkZWZh
dWx0IgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggZThkNTBjZjhl
NDgwODBkZDM0NTQ4NmY5NWZjNGY1MWIxMWU2MGMxMS4uZGRiMGE3YWFlZGMyMjhmODFmYjJhOTBj
Yjc2M2Y3ZTk0ZGQxOTA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAg
LTExNDksOCArMTE0OSwxMyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNvbW1p
dFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgaQogICAgICAgICAgICAg
QVNTRVJUKG1fb3JpZ2luYWxEYXRhYmFzZUluZm9CZWZvcmVWZXJzaW9uQ2hhbmdlKTsKICAgICAg
ICAgICAgIG1fZGF0YWJhc2VJbmZvID0gV1RGTW92ZShtX29yaWdpbmFsRGF0YWJhc2VJbmZvQmVm
b3JlVmVyc2lvbkNoYW5nZSk7CiAgICAgICAgIH0KLSAgICB9IGVsc2UKKyAgICB9IGVsc2Ugewog
ICAgICAgICBtX29yaWdpbmFsRGF0YWJhc2VJbmZvQmVmb3JlVmVyc2lvbkNoYW5nZSA9IG51bGxw
dHI7CisgICAgICAgIGlmICh0cmFuc2FjdGlvbi0+ZHVyYWJpbGl0eSgpID09IElEQlRyYW5zYWN0
aW9uRHVyYWJpbGl0eTo6U3RyaWN0KSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoInNpaHVp
bDogWyVwXVNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNhY3Rpb24gZHVyYWJpbGl0
eSBzdHJpY3QiLCB0aGlzKTsKKyAgICAgICAgICAgIG1fc3FsaXRlREItPmNoZWNrcG9pbnQoU1FM
aXRlRGF0YWJhc2U6OkNoZWNrcG9pbnRNb2RlOjpGdWxsKTsKKyAgICAgICAgfQorICAgIH0KIAog
ICAgIHJldHVybiBlcnJvcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKaW5kZXggNjRm
NzBjMzAxNjc5ODAyNzJjZGRhYjJjNDQyNzkwM2Y4OWFhNTYzYy4uYmQwZmNhOGY5NzEwZDNmNzdj
NTI3NjIxMTM4MjBjZGQ0MmZiMDhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKQEAg
LTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZvaWQgbm90aWZ5Q3Vyc29yc09mQ2hhbmdlcyhp
bnQ2NF90IG9iamVjdFN0b3JlSUQpOwogCiAgICAgSURCVHJhbnNhY3Rpb25Nb2RlIG1vZGUoKSBj
b25zdCB7IHJldHVybiBtX2luZm8ubW9kZSgpOyB9CisgICAgSURCVHJhbnNhY3Rpb25EdXJhYmls
aXR5IGR1cmFiaWxpdHkoKSBjb25zdCB7IHJldHVybiBtX2luZm8uZHVyYWJpbGl0eSgpOyB9CiAg
ICAgYm9vbCBpblByb2dyZXNzKCkgY29uc3Q7CiAKICAgICBTUUxpdGVUcmFuc2FjdGlvbiogc3Fs
aXRlVHJhbnNhY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NxbGl0ZVRyYW5zYWN0aW9uLmdldCgp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCVHJhbnNhY3Rpb25JbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uY3BwCmluZGV4IDU0ODMxM2NhNTRiMDY5Y2YxYmJj
NTVkNDZmNWUzNjVkMTYwNjBkNjQuLmVkZjdkN2I4ZjhmOGJmNDkyZTUxMTc2ODgxMmU4NDUxNTgz
YzI3MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJUcmFuc2FjdGlvbkluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uY3BwCkBAIC0zOSwxMSArMzksMTIgQEAg
SURCVHJhbnNhY3Rpb25JbmZvOjpJREJUcmFuc2FjdGlvbkluZm8oY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiBpZGVudGlmaWVyKQogewogfQogCi1JREJUcmFuc2FjdGlvbkluZm8gSURCVHJh
bnNhY3Rpb25JbmZvOjpjbGllbnRUcmFuc2FjdGlvbihjb25zdCBJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgb2JqZWN0
U3RvcmVzLCBJREJUcmFuc2FjdGlvbk1vZGUgbW9kZSkKK0lEQlRyYW5zYWN0aW9uSW5mbyBJREJU
cmFuc2FjdGlvbkluZm86OmNsaWVudFRyYW5zYWN0aW9uKGNvbnN0IElEQkNsaWVudDo6SURCQ29u
bmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJveHksIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvYmpl
Y3RTdG9yZXMsIElEQlRyYW5zYWN0aW9uTW9kZSBtb2RlLCBJREJUcmFuc2FjdGlvbkR1cmFiaWxp
dHkgZHVyYWJpbGl0eSkKIHsKICAgICBJREJUcmFuc2FjdGlvbkluZm8gcmVzdWx0KChJREJSZXNv
dXJjZUlkZW50aWZpZXIoY29ubmVjdGlvblByb3h5KSkpOwotICAgIHJlc3VsdC5tX21vZGUgPSBt
b2RlOwogICAgIHJlc3VsdC5tX29iamVjdFN0b3JlcyA9IG9iamVjdFN0b3JlczsKKyAgICByZXN1
bHQubV9tb2RlID0gbW9kZTsKKyAgICByZXN1bHQubV9kdXJhYmlsaXR5ID0gZHVyYWJpbGl0eTsK
IAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC02MSw2ICs2Miw3IEBAIElEQlRyYW5zYWN0aW9u
SW5mbyBJREJUcmFuc2FjdGlvbkluZm86OnZlcnNpb25DaGFuZ2UoY29uc3QgSURCU2VydmVyOjpJ
REJDb25uZWN0CiBJREJUcmFuc2FjdGlvbkluZm86OklEQlRyYW5zYWN0aW9uSW5mbyhjb25zdCBJ
REJUcmFuc2FjdGlvbkluZm8mIGluZm8pCiAgICAgOiBtX2lkZW50aWZpZXIoaW5mby5pZGVudGlm
aWVyKCkpCiAgICAgLCBtX21vZGUoaW5mby5tX21vZGUpCisgICAgLCBtX2R1cmFiaWxpdHkoaW5m
by5tX2R1cmFiaWxpdHkpCiAgICAgLCBtX25ld1ZlcnNpb24oaW5mby5tX25ld1ZlcnNpb24pCiAg
ICAgLCBtX29iamVjdFN0b3JlcyhpbmZvLm1fb2JqZWN0U3RvcmVzKQogewpAQCAtODIsNiArODQs
NyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uSW5mbzo6aXNvbGF0ZWRDb3B5KGNvbnN0IElEQlRyYW5z
YWN0aW9uSW5mbyYgc291cmNlLCBJREJUcmFucwogewogICAgIGRlc3RpbmF0aW9uLm1faWRlbnRp
ZmllciA9IHNvdXJjZS5tX2lkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCk7CiAgICAgZGVzdGluYXRp
b24ubV9tb2RlID0gc291cmNlLm1fbW9kZTsKKyAgICBkZXN0aW5hdGlvbi5tX2R1cmFiaWxpdHkg
PSBzb3VyY2UubV9kdXJhYmlsaXR5OwogICAgIGRlc3RpbmF0aW9uLm1fbmV3VmVyc2lvbiA9IHNv
dXJjZS5tX25ld1ZlcnNpb247CiAKICAgICBkZXN0aW5hdGlvbi5tX29iamVjdFN0b3Jlcy5yZXNl
cnZlQ2FwYWNpdHkoc291cmNlLm1fb2JqZWN0U3RvcmVzLnNpemUoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZv
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rp
b25JbmZvLmgKaW5kZXggMTEwMzgyNGY3OGJhOWZmODVlY2ZiMjI5ZDc3MWFhNzM1ZGUwYzM4Mi4u
ZGIzMmU5MmNkOGZmNTJjYmJjMzM1Y2M0NDg0YmRlNzViNzQ1NGRiZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2Fj
dGlvbkluZm8uaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VJbmZv
LmgiCiAjaW5jbHVkZSAiSURCUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiSURCVHJh
bnNhY3Rpb25EdXJhYmlsaXR5LmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25Nb2RlLmgiCiAj
aW5jbHVkZSAiSW5kZXhlZERCLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDQsNyAr
NDUsNyBAQCBjbGFzcyBJREJDb25uZWN0aW9uVG9DbGllbnQ7CiBjbGFzcyBJREJUcmFuc2FjdGlv
bkluZm8gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRp
YyBJREJUcmFuc2FjdGlvbkluZm8gY2xpZW50VHJhbnNhY3Rpb24oY29uc3QgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgb2JqZWN0U3RvcmVzLCBJ
REJUcmFuc2FjdGlvbk1vZGUpOworICAgIHN0YXRpYyBJREJUcmFuc2FjdGlvbkluZm8gY2xpZW50
VHJhbnNhY3Rpb24oY29uc3QgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgb2JqZWN0U3RvcmVzLCBJREJUcmFuc2FjdGlvbk1vZGUsIElEQlRyYW5z
YWN0aW9uRHVyYWJpbGl0eSk7CiAgICAgc3RhdGljIElEQlRyYW5zYWN0aW9uSW5mbyB2ZXJzaW9u
Q2hhbmdlKGNvbnN0IElEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50JiwgY29uc3QgSURC
RGF0YWJhc2VJbmZvJiBvcmlnaW5hbERhdGFiYXNlSW5mbywgdWludDY0X3QgbmV3VmVyc2lvbik7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBJREJUcmFuc2FjdGlvbkluZm8oY29uc3QgSURCVHJhbnNh
Y3Rpb25JbmZvJik7CkBAIC01OSw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7
IH0KIAogICAgIElEQlRyYW5zYWN0aW9uTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2Rl
OyB9CisgICAgSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5IGR1cmFiaWxpdHkoKSBjb25zdCB7IHJl
dHVybiBtX2R1cmFiaWxpdHk7IH0KICAgICB1aW50NjRfdCBuZXdWZXJzaW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9uZXdWZXJzaW9uOyB9CiAKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgb2JqZWN0
U3RvcmVzKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RTdG9yZXM7IH0KQEAgLTgxLDYgKzgzLDcg
QEAgcHJpdmF0ZToKICAgICBJREJSZXNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogCiAg
ICAgSURCVHJhbnNhY3Rpb25Nb2RlIG1fbW9kZSB7IElEQlRyYW5zYWN0aW9uTW9kZTo6UmVhZG9u
bHkgfTsKKyAgICBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkgbV9kdXJhYmlsaXR5IHsgSURCVHJh
bnNhY3Rpb25EdXJhYmlsaXR5OjpEZWZhdWx0IH07CiAgICAgdWludDY0X3QgbV9uZXdWZXJzaW9u
IHsgMCB9OwogICAgIFZlY3RvcjxTdHJpbmc+IG1fb2JqZWN0U3RvcmVzOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxJREJEYXRhYmFzZUluZm8+IG1fb3JpZ2luYWxEYXRhYmFzZUluZm87CkBAIC05MCw3
ICs5Myw3IEBAIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIElEQlRyYW5zYWN0aW9uSW5m
bzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBtX2lk
ZW50aWZpZXIgPDwgbV9uZXdWZXJzaW9uIDw8IG1fb2JqZWN0U3RvcmVzOwotICAgIGVuY29kZXIg
PDwgbV9tb2RlOworICAgIGVuY29kZXIgPDwgbV9tb2RlIDw8IG1fZHVyYWJpbGl0eTsKIAogICAg
IGVuY29kZXIgPDwgISFtX29yaWdpbmFsRGF0YWJhc2VJbmZvOwogICAgIGlmIChtX29yaWdpbmFs
RGF0YWJhc2VJbmZvKQpAQCAtMTEyLDYgKzExNSw5IEBAIGJvb2wgSURCVHJhbnNhY3Rpb25JbmZv
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5tX21vZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubV9kdXJhYmlsaXR5KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgYm9vbCBoYXNPYmplY3Q7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShoYXNPYmplY3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4
IGJlZTIzNjRlOGJhZThhMGU5ODUyZDZjNDIzZGQxOWNhMjYwYWM0NjIuLjJlYTljYzU2OWNmNDVk
NWY0Mjg4ZTMwZThiNGYzZmEzYjYwODBiMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zMjEwLDYgKzMy
MTAsNyBAQCBKU0lEQk9iamVjdFN0b3JlLmNwcAogSlNJREJPcGVuREJSZXF1ZXN0LmNwcAogSlNJ
REJSZXF1ZXN0LmNwcAogSlNJREJUcmFuc2FjdGlvbi5jcHAKK0pTSURCVHJhbnNhY3Rpb25EdXJh
YmlsaXR5LmNwcAogSlNJREJUcmFuc2FjdGlvbk1vZGUuY3BwCiBKU0lEQlZlcnNpb25DaGFuZ2VF
dmVudC5jcHAKIEpTSWRsZURlYWRsaW5lLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDliNjM1OGIxYjBmMTYxYjY2ZTc3N2E5
MWRiNGM3NmRkMWY2ZjZkZWIuLjY5Mzk2YjhiMjYzMWUxOGE0YWM3ZWMxMzk5ZTE2OTc4ZmQ0MDAy
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTI4NDksNiArMjg0OSw3IEBACiAJCTkzNUY0NTQzMEY3QzNCNUYwMEQ3QzFGQiAv
KiBKU0xhenlFdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzVGNDU0MTBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0
ZW5lci5oICovOyB9OwogCQk5MzVGQkM0NTA5QkEwMEI5MDBFMjMwQjEgLyogRXZlbnRMaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RkJD
NDQwOUJBMDBCOTAwRTIzMEIxIC8qIEV2ZW50TGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzVGQkNGMjA5QkExNDNCMDBFMjMwQjEg
LyogRXhjZXB0aW9uQ29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM1RkJDRjEwOUJBMTQzQjAwRTIzMEIxIC8qIEV4Y2VwdGlvbkNvZGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzY1ODNCNzI2
QUI5MkI1MDA0RTYxRjQgLyogSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzY1ODNCNjI2QUI5MTc0MDA0RTYx
RjQgLyogSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM3MDkxOEQxNDE2RDg2QjAwNDc3MzMzIC8qIHRl
eHRBcmVhUmVzaXplQ29ybmVyQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM3MDkxOEMxNDE2RDg2QjAwNDc3MzMzIC8qIHRleHRBcmVhUmVz
aXplQ29ybmVyQDJ4LnBuZyAqLzsgfTsKIAkJOTM3N0FCQTAxNURFRkVFRjAwMzFGRDA0IC8qIFBh
Z2luYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNzdBQjlGMTVERUZFRUYwMDMxRkQwNCAvKiBQYWdpbmF0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM3RkYzRDUxQTEwMTJENjAwOEVC
QTMxIC8qIERpY3Rpb25hcnlMb29rdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzN0ZGM0Q0MUExMDEyRDYwMDhFQkEzMSAvKiBEaWN0aW9uYXJ5TG9v
a3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTExNzA2LDYgKzExNzA3LDggQEAKIAkJOTM1RjQ1NDEwRjdDM0I1RjAwRDdDMUZCIC8qIEpTTGF6
eUV2ZW50TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNMYXp5
RXZlbnRMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzVGQkM0NDA5
QkEwMEI5MDBFMjMwQjEgLyogRXZlbnRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBFdmVudExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzNUZCQ0YxMDlCQTE0M0IwMEUyMzBCMSAvKiBFeGNlcHRpb25Db2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbkNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTM2NTgzQjQyNkFCOENCNDAwNEU2MUY0IC8qIElEQlRyYW5zYWN0aW9uRHVy
YWJpbGl0eS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSURCVHJhbnNhY3Rpb25EdXJhYmls
aXR5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM2NTgzQjYyNkFCOTE3NDAw
NEU2MUY0IC8qIElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM2QjIxRjQxREJCRjgzMDAwNTJFMTE3IC8qIENhbnZhc1BhdGguaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IENhbnZhc1BhdGguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzZE
RDAzQTA5Q0VBQzI3MDA1NkFFOEMgLyogUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM3MDkxOEMxNDE2RDg2
QjAwNDc3MzMzIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyQDJ4LnBuZyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJ0ZXh0
QXJlYVJlc2l6ZUNvcm5lckAyeC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjQ0MzIsNiArMjQ0MzUsOCBAQAogCQkJCTUxNjQ1QjUwMUI5Rjg4OUIwMEY3ODlDRSAvKiBJREJU
cmFuc2FjdGlvbi5jcHAgKi8sCiAJCQkJNTE2NDVCNTExQjlGODg5QjAwRjc4OUNFIC8qIElEQlRy
YW5zYWN0aW9uLmggKi8sCiAJCQkJNTFENzE5QTYxODExMDZFMDAwMTZEQzUxIC8qIElEQlRyYW5z
YWN0aW9uLmlkbCAqLywKKwkJCQk5MzY1ODNCNjI2QUI5MTc0MDA0RTYxRjQgLyogSURCVHJhbnNh
Y3Rpb25EdXJhYmlsaXR5LmggKi8sCisJCQkJOTM2NTgzQjQyNkFCOENCNDAwNEU2MUY0IC8qIElE
QlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5pZGwgKi8sCiAJCQkJODM4RUY1MzYxREMxNDlEQTAwOEYw
QzM5IC8qIElEQlRyYW5zYWN0aW9uTW9kZS5oICovLAogCQkJCTgzOEVGNTM3MURDMTQ5REEwMDhG
MEMzOSAvKiBJREJUcmFuc2FjdGlvbk1vZGUuaWRsICovLAogCQkJCTUxNjEwM0FEMUNBREI5QTMw
MDE2QjRDNyAvKiBJREJWYWx1ZS5jcHAgKi8sCkBAIC0zMzEyNyw2ICszMzEzMiw3IEBACiAJCQkJ
OTMyM0IwNzAyMzA2MUY5NzAwOTAxQzhCIC8qIElEQlNlcmlhbGl6YXRpb25Db250ZXh0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTg1RkNCQjFCQjRDQkY4MDAxMjg5OEYgLyogSURCU2VydmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTg1RkNBRDFCQjRDNEU4MDAxMjg5OEYgLyogSURCVHJhbnNh
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNjU4M0I3MjZBQjkyQjUwMDRFNjFGNCAvKiBJ
REJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOThGN0FEMUJC
REQzRUIwMEUyQ0M1RiAvKiBJREJUcmFuc2FjdGlvbkluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTgzOEVGNTM4MURDMTQ5RTIwMDhGMEMzOSAvKiBJREJUcmFuc2FjdGlvbk1vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxNjEwM0FGMUNBREJBNzcwMDE2QjRDNyAvKiBJREJWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
LmNwcAppbmRleCBhMTExMDI1NjgxZTQ2OTMxMjNmYmM4Y2I0OTBhODM3MGRiMzljMTgzLi5jNTkx
OGI0YjE1OTk3ZGE0ZjhmMjYyODA4ZGI5MjM4OWIzNDZmYzZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKQEAgLTE5Miw2ICsxOTIsMTIgQEAg
dm9pZCBTUUxpdGVEYXRhYmFzZTo6ZW5hYmxlQXV0b21hdGljV0FMVHJ1bmNhdGlvbigpCiAgICAg
c3FsaXRlM193YWxfaG9vayhtX2RiLCB3YWxBdXRvbWF0aWNUcnVuY2F0aW9uSG9vaywgbnVsbHB0
cik7CiB9CiAKK2ludCBTUUxpdGVEYXRhYmFzZTo6Y2hlY2twb2ludChDaGVja3BvaW50TW9kZSBt
b2RlKQoreworICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRyYW5z
YWN0aW9uQ291bnRlcjsKKyAgICByZXR1cm4gc3FsaXRlM193YWxfY2hlY2twb2ludF92MihtX2Ri
LCBudWxscHRyLCBzdGF0aWNfY2FzdDxpbnQ+KG1vZGUpLCBudWxscHRyLCBudWxscHRyKTsKK30K
Kwogdm9pZCBTUUxpdGVEYXRhYmFzZTo6dXNlV0FMSm91cm5hbE1vZGUoKQogewogICAgIG1fdXNl
V0FMID0gdHJ1ZTsKQEAgLTIwNywxNSArMjEzLDcgQEAgdm9pZCBTUUxpdGVEYXRhYmFzZTo6dXNl
V0FMSm91cm5hbE1vZGUoKQogICAgICAgICAgICAgTE9HX0VSUk9SKCJTUUxpdGUgZGF0YWJhc2Ug
ZmFpbGVkIHRvIHNldCBqb3VybmFsX21vZGUgdG8gV0FMLCBlcnJvcjogJXMiLCBsYXN0RXJyb3JN
c2coKSk7CiAgICAgfQogCi0gICAgewotICAgICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jl
c3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7Ci0gICAgICAgIGF1dG8gY2hlY2twb2lu
dFN0YXRlbWVudCA9IHByZXBhcmVTdGF0ZW1lbnQoIlBSQUdNQSB3YWxfY2hlY2twb2ludChUUlVO
Q0FURSkiX3MpOwotICAgICAgICBpZiAoY2hlY2twb2ludFN0YXRlbWVudCAmJiBjaGVja3BvaW50
U3RhdGVtZW50LT5zdGVwKCkgPT0gU1FMSVRFX1JPVykgewotICAgICAgICAgICAgaWYgKGNoZWNr
cG9pbnRTdGF0ZW1lbnQtPmNvbHVtbkludCgwKSkKLSAgICAgICAgICAgICAgICBMT0coU1FMRGF0
YWJhc2UsICJTUUxpdGUgZGF0YWJhc2UgY2hlY2twb2ludCBpcyBibG9ja2VkIik7Ci0gICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgTE9HX0VSUk9SKCJTUUxpdGUgZGF0YWJhc2UgZmFpbGVkIHRv
IGNoZWNrcG9pbnQ6ICVzIiwgbGFzdEVycm9yTXNnKCkpOwotICAgIH0KKyAgICBjaGVja3BvaW50
KENoZWNrcG9pbnRNb2RlOjpUcnVuY2F0ZSk7CiB9CiAKIHZvaWQgU1FMaXRlRGF0YWJhc2U6OmNs
b3NlKFNob3VsZFNldEVycm9yU3RhdGUgc2hvdWxkU2V0RXJyb3JTdGF0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKaW5kZXggNGIyMmM4ZmU2OGUzNWZi
ZGQwOTcyNTg2OGM0YzlhMGU1Y2FiMmNmMC4uZDM4YTZkYmJjODBiMjg5MTg4NDhhM2UwZWQ3MmU0
ZGM1Y2E0ODgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmgKQEAgLTk3LDYgKzk3LDggQEAgcHVibGljOgogICAgIC8vIFNRTElURV9DSEVDS1BPSU5U
X1RSVU5DQVRFIHdpbGwgaW52b2tlIHRoZSBidXN5IGhhbmRsZXIgaWYgaXQgY2FuJ3QgYWNxdWly
ZSB0aGUgbmVjZXNzYXJ5CiAgICAgLy8gbG9ja3MsIHdoaWNoIGNhbiBsZWFkIHRvIHVuaW50ZW5k
ZWQgZGVsYXlzLgogICAgIHZvaWQgZW5hYmxlQXV0b21hdGljV0FMVHJ1bmNhdGlvbigpOworICAg
IGVudW0gY2xhc3MgQ2hlY2twb2ludE1vZGUgOiB1aW50OF90IHsgUGFzc2l2ZSwgRnVsbCwgUmVz
dGFydCwgVHJ1bmNhdGUgfTsKKyAgICBpbnQgY2hlY2twb2ludChDaGVja3BvaW50TW9kZSk7CiAK
ICAgICAvLyBHZXRzL3NldHMgdGhlIG1heGltdW0gc2l6ZSBpbiBieXRlcwogICAgIC8vIERlcGVu
ZGluZyBvbiBwZXItZGF0YWJhc2UgYXR0cmlidXRlcywgdGhlIHNpemUgd2lsbCBvbmx5IGJlIHNl
dHRhYmxlIGluIHVuaXRzIHRoYXQgYXJlIHRoZSBwYWdlIHNpemUgb2YgdGhlIGRhdGFiYXNlLCB3
aGljaCBpcyBlc3RhYmxpc2hlZCBhdCBjcmVhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKaW5kZXggNDA2YWVmMmRhY2I2ZjlmYTI1ZjFmN2NiNjY3NzcxN2ZhMGExZGI4YS4uZDlmYzBj
OGVlMTU5NjBmNzA1ZDliYmFiYzljNDg1YWM5ZTYxMDY4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDctMjcgIFNpaHVpIExpdSAgPHNpaHVp
X2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IElEQlRyYW5zYWN0aW9uLmR1cmFi
aWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
ODI4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvdHJhbnNhY3Rpb24tcmVsYXhlZC1kdXJhYmlsaXR5LnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24t
cmVsYXhlZC1kdXJhYmlsaXR5LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKwog
MjAyMS0wNy0yNiAgSm9obnNvbiBaaG91ICA8cWlhb3NvbmdfemhvdUBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkZWQgRm9ybURhdGFFdmVudCBzdXBwb3J0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5h
bnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDRiZDZlMDk3
ZTEyZDU1ZWJjMDc4OTVkODVjZTgzOTg0ZTAyZmY2Y2IuLmRhZjY3MTNkZWU3YTBiMWYwMWJhYzJj
NDdhOWZmZjcxMmY0MDA1ODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQKQEAgLTE4NSw3ICsxODUsNyBAQCBQQVNTIElE
QlRyYW5zYWN0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgbwogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29w
YWJsZXMgcHJvcGVydHkKIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
b2JqZWN0U3RvcmVOYW1lcwogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBtb2RlCi1GQUlMIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGR1cmFiaWxp
dHkgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5
ICJkdXJhYmlsaXR5IiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBJREJUcmFuc2FjdGlv
biBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBkdXJhYmlsaXR5CiBQQVNTIElEQlRyYW5zYWN0aW9uIGlu
dGVyZmFjZTogYXR0cmlidXRlIGRiCiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0
cmlidXRlIGVycm9yCiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIG9i
amVjdFN0b3JlKERPTVN0cmluZykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGMxMDQzYzY2
NjgxZTQ3NTUxZTFhMGI2MTU1MDFhZGViYjM0Y2I3M2EuLjBlZTJiMDUyYjY2ZThmM2VmNDlhNTZi
MzU4MDdiYzM1ODQwNTM2NzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMTg1LDcgKzE4
NSw3IEBAIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvCiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBvYmplY3RTdG9yZU5hbWVzCiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVy
ZmFjZTogYXR0cmlidXRlIG1vZGUKLUZBSUwgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgZHVyYWJpbGl0eSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBo
YXZlIGEgcHJvcGVydHkgImR1cmFiaWxpdHkiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNT
IElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGR1cmFiaWxpdHkKIFBBU1MgSURC
VHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZGIKIFBBU1MgSURCVHJhbnNhY3Rpb24g
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgZXJyb3IKIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNl
OiBvcGVyYXRpb24gb2JqZWN0U3RvcmUoRE9NU3RyaW5nKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24t
cmVsYXhlZC1kdXJhYmlsaXR5LnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24t
cmVsYXhlZC1kdXJhYmlsaXR5LnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDQ0ZGRh
N2FiM2Y4MjBmNGUxY2EwYTFkNjdiNTdiNjFlY2QxYjQ0N2EuLmIyYTlkYWIyMTRhZWU4YTkwNjg4
ZWFiMDFmYWIxMGUzZjk5NWUwMTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLXJlbGF4ZWQtZHVyYWJp
bGl0eS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1yZWxheGVkLWR1
cmFiaWxpdHkudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsOCBAQAogCi1G
QUlMIENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDAgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgKHN0cmluZykgImRlZmF1bHQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5k
ZWZpbmVkCi1GQUlMIENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDEg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgImRlZmF1bHQiIGJ1dCBnb3QgKHVuZGVm
aW5lZCkgdW5kZWZpbmVkCi1GQUlMIENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0
OiBjYXNlIDIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgImRlZmF1bHQiIGJ1dCBn
b3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFk
IGJhY2sgb3V0OiBjYXNlIDMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgInJlbGF4
ZWQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIENvbW1pdHRlZCBkYXRhIGNh
biBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmlu
ZykgInN0cmljdCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgSW52YWxpZCBk
dXJhYmlsaXR5IG9wdGlvbiB0aHJvd3MgYSBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICAgIGRiLnRyYW5zYWN0aW9uKFsnYm9va3MnXSwgJ3Jl
YWR3cml0ZScsIHsgZHVyYWJpbGl0eTogJ2ludmFsaWQnIH0pOwotICB9IiBkaWQgbm90IHRocm93
CitQQVNTIENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDAKK1BBU1Mg
Q29tbWl0dGVkIGRhdGEgY2FuIGJlIHJlYWQgYmFjayBvdXQ6IGNhc2UgMQorUEFTUyBDb21taXR0
ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAyCitQQVNTIENvbW1pdHRlZCBkYXRh
IGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDMKK1BBU1MgQ29tbWl0dGVkIGRhdGEgY2FuIGJl
IHJlYWQgYmFjayBvdXQ6IGNhc2UgNAorUEFTUyBJbnZhbGlkIGR1cmFiaWxpdHkgb3B0aW9uIHRo
cm93cyBhIFR5cGVFcnJvcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1yZWxheGVkLWR1cmFiaWxp
dHkudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tcmVsYXhlZC1k
dXJhYmlsaXR5LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA0NGRkYTdh
YjNmODIwZjRlMWNhMGExZDY3YjU3YjYxZWNkMWI0NDdhLi5iMmE5ZGFiMjE0YWVlOGE5MDY4OGVh
YjAxZmFiMTBlM2Y5OTVlMDEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1yZWxheGVkLWR1cmFiaWxp
dHkudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLXJlbGF4
ZWQtZHVyYWJpbGl0eS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMTAg
KzEsOCBAQAogCi1GQUlMIENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNl
IDAgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgImRlZmF1bHQiIGJ1dCBnb3QgKHVu
ZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sg
b3V0OiBjYXNlIDEgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgImRlZmF1bHQiIGJ1
dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIENvbW1pdHRlZCBkYXRhIGNhbiBiZSBy
ZWFkIGJhY2sgb3V0OiBjYXNlIDIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgImRl
ZmF1bHQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIENvbW1pdHRlZCBkYXRh
IGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0
cmluZykgInJlbGF4ZWQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIENvbW1p
dHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDQgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgKHN0cmluZykgInN0cmljdCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZB
SUwgSW52YWxpZCBkdXJhYmlsaXR5IG9wdGlvbiB0aHJvd3MgYSBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICAgIGRiLnRyYW5zYWN0aW9uKFsn
Ym9va3MnXSwgJ3JlYWR3cml0ZScsIHsgZHVyYWJpbGl0eTogJ2ludmFsaWQnIH0pOwotICB9IiBk
aWQgbm90IHRocm93CitQQVNTIENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBj
YXNlIDAKK1BBU1MgQ29tbWl0dGVkIGRhdGEgY2FuIGJlIHJlYWQgYmFjayBvdXQ6IGNhc2UgMQor
UEFTUyBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAyCitQQVNTIENv
bW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDMKK1BBU1MgQ29tbWl0dGVk
IGRhdGEgY2FuIGJlIHJlYWQgYmFjayBvdXQ6IGNhc2UgNAorUEFTUyBJbnZhbGlkIGR1cmFiaWxp
dHkgb3B0aW9uIHRocm93cyBhIFR5cGVFcnJvcgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434455</attachid>
            <date>2021-07-28 13:26:54 -0700</date>
            <delta_ts>2021-07-28 20:04:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>40150</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1ZjU1YjZlOTM2OTEuLmIxMmU1NWI4NDZkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDIxLTA3LTI4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBJREJUcmFuc2FjdGlvbi5kdXJhYmlsaXR5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgyODkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2lkYnRyYW5z
YWN0aW9uLWR1cmFiaWxpdHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1kdXJhYmlsaXR5LXByaXZhdGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1kdXJh
YmlsaXR5LXByaXZhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
aWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0eS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvaWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0eS5qczogQWRkZWQu
CisgICAgICAgIChvbk9wZW5VcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKG9uT3BlblN1Y2Nlc3Mp
OgorICAgICAgICAob25UcmFuc2FjdGlvbkNvbXBsZXRlKToKKwogMjAyMS0wNy0yOCAgQXl1bWkg
S29qaW1hICA8YXl1bWlfa29qaW1hQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChy
MjY0MTE3KTogWyBNYWMgaU9TIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvYmxvYi5odHRwcy5odG1sLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNDQwZGZiNWIwYTkxLi5lYTBmNmE3ZmFmYjAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA3LTI4ICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBJREJU
cmFuc2FjdGlvbi5kdXJhYmlsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjgyODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5h
bnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLXJlbGF4ZWQtZHVyYWJpbGl0eS50ZW50YXRp
dmUuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL3RyYW5zYWN0aW9uLXJlbGF4ZWQtZHVyYWJpbGl0eS50ZW50YXRpdmUuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQ6CisKIDIwMjEtMDctMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBMb2NhdGlvbi5ocmVmIHNldHRlciB1c2VzIHdyb25nIHdpbmRvdyB0byBy
ZXNvbHZlIHJlbGF0aXZlIFVSTHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dAppbmRleCA0YmQ2ZTA5N2UxMmQuLmRhZjY3MTNk
ZWU3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3Mu
YW55LWV4cGVjdGVkLnR4dApAQCAtMTg1LDcgKzE4NSw3IEBAIFBBU1MgSURCVHJhbnNhY3Rpb24g
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvCiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0
eQogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvYmplY3RTdG9yZU5h
bWVzCiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG1vZGUKLUZBSUwg
SURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZHVyYWJpbGl0eSBhc3NlcnRfdHJ1
ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImR1cmFiaWxpdHki
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTog
YXR0cmlidXRlIGR1cmFiaWxpdHkKIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgZGIKIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZXJyb3IK
IFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gb2JqZWN0U3RvcmUoRE9N
U3RyaW5nKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhh
cm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggYzEwNDNjNjY2ODFlLi4wZWUyYjA1
MmI2NmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRs
aGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMTg1LDcgKzE4NSw3IEBAIFBBU1Mg
SURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvCiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNj
b3BhYmxlcyBwcm9wZXJ0eQogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBvYmplY3RTdG9yZU5hbWVzCiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0cmli
dXRlIG1vZGUKLUZBSUwgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZHVyYWJp
bGl0eSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVy
dHkgImR1cmFiaWxpdHkiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIElEQlRyYW5zYWN0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGR1cmFiaWxpdHkKIFBBU1MgSURCVHJhbnNhY3Rpb24g
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgZGIKIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgZXJyb3IKIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24g
b2JqZWN0U3RvcmUoRE9NU3RyaW5nKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tcmVsYXhlZC1kdXJh
YmlsaXR5LnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tcmVsYXhlZC1kdXJh
YmlsaXR5LnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDQ0ZGRhN2FiM2Y4Mi4uYjJh
OWRhYjIxNGFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1yZWxheGVkLWR1cmFiaWxpdHkudGVudGF0
aXZlLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tcmVsYXhlZC1kdXJhYmlsaXR5LnRl
bnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDggQEAKIAotRkFJTCBDb21taXR0
ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAwIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIChzdHJpbmcpICJkZWZhdWx0IiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJ
TCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAxIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIChzdHJpbmcpICJkZWZhdWx0IiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVm
aW5lZAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAyIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJkZWZhdWx0IiBidXQgZ290ICh1bmRlZmlu
ZWQpIHVuZGVmaW5lZAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDog
Y2FzZSAzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJyZWxheGVkIiBidXQgZ290
ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBi
YWNrIG91dDogY2FzZSA0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJzdHJpY3Qi
IGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIEludmFsaWQgZHVyYWJpbGl0eSBv
cHRpb24gdGhyb3dzIGEgVHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7Ci0gICAgICBkYi50cmFuc2FjdGlvbihbJ2Jvb2tzJ10sICdyZWFkd3JpdGUnLCB7
IGR1cmFiaWxpdHk6ICdpbnZhbGlkJyB9KTsKLSAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBDb21t
aXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAwCitQQVNTIENvbW1pdHRlZCBk
YXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDEKK1BBU1MgQ29tbWl0dGVkIGRhdGEgY2Fu
IGJlIHJlYWQgYmFjayBvdXQ6IGNhc2UgMgorUEFTUyBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVh
ZCBiYWNrIG91dDogY2FzZSAzCitQQVNTIENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sg
b3V0OiBjYXNlIDQKK1BBU1MgSW52YWxpZCBkdXJhYmlsaXR5IG9wdGlvbiB0aHJvd3MgYSBUeXBl
RXJyb3IKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tcmVsYXhlZC1kdXJhYmlsaXR5LnRlbnRhdGl2
ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLXJlbGF4ZWQtZHVyYWJpbGl0eS50
ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNDRkZGE3YWIzZjgyLi5iMmE5
ZGFiMjE0YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLXJlbGF4ZWQtZHVyYWJpbGl0eS50ZW50YXRp
dmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tcmVsYXhlZC1kdXJhYmls
aXR5LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSw4IEBACiAK
LUZBSUwgQ29tbWl0dGVkIGRhdGEgY2FuIGJlIHJlYWQgYmFjayBvdXQ6IGNhc2UgMCBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiZGVmYXVsdCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1
bmRlZmluZWQKLUZBSUwgQ29tbWl0dGVkIGRhdGEgY2FuIGJlIHJlYWQgYmFjayBvdXQ6IGNhc2Ug
MSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiZGVmYXVsdCIgYnV0IGdvdCAodW5k
ZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgQ29tbWl0dGVkIGRhdGEgY2FuIGJlIHJlYWQgYmFjayBv
dXQ6IGNhc2UgMiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiZGVmYXVsdCIgYnV0
IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgQ29tbWl0dGVkIGRhdGEgY2FuIGJlIHJl
YWQgYmFjayBvdXQ6IGNhc2UgMyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAicmVs
YXhlZCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgQ29tbWl0dGVkIGRhdGEg
Y2FuIGJlIHJlYWQgYmFjayBvdXQ6IGNhc2UgNCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3Ry
aW5nKSAic3RyaWN0IiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBJbnZhbGlk
IGR1cmFiaWxpdHkgb3B0aW9uIHRocm93cyBhIFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzX2pzOiBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgICAgZGIudHJhbnNhY3Rpb24oWydib29rcyddLCAn
cmVhZHdyaXRlJywgeyBkdXJhYmlsaXR5OiAnaW52YWxpZCcgfSk7Ci0gIH0iIGRpZCBub3QgdGhy
b3cKK1BBU1MgQ29tbWl0dGVkIGRhdGEgY2FuIGJlIHJlYWQgYmFjayBvdXQ6IGNhc2UgMAorUEFT
UyBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAxCitQQVNTIENvbW1p
dHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDIKK1BBU1MgQ29tbWl0dGVkIGRh
dGEgY2FuIGJlIHJlYWQgYmFjayBvdXQ6IGNhc2UgMworUEFTUyBDb21taXR0ZWQgZGF0YSBjYW4g
YmUgcmVhZCBiYWNrIG91dDogY2FzZSA0CitQQVNTIEludmFsaWQgZHVyYWJpbGl0eSBvcHRpb24g
dGhyb3dzIGEgVHlwZUVycm9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2lkYnRyYW5zYWN0aW9uLWR1cmFiaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0eS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jOTVhYzNiN2E4ODcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pZGJ0cmFu
c2FjdGlvbi1kdXJhYmlsaXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitFbnN1cmUg
ZHVyYWJpbGl0eSBvZiB0cmFuc2FjdGlvbiBpcyBleHBlY3RlZAorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJ
bmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxm
Lk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVk
REIub3BlbihkYm5hbWUpCisKK29uT3BlblVwZ3JhZGVOZWVkZWQoKToKK2RhdGFiYXNlID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAorUEFTUyBldmVudC50YXJnZXQudHJhbnNhY3Rpb24uZHVyYWJpbGl0
eSBpcyAiZGVmYXVsdCIKKworb25PcGVuU3VjY2VzcygpOgordHJhbnNhY3Rpb24gPSBkYXRhYmFz
ZS50cmFuc2FjdGlvbignb2JqZWN0c3RvcmUnKQorUEFTUyB0cmFuc2FjdGlvbi5kdXJhYmlsaXR5
IGlzICJkZWZhdWx0IgorCitvblRyYW5zYWN0aW9uQ29tcGxldGUoKToKK1BBU1MgdHJhbnNhY3Rp
b24uZHVyYWJpbGl0eSBpcyAiZGVmYXVsdCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1kdXJhYmlsaXR5LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0eS1w
cml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLmM5NWFjM2I3YTg4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLWR1cmFiaWxpdHktcHJpdmF0ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyNCBAQAorRW5zdXJlIGR1cmFiaWxpdHkgb2YgdHJhbnNhY3Rpb24gaXMgZXhw
ZWN0ZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYu
aW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8
IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorCitvbk9wZW5VcGdyYWRl
TmVlZGVkKCk6CitkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXZlbnQudGFy
Z2V0LnRyYW5zYWN0aW9uLmR1cmFiaWxpdHkgaXMgImRlZmF1bHQiCisKK29uT3BlblN1Y2Nlc3Mo
KToKK3RyYW5zYWN0aW9uID0gZGF0YWJhc2UudHJhbnNhY3Rpb24oJ29iamVjdHN0b3JlJykKK1BB
U1MgdHJhbnNhY3Rpb24uZHVyYWJpbGl0eSBpcyAiZGVmYXVsdCIKKworb25UcmFuc2FjdGlvbkNv
bXBsZXRlKCk6CitQQVNTIHRyYW5zYWN0aW9uLmR1cmFiaWxpdHkgaXMgImRlZmF1bHQiCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0
eS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pZGJ0cmFuc2Fj
dGlvbi1kdXJhYmlsaXR5LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLmI4YTg3YjEzZWM0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLWR1cmFiaWxpdHktcHJpdmF0ZS5odG1s
CkBAIC0wLDAgKzEsMTAgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRXBoZW1lcmFs
U2Vzc2lvbj10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hh
cmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9pZGJ0cmFuc2FjdGlvbi1kdXJhYmlsaXR5LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1kdXJhYmlsaXR5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1kdXJhYmlsaXR5Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zYzJkN2IxYTQ3ZmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlv
bi1kdXJhYmlsaXR5Lmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9pZGJ0cmFuc2FjdGlvbi1kdXJhYmlsaXR5LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaWRidHJhbnNhY3Rpb24t
ZHVyYWJpbGl0eS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9p
ZGJ0cmFuc2FjdGlvbi1kdXJhYmlsaXR5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMC4uMTMwMzFhMWUyMzhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2lkYnRyYW5zYWN0aW9uLWR1cmFiaWxpdHkuanMK
QEAgLTAsMCArMSwzNCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNj
cmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzJyk7CisgICAgaW1wb3J0U2NyaXB0
cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCdFbnN1cmUgZHVyYWJpbGl0eSBvZiB0
cmFuc2FjdGlvbiBpcyBleHBlY3RlZCcpOworCitpbmRleGVkREJUZXN0KG9uT3BlblVwZ3JhZGVO
ZWVkZWQsIG9uT3BlblN1Y2Nlc3MpOworCitmdW5jdGlvbiBvbk9wZW5VcGdyYWRlTmVlZGVkKGV2
ZW50KQoreworICAgIHByZWFtYmxlKGV2ZW50KTsKKworICAgIGRhdGFiYXNlID0gZXZhbEFuZExv
ZygnZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0Jyk7CisgICAgZGF0YWJhc2UuY3JlYXRl
T2JqZWN0U3RvcmUoJ29iamVjdHN0b3JlJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdl
dmVudC50YXJnZXQudHJhbnNhY3Rpb24uZHVyYWJpbGl0eScsICdkZWZhdWx0Jyk7Cit9CisKK2Z1
bmN0aW9uIG9uT3BlblN1Y2Nlc3MoZXZlbnQpCit7CisgICAgcHJlYW1ibGUoZXZlbnQpOworCisg
ICAgdHJhbnNhY3Rpb24gPSBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGRhdGFiYXNlLnRyYW5z
YWN0aW9uKCdvYmplY3RzdG9yZScpIik7CisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IG9u
VHJhbnNhY3Rpb25Db21wbGV0ZTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RyYW5zYWN0
aW9uLmR1cmFiaWxpdHknLCAnZGVmYXVsdCcpOworfQorCitmdW5jdGlvbiBvblRyYW5zYWN0aW9u
Q29tcGxldGUoZXZlbnQpCit7CisgICAgcHJlYW1ibGUoZXZlbnQpOworCisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCd0cmFuc2FjdGlvbi5kdXJhYmlsaXR5JywgJ2RlZmF1bHQnKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IGViZDI4MWMwYjMxZS4uYzU0YTI4MjZmNzAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMzAzLDYgKzMwMyw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAg
ICAgTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5pZGwKICAgICBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0LmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uLmlkbAorICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5p
ZGwKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbk1vZGUuaWRsCiAgICAgTW9k
dWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbAogICAgIE1vZHVsZXMvaW5k
ZXhlZGRiL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUrSW5kZXhlZERhdGFiYXNlLmlkbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGQ5YTVmZTBmODBhOC4uMDc2NmEwZTNiOGVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTYgQEAKKzIwMjEtMDctMjggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IElEQlRyYW5zYWN0aW9uLmR1cmFiaWxpdHkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODI4OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vd3d3Lncz
Lm9yZy9UUi9JbmRleGVkREIvI2RvbS1pZGJ0cmFuc2FjdGlvbi1kdXJhYmlsaXR5CisgICAgICAg
ICAgICAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9JbmRleGVkREIvI2RpY3RkZWYtaWRidHJhbnNh
Y3Rpb25vcHRpb25zCisKKyAgICAgICAgSURCVHJhbnNhY3Rpb24uZHVyYWJpbGl0eSBnaXZlcyBh
IGhpbnQgYWJvdXQgZHVyYWJpbGl0eSBvZiBhIHRyYW5zYWN0aW9uLiBJZiBpdCdzIHN0cmljdCwg
YmFja2VuZCB3b3VsZCB0cnkKKyAgICAgICAgc3luY2luZyBkYXRhIHRvIGRhdGFiYXNlIGZpbGUg
YWZ0ZXIgdHJhbnNhY3Rpb24gY29tbWl0LCB3aGljaCBlbmZvcmNlcyBkdXJhYmlsaXR5LiBJZiBp
dCdzIHJlbGF4ZWQsIGl0IG1lYW5zIAorICAgICAgICBkYXRhIG1heSBzdGF5IGluIHRoZSBPUyBi
dWZmZXIgc29tZSB0aW1lIGFmdGVyIHRyYW5zYWN0aW9uIGNvbW1pdCwgd2hpY2ggZ2l2ZXMgYmV0
dGVyIHBlcmZvcm1hbmNlLiBGaXJlZm94IGFuZCAKKyAgICAgICAgQ2hyb21lIGFscmVhZHkgaW1w
bGVtZW50ZWQgZHVyYWJpbGl0eS4gVGhleSBoYXZlIGRpZmZlcmVudCB3YXlzIG9mIHNldHRpbmcg
ZHVyYWJpbGl0eSwgYW5kIHdlIGNob29zZSB0byB1c2UKKyAgICAgICAgVHJhbnNhY3Rpb25PcHRp
b25zIGFzIHNwZWMuCisKKyAgICAgICAgUmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMuCisgICAg
ICAgIE5ldyB0ZXN0czogc3RvcmFnZS9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0
eS1wcml2YXRlLmh0bWwKKyAgICAgICAgICAgICAgICAgICBzdG9yYWdlL2luZGV4ZWRkYi9pZGJ0
cmFuc2FjdGlvbi1kdXJhYmlsaXR5Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjp0cmFu
c2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5pZGw6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGw6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb25EdXJhYmlsaXR5Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0
aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNh
Y3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCVHJhbnNhY3Rp
b246OmR1cmFiaWxpdHkgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJUcmFuc2FjdGlvbkluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rp
b25JbmZvOjpjbGllbnRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2Fj
dGlvbkluZm86OklEQlRyYW5zYWN0aW9uSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFu
c2FjdGlvbkluZm86Omlzb2xhdGVkQ29weSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNh
Y3Rpb25JbmZvOjpkdXJhYmlsaXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uSW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uSW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NR
TGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrcG9pbnRNb2RlVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmNoZWNrcG9pbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnVzZVdBTEpvdXJuYWxNb2RlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaDoKKwogMjAyMS0wNy0yOCAgRnLDqWTDqXJp
YyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBBcHBseVN0eWxl
Q29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggOTc3NTg5YmQyODc0Li5iYzMx
Njg3ZjYwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdApAQCAtMTUxLDYgKzE1MSw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9pbmRleGVkZGIv
SURCT3BlbkRCUmVxdWVzdC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
RHVyYWJpbGl0eS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uTW9kZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNp
b25DaGFuZ2VFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRiL1dpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGUrSW5kZXhlZERhdGFiYXNlLmlkbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAyNmY0NTdmYTVlMjku
LjQyYmU1NzNmMzNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKQEAgLTExNjcsNiArMTE2Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCUmVxdWVzdC5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCUmVxdWVzdC5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lEQlRyYW5zYWN0aW9uLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJUcmFuc2Fj
dGlvbi5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lE
QlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCVHJhbnNhY3Rpb25Nb2RlLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJUcmFu
c2FjdGlvbk1vZGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBlYmExZjE3MDBlMTIuLjVjY2FlZWEzMGQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC0xNzcsNiArMTc3LDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbCBcCisJJChXZWJDb3JlKS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uTW9kZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3Bl
K0luZGV4ZWREYXRhYmFzZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggM2IxYmI1NTBmNTY4
Li4yMzAzODc3OTk4OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNjYsNiArNjYsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9pbmRleGVkZGIv
SURCT3BlbkRCUmVxdWVzdC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCiAg
ICAgTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAorICAgIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb25Nb2RlLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJWYWx1ZS5oCiAgICAg
TW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCBhNGJkNTQyMjQ3ZWMuLmE3YjNkY2Y1
OTI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlLmNwcApAQCAtMTYyLDcgKzE2Miw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxJREJPYmplY3RTdG9y
ZT4+IElEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hCiAgICAg
cmV0dXJuIG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uLT5jcmVhdGVPYmplY3RTdG9yZShpbmZv
KTsKIH0KIAotRXhjZXB0aW9uT3I8UmVmPElEQlRyYW5zYWN0aW9uPj4gSURCRGF0YWJhc2U6OnRy
YW5zYWN0aW9uKFN0cmluZ09yVmVjdG9yT2ZTdHJpbmdzJiYgc3RvcmVOYW1lcywgSURCVHJhbnNh
Y3Rpb25Nb2RlIG1vZGUpCitFeGNlcHRpb25PcjxSZWY8SURCVHJhbnNhY3Rpb24+PiBJREJEYXRh
YmFzZTo6dHJhbnNhY3Rpb24oU3RyaW5nT3JWZWN0b3JPZlN0cmluZ3MmJiBzdG9yZU5hbWVzLCBJ
REJUcmFuc2FjdGlvbk1vZGUgbW9kZSwgVHJhbnNhY3Rpb25PcHRpb25zIG9wdGlvbnMpCiB7CiAg
ICAgTE9HKEluZGV4ZWREQiwgIklEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbiIpOwogCkBAIC0yMDAs
NyArMjAwLDcgQEAgRXhjZXB0aW9uT3I8UmVmPElEQlRyYW5zYWN0aW9uPj4gSURCRGF0YWJhc2U6
OnRyYW5zYWN0aW9uKFN0cmluZ09yVmVjdG9yT2ZTdHJpbmcKICAgICBpZiAobW9kZSAhPSBJREJU
cmFuc2FjdGlvbk1vZGU6OlJlYWRvbmx5ICYmIG1vZGUgIT0gSURCVHJhbnNhY3Rpb25Nb2RlOjpS
ZWFkd3JpdGUpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKIAotICAg
IGF1dG8gaW5mbyA9IElEQlRyYW5zYWN0aW9uSW5mbzo6Y2xpZW50VHJhbnNhY3Rpb24obV9jb25u
ZWN0aW9uUHJveHkuZ2V0KCksIG9iamVjdFN0b3JlcywgbW9kZSk7CisgICAgYXV0byBpbmZvID0g
SURCVHJhbnNhY3Rpb25JbmZvOjpjbGllbnRUcmFuc2FjdGlvbihtX2Nvbm5lY3Rpb25Qcm94eS5n
ZXQoKSwgb2JqZWN0U3RvcmVzLCBtb2RlLCBvcHRpb25zLmR1cmFiaWxpdHkpOwogCiAgICAgTE9H
KEluZGV4ZWREQk9wZXJhdGlvbnMsICJJREIgY3JlYXRpbmcgdHJhbnNhY3Rpb246ICVzIiwgaW5m
by5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgYXV0byB0cmFuc2FjdGlvbiA9
IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoKnRoaXMsIGluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKaW5kZXggMzM4ZjMwZTY3ZTQ5Li42MTll
OWM5NGEyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2UuaApAQCAtNjMsNyArNjMsMTAgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxJ
REJPYmplY3RTdG9yZT4+IGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgT2Jq
ZWN0U3RvcmVQYXJhbWV0ZXJzJiYpOwogCiAgICAgdXNpbmcgU3RyaW5nT3JWZWN0b3JPZlN0cmlu
Z3MgPSBXVEY6OlZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj47Ci0gICAgRXhjZXB0aW9u
T3I8UmVmPElEQlRyYW5zYWN0aW9uPj4gdHJhbnNhY3Rpb24oU3RyaW5nT3JWZWN0b3JPZlN0cmlu
Z3MmJiBzdG9yZU5hbWVzLCBJREJUcmFuc2FjdGlvbk1vZGUpOworICAgIHN0cnVjdCBUcmFuc2Fj
dGlvbk9wdGlvbnMgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPElEQlRyYW5zYWN0aW9uRHVyYWJp
bGl0eT4gZHVyYWJpbGl0eTsKKyAgICB9OworICAgIEV4Y2VwdGlvbk9yPFJlZjxJREJUcmFuc2Fj
dGlvbj4+IHRyYW5zYWN0aW9uKFN0cmluZ09yVmVjdG9yT2ZTdHJpbmdzJiYgc3RvcmVOYW1lcywg
SURCVHJhbnNhY3Rpb25Nb2RlLCBUcmFuc2FjdGlvbk9wdGlvbnMgPSB7IH0pOwogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAg
dm9pZCBjbG9zZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5pZGwKaW5kZXggMzZkYmRiYzc3YzIwLi4zNmNhMzM0MGIwNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5pZGwKQEAgLTMz
LDggKzMzLDcgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHZl
cnNpb247CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ0xpc3Qgb2JqZWN0U3RvcmVO
YW1lczsKIAotICAgIC8vIEZJWE1FOiAndHJhbnNhY3Rpb24nIHNob3VsZCBhbHNvIHRha2UgYW4g
b3B0aW9uYWwgJ0lEQlRyYW5zYWN0aW9uT3B0aW9ucycgYXJndW1lbnQuCi0gICAgW05ld09iamVj
dF0gSURCVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24oKERPTVN0cmluZyBvciBzZXF1ZW5jZTxET01T
dHJpbmc+KSBzdG9yZU5hbWVzLCBvcHRpb25hbCBJREJUcmFuc2FjdGlvbk1vZGUgbW9kZSA9ICJy
ZWFkb25seSIpOworICAgIFtOZXdPYmplY3RdIElEQlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKChE
T01TdHJpbmcgb3Igc2VxdWVuY2U8RE9NU3RyaW5nPikgc3RvcmVOYW1lcywgb3B0aW9uYWwgSURC
VHJhbnNhY3Rpb25Nb2RlIG1vZGUgPSAicmVhZG9ubHkiLCBvcHRpb25hbCBJREJUcmFuc2FjdGlv
bk9wdGlvbnMgb3B0aW9ucyk7CiAgICAgdW5kZWZpbmVkIGNsb3NlKCk7CiAKICAgICBbTmV3T2Jq
ZWN0XSBJREJPYmplY3RTdG9yZSBjcmVhdGVPYmplY3RTdG9yZShET01TdHJpbmcgbmFtZSwgb3B0
aW9uYWwgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnMpOwpAQCAtNTUsMyArNTQs
NyBAQCBkaWN0aW9uYXJ5IElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyB7CiAgICAgKERPTVN0cmlu
ZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+KT8ga2V5UGF0aCA9IG51bGw7CiAgICAgYm9vbGVhbiBh
dXRvSW5jcmVtZW50ID0gZmFsc2U7CiB9OworCitkaWN0aW9uYXJ5IElEQlRyYW5zYWN0aW9uT3B0
aW9ucyB7CisgICAgSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5IGR1cmFiaWxpdHkgPSAiZGVmYXVs
dCI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uLmgKaW5kZXggNzcxMDg2ZDM1M2ViLi41NzZkY2RiN2UxYmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAtNzcsNiAr
NzcsNyBAQCBwdWJsaWM6CiAgICAgLy8gSURCVHJhbnNhY3Rpb24gSURMCiAgICAgUmVmPERPTVN0
cmluZ0xpc3Q+IG9iamVjdFN0b3JlTmFtZXMoKSBjb25zdDsKICAgICBJREJUcmFuc2FjdGlvbk1v
ZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5tb2RlKCk7IH0KKyAgICBJREJUcmFuc2Fj
dGlvbkR1cmFiaWxpdHkgZHVyYWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5kdXJhYmls
aXR5KCk7IH0KICAgICBJREJEYXRhYmFzZSogZGIoKTsKICAgICBET01FeGNlcHRpb24qIGVycm9y
KCkgY29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQk9iamVjdFN0b3JlPj4gb2JqZWN0U3Rv
cmUoY29uc3QgU3RyaW5nJiBuYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbAppbmRleCAzNzcxODBmYzgyNTcuLjQxY2ZjNzM0
NWIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uLmlkbApAQCAtMzIsOCArMzIsNyBAQAogXSBpbnRlcmZhY2UgSURCVHJhbnNhY3Rp
b24gOiBFdmVudFRhcmdldCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ0xpc3Qg
b2JqZWN0U3RvcmVOYW1lczsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCVHJhbnNhY3Rpb25N
b2RlIG1vZGU7Ci0gICAgLy8gSW1wbGVtZW50ICdkdXJhYmlsaXR5Jy4KLSAgICAvLyByZWFkb25s
eSBhdHRyaWJ1dGUgSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5IGR1cmFiaWxpdHk7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eSBkdXJhYmlsaXR5OwogICAg
IFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgSURCRGF0YWJhc2UgZGI7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTUV4Y2VwdGlvbj8gZXJyb3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kMmE0NjYzYmY1YzkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbkR1cmFiaWxpdHkuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2VudW0gY2xhc3MgSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5IDogdWludDhfdCB7
CisgICAgU3RyaWN0LAorICAgIFJlbGF4ZWQsCisgICAgRGVmYXVsdAorfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHk+IHsKKyAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkR1cmFi
aWxpdHksCisgICAgICAgIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eTo6U3RyaWN0
LAorICAgICAgICBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHk6OlJlbGF4ZWQsCisg
ICAgICAgIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eTo6RGVmYXVsdAorICAgID47
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2Y2MmI5ZTJiZmM1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b25EdXJhYmlsaXR5LmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKK10gZW51bSBJREJUcmFuc2FjdGlvbkR1cmFiaWxp
dHkgeworICAgICJzdHJpY3QiLAorICAgICJyZWxheGVkIiwKKyAgICAiZGVmYXVsdCIKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRl
SURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IGU4ZDUwY2Y4ZTQ4MC4uYjNmZmE2
MWNjMzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcApAQCAtMTE0OSw4ICsx
MTQ5LDExIEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNhY3Rp
b24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBpCiAgICAgICAgICAgICBBU1NFUlQobV9v
cmlnaW5hbERhdGFiYXNlSW5mb0JlZm9yZVZlcnNpb25DaGFuZ2UpOwogICAgICAgICAgICAgbV9k
YXRhYmFzZUluZm8gPSBXVEZNb3ZlKG1fb3JpZ2luYWxEYXRhYmFzZUluZm9CZWZvcmVWZXJzaW9u
Q2hhbmdlKTsKICAgICAgICAgfQotICAgIH0gZWxzZQorICAgIH0gZWxzZSB7CiAgICAgICAgIG1f
b3JpZ2luYWxEYXRhYmFzZUluZm9CZWZvcmVWZXJzaW9uQ2hhbmdlID0gbnVsbHB0cjsKKyAgICAg
ICAgaWYgKHRyYW5zYWN0aW9uLT5kdXJhYmlsaXR5KCkgPT0gSURCVHJhbnNhY3Rpb25EdXJhYmls
aXR5OjpTdHJpY3QpCisgICAgICAgICAgICBtX3NxbGl0ZURCLT5jaGVja3BvaW50KFNRTGl0ZURh
dGFiYXNlOjpDaGVja3BvaW50TW9kZTo6RnVsbCk7CisgICAgfQogCiAgICAgcmV0dXJuIGVycm9y
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uaAppbmRleCA2NGY3MGMzMDE2NzkuLmJkMGZj
YThmOTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKQEAgLTY1LDYgKzY1LDcgQEAg
cHVibGljOgogICAgIHZvaWQgbm90aWZ5Q3Vyc29yc09mQ2hhbmdlcyhpbnQ2NF90IG9iamVjdFN0
b3JlSUQpOwogCiAgICAgSURCVHJhbnNhY3Rpb25Nb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBt
X2luZm8ubW9kZSgpOyB9CisgICAgSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5IGR1cmFiaWxpdHko
KSBjb25zdCB7IHJldHVybiBtX2luZm8uZHVyYWJpbGl0eSgpOyB9CiAgICAgYm9vbCBpblByb2dy
ZXNzKCkgY29uc3Q7CiAKICAgICBTUUxpdGVUcmFuc2FjdGlvbiogc3FsaXRlVHJhbnNhY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX3NxbGl0ZVRyYW5zYWN0aW9uLmdldCgpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25J
bmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFu
c2FjdGlvbkluZm8uY3BwCmluZGV4IDU0ODMxM2NhNTRiMC4uMzVkYWUzOTkyMjI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rp
b25JbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCVHJhbnNhY3Rpb25JbmZvLmNwcApAQCAtMzksMTEgKzM5LDEzIEBAIElEQlRyYW5zYWN0aW9u
SW5mbzo6SURCVHJhbnNhY3Rpb25JbmZvKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgaWRl
bnRpZmllcikKIHsKIH0KIAotSURCVHJhbnNhY3Rpb25JbmZvIElEQlRyYW5zYWN0aW9uSW5mbzo6
Y2xpZW50VHJhbnNhY3Rpb24oY29uc3QgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNv
bm5lY3Rpb25Qcm94eSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIG9iamVjdFN0b3JlcywgSURCVHJh
bnNhY3Rpb25Nb2RlIG1vZGUpCitJREJUcmFuc2FjdGlvbkluZm8gSURCVHJhbnNhY3Rpb25JbmZv
OjpjbGllbnRUcmFuc2FjdGlvbihjb25zdCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYg
Y29ubmVjdGlvblByb3h5LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgb2JqZWN0U3RvcmVzLCBJREJU
cmFuc2FjdGlvbk1vZGUgbW9kZSwgc3RkOjpvcHRpb25hbDxJREJUcmFuc2FjdGlvbkR1cmFiaWxp
dHk+IGR1cmFiaWxpdHkpCiB7CiAgICAgSURCVHJhbnNhY3Rpb25JbmZvIHJlc3VsdCgoSURCUmVz
b3VyY2VJZGVudGlmaWVyKGNvbm5lY3Rpb25Qcm94eSkpKTsKLSAgICByZXN1bHQubV9tb2RlID0g
bW9kZTsKICAgICByZXN1bHQubV9vYmplY3RTdG9yZXMgPSBvYmplY3RTdG9yZXM7CisgICAgcmVz
dWx0Lm1fbW9kZSA9IG1vZGU7CisgICAgaWYgKGR1cmFiaWxpdHkpCisgICAgICAgIHJlc3VsdC5t
X2R1cmFiaWxpdHkgPSAqZHVyYWJpbGl0eTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC02
MSw2ICs2Myw3IEBAIElEQlRyYW5zYWN0aW9uSW5mbyBJREJUcmFuc2FjdGlvbkluZm86OnZlcnNp
b25DaGFuZ2UoY29uc3QgSURCU2VydmVyOjpJREJDb25uZWN0CiBJREJUcmFuc2FjdGlvbkluZm86
OklEQlRyYW5zYWN0aW9uSW5mbyhjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8pCiAgICAg
OiBtX2lkZW50aWZpZXIoaW5mby5pZGVudGlmaWVyKCkpCiAgICAgLCBtX21vZGUoaW5mby5tX21v
ZGUpCisgICAgLCBtX2R1cmFiaWxpdHkoaW5mby5tX2R1cmFiaWxpdHkpCiAgICAgLCBtX25ld1Zl
cnNpb24oaW5mby5tX25ld1ZlcnNpb24pCiAgICAgLCBtX29iamVjdFN0b3JlcyhpbmZvLm1fb2Jq
ZWN0U3RvcmVzKQogewpAQCAtODIsNiArODUsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uSW5mbzo6
aXNvbGF0ZWRDb3B5KGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgc291cmNlLCBJREJUcmFucwog
ewogICAgIGRlc3RpbmF0aW9uLm1faWRlbnRpZmllciA9IHNvdXJjZS5tX2lkZW50aWZpZXIuaXNv
bGF0ZWRDb3B5KCk7CiAgICAgZGVzdGluYXRpb24ubV9tb2RlID0gc291cmNlLm1fbW9kZTsKKyAg
ICBkZXN0aW5hdGlvbi5tX2R1cmFiaWxpdHkgPSBzb3VyY2UubV9kdXJhYmlsaXR5OwogICAgIGRl
c3RpbmF0aW9uLm1fbmV3VmVyc2lvbiA9IHNvdXJjZS5tX25ld1ZlcnNpb247CiAKICAgICBkZXN0
aW5hdGlvbi5tX29iamVjdFN0b3Jlcy5yZXNlcnZlQ2FwYWNpdHkoc291cmNlLm1fb2JqZWN0U3Rv
cmVzLnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmgKaW5kZXggMTEwMzgyNGY3OGJhLi42
YmJhNTg3OTBhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmgKQEAgLTI3LDYgKzI3LDcgQEAK
IAogI2luY2x1ZGUgIklEQkRhdGFiYXNlSW5mby5oIgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRl
bnRpZmllci5oIgorI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5oIgogI2luY2x1
ZGUgIklEQlRyYW5zYWN0aW9uTW9kZS5oIgogI2luY2x1ZGUgIkluZGV4ZWREQi5oIgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ0LDcgKzQ1LDcgQEAgY2xhc3MgSURCQ29ubmVjdGlvblRv
Q2xpZW50OwogY2xhc3MgSURCVHJhbnNhY3Rpb25JbmZvIHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgSURCVHJhbnNhY3Rpb25JbmZvIGNsaWVudFRy
YW5zYWN0aW9uKGNvbnN0IElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIG9iamVjdFN0b3JlcywgSURCVHJhbnNhY3Rpb25Nb2RlKTsKKyAgICBzdGF0
aWMgSURCVHJhbnNhY3Rpb25JbmZvIGNsaWVudFRyYW5zYWN0aW9uKGNvbnN0IElEQkNsaWVudDo6
SURCQ29ubmVjdGlvblByb3h5JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIG9iamVjdFN0b3Jlcywg
SURCVHJhbnNhY3Rpb25Nb2RlLCBzdGQ6Om9wdGlvbmFsPElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0
eT4pOwogICAgIHN0YXRpYyBJREJUcmFuc2FjdGlvbkluZm8gdmVyc2lvbkNoYW5nZShjb25zdCBJ
REJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudCYsIGNvbnN0IElEQkRhdGFiYXNlSW5mbyYg
b3JpZ2luYWxEYXRhYmFzZUluZm8sIHVpbnQ2NF90IG5ld1ZlcnNpb24pOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgSURCVHJhbnNhY3Rpb25JbmZvKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOwpA
QCAtNTksNiArNjAsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKICAgICBJREJU
cmFuc2FjdGlvbk1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsgfQorICAgIElEQlRy
YW5zYWN0aW9uRHVyYWJpbGl0eSBkdXJhYmlsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9kdXJhYmls
aXR5OyB9CiAgICAgdWludDY0X3QgbmV3VmVyc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fbmV3VmVy
c2lvbjsgfQogCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIG9iamVjdFN0b3JlcygpIGNvbnN0
IHsgcmV0dXJuIG1fb2JqZWN0U3RvcmVzOyB9CkBAIC04MSw2ICs4Myw3IEBAIHByaXZhdGU6CiAg
ICAgSURCUmVzb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKIAogICAgIElEQlRyYW5zYWN0
aW9uTW9kZSBtX21vZGUgeyBJREJUcmFuc2FjdGlvbk1vZGU6OlJlYWRvbmx5IH07CisgICAgSURC
VHJhbnNhY3Rpb25EdXJhYmlsaXR5IG1fZHVyYWJpbGl0eSB7IElEQlRyYW5zYWN0aW9uRHVyYWJp
bGl0eTo6RGVmYXVsdCB9OwogICAgIHVpbnQ2NF90IG1fbmV3VmVyc2lvbiB7IDAgfTsKICAgICBW
ZWN0b3I8U3RyaW5nPiBtX29iamVjdFN0b3JlczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0
YWJhc2VJbmZvPiBtX29yaWdpbmFsRGF0YWJhc2VJbmZvOwpAQCAtOTAsNyArOTMsNyBAQCB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBJREJUcmFuc2FjdGlvbkluZm86OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgbV9pZGVudGlmaWVyIDw8IG1f
bmV3VmVyc2lvbiA8PCBtX29iamVjdFN0b3JlczsKLSAgICBlbmNvZGVyIDw8IG1fbW9kZTsKKyAg
ICBlbmNvZGVyIDw8IG1fbW9kZSA8PCBtX2R1cmFiaWxpdHk7CiAKICAgICBlbmNvZGVyIDw8ICEh
bV9vcmlnaW5hbERhdGFiYXNlSW5mbzsKICAgICBpZiAobV9vcmlnaW5hbERhdGFiYXNlSW5mbykK
QEAgLTExMiw2ICsxMTUsOSBAQCBib29sIElEQlRyYW5zYWN0aW9uSW5mbzo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGluZm8ubV9tb2RlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShpbmZvLm1fZHVyYWJpbGl0eSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgIGJvb2wgaGFzT2JqZWN0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzT2JqZWN0
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiZWUyMzY0ZThiYWUu
LjJlYTljYzU2OWNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTMyMTAsNiArMzIxMCw3IEBAIEpTSURC
T2JqZWN0U3RvcmUuY3BwCiBKU0lEQk9wZW5EQlJlcXVlc3QuY3BwCiBKU0lEQlJlcXVlc3QuY3Bw
CiBKU0lEQlRyYW5zYWN0aW9uLmNwcAorSlNJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuY3BwCiBK
U0lEQlRyYW5zYWN0aW9uTW9kZS5jcHAKIEpTSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcAogSlNJ
ZGxlRGVhZGxpbmUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggOWI2MzU4YjFiMGYxLi42OTM5NmI4YjI2MzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4
NDksNiArMjg0OSw3IEBACiAJCTkzNUY0NTQzMEY3QzNCNUYwMEQ3QzFGQiAvKiBKU0xhenlFdmVu
dExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzVGNDU0MTBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5oICovOyB9
OwogCQk5MzVGQkM0NTA5QkEwMEI5MDBFMjMwQjEgLyogRXZlbnRMaXN0ZW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RkJDNDQwOUJBMDBCOTAw
RTIzMEIxIC8qIEV2ZW50TGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5MzVGQkNGMjA5QkExNDNCMDBFMjMwQjEgLyogRXhjZXB0aW9u
Q29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1
RkJDRjEwOUJBMTQzQjAwRTIzMEIxIC8qIEV4Y2VwdGlvbkNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzY1ODNCNzI2QUI5MkI1MDA0RTYx
RjQgLyogSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzY1ODNCNjI2QUI5MTc0MDA0RTYxRjQgLyogSURCVHJh
bnNhY3Rpb25EdXJhYmlsaXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTM3MDkxOEQxNDE2RDg2QjAwNDc3MzMzIC8qIHRleHRBcmVhUmVzaXpl
Q29ybmVyQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM3MDkxOEMxNDE2RDg2QjAwNDc3MzMzIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyQDJ4
LnBuZyAqLzsgfTsKIAkJOTM3N0FCQTAxNURFRkVFRjAwMzFGRDA0IC8qIFBhZ2luYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNzdBQjlGMTVE
RUZFRUYwMDMxRkQwNCAvKiBQYWdpbmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM3RkYzRDUxQTEwMTJENjAwOEVCQTMxIC8qIERpY3Rp
b25hcnlMb29rdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzN0ZGM0Q0MUExMDEyRDYwMDhFQkEzMSAvKiBEaWN0aW9uYXJ5TG9va3VwLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNzA2LDYgKzEx
NzA3LDggQEAKIAkJOTM1RjQ1NDEwRjdDM0I1RjAwRDdDMUZCIC8qIEpTTGF6eUV2ZW50TGlzdGVu
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNMYXp5RXZlbnRMaXN0ZW5l
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzVGQkM0NDA5QkEwMEI5MDBFMjMw
QjEgLyogRXZlbnRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
dmVudExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUZCQ0YxMDlC
QTE0M0IwMEUyMzBCMSAvKiBFeGNlcHRpb25Db2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEV4Y2VwdGlvbkNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM2NTgzQjQyNkFCOENCNDAwNEU2MUY0IC8qIElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM2NTgzQjYyNkFCOTE3NDAwNEU2MUY0IC8qIElE
QlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTM2QjIxRjQxREJCRjgzMDAwNTJFMTE3IC8qIENhbnZhc1BhdGguaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENhbnZh
c1BhdGguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzZERDAzQTA5Q0VBQzI3
MDA1NkFFOEMgLyogUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJhbmdlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM3MDkxOEMxNDE2RDg2QjAwNDc3MzMzIC8q
IHRleHRBcmVhUmVzaXplQ29ybmVyQDJ4LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJ0ZXh0QXJlYVJlc2l6ZUNv
cm5lckAyeC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQ0MzIsNiArMjQ0
MzUsOCBAQAogCQkJCTUxNjQ1QjUwMUI5Rjg4OUIwMEY3ODlDRSAvKiBJREJUcmFuc2FjdGlvbi5j
cHAgKi8sCiAJCQkJNTE2NDVCNTExQjlGODg5QjAwRjc4OUNFIC8qIElEQlRyYW5zYWN0aW9uLmgg
Ki8sCiAJCQkJNTFENzE5QTYxODExMDZFMDAwMTZEQzUxIC8qIElEQlRyYW5zYWN0aW9uLmlkbCAq
LywKKwkJCQk5MzY1ODNCNjI2QUI5MTc0MDA0RTYxRjQgLyogSURCVHJhbnNhY3Rpb25EdXJhYmls
aXR5LmggKi8sCisJCQkJOTM2NTgzQjQyNkFCOENCNDAwNEU2MUY0IC8qIElEQlRyYW5zYWN0aW9u
RHVyYWJpbGl0eS5pZGwgKi8sCiAJCQkJODM4RUY1MzYxREMxNDlEQTAwOEYwQzM5IC8qIElEQlRy
YW5zYWN0aW9uTW9kZS5oICovLAogCQkJCTgzOEVGNTM3MURDMTQ5REEwMDhGMEMzOSAvKiBJREJU
cmFuc2FjdGlvbk1vZGUuaWRsICovLAogCQkJCTUxNjEwM0FEMUNBREI5QTMwMDE2QjRDNyAvKiBJ
REJWYWx1ZS5jcHAgKi8sCkBAIC0zMzEyNyw2ICszMzEzMiw3IEBACiAJCQkJOTMyM0IwNzAyMzA2
MUY5NzAwOTAxQzhCIC8qIElEQlNlcmlhbGl6YXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTg1RkNCQjFCQjRDQkY4MDAxMjg5OEYgLyogSURCU2VydmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTg1RkNBRDFCQjRDNEU4MDAxMjg5OEYgLyogSURCVHJhbnNhY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzNjU4M0I3MjZBQjkyQjUwMDRFNjFGNCAvKiBJREJUcmFuc2FjdGlv
bkR1cmFiaWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOThGN0FEMUJCREQzRUIwMEUyQ0M1
RiAvKiBJREJUcmFuc2FjdGlvbkluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTgzOEVGNTM4MURD
MTQ5RTIwMDhGMEMzOSAvKiBJREJUcmFuc2FjdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxNjEwM0FGMUNBREJBNzcwMDE2QjRDNyAvKiBJREJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAppbmRleCBh
MTExMDI1NjgxZTQuLmRkMzhiYWE3OGI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCkBAIC0xOTIsNiArMTkyLDM1IEBAIHZvaWQgU1FMaXRl
RGF0YWJhc2U6OmVuYWJsZUF1dG9tYXRpY1dBTFRydW5jYXRpb24oKQogICAgIHNxbGl0ZTNfd2Fs
X2hvb2sobV9kYiwgd2FsQXV0b21hdGljVHJ1bmNhdGlvbkhvb2ssIG51bGxwdHIpOwogfQogCitz
dGF0aWMgaW50IGNoZWNrcG9pbnRNb2RlVmFsdWUoU1FMaXRlRGF0YWJhc2U6OkNoZWNrcG9pbnRN
b2RlIG1vZGUpCit7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBTUUxpdGVEYXRhYmFz
ZTo6Q2hlY2twb2ludE1vZGU6OlBhc3NpdmU6CisgICAgICAgIHJldHVybiBTUUxJVEVfQ0hFQ0tQ
T0lOVF9QQVNTSVZFOworICAgIGNhc2UgU1FMaXRlRGF0YWJhc2U6OkNoZWNrcG9pbnRNb2RlOjpG
dWxsOgorICAgICAgICByZXR1cm4gU1FMSVRFX0NIRUNLUE9JTlRfRlVMTDsKKyAgICBjYXNlIFNR
TGl0ZURhdGFiYXNlOjpDaGVja3BvaW50TW9kZTo6UmVzdGFydDoKKyAgICAgICAgcmV0dXJuIFNR
TElURV9DSEVDS1BPSU5UX1JFU1RBUlQ7CisgICAgY2FzZSBTUUxpdGVEYXRhYmFzZTo6Q2hlY2tw
b2ludE1vZGU6OlRydW5jYXRlOgorICAgICAgICByZXR1cm4gU1FMSVRFX0NIRUNLUE9JTlRfVFJV
TkNBVEU7CisgICAgfQorfQorCit2b2lkIFNRTGl0ZURhdGFiYXNlOjpjaGVja3BvaW50KENoZWNr
cG9pbnRNb2RlIG1vZGUpCit7CisgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0Nv
dW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOworICAgIGludCByZXN1bHQgPSBzcWxpdGUzX3dhbF9j
aGVja3BvaW50X3YyKG1fZGIsIG51bGxwdHIsIGNoZWNrcG9pbnRNb2RlVmFsdWUobW9kZSksIG51
bGxwdHIsIG51bGxwdHIpOworICAgIGlmIChyZXN1bHQgPT0gU1FMSVRFX09LKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAocmVzdWx0ID09IFNRTElURV9CVVNZKSB7CisgICAgICAgIExPRyhT
UUxEYXRhYmFzZSwgIlNRTGl0ZSBkYXRhYmFzZSBjaGVja3BvaW50IGlzIGJsb2NrZWQiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGZh
aWxlZCB0byBjaGVja3BvaW50OiAlcyIsIGxhc3RFcnJvck1zZygpKTsKK30KKwogdm9pZCBTUUxp
dGVEYXRhYmFzZTo6dXNlV0FMSm91cm5hbE1vZGUoKQogewogICAgIG1fdXNlV0FMID0gdHJ1ZTsK
QEAgLTIwNywxNSArMjM2LDcgQEAgdm9pZCBTUUxpdGVEYXRhYmFzZTo6dXNlV0FMSm91cm5hbE1v
ZGUoKQogICAgICAgICAgICAgTE9HX0VSUk9SKCJTUUxpdGUgZGF0YWJhc2UgZmFpbGVkIHRvIHNl
dCBqb3VybmFsX21vZGUgdG8gV0FMLCBlcnJvcjogJXMiLCBsYXN0RXJyb3JNc2coKSk7CiAgICAg
fQogCi0gICAgewotICAgICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRl
ciB0cmFuc2FjdGlvbkNvdW50ZXI7Ci0gICAgICAgIGF1dG8gY2hlY2twb2ludFN0YXRlbWVudCA9
IHByZXBhcmVTdGF0ZW1lbnQoIlBSQUdNQSB3YWxfY2hlY2twb2ludChUUlVOQ0FURSkiX3MpOwot
ICAgICAgICBpZiAoY2hlY2twb2ludFN0YXRlbWVudCAmJiBjaGVja3BvaW50U3RhdGVtZW50LT5z
dGVwKCkgPT0gU1FMSVRFX1JPVykgewotICAgICAgICAgICAgaWYgKGNoZWNrcG9pbnRTdGF0ZW1l
bnQtPmNvbHVtbkludCgwKSkKLSAgICAgICAgICAgICAgICBMT0coU1FMRGF0YWJhc2UsICJTUUxp
dGUgZGF0YWJhc2UgY2hlY2twb2ludCBpcyBibG9ja2VkIik7Ci0gICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgTE9HX0VSUk9SKCJTUUxpdGUgZGF0YWJhc2UgZmFpbGVkIHRvIGNoZWNrcG9pbnQ6
ICVzIiwgbGFzdEVycm9yTXNnKCkpOwotICAgIH0KKyAgICBjaGVja3BvaW50KENoZWNrcG9pbnRN
b2RlOjpUcnVuY2F0ZSk7CiB9CiAKIHZvaWQgU1FMaXRlRGF0YWJhc2U6OmNsb3NlKFNob3VsZFNl
dEVycm9yU3RhdGUgc2hvdWxkU2V0RXJyb3JTdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKaW5kZXggNGIyMmM4ZmU2OGUzLi4zMGY0ZDMyZjFkZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCkBAIC05
Nyw2ICs5Nyw4IEBAIHB1YmxpYzoKICAgICAvLyBTUUxJVEVfQ0hFQ0tQT0lOVF9UUlVOQ0FURSB3
aWxsIGludm9rZSB0aGUgYnVzeSBoYW5kbGVyIGlmIGl0IGNhbid0IGFjcXVpcmUgdGhlIG5lY2Vz
c2FyeQogICAgIC8vIGxvY2tzLCB3aGljaCBjYW4gbGVhZCB0byB1bmludGVuZGVkIGRlbGF5cy4K
ICAgICB2b2lkIGVuYWJsZUF1dG9tYXRpY1dBTFRydW5jYXRpb24oKTsKKyAgICBlbnVtIGNsYXNz
IENoZWNrcG9pbnRNb2RlIDogdWludDhfdCB7IFBhc3NpdmUsIEZ1bGwsIFJlc3RhcnQsIFRydW5j
YXRlIH07CisgICAgdm9pZCBjaGVja3BvaW50KENoZWNrcG9pbnRNb2RlKTsKIAogICAgIC8vIEdl
dHMvc2V0cyB0aGUgbWF4aW11bSBzaXplIGluIGJ5dGVzCiAgICAgLy8gRGVwZW5kaW5nIG9uIHBl
ci1kYXRhYmFzZSBhdHRyaWJ1dGVzLCB0aGUgc2l6ZSB3aWxsIG9ubHkgYmUgc2V0dGFibGUgaW4g
dW5pdHMgdGhhdCBhcmUgdGhlIHBhZ2Ugc2l6ZSBvZiB0aGUgZGF0YWJhc2UsIHdoaWNoIGlzIGVz
dGFibGlzaGVkIGF0IGNyZWF0aW9uCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434492</attachid>
            <date>2021-07-28 20:04:23 -0700</date>
            <delta_ts>2021-07-28 21:04:27 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228289-20210728200422.patch</filename>
            <type>text/plain</type>
            <size>41719</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY1NzMwOWNiMjZjMzY4
MmEyMjZlZmU4ZjU0Y2U3N2E5ZGFiMDExYi4uMjJiY2M2M2NmZWQxNDFjNjY0N2Q0MzhlNWVmYmY5
NDY4YzI3NzAzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTA3LTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBJREJUcmFu
c2FjdGlvbi5kdXJhYmlsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjgyODkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKwor
ICAgICAgICBTcGVjOiBodHRwczovL3d3dy53My5vcmcvVFIvSW5kZXhlZERCLyNkb20taWRidHJh
bnNhY3Rpb24tZHVyYWJpbGl0eQorICAgICAgICAgICAgICBodHRwczovL3d3dy53My5vcmcvVFIv
SW5kZXhlZERCLyNkaWN0ZGVmLWlkYnRyYW5zYWN0aW9ub3B0aW9ucworCisgICAgICAgIElEQlRy
YW5zYWN0aW9uLmR1cmFiaWxpdHkgZ2l2ZXMgYSBoaW50IGFib3V0IGR1cmFiaWxpdHkgb2YgYSB0
cmFuc2FjdGlvbi4gSWYgaXQncyBzdHJpY3QsIGJhY2tlbmQgd291bGQgdHJ5CisgICAgICAgIHN5
bmNpbmcgZGF0YSB0byBkYXRhYmFzZSBmaWxlIGFmdGVyIHRyYW5zYWN0aW9uIGNvbW1pdCwgd2hp
Y2ggZW5mb3JjZXMgZHVyYWJpbGl0eS4gSWYgaXQncyByZWxheGVkLCBpdCBtZWFucyAKKyAgICAg
ICAgZGF0YSBtYXkgc3RheSBpbiB0aGUgT1MgYnVmZmVyIHNvbWUgdGltZSBhZnRlciB0cmFuc2Fj
dGlvbiBjb21taXQsIHdoaWNoIGdpdmVzIGJldHRlciBwZXJmb3JtYW5jZS4gRmlyZWZveCBhbmQg
CisgICAgICAgIENocm9tZSBhbHJlYWR5IGltcGxlbWVudGVkIGR1cmFiaWxpdHkuIFRoZXkgaGF2
ZSBkaWZmZXJlbnQgd2F5cyBvZiBzZXR0aW5nIGR1cmFiaWxpdHksIGFuZCB3ZSBjaG9vc2UgdG8g
dXNlCisgICAgICAgIFRyYW5zYWN0aW9uT3B0aW9ucyBhcyBzcGVjLgorCisgICAgICAgIFJlYmFz
ZWxpbmVkIGV4aXN0aW5nIHRlc3RzLgorICAgICAgICBOZXcgdGVzdHM6IHN0b3JhZ2UvaW5kZXhl
ZGRiL2lkYnRyYW5zYWN0aW9uLWR1cmFiaWxpdHktcHJpdmF0ZS5odG1sCisgICAgICAgICAgICAg
ICAgICAgc3RvcmFnZS9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0eS5odG1sCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2UuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkR1cmFiaWxpdHku
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURC
QmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURC
QmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpkdXJhYmlsaXR5IGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uSW5mbzo6Y2xpZW50VHJhbnNhY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25JbmZvOjpJREJUcmFuc2FjdGlvbkluZm8p
OgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25JbmZvOjppc29sYXRlZENvcHkpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uSW5mbzo6ZHVyYWJpbGl0eSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkluZm86OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkluZm86OmRlY29kZSk6CisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjaGVja3BvaW50TW9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURh
dGFiYXNlOjpjaGVja3BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjp1
c2VXQUxKb3VybmFsTW9kZSk6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
Lmg6CisKIDIwMjEtMDctMjggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAg
ICAgICAgSURCRmFjdG9yeS5kYXRhYmFzZXMgc2hvdWxkIG5vdCByZXR1cm4gZGF0YWJhc2VzIHdp
dGggaW52YWxpZCB2ZXJzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGViZDI4MWMwYjMxZWFk
NzY4Mzg2OTcyY2IwYTUxMzA5YmYzMmNlZTkuLmM1NGEyODI2ZjcwMWY0MmFmZjQyNjJmM2VlNWJk
NDliNGU3ZWM0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zMDMsNiArMzAzLDcgQEAgc2V0
KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaWRsCiAgICAg
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsCisgICAgTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uTW9kZS5pZGwKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hh
bmdlRXZlbnQuaWRsCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvV2luZG93T3JXb3JrZXJHbG9iYWxT
Y29wZStJbmRleGVkRGF0YWJhc2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA5Nzc1ODliZDI4NzQ0NmY5MDM0YjIyY2ZlMjZiMTky
NTQxNGFjOTU3Li5iYzMxNjg3ZjYwZGJlMGE4OTQ2NTQ1OGM1MzMzYmE0ZDM4YjExMGRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE1
MSw2ICsxNTEsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RT
dG9yZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVl
c3QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsCiskKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaWRs
CiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbk1vZGUuaWRs
CiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQu
aWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2luZGV4ZWRkYi9XaW5kb3dPcldvcmtlckdsb2Jh
bFNjb3BlK0luZGV4ZWREYXRhYmFzZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMjZmNDU3ZmE1ZTI5MDU0MWIzNjZiYWJlN2Vk
NTQ0NGE3Mzg3ZDYyNS4uNDJiZTU3M2YzM2Q5YjJiNGY3NDE4MGIxNDEyMDBmOWIyN2UxZWI5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QK
QEAgLTExNjcsNiArMTE2Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTSURCUmVxdWVzdC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTSURCUmVxdWVzdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lEQlRyYW5zYWN0aW9uLmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJUcmFuc2FjdGlvbi5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0lEQlRyYW5zYWN0aW9uRHVy
YWJpbGl0eS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSURCVHJhbnNhY3Rpb25Nb2RlLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJUcmFuc2FjdGlvbk1vZGUuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJREJWZXJzaW9u
Q2hhbmdlRXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBlYmExZjE3
MDBlMTI1YWM4YTEwOGMzY2QxMGY1ODA1YmE5ZmVlZGQxLi41Y2NhZWVhMzBkMGViNjJjMWEwMTRl
OTRjOTIzMGYzMTAzM2MzMjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE3
Nyw2ICsxNzcsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb25Nb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvaW5kZXhlZGRiL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUrSW5kZXhlZERhdGFiYXNl
LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAzYjFiYjU1MGY1NjgxYTRmNWRkMjM2MGExNDE4
OWE4ZWNhZDA1N2I5Li4yMzAzODc3OTk4OTBjZTc5MzQwY2I4YmU3NjhhYmEwNzJkMjY3NjAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTY2LDYgKzY2LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3Qu
aAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAogICAgIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLmgKKyAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bkR1cmFiaWxpdHkuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uTW9kZS5o
CiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCVmFsdWUuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRi
L0luZGV4ZWREQi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZS5jcHAKaW5kZXggYTRiZDU0MjI0N2VjY2MxNmIyNjdiMjI3OTg2M2E5ZjM1NGUxM2Ew
Ni4uYTdiM2RjZjU5MjRkZjIzZDk3OTc4YThjZTkxMDEwYjI5YTA5MGQ5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAtMTYyLDcg
KzE2Miw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxJREJPYmplY3RTdG9yZT4+IElEQkRhdGFiYXNlOjpj
cmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hCiAgICAgcmV0dXJuIG1fdmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uLT5jcmVhdGVPYmplY3RTdG9yZShpbmZvKTsKIH0KIAotRXhjZXB0aW9u
T3I8UmVmPElEQlRyYW5zYWN0aW9uPj4gSURCRGF0YWJhc2U6OnRyYW5zYWN0aW9uKFN0cmluZ09y
VmVjdG9yT2ZTdHJpbmdzJiYgc3RvcmVOYW1lcywgSURCVHJhbnNhY3Rpb25Nb2RlIG1vZGUpCitF
eGNlcHRpb25PcjxSZWY8SURCVHJhbnNhY3Rpb24+PiBJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24o
U3RyaW5nT3JWZWN0b3JPZlN0cmluZ3MmJiBzdG9yZU5hbWVzLCBJREJUcmFuc2FjdGlvbk1vZGUg
bW9kZSwgVHJhbnNhY3Rpb25PcHRpb25zIG9wdGlvbnMpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwg
IklEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbiIpOwogCkBAIC0yMDAsNyArMjAwLDcgQEAgRXhjZXB0
aW9uT3I8UmVmPElEQlRyYW5zYWN0aW9uPj4gSURCRGF0YWJhc2U6OnRyYW5zYWN0aW9uKFN0cmlu
Z09yVmVjdG9yT2ZTdHJpbmcKICAgICBpZiAobW9kZSAhPSBJREJUcmFuc2FjdGlvbk1vZGU6OlJl
YWRvbmx5ICYmIG1vZGUgIT0gSURCVHJhbnNhY3Rpb25Nb2RlOjpSZWFkd3JpdGUpCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKIAotICAgIGF1dG8gaW5mbyA9IElEQlRy
YW5zYWN0aW9uSW5mbzo6Y2xpZW50VHJhbnNhY3Rpb24obV9jb25uZWN0aW9uUHJveHkuZ2V0KCks
IG9iamVjdFN0b3JlcywgbW9kZSk7CisgICAgYXV0byBpbmZvID0gSURCVHJhbnNhY3Rpb25JbmZv
OjpjbGllbnRUcmFuc2FjdGlvbihtX2Nvbm5lY3Rpb25Qcm94eS5nZXQoKSwgb2JqZWN0U3RvcmVz
LCBtb2RlLCBvcHRpb25zLmR1cmFiaWxpdHkpOwogCiAgICAgTE9HKEluZGV4ZWREQk9wZXJhdGlv
bnMsICJJREIgY3JlYXRpbmcgdHJhbnNhY3Rpb246ICVzIiwgaW5mby5sb2dnaW5nU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAgICAgYXV0byB0cmFuc2FjdGlvbiA9IElEQlRyYW5zYWN0aW9uOjpj
cmVhdGUoKnRoaXMsIGluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlLmgKaW5kZXggMzM4ZjMwZTY3ZTQ5OTZmMmM3ZGUxMTJmN2Q3YWExNGIzZGM0
NjFmZi4uNjE5ZTljOTRhMmQzNTk4YmIyYTI4NDc5ZmMwMzA3MjA3ODE3NGEwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCkBAIC02Myw3ICs2
MywxMCBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQk9iamVjdFN0b3JlPj4gY3Jl
YXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBPYmplY3RTdG9yZVBhcmFtZXRlcnMm
Jik7CiAKICAgICB1c2luZyBTdHJpbmdPclZlY3Rvck9mU3RyaW5ncyA9IFdURjo6VmFyaWFudDxT
dHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKLSAgICBFeGNlcHRpb25PcjxSZWY8SURCVHJhbnNhY3Rp
b24+PiB0cmFuc2FjdGlvbihTdHJpbmdPclZlY3Rvck9mU3RyaW5ncyYmIHN0b3JlTmFtZXMsIElE
QlRyYW5zYWN0aW9uTW9kZSk7CisgICAgc3RydWN0IFRyYW5zYWN0aW9uT3B0aW9ucyB7CisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8SURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5PiBkdXJhYmlsaXR5Owor
ICAgIH07CisgICAgRXhjZXB0aW9uT3I8UmVmPElEQlRyYW5zYWN0aW9uPj4gdHJhbnNhY3Rpb24o
U3RyaW5nT3JWZWN0b3JPZlN0cmluZ3MmJiBzdG9yZU5hbWVzLCBJREJUcmFuc2FjdGlvbk1vZGUs
IFRyYW5zYWN0aW9uT3B0aW9ucyA9IHsgfSk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gZGVsZXRl
T2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIGNsb3NlKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbAppbmRl
eCAzNmRiZGJjNzdjMjBmNzk5OTM2ODg3MDliMzgwZDYwNmQ4MGRhNzEwLi4zNmNhMzM0MGIwNGFh
MjI2Njg2ZDIyZGZiMWEzYmVkNjg4ZWQ0ZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaWRsCkBAIC0zMyw4ICszMyw3IEBACiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmdMaXN0IG9iamVjdFN0b3JlTmFtZXM7CiAKLSAgICAvLyBGSVhN
RTogJ3RyYW5zYWN0aW9uJyBzaG91bGQgYWxzbyB0YWtlIGFuIG9wdGlvbmFsICdJREJUcmFuc2Fj
dGlvbk9wdGlvbnMnIGFyZ3VtZW50LgotICAgIFtOZXdPYmplY3RdIElEQlRyYW5zYWN0aW9uIHRy
YW5zYWN0aW9uKChET01TdHJpbmcgb3Igc2VxdWVuY2U8RE9NU3RyaW5nPikgc3RvcmVOYW1lcywg
b3B0aW9uYWwgSURCVHJhbnNhY3Rpb25Nb2RlIG1vZGUgPSAicmVhZG9ubHkiKTsKKyAgICBbTmV3
T2JqZWN0XSBJREJUcmFuc2FjdGlvbiB0cmFuc2FjdGlvbigoRE9NU3RyaW5nIG9yIHNlcXVlbmNl
PERPTVN0cmluZz4pIHN0b3JlTmFtZXMsIG9wdGlvbmFsIElEQlRyYW5zYWN0aW9uTW9kZSBtb2Rl
ID0gInJlYWRvbmx5Iiwgb3B0aW9uYWwgSURCVHJhbnNhY3Rpb25PcHRpb25zIG9wdGlvbnMpOwog
ICAgIHVuZGVmaW5lZCBjbG9zZSgpOwogCiAgICAgW05ld09iamVjdF0gSURCT2JqZWN0U3RvcmUg
Y3JlYXRlT2JqZWN0U3RvcmUoRE9NU3RyaW5nIG5hbWUsIG9wdGlvbmFsIElEQk9iamVjdFN0b3Jl
UGFyYW1ldGVycyBwYXJhbWV0ZXJzKTsKQEAgLTU1LDMgKzU0LDcgQEAgZGljdGlvbmFyeSBJREJP
YmplY3RTdG9yZVBhcmFtZXRlcnMgewogICAgIChET01TdHJpbmcgb3Igc2VxdWVuY2U8RE9NU3Ry
aW5nPik/IGtleVBhdGggPSBudWxsOwogICAgIGJvb2xlYW4gYXV0b0luY3JlbWVudCA9IGZhbHNl
OwogfTsKKworZGljdGlvbmFyeSBJREJUcmFuc2FjdGlvbk9wdGlvbnMgeworICAgIElEQlRyYW5z
YWN0aW9uRHVyYWJpbGl0eSBkdXJhYmlsaXR5ID0gImRlZmF1bHQiOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IDc3MTA4
NmQzNTNlYmM1ZTBjMmI2MzNiYjNiYTlmYjJmZjJmOWUzMDMuLjU3NmRjZGI3ZTFiZGIyYTI2ZDA4
YWRjZDMwYTk1MDEwMWU1MjE0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gSURCVHJhbnNhY3Rpb24gSURMCiAgICAgUmVmPERPTVN0cmluZ0xpc3Q+IG9iamVjdFN0b3Jl
TmFtZXMoKSBjb25zdDsKICAgICBJREJUcmFuc2FjdGlvbk1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0
dXJuIG1faW5mby5tb2RlKCk7IH0KKyAgICBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkgZHVyYWJp
bGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5kdXJhYmlsaXR5KCk7IH0KICAgICBJREJEYXRh
YmFzZSogZGIoKTsKICAgICBET01FeGNlcHRpb24qIGVycm9yKCkgY29uc3Q7CiAgICAgRXhjZXB0
aW9uT3I8UmVmPElEQk9iamVjdFN0b3JlPj4gb2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1l
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uLmlkbAppbmRleCAzNzcxODBmYzgyNTc5MmZhMWQ0MGVlZDIzZTIxMWU1ZDkyMTg2Zjk5Li40
MWNmYzczNDViMTQ1NDg1MjJmYmMyOTU0M2I1YzUxZGRiNmQ0YTFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsCkBAIC0zMiw4
ICszMiw3IEBACiBdIGludGVyZmFjZSBJREJUcmFuc2FjdGlvbiA6IEV2ZW50VGFyZ2V0IHsKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCBvYmplY3RTdG9yZU5hbWVzOwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJUcmFuc2FjdGlvbk1vZGUgbW9kZTsKLSAgICAvLyBJbXBs
ZW1lbnQgJ2R1cmFiaWxpdHknLgotICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJUcmFuc2Fj
dGlvbkR1cmFiaWxpdHkgZHVyYWJpbGl0eTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCVHJh
bnNhY3Rpb25EdXJhYmlsaXR5IGR1cmFiaWxpdHk7CiAgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBJREJEYXRhYmFzZSBkYjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NRXhj
ZXB0aW9uPyBlcnJvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMmE0NjYz
YmY1YzkxYzRmZTY5ZjZlMWUxZTJkYmYwYTUwZjcxMDMyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmgK
QEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIElE
QlRyYW5zYWN0aW9uRHVyYWJpbGl0eSA6IHVpbnQ4X3QgeworICAgIFN0cmljdCwKKyAgICBSZWxh
eGVkLAorICAgIERlZmF1bHQKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNw
YWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6SURCVHJh
bnNhY3Rpb25EdXJhYmlsaXR5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAg
ICAgICAgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LAorICAgICAgICBXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHk6OlN0cmljdCwKKyAgICAgICAgV2ViQ29yZTo6SURC
VHJhbnNhY3Rpb25EdXJhYmlsaXR5OjpSZWxheGVkLAorICAgICAgICBXZWJDb3JlOjpJREJUcmFu
c2FjdGlvbkR1cmFiaWxpdHk6OkRlZmF1bHQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkR1cmFiaWxpdHkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjYyYjllMmJmYzVkYjM0
NjUyMzZmNTdhZGFjMTc4ODViY2MxN2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmlkbApAQCAtMCww
ICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1sKK10gZW51bSBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkgeworICAgICJzdHJpY3QiLAorICAg
ICJyZWxheGVkIiwKKyAgICAiZGVmYXVsdCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3Rv
cmUuY3BwCmluZGV4IGU4ZDUwY2Y4ZTQ4MDgwZGQzNDU0ODZmOTVmYzRmNTFiMTFlNjBjMTEuLmIz
ZmZhNjFjYzM2NmJiMzczMzYxZDYyMzI0ZGJjNzUwMGEyNWVlYWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJ
REJCYWNraW5nU3RvcmUuY3BwCkBAIC0xMTQ5LDggKzExNDksMTEgQEAgSURCRXJyb3IgU1FMaXRl
SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIGkKICAgICAgICAgICAgIEFTU0VSVChtX29yaWdpbmFsRGF0YWJhc2VJbmZvQmVmb3Jl
VmVyc2lvbkNoYW5nZSk7CiAgICAgICAgICAgICBtX2RhdGFiYXNlSW5mbyA9IFdURk1vdmUobV9v
cmlnaW5hbERhdGFiYXNlSW5mb0JlZm9yZVZlcnNpb25DaGFuZ2UpOwogICAgICAgICB9Ci0gICAg
fSBlbHNlCisgICAgfSBlbHNlIHsKICAgICAgICAgbV9vcmlnaW5hbERhdGFiYXNlSW5mb0JlZm9y
ZVZlcnNpb25DaGFuZ2UgPSBudWxscHRyOworICAgICAgICBpZiAodHJhbnNhY3Rpb24tPmR1cmFi
aWxpdHkoKSA9PSBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHk6OlN0cmljdCkKKyAgICAgICAgICAg
IG1fc3FsaXRlREItPmNoZWNrcG9pbnQoU1FMaXRlRGF0YWJhc2U6OkNoZWNrcG9pbnRNb2RlOjpG
dWxsKTsKKyAgICB9CiAKICAgICByZXR1cm4gZXJyb3I7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2Fj
dGlvbi5oCmluZGV4IDY0ZjcwYzMwMTY3OTgwMjcyY2RkYWIyYzQ0Mjc5MDNmODlhYTU2M2MuLmJk
MGZjYThmOTcxMGQzZjc3YzUyNzYyMTEzODIwY2RkNDJmYjA4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJU
cmFuc2FjdGlvbi5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG5vdGlmeUN1
cnNvcnNPZkNoYW5nZXMoaW50NjRfdCBvYmplY3RTdG9yZUlEKTsKIAogICAgIElEQlRyYW5zYWN0
aW9uTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvLm1vZGUoKTsgfQorICAgIElEQlRy
YW5zYWN0aW9uRHVyYWJpbGl0eSBkdXJhYmlsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9pbmZvLmR1
cmFiaWxpdHkoKTsgfQogICAgIGJvb2wgaW5Qcm9ncmVzcygpIGNvbnN0OwogCiAgICAgU1FMaXRl
VHJhbnNhY3Rpb24qIHNxbGl0ZVRyYW5zYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zcWxpdGVU
cmFuc2FjdGlvbi5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmNwcAppbmRleCA1NDgz
MTNjYTU0YjA2OWNmMWJiYzU1ZDQ2ZjVlMzY1ZDE2MDYwZDY0Li4zNWRhZTM5OTIyMjcyNDM0MjE0
NzYwN2ZiODQzNWJkMTg3YzQ5NjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmNwcApAQCAt
MzksMTEgKzM5LDEzIEBAIElEQlRyYW5zYWN0aW9uSW5mbzo6SURCVHJhbnNhY3Rpb25JbmZvKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKIH0KIAotSURCVHJhbnNh
Y3Rpb25JbmZvIElEQlRyYW5zYWN0aW9uSW5mbzo6Y2xpZW50VHJhbnNhY3Rpb24oY29uc3QgSURC
Q2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIG9iamVjdFN0b3JlcywgSURCVHJhbnNhY3Rpb25Nb2RlIG1vZGUpCitJREJUcmFu
c2FjdGlvbkluZm8gSURCVHJhbnNhY3Rpb25JbmZvOjpjbGllbnRUcmFuc2FjdGlvbihjb25zdCBJ
REJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgb2JqZWN0U3RvcmVzLCBJREJUcmFuc2FjdGlvbk1vZGUgbW9kZSwgc3RkOjpv
cHRpb25hbDxJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHk+IGR1cmFiaWxpdHkpCiB7CiAgICAgSURC
VHJhbnNhY3Rpb25JbmZvIHJlc3VsdCgoSURCUmVzb3VyY2VJZGVudGlmaWVyKGNvbm5lY3Rpb25Q
cm94eSkpKTsKLSAgICByZXN1bHQubV9tb2RlID0gbW9kZTsKICAgICByZXN1bHQubV9vYmplY3RT
dG9yZXMgPSBvYmplY3RTdG9yZXM7CisgICAgcmVzdWx0Lm1fbW9kZSA9IG1vZGU7CisgICAgaWYg
KGR1cmFiaWxpdHkpCisgICAgICAgIHJlc3VsdC5tX2R1cmFiaWxpdHkgPSAqZHVyYWJpbGl0eTsK
IAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC02MSw2ICs2Myw3IEBAIElEQlRyYW5zYWN0aW9u
SW5mbyBJREJUcmFuc2FjdGlvbkluZm86OnZlcnNpb25DaGFuZ2UoY29uc3QgSURCU2VydmVyOjpJ
REJDb25uZWN0CiBJREJUcmFuc2FjdGlvbkluZm86OklEQlRyYW5zYWN0aW9uSW5mbyhjb25zdCBJ
REJUcmFuc2FjdGlvbkluZm8mIGluZm8pCiAgICAgOiBtX2lkZW50aWZpZXIoaW5mby5pZGVudGlm
aWVyKCkpCiAgICAgLCBtX21vZGUoaW5mby5tX21vZGUpCisgICAgLCBtX2R1cmFiaWxpdHkoaW5m
by5tX2R1cmFiaWxpdHkpCiAgICAgLCBtX25ld1ZlcnNpb24oaW5mby5tX25ld1ZlcnNpb24pCiAg
ICAgLCBtX29iamVjdFN0b3JlcyhpbmZvLm1fb2JqZWN0U3RvcmVzKQogewpAQCAtODIsNiArODUs
NyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uSW5mbzo6aXNvbGF0ZWRDb3B5KGNvbnN0IElEQlRyYW5z
YWN0aW9uSW5mbyYgc291cmNlLCBJREJUcmFucwogewogICAgIGRlc3RpbmF0aW9uLm1faWRlbnRp
ZmllciA9IHNvdXJjZS5tX2lkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCk7CiAgICAgZGVzdGluYXRp
b24ubV9tb2RlID0gc291cmNlLm1fbW9kZTsKKyAgICBkZXN0aW5hdGlvbi5tX2R1cmFiaWxpdHkg
PSBzb3VyY2UubV9kdXJhYmlsaXR5OwogICAgIGRlc3RpbmF0aW9uLm1fbmV3VmVyc2lvbiA9IHNv
dXJjZS5tX25ld1ZlcnNpb247CiAKICAgICBkZXN0aW5hdGlvbi5tX29iamVjdFN0b3Jlcy5yZXNl
cnZlQ2FwYWNpdHkoc291cmNlLm1fb2JqZWN0U3RvcmVzLnNpemUoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZv
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rp
b25JbmZvLmgKaW5kZXggMTEwMzgyNGY3OGJhOWZmODVlY2ZiMjI5ZDc3MWFhNzM1ZGUwYzM4Mi4u
NmJiYTU4NzkwYTY3OWQ3NDUwODlhZWNjZTFhY2Q3M2MzNDE1MjIwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2Fj
dGlvbkluZm8uaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VJbmZv
LmgiCiAjaW5jbHVkZSAiSURCUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiSURCVHJh
bnNhY3Rpb25EdXJhYmlsaXR5LmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25Nb2RlLmgiCiAj
aW5jbHVkZSAiSW5kZXhlZERCLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDQsNyAr
NDUsNyBAQCBjbGFzcyBJREJDb25uZWN0aW9uVG9DbGllbnQ7CiBjbGFzcyBJREJUcmFuc2FjdGlv
bkluZm8gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRp
YyBJREJUcmFuc2FjdGlvbkluZm8gY2xpZW50VHJhbnNhY3Rpb24oY29uc3QgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgb2JqZWN0U3RvcmVzLCBJ
REJUcmFuc2FjdGlvbk1vZGUpOworICAgIHN0YXRpYyBJREJUcmFuc2FjdGlvbkluZm8gY2xpZW50
VHJhbnNhY3Rpb24oY29uc3QgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgb2JqZWN0U3RvcmVzLCBJREJUcmFuc2FjdGlvbk1vZGUsIHN0ZDo6b3B0
aW9uYWw8SURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5Pik7CiAgICAgc3RhdGljIElEQlRyYW5zYWN0
aW9uSW5mbyB2ZXJzaW9uQ2hhbmdlKGNvbnN0IElEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xp
ZW50JiwgY29uc3QgSURCRGF0YWJhc2VJbmZvJiBvcmlnaW5hbERhdGFiYXNlSW5mbywgdWludDY0
X3QgbmV3VmVyc2lvbik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBJREJUcmFuc2FjdGlvbkluZm8o
Y29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJik7CkBAIC01OSw2ICs2MCw3IEBAIHB1YmxpYzoKICAg
ICBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX2lkZW50aWZpZXI7IH0KIAogICAgIElEQlRyYW5zYWN0aW9uTW9kZSBtb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9tb2RlOyB9CisgICAgSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5IGR1cmFiaWxp
dHkoKSBjb25zdCB7IHJldHVybiBtX2R1cmFiaWxpdHk7IH0KICAgICB1aW50NjRfdCBuZXdWZXJz
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9uZXdWZXJzaW9uOyB9CiAKICAgICBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgb2JqZWN0U3RvcmVzKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RTdG9yZXM7IH0K
QEAgLTgxLDYgKzgzLDcgQEAgcHJpdmF0ZToKICAgICBJREJSZXNvdXJjZUlkZW50aWZpZXIgbV9p
ZGVudGlmaWVyOwogCiAgICAgSURCVHJhbnNhY3Rpb25Nb2RlIG1fbW9kZSB7IElEQlRyYW5zYWN0
aW9uTW9kZTo6UmVhZG9ubHkgfTsKKyAgICBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkgbV9kdXJh
YmlsaXR5IHsgSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5OjpEZWZhdWx0IH07CiAgICAgdWludDY0
X3QgbV9uZXdWZXJzaW9uIHsgMCB9OwogICAgIFZlY3RvcjxTdHJpbmc+IG1fb2JqZWN0U3RvcmVz
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJEYXRhYmFzZUluZm8+IG1fb3JpZ2luYWxEYXRhYmFz
ZUluZm87CkBAIC05MCw3ICs5Myw3IEBAIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIElE
QlRyYW5zYWN0aW9uSW5mbzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAg
ZW5jb2RlciA8PCBtX2lkZW50aWZpZXIgPDwgbV9uZXdWZXJzaW9uIDw8IG1fb2JqZWN0U3RvcmVz
OwotICAgIGVuY29kZXIgPDwgbV9tb2RlOworICAgIGVuY29kZXIgPDwgbV9tb2RlIDw8IG1fZHVy
YWJpbGl0eTsKIAogICAgIGVuY29kZXIgPDwgISFtX29yaWdpbmFsRGF0YWJhc2VJbmZvOwogICAg
IGlmIChtX29yaWdpbmFsRGF0YWJhc2VJbmZvKQpAQCAtMTEyLDYgKzExNSw5IEBAIGJvb2wgSURC
VHJhbnNhY3Rpb25JbmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSURCVHJhbnNhY3Rpb25J
bmZvJiBpbmZvKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5tX21vZGUpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubV9kdXJhYmls
aXR5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgYm9vbCBoYXNPYmplY3Q7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShoYXNPYmplY3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IGJlZTIzNjRlOGJhZThhMGU5ODUyZDZjNDIzZGQxOWNhMjYwYWM0NjIu
LjJlYTljYzU2OWNmNDVkNWY0Mjg4ZTMwZThiNGYzZmEzYjYwODBiMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC0zMjEwLDYgKzMyMTAsNyBAQCBKU0lEQk9iamVjdFN0b3JlLmNwcAogSlNJREJPcGVuREJS
ZXF1ZXN0LmNwcAogSlNJREJSZXF1ZXN0LmNwcAogSlNJREJUcmFuc2FjdGlvbi5jcHAKK0pTSURC
VHJhbnNhY3Rpb25EdXJhYmlsaXR5LmNwcAogSlNJREJUcmFuc2FjdGlvbk1vZGUuY3BwCiBKU0lE
QlZlcnNpb25DaGFuZ2VFdmVudC5jcHAKIEpTSWRsZURlYWRsaW5lLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDliNjM1OGIx
YjBmMTYxYjY2ZTc3N2E5MWRiNGM3NmRkMWY2ZjZkZWIuLjY5Mzk2YjhiMjYzMWUxOGE0YWM3ZWMx
Mzk5ZTE2OTc4ZmQ0MDAyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4NDksNiArMjg0OSw3IEBACiAJCTkzNUY0NTQzMEY3
QzNCNUYwMEQ3QzFGQiAvKiBKU0xhenlFdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVGNDU0MTBGN0MzQjVGMDBEN0MxRkIgLyog
SlNMYXp5RXZlbnRMaXN0ZW5lci5oICovOyB9OwogCQk5MzVGQkM0NTA5QkEwMEI5MDBFMjMwQjEg
LyogRXZlbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM1RkJDNDQwOUJBMDBCOTAwRTIzMEIxIC8qIEV2ZW50TGlzdGVuZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzVGQkNGMjA5
QkExNDNCMDBFMjMwQjEgLyogRXhjZXB0aW9uQ29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RkJDRjEwOUJBMTQzQjAwRTIzMEIxIC8qIEV4Y2Vw
dGlvbkNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk5MzY1ODNCNzI2QUI5MkI1MDA0RTYxRjQgLyogSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzY1ODNC
NjI2QUI5MTc0MDA0RTYxRjQgLyogSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM3MDkxOEQxNDE2RDg2
QjAwNDc3MzMzIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM3MDkxOEMxNDE2RDg2QjAwNDc3MzMz
IC8qIHRleHRBcmVhUmVzaXplQ29ybmVyQDJ4LnBuZyAqLzsgfTsKIAkJOTM3N0FCQTAxNURFRkVF
RjAwMzFGRDA0IC8qIFBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNzdBQjlGMTVERUZFRUYwMDMxRkQwNCAvKiBQYWdpbmF0aW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM3RkYz
RDUxQTEwMTJENjAwOEVCQTMxIC8qIERpY3Rpb25hcnlMb29rdXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzN0ZGM0Q0MUExMDEyRDYwMDhFQkEzMSAv
KiBEaWN0aW9uYXJ5TG9va3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTExNzA2LDYgKzExNzA3LDggQEAKIAkJOTM1RjQ1NDEwRjdDM0I1RjAw
RDdDMUZCIC8qIEpTTGF6eUV2ZW50TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNMYXp5RXZlbnRMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzVGQkM0NDA5QkEwMEI5MDBFMjMwQjEgLyogRXZlbnRMaXN0ZW5lci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzNUZCQ0YxMDlCQTE0M0IwMEUyMzBCMSAvKiBFeGNlcHRpb25Db2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbkNvZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM2NTgzQjQyNkFCOENCNDAwNEU2MUY0IC8qIElE
QlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSURCVHJh
bnNhY3Rpb25EdXJhYmlsaXR5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM2
NTgzQjYyNkFCOTE3NDAwNEU2MUY0IC8qIElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM2QjIxRjQxREJCRjgzMDAwNTJFMTE3IC8q
IENhbnZhc1BhdGguaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IENhbnZhc1BhdGguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzZERDAzQTA5Q0VBQzI3MDA1NkFFOEMgLyogUmFuZ2UuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM3MDkxOEMxNDE2RDg2QjAwNDc3MzMzIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyQDJ4LnBuZyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBu
ZzsgcGF0aCA9ICJ0ZXh0QXJlYVJlc2l6ZUNvcm5lckAyeC5wbmciOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjQ0MzIsNiArMjQ0MzUsOCBAQAogCQkJCTUxNjQ1QjUwMUI5Rjg4OUIw
MEY3ODlDRSAvKiBJREJUcmFuc2FjdGlvbi5jcHAgKi8sCiAJCQkJNTE2NDVCNTExQjlGODg5QjAw
Rjc4OUNFIC8qIElEQlRyYW5zYWN0aW9uLmggKi8sCiAJCQkJNTFENzE5QTYxODExMDZFMDAwMTZE
QzUxIC8qIElEQlRyYW5zYWN0aW9uLmlkbCAqLywKKwkJCQk5MzY1ODNCNjI2QUI5MTc0MDA0RTYx
RjQgLyogSURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5LmggKi8sCisJCQkJOTM2NTgzQjQyNkFCOENC
NDAwNEU2MUY0IC8qIElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eS5pZGwgKi8sCiAJCQkJODM4RUY1
MzYxREMxNDlEQTAwOEYwQzM5IC8qIElEQlRyYW5zYWN0aW9uTW9kZS5oICovLAogCQkJCTgzOEVG
NTM3MURDMTQ5REEwMDhGMEMzOSAvKiBJREJUcmFuc2FjdGlvbk1vZGUuaWRsICovLAogCQkJCTUx
NjEwM0FEMUNBREI5QTMwMDE2QjRDNyAvKiBJREJWYWx1ZS5jcHAgKi8sCkBAIC0zMzEyNyw2ICsz
MzEzMiw3IEBACiAJCQkJOTMyM0IwNzAyMzA2MUY5NzAwOTAxQzhCIC8qIElEQlNlcmlhbGl6YXRp
b25Db250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg1RkNCQjFCQjRDQkY4MDAxMjg5OEYg
LyogSURCU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg1RkNBRDFCQjRDNEU4MDAxMjg5
OEYgLyogSURCVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNjU4M0I3MjZBQjky
QjUwMDRFNjFGNCAvKiBJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxOThGN0FEMUJCREQzRUIwMEUyQ0M1RiAvKiBJREJUcmFuc2FjdGlvbkluZm8uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzOEVGNTM4MURDMTQ5RTIwMDhGMEMzOSAvKiBJREJUcmFuc2FjdGlv
bk1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNjEwM0FGMUNBREJBNzcwMDE2QjRDNyAvKiBJ
REJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmNwcAppbmRleCBhMTExMDI1NjgxZTQ2OTMxMjNmYmM4Y2I0OTBhODM3
MGRiMzljMTgzLi44MDVmMWExOGNmYTJiMWJlNDJmNWI3ZTVjNGQ0YzQ3ZTc2YzFmZmZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKQEAgLTE5
Miw2ICsxOTIsMzEgQEAgdm9pZCBTUUxpdGVEYXRhYmFzZTo6ZW5hYmxlQXV0b21hdGljV0FMVHJ1
bmNhdGlvbigpCiAgICAgc3FsaXRlM193YWxfaG9vayhtX2RiLCB3YWxBdXRvbWF0aWNUcnVuY2F0
aW9uSG9vaywgbnVsbHB0cik7CiB9CiAKK3N0YXRpYyBpbnQgY2hlY2twb2ludE1vZGVWYWx1ZShT
UUxpdGVEYXRhYmFzZTo6Q2hlY2twb2ludE1vZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUp
IHsKKyAgICBjYXNlIFNRTGl0ZURhdGFiYXNlOjpDaGVja3BvaW50TW9kZTo6RnVsbDoKKyAgICAg
ICAgcmV0dXJuIFNRTElURV9DSEVDS1BPSU5UX0ZVTEw7CisgICAgY2FzZSBTUUxpdGVEYXRhYmFz
ZTo6Q2hlY2twb2ludE1vZGU6OlRydW5jYXRlOgorICAgICAgICByZXR1cm4gU1FMSVRFX0NIRUNL
UE9JTlRfVFJVTkNBVEU7CisgICAgfQorfQorCit2b2lkIFNRTGl0ZURhdGFiYXNlOjpjaGVja3Bv
aW50KENoZWNrcG9pbnRNb2RlIG1vZGUpCit7CisgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dy
ZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOworICAgIGludCByZXN1bHQgPSBzcWxp
dGUzX3dhbF9jaGVja3BvaW50X3YyKG1fZGIsIG51bGxwdHIsIGNoZWNrcG9pbnRNb2RlVmFsdWUo
bW9kZSksIG51bGxwdHIsIG51bGxwdHIpOworICAgIGlmIChyZXN1bHQgPT0gU1FMSVRFX09LKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAocmVzdWx0ID09IFNRTElURV9CVVNZKSB7CisgICAg
ICAgIExPRyhTUUxEYXRhYmFzZSwgIlNRTGl0ZSBkYXRhYmFzZSBjaGVja3BvaW50IGlzIGJsb2Nr
ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIExPR19FUlJPUigiU1FMaXRlIGRh
dGFiYXNlIGZhaWxlZCB0byBjaGVja3BvaW50OiAlcyIsIGxhc3RFcnJvck1zZygpKTsKK30KKwog
dm9pZCBTUUxpdGVEYXRhYmFzZTo6dXNlV0FMSm91cm5hbE1vZGUoKQogewogICAgIG1fdXNlV0FM
ID0gdHJ1ZTsKQEAgLTIwNywxNSArMjMyLDcgQEAgdm9pZCBTUUxpdGVEYXRhYmFzZTo6dXNlV0FM
Sm91cm5hbE1vZGUoKQogICAgICAgICAgICAgTE9HX0VSUk9SKCJTUUxpdGUgZGF0YWJhc2UgZmFp
bGVkIHRvIHNldCBqb3VybmFsX21vZGUgdG8gV0FMLCBlcnJvcjogJXMiLCBsYXN0RXJyb3JNc2co
KSk7CiAgICAgfQogCi0gICAgewotICAgICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NB
dXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7Ci0gICAgICAgIGF1dG8gY2hlY2twb2ludFN0
YXRlbWVudCA9IHByZXBhcmVTdGF0ZW1lbnQoIlBSQUdNQSB3YWxfY2hlY2twb2ludChUUlVOQ0FU
RSkiX3MpOwotICAgICAgICBpZiAoY2hlY2twb2ludFN0YXRlbWVudCAmJiBjaGVja3BvaW50U3Rh
dGVtZW50LT5zdGVwKCkgPT0gU1FMSVRFX1JPVykgewotICAgICAgICAgICAgaWYgKGNoZWNrcG9p
bnRTdGF0ZW1lbnQtPmNvbHVtbkludCgwKSkKLSAgICAgICAgICAgICAgICBMT0coU1FMRGF0YWJh
c2UsICJTUUxpdGUgZGF0YWJhc2UgY2hlY2twb2ludCBpcyBibG9ja2VkIik7Ci0gICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgTE9HX0VSUk9SKCJTUUxpdGUgZGF0YWJhc2UgZmFpbGVkIHRvIGNo
ZWNrcG9pbnQ6ICVzIiwgbGFzdEVycm9yTXNnKCkpOwotICAgIH0KKyAgICBjaGVja3BvaW50KENo
ZWNrcG9pbnRNb2RlOjpUcnVuY2F0ZSk7CiB9CiAKIHZvaWQgU1FMaXRlRGF0YWJhc2U6OmNsb3Nl
KFNob3VsZFNldEVycm9yU3RhdGUgc2hvdWxkU2V0RXJyb3JTdGF0ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKaW5kZXggNGIyMmM4ZmU2OGUzNWZiZGQw
OTcyNTg2OGM0YzlhMGU1Y2FiMmNmMC4uOGVmN2JhOTBmMzdlMzNlZTI1YjMzMDA4YTA5Y2Y1YTVj
MDNhMjY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURh
dGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
LmgKQEAgLTk3LDYgKzk3LDggQEAgcHVibGljOgogICAgIC8vIFNRTElURV9DSEVDS1BPSU5UX1RS
VU5DQVRFIHdpbGwgaW52b2tlIHRoZSBidXN5IGhhbmRsZXIgaWYgaXQgY2FuJ3QgYWNxdWlyZSB0
aGUgbmVjZXNzYXJ5CiAgICAgLy8gbG9ja3MsIHdoaWNoIGNhbiBsZWFkIHRvIHVuaW50ZW5kZWQg
ZGVsYXlzLgogICAgIHZvaWQgZW5hYmxlQXV0b21hdGljV0FMVHJ1bmNhdGlvbigpOworICAgIGVu
dW0gY2xhc3MgQ2hlY2twb2ludE1vZGUgOiB1aW50OF90IHsgRnVsbCwgVHJ1bmNhdGUgfTsKKyAg
ICB2b2lkIGNoZWNrcG9pbnQoQ2hlY2twb2ludE1vZGUpOwogCiAgICAgLy8gR2V0cy9zZXRzIHRo
ZSBtYXhpbXVtIHNpemUgaW4gYnl0ZXMKICAgICAvLyBEZXBlbmRpbmcgb24gcGVyLWRhdGFiYXNl
IGF0dHJpYnV0ZXMsIHRoZSBzaXplIHdpbGwgb25seSBiZSBzZXR0YWJsZSBpbiB1bml0cyB0aGF0
IGFyZSB0aGUgcGFnZSBzaXplIG9mIHRoZSBkYXRhYmFzZSwgd2hpY2ggaXMgZXN0YWJsaXNoZWQg
YXQgY3JlYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA0YjIyM2NmZTYxNDkxZWY4Y2Y1MjFkY2RiNzM2YWU1MzA2ZDRm
ZmVlLi5hODk3M2Y2MmU2YzE2ZDQwMDA0MzgxZDlhYTBiMGUwMjFkOTE1YmU3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMjEtMDctMjggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IElEQlRyYW5zYWN0aW9uLmR1cmFiaWxpdHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODI4OQorCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
aWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLWR1cmFiaWxpdHktcHJpdmF0ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2lkYnRyYW5zYWN0
aW9uLWR1cmFiaWxpdHktcHJpdmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1kdXJhYmlsaXR5Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pZGJ0cmFuc2FjdGlvbi1kdXJhYmlsaXR5Lmpz
OiBBZGRlZC4KKyAgICAgICAgKG9uT3BlblVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAob25PcGVu
U3VjY2Vzcyk6CisgICAgICAgIChvblRyYW5zYWN0aW9uQ29tcGxldGUpOgorCiAyMDIxLTA3LTI4
ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIElEQkZhY3Rvcnku
ZGF0YWJhc2VzIHNob3VsZCBub3QgcmV0dXJuIGRhdGFiYXNlcyB3aXRoIGludmFsaWQgdmVyc2lv
bgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggODE5MjIxZjkzMWIxNDhmZGQwN2U4
MjcyOGRkOWVjNDMzMDA5YWY3NC4uNGRhMWJhNTUwODQ3YWVmYjhkMDRjNTA3MDE0NjdiM2JjNmI0
MjMzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjEtMDctMjggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IElEQlRyYW5zYWN0aW9uLmR1cmFiaWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODI4OQorCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxo
YXJuZXNzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tcmVsYXhlZC1kdXJhYmlsaXR5
LnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tcmVsYXhlZC1kdXJhYmlsaXR5LnRlbnRhdGl2ZS5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wNy0yOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KIAogICAgICAgICBJREJGYWN0b3J5LmRhdGFiYXNlcyBzaG91bGQgbm90IHJl
dHVybiBkYXRhYmFzZXMgd2l0aCBpbnZhbGlkIHZlcnNpb24KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3Mu
YW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dAppbmRleCA0YmQ2ZTA5
N2UxMmQ1NWViYzA3ODk1ZDg1Y2U4Mzk4NGUwMmZmNmNiLi5kYWY2NzEzZGVlN2EwYjFmMDFiYWMy
YzQ3YTlmZmY3MTJmNDAwNTg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CkBAIC0xODUsNyArMTg1LDcgQEAgUEFTUyBJ
REJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG8KIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2Nv
cGFibGVzIHByb3BlcnR5CiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRl
IG9iamVjdFN0b3JlTmFtZXMKIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgbW9kZQotRkFJTCBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBkdXJhYmls
aXR5IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0
eSAiZHVyYWJpbGl0eSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgSURCVHJhbnNhY3Rp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZHVyYWJpbGl0eQogUEFTUyBJREJUcmFuc2FjdGlvbiBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBkYgogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBlcnJvcgogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBv
YmplY3RTdG9yZShET01TdHJpbmcpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBjMTA0M2M2
NjY4MWU0NzU1MWUxYTBiNjE1NTAxYWRlYmIzNGNiNzNhLi4wZWUyYjA1MmI2NmU4ZjNlZjQ5YTU2
YjM1ODA3YmMzNTg0MDUzNjc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTE4NSw3ICsx
ODUsNyBAQCBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgbwogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgb2JqZWN0U3RvcmVOYW1lcwogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBtb2RlCi1GQUlMIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0
cmlidXRlIGR1cmFiaWxpdHkgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3Qg
aGF2ZSBhIHByb3BlcnR5ICJkdXJhYmlsaXR5IiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFT
UyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBkdXJhYmlsaXR5CiBQQVNTIElE
QlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGRiCiBQQVNTIElEQlRyYW5zYWN0aW9u
IGludGVyZmFjZTogYXR0cmlidXRlIGVycm9yCiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFj
ZTogb3BlcmF0aW9uIG9iamVjdFN0b3JlKERPTVN0cmluZykKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9u
LXJlbGF4ZWQtZHVyYWJpbGl0eS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9u
LXJlbGF4ZWQtZHVyYWJpbGl0eS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dAppbmRleCA0NGRk
YTdhYjNmODIwZjRlMWNhMGExZDY3YjU3YjYxZWNkMWI0NDdhLi5iMmE5ZGFiMjE0YWVlOGE5MDY4
OGVhYjAxZmFiMTBlM2Y5OTVlMDEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1yZWxheGVkLWR1cmFi
aWxpdHkudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tcmVsYXhlZC1k
dXJhYmlsaXR5LnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDggQEAKIAot
RkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAwIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJkZWZhdWx0IiBidXQgZ290ICh1bmRlZmluZWQpIHVu
ZGVmaW5lZAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAx
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJkZWZhdWx0IiBidXQgZ290ICh1bmRl
ZmluZWQpIHVuZGVmaW5lZAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91
dDogY2FzZSAyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJkZWZhdWx0IiBidXQg
Z290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVh
ZCBiYWNrIG91dDogY2FzZSAzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJyZWxh
eGVkIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBDb21taXR0ZWQgZGF0YSBj
YW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSA0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJp
bmcpICJzdHJpY3QiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIEludmFsaWQg
ZHVyYWJpbGl0eSBvcHRpb24gdGhyb3dzIGEgVHlwZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgICBkYi50cmFuc2FjdGlvbihbJ2Jvb2tzJ10sICdy
ZWFkd3JpdGUnLCB7IGR1cmFiaWxpdHk6ICdpbnZhbGlkJyB9KTsKLSAgfSIgZGlkIG5vdCB0aHJv
dworUEFTUyBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAwCitQQVNT
IENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDEKK1BBU1MgQ29tbWl0
dGVkIGRhdGEgY2FuIGJlIHJlYWQgYmFjayBvdXQ6IGNhc2UgMgorUEFTUyBDb21taXR0ZWQgZGF0
YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAzCitQQVNTIENvbW1pdHRlZCBkYXRhIGNhbiBi
ZSByZWFkIGJhY2sgb3V0OiBjYXNlIDQKK1BBU1MgSW52YWxpZCBkdXJhYmlsaXR5IG9wdGlvbiB0
aHJvd3MgYSBUeXBlRXJyb3IKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tcmVsYXhlZC1kdXJhYmls
aXR5LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLXJlbGF4ZWQt
ZHVyYWJpbGl0eS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNDRkZGE3
YWIzZjgyMGY0ZTFjYTBhMWQ2N2I1N2I2MWVjZDFiNDQ3YS4uYjJhOWRhYjIxNGFlZThhOTA2ODhl
YWIwMWZhYjEwZTNmOTk1ZTAxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tcmVsYXhlZC1kdXJhYmls
aXR5LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1yZWxh
eGVkLWR1cmFiaWxpdHkudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDEw
ICsxLDggQEAKIAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2Fz
ZSAwIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJkZWZhdWx0IiBidXQgZ290ICh1
bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNr
IG91dDogY2FzZSAxIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJkZWZhdWx0IiBi
dXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBDb21taXR0ZWQgZGF0YSBjYW4gYmUg
cmVhZCBiYWNrIG91dDogY2FzZSAyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJk
ZWZhdWx0IiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBDb21taXR0ZWQgZGF0
YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChz
dHJpbmcpICJyZWxheGVkIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBDb21t
aXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSA0IGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIChzdHJpbmcpICJzdHJpY3QiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1G
QUlMIEludmFsaWQgZHVyYWJpbGl0eSBvcHRpb24gdGhyb3dzIGEgVHlwZUVycm9yIGFzc2VydF90
aHJvd3NfanM6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgICBkYi50cmFuc2FjdGlvbihb
J2Jvb2tzJ10sICdyZWFkd3JpdGUnLCB7IGR1cmFiaWxpdHk6ICdpbnZhbGlkJyB9KTsKLSAgfSIg
ZGlkIG5vdCB0aHJvdworUEFTUyBDb21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDog
Y2FzZSAwCitQQVNTIENvbW1pdHRlZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDEK
K1BBU1MgQ29tbWl0dGVkIGRhdGEgY2FuIGJlIHJlYWQgYmFjayBvdXQ6IGNhc2UgMgorUEFTUyBD
b21taXR0ZWQgZGF0YSBjYW4gYmUgcmVhZCBiYWNrIG91dDogY2FzZSAzCitQQVNTIENvbW1pdHRl
ZCBkYXRhIGNhbiBiZSByZWFkIGJhY2sgb3V0OiBjYXNlIDQKK1BBU1MgSW52YWxpZCBkdXJhYmls
aXR5IG9wdGlvbiB0aHJvd3MgYSBUeXBlRXJyb3IKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0eS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1kdXJhYmlsaXR5
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTVhYzNiN2E4ODczMWViMTlhMTJhNGM0MGY5OTFl
ZTMxZWZlODc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvaWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBA
QAorRW5zdXJlIGR1cmFiaWxpdHkgb2YgdHJhbnNhY3Rpb24gaXMgZXhwZWN0ZWQKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNl
bGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVk
REIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorCitvbk9wZW5VcGdyYWRlTmVlZGVkKCk6CitkYXRh
YmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
LmR1cmFiaWxpdHkgaXMgImRlZmF1bHQiCisKK29uT3BlblN1Y2Nlc3MoKToKK3RyYW5zYWN0aW9u
ID0gZGF0YWJhc2UudHJhbnNhY3Rpb24oJ29iamVjdHN0b3JlJykKK1BBU1MgdHJhbnNhY3Rpb24u
ZHVyYWJpbGl0eSBpcyAiZGVmYXVsdCIKKworb25UcmFuc2FjdGlvbkNvbXBsZXRlKCk6CitQQVNT
IHRyYW5zYWN0aW9uLmR1cmFiaWxpdHkgaXMgImRlZmF1bHQiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0eS1wcml2YXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLWR1
cmFiaWxpdHktcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk1YWMzYjdhODg3MzFl
YjE5YTEyYTRjNDBmOTkxZWUzMWVmZTg3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLWR1cmFiaWxpdHktcHJpdmF0ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorRW5zdXJlIGR1cmFiaWxpdHkgb2YgdHJhbnNhY3Rp
b24gaXMgZXhwZWN0ZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorCitvbk9w
ZW5VcGdyYWRlTmVlZGVkKCk6CitkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1Mg
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLmR1cmFiaWxpdHkgaXMgImRlZmF1bHQiCisKK29uT3Bl
blN1Y2Nlc3MoKToKK3RyYW5zYWN0aW9uID0gZGF0YWJhc2UudHJhbnNhY3Rpb24oJ29iamVjdHN0
b3JlJykKK1BBU1MgdHJhbnNhY3Rpb24uZHVyYWJpbGl0eSBpcyAiZGVmYXVsdCIKKworb25UcmFu
c2FjdGlvbkNvbXBsZXRlKCk6CitQQVNTIHRyYW5zYWN0aW9uLmR1cmFiaWxpdHkgaXMgImRlZmF1
bHQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24t
ZHVyYWJpbGl0eS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
ZGJ0cmFuc2FjdGlvbi1kdXJhYmlsaXR5LXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGE4N2Ix
M2VjNGQ2OTQyYzZmNjBhNjE2YjE1M2VjZWZhNWYwY2E2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0eS1wcml2
YXRlLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VF
cGhlbWVyYWxTZXNzaW9uPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2lkYnRyYW5zYWN0aW9uLWR1cmFiaWxpdHkuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLWR1cmFiaWxpdHkuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLWR1cmFiaWxpdHku
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zYzJkN2IxYTQ3ZmFmYzA3Mjk3YWZiYzcyOTJlYzNkMzY5YzgxNzIw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaWRidHJh
bnNhY3Rpb24tZHVyYWJpbGl0eS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0eS5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2lkYnRyYW5z
YWN0aW9uLWR1cmFiaWxpdHkuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvaWRidHJhbnNhY3Rpb24tZHVyYWJpbGl0eS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzAzMWExZTIz
OGZiZTNlNjQ1MTk2NGUyNjI2YTE4NTg4MDY1MWM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2lkYnRyYW5zYWN0aW9uLWR1cmFiaWxp
dHkuanMKQEAgLTAsMCArMSwzNCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGlt
cG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzJyk7CisgICAgaW1wb3J0
U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCdFbnN1cmUgZHVyYWJpbGl0
eSBvZiB0cmFuc2FjdGlvbiBpcyBleHBlY3RlZCcpOworCitpbmRleGVkREJUZXN0KG9uT3BlblVw
Z3JhZGVOZWVkZWQsIG9uT3BlblN1Y2Nlc3MpOworCitmdW5jdGlvbiBvbk9wZW5VcGdyYWRlTmVl
ZGVkKGV2ZW50KQoreworICAgIHByZWFtYmxlKGV2ZW50KTsKKworICAgIGRhdGFiYXNlID0gZXZh
bEFuZExvZygnZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0Jyk7CisgICAgZGF0YWJhc2Uu
Y3JlYXRlT2JqZWN0U3RvcmUoJ29iamVjdHN0b3JlJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdldmVudC50YXJnZXQudHJhbnNhY3Rpb24uZHVyYWJpbGl0eScsICdkZWZhdWx0Jyk7Cit9
CisKK2Z1bmN0aW9uIG9uT3BlblN1Y2Nlc3MoZXZlbnQpCit7CisgICAgcHJlYW1ibGUoZXZlbnQp
OworCisgICAgdHJhbnNhY3Rpb24gPSBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGRhdGFiYXNl
LnRyYW5zYWN0aW9uKCdvYmplY3RzdG9yZScpIik7CisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0
ZSA9IG9uVHJhbnNhY3Rpb25Db21wbGV0ZTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Ry
YW5zYWN0aW9uLmR1cmFiaWxpdHknLCAnZGVmYXVsdCcpOworfQorCitmdW5jdGlvbiBvblRyYW5z
YWN0aW9uQ29tcGxldGUoZXZlbnQpCit7CisgICAgcHJlYW1ibGUoZXZlbnQpOworCisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCd0cmFuc2FjdGlvbi5kdXJhYmlsaXR5JywgJ2RlZmF1bHQnKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>