<?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>148089</bug_id>
          
          <creation_ts>2015-08-17 13:27:33 -0700</creation_ts>
          <short_desc>Replace all remaining uses of WTF::Mutex with WTF::Lock</short_desc>
          <delta_ts>2015-08-18 12:32:09 -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>Web Template Framework</component>
          <version>Other</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>147841</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>basile_clement</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1118218</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-17 13:27:33 -0700</bug_when>
    <thetext>And replace WTF::ThreadCondition with WTF::Condition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118252</commentid>
    <comment_count>1</comment_count>
      <attachid>259190</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-17 14:45:56 -0700</bug_when>
    <thetext>Created attachment 259190
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118283</commentid>
    <comment_count>2</comment_count>
      <attachid>259197</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-17 16:03:10 -0700</bug_when>
    <thetext>Created attachment 259197
the patch

I plan to add some more things to this patch, like some better tests and benchmarks for the new Condition functionality.  But right now this is passing all of our existing tests, which are pretty comprehensive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118307</commentid>
    <comment_count>3</comment_count>
      <attachid>259197</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-08-17 16:52:21 -0700</bug_when>
    <thetext>Comment on attachment 259197
the patch

Attachment 259197 did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/69504

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118308</commentid>
    <comment_count>4</comment_count>
      <attachid>259207</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-08-17 16:52:25 -0700</bug_when>
    <thetext>Created attachment 259207
Archive of layout-test-results from ews100 for mac-mavericks

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews100  Port: mac-mavericks  Platform: Mac OS X 10.9.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118315</commentid>
    <comment_count>5</comment_count>
      <attachid>259197</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-08-17 16:57:37 -0700</bug_when>
    <thetext>Comment on attachment 259197
the patch

Attachment 259197 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/69508

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118316</commentid>
    <comment_count>6</comment_count>
      <attachid>259210</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-08-17 16:57:41 -0700</bug_when>
    <thetext>Created attachment 259210
Archive of layout-test-results from ews106 for mac-mavericks-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews106  Port: mac-mavericks-wk2  Platform: Mac OS X 10.9.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118371</commentid>
    <comment_count>7</comment_count>
      <attachid>259197</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-17 19:21:02 -0700</bug_when>
    <thetext>Comment on attachment 259197
the patch

Clearing r? because EWS reports test crashes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118375</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-17 19:26:34 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 259197 [details]
&gt; the patch
&gt; 
&gt; Clearing r? because EWS reports test crashes

Fixed locally.  It was obvious when I tested debug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118393</commentid>
    <comment_count>9</comment_count>
      <attachid>259232</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-17 20:37:24 -0700</bug_when>
    <thetext>Created attachment 259232
the patch

Fixes crashes in the last patch.  Adds a speed test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118395</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-17 20:39:18 -0700</bug_when>
    <thetext>Attachment 259232 did not pass style-queue:


ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:91:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:99:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:123:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:130:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:202:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:205:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:210:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:214:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:222:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:225:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:230:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:234:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 12 in 106 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118413</commentid>
    <comment_count>11</comment_count>
      <attachid>259236</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-17 21:18:08 -0700</bug_when>
    <thetext>Created attachment 259236
the patch

Fix some builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118415</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-17 21:20:57 -0700</bug_when>
    <thetext>Attachment 259236 did not pass style-queue:


ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:91:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:99:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:123:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:130:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:202:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:205:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:210:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:214:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:222:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:225:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:230:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:234:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 12 in 106 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118419</commentid>
    <comment_count>13</comment_count>
      <attachid>259239</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-17 21:33:25 -0700</bug_when>
    <thetext>Created attachment 259239
the patch

Another build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118421</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-17 21:34:56 -0700</bug_when>
    <thetext>Attachment 259239 did not pass style-queue:


ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:91:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:99:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:123:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:130:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:202:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:205:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:210:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:214:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:222:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:225:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:230:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:234:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 12 in 106 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118435</commentid>
    <comment_count>15</comment_count>
      <attachid>259246</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-17 22:15:06 -0700</bug_when>
    <thetext>Created attachment 259246
the patch

More build fixes for Linux, iOS, and Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118436</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-17 22:17:56 -0700</bug_when>
    <thetext>Attachment 259246 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:91:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:99:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:123:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:130:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:202:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:205:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:210:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:214:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:222:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:225:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:230:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:234:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 13 in 106 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118442</commentid>
    <comment_count>17</comment_count>
      <attachid>259249</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-17 22:35:39 -0700</bug_when>
    <thetext>Created attachment 259249
the patch

More build fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118444</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-17 22:38:12 -0700</bug_when>
    <thetext>Attachment 259249 did not pass style-queue:


ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:91:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:99:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:123:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:130:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:202:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:205:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:210:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:214:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:222:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:225:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:230:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:234:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 12 in 106 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118445</commentid>
    <comment_count>19</comment_count>
      <attachid>259250</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-17 22:41:58 -0700</bug_when>
    <thetext>Created attachment 259250
the patch

Fix more things</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118447</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-17 22:45:31 -0700</bug_when>
    <thetext>Attachment 259250 did not pass style-queue:


ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:91:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:99:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:123:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:130:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:202:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:205:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:210:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:214:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:222:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:225:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:230:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:234:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 12 in 106 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118460</commentid>
    <comment_count>21</comment_count>
      <attachid>259252</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-17 23:18:35 -0700</bug_when>
    <thetext>Created attachment 259252
fix even more builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118461</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-17 23:20:26 -0700</bug_when>
    <thetext>Attachment 259252 did not pass style-queue:


ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:91:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:99:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:123:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:130:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:202:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:205:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:210:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:214:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:222:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:225:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:230:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:234:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 12 in 106 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118474</commentid>
    <comment_count>23</comment_count>
      <attachid>259254</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-17 23:46:27 -0700</bug_when>
    <thetext>Created attachment 259254
the patch

Bunch more Windows fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118475</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-17 23:47:56 -0700</bug_when>
    <thetext>Attachment 259254 did not pass style-queue:


ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:91:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:99:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:123:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:130:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:202:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:205:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:210:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:214:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:222:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:225:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:230:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/benchmarks/ConditionSpeedTest.cpp:234:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 12 in 106 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118545</commentid>
    <comment_count>25</comment_count>
      <attachid>259254</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-18 10:14:53 -0700</bug_when>
    <thetext>Comment on attachment 259254
the patch

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

r=me

&gt; Source/WTF/wtf/Condition.h:66
&gt; +    // May wait too long on some OSes: the C++ standard library implementation of
&gt; +    // std::condition_variable::wait_until(), which this uses internally, may convert the absolute
&gt; +    // time to an absolute time according to the system clock, which isn&apos;t monotonic. It will do this
&gt; +    // so that it can use pthread_cond_timedwait(). Depending on the OS and if an unfortunate
&gt; +    // combination of thread interleavings and system time changes happens, this may cause waitUntil()
&gt; +    // to wait longer than it&apos;s supposed to. However, it&apos;s typical for OSes to turn the absolute
&gt; +    // timeout in pthread_cond_timedwait() to a relative timeout before calling into the kernel. This
&gt; +    // is what glibc does, for example.

This seems more like documentation of an OS bug than of an intended quirk of the design here. Perhaps it doesn&apos;t belong here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118597</commentid>
    <comment_count>26</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-18 12:20:10 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Comment on attachment 259254 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=259254&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WTF/wtf/Condition.h:66
&gt; &gt; +    // May wait too long on some OSes: the C++ standard library implementation of
&gt; &gt; +    // std::condition_variable::wait_until(), which this uses internally, may convert the absolute
&gt; &gt; +    // time to an absolute time according to the system clock, which isn&apos;t monotonic. It will do this
&gt; &gt; +    // so that it can use pthread_cond_timedwait(). Depending on the OS and if an unfortunate
&gt; &gt; +    // combination of thread interleavings and system time changes happens, this may cause waitUntil()
&gt; &gt; +    // to wait longer than it&apos;s supposed to. However, it&apos;s typical for OSes to turn the absolute
&gt; &gt; +    // timeout in pthread_cond_timedwait() to a relative timeout before calling into the kernel. This
&gt; &gt; +    // is what glibc does, for example.
&gt; 
&gt; This seems more like documentation of an OS bug than of an intended quirk of
&gt; the design here. Perhaps it doesn&apos;t belong here.

Fair enough, removed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118604</commentid>
    <comment_count>27</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-18 12:32:09 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/188594</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259190</attachid>
            <date>2015-08-17 14:45:56 -0700</date>
            <delta_ts>2015-08-17 16:03:10 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>192605</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL0NvbmRpdGlvbi5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV1RGL3d0Zi9D
b25kaXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjksMjYgKzI5LDU5IEBACiAjaW5jbHVkZSA8
Y2hyb25vPgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVk
ZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1BhcmtpbmdMb3QuaD4KIAogbmFt
ZXNwYWNlIFdURiB7CiAKIGNsYXNzIENvbmRpdGlvbiB7CiBwdWJsaWM6CisgICAgdHlwZWRlZiBQ
YXJraW5nTG90OjpDbG9jayBDbG9jazsKKyAgICAKICAgICBDb25kaXRpb24oKSB7IH0KIAogICAg
IC8vIFdhaXQgb24gYSBwYXJraW5nIHF1ZXVlIHdoaWxlIHJlbGVhc2luZyB0aGUgZ2l2ZW4gbG9j
ay4gSXQgd2lsbCB1bmxvY2sgdGhlIGxvY2sganVzdCBiZWZvcmUKICAgICAvLyBwYXJraW5nLCBh
bmQgcmVsb2NrIGl0IHVwb24gd2FrZXVwLiBSZXR1cm5zIHRydWUgaWYgd2Ugd29rZSB1cCBkdWUg
dG8gc29tZSBjYWxsIHRvCi0gICAgLy8gbm90aWZ5T25lKCkgb3Igbm90aWZ5QWxsKCkuIFJldHVy
bnMgZmFsc2UgaWYgd2Ugd29rZSB1cCBkdWUgdG8gYSB0aW1lb3V0LgorICAgIC8vIG5vdGlmeU9u
ZSgpIG9yIG5vdGlmeUFsbCgpLiBSZXR1cm5zIGZhbHNlIGlmIHdlIHdva2UgdXAgZHVlIHRvIGEg
dGltZW91dC4gTm90ZSB0aGF0IHRoaXMgZm9ybQorICAgIC8vIG9mIHdhaXRVbnRpbCgpIGhhcyBz
b21lIHF1aXJrczoKKyAgICAvLworICAgIC8vIE5vIHNwdXJpb3VzIHdha2UtdXA6IGluIG9yZGVy
IGZvciB0aGlzIHRvIHJldHVybiBiZWZvcmUgdGhlIHRpbWVvdXQsIHNvbWUgbm90aWZ5T25lKCkg
b3IKKyAgICAvLyBub3RpZnlBbGwoKSBjYWxsIG11c3QgaGF2ZSBoYXBwZW5lZC4gTm8gc2NlbmFy
aW8gb3RoZXIgdGhhbiB0aW1lb3V0IG9yIG5vdGlmeSBjYW4gbGVhZCB0byB0aGlzCisgICAgLy8g
bWV0aG9kIHJldHVybmluZy4gVGhpcyBtZWFucywgZm9yIGV4YW1wbGUsIHRoYXQgeW91IGNhbid0
IHVzZSBwdGhyZWFkIGNhbmNlbGF0aW9uIG9yIHNpZ25hbHMgdG8KKyAgICAvLyBjYXVzZSBlYXJs
eSByZXR1cm4uCisgICAgLy8KKyAgICAvLyBQYXN0IHRpbWVvdXQ6IGl0J3MgcG9zc2libGUgZm9y
IHdhaXRVbnRpbCgpIHRvIGJlIGNhbGxlZCB3aXRoIGEgdGltZW91dCBpbiB0aGUgcGFzdC4gSW4g
dGhhdAorICAgIC8vIGNhc2UsIHdhaXRVbnRpbCgpIHdpbGwgc3RpbGwgcmVsZWFzZSB0aGUgbG9j
ayBhbmQgcmVhY3F1aXJlIGl0LiB3YWl0VW50aWwoKSB3aWxsIGFsd2F5cyByZXR1cm4KKyAgICAv
LyBmYWxzZSBpbiB0aGF0IGNhc2UuIFRoaXMgaXMgc3VidGx5IGRpZmZlcmVudCBmcm9tIHNvbWUg
cHRocmVhZF9jb25kX3RpbWVkd2FpdCgpIGltcGxlbWVudGF0aW9ucywKKyAgICAvLyB3aGljaCBt
YXkgbm90IHJlbGVhc2UgdGhlIGxvY2sgZm9yIHBhc3QgdGltZW91dC4gQnV0LCB0aGlzIGJlaGF2
aW9yIGlzIGNvbnNpc3RlbnQgd2l0aCBPcGVuR3JvdXAKKyAgICAvLyBkb2N1bWVudGF0aW9uIGZv
ciB0aW1lZHdhaXQoKS4KKyAgICAvLworICAgIC8vIE1heSB3YWl0IHRvbyBsb25nIG9uIHNvbWUg
T1NlczogdGhlIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IGltcGxlbWVudGF0aW9uIG9mCisgICAgLy8g
c3RkOjpjb25kaXRpb25fdmFyaWFibGU6OndhaXRfdW50aWwoKSwgd2hpY2ggdGhpcyB1c2VzIGlu
dGVybmFsbHksIG1heSBjb252ZXJ0IHRoZSBhYnNvbHV0ZQorICAgIC8vIHRpbWUgdG8gYW4gYWJz
b2x1dGUgdGltZSBhY2NvcmRpbmcgdG8gdGhlIHN5c3RlbSBjbG9jaywgd2hpY2ggaXNuJ3QgbW9u
b3RvbmljLiBJdCB3aWxsIGRvIHRoaXMKKyAgICAvLyBzbyB0aGF0IGl0IGNhbiB1c2UgcHRocmVh
ZF9jb25kX3RpbWVkd2FpdCgpLiBEZXBlbmRpbmcgb24gdGhlIE9TIGFuZCBpZiBhbiB1bmZvcnR1
bmF0ZQorICAgIC8vIGNvbWJpbmF0aW9uIG9mIHRocmVhZCBpbnRlcmxlYXZpbmdzIGFuZCBzeXN0
ZW0gdGltZSBjaGFuZ2VzIGhhcHBlbnMsIHRoaXMgbWF5IGNhdXNlIHdhaXRVbnRpbCgpCisgICAg
Ly8gdG8gd2FpdCBsb25nZXIgdGhhbiBpdCdzIHN1cHBvc2VkIHRvLiBIb3dldmVyLCBpdCdzIHR5
cGljYWwgZm9yIE9TZXMgdG8gdHVybiB0aGUgYWJzb2x1dGUKKyAgICAvLyB0aW1lb3V0IGluIHB0
aHJlYWRfY29uZF90aW1lZHdhaXQoKSB0byBhIHJlbGF0aXZlIHRpbWVvdXQgYmVmb3JlIGNhbGxp
bmcgaW50byB0aGUga2VybmVsLiBUaGlzCisgICAgLy8gaXMgd2hhdCBnbGliYyBkb2VzLCBmb3Ig
ZXhhbXBsZS4KKyAgICAvLworICAgIC8vIFRoZXNlIHF1aXJrcyBhcmUgZ2VuZXJhbGx5IG5vdCB3
b3J0aCB3b3JyeWluZyB0b28gbXVjaCBhYm91dC4gVGhlIGZhY3QgdGhhdCBzb21lIE9TZXMgcGVy
Zm9ybQorICAgIC8vIGNvbnZlcnNpb25zIHRvIGFuIGFic29sdXRlIG5vbi1tb25vdG9uaWMgdGlt
ZSBpcyB1bmxpa2VseSB0byBjYXVzZSBpc3N1ZXMgYmVjYXVzZSB0aGV5IHVzdWFsbHkKKyAgICAv
LyBqdXN0IGRvIHRoYXQgYXMgcGFydCBvZiBhIGNvbnZlcnNpb24gdG8gYSByZWxhdGl2ZSBzbGVl
cCBhbW91bnQgaW4gdGhlIGtlcm5lbC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4K
LSAgICBib29sIHdhaXRVbnRpbCgKLSAgICAgICAgTG9ja1R5cGUmIGxvY2ssIHN0ZDo6Y2hyb25v
OjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgdGltZW91dCkKKyAgICBib29sIHdhaXRVbnRpbChM
b2NrVHlwZSYgbG9jaywgQ2xvY2s6OnRpbWVfcG9pbnQgdGltZW91dCkKICAgICB7Ci0gICAgICAg
IGJvb2wgcmVzdWx0ID0gUGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHkoCi0gICAgICAgICAg
ICAmbV9kdW1teSwKLSAgICAgICAgICAgIFtdICgpIC0+IGJvb2wgeyByZXR1cm4gdHJ1ZTsgfSwK
LSAgICAgICAgICAgIFsmbG9ja10gKCkgeyBsb2NrLnVubG9jaygpOyB9LAotICAgICAgICAgICAg
dGltZW91dCk7CisgICAgICAgIGJvb2wgcmVzdWx0OworICAgICAgICBpZiAodGltZW91dCA8IENs
b2NrOjpub3coKSkgeworICAgICAgICAgICAgbG9jay51bmxvY2soKTsKKyAgICAgICAgICAgIHJl
c3VsdCA9IGZhbHNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gUGFy
a2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHkoCisgICAgICAgICAgICAgICAgJm1fZHVtbXksCisg
ICAgICAgICAgICAgICAgW10gKCkgLT4gYm9vbCB7IHJldHVybiB0cnVlOyB9LAorICAgICAgICAg
ICAgICAgIFsmbG9ja10gKCkgeyBsb2NrLnVubG9jaygpOyB9LAorICAgICAgICAgICAgICAgIHRp
bWVvdXQpOworICAgICAgICB9CiAgICAgICAgIGxvY2subG9jaygpOwogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KQEAgLTU2LDggKzg5LDcgQEAgcHVibGljOgogICAgIC8vIFdhaXQgdW50
aWwgdGhlIGdpdmVuIHByZWRpY2F0ZSBpcyBzYXRpc2ZpZWQuIFJldHVybnMgdHJ1ZSBpZiBpdCBp
cyBzYXRpc2ZpZWQgaW4gdGhlIGVuZC4KICAgICAvLyBNYXkgcmV0dXJuIGVhcmx5IGR1ZSB0byB0
aW1lb3V0LgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlLCB0eXBlbmFtZSBGdW5jdG9y
PgotICAgIGJvb2wgd2FpdFVudGlsKAotICAgICAgICBMb2NrVHlwZSYgbG9jaywgc3RkOjpjaHJv
bm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCB0aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVk
aWNhdGUpCisgICAgYm9vbCB3YWl0VW50aWwoTG9ja1R5cGUmIGxvY2ssIENsb2NrOjp0aW1lX3Bv
aW50IHRpbWVvdXQsIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkKICAgICB7CiAgICAgICAgIHdo
aWxlICghcHJlZGljYXRlKCkpIHsKICAgICAgICAgICAgIGlmICghd2FpdFVudGlsKGxvY2ssIHRp
bWVvdXQpKQpAQCAtNzIsMTcgKzEwNCwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCB3YWl0Rm9yKAog
ICAgICAgICBMb2NrVHlwZSYgbG9jaywgY29uc3QgRHVyYXRpb25UeXBlJiByZWxhdGl2ZVRpbWVv
dXQsIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkKICAgICB7Ci0gICAgICAgIHN0ZDo6Y2hyb25v
OjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgYWJzb2x1dGVUaW1lb3V0ID0KLSAgICAgICAgICAg
IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpICsKLSAgICAgICAgICAgIHN0ZDo6Y2hy
b25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OmR1cmF0aW9uPihy
ZWxhdGl2ZVRpbWVvdXQpOwotCi0gICAgICAgIHJldHVybiB3YWl0VW50aWwobG9jaywgYWJzb2x1
dGVUaW1lb3V0LCBwcmVkaWNhdGUpOworICAgICAgICByZXR1cm4gd2FpdFVudGlsKGxvY2ssIGFi
c29sdXRlRnJvbVJlbGF0aXZlKHJlbGF0aXZlVGltZW91dCksIHByZWRpY2F0ZSk7CiAgICAgfQog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+CiAgICAgdm9pZCB3YWl0KExvY2tUeXBl
JiBsb2NrKQogICAgIHsKLSAgICAgICAgd2FpdFVudGlsKGxvY2ssIHN0ZDo6Y2hyb25vOjpzdGVh
ZHlfY2xvY2s6OnRpbWVfcG9pbnQ6Om1heCgpKTsKKyAgICAgICAgd2FpdFVudGlsKGxvY2ssIENs
b2NrOjp0aW1lX3BvaW50OjptYXgoKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
TG9ja1R5cGUsIHR5cGVuYW1lIEZ1bmN0b3I+CkBAIC05Miw2ICsxMjAsMzIgQEAgcHVibGljOgog
ICAgICAgICAgICAgd2FpdChsb2NrKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBM
b2NrVHlwZSwgdHlwZW5hbWUgVGltZVR5cGU+CisgICAgYm9vbCB3YWl0VW50aWwoTG9ja1R5cGUm
IGxvY2ssIGNvbnN0IFRpbWVUeXBlJiB0aW1lb3V0KQorICAgIHsKKyAgICAgICAgaWYgKHRpbWVv
dXQgPT0gVGltZVR5cGU6Om1heCgpKSB7CisgICAgICAgICAgICB3YWl0KGxvY2spOworICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHdhaXRGb3JJbXBs
KGxvY2ssIHRpbWVvdXQgLSBUaW1lVHlwZTo6Y2xvY2s6Om5vdygpKTsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KKyAgICBib29sIHdhaXRVbnRpbFdhbGxDbG9ja1Nl
Y29uZHMoTG9ja1R5cGUmIGxvY2ssIGRvdWJsZSBhYnNvbHV0ZVRpbWVvdXRTZWNvbmRzKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHdhaXRGb3JTZWNvbmRzSW1wbChsb2NrLCBhYnNvbHV0ZVRpbWVv
dXRTZWNvbmRzIC0gY3VycmVudFRpbWUoKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgTG9ja1R5cGU+CisgICAgYm9vbCB3YWl0VW50aWxNb25vdG9uaWNDbG9ja1NlY29uZHMoTG9j
a1R5cGUmIGxvY2ssIGRvdWJsZSBhYnNvbHV0ZVRpbWVvdXRTZWNvbmRzKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHdhaXRGb3JTZWNvbmRzSW1wbChsb2NrLCBhYnNvbHV0ZVRpbWVvdXRTZWNvbmRz
IC0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOworICAgIH0KKworICAgIC8vIEZJWE1F
OiBXZSBjb3VsZCByZXBsYWNlIHRoZSBkdW1teSBieXRlIHdpdGggYSBib29sZWFuIHRvIHRlbGwg
dXMgaWYgdGhlcmUgaXMgYW55b25lIHdhaXRpbmcKKyAgICAvLyByaWdodCBub3cuIFRoaXMgY291
bGQgYmUgdXNlZCB0byBpbXBsZW1lbnQgYSBmYXN0IHBhdGggZm9yIG5vdGlmeU9uZSgpIGFuZCBu
b3RpZnlBbGwoKS4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ4MDkwCisKICAgICB2b2lkIG5vdGlmeU9uZSgpCiAgICAgewogICAgICAgICBQYXJraW5n
TG90Ojp1bnBhcmtPbmUoJm1fZHVtbXkpOwpAQCAtMTAzLDcgKzE1Nyw0MCBAQCBwdWJsaWM6CiAg
ICAgfQogICAgIAogcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KKyAg
ICBib29sIHdhaXRGb3JTZWNvbmRzSW1wbChMb2NrVHlwZSYgbG9jaywgZG91YmxlIHJlbGF0aXZl
VGltZW91dFNlY29uZHMpCisgICAgeworICAgICAgICBhdXRvIHJlbGF0aXZlVGltZW91dCA9IHN0
ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcygKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDY0X3Q+
KHJlbGF0aXZlVGltZW91dFNlY29uZHMgKiAoMTAwMC4wICogMTAwMC4wICogMTAwMC4wKSkpOwor
CisgICAgICAgIHJldHVybiB3YWl0Rm9ySW1wbChsb2NrLCByZWxhdGl2ZVRpbWVvdXQpOworICAg
IH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRHVyYXRp
b25UeXBlPgorICAgIGJvb2wgd2FpdEZvckltcGwoTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0
aW9uVHlwZSYgcmVsYXRpdmVUaW1lb3V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRp
bChsb2NrLCBhYnNvbHV0ZUZyb21SZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpKTsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEdXJhdGlvblR5cGU+CisgICAgQ2xvY2s6OnRpbWVfcG9p
bnQgYWJzb2x1dGVGcm9tUmVsYXRpdmUoY29uc3QgRHVyYXRpb25UeXBlJiByZWxhdGl2ZVRpbWVv
dXQpCisgICAgeworICAgICAgICBpZiAocmVsYXRpdmVUaW1lb3V0IDwgRHVyYXRpb25UeXBlOjp6
ZXJvKCkpCisgICAgICAgICAgICByZXR1cm4gQ2xvY2s6OnRpbWVfcG9pbnQ6Om1pbigpOworCisg
ICAgICAgIGlmIChyZWxhdGl2ZVRpbWVvdXQgPiBDbG9jazo6ZHVyYXRpb246Om1heCgpKSB7Cisg
ICAgICAgICAgICAvLyBUaGlzIGlzIGhpZ2hseSB1bmxpa2VseS4gQnV0IGlmIGl0IGhhcHBlbnMs
IHdlIHdhbnQgdG8gbm90IGRvIGFueXRoaW5nIGR1bWIuIFNsZWVwaW5nCisgICAgICAgICAgICAv
LyB3aXRob3V0IGEgdGltZW91dCBzZWVtcyBzZW5zaWJsZSB3aGVuIHRoZSB0aW1lb3V0IGR1cmF0
aW9uIGlzIGdyZWF0ZXIgdGhhbiB3aGF0IGNhbiBiZQorICAgICAgICAgICAgLy8gZXhwcmVzc2Vk
IHVzaW5nIHN0ZWFkeV9jbG9jay4KKyAgICAgICAgICAgIHJldHVybiBDbG9jazo6dGltZV9wb2lu
dDo6bWF4KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIENsb2NrOjpkdXJhdGlvbiBt
eVJlbGF0aXZlVGltZW91dCA9CisgICAgICAgICAgICBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2Fz
dDxDbG9jazo6ZHVyYXRpb24+KHJlbGF0aXZlVGltZW91dCk7CisKKyAgICAgICAgcmV0dXJuIENs
b2NrOjpub3coKSArIG15UmVsYXRpdmVUaW1lb3V0OworICAgIH0KKwogICAgIHVpbnQ4X3QgbV9k
dW1teTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oCShyZXZpc2lvbiAxODg1MTApCisr
KyBTb3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzIsNyArMzIsOSBAQAogCiAjaW5jbHVk
ZSA8bGltaXRzPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0Nv
bmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5o
PgogCkBAIC03Nyw4ICs3OSw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBzdGF0aWMgZG91
YmxlIGluZmluaXRlVGltZSgpIHsgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
bWF4KCk7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsK
LSAgICAgICAgVGhyZWFkQ29uZGl0aW9uIG1fY29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExv
Y2sgbV9tdXRleDsKKyAgICAgICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgICAgICBEZXF1
ZTxzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+PiBtX3F1ZXVlOwogICAgICAgICBib29sIG1fa2ls
bGVkOwogICAgIH07CkBAIC05MSwzNyArOTMsMzcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6YXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9jayhtX211dGV4KTsKICAgICAgICAgbV9xdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKG1lc3NhZ2Up
KTsKLSAgICAgICAgbV9jb25kaXRpb24uc2lnbmFsKCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5v
dGlmeU9uZSgpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAg
IGlubGluZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwoc3RkOjp1
bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAg
ICBtX3F1ZXVlLmFwcGVuZChXVEY6Om1vdmUobWVzc2FnZSkpOwogICAgICAgICBtX2tpbGxlZCA9
IHRydWU7Ci0gICAgICAgIG1fY29uZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICBtX2NvbmRp
dGlvbi5ub3RpZnlBbGwoKTsKICAgICB9CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHF1
ZXVlIHdhcyBlbXB0eSBiZWZvcmUgdGhlIGl0ZW0gd2FzIGFkZGVkLgogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46
OmFwcGVuZEFuZENoZWNrRW1wdHkoc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBib29sIHdhc0VtcHR5ID0gbV9xdWV1ZS5pc0Vt
cHR5KCk7CiAgICAgICAgIG1fcXVldWUuYXBwZW5kKFdURjo6bW92ZShtZXNzYWdlKSk7Ci0gICAg
ICAgIG1fY29uZGl0aW9uLnNpZ25hbCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUo
KTsKICAgICAgICAgcmV0dXJuIHdhc0VtcHR5OwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIERhdGFUeXBlPgogICAgIGlubGluZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OnBy
ZXBlbmQoc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAg
TXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0
ZXgpOwogICAgICAgICBtX3F1ZXVlLnByZXBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAg
ICAgbV9jb25kaXRpb24uc2lnbmFsKCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgp
OwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgpAQCAtMTM3LDcgKzEz
OSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4K
ICAgICBpbmxpbmUgYXV0byBNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZUZp
bHRlcmVkV2l0aFRpbWVvdXQoTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCYgcmVzdWx0LCBQcmVkaWNh
dGUmJiBwcmVkaWNhdGUsIGRvdWJsZSBhYnNvbHV0ZVRpbWUpIC0+IHN0ZDo6dW5pcXVlX3B0cjxE
YXRhVHlwZT4KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgYm9vbCB0aW1lZE91dCA9IGZh
bHNlOwogCiAgICAgICAgIGF1dG8gZm91bmQgPSBtX3F1ZXVlLmVuZCgpOwpAQCAtMTQ5LDcgKzE1
MSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAgaWYgKGZvdW5kICE9IG1fcXVldWUu
ZW5kKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHRpbWVkT3V0ID0g
IW1fY29uZGl0aW9uLnRpbWVkV2FpdChtX211dGV4LCBhYnNvbHV0ZVRpbWUpOworICAgICAgICAg
ICAgdGltZWRPdXQgPSAhbV9jb25kaXRpb24ud2FpdFVudGlsV2FsbENsb2NrU2Vjb25kcyhtX211
dGV4LCBhYnNvbHV0ZVRpbWUpOwogICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCF0aW1lZE91
dCB8fCBhYnNvbHV0ZVRpbWUgIT0gaW5maW5pdGVUaW1lKCkpOwpAQCAtMTc0LDcgKzE3Niw3IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlu
bGluZSBhdXRvIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OnRyeUdldE1lc3NhZ2UoKSAtPiBzdGQ6
OnVuaXF1ZV9wdHI8RGF0YVR5cGU+CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1f
bXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmICht
X2tpbGxlZCkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBpZiAobV9xdWV1
ZS5pc0VtcHR5KCkpCkBAIC0xODYsNyArMTg4LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGF1dG8gTWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6dHJ5R2V0TWVzc2FnZUlnbm9yaW5nS2lsbGVkKCkgLT4gc3RkOjp1bmlxdWVfcHRy
PERhdGFUeXBlPgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0Vt
cHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMTk3LDcgKzE5OSw3IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBp
bmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpyZW1vdmVJZihQcmVkaWNhdGUmJiBw
cmVkaWNhdGUpCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAg
ICAgICAgICAgICBhdXRvIGZvdW5kID0gbV9xdWV1ZS5maW5kSWYoWyZwcmVkaWNhdGVdKGNvbnN0
IHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4mIHB0cikgLT4gYm9vbCB7CiAgICAgICAgICAgICAg
ICAgQVNTRVJUKHB0cik7CkBAIC0yMTQsNyArMjE2LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGJvb2wgTWVzc2FnZVF1ZXVl
PERhdGFUeXBlPjo6aXNFbXB0eSgpCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1f
bXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmICht
X2tpbGxlZCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gbV9xdWV1
ZS5pc0VtcHR5KCk7CkBAIC0yMjMsMTUgKzIyNSwxNSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8
RGF0YVR5cGU+OjpraWxsKCkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRl
eCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9raWxsZWQg
PSB0cnVlOwotICAgICAgICBtX2NvbmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICAgICAgbV9jb25k
aXRpb24ubm90aWZ5QWxsKCk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIGJvb2wgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbGVkKCkgY29u
c3QKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExv
Y2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgcmV0dXJuIG1fa2lsbGVkOwogICAgIH0K
IH0gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2Vu
ZXJpYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJp
Yy5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dl
bmVyaWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsMTcgKzEwNSwxNyBAQCBib29sIFBhcmFs
bGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVu
dDo6VGhyZWFkUHJpdmF0ZTo6ZXhlY3V0ZShUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwg
dm9pZCogcGFyYW1ldGVycykKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKIAogICAgIG1fdGhyZWFkRnVuY3Rpb24gPSB0aHJl
YWRGdW5jdGlvbjsKICAgICBtX3BhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgIG1fcnVubmlu
ZyA9IHRydWU7Ci0gICAgbV90aHJlYWRDb25kaXRpb24uc2lnbmFsKCk7CisgICAgbV90aHJlYWRD
b25kaXRpb24ubm90aWZ5T25lKCk7CiB9CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhy
ZWFkUHJpdmF0ZTo6d2FpdEZvckZpbmlzaCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAKICAgICB3aGlsZSAobV9ydW5u
aW5nKQogICAgICAgICBtX3RocmVhZENvbmRpdGlvbi53YWl0KG1fbXV0ZXgpOwpAQCAtMTI0LDE0
ICsxMjQsMTQgQEAgdm9pZCBQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOgogdm9p
ZCBQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJUaHJlYWQodm9pZCog
dGhyZWFkRGF0YSkKIHsKICAgICBUaHJlYWRQcml2YXRlKiBzaGFyZWRUaHJlYWQgPSByZWludGVy
cHJldF9jYXN0PFRocmVhZFByaXZhdGUqPih0aHJlYWREYXRhKTsKLSAgICBNdXRleExvY2tlciBs
b2NrKHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKHNoYXJlZFRo
cmVhZC0+bV9tdXRleCk7CiAKICAgICB3aGlsZSAoc2hhcmVkVGhyZWFkLT5tX3RocmVhZElEKSB7
CiAgICAgICAgIGlmIChzaGFyZWRUaHJlYWQtPm1fcnVubmluZykgewogICAgICAgICAgICAgKCpz
aGFyZWRUaHJlYWQtPm1fdGhyZWFkRnVuY3Rpb24pKHNoYXJlZFRocmVhZC0+bV9wYXJhbWV0ZXJz
KTsKICAgICAgICAgICAgIHNoYXJlZFRocmVhZC0+bV9ydW5uaW5nID0gZmFsc2U7CiAgICAgICAg
ICAgICBzaGFyZWRUaHJlYWQtPm1fcGFyZW50ID0gMDsKLSAgICAgICAgICAgIHNoYXJlZFRocmVh
ZC0+bV90aHJlYWRDb25kaXRpb24uc2lnbmFsKCk7CisgICAgICAgICAgICBzaGFyZWRUaHJlYWQt
Pm1fdGhyZWFkQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgICAgICB9CiAKICAgICAgICAgc2hh
cmVkVGhyZWFkLT5tX3RocmVhZENvbmRpdGlvbi53YWl0KHNoYXJlZFRocmVhZC0+bV9tdXRleCk7
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oCShyZXZpc2lvbiAxODg1MTAp
CisrKyBTb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgJKHdvcmtpbmcgY29weSkK
QEAgLTc2LDggKzc2LDggQEAgcHVibGljOgogICAgICAgICBib29sIG1fcnVubmluZzsKICAgICAg
ICAgUGFyYWxsZWxFbnZpcm9ubWVudCogbV9wYXJlbnQ7CiAKLSAgICAgICAgbXV0YWJsZSBNdXRl
eCBtX211dGV4OwotICAgICAgICBUaHJlYWRDb25kaXRpb24gbV90aHJlYWRDb25kaXRpb247Cisg
ICAgICAgIG11dGFibGUgTG9jayBtX211dGV4OworICAgICAgICBDb25kaXRpb24gbV90aHJlYWRD
b25kaXRpb247CiAKICAgICAgICAgVGhyZWFkRnVuY3Rpb24gbV90aHJlYWRGdW5jdGlvbjsKICAg
ICAgICAgdm9pZCogbV9wYXJhbWV0ZXJzOwpJbmRleDogU291cmNlL1dURi93dGYvUGFya2luZ0xv
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGFya2luZ0xvdC5jcHAJKHJldmlz
aW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MTEsNyArNTExLDcgQEAgYm9vbCBQYXJraW5nTG90OjpwYXJrQ29uZGl0aW9uYWxs
eSgKICAgICBjb25zdCB2b2lkKiBhZGRyZXNzLAogICAgIHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiB2
YWxpZGF0aW9uLAogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBiZWZvcmVTbGVlcCwKLSAgICBz
dGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCisgICAgQ2xvY2s6
OnRpbWVfcG9pbnQgdGltZW91dCkKIHsKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgZGF0YUxv
Zyh0b1N0cmluZyhjdXJyZW50VGhyZWFkKCksICI6IHBhcmtpbmcuXG4iKSk7CkBAIC01MzksMTEg
KzUzOSwxMSBAQCBib29sIFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAogICAgIGJvb2wg
ZGlkR2V0RGVxdWV1ZWQ7CiAgICAgewogICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0
ZXg+IGxvY2tlcihtZS0+cGFya2luZ0xvY2spOwotICAgICAgICB3aGlsZSAobWUtPmFkZHJlc3Mg
JiYgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgPCB0aW1lb3V0KSB7CisgICAgICAg
IHdoaWxlIChtZS0+YWRkcmVzcyAmJiBDbG9jazo6bm93KCkgPCB0aW1lb3V0KSB7CiAgICAgICAg
ICAgICAvLyBUaGlzIGlzIHByZXR0eSBmdW5ueS4gT24gTGludXgsIGlmIHlvdSB3YWl0IHVudGls
IHRoZSBtYXggdGltZSwgaXQgaW1tZWRpYXRlbHkgcmVwb3J0cyB0aGF0IHlvdSB0aW1lZAogICAg
ICAgICAgICAgLy8gb3V0LiBXaGF0J3MgcGFydGljdWxhcmx5IGJhZCBhYm91dCB0aGlzIGlzIHRo
YXQgaXQgbmV2ZXIgcmVsZWFzZXMgdGhlIGxvY2sgaW4gdGhhdCBjYXNlLiBTbywgeW91IGxvb3AK
ICAgICAgICAgICAgIC8vIGZvcmV2ZXIgd2l0aG91dCB5aWVsZGluZyB0byB0aGUgdGhyZWFkIHRo
YXQgd291bGQgd2FrZSB5b3UgdXAuCi0gICAgICAgICAgICBpZiAodGltZW91dCA9PSBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSkKKyAgICAgICAgICAgIGlmICh0
aW1lb3V0ID09IENsb2NrOjp0aW1lX3BvaW50OjptYXgoKSkKICAgICAgICAgICAgICAgICBtZS0+
cGFya2luZ0NvbmRpdGlvbi53YWl0KGxvY2tlcik7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgbWUtPnBhcmtpbmdDb25kaXRpb24ud2FpdF91bnRpbChsb2NrZXIsIHRpbWVvdXQp
OwpJbmRleDogU291cmNlL1dURi93dGYvUGFya2luZ0xvdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL1BhcmtpbmdMb3QuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dURi93
dGYvUGFya2luZ0xvdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw4IEBAIGNsYXNzIFBh
cmtpbmdMb3QgewogICAgIFBhcmtpbmdMb3QoY29uc3QgUGFya2luZ0xvdCYpID0gZGVsZXRlOwog
CiBwdWJsaWM6CisgICAgdHlwZWRlZiBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrIENsb2NrOwor
ICAgIAogICAgIC8vIFBhcmtzIHRoZSB0aHJlYWQgaW4gYSBxdWV1ZSBhc3NvY2lhdGVkIHdpdGgg
dGhlIGdpdmVuIGFkZHJlc3MsIHdoaWNoIGNhbm5vdCBiZSBudWxsLiBUaGUKICAgICAvLyBwYXJr
aW5nIG9ubHkgc3VjY2VlZHMgaWYgdGhlIHZhbGlkYXRpb24gZnVuY3Rpb24gcmV0dXJucyB0cnVl
IHdoaWxlIHRoZSBxdWV1ZSBsb2NrIGlzIGhlbGQuCiAgICAgLy8gSWYgdmFsaWRhdGlvbiByZXR1
cm5zIGZhbHNlLCBpdCB3aWxsIHVubG9jayB0aGUgaW50ZXJuYWwgcGFya2luZyBxdWV1ZSBhbmQg
dGhlbiBpdCB3aWxsCkBAIC01Myw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3Qgdm9p
ZCogYWRkcmVzcywKICAgICAgICAgc3RkOjpmdW5jdGlvbjxib29sKCk+IHZhbGlkYXRpb24sCiAg
ICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBiZWZvcmVTbGVlcCwKLSAgICAgICAgc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCB0aW1lb3V0KTsKKyAgICAgICAgQ2xvY2s6
OnRpbWVfcG9pbnQgdGltZW91dCk7CiAKICAgICAvLyBTaW1wbGUgdmVyc2lvbiBvZiBwYXJrQ29u
ZGl0aW9uYWxseSgpIHRoYXQgY292ZXJzIHRoZSBtb3N0IGNvbW1vbiBjYXNlOiB5b3Ugd2FudCB0
byBwYXJrCiAgICAgLy8gaW5kZWZpbml0ZWx5IHNvIGxvbmcgYXMgdGhlIHZhbHVlIGF0IHRoZSBn
aXZlbiBhZGRyZXNzIGhhc24ndCBjaGFuZ2VkLgpAQCAtNjcsNyArNjksNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09IGV4cGVjdGVkOwogICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgIFtdICgpIHsgfSwKLSAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlf
Y2xvY2s6OnRpbWVfcG9pbnQ6Om1heCgpKTsKKyAgICAgICAgICAgIENsb2NrOjp0aW1lX3BvaW50
OjptYXgoKSk7CiAgICAgfQogCiAgICAgLy8gVW5wYXJrcyBvbmUgdGhyZWFkIGZyb20gdGhlIHF1
ZXVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gYWRkcmVzcywgd2hpY2ggY2Fubm90IGJlIG51
bGwuCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCShyZXZpc2lvbiAxODg1
MTApCisrKyBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEyNiw3ICsxMjYsNiBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogICAgIFRo
cmVhZElkZW50aWZpZXJEYXRhOjppbml0aWFsaXplT25jZSgpOwogICAgIFN0YWNrU3RhdHM6Omlu
aXRpYWxpemUoKTsKICAgICB3dGZUaHJlYWREYXRhKCk7Ci0gICAgc19kdG9hUDVNdXRleCA9IG5l
dyBNdXRleDsKICAgICBpbml0aWFsaXplRGF0ZXMoKTsKIH0KIApJbmRleDogU291cmNlL1dURi93
dGYvVGhyZWFkaW5nV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRp
bmdXaW4uY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdX
aW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1LDYgQEAgdm9pZCBpbml0aWFsaXpl
VGhyZWFkaW5nKCkKICAgICB0aHJlYWRNYXBNdXRleCgpOwogICAgIGluaXRpYWxpemVSYW5kb21O
dW1iZXJHZW5lcmF0b3IoKTsKICAgICB3dGZUaHJlYWREYXRhKCk7Ci0gICAgc19kdG9hUDVNdXRl
eCA9IG5ldyBNdXRleDsKICAgICBpbml0aWFsaXplRGF0ZXMoKTsKIH0KIApJbmRleDogU291cmNl
L1dURi93dGYvZHRvYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvZHRvYS5jcHAJ
KHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zLDcgKzMsNyBAQAogICogVGhlIGF1dGhvciBvZiB0aGlzIHNvZnR3YXJlIGlzIERh
dmlkIE0uIEdheS4KICAqCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDIwMDAsIDIwMDEgYnkgTHVj
ZW50IFRlY2hub2xvZ2llcy4KLSAqIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNSwgMjAwNiwgMjAw
NywgMjAwOCwgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTAsIDIwMTIsIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFBlcm1pc3Npb24gdG8g
dXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQog
ICogcHVycG9zZSB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0
aGlzIGVudGlyZSBub3RpY2UKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJkdG9hLmgiCiAK
ICNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgpAQCAtNTQsNyArNTUsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotTXV0ZXgq
IHNfZHRvYVA1TXV0ZXg7CitzdGF0aWMgU3RhdGljTG9jayBzX2R0b2FQNU11dGV4OwogCiB0eXBl
ZGVmIHVuaW9uIHsKICAgICBkb3VibGUgZDsKQEAgLTM3NSw3ICszNzYsNyBAQCBzdGF0aWMgQUxX
QVlTX0lOTElORSB2b2lkIHBvdzVtdWx0KEJpZ0luCiAgICAgaWYgKCEoayA+Pj0gMikpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIHNfZHRvYVA1TXV0ZXgtPmxvY2soKTsKKyAgICBzX2R0b2FQNU11
dGV4LmxvY2soKTsKICAgICBQNU5vZGUqIHA1ID0gcDVzOwogCiAgICAgaWYgKCFwNSkgewpAQCAt
Mzg4LDcgKzM4OSw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93NW11bHQoQmlnSW4K
ICAgICB9CiAKICAgICBpbnQgcDVzQ291bnRMb2NhbCA9IHA1c0NvdW50OwotICAgIHNfZHRvYVA1
TXV0ZXgtPnVubG9jaygpOworICAgIHNfZHRvYVA1TXV0ZXgudW5sb2NrKCk7CiAgICAgaW50IHA1
c1VzZWQgPSAwOwogCiAgICAgZm9yICg7OykgewpAQCAtMzk5LDcgKzQwMCw3IEBAIHN0YXRpYyBB
TFdBWVNfSU5MSU5FIHZvaWQgcG93NW11bHQoQmlnSW4KICAgICAgICAgICAgIGJyZWFrOwogCiAg
ICAgICAgIGlmICgrK3A1c1VzZWQgPT0gcDVzQ291bnRMb2NhbCkgewotICAgICAgICAgICAgc19k
dG9hUDVNdXRleC0+bG9jaygpOworICAgICAgICAgICAgc19kdG9hUDVNdXRleC5sb2NrKCk7CiAg
ICAgICAgICAgICBpZiAocDVzVXNlZCA9PSBwNXNDb3VudCkgewogICAgICAgICAgICAgICAgIEFT
U0VSVCghcDUtPm5leHQpOwogICAgICAgICAgICAgICAgIHA1LT5uZXh0ID0gbmV3IFA1Tm9kZTsK
QEAgLTQxMCw3ICs0MTEsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSB2b2lkIHBvdzVtdWx0KEJp
Z0luCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHA1c0NvdW50TG9jYWwgPSBwNXNDb3Vu
dDsKLSAgICAgICAgICAgIHNfZHRvYVA1TXV0ZXgtPnVubG9jaygpOworICAgICAgICAgICAgc19k
dG9hUDVNdXRleC51bmxvY2soKTsKICAgICAgICAgfQogICAgICAgICBwNSA9IHA1LT5uZXh0Owog
ICAgIH0KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2R0b2EuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9kdG9hLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XVEYvd3RmL2R0b2Eu
aAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTAgKzI4LDYgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAK
LWNsYXNzIE11dGV4OwotCi1leHRlcm4gTXV0ZXgqIHNfZHRvYVA1TXV0ZXg7Ci0KIHR5cGVkZWYg
Y2hhciBEdG9hQnVmZmVyWzgwXTsKIAogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZHRvYShEdG9h
QnVmZmVyIHJlc3VsdCwgZG91YmxlIGRkLCBib29sJiBzaWduLCBpbnQmIGV4cG9uZW50LCB1bnNp
Z25lZCYgcHJlY2lzaW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4MyBAQAor
MjAxNS0wOC0xNSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFJl
bmFtZSBNdXRleCB0byBMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDc2NzUKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4K
KworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGlzIGlzIGp1c3QgYSByZW5hbWluZy4K
KworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXN5bmNBdWRpb0RlY29kZXI6OkFzeW5jQXVkaW9EZWNvZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFzeW5jQXVkaW9EZWNvZGVyOjpydW5Mb29wKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmg6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRp
b1NvdXJjZTo6YWRkQXVkaW9Db25zdW1lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVh
bUF1ZGlvU291cmNlOjpyZW1vdmVBdWRpb0NvbnN1bWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnNldEF1ZGlvRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVBdWRpbyk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmg6CisgICAgICAgICogTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6Y2xv
c2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlOjppblByb2dyZXNzVHJhbnNhY3Rpb25Db21wbGV0ZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6Omhhc1BlbmRpbmdUcmFuc2FjdGlvbik6CisgICAg
ICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUJhY2tlbmQuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQmFja2VuZEJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VCYWNrZW5kQmFzZTo6cGVyZm9ybU9wZW5BbmRWZXJpZnkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VCYWNrZW5kQmFzZTo6aXNJbnRlcnJ1cHRlZCk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VDb250ZXh0OjpkYXRhYmFzZVRocmVhZCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhYmFzZUNvbnRleHQ6OnNldFBhdXNlZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZUNvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGFzay5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJl
YWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJlYWQ6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVGhyZWFkOjpzZXRQYXVzZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YWJhc2VUaHJlYWQ6OmhhbmRsZVBhdXNlZFF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6
c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJh
Y2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VU
cmFja2VyOjpyZXRyeUNhbkVzdGFibGlzaERhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFiYXNlVHJhY2tlcjo6aGFzRW50cnlGb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VUcmFja2VyOjpnZXRNYXhTaXplRm9yRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUcmFja2VyOjpjbG9zZUFsbERhdGFiYXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhYmFzZVRyYWNrZXI6OmludGVycnVwdEFsbERhdGFiYXNlc0ZvckNvbnRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpmdWxsUGF0aEZvckRhdGFiYXNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3JpZ2lucyk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhYmFzZVRyYWNrZXI6OmRhdGFiYXNlTmFtZXNGb3JPcmlnaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZXRhaWxzRm9yTmFtZUFuZE9yaWdpbik6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnNldERhdGFiYXNlRGV0YWlscyk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmRvbmVDcmVhdGluZ0RhdGFiYXNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6YWRkT3BlbkRhdGFiYXNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlT3BlbkRhdGFiYXNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6Z2V0T3BlbkRhdGFiYXNlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6Om9yaWdpbkxvY2tGb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YWJhc2VUcmFja2VyOjpxdW90YUZvck9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhYmFzZVRyYWNrZXI6OnNldFF1b3RhKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJh
Y2tlcjo6ZGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6
ZGVsZXRlRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxl
dGVEYXRhYmFzZUZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZW1v
dmVEZWxldGVkT3BlbmVkRGF0YWJhc2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJh
Y2tlcjo6ZGVsZXRlRGF0YWJhc2VGaWxlSWZFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VzUGF1c2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlVHJhY2tlcjo6c2V0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmaWNhdGlvbk11
dGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2NoZWR1bGVOb3RpZnlE
YXRhYmFzZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpub3Rp
ZnlEYXRhYmFzZXNDaGFuZ2VkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVHJhY2tlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTUUxDYWxsYmFja1dyYXBwZXI6OmNsZWFyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNRTENhbGxiYWNrV3JhcHBlcjo6dW53cmFwKToKKyAgICAgICAgKFdlYkNvcmU6OlNR
TENhbGxiYWNrV3JhcHBlcjo6aGFzQ2FsbGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRy
YW5zYWN0aW9uQmFja2VuZDo6ZG9DbGVhbnVwKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5z
YWN0aW9uQmFja2VuZDo6ZW5xdWV1ZVN0YXRlbWVudEJhY2tlbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpnZXROZXh0U3RhdGVtZW50KToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjppc0V4ZWN1dGlvblRlcm1p
bmF0aW5nKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmg6
CisgICAgICAgICogZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsOjpwb3N0TWVzc2FnZVRvUmVtb3Rl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbDo6dHJ5R2V0TWVzc2FnZUZy
b21SZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsOjppc0Nvbm5l
Y3RlZFRvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbDo6aGFzUGVuZGlu
Z0FjdGl2aXR5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbDo6bG9jYWxs
eUVudGFuZ2xlZFBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZXNzYWdlUG9ydENo
YW5uZWw6OnNldFJlbW90ZVBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZXNzYWdl
UG9ydENoYW5uZWw6OmVudGFuZ2xlZENoYW5uZWwpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1NZXNzYWdlUG9ydENoYW5uZWw6OmNsb3NlSW50ZXJuYWwpOgorICAgICAgICAqIGRvbS9kZWZh
dWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmg6CisgICAgICAgICogbG9hZGVyL2ljb24v
SWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cmVtb3Zl
QWxsSWNvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0lj
b25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25v
dXNOYXRpdmVJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6
OnN5bmNocm9ub3VzSWNvblVSTEZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRh
dGFiYXNlOjpyZXRhaW5JY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0
YWJhc2U6OnBlcmZvcm1SZXRhaW5JY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpJ
Y29uRGF0YWJhc2U6OnJlbGVhc2VJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpJ
Y29uRGF0YWJhc2U6OnBlcmZvcm1SZWxlYXNlSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvckljb25VUkwpOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlOjpzZXRJY29uVVJMRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJD
b3JlOjpJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzSWNvbkRhdGFLbm93bkZv
ckljb25VUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpwYWdlVVJMTWFwcGlu
Z0NvdW50KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cmV0YWluZWRQYWdlVVJM
Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjppY29uUmVjb3JkQ291bnQp
OgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjppY29uUmVjb3JkQ291bnRXaXRoRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Ondha2VTeW5jVGhyZWFkKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6aXNPcGVuQmVzaWRlc01haW5UaHJlYWRDYWxs
YmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpkYXRhYmFzZVBhdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpnZXRPckNyZWF0ZVBhZ2VVUkxSZWNvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjppY29uRGF0YWJhc2VTeW5jVGhyZWFk
KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybU9wZW5Jbml0aWFsaXph
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnBlcmZvcm1VUkxJbXBvcnQp
OgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpzeW5jVGhyZWFkTWFpbkxvb3ApOgor
ICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpwZXJmb3JtUGVuZGluZ1JldGFpbkFuZFJl
bGVhc2VPcGVyYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cmVhZEZy
b21EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OndyaXRlVG9EYXRh
YmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnBydW5lVW5yZXRhaW5lZElj
b25zKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6Y2xlYW51cFN5bmNUaHJlYWQp
OgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0TmV3VHJlZVN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWU6Om1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmlzUG9pbnRJbk5vbkZhc3RTY3JvbGxhYmxlUmVn
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmlzUnViYmVyQmFuZEluUHJv
Z3Jlc3MpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lSXNS
dWJiZXJCYW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmlzU2Nyb2xs
U25hcEluUHJvZ3Jlc3MpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFp
bkZyYW1lSXNTY3JvbGxTbmFwcGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
OjpzZXRDYW5SdWJiZXJCYW5kU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZTo6cnViYmVyQmFuZHNBdExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6
cnViYmVyQmFuZHNBdFJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnJ1
YmJlckJhbmRzQXRCb3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6cnVi
YmVyQmFuZHNBdFRvcCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRTY3Jv
bGxQaW5uaW5nQmVoYXZpb3IpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsUGlubmluZ0JlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6Ondp
bGxXaGVlbEV2ZW50U3RhcnRTd2lwZUdlc3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6bGF0Y2hlZE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6
c2V0TGF0Y2hlZE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6Y2xlYXJM
YXRjaGVkTm9kZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
UlRGRGF0YWJhc2VMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJDb3Jl
OjpIUlRGRGF0YWJhc2VMb2FkZXI6OndhaXRGb3JMb2FkZXJUaHJlYWRDb21wbGV0aW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0UmVjZWl2ZWRNZW1vcnlQcmVzc3VyZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmNsZWFyTWVtb3J5UHJl
c3N1cmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaG91bGRX
YWl0Rm9yTWVtb3J5Q2xlYXJNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmVJZk5lZWRlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGxheURpZFJlZnJlc2gpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpzZXRNb25vdG9uaWNBbmltYXRpb25TdGFy
dFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjptdXRleCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246OnNldERlbGF5Q2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6Y2xlYXJNYWluVGhyZWFkUGVuZGluZ0ZsYWcp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpkaXNw
YXRjaE5vdGlmaWNhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjpjYWxsYmFja0NvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6fkFWRldyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6QVZGV3JhcHBlcjo6bWFwTG9jayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVy
OjphZGRUb01hcCk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjpyZW1vdmVGcm9tTWFw
KToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OnBlcmlvZGljVGltZU9ic2VydmVyQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cHJvY2Vzc05vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjpsb2FkUGxheWFibGVDb21wbGV0aW9u
Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6bG9hZE1ldGFkYXRhQ29t
cGxldGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OnNlZWtDb21w
bGV0ZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjpwcm9jZXNzQ3Vl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OmxlZ2libGVPdXRwdXRDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjpwcm9jZXNzU2hvdWxkV2FpdEZvckxvYWRp
bmdPZlJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OnJlc291cmNlTG9h
ZGVyU2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlcXVlc3RlZFJlc291cmNlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVy
OjpoYW5kbGVTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lcjo6bm90aWZ5VHJhY2tPZlNhbXBsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjp0YWdz
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpu
b3RpZnlUcmFja09mVGFnc0NoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnJlcXVlc3RSZWZyZXNoQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0Zp
cmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbjo6YWRkTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpyZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246Om5vdGlmeURlbGV0ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpB
c3luY0NhbGxiYWNrOjpJbnZva2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFGb3VuZGF0aW9uOjpBc3luY0NhbGxiYWNrOjpvbk1lZGlhUGxheWVyRGVsZXRlZCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TGVnYWN5VGlsZUNhY2hlOjpzZXRUaWxlc09wYXF1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpMZWdhY3lUaWxlQ2FjaGU6OmRvTGF5b3V0VGlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGVn
YWN5VGlsZUNhY2hlOjpzZXRDdXJyZW50U2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5
VGlsZUNhY2hlOjpjb21taXRTY2FsZUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lU
aWxlQ2FjaGU6OmxheW91dFRpbGVzTm93KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVD
YWNoZTo6bGF5b3V0VGlsZXNOb3dGb3JSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRp
bGVDYWNoZTo6cmVtb3ZlQWxsTm9uVmlzaWJsZVRpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6Okxl
Z2FjeVRpbGVDYWNoZTo6cmVtb3ZlQWxsVGlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5
VGlsZUNhY2hlOjpyZW1vdmVGb3JlZ3JvdW5kVGlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGVn
YWN5VGlsZUNhY2hlOjpzZXRDb250ZW50UmVwbGFjZW1lbnRJbWFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmNvbnRlbnRSZXBsYWNlbWVudEltYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dGlsZUNyZWF0aW9uVGltZXJGaXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldE5lZWRzRGlzcGxheUluUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnVwZGF0ZVRpbGluZ01vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpzZXRUaWxpbmdNb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6ZG9QZW5kaW5nUmVwYWludHMpOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpmbHVzaFNhdmVkRGlzcGxheVJlY3RzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6cHJlcGFyZVRvRHJhdyk6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVM
YXllclBvb2w6OmFkZExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVMYXllclBv
b2w6OnRha2VMYXllcldpdGhTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVMYXll
clBvb2w6OnNldENhcGFjaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVMYXllclBv
b2w6OnBydW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVMYXllclBvb2w6OmRyYWlu
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OmFkZCk6CisgICAgICAgIChXZWJD
b3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vy
bERvd25sb2FkTWFuYWdlcjo6Z2V0QWN0aXZlRG93bmxvYWRDb3VudCk6CisgICAgICAgIChXZWJD
b3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjpnZXRQZW5kaW5nRG93bmxvYWRDb3VudCk6CisgICAg
ICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjpzdG9wVGhyZWFkSWZJZGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnVwZGF0ZUhhbmRsZUxpc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjp+Q3VybERvd25sb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6aW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93
bmxvYWQ6OmdldFRlbXBQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Z2V0
VXJsKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Z2V0UmVzcG9uc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpjbG9zZUZpbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybERvd25sb2FkOjpkaWRSZWNlaXZlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkN1
cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25s
b2FkOjpkaWRGYWlsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25s
b2FkLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVKYXJQYXRoKToKKyAgICAgICAgKFdl
YkNvcmU6OnNoYXJlZFJlc291cmNlTXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6Y3VybF9sb2Nr
X2NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmN1cmxfdW5sb2NrX2NhbGxiYWNrKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW06CisgICAgICAgIChXZWJD
b3JlOjpRTERpcmVjdG9yeUF0dHJpYnV0ZXMpOgorICAgICAgICAocWxQcmV2aWV3Q29udmVydGVy
RGljdGlvbmFyeU11dGV4KToKKyAgICAgICAgKFdlYkNvcmU6OmFkZFFMUHJldmlld0NvbnZlcnRl
cldpdGhGaWxlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OnFsUHJldmlld0NvbnZlcnRlclVU
SUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpyZW1vdmVRTFByZXZpZXdDb252ZXJ0ZXJGb3JV
UkwpOgorICAgICAgICAoV2ViQ29yZTo6c2FmZVFMVVJMRm9yRG9jdW1lbnRVUkxBbmRSZXNvdXJj
ZVVSTCk6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpT
UUxpdGVEYXRhYmFzZTo6aW50ZXJydXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFi
YXNlOjptYXhpbXVtU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6c2V0
TWF4aW11bVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnBhZ2VTaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpmcmVlU3BhY2VTaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjp0b3RhbFNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6OnJ1bkluY3JlbWVudGFsVmFjdXVtQ29tbWFuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6c2V0QXV0aG9yaXplcik6CisgICAgICAgICog
cGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVE
YXRhYmFzZTo6ZGF0YWJhc2VNdXRleCk6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZVN0
YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ6OnByZXBhcmUp
OgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50OjpzdGVwKToKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6
OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6c3RvcCk6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuaDoKKwogMjAxNS0wOC0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTZWFyY2ggZmllbGRzIHNob3VsZCBzY2FsZSB3aGVu
IHJlbmRlcmluZyB3aGlsZSB6b29tZWQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCShyZXZpc2lvbiAxODg1MTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBB
c3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29kZXIoKQogewogICAgIC8vIFN0YXJ0IHdv
cmtlciB0aHJlYWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwogICAgIG1fdGhy
ZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6OnRocmVhZEVudHJ5LCB0aGlz
LCAiQXVkaW8gRGVjb2RlciIpOwogfQogCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgQXN5bmNBdWRp
b0RlY29kZXI6OnJ1bkxvb3AoKQogCiAgICAgewogICAgICAgICAvLyBXYWl0IGZvciB1bnRpbCB3
ZSBoYXZlIG1fdGhyZWFkSUQgZXN0YWJsaXNoZWQgYmVmb3JlIHN0YXJ0aW5nIHRoZSBydW4gbG9v
cC4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKICAgICB9CiAKICAg
ICAvLyBLZWVwIHJ1bm5pbmcgZGVjb2RpbmcgdGFza3MgdW50aWwgd2UncmUga2lsbGVkLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0Rl
Y29kZXIuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04MSw3ICs4MSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBydW5Mb29wKCk7CiAKICAgICBXVEY6OlRocmVhZElkZW50aWZp
ZXIgbV90aHJlYWRJRDsKLSAgICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CisgICAgTG9j
ayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgTWVzc2FnZVF1ZXVlPERlY29kaW5nVGFzaz4g
bV9xdWV1ZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHQuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgwLDcgKzM4
MCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb25uZWN0aW9uQ291bnQgeyAwIH07CiAK
ICAgICAvLyBHcmFwaCBsb2NraW5nLgotICAgIE11dGV4IG1fY29udGV4dEdyYXBoTXV0ZXg7Cisg
ICAgTG9jayBtX2NvbnRleHRHcmFwaE11dGV4OwogICAgIHZvbGF0aWxlIFRocmVhZElkZW50aWZp
ZXIgbV9hdWRpb1RocmVhZCB7IDAgfTsKICAgICB2b2xhdGlsZSBUaHJlYWRJZGVudGlmaWVyIG1f
Z3JhcGhPd25lclRocmVhZDsgLy8gaWYgdGhlIGxvY2sgaXMgaGVsZCB0aGVuIHRoaXMgaXMgdGhl
IHRocmVhZCB3aGljaCBvd25zIGl0LCBvdGhlcndpc2UgPT0gVW5kZWZpbmVkVGhyZWFkSWRlbnRp
ZmllcgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYzLDEzICs2MywxMyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291
cmNlU3RhdGVzJiBNZWRpYVN0CiAKIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6YWRkQXVk
aW9Db25zdW1lcihQYXNzUmVmUHRyPEF1ZGlvRGVzdGluYXRpb25Db25zdW1lcj4gY29uc3VtZXIp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CiAgICAgbV9hdWRpb0NvbnN1
bWVycy5hcHBlbmQoY29uc3VtZXIpOwogfQogCiBib29sIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6
OnJlbW92ZUF1ZGlvQ29uc3VtZXIoQXVkaW9EZXN0aW5hdGlvbkNvbnN1bWVyKiBjb25zdW1lcikK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdWRpb0NvbnN1bWVyc0xvY2spOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsKICAgICBzaXplX3QgcG9zID0g
bV9hdWRpb0NvbnN1bWVycy5maW5kKGNvbnN1bWVyKTsKICAgICBpZiAocG9zICE9IG5vdEZvdW5k
KSB7CiAgICAgICAgIG1fYXVkaW9Db25zdW1lcnMucmVtb3ZlKHBvcyk7CkBAIC04MCwxNCArODAs
MTQgQEAgYm9vbCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpyZW1vdmVBdWRpbwogCiB2b2lkIE1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnNldEF1ZGlvRm9ybWF0KHNpemVfdCBudW1iZXJPZkNoYW5u
ZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1ZGlv
Q29uc3VtZXJzTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdWRpb0NvbnN1bWVyc0xv
Y2spOwogICAgIGZvciAoYXV0byYgY29uc3VtZXIgOiBtX2F1ZGlvQ29uc3VtZXJzKQogICAgICAg
ICBjb25zdW1lci0+c2V0Rm9ybWF0KG51bWJlck9mQ2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogfQog
CiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVBdWRpbyhBdWRpb0J1cyogYnVz
LCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXVk
aW9Db25zdW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJz
TG9jayk7CiAgICAgZm9yIChhdXRvJiBjb25zdW1lciA6IG1fYXVkaW9Db25zdW1lcnMpCiAgICAg
ICAgIGNvbnN1bWVyLT5jb25zdW1lQXVkaW8oYnVzLCBudW1iZXJPZkZyYW1lcyk7CiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvRGVzdGluYXRpb25Db25zdW1lci5oIgog
I2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1p
dGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02NSw3ICs2Niw3IEBAIHByaXZh
dGU6CiAgICAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpOwogCiAgICAgU3RyaW5nIG1fZGV2aWNl
SWQ7Ci0gICAgTXV0ZXggbV9hdWRpb0NvbnN1bWVyc0xvY2s7CisgICAgTG9jayBtX2F1ZGlvQ29u
c3VtZXJzTG9jazsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvRGVzdGluYXRpb25Db25zdW1lcj4+
IG1fYXVkaW9Db25zdW1lcnM7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyBtX2N1cnJl
bnRTdGF0ZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsNyAr
Mjk0LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xvc2UoKQogICAgIEFTU0VSVChjdXJyZW50VGhyZWFk
KCkgPT0gZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFkKCktPmdldFRocmVhZElEKCkp
OwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJv
Z3Jlc3NNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblBy
b2dyZXNzTXV0ZXgpOwogCiAgICAgICAgIC8vIENsZWFuIHVwIHRyYW5zYWN0aW9ucyB0aGF0IGhh
dmUgbm90IGJlZW4gc2NoZWR1bGVkIHlldDoKICAgICAgICAgLy8gVHJhbnNhY3Rpb24gcGhhc2Ug
MSBjbGVhbnVwLiBTZWUgY29tbWVudCBvbiAiV2hhdCBoYXBwZW5zIGlmIGEKQEAgLTU2NSw3ICs1
NjUsNyBAQCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRyYW5zYWN0aW9uKCkKIAogUGFzc1JlZlB0
cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IERhdGFiYXNlOjpydW5UcmFuc2FjdGlvbihQYXNzUmVm
UHRyPFNRTFRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbiwgYm9vbCByZWFkT25seSwgY29uc3QgQ2hh
bmdlVmVyc2lvbkRhdGEqIGRhdGEpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdHJhbnNh
Y3Rpb25JblByb2dyZXNzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJhbnNhY3Rp
b25JblByb2dyZXNzTXV0ZXgpOwogICAgIGlmICghbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFibGVk
KQogICAgICAgICByZXR1cm4gMDsKIApAQCAtNTkzLDE0ICs1OTMsMTQgQEAgdm9pZCBEYXRhYmFz
ZTo6c2NoZWR1bGVUcmFuc2FjdGlvblN0ZXAoUwogCiB2b2lkIERhdGFiYXNlOjppblByb2dyZXNz
VHJhbnNhY3Rpb25Db21wbGV0ZWQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RyYW5z
YWN0aW9uSW5Qcm9ncmVzc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyYW5zYWN0
aW9uSW5Qcm9ncmVzc011dGV4KTsKICAgICBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzcyA9IGZhbHNl
OwogICAgIHNjaGVkdWxlVHJhbnNhY3Rpb24oKTsKIH0KIAogYm9vbCBEYXRhYmFzZTo6aGFzUGVu
ZGluZ1RyYW5zYWN0aW9uKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90cmFuc2FjdGlv
bkluUHJvZ3Jlc3NNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmFuc2FjdGlvbklu
UHJvZ3Jlc3NNdXRleCk7CiAgICAgcmV0dXJuIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzIHx8ICFt
X3RyYW5zYWN0aW9uUXVldWUuaXNFbXB0eSgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCShyZXZpc2lvbiAxODg1MTApCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywg
MjAwOCwgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJEYXRh
YmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiU1FMaXRlRGF0YWJhc2UuaCIKICNpbmNsdWRlIDx3dGYv
RGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNjIsNyArMTYzLDcgQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8RGF0YWJhc2VBdXRob3JpemVyPiBtX2RhdGFiYXNlQXV0aG9yaXplcjsK
IAogICAgIERlcXVlPFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+PiBtX3RyYW5zYWN0aW9u
UXVldWU7Ci0gICAgTXV0ZXggbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleDsKKyAgICBMb2Nr
IG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXg7CiAgICAgYm9vbCBtX3RyYW5zYWN0aW9uSW5Q
cm9ncmVzczsKICAgICBib29sIG1faXNUcmFuc2FjdGlvblF1ZXVlRW5hYmxlZDsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNr
LmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRhc2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTMsIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjp0YXNrQ29t
cGwKIHsKICAgICBtX3N5bmNocm9ub3VzTXV0ZXgubG9jaygpOwogICAgIG1fdGFza0NvbXBsZXRl
ZCA9IHRydWU7Ci0gICAgbV9zeW5jaHJvbm91c0NvbmRpdGlvbi5zaWduYWwoKTsKKyAgICBtX3N5
bmNocm9ub3VzQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIG1fc3luY2hyb25vdXNNdXRleC51
bmxvY2soKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRhc2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVGFzay5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIw
MTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zMSw4ICszMSw5IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VCYXNp
Y1R5cGVzLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIlNRTFRyYW5z
YWN0aW9uQmFja2VuZC5oIgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRlIDx3
dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIApAQCAtNTgsOCArNTksOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
Ym9vbCBtX3Rhc2tDb21wbGV0ZWQ7Ci0gICAgTXV0ZXggbV9zeW5jaHJvbm91c011dGV4OwotICAg
IFRocmVhZENvbmRpdGlvbiBtX3N5bmNocm9ub3VzQ29uZGl0aW9uOworICAgIExvY2sgbV9zeW5j
aHJvbm91c011dGV4OworICAgIENvbmRpdGlvbiBtX3N5bmNocm9ub3VzQ29uZGl0aW9uOwogI2lm
bmRlZiBOREVCVUcKICAgICBib29sIG1faGFzQ2hlY2tlZEZvclRlcm1pbmF0aW9uOwogI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFk
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGhyZWFkLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYx
LDcgKzYxLDcgQEAgRGF0YWJhc2VUaHJlYWQ6On5EYXRhYmFzZVRocmVhZCgpCiAKIGJvb2wgRGF0
YWJhc2VUaHJlYWQ6OnN0YXJ0KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fdGhyZWFkQ3Jl
YXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7
CiAKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xMDAsNyAr
MTAwLDcgQEAgdm9pZCBEYXRhYmFzZVRocmVhZDo6ZGF0YWJhc2VUaHJlYWQoKQogewogICAgIHsK
ICAgICAgICAgLy8gV2FpdCBmb3IgRGF0YWJhc2VUaHJlYWQ6OnN0YXJ0KCkgdG8gY29tcGxldGUu
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CiAgICAgICAgIExPRyhT
dG9yYWdlQVBJLCAiU3RhcnRlZCBEYXRhYmFzZVRocmVhZCAlcCIsIHRoaXMpOwogICAgIH0KIApJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUaHJlYWQuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Miw3ICs3Miw3
IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGF0YWJhc2VUaHJlYWRTdGFydCh2b2lkKik7
CiAgICAgdm9pZCBkYXRhYmFzZVRocmVhZCgpOwogCi0gICAgTXV0ZXggbV90aHJlYWRDcmVhdGlv
bk11dGV4OworICAgIExvY2sgbV90aHJlYWRDcmVhdGlvbk11dGV4OwogICAgIFRocmVhZElkZW50
aWZpZXIgbV90aHJlYWRJRDsKICAgICBSZWZQdHI8RGF0YWJhc2VUaHJlYWQ+IG1fc2VsZlJlZjsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNr
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04OSw3ICs4OSw3IEBAIERhdGFiYXNlVHJhY2tlcjo6RGF0YWJhc2VUcmFja2VyKGNvbnN0IFMK
IAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnNldERhdGFiYXNlRGlyZWN0b3J5UGF0aChjb25zdCBT
dHJpbmcmIHBhdGgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VH
dWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAg
ICBBU1NFUlQoIW1fZGF0YWJhc2UuaXNPcGVuKCkpOwogICAgIG1fZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoID0gcGF0aC5pc29sYXRlZENvcHkoKTsKIH0KQEAgLTE2Niw3ICsxNjYsNyBAQCBib29sIERh
dGFiYXNlVHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhCiB7CiAgICAgZXJyb3IgPSBEYXRhYmFz
ZUVycm9yOjpOb25lOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VH
dWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAg
ICBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKTsKIAog
ICAgIGlmIChpc0RlbGV0aW5nRGF0YWJhc2VPck9yaWdpbkZvcihvcmlnaW4sIG5hbWUpKSB7CkBA
IC0yMTgsNyArMjE4LDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OnJldHJ5Q2FuRXN0YWJsaXNo
RAogewogICAgIGVycm9yID0gRGF0YWJhc2VFcnJvcjo6Tm9uZTsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFi
YXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGNvbnRl
eHQtPnNlY3VyaXR5T3JpZ2luKCk7CiAKICAgICAvLyBXZSBoYXZlIGFscmVhZHkgZWxpbWluYXRl
ZCBvdGhlciB0eXBlcyBvZiBlcnJvcnMgaW4gY2FuRXN0YWJsaXNoRGF0YWJhc2UoKS4KQEAgLTI1
Nyw3ICsyNTcsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6aGFzRW50cnlGb3JPcmlnaW5OCiAK
IGJvb2wgRGF0YWJhc2VUcmFja2VyOjpoYXNFbnRyeUZvck9yaWdpbihTZWN1cml0eU9yaWdpbiog
b3JpZ2luKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgcmV0
dXJuIGhhc0VudHJ5Rm9yT3JpZ2luTm9Mb2NrKG9yaWdpbik7CiB9CiAKQEAgLTI4Niw3ICsyODYs
NyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFja2VyOjpnZXRNCiB7CiAgICAgLy8g
VGhlIG1heGltdW0gc2l6ZSBmb3IgYSBkYXRhYmFzZSBpcyB0aGUgZnVsbCBxdW90YSBmb3IgaXRz
IG9yaWdpbiwgbWludXMgdGhlIGN1cnJlbnQgdXNhZ2Ugd2l0aGluIHRoZSBvcmlnaW4sCiAgICAg
Ly8gcGx1cyB0aGUgY3VycmVudCB1c2FnZSBvZiB0aGUgZ2l2ZW4gZGF0YWJhc2UKLSAgICBNdXRl
eExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4g
PSBkYXRhYmFzZS0+c2VjdXJpdHlPcmlnaW4oKTsKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBx
dW90YSA9IHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbik7CkBAIC0zMTEsNyArMzExLDcgQEAg
dm9pZCBEYXRhYmFzZVRyYWNrZXI6OmNsb3NlQWxsRGF0YWJhc2VzKAogewogICAgIFZlY3RvcjxS
ZWY8RGF0YWJhc2U+PiBvcGVuRGF0YWJhc2VzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
b3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICAgICAgTG9j
a0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogICAg
ICAgICBpZiAoIW1fb3BlbkRhdGFiYXNlTWFwKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBmb3IgKGF1dG8mIG5hbWVNYXAgOiBtX29wZW5EYXRhYmFzZU1hcC0+dmFsdWVzKCkpIHsKQEAg
LTM4OSwxMyArMzg5LDEzIEBAIFN0cmluZyBEYXRhYmFzZVRyYWNrZXI6OmZ1bGxQYXRoRm9yRGF0
YWIKIAogU3RyaW5nIERhdGFiYXNlVHJhY2tlcjo6ZnVsbFBhdGhGb3JEYXRhYmFzZShTZWN1cml0
eU9yaWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOb3RFeGlz
dHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICByZXR1cm4g
ZnVsbFBhdGhGb3JEYXRhYmFzZU5vTG9jayhvcmlnaW4sIG5hbWUsIGNyZWF0ZUlmTm90RXhpc3Rz
KS5pc29sYXRlZENvcHkoKTsKIH0KIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6Om9yaWdpbnMoVmVj
dG9yPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+JiBvcmlnaW5zUmVzdWx0KQogewotICAgIE11dGV4
TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9j
a0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAKICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERv
bnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpA
QCAtNDQ4LDcgKzQ0OCw3IEBAIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpkYXRhYmFzZU5hbWVzRm9y
T3IKIHsKICAgICBWZWN0b3I8U3RyaW5nPiB0ZW1wOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgICAgIGlmICghZGF0YWJhc2VOYW1lc0Zv
ck9yaWdpbk5vTG9jayhvcmlnaW4sIHRlbXApKQogICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CkBAIC00NjUsNyArNDY1LDcgQEAgRGF0YWJhc2VEZXRhaWxzIERhdGFiYXNlVHJhY2tlcjo6
ZGV0YWlscwogICAgIGludDY0X3QgZXhwZWN0ZWRVc2FnZTsKIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAKICAgICAgICAgb3BlblRyYWNrZXJE
YXRhYmFzZShEb250Q3JlYXRlSWZEb2VzTm90RXhpc3QpOwogICAgICAgICBpZiAoIW1fZGF0YWJh
c2UuaXNPcGVuKCkpCkBAIC01MDAsNyArNTAwLDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnNl
dERhdGFiYXNlRGV0YWlscwogICAgIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyID0gb3JpZ2luLT5k
YXRhYmFzZUlkZW50aWZpZXIoKTsKICAgICBpbnQ2NF90IGd1aWQgPSAwOwogCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
RGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoQ3Jl
YXRlSWZEb2VzTm90RXhpc3QpOwogICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKQEAgLTU0
OSw3ICs1NDksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEZXRhaWxzCiAK
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpkb25lQ3JlYXRpbmdEYXRhYmFzZShEYXRhYmFzZSogZGF0
YWJhc2UpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7
CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICBkb25l
Q3JlYXRpbmdEYXRhYmFzZShkYXRhYmFzZS0+c2VjdXJpdHlPcmlnaW4oKSwgZGF0YWJhc2UtPnN0
cmluZ0lkZW50aWZpZXIoKSk7CiB9CiAKQEAgLTU1OSw3ICs1NTksNyBAQCB2b2lkIERhdGFiYXNl
VHJhY2tlcjo6YWRkT3BlbkRhdGFiYXNlKERhCiAgICAgICAgIHJldHVybjsKIAogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1
YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFi
YXNlTWFwR3VhcmQpOwogCiAgICAgICAgIGlmICghbV9vcGVuRGF0YWJhc2VNYXApCiAgICAgICAg
ICAgICBtX29wZW5EYXRhYmFzZU1hcCA9IHN0ZDo6bWFrZV91bmlxdWU8RGF0YWJhc2VPcmlnaW5N
YXA+KCk7CkBAIC01ODksNyArNTg5LDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnJlbW92ZU9w
ZW5EYXRhYmFzZQogICAgICAgICByZXR1cm47CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CisgICAgICAgIExv
Y2tIb2xkZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKIAog
ICAgICAgICBpZiAoIW1fb3BlbkRhdGFiYXNlTWFwKSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTYyOSw3ICs2MjksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVt
b3ZlT3BlbkRhdGFiYXNlCiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpnZXRPcGVuRGF0YWJhc2Vz
KFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgSGFzaFNldDxSZWZQ
dHI8RGF0YWJhc2U+PiogZGF0YWJhc2VzKQogewotICAgIE11dGV4TG9ja2VyIG9wZW5EYXRhYmFz
ZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CisgICAgTG9ja0hvbGRlciBvcGVuRGF0
YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogICAgIGlmICghbV9vcGVuRGF0
YWJhc2VNYXApCiAgICAgICAgIHJldHVybjsKIApAQCAtNjQ3LDcgKzY0Nyw3IEBAIHZvaWQgRGF0
YWJhc2VUcmFja2VyOjpnZXRPcGVuRGF0YWJhc2VzKFMKIAogUmVmUHRyPE9yaWdpbkxvY2s+IERh
dGFiYXNlVHJhY2tlcjo6b3JpZ2luTG9ja0ZvcihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewot
ICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tI
b2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgU3RyaW5nIGRhdGFiYXNl
SWRlbnRpZmllciA9IG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCk7CiAKICAgICAvLyBUaGUg
b3JpZ2luTG9ja01hcCBpcyBhY2Nlc3NlZCBmcm9tIG11bHRpcGxlIERhdGFiYXNlVGhyZWFkcyBz
aW5jZQpAQCAtNzI3LDEzICs3MjcsMTMgQEAgdW5zaWduZWQgbG9uZyBsb25nIERhdGFiYXNlVHJh
Y2tlcjo6cXVvdAogCiB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFja2VyOjpxdW90YUZv
ck9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tE
YXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1f
ZGF0YWJhc2VHdWFyZCk7CiAgICAgcmV0dXJuIHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbik7
CiB9CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXRRdW90YShTZWN1cml0eU9yaWdpbiogb3Jp
Z2luLCB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0Rh
dGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKIAogICAgIGlmIChxdW90YUZvck9yaWdpbk5vTG9jayhvcmlnaW4pID09
IHF1b3RhKQogICAgICAgICByZXR1cm47CkBAIC04NjQsNyArODY0LDcgQEAgYm9vbCBEYXRhYmFz
ZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cgogewogICAgIFZlY3RvcjxTdHJpbmc+IGRhdGFi
YXNlTmFtZXM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1
YXJkKTsKICAgICAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShEb250Q3JlYXRlSWZEb2VzTm90RXhp
c3QpOwogICAgICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC04OTAsNyArODkwLDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0
ZU9yaWdpbihTZWN1cgogICAgIH0KIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0Rh
dGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNl
KG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgICAgIGRlbGV0ZU9yaWdpbkxvY2tGb3Iob3JpZ2luKTsK
ICAgICAgICAgZG9uZURlbGV0aW5nT3JpZ2luKG9yaWdpbik7CiAKQEAgLTEwNzEsNyArMTA3MSw3
IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpkb25lRGVsZXRpbmdPcmlnaW4KIGJvb2wgRGF0YWJh
c2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBT
dHJpbmcmIG5hbWUpCiB7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2Uo
bV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKICAgICAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShEb250Q3JlYXRlSWZEb2Vz
Tm90RXhpc3QpOwogICAgICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0xMDg2LDEyICsxMDg2LDEyIEBAIGJvb2wgRGF0YWJhc2VUcmFj
a2VyOjpkZWxldGVEYXRhYmFzZShTZWMKICAgICAvLyBXZSBkcm9wIHRoZSBsb2NrIGhlcmUgYmVj
YXVzZSBob2xkaW5nIGxvY2tzIGR1cmluZyBhIGNhbGwgdG8gZGVsZXRlRGF0YWJhc2VGaWxlIHdp
bGwgZGVhZGxvY2suCiAgICAgaWYgKCFkZWxldGVEYXRhYmFzZUZpbGUob3JpZ2luLCBuYW1lKSkg
ewogICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBkZWxldGUgZmlsZSBmb3IgZGF0YWJhc2Ug
JXMgaW4gb3JpZ2luICVzIiwgbmFtZS5hc2NpaSgpLmRhdGEoKSwgb3JpZ2luLT5kYXRhYmFzZUlk
ZW50aWZpZXIoKS5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRh
YmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZSht
X2RhdGFiYXNlR3VhcmQpOwogICAgICAgICBkb25lRGVsZXRpbmdEYXRhYmFzZShvcmlnaW4sIG5h
bWUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgTXV0ZXhMb2NrZXIgbG9j
a0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2Uo
bV9kYXRhYmFzZUd1YXJkKTsKIAogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQobV9kYXRh
YmFzZSwgIkRFTEVURSBGUk9NIERhdGFiYXNlcyBXSEVSRSBvcmlnaW49PyBBTkQgbmFtZT0/Iik7
CiAgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKSB7CkBAIC0xMTMxLDcg
KzExMzEsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlRGF0YWJhc2VGaWxlCiAKICNp
Zm5kZWYgTkRFQlVHCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFz
ZUd1YXJkKTsKICAgICAgICAgQVNTRVJUKGlzRGVsZXRpbmdEYXRhYmFzZU9yT3JpZ2luRm9yKG9y
aWdpbiwgbmFtZSkpOwogICAgIH0KICNlbmRpZgpAQCAtMTE0Miw3ICsxMTQyLDcgQEAgYm9vbCBE
YXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZQogICAgIC8vIERhdGFiYXNlOjptYXJr
QXNEZWxldGVkQW5kQ2xvc2UoKSwgc2luY2UgdGhhdCBjYW4gY2F1c2UgYSBkZWFkbG9jawogICAg
IC8vIGR1cmluZyB0aGUgc3luY2hyb25vdXMgRGF0YWJhc2VUaHJlYWQgY2FsbCBpdCB0cmlnZ2Vy
cy4KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVu
RGF0YWJhc2VNYXBHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgb3BlbkRhdGFiYXNlTWFwTG9j
ayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKICAgICAgICAgaWYgKG1fb3BlbkRhdGFiYXNlTWFw
KSB7CiAgICAgICAgICAgICAvLyBUaGVyZSBhcmUgc29tZSBvcGVuIGRhdGFiYXNlcywgbGV0cyBj
aGVjayBpZiB0aGV5IGFyZSBmb3IgdGhpcyBvcmlnaW4uCiAgICAgICAgICAgICBEYXRhYmFzZU5h
bWVNYXAqIG5hbWVNYXAgPSBtX29wZW5EYXRhYmFzZU1hcC0+Z2V0KG9yaWdpbik7CkBAIC0xMTg1
LDcgKzExODUsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlRGVsZXRlZE9wZW5lCiAg
ICAgCiAgICAgewogICAgICAgICAvLyBBY3F1aXJlIHRoZSBsb2NrIGJlZm9yZSBjYWxsaW5nIG9w
ZW5UcmFja2VyRGF0YWJhc2UuCi0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2Rh
dGFiYXNlR3VhcmQpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNl
R3VhcmQpOwogICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RF
eGlzdCk7CiAgICAgfQogCkBAIC0xMjAxLDcgKzEyMDEsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tl
cjo6cmVtb3ZlRGVsZXRlZE9wZW5lCiAgICAgLy8gRGF0YWJhc2U6Om1hcmtBc0RlbGV0ZWRBbmRD
bG9zZSgpLCBzaW5jZSB0aGF0IGNhbiBjYXVzZSBhIGRlYWRsb2NrCiAgICAgLy8gZHVyaW5nIHRo
ZSBzeW5jaHJvbm91cyBEYXRhYmFzZVRocmVhZCBjYWxsIGl0IHRyaWdnZXJzLgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1
YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFi
YXNlTWFwR3VhcmQpOwogICAgICAgICBpZiAobV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAg
ICAgIGZvciAoYXV0byYgb3BlbkRhdGFiYXNlIDogKm1fb3BlbkRhdGFiYXNlTWFwKSB7CiAgICAg
ICAgICAgICAgICAgYXV0byYgb3JpZ2luID0gb3BlbkRhdGFiYXNlLmtleTsKQEAgLTEzMDUsOSAr
MTMwNSw5IEBAIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGUKICAgICBy
ZXR1cm4gU1FMaXRlRmlsZVN5c3RlbTo6ZGVsZXRlRGF0YWJhc2VGaWxlKHBhdGgpOwogfQogCi1N
dXRleCYgRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRleCgpCitMb2NrJiBEYXRhYmFz
ZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8TXV0ZXg+IG11dGV4OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2NrPiBtdXRleDsK
ICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTEzMzAsOSArMTMzMCw5IEBAIHZvaWQgRGF0YWJh
c2VUcmFja2VyOjpzZXRDbGllbnQoRGF0YWJhc2UKICAgICBtX2NsaWVudCA9IGNsaWVudDsKIH0K
IAotc3RhdGljIE11dGV4JiBub3RpZmljYXRpb25NdXRleCgpCitzdGF0aWMgTG9jayYgbm90aWZp
Y2F0aW9uTXV0ZXgoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0ZXg7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4OwogICAgIHJldHVybiBtdXRl
eDsKIH0KIApAQCAtMTM0Niw3ICsxMzQ2LDcgQEAgc3RhdGljIE5vdGlmaWNhdGlvblF1ZXVlJiBu
b3RpZmljYXRpb25RdQogCiB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2NoZWR1bGVOb3RpZnlEYXRh
YmFzZUNoYW5nZWQoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKIAogICAgIG5vdGlmaWNhdGlvblF1
ZXVlKCkuYXBwZW5kKHN0ZDo6cGFpcjxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTdHJpbmc+KG9y
aWdpbi0+aXNvbGF0ZWRDb3B5KCksIG5hbWUuaXNvbGF0ZWRDb3B5KCkpKTsKICAgICBzY2hlZHVs
ZUZvck5vdGlmaWNhdGlvbigpOwpAQCAtMTM3Miw3ICsxMzcyLDcgQEAgdm9pZCBEYXRhYmFzZVRy
YWNrZXI6Om5vdGlmeURhdGFiYXNlc0NoYQogCiAgICAgTm90aWZpY2F0aW9uUXVldWUgbm90aWZp
Y2F0aW9uczsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihub3RpZmljYXRpb25N
dXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobm90aWZpY2F0aW9uTXV0ZXgoKSk7
CiAKICAgICAgICAgbm90aWZpY2F0aW9ucy5zd2FwKG5vdGlmaWNhdGlvblF1ZXVlKCkpOwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUcmFja2VyLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw3ICsx
MDcsNyBAQCBwdWJsaWM6CiAgICAgLy8gTW9iaWxlU2FmYXJpIHdpbGwgZ3JhYiB0aGlzIG11dGV4
IG9uIHRoZSBtYWluIHRocmVhZCBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIHRhc2sgdG8gCiAgICAg
Ly8gY2xlYW4gdXAgemVybyBieXRlIGRhdGFiYXNlIGZpbGVzLiAgQW55IG9wZXJhdGlvbnMgdG8g
b3BlbiBuZXcgZGF0YWJhc2Ugd2lsbCBoYXZlIHRvCiAgICAgLy8gd2FpdCBmb3IgdGhhdCB0YXNr
IHRvIGZpbmlzaCBieSB3YWl0aW5nIG9uIHRoaXMgbXV0ZXguCi0gICAgc3RhdGljIE11dGV4JiBv
cGVuRGF0YWJhc2VNdXRleCgpOworICAgIHN0YXRpYyBMb2NrJiBvcGVuRGF0YWJhc2VNdXRleCgp
OwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVtcHR5RGF0YWJhc2VGaWxl
c1JlbW92YWxUYXNrV2lsbEJlU2NoZWR1bGVkKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHZvaWQgZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tEaWRGaW5pc2goKTsKQEAgLTE1MCwx
MSArMTUwLDExIEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgRGF0YWJh
c2VTZXQqPiBEYXRhYmFzZU5hbWVNYXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4sIERhdGFiYXNlTmFtZU1hcCo+IERhdGFiYXNlT3JpZ2luTWFwOwogCi0gICAg
TXV0ZXggbV9vcGVuRGF0YWJhc2VNYXBHdWFyZDsKKyAgICBMb2NrIG1fb3BlbkRhdGFiYXNlTWFw
R3VhcmQ7CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VPcmlnaW5NYXA+IG1f
b3BlbkRhdGFiYXNlTWFwOwogCiAgICAgLy8gVGhpcyBsb2NrIHByb3RlY3RzIG1fZGF0YWJhc2Us
IG1fb3JpZ2luTG9ja01hcCwgbV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsIG1fb3JpZ2luc0JlaW5n
RGVsZXRlZCwgbV9iZWluZ0NyZWF0ZWQsIGFuZCBtX2JlaW5nRGVsZXRlZC4KLSAgICBNdXRleCBt
X2RhdGFiYXNlR3VhcmQ7CisgICAgTG9jayBtX2RhdGFiYXNlR3VhcmQ7CiAgICAgU1FMaXRlRGF0
YWJhc2UgbV9kYXRhYmFzZTsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxP
cmlnaW5Mb2NrPj4gT3JpZ2luTG9ja01hcDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvT3JpZ2luTG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suaAkod29ya2luZyBjb3B5
KQpAQCAtMjcsOCArMjcsOCBAQAogI2RlZmluZSBPcmlnaW5Mb2NrX2gKIAogI2luY2x1ZGUgIkZp
bGVTeXN0ZW0uaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgU3RyaW5nIGxvY2tGaWxlTmFtZUZv
clBhdGgoU3RyaW5nIG9yaWdpblBhdGgpOwogCiAgICAgU3RyaW5nIG1fbG9ja0ZpbGVOYW1lOwot
ICAgIE11dGV4IG1fbXV0ZXg7CisgICAgTG9jayBtX211dGV4OwogI2lmIFVTRShGSUxFX0xPQ0sp
CiAgICAgUGxhdGZvcm1GaWxlSGFuZGxlIG1fbG9ja0hhbmRsZTsKICNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxsYmFja1dyYXBwZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNr
V3JhcHBlci5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1
OCw3IEBAIHB1YmxpYzoKICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dFB0cjsKICAgICAgICAgVCogY2FsbGJhY2s7CiAgICAgICAgIHsKLSAgICAg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICAgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgICAgICAgICAgaWYgKCFtX2NhbGxiYWNrKSB7CiAgICAg
ICAgICAgICAgICAgQVNTRVJUKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0
cjxUPiB1bndyYXAoKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICAgICAgQVNTRVJUKCFt
X2NhbGxiYWNrIHx8IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkp
OwogICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm4gbV9jYWxsYmFjay5yZWxlYXNlKCk7CkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGhhc0NhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFjazsgfQogCiBwcml2
YXRlOgotICAgIE11dGV4IG1fbXV0ZXg7CisgICAgTG9jayBtX211dGV4OwogICAgIFJlZlB0cjxU
PiBtX2NhbGxiYWNrOwogICAgIFJlZlB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAkocmV2
aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxU
cmFuc2FjdGlvbkJhY2tlbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODEsNyArMzgxLDcgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmRvQ2xlYW51cCgpCiAKICAgICByZWxlYXNlT3Jp
Z2luTG9ja0lmTmVlZGVkKCk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zdGF0ZW1lbnRN
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zdGF0ZW1lbnRNdXRleCk7CiAgICAgbV9z
dGF0ZW1lbnRRdWV1ZS5jbGVhcigpOwogCiAgICAgaWYgKG1fc3FsaXRlVHJhbnNhY3Rpb24pIHsK
QEAgLTQ2NSw3ICs0NjUsNyBAQCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OlN0YXRlRnVuY3Rpb24g
U1FMCiAKIHZvaWQgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjplbnF1ZXVlU3RhdGVtZW50QmFja2Vu
ZChzdGQ6OnVuaXF1ZV9wdHI8U1FMU3RhdGVtZW50PiBzdGF0ZW1lbnRCYWNrZW5kKQogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3N0YXRlbWVudE11dGV4KTsKICAgICBtX3N0YXRlbWVudFF1ZXVlLmFwcGVuZChXVEY6
Om1vdmUoc3RhdGVtZW50QmFja2VuZCkpOwogfQogCkBAIC02ODEsNyArNjgxLDcgQEAgdm9pZCBT
UUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmdldE5leHRTdGF0ZQogewogICAgIG1fY3VycmVudFN0YXRl
bWVudEJhY2tlbmQgPSBudWxscHRyOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3RhdGVt
ZW50TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOwogICAg
IGlmICghbV9zdGF0ZW1lbnRRdWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgIG1fY3VycmVudFN0YXRl
bWVudEJhY2tlbmQgPSBtX3N0YXRlbWVudFF1ZXVlLnRha2VGaXJzdCgpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5z
YWN0aW9uQmFja2VuZC5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTMsIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0
Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVh
ZGluZ1ByaW1pdGl2ZXMuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjUsNyArMTI1LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcmVhZE9ubHk7CiAgICAgYm9vbCBtX2hhc1ZlcnNpb25N
aXNtYXRjaDsKIAotICAgIE11dGV4IG1fc3RhdGVtZW50TXV0ZXg7CisgICAgTG9jayBtX3N0YXRl
bWVudE11dGV4OwogICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxTUUxTdGF0ZW1lbnQ+PiBtX3N0
YXRlbWVudFF1ZXVlOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNRTGl0ZVRyYW5zYWN0aW9uPiBt
X3NxbGl0ZVRyYW5zYWN0aW9uOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjpzY2hlZHVsZUV4ZQogICAgIC8vIFRoZSBtdXRleCBwcm92aWRlcyBhIG1lbW9yeSBiYXJy
aWVyIHRvIGVuc3VyZSB0aGF0IG9uY2UKICAgICAvLyB0ZXJtaW5hdGlvbiBpcyBzY2hlZHVsZWQs
IGlzRXhlY3V0aW9uVGVybWluYXRpbmcgd2lsbAogICAgIC8vIGFjY3VyYXRlbHkgcmVmbGVjdCB0
aGF0IHN0YXRlIHdoZW4gY2FsbGVkIGZyb20gYW5vdGhlciB0aHJlYWQuCi0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9zY2hlZHVsZWRUZXJtaW5hdGlvbk11dGV4KTsKICAgICBpZiAobV92bS0+d2F0Y2hk
b2cpCiAgICAgICAgIG1fdm0tPndhdGNoZG9nLT5maXJlKCk7CiB9CkBAIC0xNTksNyArMTU5LDcg
QEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpzY2hlZHVsZUV4ZQogYm9vbCBXb3JrZXJT
Y3JpcHRDb250cm9sbGVyOjppc0V4ZWN1dGlvblRlcm1pbmF0aW5nKCkgY29uc3QKIHsKICAgICAv
LyBTZWUgY29tbWVudHMgaW4gc2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbiByZWdhcmRpbmcg
bXV0ZXggdXNhZ2UuCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2NoZWR1bGVkVGVybWluYXRp
b25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zY2hlZHVsZWRUZXJtaW5hdGlvbk11
dGV4KTsKICAgICBpZiAobV92bS0+d2F0Y2hkb2cpCiAgICAgICAgIHJldHVybiBtX3ZtLT53YXRj
aGRvZy0+ZGlkRmlyZSgpOwogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgJKHJldmlzaW9u
IDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgPGRlYnVnZ2VyL0RlYnVnZ2VyLmg+CiAj
aW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05ha2VkUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgogCiBuYW1lc3BhY2UgRGVwcmVjYXRlZCB7CiBjbGFzcyBTY3JpcHRWYWx1
ZTsKQEAgLTk3LDcgKzk3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXb3JrZXJH
bG9iYWxTY29wZSogbV93b3JrZXJHbG9iYWxTY29wZTsKICAgICAgICAgSlNDOjpTdHJvbmc8SlNX
b3JrZXJHbG9iYWxTY29wZT4gbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXI7CiAgICAgICAgIGJv
b2wgbV9leGVjdXRpb25Gb3JiaWRkZW47Ci0gICAgICAgIG11dGFibGUgTXV0ZXggbV9zY2hlZHVs
ZWRUZXJtaW5hdGlvbk11dGV4OworICAgICAgICBtdXRhYmxlIExvY2sgbV9zY2hlZHVsZWRUZXJt
aW5hdGlvbk11dGV4OwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbC5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9k
ZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODgsNyArODgsNyBAQCB2b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbDo6ZGlzZW50YW5nbGUoKQogCiB2
b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbDo6cG9zdE1lc3NhZ2VUb1JlbW90ZShQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0
Q2hhbm5lbEFycmF5PiBjaGFubmVscykKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fY2hhbm5l
bC0+bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CiAg
ICAgaWYgKCFtX2NoYW5uZWwtPm1fb3V0Z29pbmdRdWV1ZSkKICAgICAgICAgcmV0dXJuOwogICAg
IGJvb2wgd2FzRW1wdHkgPSBtX2NoYW5uZWwtPm1fb3V0Z29pbmdRdWV1ZS0+YXBwZW5kQW5kQ2hl
Y2tFbXB0eShzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpFdmVu
dERhdGE+KG1lc3NhZ2UsIFdURjo6bW92ZShjaGFubmVscykpKTsKQEAgLTk4LDcgKzk4LDcgQEAg
dm9pZCBNZXNzYWdlUG9ydENoYW5uZWw6OnBvc3RNZXNzYWdlVG9SZQogCiBib29sIE1lc3NhZ2VQ
b3J0Q2hhbm5lbDo6dHJ5R2V0TWVzc2FnZUZyb21SZW1vdGUoUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4mIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eT4mIGNoYW5uZWxzKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICBhdXRvIHJl
c3VsdCA9IG1fY2hhbm5lbC0+bV9pbmNvbWluZ1F1ZXVlLT50cnlHZXRNZXNzYWdlKCk7CiAgICAg
aWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEyMSwyMCArMTIxLDIwIEBA
IHZvaWQgTWVzc2FnZVBvcnRDaGFubmVsOjpjbG9zZSgpCiBib29sIE1lc3NhZ2VQb3J0Q2hhbm5l
bDo6aXNDb25uZWN0ZWRUbyhNZXNzYWdlUG9ydCogcG9ydCkKIHsKICAgICAvLyBGSVhNRTogV2hh
dCBndWFyYW50ZWVzIHRoYXQgdGhlIHJlc3VsdCByZW1haW5zIHRoZSBzYW1lIGFmdGVyIHdlIHJl
bGVhc2UgdGhlIGxvY2s/Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIHJldHVybiBt
X2NoYW5uZWwtPm1fcmVtb3RlUG9ydCA9PSBwb3J0OwogfQogCiBib29sIE1lc3NhZ2VQb3J0Q2hh
bm5lbDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkKIHsKICAgICAvLyBGSVhNRTogV2hhdCBndWFyYW50
ZWVzIHRoYXQgdGhlIHJlc3VsdCByZW1haW5zIHRoZSBzYW1lIGFmdGVyIHdlIHJlbGVhc2UgdGhl
IGxvY2s/Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIHJldHVybiAhbV9jaGFubmVs
LT5tX2luY29taW5nUXVldWUtPmlzRW1wdHkoKTsKIH0KIAogTWVzc2FnZVBvcnQqIE1lc3NhZ2VQ
b3J0Q2hhbm5lbDo6bG9jYWxseUVudGFuZ2xlZFBvcnQoY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRl
eCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CiAgICAgLy8gU2Vl
IGlmIGJvdGggY29udGV4dHMgYXJlIHJ1biBieSB0aGUgc2FtZSB0aHJlYWQgKGFyZSB0aGUgc2Ft
ZSBjb250ZXh0LCBvciBhcmUgYm90aCBkb2N1bWVudHMpLgogICAgIGlmIChtX2NoYW5uZWwtPm1f
cmVtb3RlUG9ydCkgewogICAgICAgICAvLyBUaGUgcmVtb3RlIHBvcnQncyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0IGlzIGd1YXJhbnRlZWQgbm90IHRvIGNoYW5nZSBoZXJlIC0gTWVzc2FnZVBvcnQ6
OmNvbnRleHREZXN0cm95ZWQoKQpAQCAtMTY0LDcgKzE2NCw3IEBAIFBsYXRmb3JtTWVzc2FnZVBv
cnRDaGFubmVsOjp+UGxhdGZvcm1NZXMKIAogdm9pZCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6c2V0UmVtb3RlUG9ydChNZXNzYWdlUG9ydCogcG9ydCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAvLyBTaG91
bGQgbmV2ZXIgc2V0IHBvcnQgaWYgaXQgaXMgYWxyZWFkeSBzZXQuCiAgICAgQVNTRVJUKCFwb3J0
IHx8ICFtX3JlbW90ZVBvcnQpOwogICAgIG1fcmVtb3RlUG9ydCA9IHBvcnQ7CkBAIC0xNzUsMTMg
KzE3NSwxMyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsPiBQCiAgICAg
Ly8gRklYTUU6IFdoYXQgZ3VhcmFudGVlcyB0aGF0IHRoZSByZXN1bHQgcmVtYWlucyB0aGUgc2Ft
ZSBhZnRlciB3ZSByZWxlYXNlIHRoZSBsb2NrPwogICAgIC8vIFRoaXMgbG9jayBvbmx5IGd1YXJh
bnRlZXMgdGhhdCB0aGUgcmV0dXJuZWQgcG9pbnRlciB3aWxsIG5vdCBiZSBwb2ludGluZyB0byBy
ZWxlYXNlZCBtZW1vcnksCiAgICAgLy8gYnV0IG5vdCB0aGF0IGl0IHdpbGwgc3RpbGwgYmUgcG9p
bnRpbmcgdG8gdGhpcyBvYmplY3QncyBlbnRhbmdsZWQgcG9ydCBjaGFubmVsLgotICAgIE11dGV4
TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAg
IHJldHVybiBtX2VudGFuZ2xlZENoYW5uZWw7CiB9CiAKIHZvaWQgUGxhdGZvcm1NZXNzYWdlUG9y
dENoYW5uZWw6OmNsb3NlSW50ZXJuYWwoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRl
eCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIC8vIERpc2VudGFuZ2xlIG91
cnNlbHZlcyBmcm9tIHRoZSBvdGhlciBlbmQuIFdlIHN0aWxsIG1haW50YWluIGEgcmVmZXJlbmNl
IHRvIG91ciBpbmNvbWluZyBxdWV1ZSwgc2luY2UgcHJldmlvdXNseS1leGlzdGluZyBtZXNzYWdl
cyBzaG91bGQgc3RpbGwgYmUgZGVsaXZlcmVkLgogICAgIG1fcmVtb3RlUG9ydCA9IG51bGxwdHI7
CiAgICAgbV9lbnRhbmdsZWRDaGFubmVsID0gbnVsbHB0cjsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaAko
cmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1N
ZXNzYWdlUG9ydENoYW5uZWwuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsOCArOTUsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0UmVtb3RlUG9ydChNZXNzYWdlUG9ydCop
OwogICAgICAgICB2b2lkIGNsb3NlSW50ZXJuYWwoKTsKIAotICAgICAgICAvLyBNdXRleCB1c2Vk
IHRvIGVuc3VyZSBleGNsdXNpdmUgYWNjZXNzIHRvIHRoZSBvYmplY3QgaW50ZXJuYWxzLgotICAg
ICAgICBNdXRleCBtX211dGV4OworICAgICAgICAvLyBMb2NrIHVzZWQgdG8gZW5zdXJlIGV4Y2x1
c2l2ZSBhY2Nlc3MgdG8gdGhlIG9iamVjdCBpbnRlcm5hbHMuCisgICAgICAgIExvY2sgbV9tdXRl
eDsKIAogICAgICAgICAvLyBQb2ludGVyIHRvIG91ciBlbnRhbmdsZWQgcGFpciAtIGNsZWFyZWQg
d2hlbiBjbG9zZSgpIGlzIGNhbGxlZC4KICAgICAgICAgUmVmUHRyPFBsYXRmb3JtTWVzc2FnZVBv
cnRDaGFubmVsPiBtX2VudGFuZ2xlZENoYW5uZWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4
Niw3ICsxODYsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cmVtb3ZlQWxsSWNvbnMoKQogICAgIAog
ICAgIC8vIENsZWFyIHRoZSBpbi1tZW1vcnkgcmVjb3JkIG9mIGV2ZXJ5IEljb25SZWNvcmQsIGFu
eXRoaW5nIHdhaXRpbmcgdG8gYmUgcmVhZCBmcm9tIGRpc2ssIGFuZCBhbnl0aGluZyB3YWl0aW5n
IHRvIGJlIHdyaXR0ZW4gdG8gZGlzawogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fdXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKICAgICAgICAgCiAgICAgICAgIC8vIENsZWFyIHRoZSBJY29uUmVjb3JkcyBmb3Ig
ZXZlcnkgcGFnZSBVUkwgLSBSZWZDb3VudGluZyB3aWxsIGNhdXNlIHRoZSBJY29uUmVjb3JkcyB0
aGVtc2VsdmVzIHRvIGJlIGRlbGV0ZWQKICAgICAgICAgLy8gV2UgZG9uJ3QgZGVsZXRlIHRoZSBh
Y3R1YWwgUGFnZVJlY29yZHMgYmVjYXVzZSB3ZSBoYXZlIHRoZSAicmV0YWluIGljb24gZm9yIHVy
bCIgY291bnQgdG8ga2VlcCB0cmFjayBvZgpAQCAtMjAwLDE0ICsyMDAsMTQgQEAgdm9pZCBJY29u
RGF0YWJhc2U6OnJlbW92ZUFsbEljb25zKCkKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
IC8vIENsZWFyIGFsbCBpbi1tZW1vcnkgcmVjb3JkcyBvZiB0aGluZ3MgdGhhdCBuZWVkIHRvIGJl
IHN5bmNlZCBvdXQgdG8gZGlzawogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgbV9wYWdlVVJMc1BlbmRpbmdTeW5jLmNs
ZWFyKCk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1N5bmMuY2xlYXIoKTsKICAgICAgICAg
fQogICAgICAgICAKICAgICAgICAgLy8gQ2xlYXIgYWxsIGluLW1lbW9yeSByZWNvcmRzIG9mIHRo
aW5ncyB0aGF0IG5lZWQgdG8gYmUgcmVhZCBpbiBmcm9tIGRpc2sKICAgICAgICAgewotICAgICAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgICAg
IG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LmNsZWFyKCk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxz
SW50ZXJlc3RlZEluSWNvbnMuY2xlYXIoKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVh
ZGluZy5jbGVhcigpOwpAQCAtMjI5LDcgKzIyOSw3IEBAIEltYWdlKiBJY29uRGF0YWJhc2U6OnN5
bmNocm9ub3VzSWNvbkZvclAKICAgICBpZiAoIWlzT3BlbigpIHx8ICFkb2N1bWVudENhbkhhdmVJ
Y29uKHBhZ2VVUkxPcmlnaW5hbCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJs
QW5kSWNvbkxvY2spOwogCiAgICAgcGVyZm9ybVBlbmRpbmdSZXRhaW5BbmRSZWxlYXNlT3BlcmF0
aW9ucygpOwogICAgIApAQCAtMjQ1LDcgKzI0NSw3IEBAIEltYWdlKiBJY29uRGF0YWJhc2U6OnN5
bmNocm9ub3VzSWNvbkZvclAKICAgICAvLyAxIC0gVGhlIGluaXRpYWwgdXJsIGltcG9ydCBpcyBp
bmNvbXBsZXRlIGFuZCB0aGlzIHBhZ2VVUkwgd2FzIG1hcmtlZCB0byBiZSBub3RpZmllZCBvbmNl
IGl0IGlzIGNvbXBsZXRlIGlmIGFuIGljb25VUkwgZXhpc3RzCiAgICAgLy8gMiAtIFRoZSBpbml0
aWFsIHVybCBpbXBvcnQgSVMgY29tcGxldGUgYW5kIHRoaXMgcGFnZVVSTCBoYXMgbm8gaWNvbgog
ICAgIGlmICghcGFnZVJlY29yZCkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5k
aW5nUmVhZGluZ0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFk
aW5nTG9jayk7CiAgICAgICAgIAogICAgICAgICAvLyBJbXBvcnQgaXMgb25nb2luZywgdGhlcmUg
bWlnaHQgYmUgYW4gaWNvbi4gIEluIHRoaXMgY2FzZSwgcmVnaXN0ZXIgdG8gYmUgbm90aWZpZWQg
d2hlbiB0aGUgaWNvbiBjb21lcyBpbgogICAgICAgICAvLyBJZiB3ZSBldmVyIHJlYWNoIHRoaXMg
Y29uZGl0aW9uLCB3ZSBrbm93IHdlJ3ZlIGFscmVhZHkgbWFkZSB0aGUgcGFnZVVSTCBjb3B5CkBA
IC0yNzYsNyArMjc2LDcgQEAgSW1hZ2UqIEljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uRm9y
UAogICAgICAgICBpZiAocGFnZVVSTENvcHkuaXNOdWxsKCkpCiAgICAgICAgICAgICBwYWdlVVJM
Q29weSA9IHBhZ2VVUkxPcmlnaW5hbC5pc29sYXRlZENvcHkoKTsKICAgICAKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICBtX3BhZ2VVUkxzSW50ZXJl
c3RlZEluSWNvbnMuYWRkKHBhZ2VVUkxDb3B5KTsKICAgICAgICAgbV9pY29uc1BlbmRpbmdSZWFk
aW5nLmFkZChpY29uUmVjb3JkKTsKICAgICAgICAgd2FrZVN5bmNUaHJlYWQoKTsKQEAgLTMwNyw3
ICszMDcsNyBAQCBQYXNzTmF0aXZlSW1hZ2VQdHIgSWNvbkRhdGFiYXNlOjpzeW5jaHJvCiAgICAg
aWYgKCFpY29uKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKICAgICByZXR1cm4gaWNvbi0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKIH0KIApA
QCAtMzI5LDcgKzMyOSw3IEBAIFN0cmluZyBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzSWNvblVS
TEYKICAgICBpZiAoIWlzT3BlbigpIHx8ICFkb2N1bWVudENhbkhhdmVJY29uKHBhZ2VVUkxPcmln
aW5hbCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAgICAgCi0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJs
QW5kSWNvbkxvY2spOwogICAgIAogICAgIFBhZ2VVUkxSZWNvcmQqIHBhZ2VSZWNvcmQgPSBtX3Bh
Z2VVUkxUb1JlY29yZE1hcC5nZXQocGFnZVVSTE9yaWdpbmFsKTsKICAgICBpZiAoIXBhZ2VSZWNv
cmQpCkBAIC00MTcsNyArNDE3LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnJldGFpbkljb25Gb3JQ
YWdlVVJMKAogICAgICAgICByZXR1cm47CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2spOwogICAgICAgICBtX3VybHNUb1JldGFp
bi5hZGQocGFnZVVSTC5pc29sYXRlZENvcHkoKSk7CiAgICAgICAgIG1fcmV0YWluT3JSZWxlYXNl
SWNvblJlcXVlc3RlZCA9IHRydWU7CiAgICAgfQpAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQgSWNv
bkRhdGFiYXNlOjpwZXJmb3JtUmV0YWluSWNvbkZvclAKICAgICAgICAgaWYgKCFtX2ljb25VUkxJ
bXBvcnRDb21wbGV0ZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3BlbmRpbmdTeW5jTG9jayk7CiAgICAgICAgIC8vIElmIHRoaXMgcGFnZVVSTCB3YWl0aW5nIHRv
IGJlIHN5bmMnZWQsIHVwZGF0ZSB0aGUgc3luYyByZWNvcmQKICAgICAgICAgLy8gVGhpcyBzYXZl
cyB1cyBpbiB0aGUgY2FzZSB3aGVyZSBhIHBhZ2Ugd2FzIHJlYWR5IHRvIGJlIGRlbGV0ZWQgZnJv
bSB0aGUgZGF0YWJhc2UgYnV0IHdhcyBqdXN0IHJldGFpbmVkIC0gc28gdGhlcmVzIG5vIG5lZWQg
dG8gZGVsZXRlIGl0IQogICAgICAgICBpZiAoIW1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCAmJiBt
X3BhZ2VVUkxzUGVuZGluZ1N5bmMuY29udGFpbnMocGFnZVVSTCkpIHsKQEAgLTQ3MCw3ICs0NzAs
NyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cmVsZWFzZUljb25Gb3JQYWdlVVJMCiAgICAgICAgIHJl
dHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsc1RvUmV0YWlu
T3JSZWxlYXNlTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsc1RvUmV0YWlu
T3JSZWxlYXNlTG9jayk7CiAgICAgICAgIG1fdXJsc1RvUmVsZWFzZS5hZGQocGFnZVVSTC5pc29s
YXRlZENvcHkoKSk7CiAgICAgICAgIG1fcmV0YWluT3JSZWxlYXNlSWNvblJlcXVlc3RlZCA9IHRy
dWU7CiAgICAgfQpAQCAtNTA2LDcgKzUwNiw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3Jt
UmVsZWFzZUljb25Gb3IKICAgICBBU1NFUlQoIWljb25SZWNvcmQgfHwgKGljb25SZWNvcmQgJiYg
bV9pY29uVVJMVG9SZWNvcmRNYXAuZ2V0KGljb25SZWNvcmQtPmljb25VUkwoKSkgPT0gaWNvblJl
Y29yZCkpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVh
ZGluZ0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9j
ayk7CiAgICAgICAgIAogICAgICAgICAvLyBTaW5jZSB0aGlzIHBhZ2VVUkwgaXMgZ29pbmcgYXdh
eSwgdGhlcmUncyBubyByZWFzb24gYW55b25lIHdvdWxkIGV2ZXIgYmUgaW50ZXJlc3RlZCBpbiBp
dHMgcmVhZCByZXN1bHRzICAgIAogICAgICAgICBpZiAoIW1faWNvblVSTEltcG9ydENvbXBsZXRl
KQpAQCAtNTIyLDcgKzUyMiw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtUmVsZWFzZUlj
b25Gb3IKICAgICAKICAgICAvLyBNYXJrIHN0dWZmIGZvciBkZWxldGlvbiBmcm9tIHRoZSBkYXRh
YmFzZSBvbmx5IGlmIHdlJ3JlIG5vdCBpbiBwcml2YXRlIGJyb3dzaW5nCiAgICAgaWYgKCFtX3By
aXZhdGVCcm93c2luZ0VuYWJsZWQpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVu
ZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xv
Y2spOwogICAgICAgICBtX3BhZ2VVUkxzUGVuZGluZ1N5bmMuc2V0KHBhZ2VVUkxPcmlnaW5hbC5p
c29sYXRlZENvcHkoKSwgcGFnZVJlY29yZC0+c25hcHNob3QodHJ1ZSkpOwogICAgIAogICAgICAg
ICAvLyBJZiB0aGlzIHBhZ2UgaXMgdGhlIGxhc3QgcGFnZSB0byByZWZlciB0byBhIHBhcnRpY3Vs
YXIgSWNvblJlY29yZCwgdGhhdCBJY29uUmVjb3JkIG5lZWRzIHRvCkBAIC01NDgsMTIgKzU0OCwx
MiBAQCB2b2lkIEljb25EYXRhYmFzZTo6c2V0SWNvbkRhdGFGb3JJY29uVVJMCiAgICAgCiAgICAg
VmVjdG9yPFN0cmluZz4gcGFnZVVSTHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOwogICAgIAogICAgICAgICAvLyBJZiB0aGlzIGljb24gd2FzIHBlbmRpbmcgYSBy
ZWFkLCByZW1vdmUgaXQgZnJvbSB0aGF0IHNldCBiZWNhdXNlIHRoaXMgbmV3IGRhdGEgc2hvdWxk
IG92ZXJyaWRlIHdoYXQgaXMgb24gZGlzawogICAgICAgICBSZWZQdHI8SWNvblJlY29yZD4gaWNv
biA9IG1faWNvblVSTFRvUmVjb3JkTWFwLmdldChpY29uVVJMKTsKICAgICAgICAgaWYgKGljb24p
IHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7
CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAg
ICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcucmVtb3ZlKGljb24uZ2V0KCkpOwogICAg
ICAgICB9IGVsc2UKICAgICAgICAgICAgIGljb24gPSBnZXRPckNyZWF0ZUljb25SZWNvcmQoaWNv
blVSTCk7CkBAIC01NjcsNyArNTY3LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnNldEljb25EYXRh
Rm9ySWNvblVSTAogICAgICAgICAKICAgICAgICAgLy8gTWFyayB0aGUgSWNvblJlY29yZCBhcyBy
ZXF1aXJpbmcgYW4gdXBkYXRlIHRvIHRoZSBkYXRhYmFzZSBvbmx5IGlmIHByaXZhdGUgYnJvd3Np
bmcgaXMgZGlzYWJsZWQKICAgICAgICAgaWYgKCFtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQpIHsK
LSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CisgICAg
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CiAgICAgICAgICAg
ICBtX2ljb25zUGVuZGluZ1N5bmMuc2V0KGljb25VUkwsIGljb24tPnNuYXBzaG90KCkpOwogICAg
ICAgICB9CiAKQEAgLTYwOCw3ICs2MDgsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6c2V0SWNvblVS
TEZvclBhZ2VVUkwoCiAgICAgU3RyaW5nIGljb25VUkwsIHBhZ2VVUkw7CiAgICAgCiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogCiAgICAgICAgIFBhZ2VVUkxSZWNv
cmQqIHBhZ2VSZWNvcmQgPSBtX3BhZ2VVUkxUb1JlY29yZE1hcC5nZXQocGFnZVVSTE9yaWdpbmFs
KTsKICAgICAgICAgCkBAIC02MzYsMTMgKzYzNiwxMyBAQCB2b2lkIEljb25EYXRhYmFzZTo6c2V0
SWNvblVSTEZvclBhZ2VVUkwoCiAgICAgICAgICAgICBBU1NFUlQoaWNvblJlY29yZC0+cmV0YWlu
aW5nUGFnZVVSTHMoKS5zaXplKCkgPT0gMCk7CiAgICAgICAgICAgICBMT0coSWNvbkRhdGFiYXNl
LCAiSWNvbiBmb3IgaWNvbiB1cmwgJXMgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkIC0gcmVtb3Zp
bmcgbWFwcGluZyBmb3IgaXQiLCB1cmxGb3JMb2dnaW5nKGljb25SZWNvcmQtPmljb25VUkwoKSku
YXNjaWkoKS5kYXRhKCkpOwogICAgICAgICAgICAgbV9pY29uVVJMVG9SZWNvcmRNYXAucmVtb3Zl
KGljb25SZWNvcmQtPmljb25VUkwoKSk7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9w
ZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAgbV9pY29uc1BlbmRpbmdSZWFkaW5nLnJl
bW92ZShpY29uUmVjb3JkLmdldCgpKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8g
QW5kIG1hcmsgdGhpcyBtYXBwaW5nIHRvIGJlIGFkZGVkIHRvIHRoZSBkYXRhYmFzZQogICAgICAg
ICBpZiAoIW1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkgewotICAgICAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKICAgICAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nU3lu
Yy5zZXQocGFnZVVSTCwgcGFnZVJlY29yZC0+c25hcHNob3QoKSk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIC8vIElmIHRoZSBpY29uIGlzIG9uIGl0cyBsYXN0IHJlZiwgbWFyayBpdCBmb3Ig
ZGVsZXRpb24KQEAgLTY3NCw3ICs2NzQsNyBAQCBJY29uTG9hZERlY2lzaW9uIEljb25EYXRhYmFz
ZTo6c3luY2hyb25vCiAgICAgLy8gMSAtIFdoZW4gd2UgcmVhZCB0aGUgaWNvbiB1cmxzIGZyb20g
ZGlzaywgZ2V0dGluZyB0aGUgdGltZVN0YW1wIGF0IHRoZSBzYW1lIHRpbWUKICAgICAvLyAyIC0g
V2hlbiB3ZSBnZXQgYSBuZXcgaWNvbiBmcm9tIHRoZSBsb2FkZXIsIGluIHdoaWNoIGNhc2UgdGhl
IHRpbWVzdGFtcCBpcyBzZXQgYXQgdGhhdCB0aW1lCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOwogICAgICAgICBpZiAoSWNvblJlY29yZCogaWNvbiA9IG1faWNvblVS
TFRvUmVjb3JkTWFwLmdldChpY29uVVJMKSkgewogICAgICAgICAgICAgTE9HKEljb25EYXRhYmFz
ZSwgIkZvdW5kIGV4cGlyYXRpb24gdGltZSBvbiBhIHByZXNlbnQgaWNvbiBiYXNlZCBvbiBleGlz
dGluZyBJY29uUmVjb3JkIik7CiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pihj
dXJyZW50VGltZSgpKSAtIHN0YXRpY19jYXN0PGludD4oaWNvbi0+Z2V0VGltZXN0YW1wKCkpID4g
aWNvbkV4cGlyYXRpb25UaW1lID8gSWNvbkxvYWRZZXMgOiBJY29uTG9hZE5vOwpAQCAtNjgyLDcg
KzY4Miw3IEBAIEljb25Mb2FkRGVjaXNpb24gSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm8KICAgICB9
CiAgICAgCiAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhIHJlY29yZCBmb3IgaXQsIGJ1dCB3ZSAq
aGF2ZSogaW1wb3J0ZWQgYWxsIGljb25VUkxzIGZyb20gZGlzaywgdGhlbiB3ZSBzaG91bGQgbG9h
ZCBpdCBub3cKLSAgICBNdXRleExvY2tlciByZWFkaW5nTG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdM
b2NrKTsKKyAgICBMb2NrSG9sZGVyIHJlYWRpbmdMb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2sp
OwogICAgIGlmIChtX2ljb25VUkxJbXBvcnRDb21wbGV0ZSkKICAgICAgICAgcmV0dXJuIEljb25M
b2FkWWVzOwogICAgICAgICAKQEAgLTY5OSw3ICs2OTksNyBAQCBib29sIEljb25EYXRhYmFzZTo6
c3luY2hyb25vdXNJY29uRGF0YUtuCiB7CiAgICAgQVNTRVJUX05PVF9TWU5DX1RIUkVBRCgpOwog
ICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKICAgICBpZiAoSWNvblJlY29yZCogaWNv
biA9IG1faWNvblVSTFRvUmVjb3JkTWFwLmdldChpY29uVVJMKSkKICAgICAgICAgcmV0dXJuIGlj
b24tPmltYWdlRGF0YVN0YXR1cygpICE9IEltYWdlRGF0YVN0YXR1c1Vua25vd247CiAKQEAgLTc1
NCwyNiArNzU0LDI2IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpjaGVja0ludGVncml0eUJlZm9yZU8K
IAogc2l6ZV90IEljb25EYXRhYmFzZTo6cGFnZVVSTE1hcHBpbmdDb3VudCgpCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdXJsQW5kSWNvbkxvY2spOwogICAgIHJldHVybiBtX3BhZ2VVUkxUb1JlY29yZE1hcC5zaXpl
KCk7CiB9CiAKIHNpemVfdCBJY29uRGF0YWJhc2U6OnJldGFpbmVkUGFnZVVSTENvdW50KCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgcGVyZm9ybVBlbmRpbmdSZXRhaW5BbmRS
ZWxlYXNlT3BlcmF0aW9ucygpOwogICAgIHJldHVybiBtX3JldGFpbmVkUGFnZVVSTHMuc2l6ZSgp
OwogfQogCiBzaXplX3QgSWNvbkRhdGFiYXNlOjppY29uUmVjb3JkQ291bnQoKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKICAgICByZXR1cm4gbV9pY29uVVJMVG9SZWNvcmRNYXAuc2l6
ZSgpOwogfQogCiBzaXplX3QgSWNvbkRhdGFiYXNlOjppY29uUmVjb3JkQ291bnRXaXRoRGF0YSgp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgIHNpemVfdCByZXN1bHQgPSAwOwog
ICAgIAogICAgIEhhc2hNYXA8U3RyaW5nLCBJY29uUmVjb3JkKj46Oml0ZXJhdG9yIGkgPSBtX2lj
b25VUkxUb1JlY29yZE1hcC5iZWdpbigpOwpAQCAtODI5LDEzICs4MjksMTMgQEAgdm9pZCBJY29u
RGF0YWJhc2U6Om5vdGlmeVBlbmRpbmdMb2FkRGVjaQogCiB2b2lkIEljb25EYXRhYmFzZTo6d2Fr
ZVN5bmNUaHJlYWQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNMb2NrKTsKIAogICAgIGlmICghbV9kaXNhYmxlU3Vk
ZGVuVGVybWluYXRpb25XaGlsZVN5bmNUaHJlYWRIYXNXb3JrVG9EbykKICAgICAgICAgbV9kaXNh
YmxlU3VkZGVuVGVybWluYXRpb25XaGlsZVN5bmNUaHJlYWRIYXNXb3JrVG9EbyA9IHN0ZDo6bWFr
ZV91bmlxdWU8U3VkZGVuVGVybWluYXRpb25EaXNhYmxlcj4oKTsKIAogICAgIG1fc3luY1RocmVh
ZEhhc1dvcmtUb0RvID0gdHJ1ZTsKLSAgICBtX3N5bmNDb25kaXRpb24uc2lnbmFsKCk7CisgICAg
bV9zeW5jQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogfQogCiB2b2lkIEljb25EYXRhYmFzZTo6c2No
ZWR1bGVPckRlZmVyU3luY1RpbWVyKCkKQEAgLTg3NCwxMyArODc0LDEzIEBAIGJvb2wgSWNvbkRh
dGFiYXNlOjppc09wZW4oKSBjb25zdAogCiBib29sIEljb25EYXRhYmFzZTo6aXNPcGVuQmVzaWRl
c01haW5UaHJlYWRDYWxsYmFja3MoKSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3N5bmNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNMb2NrKTsKICAgICByZXR1
cm4gbV9zeW5jVGhyZWFkUnVubmluZyB8fCBtX3N5bmNEQi5pc09wZW4oKTsKIH0KIAogU3RyaW5n
IEljb25EYXRhYmFzZTo6ZGF0YWJhc2VQYXRoKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9zeW5jTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAg
ICAgcmV0dXJuIG1fY29tcGxldGVEYXRhYmFzZVBhdGguaXNvbGF0ZWRDb3B5KCk7CiB9CiAKQEAg
LTkxNiw3ICs5MTYsNyBAQCBQYWdlVVJMUmVjb3JkKiBJY29uRGF0YWJhc2U6OmdldE9yQ3JlYXRl
CiAKICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVjb3JkID0gbV9wYWdlVVJMVG9SZWNvcmRNYXAu
Z2V0KHBhZ2VVUkwpOwogICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFk
aW5nTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwog
ICAgIGlmICghbV9pY29uVVJMSW1wb3J0Q29tcGxldGUpIHsKICAgICAgICAgLy8gSWYgdGhlIGlu
aXRpYWwgaW1wb3J0IG9mIGFsbCBVUkxzIGhhc24ndCBjb21wbGV0ZWQgYW5kIHdlIGhhdmUgbm8g
cGFnZSByZWNvcmQsIHdlIGFzc3VtZSB3ZSAqbWlnaHQqIGtub3cgYWJvdXQgdGhpcyBsYXRlciBh
bmQgY3JlYXRlIGEgcmVjb3JkIGZvciBpdAogICAgICAgICBpZiAoIXBhZ2VSZWNvcmQpIHsKQEAg
LTk4NSw3ICs5ODUsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3luY1RocmVh
CiAgICAgfQogICAgIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY0xv
Y2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNMb2NrKTsKICAgICAgICAgaWYg
KCFtX3N5bmNEQi5vcGVuKG1fY29tcGxldGVEYXRhYmFzZVBhdGgpKSB7CiAgICAgICAgICAgICBM
T0dfRVJST1IoIlVuYWJsZSB0byBvcGVuIGljb24gZGF0YWJhc2UgYXQgcGF0aCAlcyAtICVzIiwg
bV9jb21wbGV0ZURhdGFiYXNlUGF0aC5hc2NpaSgpLmRhdGEoKSwgbV9zeW5jREIubGFzdEVycm9y
TXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTExMyw3ICsxMTEzLDcgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnBlcmZvcm1PcGVuSW5pdGlhbGl6YQogICAgICAgICAgICAgbV9zeW5jREIu
Y2xvc2UoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX3N5bmNMb2NrKTsKICAgICAgICAgICAgICAgICAvLyBTaG91bGQndmUgYmVlbiBj
b25zdW1lZCBieSBTUUxpdGUsIGRlbGV0ZSBqdXN0IHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBzZWUg
aXQgYWdhaW4gaW4gdGhlIGZ1dHVyZTsKICAgICAgICAgICAgICAgICBkZWxldGVGaWxlKG1fY29t
cGxldGVEYXRhYmFzZVBhdGggKyAiLWpvdXJuYWwiKTsKICAgICAgICAgICAgICAgICBkZWxldGVG
aWxlKG1fY29tcGxldGVEYXRhYmFzZVBhdGgpOwpAQCAtMTIxNSw3ICsxMjE1LDcgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnBlcmZvcm1VUkxJbXBvcnQoKQogICAgICAgICBTdHJpbmcgaWNvblVSTCA9
IHF1ZXJ5LmdldENvbHVtblRleHQoMSk7CiAKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgICAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAKICAgICAgICAgICAgIFBhZ2VVUkxSZWNvcmQqIHBh
Z2VSZWNvcmQgPSBtX3BhZ2VVUkxUb1JlY29yZE1hcC5nZXQocGFnZVVSTCk7CiAgICAgICAgICAg
ICAKQEAgLTEyNDgsNyArMTI0OCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1w
b3J0KCkKICAgICAgICAgLy8gb25lIGZvciB0aGUgVVJMIGFuZCBvbmUgZm9yIHRoZSBJbWFnZSBp
dHNlbGYKICAgICAgICAgLy8gTm90ZSB0aGF0IFdlYkljb25EYXRhYmFzZSBpcyBub3QgbmVjY2Vz
c2FyaWx5IEFQSSBzbyB3ZSBtaWdodCBiZSBhYmxlIHRvIG1ha2UgdGhpcyBjaGFuZ2UKICAgICAg
ICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2Nr
KTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsK
ICAgICAgICAgICAgIGlmIChtX3BhZ2VVUkxzUGVuZGluZ0ltcG9ydC5jb250YWlucyhwYWdlVVJM
KSkgewogICAgICAgICAgICAgICAgIGRpc3BhdGNoRGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkxP
bk1haW5UaHJlYWQocGFnZVVSTCk7CiAgICAgICAgICAgICAgICAgbV9wYWdlVVJMc1BlbmRpbmdJ
bXBvcnQucmVtb3ZlKHBhZ2VVUkwpOwpAQCAtMTI3MSw3ICsxMjcxLDcgQEAgdm9pZCBJY29uRGF0
YWJhc2U6OnBlcmZvcm1VUkxJbXBvcnQoKQogICAgIC8vIGJ1dCBhZnRlciBtX2ljb25VUkxJbXBv
cnRDb21wbGV0ZSBpcyBzZXQgdG8gdHJ1ZSwgd2UgZG9uJ3QgY2FyZSBhYm91dCB0aGlzIHNldCBh
bnltb3JlCiAgICAgVmVjdG9yPFN0cmluZz4gdXJsczsKICAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKIAogICAgICAgICB1cmxzLmFwcGVuZFJhbmdlKG1f
cGFnZVVSTHNQZW5kaW5nSW1wb3J0LmJlZ2luKCksIG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LmVu
ZCgpKTsKICAgICAgICAgbV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQuY2xlYXIoKTsgICAgICAgIApA
QCAtMTI4NCw3ICsxMjg0LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnBlcmZvcm1VUkxJbXBvcnQo
KQogICAgIC8vIFJlbW92ZSB1bnJldGFpbmVkIG9uZXMgaWYgZGF0YWJhc2UgY2xlYW51cCBpcyBh
bGxvd2VkCiAgICAgLy8gS2VlcCBhIHNldCBvZiBvbmVzIHRoYXQgYXJlIHJldGFpbmVkIGFuZCBw
ZW5kaW5nIG5vdGlmaWNhdGlvbgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKIAogICAgICAgICBwZXJmb3JtUGVuZGluZ1JldGFpbkFuZFJlbGVhc2VPcGVyYXRpb25z
KCk7CiAKQEAgLTEzMDEsMTIgKzEzMDEsMTIgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnBlcmZvcm1V
UkxJbXBvcnQoKQogICAgICAgICAgICAgICAgICAgICAgICAgbV9pY29uVVJMVG9SZWNvcmRNYXAu
cmVtb3ZlKGljb25SZWNvcmQtPmljb25VUkwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhZ2VVUkxzSW50ZXJlc3RlZEluSWNvbnMucmVt
b3ZlKHVybHNbaV0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5n
UmVhZGluZy5yZW1vdmUoaWNvblJlY29yZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9pY29uc1BlbmRpbmdTeW5jLnNldChpY29uUmVjb3JkLT5pY29u
VVJMKCksIGljb25SZWNvcmQtPnNuYXBzaG90KHRydWUpKTsgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CkBAIC0xMzcx
LDcgKzEzNzEsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6c3luY1RocmVhZE1haW5Mb29wKCkKICAg
ICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOwogICAgICAgICAgICAgcGVyZm9ybVBlbmRpbmdSZXRhaW5BbmRSZWxl
YXNlT3BlcmF0aW9ucygpOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMTQ1MSw3ICsxNDUxLDcg
QEAgdm9pZCBJY29uRGF0YWJhc2U6OnBlcmZvcm1QZW5kaW5nUmV0YWluQQogICAgIEhhc2hDb3Vu
dGVkU2V0PFN0cmluZz4gdG9SZWxlYXNlOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBw
ZW5kaW5nV29ya0xvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2spOworICAgICAgICBM
b2NrSG9sZGVyIHBlbmRpbmdXb3JrTG9ja2VyKG1fdXJsc1RvUmV0YWluT3JSZWxlYXNlTG9jayk7
CiAgICAgICAgIGlmICghbV9yZXRhaW5PclJlbGVhc2VJY29uUmVxdWVzdGVkKQogICAgICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xNDg4LDcgKzE0ODgsNyBAQCBib29sIEljb25EYXRhYmFzZTo6cmVh
ZEZyb21EYXRhYmFzZSgpCiAgICAgLy8gVGhpcyB3YXkgd2Ugd29uJ3QgaG9sZCB0aGUgbG9jayBm
b3IgYSBsb25nIHBlcmlvZCBvZiB0aW1lCiAgICAgVmVjdG9yPEljb25SZWNvcmQqPiBpY29uczsK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAg
ICAgaWNvbnMuYXBwZW5kUmFuZ2UobV9pY29uc1BlbmRpbmdSZWFkaW5nLmJlZ2luKCksIG1faWNv
bnNQZW5kaW5nUmVhZGluZy5lbmQoKSk7CiAgICAgfQogICAgIApAQCAtMTUwMSw5ICsxNTAxLDkg
QEAgYm9vbCBJY29uRGF0YWJhc2U6OnJlYWRGcm9tRGF0YWJhc2UoKQogCiAgICAgICAgIC8vIFZl
cmlmeSB0aGlzIGljb24gc3RpbGwgd2FudHMgdG8gYmUgcmVhZCBmcm9tIGRpc2sKICAgICAgICAg
ewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgdXJsTG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwor
ICAgICAgICAgICAgTG9ja0hvbGRlciB1cmxMb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIgcmVhZExvY2tlcihtX3BlbmRp
bmdSZWFkaW5nTG9jayk7CisgICAgICAgICAgICAgICAgTG9ja0hvbGRlciByZWFkTG9ja2VyKG1f
cGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBp
ZiAobV9pY29uc1BlbmRpbmdSZWFkaW5nLmNvbnRhaW5zKGljb25zW2ldKSkgewogICAgICAgICAg
ICAgICAgICAgICAvLyBTZXQgdGhlIG5ldyBkYXRhCkBAIC0xNTkxLDExICsxNTkxLDExIEBAIGJv
b2wgSWNvbkRhdGFiYXNlOjp3cml0ZVRvRGF0YWJhc2UoKQogICAgIC8vIHdlJ2xsIHBpY2sgaXQg
dXAgb24gdGhlIG5leHQgcGFzcy4gIFRoaXMgZ3JlYXRseSBzaW1wbGlmaWVzIHRoZSBsb2NraW5n
IHN0cmF0ZWd5IGZvciB0aGlzIG1ldGhvZCBhbmQgcmVtYWlucyBjb2hlc2l2ZSB3aXRoIGNoYW5n
ZXMKICAgICAvLyBhc2tlZCBmb3IgYnkgdGhlIGRhdGFiYXNlIG9uIHRoZSBtYWluIHRocmVhZAog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKICAgICAgICAgVmVjdG9y
PEljb25TbmFwc2hvdD4gaWNvblNuYXBzaG90czsKICAgICAgICAgVmVjdG9yPFBhZ2VVUkxTbmFw
c2hvdD4gcGFnZVNuYXBzaG90czsKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fcGVuZGluZ1N5bmNMb2NrKTsKIAogICAgICAgICAgICAgaWNvblNuYXBzaG90cy5hcHBlbmRS
YW5nZShtX2ljb25zUGVuZGluZ1N5bmMuYmVnaW4oKS52YWx1ZXMoKSwgbV9pY29uc1BlbmRpbmdT
eW5jLmVuZCgpLnZhbHVlcygpKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nU3luYy5jbGVh
cigpOwpAQCAtMTY1OCw3ICsxNjU4LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnBydW5lVW5yZXRh
aW5lZEljb25zKAogICAgIAogICAgIGludCByZXN1bHQ7CiAgICAgd2hpbGUgKChyZXN1bHQgPSBw
YWdlU1FMLnN0ZXAoKSkgPT0gU1FMSVRFX1JPVykgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOwogICAgICAgICBpZiAoIW1fcGFnZVVSTFRvUmVjb3JkTWFwLmNvbnRhaW5zKHBh
Z2VTUUwuZ2V0Q29sdW1uVGV4dCgxKSkpCiAgICAgICAgICAgICBwYWdlSURzVG9EZWxldGUuYXBw
ZW5kKHBhZ2VTUUwuZ2V0Q29sdW1uSW50NjQoMCkpOwogICAgIH0KQEAgLTE3OTEsNyArMTc5MSw3
IEBAIHZvaWQqIEljb25EYXRhYmFzZTo6Y2xlYW51cFN5bmNUaHJlYWQoKQogICAgIHdyaXRlVG9E
YXRhYmFzZSgpOwogICAgIAogICAgIC8vIENsb3NlIHRoZSBkYXRhYmFzZQotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNMb2Nr
KTsKICAgICAKICAgICBtX2RhdGFiYXNlRGlyZWN0b3J5ID0gU3RyaW5nKCk7CiAgICAgbV9jb21w
bGV0ZURhdGFiYXNlUGF0aCA9IFN0cmluZygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkRhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkRhdGFiYXNlLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3
IEBACiAjaWYgRU5BQkxFKElDT05EQVRBQkFTRSkKICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5o
IgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTE0MSw4ICsxNDIsOCBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9pc0VuYWJsZWQ7CiAgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQ7CiAKLSAg
ICBtdXRhYmxlIE11dGV4IG1fc3luY0xvY2s7Ci0gICAgVGhyZWFkQ29uZGl0aW9uIG1fc3luY0Nv
bmRpdGlvbjsKKyAgICBtdXRhYmxlIExvY2sgbV9zeW5jTG9jazsKKyAgICBDb25kaXRpb24gbV9z
eW5jQ29uZGl0aW9uOwogICAgIFN0cmluZyBtX2RhdGFiYXNlRGlyZWN0b3J5OwogICAgIC8vIEhv
bGRpbmcgbV9zeW5jTG9jayBpcyByZXF1aXJlZCB3aGVuIGFjY2Vzc2luZyBtX2NvbXBsZXRlRGF0
YWJhc2VQYXRoCiAgICAgU3RyaW5nIG1fY29tcGxldGVEYXRhYmFzZVBhdGg7CkBAIC0xNTMsMjQg
KzE1NCwyNCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zeW5jVGhyZWFkSGFzV29ya1RvRG87CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFN1ZGRlblRlcm1pbmF0aW9uRGlzYWJsZXI+IG1fZGlzYWJsZVN1
ZGRlblRlcm1pbmF0aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG87CiAKLSAgICBNdXRleCBt
X3VybEFuZEljb25Mb2NrOworICAgIExvY2sgbV91cmxBbmRJY29uTG9jazsKICAgICAvLyBIb2xk
aW5nIG1fdXJsQW5kSWNvbkxvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgYW55IG9mIHRo
ZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzIG9yIHRoZSBvYmplY3RzIHRoZXkgY29udGFpbgog
ICAgIEhhc2hNYXA8U3RyaW5nLCBJY29uUmVjb3JkKj4gbV9pY29uVVJMVG9SZWNvcmRNYXA7CiAg
ICAgSGFzaE1hcDxTdHJpbmcsIFBhZ2VVUkxSZWNvcmQqPiBtX3BhZ2VVUkxUb1JlY29yZE1hcDsK
ICAgICBIYXNoU2V0PFN0cmluZz4gbV9yZXRhaW5lZFBhZ2VVUkxzOwogCi0gICAgTXV0ZXggbV9w
ZW5kaW5nU3luY0xvY2s7CisgICAgTG9jayBtX3BlbmRpbmdTeW5jTG9jazsKICAgICAvLyBIb2xk
aW5nIG1fcGVuZGluZ1N5bmNMb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0
aGUgZm9sbG93aW5nIGRhdGEgc3RydWN0dXJlcwogICAgIEhhc2hNYXA8U3RyaW5nLCBQYWdlVVJM
U25hcHNob3Q+IG1fcGFnZVVSTHNQZW5kaW5nU3luYzsKICAgICBIYXNoTWFwPFN0cmluZywgSWNv
blNuYXBzaG90PiBtX2ljb25zUGVuZGluZ1N5bmM7CiAgICAgCi0gICAgTXV0ZXggbV9wZW5kaW5n
UmVhZGluZ0xvY2s7ICAgIAorICAgIExvY2sgbV9wZW5kaW5nUmVhZGluZ0xvY2s7ICAgIAogICAg
IC8vIEhvbGRpbmcgbV9wZW5kaW5nU3luY0xvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3Npbmcg
YW55IG9mIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzIC0gd2hlbiBkZWFsaW5nIHdpdGgg
SWNvblJlY29yZCpzLCBob2xkaW5nIG1fdXJsQW5kSWNvbkxvY2sgaXMgYWxzbyByZXF1aXJlZAog
ICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3BhZ2VVUkxzUGVuZGluZ0ltcG9ydDsKICAgICBIYXNoU2V0
PFN0cmluZz4gbV9wYWdlVVJMc0ludGVyZXN0ZWRJbkljb25zOwogICAgIEhhc2hTZXQ8SWNvblJl
Y29yZCo+IG1faWNvbnNQZW5kaW5nUmVhZGluZzsKIAotICAgIE11dGV4IG1fdXJsc1RvUmV0YWlu
T3JSZWxlYXNlTG9jazsKKyAgICBMb2NrIG1fdXJsc1RvUmV0YWluT3JSZWxlYXNlTG9jazsKICAg
ICAvLyBIb2xkaW5nIG1fdXJsc1RvUmV0YWluT3JSZWxlYXNlTG9jayBpcyByZXF1aXJlZCB3aGVu
IGFjY2Vzc2luZyBhbnkgb2YgdGhlIGZvbGxvd2luZyBkYXRhIHN0cnVjdHVyZXMuCiAgICAgSGFz
aENvdW50ZWRTZXQ8U3RyaW5nPiBtX3VybHNUb1JldGFpbjsKICAgICBIYXNoQ291bnRlZFNldDxT
dHJpbmc+IG1fdXJsc1RvUmVsZWFzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDksNyArNDksNyBAQCBTY3JvbGxpbmdUcmVlOjp+U2Nyb2xsaW5nVHJlZSgpCiBib29sIFNj
cm9sbGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBp
bnZva2VkIGJ5IHRoZSBldmVudCBoYW5kbGluZyB0aHJlYWQKLSAgICBNdXRleExvY2tlciBsb2Nr
KG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKIAogICAgIGJvb2wgc2hv
dWxkU2V0TGF0Y2ggPSB3aGVlbEV2ZW50LnNob3VsZENvbnNpZGVyTGF0Y2hpbmcoKTsKICAgICAK
QEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OmNvbW1pdE5ld1RyZWVTdGF0
ZShzCiAgICAgICAgICYmIChyb290U3RhdGVOb2RlQ2hhbmdlZAogICAgICAgICAgICAgfHwgcm9v
dE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9k
ZTo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pCiAgICAgICAgICAgICB8fCByb290Tm9kZS0+aGFz
Q2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5ZXIpKSkgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV9tdXRleCk7CiAKICAgICAgICAgaWYgKHJvb3RTdGF0ZU5vZGVDaGFuZ2VkIHx8IHJvb3ROb2Rl
LT5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpTY3JvbGxMYXllcikpCiAg
ICAgICAgICAgICBtX21haW5GcmFtZVNjcm9sbFBvc2l0aW9uID0gRmxvYXRQb2ludCgpOwpAQCAt
MjA4LDcgKzIwOCw3IEBAIFNjcm9sbGluZ1RyZWVOb2RlKiBTY3JvbGxpbmdUcmVlOjpub2RlRm8K
IAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRv
VGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJpZ2h0LCBib29sIHBpbm5lZFRvVGhlVG9wLCBib29s
IHBpbm5lZFRvVGhlQm90dG9tKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBlU3Rh
dGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAg
ICAgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUxlZnQgPSBwaW5uZWRUb1RoZUxlZnQ7CiAgICAgbV9t
YWluRnJhbWVQaW5uZWRUb1RoZVJpZ2h0ID0gcGlubmVkVG9UaGVSaWdodDsKQEAgLTIxOCw1NCAr
MjE4LDU0IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3RhdGUKIAogRmxv
YXRQb2ludCBTY3JvbGxpbmdUcmVlOjptYWluRnJhbWVTY3JvbGxQb3NpdGlvbigpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7
CiAgICAgcmV0dXJuIG1fbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb247CiB9CiAKIHZvaWQgU2Nyb2xs
aW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oRmxvYXRQb2ludCBwb3NpdGlvbikK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayht
X211dGV4KTsKICAgICBtX21haW5GcmFtZVNjcm9sbFBvc2l0aW9uID0gcG9zaXRpb247CiB9CiAK
IGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNQb2ludEluTm9uRmFzdFNjcm9sbGFibGVSZWdpb24oSW50
UG9pbnQgcCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9jayhtX211dGV4KTsKICAgICAKICAgICByZXR1cm4gbV9ub25GYXN0U2Nyb2xsYWJsZVJl
Z2lvbi5jb250YWlucyhwKTsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjppc1J1YmJlckJhbmRJ
blByb2dyZXNzKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOyAgICAKKyAgICBM
b2NrSG9sZGVyIGxvY2sobV9tdXRleCk7ICAgIAogCiAgICAgcmV0dXJuIG1fbWFpbkZyYW1lSXNS
dWJiZXJCYW5kaW5nOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZUlzUnVi
YmVyQmFuZGluZyhib29sIGlzUnViYmVyQmFuZGluZykKIHsKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBtX21h
aW5GcmFtZUlzUnViYmVyQmFuZGluZyA9IGlzUnViYmVyQmFuZGluZzsKIH0KIAogYm9vbCBTY3Jv
bGxpbmdUcmVlOjppc1Njcm9sbFNuYXBJblByb2dyZXNzKCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAKICAgICBy
ZXR1cm4gbV9tYWluRnJhbWVJc1Njcm9sbFNuYXBwaW5nOwogfQogICAgIAogdm9pZCBTY3JvbGxp
bmdUcmVlOjpzZXRNYWluRnJhbWVJc1Njcm9sbFNuYXBwaW5nKGJvb2wgaXNTY3JvbGxTbmFwcGlu
ZykKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9tdXRleCk7CiAgICAgCiAgICAgbV9tYWluRnJhbWVJc1Njcm9sbFNuYXBwaW5nID0g
aXNTY3JvbGxTbmFwcGluZzsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRDYW5SdWJiZXJC
YW5kU3RhdGUoYm9vbCBjYW5SdWJiZXJCYW5kQXRMZWZ0LCBib29sIGNhblJ1YmJlckJhbmRBdFJp
Z2h0LCBib29sIGNhblJ1YmJlckJhbmRBdFRvcCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRCb3R0b20p
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CiAKICAgICBtX3J1YmJlckJhbmRzQXRM
ZWZ0ID0gY2FuUnViYmVyQmFuZEF0TGVmdDsKICAgICBtX3J1YmJlckJhbmRzQXRSaWdodCA9IGNh
blJ1YmJlckJhbmRBdFJpZ2h0OwpAQCAtMjc1LDI4ICsyNzUsMjggQEAgdm9pZCBTY3JvbGxpbmdU
cmVlOjpzZXRDYW5SdWJiZXJCYW5kU3RhdAogCiBib29sIFNjcm9sbGluZ1RyZWU6OnJ1YmJlckJh
bmRzQXRMZWZ0KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1f
cnViYmVyQmFuZHNBdExlZnQ7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNB
dFJpZ2h0KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1fcnVi
YmVyQmFuZHNBdFJpZ2h0OwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRC
b3R0b20oKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CiAKICAgICByZXR1cm4gbV9ydWJi
ZXJCYW5kc0F0Qm90dG9tOwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRU
b3AoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CiAKICAgICByZXR1cm4gbV9ydWJiZXJC
YW5kc0F0VG9wOwogfQpAQCAtMzA4LDE0ICszMDgsMTQgQEAgYm9vbCBTY3JvbGxpbmdUcmVlOjpp
c0hhbmRsaW5nUHJvZ3JhbW1hdAogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldFNjcm9sbFBpbm5p
bmdCZWhhdmlvcihTY3JvbGxQaW5uaW5nQmVoYXZpb3IgcGlubmluZykKIHsKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9zd2lwZVN0YXRlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
c3dpcGVTdGF0ZU11dGV4KTsKICAgICAKICAgICBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvciA9IHBp
bm5pbmc7CiB9CiAKIFNjcm9sbFBpbm5pbmdCZWhhdmlvciBTY3JvbGxpbmdUcmVlOjpzY3JvbGxQ
aW5uaW5nQmVoYXZpb3IoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9zd2lwZVN0YXRlTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CiAgICAgCiAgICAg
cmV0dXJuIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yOwogfQpAQCAtMzI1LDcgKzMyNSw3IEBAIGJv
b2wgU2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFMKICAgICBpZiAod2hlZWxFdmVu
dC5waGFzZSgpICE9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQmVnYW4pCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CiAKICAgICBpZiAod2hlZWxFdmVu
dC5kZWx0YVgoKSA+IDAgJiYgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUxlZnQgJiYgIW1fcnViYmVy
QmFuZHNBdExlZnQpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMzUxLDE5ICszNTEsMTkgQEAg
Ym9vbCBTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdQZXJmb3JtYW5jZQogCiBTY3JvbGxpbmdOb2Rl
SUQgU2Nyb2xsaW5nVHJlZTo6bGF0Y2hlZE5vZGUoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICByZXR1cm4g
bV9sYXRjaGVkTm9kZTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZShT
Y3JvbGxpbmdOb2RlSUQgbm9kZSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgbV9sYXRjaGVkTm9kZSA9IG5v
ZGU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6Y2xlYXJMYXRjaGVkTm9kZSgpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0
ZXgpOwogICAgIG1fbGF0Y2hlZE5vZGUgPSAwOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCShyZXZpc2lvbiAxODg1MTApCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgog
I2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0VHJpZ2dlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAKQEAgLTE2MCwxMSArMTYxLDEx
IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFNjcm9sbGluZ05vZGVJRCwgU2Nyb2xs
aW5nVHJlZU5vZGUqPiBTY3JvbGxpbmdUcmVlTm9kZU1hcDsKICAgICBTY3JvbGxpbmdUcmVlTm9k
ZU1hcCBtX25vZGVNYXA7CiAKLSAgICBNdXRleCBtX211dGV4OworICAgIExvY2sgbV9tdXRleDsK
ICAgICBSZWdpb24gbV9ub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbjsKICAgICBGbG9hdFBvaW50IG1f
bWFpbkZyYW1lU2Nyb2xsUG9zaXRpb247CiAKLSAgICBNdXRleCBtX3N3aXBlU3RhdGVNdXRleDsK
KyAgICBMb2NrIG1fc3dpcGVTdGF0ZU11dGV4OwogICAgIFNjcm9sbFBpbm5pbmdCZWhhdmlvciBt
X3Njcm9sbFBpbm5pbmdCZWhhdmlvciB7IERvTm90UGluIH07CiAgICAgU2Nyb2xsaW5nTm9kZUlE
IG1fbGF0Y2hlZE5vZGUgeyAwIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01l
bW9yeVByZXNzdXJlSGFuZGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NsZWFyUHJlc3N1cmVPbk1l
bW9yeVJlbGVhc2U7CiAgICAgdm9pZCAoXm1fcmVsZWFzZU1lbW9yeUJsb2NrKSgpOwogICAgIENG
UnVuTG9vcE9ic2VydmVyUmVmIG1fb2JzZXJ2ZXI7Ci0gICAgTXV0ZXggbV9vYnNlcnZlck11dGV4
OworICAgIExvY2sgbV9vYnNlcnZlck11dGV4OwogI2VsaWYgT1MoTElOVVgpCiAgICAgaW50IG1f
ZXZlbnRGRDsKICAgICBpbnQgbV9wcmVzc3VyZUxldmVsRkQ7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAJKHJldmlz
aW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFz
ZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIEhSVEZE
YXRhYmFzZUxvYWRlcjo6bG9hZEFzeW5jaHJvbm91CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RocmVhZExvY2spOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fdGhyZWFkTG9jayk7CiAgICAgCiAgICAgaWYgKCFtX2hydGZEYXRhYmFz
ZS5nZXQoKSAmJiAhbV9kYXRhYmFzZUxvYWRlclRocmVhZCkgewogICAgICAgICAvLyBTdGFydCB0
aGUgYXN5bmNocm9ub3VzIGRhdGFiYXNlIGxvYWRpbmcgcHJvY2Vzcy4KQEAgLTExNyw3ICsxMTcs
NyBAQCBib29sIEhSVEZEYXRhYmFzZUxvYWRlcjo6aXNMb2FkZWQoKSBjb25zCiAKIHZvaWQgSFJU
RkRhdGFiYXNlTG9hZGVyOjp3YWl0Rm9yTG9hZGVyVGhyZWFkQ29tcGxldGlvbigpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGhyZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV90aHJlYWRMb2NrKTsKICAgICAKICAgICAvLyB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbigpIHNo
b3VsZCBub3QgYmUgY2FsbGVkIHR3aWNlIGZvciB0aGUgc2FtZSB0aHJlYWQuCiAgICAgaWYgKG1f
ZGF0YWJhc2VMb2FkZXJUaHJlYWQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9IUlRGRGF0YWJhc2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJIUlRGRGF0YWJhc2UuaCIKICNpbmNs
dWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC03Niw3ICs3Nyw3IEBAIHByaXZhdGU6
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEhSVEZEYXRhYmFzZT4gbV9ocnRmRGF0YWJhc2U7CiAKICAg
ICAvLyBIb2xkaW5nIGEgbV90aHJlYWRMb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIG1f
ZGF0YWJhc2VMb2FkZXJUaHJlYWQuCi0gICAgTXV0ZXggbV90aHJlYWRMb2NrOworICAgIExvY2sg
bV90aHJlYWRMb2NrOwogICAgIFRocmVhZElkZW50aWZpZXIgbV9kYXRhYmFzZUxvYWRlclRocmVh
ZDsKIAogICAgIGZsb2F0IG1fZGF0YWJhc2VTYW1wbGVSYXRlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVy
Q29jb2EubW0JKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNTYs
NyArMjU2LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNldFJlY2VpdmVkTQogICAg
IG1fdW5kZXJNZW1vcnlQcmVzc3VyZSA9IHRydWU7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX29ic2VydmVyTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X29ic2VydmVyTXV0ZXgpOwogICAgICAgICBpZiAoIW1fb2JzZXJ2ZXIpIHsKICAgICAgICAgICAg
IG1fb2JzZXJ2ZXIgPSBDRlJ1bkxvb3BPYnNlcnZlckNyZWF0ZShOVUxMLCBrQ0ZSdW5Mb29wQmVm
b3JlV2FpdGluZyB8IGtDRlJ1bkxvb3BFeGl0LCBOTyAvKiBkb24ndCByZXBlYXQgKi8sCiAgICAg
ICAgICAgICAgICAgMCwgV2ViQ29yZTo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmVDYWxsYmFjaywg
TlVMTCk7CkBAIC0yNzIsMTQgKzI3MiwxNCBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
Y2xlYXJNZW1vcnlQCiAgICAgbV91bmRlck1lbW9yeVByZXNzdXJlID0gZmFsc2U7CiAKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29ic2VydmVyTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX29ic2VydmVyTXV0ZXgpOwogICAgICAgICBtX21lbW9yeVByZXNz
dXJlUmVhc29uID0gTWVtb3J5UHJlc3N1cmVSZWFzb25Ob25lOwogICAgIH0KIH0KIAogYm9vbCBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNob3VsZFdhaXRGb3JNZW1vcnlDbGVhck1lc3NhZ2UoKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29ic2VydmVyTXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CiAgICAgcmV0dXJuIG1fbWVtb3J5UHJlc3N1cmVS
ZWFzb24gJiBNZW1vcnlQcmVzc3VyZVJlYXNvblZNU3RhdHVzOwogfQogCkBAIC0yODgsNyArMjg4
LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbQogICAgIEFTU0VS
VChXZWJUaHJlYWRJc0xvY2tlZE9yRGlzYWJsZWQoKSk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX29ic2VydmVyTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX29ic2VydmVyTXV0ZXgpOwogICAgICAgICBtX29ic2VydmVyID0gMDsKICAgICB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlz
cGxheVJlZnJlc2hNb25pdG9yLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODksNyArODksNyBAQCB2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGxh
eURpZFJlCiAgICAgZG91YmxlIG1vbm90b25pY0FuaW1hdGlvblN0YXJ0VGltZTsKIAogICAgIHsK
LSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBs
b2NrKG1fbXV0ZXgpOwogICAgICAgICBpZiAoIW1fc2NoZWR1bGVkKQogICAgICAgICAgICAgKytt
X3Vuc2NoZWR1bGVkRmlyZUNvdW50OwogICAgICAgICBlbHNlCkBAIC0xMjEsNyArMTIxLDcgQEAg
dm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlEaWRSZQogICAgICAgICBtX2NsaWVu
dHNUb0JlTm90aWZpZWQgPSBudWxscHRyOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAg
IG1fcHJldmlvdXNGcmFtZURvbmUgPSB0cnVlOwogICAgIH0KICAgICAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvci5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDE0LCAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzAsOSArMzAsOSBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBzZXRNb25vdG9uaWNBbmltYXRpb25TdGFydFRpbWUoZG91YmxlIHN0YXJ0VGlt
ZSkgeyBtX21vbm90b25pY0FuaW1hdGlvblN0YXJ0VGltZSA9IHN0YXJ0VGltZTsgfQogCi0gICAg
TXV0ZXgmIG11dGV4KCkgeyByZXR1cm4gbV9tdXRleDsgfQorICAgIExvY2smIG11dGV4KCkgeyBy
ZXR1cm4gbV9tdXRleDsgfQogCiAgICAgc3RhdGljIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0
b3I+IGNyZWF0ZURlZmF1bHREaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQp
OwogCkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ByZXZpb3VzRnJhbWVE
b25lOwogICAgIGludCBtX3Vuc2NoZWR1bGVkRmlyZUNvdW50OyAvLyBOdW1iZXIgb2YgdGltZXMg
dGhlIGRpc3BsYXkgbGluayBoYXMgZmlyZWQgd2l0aCBubyBjbGllbnRzLgogICAgIFBsYXRmb3Jt
RGlzcGxheUlEIG1fZGlzcGxheUlEOwotICAgIE11dGV4IG1fbXV0ZXg7CisgICAgTG9jayBtX211
dGV4OwogCiAgICAgSGFzaFNldDxEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQqPiBtX2NsaWVu
dHM7CiAgICAgSGFzaFNldDxEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQqPiogbV9jbGllbnRz
VG9CZU5vdGlmaWVkOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzUsNyArNzM1LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldAogCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6c2V0RGVsYXlDYWxsYmFja3MoYm9vbCBkZWxheSkgY29uc3QKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
KG1fcXVldWVNdXRleCk7CiAgICAgaWYgKGRlbGF5KQogICAgICAgICArK21fZGVsYXlDYWxsYmFj
a3M7CiAgICAgZWxzZSB7CkBAIC03NTQsNyArNzU0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246Om1haQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bjo6Y2xlYXJNYWluVGhyZWFkUGVuZGluZ0ZsYWcoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2so
bV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKICAgICBt
X21haW5UaHJlYWRDYWxsUGVuZGluZyA9IGZhbHNlOwogfQogCkBAIC04MjAsNyArODIwLDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmRpcwogCiAgICAgTm90aWZpY2F0
aW9uIG5vdGlmaWNhdGlvbiA9IE5vdGlmaWNhdGlvbigpOwogICAgIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1
ZU11dGV4KTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX3F1ZXVlZE5vdGlmaWNhdGlvbnMuaXNF
bXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAkocmV2aXNpb24gMTg4NTEwKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMTcsNyArMzE3LDcg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gbV9wZW5kaW5nU2VlazsKIAog
ICAgIFZlY3RvcjxOb3RpZmljYXRpb24+IG1fcXVldWVkTm90aWZpY2F0aW9uczsKLSAgICBtdXRh
YmxlIE11dGV4IG1fcXVldWVNdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9xdWV1ZU11dGV4Owog
CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBtX2NhY2hl
ZExvYWRlZFRpbWVSYW5nZXM7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAkocmV2aXNpb24gMTg4
NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2Nm
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgaW5saW5lIHZvaWQqIGNhbGxi
YWNrQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fb2Jq
ZWN0SUQpOyB9CiAKLSAgICBzdGF0aWMgTXV0ZXgmIG1hcExvY2soKTsKKyAgICBzdGF0aWMgTG9j
ayYgbWFwTG9jaygpOwogICAgIHN0YXRpYyBIYXNoTWFwPHVpbnRwdHJfdCwgQVZGV3JhcHBlcio+
JiBtYXAoKTsKICAgICBzdGF0aWMgQVZGV3JhcHBlciogYXZmV3JhcHBlckZvckNhbGxiYWNrQ29u
dGV4dCh2b2lkKik7CiAgICAgdm9pZCBhZGRUb01hcCgpOwpAQCAtMTQwNCw5ICsxNDA0LDkgQEAg
QVZGV3JhcHBlcjo6fkFWRldyYXBwZXIoKQogICAgIG1fYXZQbGF5ZXIgPSAwOwogfQogCi1NdXRl
eCYgQVZGV3JhcHBlcjo6bWFwTG9jaygpCitMb2NrJiBBVkZXcmFwcGVyOjptYXBMb2NrKCkKIHsK
LSAgICBzdGF0aWMgTXV0ZXggbWFwTG9jazsKKyAgICBzdGF0aWMgTG9jayBtYXBMb2NrOwogICAg
IHJldHVybiBtYXBMb2NrOwogfQogCkBAIC0xNDE4LDcgKzE0MTgsNyBAQCBIYXNoTWFwPHVpbnRw
dHJfdCwgQVZGV3JhcHBlcio+JiBBVkZXcmFwCiAKIHZvaWQgQVZGV3JhcHBlcjo6YWRkVG9NYXAo
KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1hcExvY2soKSk7CiAgICAgCiAgICAgLy8gSGFzaE1hcCBkb2Vzbid0IGxpa2UgYSBr
ZXkgb2YgMCwgYW5kIGFsc28gbWFrZSBzdXJlIHdlIGFyZW4ndAogICAgIC8vIHVzaW5nIGFuIG9i
amVjdCBJRCB0aGF0J3MgYWxyZWFkeSBpbiB1c2UuCkBAIC0xNDM0LDcgKzE0MzQsNyBAQCB2b2lk
IEFWRldyYXBwZXI6OnJlbW92ZUZyb21NYXAoKSBjb25zdAogewogICAgIExPRyhNZWRpYSwgIkFW
RldyYXBwZXI6OnJlbW92ZUZyb21NYXAoJXAgJWQpIiwgdGhpcywgbV9vYmplY3RJRCk7CiAKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
YXBMb2NrKCkpOwogICAgIG1hcCgpLnJlbW92ZShtX29iamVjdElEKTsKIH0KIApAQCAtMTYzNSw3
ICsxNjM1LDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpjcmVhdGVQbGF5ZXJJdGVtKCkKIAogdm9pZCBB
VkZXcmFwcGVyOjpwZXJpb2RpY1RpbWVPYnNlcnZlckNhbGxiYWNrKEFWQ0ZQbGF5ZXJSZWYsIENN
VGltZSBjbVRpbWUsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1h
cExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFw
cGVyKiBzZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChjb250ZXh0KTsKICAgICBp
ZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6cGVyaW9kaWNUaW1l
T2JzZXJ2ZXJDYWxsYmFjayBpbnZva2VkIGZvciBkZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCkpOwpAQCAtMTY2Niw3ICsxNjY2LDcgQEAg
dm9pZCBBVkZXcmFwcGVyOjpwcm9jZXNzTm90aWZpY2F0aW9uKHZvaQogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YT4gbm90aWZpY2F0aW9uRGF0YSB7IHN0YXRp
Y19jYXN0PE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YSo+KGNvbnRleHQpIH07CiAKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2Nr
KCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0
KG5vdGlmaWNhdGlvbkRhdGEtPm1fY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAg
IExPRyhNZWRpYSwgIkFWRldyYXBwZXI6OnByb2Nlc3NOb3RpZmljYXRpb24gaW52b2tlZCBmb3Ig
ZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRl
eHQpKTsKQEAgLTE3MjEsNyArMTcyMSw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6bm90aWZpY2F0aW9u
Q2FsbGJhY2soQ0YKIAogdm9pZCBBVkZXcmFwcGVyOjpsb2FkUGxheWFibGVDb21wbGV0aW9uQ2Fs
bGJhY2soQVZDRkFzc2V0UmVmLCB2b2lkKiBjb250ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAg
QVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQoY29udGV4dCk7
CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6OmxvYWRQ
bGF5YWJsZUNvbXBsZXRpb25DYWxsYmFjayBpbnZva2VkIGZvciBkZWxldGVkIEFWRldyYXBwZXIg
JWQiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCkpOwpAQCAtMTc0OSw3ICsx
NzQ5LDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpjaGVja1BsYXlhYmlsaXR5KCkKIAogdm9pZCBBVkZX
cmFwcGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2soQVZDRkFzc2V0UmVmLCB2b2lk
KiBjb250ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2Zldy
YXBwZXJGb3JDYWxsYmFja0NvbnRleHQoY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAg
ICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6OmxvYWRNZXRhZGF0YUNvbXBsZXRpb25DYWxsYmFj
ayBpbnZva2VkIGZvciBkZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4oY29udGV4dCkpOwpAQCAtMTc2OSw3ICsxNzY5LDcgQEAgdm9pZCBBVkZXcmFwcGVy
OjpiZWdpbkxvYWRpbmdNZXRhZGF0YSgpCiAKIHZvaWQgQVZGV3JhcHBlcjo6c2Vla0NvbXBsZXRl
ZENhbGxiYWNrKEFWQ0ZQbGF5ZXJJdGVtUmVmLCBCb29sZWFuIGZpbmlzaGVkLCB2b2lkKiBjb250
ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJG
b3JDYWxsYmFja0NvbnRleHQoY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExP
RyhNZWRpYSwgIkFWRldyYXBwZXI6OnNlZWtDb21wbGV0ZWRDYWxsYmFjayBpbnZva2VkIGZvciBk
ZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29udGV4
dCkpOwpAQCAtMTgxMiw3ICsxODEyLDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpwcm9jZXNzQ3VlKHZv
aWQqIGNvbnRleAogCiAgICAgc3RkOjp1bmlxdWVfcHRyPExlZ2libGVPdXRwdXREYXRhPiBsZWdp
YmxlT3V0cHV0RGF0YShyZWludGVycHJldF9jYXN0PExlZ2libGVPdXRwdXREYXRhKj4oY29udGV4
dCkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBlckZv
ckNhbGxiYWNrQ29udGV4dChsZWdpYmxlT3V0cHV0RGF0YS0+bV9jb250ZXh0KTsKICAgICBpZiAo
IXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6cHJvY2Vzc0N1ZSBpbnZv
a2VkIGZvciBkZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4oY29udGV4dCkpOwpAQCAtMTgyOCw3ICsxODI4LDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpwcm9j
ZXNzQ3VlKHZvaWQqIGNvbnRleAogdm9pZCBBVkZXcmFwcGVyOjpsZWdpYmxlT3V0cHV0Q2FsbGJh
Y2sodm9pZCogY29udGV4dCwgQVZDRlBsYXllckl0ZW1MZWdpYmxlT3V0cHV0UmVmIGxlZ2libGVP
dXRwdXQsIENGQXJyYXlSZWYgYXR0cmlidXRlZFN0cmluZ3MsIENGQXJyYXlSZWYgbmF0aXZlU2Ft
cGxlQnVmZmVycywgQ01UaW1lIGl0ZW1UaW1lKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFk
KCkpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JD
YWxsYmFja0NvbnRleHQoY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExPRyhN
ZWRpYSwgIkFWRldyYXBwZXI6OmxlZ2libGVPdXRwdXRDYWxsYmFjayBpbnZva2VkIGZvciBkZWxl
dGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCkp
OwpAQCAtMTg2Niw3ICsxODY2LDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpwcm9jZXNzU2hvdWxkV2Fp
dEZvckxvYQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPExvYWRSZXF1ZXN0RGF0YT4gbG9hZFJlcXVl
c3REYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8TG9hZFJlcXVlc3REYXRhKj4oY29udGV4dCkpOwogCi0g
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNr
Q29udGV4dChsb2FkUmVxdWVzdERhdGEtPm1fY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAg
ICAgICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6OnByb2Nlc3NTaG91bGRXYWl0Rm9yTG9hZGlu
Z09mUmVzb3VyY2UgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE5MjIsNyArMTkyMiw3IEBAIGJvb2wg
QVZGV3JhcHBlcjo6c2hvdWxkV2FpdEZvckxvYWRpbmdPZlIKIEJvb2xlYW4gQVZGV3JhcHBlcjo6
cmVzb3VyY2VMb2FkZXJTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVxdWVzdGVkUmVzb3VyY2UoQVZD
RkFzc2V0UmVzb3VyY2VMb2FkZXJSZWYgcmVzb3VyY2VMb2FkZXIsIEFWQ0ZBc3NldFJlc291cmNl
TG9hZGluZ1JlcXVlc3RSZWYgbG9hZGluZ1JlcXVlc3QsIHZvaWQgKmNvbnRleHQpCiB7CiAgICAg
QVNTRVJUKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgIT0gZGlzcGF0Y2hfZ2V0X2N1cnJlbnRf
cXVldWUoKSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBl
ckZvckNhbGxiYWNrQ29udGV4dChjb250ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAg
TE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6cmVzb3VyY2VMb2FkZXJTaG91bGRXYWl0Rm9yTG9hZGlu
Z09mUmVxdWVzdGVkUmVzb3VyY2UgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwg
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0
cmVhbWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAJKHJldmlzaW9u
IDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9J
bmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcs
NyArNzcsNyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6OmhhCiB7CiAg
ICAgbV9zYW1wbGVUaW1lckhhbmRsZXIuY2FuY2VsKCk7CiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBsb2NrKG1fc2FtcGxlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9zYW1w
bGVNdXRleCk7CiAgICAgICAgIG1fcGVuZGluZ1NhbXBsZXMuYXBwZW5kKHNhbXBsZSk7CiAgICAg
fQogICAgIG1fc2FtcGxlVGltZXJIYW5kbGVyLnNjaGVkdWxlKCJbV2ViS2l0XSBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlIiwgc3RkOjpmdW5jdGlv
bjx2b2lkKCk+KHN0ZDo6YmluZCgmSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6bm90
aWZ5VHJhY2tPZlNhbXBsZSwgdGhpcykpKTsKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpubwogewogICAgIFZlY3RvcjxHUmVmUHRyPEdzdFNh
bXBsZT4gPiBzYW1wbGVzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3NhbXBs
ZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fc2FtcGxlTXV0ZXgpOwogICAgICAg
ICBtX3BlbmRpbmdTYW1wbGVzLnN3YXAoc2FtcGxlcyk7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgJKHJldmlzaW9u
IDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9J
bmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcg
KzY3LDcgQEAgcHJpdmF0ZToKICAgICBndWxvbmcgbV9ldmVudFByb2JlOwogICAgIFZlY3RvcjxH
UmVmUHRyPEdzdFNhbXBsZT4gPiBtX3BlbmRpbmdTYW1wbGVzOwogICAgIFN0cmluZyBtX3N0cmVh
bUlkOwotICAgIE11dGV4IG1fc2FtcGxlTXV0ZXg7CisgICAgTG9jayBtX3NhbXBsZU11dGV4Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFj
a1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFt
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBUcmFja1ByaXZh
dGVCYXNlR1N0cmVhbWVyOjp0YWdzQ2hhbgogICAgIEdSZWZQdHI8R3N0VGFnTGlzdD4gdGFnczsK
ICAgICBnX29iamVjdF9nZXQobV9wYWQuZ2V0KCksICJ0YWdzIiwgJnRhZ3Mub3V0UHRyKCksIE5V
TEwpOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RhZ011dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fdGFnTXV0ZXgpOwogICAgICAgICBtX3RhZ3Muc3dhcCh0YWdz
KTsKICAgICB9CiAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFRyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXI6Om5vdGlmeVRyCiAKICAgICBHUmVmUHRyPEdzdFRhZ0xpc3Q+IHRhZ3M7CiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fdGFnTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobV90YWdNdXRleCk7CiAgICAgICAgIHRhZ3Muc3dhcChtX3RhZ3MpOwogICAgIH0KICAg
ICBpZiAoIXRhZ3MpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVh
bWVyLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNl
IG1fYWN0aXZlVGltZXJIYW5kbGVyOwogICAgIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UgbV90
YWdUaW1lckhhbmRsZXI7CiAKLSAgICBNdXRleCBtX3RhZ011dGV4OworICAgIExvY2sgbV90YWdN
dXRleDsKICAgICBHUmVmUHRyPEdzdFRhZ0xpc3Q+IG1fdGFnczsKIH07CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9E
aXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODQsMTQgKzg0LDE0IEBAIGJvb2wgRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFjOjpyZXF1ZXN0UmUKICAgICAgICAgc2V0SXNBY3RpdmUodHJ1ZSk7CiAgICAgfQog
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobXV0
ZXgoKSk7CiAgICAgc2V0SXNTY2hlZHVsZWQodHJ1ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
IHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0ZpcmVkKGRvdWJsZSBu
b3dTZWNvbmRzLCBkb3VibGUgb3V0cHV0VGltZVNlY29uZHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9jayhtdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobXV0ZXgoKSk7CiAgICAgaWYgKCFp
c1ByZXZpb3VzRnJhbWVEb25lKCkpCiAgICAgICAgIHJldHVybjsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAJKHJldmlzaW9uIDE4ODUx
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MTIsMjEgKzUxMiwy
MSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjphZGRMaXN0ZW5lcihNZWRpYVBsYXllckxp
c3RlbmVyKiBsaXN0ZW5lcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleExpc3Rl
bmVycyk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7CiAKICAgICBt
X2xpc3RlbmVycy5hZGQobGlzdGVuZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhRm91bmRhdGlvbjo6cmVtb3ZlTGlzdGVuZXIoTWVkaWFQbGF5ZXJMaXN0ZW5lciogbGlzdGVu
ZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5lcnMpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5lcnMpOwogCiAgICAgbV9saXN0ZW5lcnMucmVt
b3ZlKGxpc3RlbmVyKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRp
b246Om5vdGlmeURlbGV0ZWQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4TGlz
dGVuZXJzKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4TGlzdGVuZXJzKTsKIAogICAg
IGZvciAoSGFzaFNldDxNZWRpYVBsYXllckxpc3RlbmVyKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
bV9saXN0ZW5lcnMuYmVnaW4oKTsgaXQgIT0gbV9saXN0ZW5lcnMuZW5kKCk7ICsraXQpCiAgICAg
ICAgICgqaXQpLT5vbk1lZGlhUGxheWVyRGVsZXRlZCgpOwpAQCAtNzA0LDcgKzcwNCw3IEBAIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgTWVkaWFQbGF5ZXJQcmkKIAogSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJh
Y2s6Okludm9rZShfX1JQQ19faW5fb3B0IElNRkFzeW5jUmVzdWx0ICpwQXN5bmNSZXN1bHQpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fbXV0ZXgpOwogCiAgICAgaWYgKCFtX21lZGlhUGxheWVyKQogICAgICAgICByZXR1cm4gU19P
SzsKQEAgLTcxOSw3ICs3MTksNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIE1lZGlhUGxh
eWVyUHJpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpBc3luY0Nh
bGxiYWNrOjpvbk1lZGlhUGxheWVyRGVsZXRlZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgbV9tZWRp
YVBsYXllciA9IG51bGxwdHI7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKIAogICAgIGNsYXNzIE1l
ZGlhUGxheWVyTGlzdGVuZXI7CiAgICAgSGFzaFNldDxNZWRpYVBsYXllckxpc3RlbmVyKj4gbV9s
aXN0ZW5lcnM7Ci0gICAgTXV0ZXggbV9tdXRleExpc3RlbmVyczsKKyAgICBMb2NrIG1fbXV0ZXhM
aXN0ZW5lcnM7CiAKICAgICBDT01QdHI8SU1GTWVkaWFTZXNzaW9uPiBtX21lZGlhU2Vzc2lvbjsK
ICAgICBDT01QdHI8SU1GU291cmNlUmVzb2x2ZXI+IG1fc291cmNlUmVzb2x2ZXI7CkBAIC0xNDks
NyArMTQ5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVUxPTkcgbV9yZWZDb3VudDsKICAgICAgICAg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKiBtX21lZGlhUGxheWVyOwogICAgICAg
ICBib29sIG1fZXZlbnQ7Ci0gICAgICAgIE11dGV4IG1fbXV0ZXg7CisgICAgICAgIExvY2sgbV9t
dXRleDsKICAgICB9OwogCiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xl
Z2FjeVRpbGVDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9MZWdhY3lUaWxlQ2FjaGUuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTEsOSAr
MjExLDkgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX3BlbmRpbmdTY2FsZTsKICAgICBmbG9hdCBt
X3BlbmRpbmdab29tZWRPdXRTY2FsZTsKIAotICAgIG11dGFibGUgTXV0ZXggbV90aWxlTXV0ZXg7
Ci0gICAgbXV0YWJsZSBNdXRleCBtX3NhdmVkRGlzcGxheVJlY3RNdXRleDsKLSAgICBtdXRhYmxl
IE11dGV4IG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRleDsKKyAgICBtdXRhYmxlIExvY2sg
bV90aWxlTXV0ZXg7CisgICAgbXV0YWJsZSBMb2NrIG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4Owor
ICAgIG11dGFibGUgTG9jayBtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdlTXV0ZXg7CiAKICAgICBi
b29sIG1fdGlsZUNvbnRyb2xsZXJTaG91bGRVc2VMb3dTY2FsZVRpbGVzOwogfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbQkocmV2aXNp
b24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNo
ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgTGVnYWN5VGlsZUNh
Y2hlOjpzZXRUaWxlc09wYXF1ZShib28KICAgICBpZiAobV90aWxlc09wYXF1ZSA9PSBvcGFxdWUp
CiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogCiAgICAgbV90aWxlc09wYXF1
ZSA9IG9wYXF1ZTsKICAgICBtX3pvb21lZE91dFRpbGVHcmlkLT51cGRhdGVUaWxlT3BhY2l0eSgp
OwpAQCAtMTYwLDcgKzE2MCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpkb0xheW91dFRpbGVz
KCkKICAgICBpZiAoaXNUaWxlQ3JlYXRpb25TdXNwZW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3RpbGVNdXRleCk7CiAgICAgTGVnYWN5VGlsZUdyaWQqIGFjdGl2ZUdyaWQgPSBhY3Rp
dmVUaWxlR3JpZCgpOwogICAgIC8vIEV2ZW4gdGhvdWdoIHdlIGFyZW4ndCBhY3R1YWxseSBjcmVh
dGluZyB0aWxlcyBpbiB0aGUgaW5hY3RpdmUgZ3JpZCwgd2UKICAgICAvLyBzdGlsbCBuZWVkIHRv
IGRyb3AgaW52YWxpZCB0aWxlcyBpbiByZXNwb25zZSB0byBhIGxheW91dC4KQEAgLTIwMCw3ICsy
MDAsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0Q3VycmVudFNjYWxlKGZsCiAgICAgaWYg
KCFrZWVwc1pvb21lZE91dFRpbGVzKCkgJiYgIWlzVGlsZUludmFsaWRhdGlvblN1c3BlbmRlZCgp
KSB7CiAgICAgICAgIC8vIFRpbGUgaW52YWxpZGF0aW9uIGlzIG5vcm1hbGx5IHN1c3BlbmRlZCBk
dXJpbmcgem9vbWluZyBieSBVSUtpdCBidXQgc29tZSBhcHBsaWNhdGlvbnMKICAgICAgICAgLy8g
dXNpbmcgY3VzdG9tIHNjcm9sbHZpZXdzIG1heSB6b29tIHdpdGhvdXQgdHJpZ2dlcmluZyB0aGUg
Y2FsbGJhY2tzLiBJbnZhbGlkYXRlIHRoZSB0aWxlcyBleHBsaWNpdGx5LgotICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3RpbGVNdXRleCk7CiAgICAgICAgIGFjdGl2ZVRpbGVHcmlkKCktPmRyb3BBbGxUaWxlcygpOwog
ICAgICAgICBhY3RpdmVUaWxlR3JpZCgpLT5jcmVhdGVUaWxlcyhDb3ZlclZpc2libGVPbmx5KTsK
ICAgICB9CkBAIC0yMjUsNyArMjI1LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmNvbW1pdFNj
YWxlQ2hhbmdlKAogICAgIEFTU0VSVChtX3BlbmRpbmdab29tZWRPdXRTY2FsZSB8fCBtX3BlbmRp
bmdTY2FsZSk7CiAgICAgQVNTRVJUKG1fdGlsaW5nTW9kZSAhPSBEaXNhYmxlZCk7CiAgICAgCi0g
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3RpbGVNdXRleCk7CiAKICAgICBpZiAobV9wZW5kaW5nWm9vbWVkT3V0U2NhbGUpIHsKICAg
ICAgICAgbV96b29tZWRPdXRUaWxlR3JpZC0+c2V0U2NhbGUobV9wZW5kaW5nWm9vbWVkT3V0U2Nh
bGUpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpsYXlvdXRUaWxl
c05vdygpCiAgICAgaWYgKG1fdGlsaW5nTW9kZSA9PSBab29taW5nKQogICAgICAgICBtX3RpbGlu
Z01vZGUgPSBNaW5pbWFsOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgTGVnYWN5VGlsZUdyaWQq
IGFjdGl2ZUdyaWQgPSBhY3RpdmVUaWxlR3JpZCgpOwogICAgIGlmIChhY3RpdmVHcmlkLT5jaGVj
a0RvU2luZ2xlVGlsZUxheW91dCgpKSB7CiAgICAgICAgIG1fdGlsaW5nTW9kZSA9IHNhdmVkVGls
aW5nTW9kZTsKQEAgLTMyNywxNCArMzI3LDE0IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpsYXlv
dXRUaWxlc05vdygpCiB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6bGF5b3V0VGlsZXNOb3dGb3JSZWN0
KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgQVNTRVJUKFdlYlRocmVhZElzTG9ja2VkT3JE
aXNhYmxlZCgpKTsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKIAogICAgIGFjdGl2ZVRpbGVHcmlkKCktPmFk
ZFRpbGVzQ292ZXJpbmdSZWN0KHJlY3QpOwogfQogCiB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6cmVt
b3ZlQWxsTm9uVmlzaWJsZVRpbGVzKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxl
TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICByZW1vdmVB
bGxOb25WaXNpYmxlVGlsZXNJbnRlcm5hbCgpOwogfQogCkBAIC0zNTYsNyArMzU2LDcgQEAgdm9p
ZCBMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUFsbE5vblZpc2libAogCiB2b2lkIExlZ2FjeVRpbGVD
YWNoZTo6cmVtb3ZlQWxsVGlsZXMoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVN
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIG1fem9vbWVk
T3V0VGlsZUdyaWQtPmRyb3BBbGxUaWxlcygpOwogICAgIGlmIChtX3pvb21lZEluVGlsZUdyaWQp
CiAgICAgICAgIG1fem9vbWVkSW5UaWxlR3JpZC0+ZHJvcEFsbFRpbGVzKCk7CkBAIC0zNjQsNyAr
MzY0LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUFsbFRpbGVzKCkKIAogdm9pZCBM
ZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUZvcmVncm91bmRUaWxlcygpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRl
eCk7CiAgICAgaWYgKCFrZWVwc1pvb21lZE91dFRpbGVzKCkpCiAgICAgICAgIG1fem9vbWVkT3V0
VGlsZUdyaWQtPmRyb3BBbGxUaWxlcygpOwogICAgIGlmIChtX3pvb21lZEluVGlsZUdyaWQpCkBA
IC0zNzMsMTMgKzM3MywxMyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6cmVtb3ZlRm9yZWdyb3Vu
ZFRpCiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzZXRDb250ZW50UmVwbGFjZW1lbnRJbWFnZShS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY29udGVudFJlcGxhY2VtZW50SW1hZ2UpCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9jb250ZW50UmVwbGFjZW1lbnRJbWFnZU11dGV4KTsKICAgICBtX2Nv
bnRlbnRSZXBsYWNlbWVudEltYWdlID0gY29udGVudFJlcGxhY2VtZW50SW1hZ2U7CiB9CiAKIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiBMZWdhY3lUaWxlQ2FjaGU6OmNvbnRlbnRSZXBsYWNlbWVudElt
YWdlKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9jb250ZW50UmVwbGFjZW1l
bnRJbWFnZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2NvbnRlbnRSZXBsYWNlbWVu
dEltYWdlTXV0ZXgpOwogICAgIHJldHVybiBtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdlOwogfQog
CkBAIC00MjYsNyArNDI2LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnRpbGVDcmVhdGlvblRp
bWVyRgogewogICAgIGlmIChpc1RpbGVDcmVhdGlvblN1c3BlbmRlZCgpKQogICAgICAgICByZXR1
cm47Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgY3JlYXRlVGlsZXNJbkFjdGl2ZUdyaWQoQ292ZXJT
cGVjdWxhdGl2ZSk7CiB9CiAKQEAgLTYyMCw3ICs2MjAsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNo
ZTo6c2NoZWR1bGVMYXllckZsdXNoCiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzZXROZWVkc0Rp
c3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3NhdmVkRGlzcGxheVJlY3RNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9zYXZlZERpc3BsYXlSZWN0TXV0ZXgpOwogICAgIGJvb2wgYWRkZWRGaXJzdFJlY3QgPSBtX3Nh
dmVkRGlzcGxheVJlY3RzLmlzRW1wdHkoKTsKICAgICBtX3NhdmVkRGlzcGxheVJlY3RzLmFwcGVu
ZChkaXJ0eVJlY3QpOwogICAgIGlmICghYWRkZWRGaXJzdFJlY3QpCkBAIC02OTIsNyArNjkyLDcg
QEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnVwZGF0ZVRpbGluZ01vZGUoKQogICAgICAgICBpZiAo
bV90aWxpbmdNb2RlID09IERpc2FibGVkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fdGlsZU11dGV4KTsKICAgICAgICAgY3JlYXRlVGlsZXNJbkFjdGl2ZUdyaWQoQ292ZXJW
aXNpYmxlT25seSk7CiAKICAgICAgICAgaWYgKCFtX3NhdmVkRGlzcGxheVJlY3RzLmlzRW1wdHko
KSkKQEAgLTcxMCw3ICs3MTAsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0VGlsaW5nTW9k
ZShUaWxpCiAgICAgaWYgKChtX3BlbmRpbmdab29tZWRPdXRTY2FsZSB8fCBtX3BlbmRpbmdTY2Fs
ZSkgJiYgbV90aWxpbmdNb2RlICE9IERpc2FibGVkKQogICAgICAgICBjb21taXRTY2FsZUNoYW5n
ZSgpOwogICAgIGVsc2UgaWYgKHdhc1pvb21pbmcpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fdGlsZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgp
OwogICAgICAgICBicmluZ0FjdGl2ZVRpbGVHcmlkVG9Gcm9udCgpOwogICAgIH0KIApAQCAtNzUz
LDcgKzc1Myw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpkb1BlbmRpbmdSZXBhaW50cygKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChpc1RpbGVJbnZhbGlkYXRpb25TdXNwZW5kZWQoKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIGZsdXNoU2F2ZWREaXNwbGF5UmVj
dHMoKTsKIH0KIApAQCAtNzY0LDcgKzc2NCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpmbHVz
aFNhdmVkRGlzcGxheVIKIAogICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3NhdmVkRGlzcGxheVJlY3RNdXRleCk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4KTsKICAgICAgICAgbV9z
YXZlZERpc3BsYXlSZWN0cy5zd2FwKHJlY3RzKTsKICAgICB9CiAgICAgc2l6ZV90IHNpemUgPSBy
ZWN0cy5zaXplKCk7CkBAIC03OTIsNyArNzkyLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnBy
ZXBhcmVUb0RyYXcoKQogICAgIFtbbV93aW5kb3cgY29udGVudFZpZXddIHZpZXdXaWxsRHJhd107
CiAKICAgICBpZiAoIW1fc2F2ZWREaXNwbGF5UmVjdHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdGlsZU11dGV4KTsKICAgICAgICAgZmx1c2hTYXZlZERpc3BsYXlSZWN0cygpOwogICAgIH0K
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29s
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVM
YXllclBvb2wuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0xlZ2FjeVRpbGVMYXllclBvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBA
QCBwcml2YXRlOgogICAgIFZlY3RvcjxJbnRTaXplPiBtX3NpemVzSW5QcnVuZU9yZGVyOwogICAg
IHVuc2lnbmVkIG1fdG90YWxCeXRlczsKICAgICB1bnNpZ25lZCBtX2NhcGFjaXR5OwotICAgIE11
dGV4IG1fbGF5ZXJQb29sTXV0ZXg7CisgICAgTG9jayBtX2xheWVyUG9vbE11dGV4OwogCiAgICAg
ZG91YmxlIG1fbGFzdEFkZFRpbWU7CiAgICAgYm9vbCBtX25lZWRzUHJ1bmU7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbQko
cmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRp
bGVMYXllclBvb2wubW0JKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBMZWdh
Y3lUaWxlTGF5ZXJQb29sOjphZGRMYXllcihjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwogICAgIGxpc3RPZkxheWVyc1dpdGhTaXplKGxh
eWVyU2l6ZSkucHJlcGVuZChsYXllcik7CiAgICAgbV90b3RhbEJ5dGVzICs9IGJ5dGVzQmFja2lu
Z0xheWVyV2l0aFBpeGVsU2l6ZShsYXllclNpemUpOwogCkBAIC05Niw3ICs5Niw3IEBAIFJldGFp
blB0cjxMZWdhY3lUaWxlTGF5ZXI+IExlZ2FjeVRpbGVMYXkKIHsKICAgICBpZiAoIWNhblJldXNl
TGF5ZXJXaXRoU2l6ZShzaXplKSkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXll
clBvb2xNdXRleCk7CiAgICAgTGF5ZXJMaXN0JiByZXVzZUxpc3QgPSBsaXN0T2ZMYXllcnNXaXRo
U2l6ZShzaXplLCBNYXJrQXNVc2VkKTsKICAgICBpZiAocmV1c2VMaXN0LmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIG5pbDsKQEAgLTEwNiw3ICsxMDYsNyBAQCBSZXRhaW5QdHI8TGVnYWN5VGls
ZUxheWVyPiBMZWdhY3lUaWxlTGF5CiAKIHZvaWQgTGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2Fw
YWNpdHkodW5zaWduZWQgY2FwYWNpdHkpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgcmV1c2VMb2NrZXIo
bV9sYXllclBvb2xNdXRleCk7CisgICAgTG9ja0hvbGRlciByZXVzZUxvY2tlcihtX2xheWVyUG9v
bE11dGV4KTsKICAgICBpZiAoY2FwYWNpdHkgPCBtX2NhcGFjaXR5KQogICAgICAgICBzY2hlZHVs
ZVBydW5lKCk7CiAgICAgbV9jYXBhY2l0eSA9IGNhcGFjaXR5OwpAQCAtMTM2LDcgKzEzNiw3IEBA
IHZvaWQgTGVnYWN5VGlsZUxheWVyUG9vbDo6c2NoZWR1bGVQcnVuZSgKIAogdm9pZCBMZWdhY3lU
aWxlTGF5ZXJQb29sOjpwcnVuZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbGF5ZXJQ
b29sTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwogICAg
IEFTU0VSVChtX25lZWRzUHJ1bmUpOwogICAgIG1fbmVlZHNQcnVuZSA9IGZhbHNlOwogICAgIHVu
c2lnbmVkIHNocmlua1RvID0gZGVjYXllZENhcGFjaXR5KCk7CkBAIC0xNjMsNyArMTYzLDcgQEAg
dm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpwcnVuZSgpCiAKIHZvaWQgTGVnYWN5VGlsZUxheWVy
UG9vbDo6ZHJhaW4oKQogewotICAgIE11dGV4TG9ja2VyIHJldXNlTG9ja2VyKG1fbGF5ZXJQb29s
TXV0ZXgpOworICAgIExvY2tIb2xkZXIgcmV1c2VMb2NrZXIobV9sYXllclBvb2xNdXRleCk7CiAg
ICAgbV9yZXVzZUxpc3RzLmNsZWFyKCk7CiAgICAgbV9zaXplc0luUHJ1bmVPcmRlci5jbGVhcigp
OwogICAgIG1fdG90YWxCeXRlcyA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAkocmV2aXNpb24gMTg4NTEw
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgQ3VybERvd25sb2FkTWFuYWdlcjo6
fkN1cmxEb3dubG9hZE1hbmFnZQogCiBib29sIEN1cmxEb3dubG9hZE1hbmFnZXI6OmFkZChDVVJM
KiBjdXJsSGFuZGxlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIG1fcGVuZGluZ0hhbmRsZUxpc3QuYXBw
ZW5kKGN1cmxIYW5kbGUpOwogICAgIHN0YXJ0VGhyZWFkSWZOZWVkZWQoKTsKQEAgLTcwLDcgKzcw
LDcgQEAgYm9vbCBDdXJsRG93bmxvYWRNYW5hZ2VyOjphZGQoQ1VSTCogY3VybAogCiBib29sIEN1
cmxEb3dubG9hZE1hbmFnZXI6OnJlbW92ZShDVVJMKiBjdXJsSGFuZGxlKQogewotICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsK
IAogICAgIG1fcmVtb3ZlZEhhbmRsZUxpc3QuYXBwZW5kKGN1cmxIYW5kbGUpOwogCkBAIC03OSwx
MyArNzksMTMgQEAgYm9vbCBDdXJsRG93bmxvYWRNYW5hZ2VyOjpyZW1vdmUoQ1VSTCogYwogCiBp
bnQgQ3VybERvd25sb2FkTWFuYWdlcjo6Z2V0QWN0aXZlRG93bmxvYWRDb3VudCgpIGNvbnN0CiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fbXV0ZXgpOwogICAgIHJldHVybiBtX2FjdGl2ZUhhbmRsZUxpc3Quc2l6ZSgpOwogfQogCiBp
bnQgQ3VybERvd25sb2FkTWFuYWdlcjo6Z2V0UGVuZGluZ0Rvd25sb2FkQ291bnQoKSBjb25zdAog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX211dGV4KTsKICAgICByZXR1cm4gbV9wZW5kaW5nSGFuZGxlTGlzdC5zaXplKCk7CiB9CiAK
QEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIEN1cmxEb3dubG9hZE1hbmFnZXI6OnN0b3BUaHJlYWQo
KQogCiB2b2lkIEN1cmxEb3dubG9hZE1hbmFnZXI6OnN0b3BUaHJlYWRJZklkbGUoKQogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211
dGV4KTsKIAogICAgIGlmICghZ2V0QWN0aXZlRG93bmxvYWRDb3VudCgpICYmICFnZXRQZW5kaW5n
RG93bmxvYWRDb3VudCgpKQogICAgICAgICBzZXRSdW5UaHJlYWQoZmFsc2UpOwpAQCAtMTE5LDcg
KzExOSw3IEBAIHZvaWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RvcFRocmVhZElmSWQKIAogdm9p
ZCBDdXJsRG93bmxvYWRNYW5hZ2VyOjp1cGRhdGVIYW5kbGVMaXN0KCkKIHsKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAK
ICAgICAvLyBSZW1vdmUgY3VybCBlYXN5IGhhbmRsZXMgZnJvbSBtdWx0aSBsaXN0IAogICAgIGlu
dCBzaXplID0gbV9yZW1vdmVkSGFuZGxlTGlzdC5zaXplKCk7CkBAIC0yNDUsNyArMjQ1LDcgQEAg
Q3VybERvd25sb2FkOjpDdXJsRG93bmxvYWQoKQogCiBDdXJsRG93bmxvYWQ6On5DdXJsRG93bmxv
YWQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX211dGV4KTsKIAogICAgIGlmIChtX3VybCkKICAgICAgICAgZmFzdEZyZWUobV91
cmwpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgQ3VybERvd25sb2FkOjppbml0KEN1cmxEb3du
bG9hZExpc3QKICAgICBpZiAoIWxpc3RlbmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7
CiAKICAgICBtX2N1cmxIYW5kbGUgPSBjdXJsX2Vhc3lfaW5pdCgpOwogCkBAIC0yOTUsNyArMjk1
LDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmluaXQoQ3VybERvd25sb2FkTGlzdAogICAgIGlmICgh
bGlzdGVuZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIFVSTCB1cmwoUGFy
c2VkVVJMU3RyaW5nLCByZXF1ZXN0LnVybCgpKTsKIApAQCAtMzE3LDI1ICszMTcsMjUgQEAgYm9v
bCBDdXJsRG93bmxvYWQ6OmNhbmNlbCgpCiAKIFN0cmluZyBDdXJsRG93bmxvYWQ6OmdldFRlbXBQ
YXRoKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fdGVtcFBhdGg7CiB9CiAKIFN0
cmluZyBDdXJsRG93bmxvYWQ6OmdldFVybCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIHJldHVy
biBTdHJpbmcobV91cmwpOwogfQogCiBSZXNvdXJjZVJlc3BvbnNlIEN1cmxEb3dubG9hZDo6Z2V0
UmVzcG9uc2UoKSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICByZXR1cm4gbV9yZXNwb25zZTsKIH0K
IAogdm9pZCBDdXJsRG93bmxvYWQ6OmNsb3NlRmlsZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYg
KG1fdGVtcEhhbmRsZSAhPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSB7CiAgICAgICAgIFdl
YkNvcmU6OmNsb3NlRmlsZShtX3RlbXBIYW5kbGUpOwpAQCAtMzkwLDcgKzM5MCw3IEBAIHZvaWQg
Q3VybERvd25sb2FkOjphZGRIZWFkZXJzKGNvbnN0IFJlc28KIAogdm9pZCBDdXJsRG93bmxvYWQ6
OmRpZFJlY2VpdmVIZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAg
ICAgaWYgKGhlYWRlciA9PSAiXHJcbiIgfHwgaGVhZGVyID09ICJcbiIpIHsKIApAQCAtNDMwLDcg
KzQzMCw3IEBAIHZvaWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZlSGVhZGVyKGNvbnMKIAogdm9p
ZCBDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVEYXRhKHZvaWQqIGRhdGEsIGludCBzaXplKQogewot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X211dGV4KTsKIAogICAgIFJlZlB0cjxDdXJsRG93bmxvYWQ+IHByb3RlY3RlZERvd25sb2FkKHRo
aXMpOwogCkBAIC00NjQsNyArNDY0LDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmRpZEZpbmlzaCgp
CiAKIHZvaWQgQ3VybERvd25sb2FkOjpkaWRGYWlsKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBjbG9z
ZUZpbGUoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxEb3dubG9hZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsRG93bmxvYWQuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oCSh3b3JraW5nIGNvcHkpCkBA
IC03Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENVUkwqPiBtX3BlbmRpbmdIYW5k
bGVMaXN0OwogICAgIFZlY3RvcjxDVVJMKj4gbV9hY3RpdmVIYW5kbGVMaXN0OwogICAgIFZlY3Rv
cjxDVVJMKj4gbV9yZW1vdmVkSGFuZGxlTGlzdDsKLSAgICBtdXRhYmxlIE11dGV4IG1fbXV0ZXg7
CisgICAgbXV0YWJsZSBMb2NrIG1fbXV0ZXg7CiAgICAgYm9vbCBtX3J1blRocmVhZDsKIH07CiAK
QEAgLTE0MCw3ICsxNDAsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlBsYXRmb3JtRmlsZUhh
bmRsZSBtX3RlbXBIYW5kbGU7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3Bv
bnNlOwogICAgIGJvb2wgbV9kZWxldGVzRmlsZVVwb25GYWlsdXJlOwotICAgIG11dGFibGUgTXV0
ZXggbV9tdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKICAgICBDdXJsRG93bmxvYWRM
aXN0ZW5lciAqbV9saXN0ZW5lcjsKIAogICAgIHN0YXRpYyBDdXJsRG93bmxvYWRNYW5hZ2VyIG1f
ZG93bmxvYWRNYW5hZ2VyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAJKHJldmlz
aW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNv
dXJjZUhhbmRsZU1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMsMTAgKzEzMywxMSBA
QCBzdGF0aWMgY2hhciogY29va2llSmFyUGF0aCgpCiAjZW5kaWYKIH0KIAotc3RhdGljIE11dGV4
KiBzaGFyZWRSZXNvdXJjZU11dGV4KGN1cmxfbG9ja19kYXRhIGRhdGEpIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIGNvb2tpZU11dGV4LCAoKSk7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBkbnNNdXRleCwgKCkpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc2hhcmVNdXRleCwgKCkpOworc3Rh
dGljIExvY2sqIHNoYXJlZFJlc291cmNlTXV0ZXgoY3VybF9sb2NrX2RhdGEgZGF0YSkKK3sKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgY29va2llTXV0ZXgsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgZG5zTXV0ZXgsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgc2hhcmVNdXRleCwgKCkp
OwogCiAgICAgc3dpdGNoIChkYXRhKSB7CiAgICAgICAgIGNhc2UgQ1VSTF9MT0NLX0RBVEFfQ09P
S0lFOgpAQCAtMTkwLDEzICsxOTEsMTMgQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlV2ViVGltaW5n
SW5mb3JtYXRpbwogLy8gY2FjaGUuCiBzdGF0aWMgdm9pZCBjdXJsX2xvY2tfY2FsbGJhY2soQ1VS
TCogLyogaGFuZGxlICovLCBjdXJsX2xvY2tfZGF0YSBkYXRhLCBjdXJsX2xvY2tfYWNjZXNzIC8q
IGFjY2VzcyAqLywgdm9pZCogLyogdXNlclB0ciAqLykKIHsKLSAgICBpZiAoTXV0ZXgqIG11dGV4
ID0gc2hhcmVkUmVzb3VyY2VNdXRleChkYXRhKSkKKyAgICBpZiAoTG9jayogbXV0ZXggPSBzaGFy
ZWRSZXNvdXJjZU11dGV4KGRhdGEpKQogICAgICAgICBtdXRleC0+bG9jaygpOwogfQogCiBzdGF0
aWMgdm9pZCBjdXJsX3VubG9ja19jYWxsYmFjayhDVVJMKiAvKiBoYW5kbGUgKi8sIGN1cmxfbG9j
a19kYXRhIGRhdGEsIHZvaWQqIC8qIHVzZXJQdHIgKi8pCiB7Ci0gICAgaWYgKE11dGV4KiBtdXRl
eCA9IHNoYXJlZFJlc291cmNlTXV0ZXgoZGF0YSkpCisgICAgaWYgKExvY2sqIG11dGV4ID0gc2hh
cmVkUmVzb3VyY2VNdXRleChkYXRhKSkKICAgICAgICAgbXV0ZXgtPnVubG9jaygpOwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29r
Lm1tCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2lvcy9RdWlja0xvb2subW0JKHdvcmtpbmcgY29weSkKQEAgLTg1LDkgKzg1LDkgQEAgTlNEaWN0
aW9uYXJ5ICpXZWJDb3JlOjpRTERpcmVjdG9yeUF0dHJpYgogICAgIHJldHVybiBkaWN0aW9uYXJ5
OwogfQogCi1zdGF0aWMgTXV0ZXgmIHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgp
CitzdGF0aWMgTG9jayYgcWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+IG11dGV4OworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxMb2NrPiBtdXRleDsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTEwNyw3ICsx
MDcsNyBAQCB2b2lkIFdlYkNvcmU6OmFkZFFMUHJldmlld0NvbnZlcnRlcldpdGhGCiB7CiAgICAg
QVNTRVJUKHVybCk7CiAgICAgQVNTRVJUKGNvbnZlcnRlcik7Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
ayhxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBs
b2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKICAgICBbUUxQcmV2aWV3
Q29udmVydGVyRGljdGlvbmFyeSgpIHNldE9iamVjdDpjb252ZXJ0ZXIgZm9yS2V5OnVybF07CiAg
ICAgW1FMQ29udGVudERpY3Rpb25hcnkoKSBzZXRPYmplY3Q6KGZpbGVOYW1lID8gZmlsZU5hbWUg
OiBAIiIpIGZvcktleTp1cmxdOwogfQpAQCAtMTIxLDcgKzEyMSw3IEBAIE5TU3RyaW5nICpXZWJD
b3JlOjpxbFByZXZpZXdDb252ZXJ0ZXJVVEkKIHsKICAgICBpZCBjb252ZXJ0ZXIgPSBuaWw7CiAg
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25h
cnlNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRp
Y3Rpb25hcnlNdXRleCgpKTsKICAgICAgICAgY29udmVydGVyID0gW1FMUHJldmlld0NvbnZlcnRl
ckRpY3Rpb25hcnkoKSBvYmplY3RGb3JLZXk6dXJsXTsKICAgICB9CiAgICAgaWYgKCFjb252ZXJ0
ZXIpCkBAIC0xMzEsNyArMTMxLDcgQEAgTlNTdHJpbmcgKldlYkNvcmU6OnFsUHJldmlld0NvbnZl
cnRlclVUSQogCiB2b2lkIFdlYkNvcmU6OnJlbW92ZVFMUHJldmlld0NvbnZlcnRlckZvclVSTChO
U1VSTCAqdXJsKQogewotICAgIE11dGV4TG9ja2VyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGlj
dGlvbmFyeU11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhxbFByZXZpZXdDb252ZXJ0ZXJE
aWN0aW9uYXJ5TXV0ZXgoKSk7CiAgICAgW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnkoKSBy
ZW1vdmVPYmplY3RGb3JLZXk6dXJsXTsKIAogICAgIC8vIERlbGV0ZSB0aGUgZmlsZSB3aGVuIHdl
IHJlbW92ZSB0aGUgcHJldmlldyBjb252ZXJ0ZXIKQEAgLTE2Niw3ICsxNjYsNyBAQCBjb25zdCBV
UkwgV2ViQ29yZTo6c2FmZVFMVVJMRm9yRG9jdW1lbnRVCiAgICAgaWQgY29udmVydGVyID0gbmls
OwogICAgIE5TVVJMICpuc0RvY3VtZW50VVJMID0gZG9jdW1lbnRVUkw7CiAgICAgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRl
eCgpKTsKICAgICAgICAgY29udmVydGVyID0gW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnko
KSBvYmplY3RGb3JLZXk6bnNEb2N1bWVudFVSTF07CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODUx
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9z
ZSgpCiAgICAgICAgIC8vIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9vcGVuaW5nVGhyZWFk
KTsKICAgICAgICAgc3FsaXRlMyogZGIgPSBtX2RiOwogICAgICAgICB7Ci0gICAgICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZUNsb3NpbmdNdXRleCk7CisgICAgICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlQ2xvc2luZ011dGV4KTsKICAgICAgICAgICAgIG1f
ZGIgPSAwOwogICAgICAgICB9CiAgICAgICAgIHNxbGl0ZTNfY2xvc2UoZGIpOwpAQCAtMTYwLDcg
KzE2MCw3IEBAIGludDY0X3QgU1FMaXRlRGF0YWJhc2U6Om1heGltdW1TaXplKCkKICAgICBpbnQ2
NF90IG1heFBhZ2VDb3VudCA9IDA7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRob3Jp
emVyTG9jayk7CiAgICAgICAgIGVuYWJsZUF1dGhvcml6ZXIoZmFsc2UpOwogICAgICAgICBTUUxp
dGVTdGF0ZW1lbnQgc3RhdGVtZW50KCp0aGlzLCBBU0NJSUxpdGVyYWwoIlBSQUdNQSBtYXhfcGFn
ZV9jb3VudCIpKTsKICAgICAgICAgbWF4UGFnZUNvdW50ID0gc3RhdGVtZW50LmdldENvbHVtbklu
dDY0KDApOwpAQCAtMTgwLDcgKzE4MCw3IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OnNldE1heGlt
dW1TaXplKGludDYKICAgICBBU1NFUlQoY3VycmVudFBhZ2VTaXplIHx8ICFtX2RiKTsKICAgICBp
bnQ2NF90IG5ld01heFBhZ2VDb3VudCA9IGN1cnJlbnRQYWdlU2l6ZSA/IHNpemUgLyBjdXJyZW50
UGFnZVNpemUgOiAwOwogICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJM
b2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICBlbmFi
bGVBdXRob3JpemVyKGZhbHNlKTsKIAogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRo
aXMsICJQUkFHTUEgbWF4X3BhZ2VfY291bnQgPSAiICsgU3RyaW5nOjpudW1iZXIobmV3TWF4UGFn
ZUNvdW50KSk7CkBAIC0xOTcsNyArMTk3LDcgQEAgaW50IFNRTGl0ZURhdGFiYXNlOjpwYWdlU2l6
ZSgpCiAgICAgLy8gU2luY2UgdGhlIHBhZ2Ugc2l6ZSBvZiBhIGRhdGFiYXNlIGlzIGxvY2tlZCBp
biBhdCBjcmVhdGlvbiBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBkeW5hbWljLCAKICAgICAvLyB3
ZSBjYW4gY2FjaGUgdGhlIHZhbHVlIGZvciBmdXR1cmUgdXNlCiAgICAgaWYgKG1fcGFnZVNpemUg
PT0gLTEpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICAgICAgZW5h
YmxlQXV0aG9yaXplcihmYWxzZSk7CiAgICAgICAgIAogICAgICAgICBTUUxpdGVTdGF0ZW1lbnQg
c3RhdGVtZW50KCp0aGlzLCBBU0NJSUxpdGVyYWwoIlBSQUdNQSBwYWdlX3NpemUiKSk7CkBAIC0y
MTQsNyArMjE0LDcgQEAgaW50NjRfdCBTUUxpdGVEYXRhYmFzZTo6ZnJlZVNwYWNlU2l6ZSgpCiAg
ICAgaW50NjRfdCBmcmVlbGlzdENvdW50ID0gMDsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X2F1dGhvcml6ZXJMb2NrKTsKICAgICAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CiAgICAg
ICAgIC8vIE5vdGU6IGZyZWVsaXN0X2NvdW50IHdhcyBhZGRlZCBpbiBTUUxpdGUgMy40LjEuCiAg
ICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsIEFTQ0lJTGl0ZXJhbCgiUFJB
R01BIGZyZWVsaXN0X2NvdW50IikpOwpAQCAtMjMwLDcgKzIzMCw3IEBAIGludDY0X3QgU1FMaXRl
RGF0YWJhc2U6OnRvdGFsU2l6ZSgpCiAgICAgaW50NjRfdCBwYWdlQ291bnQgPSAwOwogCiAgICAg
ewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwogICAgICAgICBlbmFibGVBdXRo
b3JpemVyKGZhbHNlKTsKICAgICAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudCgqdGhpcywg
QVNDSUlMaXRlcmFsKCJQUkFHTUEgcGFnZV9jb3VudCIpKTsKICAgICAgICAgcGFnZUNvdW50ID0g
c3RhdGVtZW50LmdldENvbHVtbkludDY0KDApOwpAQCAtMzA5LDcgKzMwOSw3IEBAIGludCBTUUxp
dGVEYXRhYmFzZTo6cnVuVmFjdXVtQ29tbWFuZCgpCiAKIGludCBTUUxpdGVEYXRhYmFzZTo6cnVu
SW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9h
dXRob3JpemVyTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7
CiAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CiAKICAgICBpZiAoIWV4ZWN1dGVDb21tYW5k
KEFTQ0lJTGl0ZXJhbCgiUFJBR01BIGluY3JlbWVudGFsX3ZhY3V1bSIpKSkKQEAgLTQ1MCw3ICs0
NTAsNyBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpzZXRBdXRob3JpemVyKFBhc3NSCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9j
ayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAKICAgICBtX2F1
dGhvcml6ZXIgPSBhdXRoOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3FsL1NRTGl0ZURhdGFiYXNlLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsy
OSw3IEBACiAKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHNxbGl0ZTMuaD4KKyNp
bmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBA
IC0xMDYsNyArMTA3LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2V0QXV0aG9yaXplcihQ
YXNzUmVmUHRyPERhdGFiYXNlQXV0aG9yaXplcj4pOwogCi0gICAgTXV0ZXgmIGRhdGFiYXNlTXV0
ZXgoKSB7IHJldHVybiBtX2xvY2tpbmdNdXRleDsgfQorICAgIExvY2smIGRhdGFiYXNlTXV0ZXgo
KSB7IHJldHVybiBtX2xvY2tpbmdNdXRleDsgfQogICAgIGJvb2wgaXNBdXRvQ29tbWl0T24oKSBj
b25zdDsKIAogICAgIC8vIFRoZSBTUUxpdGUgQVVUT19WQUNVVU0gcHJhZ21hIGNhbiBiZSBlaXRo
ZXIgTk9ORSwgRlVMTCwgb3IgSU5DUkVNRU5UQUwuCkBAIC0xNDcsMTMgKzE0OCwxMyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3M7CiAgICAgYm9vbCBtX3NoYXJh
YmxlOwogICAgIAotICAgIE11dGV4IG1fYXV0aG9yaXplckxvY2s7CisgICAgTG9jayBtX2F1dGhv
cml6ZXJMb2NrOwogICAgIFJlZlB0cjxEYXRhYmFzZUF1dGhvcml6ZXI+IG1fYXV0aG9yaXplcjsK
IAotICAgIE11dGV4IG1fbG9ja2luZ011dGV4OworICAgIExvY2sgbV9sb2NraW5nTXV0ZXg7CiAg
ICAgVGhyZWFkSWRlbnRpZmllciBtX29wZW5pbmdUaHJlYWQ7CiAKLSAgICBNdXRleCBtX2RhdGFi
YXNlQ2xvc2luZ011dGV4OworICAgIExvY2sgbV9kYXRhYmFzZUNsb3NpbmdNdXRleDsKIAogICAg
IGludCBtX29wZW5FcnJvcjsKICAgICBDU3RyaW5nIG1fb3BlbkVycm9yTWVzc2FnZTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCShy
ZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlU3Rh
dGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBpbnQgU1FMaXRlU3Rh
dGVtZW50OjpwcmVwYXJlKCkKIHsKICAgICBBU1NFUlQoIW1faXNQcmVwYXJlZCk7CiAKLSAgICBN
dXRleExvY2tlciBkYXRhYmFzZUxvY2sobV9kYXRhYmFzZS5kYXRhYmFzZU11dGV4KCkpOworICAg
IExvY2tIb2xkZXIgZGF0YWJhc2VMb2NrKG1fZGF0YWJhc2UuZGF0YWJhc2VNdXRleCgpKTsKIAog
ICAgIENTdHJpbmcgcXVlcnkgPSBtX3F1ZXJ5LnN0cmlwV2hpdGVTcGFjZSgpLnV0ZjgoKTsKICAg
ICAKQEAgLTg2LDcgKzg2LDcgQEAgaW50IFNRTGl0ZVN0YXRlbWVudDo6cHJlcGFyZSgpCiAKIGlu
dCBTUUxpdGVTdGF0ZW1lbnQ6OnN0ZXAoKQogewotICAgIE11dGV4TG9ja2VyIGRhdGFiYXNlTG9j
ayhtX2RhdGFiYXNlLmRhdGFiYXNlTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBkYXRhYmFzZUxv
Y2sobV9kYXRhYmFzZS5kYXRhYmFzZU11dGV4KCkpOwogCiAgICAgaWYgKCFtX3N0YXRlbWVudCkK
ICAgICAgICAgcmV0dXJuIFNRTElURV9PSzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyVGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3IEBAIFdv
cmtlclRocmVhZDo6fldvcmtlclRocmVhZCgpCiBib29sIFdvcmtlclRocmVhZDo6c3RhcnQoKQog
ewogICAgIC8vIE11dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IG1f
dGhyZWFkSUQgaXMgaW5pdGlhbGl6ZWQgd2hlbiB0aGUgdGhyZWFkIHN0YXJ0cy4KLSAgICBNdXRl
eExvY2tlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
KG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CiAKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAg
cmV0dXJuIHRydWU7CkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6Ondvcmtl
clRocmVhZCgpCiAjZW5kaWYKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3Ro
cmVhZENyZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVh
dGlvbk11dGV4KTsKICAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IGNyZWF0ZVdvcmtlckds
b2JhbFNjb3BlKG1fc3RhcnR1cERhdGEtPm1fc2NyaXB0VVJMLCBtX3N0YXJ0dXBEYXRhLT5tX3Vz
ZXJBZ2VudCwgbV9zdGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fc3RhcnR1
cERhdGEtPm1fY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgbV9zdGFydHVwRGF0YS0+bV90b3BP
cmlnaW4ucmVsZWFzZSgpKTsKIAogICAgICAgICBpZiAobV9ydW5Mb29wLnRlcm1pbmF0ZWQoKSkg
ewpAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AoKQog
dm9pZCBXb3JrZXJUaHJlYWQ6OnN0b3AoKQogewogICAgIC8vIE11dGV4IHByb3RlY3Rpb24gaXMg
bmVjZXNzYXJ5IGJlY2F1c2Ugc3RvcCgpIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHRoZSBjb250ZXh0
IGlzIGZ1bGx5IGNyZWF0ZWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwogCiAg
ICAgLy8gRW5zdXJlIHRoYXQgdGFza3MgYXJlIGJlaW5nIGhhbmRsZWQgYnkgdGhyZWFkIGV2ZW50
IGxvb3AuIElmIHNjcmlwdCBleGVjdXRpb24gd2VyZW4ndCBmb3JiaWRkZW4sIGEgd2hpbGUoMSkg
bG9vcCBpbiBKUyBjb3VsZCBrZWVwIHRoZSB0aHJlYWQgYWxpdmUgZm9yZXZlci4KICAgICBpZiAo
bV93b3JrZXJHbG9iYWxTY29wZSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgV29ya2VyUmVwb3J0aW5nUHJveHkmIG1fd29ya2VyUmVwb3J0aW5nUHJv
eHk7CiAKICAgICAgICAgUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBtX3dvcmtlckdsb2JhbFNj
b3BlOwotICAgICAgICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CisgICAgICAgIExvY2sg
bV90aHJlYWRDcmVhdGlvbk11dGV4OwogCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJU
aHJlYWRTdGFydHVwRGF0YT4gbV9zdGFydHVwRGF0YTsKIApJbmRleDogU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDE4
ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nl
c3M6OnBvc3REYXRhYmFzZVRhc2socwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CiAKICAgICBtX2RhdGFiYXNlVGFz
a3MuYXBwZW5kKFdURjo6bW92ZSh0YXNrKSk7CiAKQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIERh
dGFiYXNlUHJvY2Vzczo6cGVyZm9ybU5leHREYXRhYmFzCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
QXN5bmNUYXNrPiB0YXNrOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0
YWJhc2VUYXNrTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlVGFz
a011dGV4KTsKICAgICAgICAgQVNTRVJUKCFtX2RhdGFiYXNlVGFza3MuaXNFbXB0eSgpKTsKICAg
ICAgICAgdGFzayA9IG1fZGF0YWJhc2VUYXNrcy50YWtlRmlyc3QoKTsKICAgICB9CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCShy
ZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2YXRlOgog
ICAgIEhhc2hNYXA8VW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyLCBSZWZQdHI8VW5pcXVlSURC
RGF0YWJhc2U+PiBtX2lkYkRhdGFiYXNlczsKIAogICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxB
c3luY1Rhc2s+PiBtX2RhdGFiYXNlVGFza3M7Ci0gICAgTXV0ZXggbV9kYXRhYmFzZVRhc2tNdXRl
eDsKKyAgICBMb2NrIG1fZGF0YWJhc2VUYXNrTXV0ZXg7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5p
cXVlSURCRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxODg1MTAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OnNodXRkb3duKFVuaXF1ZUkKICAgICByZWYoKTsKIAogICAgIHsKLSAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKICAgICAgICAgbV9kYXRhYmFzZVRh
c2tzLmNsZWFyKCk7CiAgICAgfQogCkBAIC0xMTI1LDcgKzExMjUsNyBAQCB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpwb3N0TWFpblRocmVhZFRhCiAgICAgaWYgKCFtX2FjY2VwdGluZ05ld1JlcXVl
c3RzICYmIHRhc2tUeXBlID09IERhdGFiYXNlVGFza1R5cGU6Ok5vcm1hbCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbWFpblRocmVhZFRhc2tNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9tYWluVGhyZWFkVGFza011dGV4KTsKIAogICAgIG1fbWFp
blRocmVhZFRhc2tzLmFwcGVuZChXVEY6Om1vdmUodGFzaykpOwogCkBAIC0xMTQzLDcgKzExNDMs
NyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtTmV4dE1haW5UCiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8QXN5bmNUYXNrPiB0YXNrOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fbWFpblRocmVhZFRhc2tNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fbWFpblRocmVhZFRhc2tNdXRleCk7CiAKICAgICAgICAgLy8gVGhpcyBkYXRhYmFzZSBtaWdo
dCBiZSBzaHV0dGluZyBkb3duLCBpbiB3aGljaCBjYXNlIHRoZSB0YXNrIHF1ZXVlIG1pZ2h0IGJl
IGVtcHR5LgogICAgICAgICBpZiAobV9tYWluVGhyZWFkVGFza3MuaXNFbXB0eSgpKQpAQCAtMTE2
NSw3ICsxMTY1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cG9zdERhdGFiYXNlVGFzawog
ICAgIGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cyAmJiB0YXNrVHlwZSA9PSBEYXRhYmFzZVRh
c2tUeXBlOjpOb3JtYWwpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNl
VGFza011dGV4KTsKIAogICAgIG1fZGF0YWJhc2VUYXNrcy5hcHBlbmQoV1RGOjptb3ZlKHRhc2sp
KTsKIApAQCAtMTE4Niw3ICsxMTg2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9y
bU5leHREYXRhYgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFzazsKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CiAKICAgICAgICAgLy8g
VGhpcyBkYXRhYmFzZSBtaWdodCBiZSBzaHV0dGluZyBkb3duIG9uIHRoZSBtYWluIHRocmVhZCwg
aW4gd2hpY2ggY2FzZSB0aGUgdGFzayBxdWV1ZSBtaWdodCBiZSBlbXB0eS4KICAgICAgICAgaWYg
KG1fZGF0YWJhc2VUYXNrcy5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5o
CShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMCwxMCArMjEw
LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3Jl
PiBtX2JhY2tpbmdTdG9yZTsKIAogICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxBc3luY1Rhc2s+
PiBtX2RhdGFiYXNlVGFza3M7Ci0gICAgTXV0ZXggbV9kYXRhYmFzZVRhc2tNdXRleDsKKyAgICBM
b2NrIG1fZGF0YWJhc2VUYXNrTXV0ZXg7CiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8QXN5
bmNUYXNrPj4gbV9tYWluVGhyZWFkVGFza3M7Ci0gICAgTXV0ZXggbV9tYWluVGhyZWFkVGFza011
dGV4OworICAgIExvY2sgbV9tYWluVGhyZWFkVGFza011dGV4OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24u
Y3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1OSw3ICs0NTksNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3RpCiAKICAgICAvLyBQdXNoIHRoZSBwZW5kaW5n
IHN5bmMgcmVwbHkgaW5mb3JtYXRpb24gb24gb3VyIHN0YWNrLgogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAgICAgICAgIGlmICghbV9zaG91bGRX
YWl0Rm9yU3luY1JlcGxpZXMpIHsKICAgICAgICAgICAgIGRpZEZhaWxUb1NlbmRTeW5jTWVzc2Fn
ZSgpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC00ODYsNyArNDg2LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aQogCiAgICAgLy8gRmluYWxseSwg
cG9wIHRoZSBwZW5kaW5nIHN5bmMgcmVwbHkgaW5mb3JtYXRpb24uCiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKICAgICAgICAgQVNTRVJUKG1fcGVu
ZGluZ1N5bmNSZXBsaWVzLmxhc3QoKS5zeW5jUmVxdWVzdElEID09IHN5bmNSZXF1ZXN0SUQpOwog
ICAgICAgICBtX3BlbmRpbmdTeW5jUmVwbGllcy5yZW1vdmVMYXN0KCk7CiAgICAgfQpAQCAtNTA4
LDcgKzUwOCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAog
ICAgIC8vIFB1c2ggdGhlIHBlbmRpbmcgc3luYyByZXBseSBpbmZvcm1hdGlvbiBvbiBvdXIgc3Rh
Y2suCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsK
ICAgICAgICAgaWYgKCFtX3Nob3VsZFdhaXRGb3JTeW5jUmVwbGllcykKICAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCkBAIC01MjYsNyArNTI2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3Nh
Z2VEZWNvZGVyPiBDb25uZWN0aQogCiAgICAgLy8gRmluYWxseSwgcG9wIHRoZSBwZW5kaW5nIHN5
bmMgcmVwbHkgaW5mb3JtYXRpb24uCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5j
UmVwbHlTdGF0ZU11dGV4KTsKICAgICAgICAgQVNTRVJUKG1fc2Vjb25kYXJ5VGhyZWFkUGVuZGlu
Z1N5bmNSZXBseU1hcC5jb250YWlucyhzeW5jUmVxdWVzdElEKSk7CiAgICAgICAgIG1fc2Vjb25k
YXJ5VGhyZWFkUGVuZGluZ1N5bmNSZXBseU1hcC5yZW1vdmUoc3luY1JlcXVlc3RJRCk7CiAgICAg
fQpAQCAtNTQ2LDcgKzU0Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29u
bmVjdGkKICAgICAgICAgU3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCkuZGlzcGF0Y2hNZXNz
YWdlcyhudWxscHRyKTsKICAgICAgICAgCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKIAogICAgICAgICAgICAgLy8gU2Vjb25k
LCBjaGVjayBpZiB0aGVyZSBpcyBhIHN5bmMgcmVwbHkgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2su
CiAgICAgICAgICAgICBBU1NFUlQoIW1fcGVuZGluZ1N5bmNSZXBsaWVzLmlzRW1wdHkoKSk7CkBA
IC01OTIsNyArNTkyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0
aQogCiB2b2lkIENvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ1N5bmNSZXBseShzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZURlY29kZXI+IGRlY29kZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jUmVw
bHlTdGF0ZU11dGV4KTsKIAogICAgIC8vIEdvIHRocm91Z2ggdGhlIHN0YWNrIG9mIHN5bmMgcmVx
dWVzdHMgdGhhdCBoYXZlIHBlbmRpbmcgcmVwbGllcyBhbmQgc2VlIHdoaWNoIG9uZQogICAgIC8v
IHRoaXMgcmVwbHkgaXMgZm9yLgpAQCAtNzUwLDcgKzc1MCw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6
Y29ubmVjdGlvbkRpZENsb3NlKCkKICAgICBwbGF0Zm9ybUludmFsaWRhdGUoKTsKIAogICAgIHsK
LSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAKICAgICAgICAg
QVNTRVJUKG1fc2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzKTsKICAgICAgICAgbV9zaG91bGRXYWl0
Rm9yU3luY1JlcGxpZXMgPSBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9Db25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L0Nvbm5lY3Rpb24uaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjk4LDcgKzI5OCw3IEBAIHBy
aXZhdGU6CiAgICAgY2xhc3MgU3luY01lc3NhZ2VTdGF0ZTsKICAgICBmcmllbmQgY2xhc3MgU3lu
Y01lc3NhZ2VTdGF0ZTsKIAotICAgIE11dGV4IG1fc3luY1JlcGx5U3RhdGVNdXRleDsKKyAgICBM
b2NrIG1fc3luY1JlcGx5U3RhdGVNdXRleDsKICAgICBib29sIG1fc2hvdWxkV2FpdEZvclN5bmNS
ZXBsaWVzOwogICAgIFZlY3RvcjxQZW5kaW5nU3luY1JlcGx5PiBtX3BlbmRpbmdTeW5jUmVwbGll
czsKIApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCShy
ZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OTAs
NyArNjkwLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmFwcGVuZFVwZAogICAg
ICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX3JlbmRlclF1ZXVlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
cmVuZGVyUXVldWVNdXRleCk7CiAgICAgbV9yZW5kZXJRdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKGZ1
bmN0aW9uKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZS5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAkod29ya2luZyBjb3B5KQpAQCAt
MTQ1LDcgKzE0NSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBSZW5kZXIgcXVldWUgY2FuIGJlIGFj
Y2Vzc2VkIG9ueSBmcm9tIG1haW4gdGhyZWFkIG9yIHVwZGF0ZVBhaW50Tm9kZSBjYWxsIHN0YWNr
IQogICAgIFZlY3RvcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+IG1fcmVuZGVyUXVldWU7Ci0gICAg
TXV0ZXggbV9yZW5kZXJRdWV1ZU11dGV4OworICAgIExvY2sgbV9yZW5kZXJRdWV1ZU11dGV4Owog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXI+IG1fdGV4dHVyZU1h
cHBlcjsKIApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
dGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJl
YWRlZENvbXBvc2l0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTUsNyArMjk1LDcgQEAgdm9p
ZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUNvbXBvc2l0aQogICAgIGlmIChtX3RocmVhZElk
ZW50aWZpZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2lu
aXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
aW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgbV90aHJlYWRJZGVudGlmaWVy
ID0gY3JlYXRlVGhyZWFkKGNvbXBvc2l0aW5nVGhyZWFkRW50cnksIHRoaXMsICJXZWJDb3JlOiBU
aHJlYWRlZENvbXBvc2l0b3IiKTsKIAogICAgIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb24u
d2FpdChtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwpAQCAtMzA0LDcgKzMwNCw3
IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVDb21wb3NpdGkKIHZvaWQgVGhyZWFk
ZWRDb21wb3NpdG9yOjpydW5Db21wb3NpdGluZ1RocmVhZCgpCiB7CiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4
KTsKIAogICAgICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcCA9IHN0ZDo6bWFrZV91bmlxdWU8Q29t
cG9zaXRpbmdSdW5Mb29wPihbJl0gewogICAgICAgICAgICAgcmVuZGVyTGF5ZXJUcmVlKCk7CkBA
IC0zMjEsNyArMzIxLDcgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnJ1bkNvbXBvc2l0aW5n
VAogICAgIG1fc2NlbmUtPnB1cmdlR0xSZXNvdXJjZXMoKTsKIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwog
ICAgICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcCA9IG51bGxwdHI7CiAgICAgICAgIG1fY29udGV4
dCA9IG51bGxwdHI7CiAgICAgICAgIG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbi5zaWduYWwo
KTsKQEAgLTMzMiw3ICszMzIsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cnVuQ29tcG9z
aXRpbmdUCiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjp0ZXJtaW5hdGVDb21wb3NpdGluZ1Ro
cmVhZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGVybWluYXRlUnVuTG9vcENvbmRp
dGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25k
aXRpb25NdXRleCk7CiAKICAgICBtX3NjZW5lLT5kZXRhY2goKTsKICAgICBtX2NvbXBvc2l0aW5n
UnVuTG9vcC0+cnVuTG9vcCgpLnN0b3AoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgJKHJldmlzaW9uIDE4ODUx
MCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMTExLDkg
KzExMSw5IEBAIHByaXZhdGU6CiAKICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkSWRlbnRp
ZmllcjsKICAgICBUaHJlYWRDb25kaXRpb24gbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbjsK
LSAgICBNdXRleCBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXg7CisgICAgTG9jayBt
X2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXg7CiAgICAgVGhyZWFkQ29uZGl0aW9uIG1f
dGVybWluYXRlUnVuTG9vcENvbmRpdGlvbjsKLSAgICBNdXRleCBtX3Rlcm1pbmF0ZVJ1bkxvb3BD
b25kaXRpb25NdXRleDsKKyAgICBMb2NrIG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11dGV4
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1
c3RvbVByb3RvY29sTWFuYWdlci5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEwMCwxMSArMTAwLDExIEBAIHByaXZhdGU6CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBIYXNoU2V0PFN0cmluZz4gbV9yZWdpc3RlcmVkU2NoZW1lczsKLSAg
ICBNdXRleCBtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXg7CisgICAgTG9jayBtX3JlZ2lzdGVyZWRT
Y2hlbWVzTXV0ZXg7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJldGFpblB0cjxX
S0N1c3RvbVByb3RvY29sPj4gQ3VzdG9tUHJvdG9jb2xNYXA7CiAgICAgQ3VzdG9tUHJvdG9jb2xN
YXAgbV9jdXN0b21Qcm90b2NvbE1hcDsKLSAgICBNdXRleCBtX2N1c3RvbVByb3RvY29sTWFwTXV0
ZXg7CisgICAgTG9jayBtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXg7CiAgICAgCiAgICAgLy8gV0tD
dXN0b21Qcm90b2NvbCBvYmplY3RzIGNhbiBiZSByZW1vdmVkIGZyb20gdGhlIG1fY3VzdG9tUHJv
dG9jb2xNYXAgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLgogICAgIC8vIFdlIHJldHVybiBhIFJldGFp
blB0ciBoZXJlIGJlY2F1c2UgaXQgaXMgdW5zYWZlIHRvIHJldHVybiBhIHJhdyBwb2ludGVyIHNp
bmNlIHRoZSBvYmplY3QgbWlnaHQgaW1tZWRpYXRlbHkgYmUgZGVzdHJveWVkIGZyb20gYSBkaWZm
ZXJlbnQgdGhyZWFkLgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9t
UHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9D
dXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNl
L1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3Rv
Y29sTWFuYWdlckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsMjggKzE2NSwyOCBAQCB2
b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6aW5pdGlhbGl6ZShjCiB2b2lkIEN1c3RvbVByb3Rv
Y29sTWFuYWdlcjo6YWRkQ3VzdG9tUHJvdG9jb2woV0tDdXN0b21Qcm90b2NvbCAqY3VzdG9tUHJv
dG9jb2wpCiB7CiAgICAgQVNTRVJUKGN1c3RvbVByb3RvY29sKTsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOwogICAgIG1fY3VzdG9tUHJvdG9jb2xNYXAuYWRkKGN1
c3RvbVByb3RvY29sLmN1c3RvbVByb3RvY29sSUQsIGN1c3RvbVByb3RvY29sKTsKIH0KIAogdm9p
ZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnJlbW92ZUN1c3RvbVByb3RvY29sKFdLQ3VzdG9tUHJv
dG9jb2wgKmN1c3RvbVByb3RvY29sKQogewogICAgIEFTU0VSVChjdXN0b21Qcm90b2NvbCk7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKICAgICBtX2N1c3RvbVBy
b3RvY29sTWFwLnJlbW92ZShjdXN0b21Qcm90b2NvbC5jdXN0b21Qcm90b2NvbElEKTsKIH0KICAg
ICAKIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpyZWdpc3RlclNjaGVtZShjb25zdCBTdHJp
bmcmIHNjaGVtZSkKIHsKICAgICBBU1NFUlQoIXNjaGVtZS5pc051bGwoKSk7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKICAgICBtX3JlZ2lzdGVyZWRTY2hlbWVz
LmFkZChzY2hlbWUpOwogfQogICAgIAogdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnVucmVn
aXN0ZXJTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCiB7CiAgICAgQVNTRVJUKCFzY2hlbWUu
aXNOdWxsKCkpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7CiAg
ICAgbV9yZWdpc3RlcmVkU2NoZW1lcy5yZW1vdmUoc2NoZW1lKTsKIH0KIApAQCAtMTk1LDcgKzE5
NSw3IEBAIGJvb2wgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpzdXBwb3J0c1NjaGUKICAgICBpZiAo
c2NoZW1lLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgpOwogICAgIHJldHVybiBtX3JlZ2lzdGVyZWRTY2hl
bWVzLmNvbnRhaW5zKHNjaGVtZSk7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCAgICAgaWYgKCFw
cm90b2NvbCkKIAogUmV0YWluUHRyPFdLQ3VzdG9tUHJvdG9jb2w+IEN1c3RvbVByb3RvY29sTWFu
YWdlcjo6cHJvdG9jb2xGb3JJRCh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElEKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleCk7CiAKICAgICBDdXN0b21Qcm90b2Nv
bE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2N1c3RvbVByb3RvY29sTWFwLmZpbmQoY3VzdG9t
UHJvdG9jb2xJRCk7CiAgICAgaWYgKGl0ID09IG1fY3VzdG9tUHJvdG9jb2xNYXAuZW5kKCkpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRlcnMvU2VjY29tcEJy
b2tlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2Nv
bXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRlcnMvU2VjY29tcEJyb2tlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKIAogICAgIGludCBtX3NvY2tl
dDsKIAotICAgIG11dGFibGUgTXV0ZXggbV9zb2NrZXRMb2NrOworICAgIG11dGFibGUgTG9jayBt
X3NvY2tldExvY2s7CiAKICAgICAvLyBNYXBzIGZpbGVzIHRoYXQgbWF5IGJlIHJlYWQgYnkgbWFs
bG9jKCkgdG8gb3BlbiBmaWxlIGRlc2NyaXB0b3JzLgogICAgIEhhc2hNYXA8U3RyaW5nLCBpbnQ+
IG1fZmlsZURlc2NyaXB0b3JDYWNoZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bk1hbmFnZXIuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODYsNyArODYsNyBAQCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiogUGx1Z2luUHJv
Y2Vzc0NvCiAgICAgbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKHBsdWdpblByb2Nl
c3NDb25uZWN0aW9uKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdG9r
ZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdG9r
ZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7CiAgICAgICAgIEFTU0VSVCghbV90b2tlbnNBbmRDb25u
ZWN0aW9ucy5jb250YWlucyhwbHVnaW5Qcm9jZXNzVG9rZW4pKTsKIAogICAgICAgICBtX3Rva2Vu
c0FuZENvbm5lY3Rpb25zLnNldChwbHVnaW5Qcm9jZXNzVG9rZW4sIHBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uLT5jb25uZWN0aW9uKCkpOwpAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpyZW0KICAgICBBU1NFUlQodmVjdG9ySW5kZXggIT0gbm90
Rm91bmQpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90b2tlbnNBbmRD
b25uZWN0aW9uc011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90b2tlbnNBbmRD
b25uZWN0aW9uc011dGV4KTsKICAgICAgICAgQVNTRVJUKG1fdG9rZW5zQW5kQ29ubmVjdGlvbnMu
Y29udGFpbnMocGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24tPnBsdWdpblByb2Nlc3NUb2tlbigpKSk7
CiAgICAgICAgIAogICAgICAgICBtX3Rva2Vuc0FuZENvbm5lY3Rpb25zLnJlbW92ZShwbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbi0+cGx1Z2luUHJvY2Vzc1Rva2VuKCkpOwpAQCAtMTEyLDcgKzExMiw3
IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpyZW0KIAogdm9pZCBQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OnBsdWdpblByb2Nlc3NDcmFzaGVkKHVpbnQ2NF90
IHBsdWdpblByb2Nlc3NUb2tlbikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90b2tlbnNB
bmRDb25uZWN0aW9uc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rva2Vuc0FuZENv
bm5lY3Rpb25zTXV0ZXgpOwogICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiA9IG1fdG9r
ZW5zQW5kQ29ubmVjdGlvbnMuZ2V0KHBsdWdpblByb2Nlc3NUb2tlbik7CiAKICAgICAvLyBJdCdz
IE9LIGZvciBjb25uZWN0aW9uIHRvIGJlIG51bGwgaGVyZTsgaXQgd2lsbCBoYXBwZW4gaWYgdGhp
cyB3ZWIgcHJvY2VzcyBkb2Vzbid0IGtub3cKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NYW5hZ2VyLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPFJlZlB0cjxQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbj4+IG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25zOwogCi0gICAgTXV0
ZXggbV90b2tlbnNBbmRDb25uZWN0aW9uc011dGV4OworICAgIExvY2sgbV90b2tlbnNBbmRDb25u
ZWN0aW9uc011dGV4OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJUEM6OkNvbm5lY3Rp
b24+PiBtX3Rva2Vuc0FuZENvbm5lY3Rpb25zOwogfTsKIApJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAJKHJldmlz
aW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIEV2ZW50RGlzcGF0
Y2hlcjo6fkV2ZW50RGlzcGF0Y2hlcigpCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKIHZv
aWQgRXZlbnREaXNwYXRjaGVyOjphZGRTY3JvbGxpbmdUcmVlRm9yUGFnZShXZWJQYWdlKiB3ZWJQ
YWdlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CiAKICAgICBBU1NF
UlQod2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSk7CiAgICAgQVNT
RVJUKCFtX3Njcm9sbGluZ1RyZWVzLmNvbnRhaW5zKHdlYlBhZ2UtPnBhZ2VJRCgpKSk7CkBAIC03
Niw3ICs3Niw3IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjphZGRTY3JvbGxpbmdUcmVlRm8KIAog
dm9pZCBFdmVudERpc3BhdGNoZXI6OnJlbW92ZVNjcm9sbGluZ1RyZWVGb3JQYWdlKFdlYlBhZ2Uq
IHdlYlBhZ2UpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRl
eCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKICAgICBB
U1NFUlQobV9zY3JvbGxpbmdUcmVlcy5jb250YWlucyh3ZWJQYWdlLT5wYWdlSUQoKSkpOwogCiAg
ICAgbV9zY3JvbGxpbmdUcmVlcy5yZW1vdmUod2ViUGFnZS0+cGFnZUlEKCkpOwpAQCAtMTMyLDcg
KzEzMiw3IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KHVpbnQ2NF8KICNlbmRp
ZgogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zY3JvbGxpbmdUcmVlc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGlu
Z1RyZWVzTXV0ZXgpOwogICAgIGlmIChSZWZQdHI8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPiBzY3Jv
bGxpbmdUcmVlID0gbV9zY3JvbGxpbmdUcmVlcy5nZXQocGFnZUlEKSkgewogICAgICAgICAvLyBG
SVhNRTogSXQncyBwcmV0dHkgaG9ycmlibGUgdGhhdCB3ZSdyZSB1cGRhdGluZyB0aGUgYmFjay9m
b3J3YXJkIHN0YXRlIGhlcmUuCiAgICAgICAgIC8vIFdlYkNvcmUgc2hvdWxkIGFsd2F5cyBrbm93
IHRoZSBjdXJyZW50IHN0YXRlIGFuZCBrbm93IHdoZW4gaXQgY2hhbmdlcyBzbyB0aGUKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRj
aGVyLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTIsNyArOTIsNyBAQCBw
cml2YXRlOgogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CiAKICNpZiBFTkFCTEUoQVNZTkNf
U0NST0xMSU5HKQotICAgIE11dGV4IG1fc2Nyb2xsaW5nVHJlZXNNdXRleDsKKyAgICBMb2NrIG1f
c2Nyb2xsaW5nVHJlZXNNdXRleDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29y
ZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlPj4gbV9zY3JvbGxpbmdUcmVlczsKICNlbmRpZgogICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpXaGVlbEV2ZW50RGVsdGFUcmFja2VyPiBtX3JlY2Vu
dFdoZWVsRXZlbnREZWx0YVRyYWNrZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0u
Y3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAv
V2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcg
KzQxLDcgQEAgc3RydWN0IF9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUHJpdgogICAgIHVp
bnQ2NF90IGJ5dGVzUmVjZWl2ZWQ7CiAgICAgdWludDY0X3QgYnl0ZXNSZWFkOwogCi0gICAgTXV0
ZXggcmVhZExvY2s7CisgICAgTG9jayByZWFkTG9jazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXN5
bmNSZWFkRGF0YT4gcGVuZGluZ0FzeW5jUmVhZDsKIH07CiAKQEAgLTg0LDcgKzg0LDcgQEAgc3Rh
dGljIHZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbQogICAgIFdlYktpdFNvdXBSZXF1
ZXN0SW5wdXRTdHJlYW0qIHN0cmVhbSA9IFdFQktJVF9TT1VQX1JFUVVFU1RfSU5QVVRfU1RSRUFN
KGlucHV0U3RyZWFtKTsKICAgICBHUmVmUHRyPEdUYXNrPiB0YXNrID0gYWRvcHRHUmVmKGdfdGFz
a19uZXcoc3RyZWFtLCBjYW5jZWxsYWJsZSwgY2FsbGJhY2ssIHVzZXJEYXRhKSk7CiAKLSAgICBN
dXRleExvY2tlciBsb2NrZXIoc3RyZWFtLT5wcml2LT5yZWFkTG9jayk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIoc3RyZWFtLT5wcml2LT5yZWFkTG9jayk7CiAKICAgICBpZiAoIXdlYmtpdFNvdXBS
ZXF1ZXN0SW5wdXRTdHJlYW1IYXNEYXRhVG9SZWFkKHN0cmVhbSkgJiYgIXdlYmtpdFNvdXBSZXF1
ZXN0SW5wdXRTdHJlYW1Jc1dhaXRpbmdGb3JEYXRhKHN0cmVhbSkpIHsKICAgICAgICAgZ190YXNr
X3JldHVybl9pbnQodGFzay5nZXQoKSwgMCk7CkBAIC0xNDMsNyArMTQzLDcgQEAgdm9pZCB3ZWJr
aXRTb3VwUmVxdWVzdElucHV0U3RyZWFtQWRkRGF0YQogICAgIGlmICh3ZWJraXRTb3VwUmVxdWVz
dElucHV0U3RyZWFtRmluaXNoZWQoc3RyZWFtKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKHN0cmVhbS0+cHJpdi0+cmVhZExvY2spOworICAgIExvY2tIb2xkZXIg
bG9ja2VyKHN0cmVhbS0+cHJpdi0+cmVhZExvY2spOwogCiAgICAgaWYgKGRhdGFMZW5ndGgpIHsK
ICAgICAgICAgLy8gVHJ1bmNhdGUgdGhlIGRhdGFMZW5ndGggdG8gdGhlIGNvbnRlbnRMZW5ndGgg
aWYgaXQncyBrbm93bi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5
bmMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5
bmMuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFn
ZUFyZWFTeW5jLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQgU3Rv
cmFnZUFyZWFTeW5jOjpzeW5jVGltZXJGaXJlZCgpCiAKICAgICBib29sIHBhcnRpYWxTeW5jID0g
ZmFsc2U7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogCiAgICAgICAgIC8vIERvIG5v
dCBzY2hlZHVsZSBhbm90aGVyIHN5bmMgaWYgd2UncmUgc3RpbGwgdHJ5aW5nIHRvIGNvbXBsZXRl
IHRoZQogICAgICAgICAvLyBwcmV2aW91cyBvbmUuIEJ1dCwgaWYgd2UncmUgc2h1dHRpbmcgZG93
biwgc2NoZWR1bGUgaXQgYW55d2F5LgpAQCAtMzUyLDcgKzM1Miw3IEBAIHZvaWQgU3RvcmFnZUFy
ZWFTeW5jOjpwZXJmb3JtSW1wb3J0KCkKIAogdm9pZCBTdG9yYWdlQXJlYVN5bmM6Om1hcmtJbXBv
cnRlZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW1wb3J0TG9jayk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9pbXBvcnRMb2NrKTsKICAgICBtX2ltcG9ydENvbXBsZXRlID0gdHJ1
ZTsKICAgICBtX2ltcG9ydENvbmRpdGlvbi5zaWduYWwoKTsKIH0KQEAgLTM3Miw3ICszNzIsNyBA
QCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6YmxvY2tVbnRpbEltcG9ydENvCiAgICAgaWYgKCFtX3N0
b3JhZ2VBcmVhKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9p
bXBvcnRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2ltcG9ydExvY2spOwogICAgIHdo
aWxlICghbV9pbXBvcnRDb21wbGV0ZSkKICAgICAgICAgbV9pbXBvcnRDb25kaXRpb24ud2FpdCht
X2ltcG9ydExvY2spOwogICAgIG1fc3RvcmFnZUFyZWEgPSBudWxscHRyOwpAQCAtNDY3LDcgKzQ2
Nyw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtU3luYygpCiAgICAgYm9vbCBjbGVh
ckl0ZW1zOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGl0ZW1zOwogICAgIHsKLSAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3N5bmNMb2NrKTsKIAogICAgICAgICBBU1NFUlQobV9zeW5jU2NoZWR1bGVkKTsKIApA
QCAtNDgyLDcgKzQ4Miw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtU3luYygpCiAg
ICAgc3luYyhjbGVhckl0ZW1zLCBpdGVtcyk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9j
ayk7CiAgICAgICAgIG1fc3luY0luUHJvZ3Jlc3MgPSBmYWxzZTsKICAgICB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgJKHJldmlzaW9uIDE4ODUxMCkKKysr
IFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaAkod29ya2luZyBjb3B5KQpA
QCAtODUsNyArODUsNyBAQCBwcml2YXRlOgogCiAgICAgY29uc3QgU3RyaW5nIG1fZGF0YWJhc2VJ
ZGVudGlmaWVyOwogCi0gICAgTXV0ZXggbV9zeW5jTG9jazsKKyAgICBMb2NrIG1fc3luY0xvY2s7
CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9pdGVtc1BlbmRpbmdTeW5jOwogICAgIGJv
b2wgbV9jbGVhckl0ZW1zV2hpbGVTeW5jaW5nOwogICAgIGJvb2wgbV9zeW5jU2NoZWR1bGVkOwpA
QCAtOTQsNyArOTQsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3N5bmNDbG9zZURhdGFiYXNl
OwogCi0gICAgbXV0YWJsZSBNdXRleCBtX2ltcG9ydExvY2s7CisgICAgbXV0YWJsZSBMb2NrIG1f
aW1wb3J0TG9jazsKICAgICBUaHJlYWRDb25kaXRpb24gbV9pbXBvcnRDb25kaXRpb247CiAgICAg
Ym9vbCBtX2ltcG9ydENvbXBsZXRlOwogICAgIHZvaWQgbWFya0ltcG9ydGVkKCk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAJKHJldmlzaW9uIDE4ODUxMCkK
KysrIFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMCw3ICsxMDAsNyBAQCBTdG9yYWdlVHJhY2tlcjo6U3RvcmFnZVRyYWNrZXIoY29u
c3QgU3RyCiAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnNldERhdGFiYXNlRGlyZWN0b3J5UGF0aChj
b25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VN
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKIAogICAgIGlm
IChtX2RhdGFiYXNlLmlzT3BlbigpKQogICAgICAgICBtX2RhdGFiYXNlLmNsb3NlKCk7CkBAIC0x
MDgsNyArMTA4LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3Rvcgog
ICAgIG1fc3RvcmFnZURpcmVjdG9yeVBhdGggPSBwYXRoLmlzb2xhdGVkQ29weSgpOwogCiAgICAg
ewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICBtX29yaWdpblNl
dC5jbGVhcigpOwogICAgIH0KIApAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQgU3RvcmFnZVRyYWNr
ZXI6OmltcG9ydE9yaWdpbklkZW50aWYKIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6ZmluaXNoZWRJ
bXBvcnRpbmdPcmlnaW5JZGVudGlmaWVycygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
ZGF0YWJhc2VNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsK
ICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nT3Jp
Z2lucygpOwogfQpAQCAtMTk3LDcgKzE5Nyw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNJ
bXBvcnRPcmlnaW5JZGUKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAKICAgICAgICAgLy8gRG9uJ3QgZm9yY2Ug
Y3JlYXRpb24gb2YgU3RvcmFnZVRyYWNrZXIncyBkYiBqdXN0IGJlY2F1c2UgYSB0cmFja2VyCiAg
ICAgICAgIC8vIHdhcyBpbml0aWFsaXplZC4gSXQgd2lsbCBiZSBjcmVhdGVkIGlmIGxvY2FsIHN0
b3JhZ2UgZGJzIGFyZSBmb3VuZApAQCAtMjE3LDcgKzIxNyw3IEBAIHZvaWQgU3RvcmFnZVRyYWNr
ZXI6OnN5bmNJbXBvcnRPcmlnaW5JZGUKICAgICAgICAgICAgIGludCByZXN1bHQ7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBNdXRleExvY2tlciBsb2NrT3Jp
Z2lucyhtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tP
cmlnaW5zKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICAgICAgICAgIHdoaWxlICgocmVzdWx0
ID0gc3RhdGVtZW50LnN0ZXAoKSkgPT0gU1FMSVRFX1JPVykKICAgICAgICAgICAgICAgICAgICAg
bV9vcmlnaW5TZXQuYWRkKHN0YXRlbWVudC5nZXRDb2x1bW5UZXh0KDApLmlzb2xhdGVkQ29weSgp
KTsKICAgICAgICAgICAgIH0KQEAgLTIzMiwxMCArMjMyLDEwIEBAIHZvaWQgU3RvcmFnZVRyYWNr
ZXI6OnN5bmNJbXBvcnRPcmlnaW5JZGUKICAgICBzeW5jRmlsZVN5c3RlbUFuZFRyYWNrZXJEYXRh
YmFzZSgpOwogICAgIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY2xpZW50
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2NsaWVudE11dGV4KTsKIAogICAg
ICAgICBpZiAobV9jbGllbnQpIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29y
aWdpblNldE11dGV4KTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0
TXV0ZXgpOwogICAgICAgICAgICAgT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX29y
aWdpblNldC5lbmQoKTsKICAgICAgICAgICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRv
ciBpdCA9IG1fb3JpZ2luU2V0LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgICAg
ICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRNb2RpZnlPcmlnaW4oKml0KTsKQEAgLTI1Nyw3ICsy
NTcsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRmlsZVN5c3RlbUFuZFRyCiAKICAgICBW
ZWN0b3I8U3RyaW5nPiBwYXRoczsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2RhdGFiYXNlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0
ZXgpOwogICAgICAgICBwYXRocyA9IGxpc3REaXJlY3RvcnkobV9zdG9yYWdlRGlyZWN0b3J5UGF0
aCwgIioubG9jYWxzdG9yYWdlIik7CiAgICAgfQogCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBT
dG9yYWdlVHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcgogICAgIC8vIGRlbGV0aW9ucyBmcm9t
IGRpc2sgYW5kIGZyb20gbV9vcmlnaW5TZXQuCiAgICAgT3JpZ2luU2V0IG9yaWdpblNldENvcHk7
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICBmb3Ig
KE9yaWdpblNldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX29yaWdpblNldC5iZWdpbigpLCBlbmQg
PSBtX29yaWdpblNldC5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICAgICAgb3JpZ2lu
U2V0Q29weS5hZGQoKCppdCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIH0KQEAgLTMwNiw3ICszMDYs
NyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzZXRPcmlnaW5EZXRhaWxzKGNvCiAgICAgICAgIHJl
dHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0
ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKIAogICAg
ICAgICBpZiAobV9vcmlnaW5TZXQuY29udGFpbnMob3JpZ2luSWRlbnRpZmllcikpCiAgICAgICAg
ICAgICByZXR1cm47CkBAIC0zMzcsNyArMzM3LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3lu
Y1NldE9yaWdpbkRldGFpbAogCiAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0Nv
dW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0
YWJhc2VNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKIAog
ICAgIG9wZW5UcmFja2VyRGF0YWJhc2UodHJ1ZSk7CiAgICAgCkBAIC0zNTcsMTMgKzM1NywxMyBA
QCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jU2V0T3JpZ2luRGV0YWlsCiAgICAgICAgIExPR19F
UlJPUigiVW5hYmxlIHRvIGVzdGFibGlzaCBvcmlnaW4gJyVzJyBpbiB0aGUgdHJhY2tlciIsIG9y
aWdpbklkZW50aWZpZXIuYXNjaWkoKS5kYXRhKCkpOwogCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICBpZiAoIW1fb3JpZ2luU2V0LmNvbnRhaW5zKG9y
aWdpbklkZW50aWZpZXIpKQogICAgICAgICAgICAgbV9vcmlnaW5TZXQuYWRkKG9yaWdpbklkZW50
aWZpZXIpOwogICAgIH0KIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY2xp
ZW50TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2NsaWVudE11dGV4KTsKICAg
ICAgICAgaWYgKG1fY2xpZW50KQogICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkTW9k
aWZ5T3JpZ2luKG9yaWdpbklkZW50aWZpZXIpOwogICAgIH0KQEAgLTM3Niw3ICszNzYsNyBAQCB2
b2lkIFN0b3JhZ2VUcmFja2VyOjpvcmlnaW5zKFZlY3RvcjxSZWZQCiAgICAgaWYgKCFtX2lzQWN0
aXZlKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5T
ZXRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAKICAg
ICBmb3IgKE9yaWdpblNldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX29yaWdpblNldC5iZWdpbigp
LCBlbmQgPSBtX29yaWdpblNldC5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICByZXN1
bHQuYXBwZW5kKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyKCpp
dCkpOwpAQCAtMzkyLDcgKzM5Miw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OmRlbGV0ZUFsbE9y
aWdpbnMoKQogICAgICAgICByZXR1cm47CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmln
aW5TZXRNdXRleCk7CiAgICAgICAgIHdpbGxEZWxldGVBbGxPcmlnaW5zKCk7CiAgICAgICAgIG1f
b3JpZ2luU2V0LmNsZWFyKCk7CiAgICAgfQpAQCAtNDE3LDcgKzQxNyw3IEBAIHZvaWQgU3RvcmFn
ZVRyYWNrZXI6OnN5bmNEZWxldGVBbGxPcmlnaW4KIAogICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Q
cm9ncmVzc0F1dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291bnRlcjsKICAgICAKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2Rh
dGFiYXNlTXV0ZXgpOwogICAgIAogICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoZmFsc2UpOwogICAg
IGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKQEAgLTQzNyw3ICs0MzcsNyBAQCB2b2lkIFN0b3Jh
Z2VUcmFja2VyOjpzeW5jRGVsZXRlQWxsT3JpZ2luCiAgICAgICAgIGRlbGV0ZUZpbGUoc3RhdGVt
ZW50LmdldENvbHVtblRleHQoMSkpOwogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2NsaWVudE11dGV4KTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fY2xpZW50TXV0ZXgpOwogICAgICAgICAgICAgaWYgKG1fY2xpZW50KQogICAgICAgICAgICAg
ICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZE1vZGlmeU9yaWdpbihzdGF0ZW1lbnQuZ2V0Q29sdW1u
VGV4dCgwKSk7CiAgICAgICAgIH0KQEAgLTQ5OSw3ICs0OTksNyBAQCB2b2lkIFN0b3JhZ2VUcmFj
a2VyOjpkZWxldGVPcmlnaW4oU2VjdXJpCiAgICAgU3RyaW5nIG9yaWdpbklkID0gb3JpZ2luLT5k
YXRhYmFzZUlkZW50aWZpZXIoKTsKICAgICAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmln
aW5TZXRNdXRleCk7CiAgICAgICAgIHdpbGxEZWxldGVPcmlnaW4ob3JpZ2luSWQpOwogICAgICAg
ICBtX29yaWdpblNldC5yZW1vdmUob3JpZ2luSWQpOwogICAgIH0KQEAgLTUxNiw3ICs1MTYsNyBA
QCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKGNvCiAKICAgICBTUUxpdGVU
cmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2RhdGFiYXNlTXV0ZXgpOwogICAgIAogICAgIGlmICghY2FuRGVsZXRlT3JpZ2luKG9y
aWdpbklkZW50aWZpZXIpKSB7CiAgICAgICAgIExPR19FUlJPUigiQXR0ZW1wdGVkIHRvIGRlbGV0
ZSBvcmlnaW4gJyVzJyB3aGlsZSBpdCB3YXMgYmVpbmcgY3JlYXRlZFxuIiwgb3JpZ2luSWRlbnRp
Zmllci5hc2NpaSgpLmRhdGEoKSk7CkBAIC01NDksNyArNTQ5LDcgQEAgdm9pZCBTdG9yYWdlVHJh
Y2tlcjo6c3luY0RlbGV0ZU9yaWdpbihjbwogICAgIAogICAgIGJvb2wgc2hvdWxkRGVsZXRlVHJh
Y2tlckZpbGVzID0gZmFsc2U7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9v
cmlnaW5TZXRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0
ZXgpOwogICAgICAgICBtX29yaWdpblNldC5yZW1vdmUob3JpZ2luSWRlbnRpZmllcik7CiAgICAg
ICAgIHNob3VsZERlbGV0ZVRyYWNrZXJGaWxlcyA9IG1fb3JpZ2luU2V0LmlzRW1wdHkoKTsKICAg
ICB9CkBAIC01NjYsNyArNTY2LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZU9y
aWdpbihjbwogICAgIH0KIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY2xp
ZW50TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2NsaWVudE11dGV4KTsKICAg
ICAgICAgaWYgKG1fY2xpZW50KQogICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkTW9k
aWZ5T3JpZ2luKG9yaWdpbklkZW50aWZpZXIpOwogICAgIH0KQEAgLTU5Miw3ICs1OTIsNyBAQCB2
b2lkIFN0b3JhZ2VUcmFja2VyOjp3aWxsRGVsZXRlT3JpZ2luKGNvCiBib29sIFN0b3JhZ2VUcmFj
a2VyOjpjYW5EZWxldGVPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKQogewog
ICAgIEFTU0VSVCghbV9kYXRhYmFzZU11dGV4LnRyeUxvY2soKSk7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2lu
U2V0TXV0ZXgpOwogICAgIHJldHVybiBtX29yaWdpbnNCZWluZ0RlbGV0ZWQuY29udGFpbnMob3Jp
Z2luSWRlbnRpZmllcik7CiB9CiAKQEAgLTYwMSw5ICs2MDEsOSBAQCB2b2lkIFN0b3JhZ2VUcmFj
a2VyOjpjYW5jZWxEZWxldGluZ09yaWdpCiAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOwogICAgIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgaWYgKCFtX29yaWdpbnNCZWluZ0RlbGV0ZWQu
aXNFbXB0eSgpKQogICAgICAgICAgICAgbV9vcmlnaW5zQmVpbmdEZWxldGVkLnJlbW92ZShvcmln
aW5JZGVudGlmaWVyKTsKICAgICB9CkBAIC02NDcsNyArNjQ3LDcgQEAgbG9uZyBsb25nIFN0b3Jh
Z2VUcmFja2VyOjpkaXNrVXNhZ2VGb3JPcgogICAgIGlmICghbV9pc0FjdGl2ZSkKICAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOwogCiAgICAgU3RyaW5nIHBhdGgg
PSBkYXRhYmFzZVBhdGhGb3JPcmlnaW4ob3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiAg
ICAgaWYgKHBhdGguaXNFbXB0eSgpKQpJbmRleDogU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3Jh
Z2VUcmFja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VU
cmFja2VyLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9y
YWdlVHJhY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSwxNSArOTUsMTUgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHN5bmNJbXBvcnRPcmlnaW5JZGVudGlmaWVycygpOwogCiAgICAgLy8gTXV0ZXgg
Zm9yIG1fZGF0YWJhc2UgYW5kIG1fc3RvcmFnZURpcmVjdG9yeVBhdGguCi0gICAgTXV0ZXggbV9k
YXRhYmFzZU11dGV4OworICAgIExvY2sgbV9kYXRhYmFzZU11dGV4OwogICAgIFNRTGl0ZURhdGFi
YXNlIG1fZGF0YWJhc2U7CiAgICAgU3RyaW5nIG1fc3RvcmFnZURpcmVjdG9yeVBhdGg7CiAKLSAg
ICBNdXRleCBtX2NsaWVudE11dGV4OworICAgIExvY2sgbV9jbGllbnRNdXRleDsKICAgICBTdG9y
YWdlVHJhY2tlckNsaWVudCogbV9jbGllbnQ7CiAKICAgICAvLyBHdWFyZCBmb3IgbV9vcmlnaW5T
ZXQgYW5kIG1fb3JpZ2luc0JlaW5nRGVsZXRlZC4KLSAgICBNdXRleCBtX29yaWdpblNldE11dGV4
OworICAgIExvY2sgbV9vcmlnaW5TZXRNdXRleDsKICAgICB0eXBlZGVmIEhhc2hTZXQ8U3RyaW5n
PiBPcmlnaW5TZXQ7CiAgICAgT3JpZ2luU2V0IG1fb3JpZ2luU2V0OwogICAgIE9yaWdpblNldCBt
X29yaWdpbnNCZWluZ0RlbGV0ZWQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODg1
MTApCisrKyBTb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxOCBAQAorMjAxNS0wOC0xNSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBNdXRleCB0byBMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc2NzUKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9m
ZnJleSBHYXJlbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25D
b250ZW50Lm1tOgorICAgICAgICAoV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jayk6Cisg
ICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IHNjcm9sbE9yWm9vbUNoYW5nZWQ6XSk6
CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IG92ZXJmbG93U2Nyb2xsUG9zaXRp
b25Gb3JMYXllcjpjaGFuZ2VkVG86XSk6CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250
ZW50IHNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6c3RpY2t5Q29udGFpbmVyTWFwOl0pOgor
ICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBoYXNGaXhlZE9yU3RpY2t5UG9zaXRp
b25MYXllcnNdKToKKyAgICAgICAgKC1bV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQgbWluaW11bU9m
ZnNldEZyb21GaXhlZFBvc2l0aW9uTGF5ZXJzVG9BbmNob3JFZGdlOm9mUmVjdDppbkxheWVyOl0p
OgorCiAyMDE1LTA4LTEzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlZmFjdG9yIGFuZCBpbXByb3ZlIFRleHRJbmRpY2F0b3IgdG8gcHJlcGFyZSBm
b3IgdGVzdHMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVk
UG9zaXRpb25Db250ZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvaW9zL1dlYkNv
cmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tCShyZXZpc2lvbiAxODg1MTApCisr
KyBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVu
dC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDgsOSArNDgsOSBAQAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi1zdGF0aWMgTXV0ZXgmIFdlYkZpeGVkUG9z
aXRpb25Db250ZW50RGF0YUxvY2soKQorc3RhdGljIExvY2smIFdlYkZpeGVkUG9zaXRpb25Db250
ZW50RGF0YUxvY2soKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRl
eCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywg
bXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTEwMSw3ICsxMDEsNyBAQCAt
ICh2b2lkKWRlYWxsb2MKIAogLSAodm9pZClzY3JvbGxPclpvb21DaGFuZ2VkOihDR1JlY3QpcG9z
aXRpb25lZE9iamVjdHNSZWN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhlZFBvc2l0
aW9uQ29udGVudERhdGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0
aW9uQ29udGVudERhdGFMb2NrKCkpOwogCiAgICAgTGF5ZXJJbmZvTWFwOjpjb25zdF9pdGVyYXRv
ciBlbmQgPSBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmVuZCgpOwogICAg
IGZvciAoTGF5ZXJJbmZvTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IF9wcml2YXRlLT5tX3ZpZXdw
b3J0Q29uc3RyYWluZWRMYXllcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CkBAIC0xNDAs
NyArMTQwLDcgQEAgLSAodm9pZClzY3JvbGxPclpvb21DaGFuZ2VkOihDR1JlY3QpcG9zaQogCiAt
ICh2b2lkKW92ZXJmbG93U2Nyb2xsUG9zaXRpb25Gb3JMYXllcjooQ0FMYXllciAqKXNjcm9sbExh
eWVyIGNoYW5nZWRUbzooQ0dQb2ludClzY3JvbGxQb3NpdGlvbgogewotICAgIE11dGV4TG9ja2Vy
IGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKIAogICAgIExheWVySW5m
b01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5l
ZExheWVycy5lbmQoKTsKICAgICBmb3IgKExheWVySW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgaXQg
PSBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmJlZ2luKCk7IGl0ICE9IGVu
ZDsgKytpdCkgewpAQCAtMTczLDcgKzE3Myw3IEBAIC0gKHZvaWQpZGlkRmluaXNoU2Nyb2xsaW5n
T3Jab29taW5nCiAKIC0gKHZvaWQpc2V0Vmlld3BvcnRDb25zdHJhaW5lZExheWVyczooV1RGOjpI
YXNoTWFwPENBTGF5ZXIgKiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlZpZXdwb3J0Q29uc3Ry
YWludHM+PiYpbGF5ZXJNYXAgc3RpY2t5Q29udGFpbmVyTWFwOihXVEY6Okhhc2hNYXA8Q0FMYXll
ciosIENBTGF5ZXIqPiYpc3RpY2t5Q29udGFpbmVycwogewotICAgIE11dGV4TG9ja2VyIGxvY2so
V2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2so
V2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKIAogICAgIF9wcml2YXRlLT5tX3Zp
ZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuY2xlYXIoKTsKIApAQCAtMTkwLDcgKzE5MCw3IEBAIC0g
KHZvaWQpc2V0Vmlld3BvcnRDb25zdHJhaW5lZExheWVyczooV1QKIAogLSAoQk9PTCloYXNGaXhl
ZE9yU3RpY2t5UG9zaXRpb25MYXllcnMKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZpeGVk
UG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZpeGVk
UG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAgICAgcmV0dXJuICFfcHJpdmF0ZS0+bV92aWV3
cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmlzRW1wdHkoKTsKIH0KIApAQCAtMjEwLDcgKzIxMCw3IEBA
IHN0YXRpYyBWaWV3cG9ydENvbnN0cmFpbnRzOjpBbmNob3JFZGdlRmwKIAogLSAoQ0dGbG9hdClt
aW5pbXVtT2Zmc2V0RnJvbUZpeGVkUG9zaXRpb25MYXllcnNUb0FuY2hvckVkZ2U6KFdlYkZpeGVk
UG9zaXRpb25BbmNob3JFZGdlKWFuY2hvckVkZ2Ugb2ZSZWN0OihDR1JlY3QpcmVjdCBpbkxheWVy
OihDQUxheWVyICopbGF5ZXIKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZpeGVkUG9zaXRp
b25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZpeGVkUG9zaXRp
b25Db250ZW50RGF0YUxvY2soKSk7CiAgICAgVmlld3BvcnRDb25zdHJhaW50czo6QW5jaG9yRWRn
ZUZsYWdzIGFuY2hvckVkZ2VGbGFncyA9IGFuY2hvckVkZ2VGbGFnc0ZvckFuY2hvckVkZ2UoYW5j
aG9yRWRnZSk7CiAgICAgQ0dGbG9hdCBtaW5pbXVtT2Zmc2V0ID0gQ0dGTE9BVF9NQVg7CiAgICAg
TGF5ZXJJbmZvTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBfcHJpdmF0ZS0+bV92aWV3cG9ydENv
bnN0cmFpbmVkTGF5ZXJzLmVuZCgpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4
NTEwKQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTUtMDgtMTUgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW5hbWUgTXV0ZXggdG8gTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3Njc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2Vv
ZmZyZXkgR2FyZW4uCisKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbToK
KyAgICAgICAgKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jayk6CisgICAg
ICAgICgrW1dlYkRhdGFiYXNlTWFuYWdlciBzdGFydEJhY2tncm91bmRUYXNrXSk6CisgICAgICAg
ICgrW1dlYkRhdGFiYXNlTWFuYWdlciBlbmRCYWNrZ3JvdW5kVGFza10pOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfc3luY2hyb25pemVDdXN0b21G
aXhlZFBvc2l0aW9uTGF5b3V0UmVjdF0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zZXRDdXN0b21G
aXhlZFBvc2l0aW9uTGF5b3V0UmVjdEluV2ViVGhyZWFkOnN5bmNocm9uaXplOl0pOgorICAgICAg
ICAoLVtXZWJWaWV3IF9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdDpdKToKKyAgICAg
ICAgKC1bV2ViVmlldyBfZmV0Y2hDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdDpdKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisKIDIwMTUtMDgtMTMgIEFuZHkgRXN0ZXMg
IDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gRG93bmxvYWRzIGRvIG5vdCBz
dGFydCBpZiBwb2xpY3kgZGVjaXNpb24gaXMgbWFkZSBhc3luY2hyb25vdXNseQpJbmRleDogU291
cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0JKHJldmlz
aW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5h
Z2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYsOSArMjI2LDkgQEAgKyAodm9pZClzY2hlZHVs
ZUVtcHR5RGF0YWJhc2VSZW1vdmFsCiAjaWYgUExBVEZPUk0oSU9TKQogQGltcGxlbWVudGF0aW9u
IFdlYkRhdGFiYXNlTWFuYWdlciAoV2ViRGF0YWJhc2VNYW5hZ2VySW50ZXJuYWwpCiAKLXN0YXRp
YyBNdXRleCYgdHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkKK3N0YXRp
YyBMb2NrJiB0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2soKQogewotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgbXV0ZXgsICgpKTsKICAgICByZXR1
cm4gbXV0ZXg7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCArICh2b2lkKWRpZEZpbmlzaExhc3RU
cmFuc2FjdGlvbgogCiArICh2b2lkKXN0YXJ0QmFja2dyb3VuZFRhc2sKIHsKLSAgICBNdXRleExv
Y2tlciBsb2NrKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jaygpKTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2Nr
KCkpOwogCiAgICAgLy8gSWYgdGhlcmUncyBhbHJlYWR5IGFuIGV4aXN0aW5nIGJhY2tncm91bmQg
dGFzayBnb2luZyBvbiwgdGhlcmUncyBubyBuZWVkIHRvIHN0YXJ0IGEgbmV3IG9uZS4KICAgICBp
ZiAoZ2V0VHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXIoKSAhPSBpbnZhbGlkV2Vi
QmFja2dyb3VuZFRhc2tJZGVudGlmaWVyKCkpCkBAIC0yNzUsNyArMjc1LDcgQEAgKyAodm9pZClz
dGFydEJhY2tncm91bmRUYXNrCiAKICsgKHZvaWQpZW5kQmFja2dyb3VuZFRhc2sKIHsKLSAgICBN
dXRleExvY2tlciBsb2NrKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jaygp
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZp
ZXJMb2NrKCkpOwogCiAgICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCB3ZSB3ZXJlIHVuYWJsZSB0
byBzdGFydCB0aGUgYmFja2dyb3VuZCB0YXNrIHdoZW4gdGhlIGZpcnN0IHRyYW5zYWN0aW9uIGJl
Z2FuLgogICAgIC8vIERvbid0IHRyeSB0byBlbmQgdGhlIHRhc2sgaW4gdGhhdCBjYXNlLgpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gMTg4NTEwKQorKysg
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0z
NjMyLDcgKzM2MzIsNyBAQCAtICh2b2lkKV9zeW5jaHJvbml6ZUN1c3RvbUZpeGVkUG9zaXRpb25M
CiAKICAgICBJbnRSZWN0IG5ld1JlY3Q7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0
UmVjdE11dGV4KTsKICAgICAgICAgaWYgKENHUmVjdElzTnVsbChfcHJpdmF0ZS0+cGVuZGluZ0Zp
eGVkUG9zaXRpb25MYXlvdXRSZWN0KSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbmV3
UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5
b3V0UmVjdCk7CkBAIC0zNjQ2LDcgKzM2NDYsNyBAQCAtICh2b2lkKV9zeW5jaHJvbml6ZUN1c3Rv
bUZpeGVkUG9zaXRpb25MCiAtICh2b2lkKV9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVj
dEluV2ViVGhyZWFkOihDR1JlY3QpcmVjdCBzeW5jaHJvbml6ZTooQk9PTClzeW5jaHJvbml6ZQog
ewogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5kaW5nRml4
ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKF9w
cml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleCk7CiAgICAgICAgIF9w
cml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3QgPSByZWN0OwogICAgIH0KICAg
ICBpZiAoIXN5bmNocm9uaXplKQpAQCAtMzY2MCw3ICszNjYwLDcgQEAgLSAodm9pZClfc2V0Q3Vz
dG9tRml4ZWRQb3NpdGlvbkxheW91dFJlYwogewogICAgIEFTU0VSVChXZWJUaHJlYWRJc0xvY2tl
ZCgpKTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGlu
Z0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOwogICAgICAg
ICBfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0ID0gcmVjdDsKICAgICB9
CiAgICAgW3NlbGYgX3N5bmNocm9uaXplQ3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3RdOwpA
QCAtMzY2OCw3ICszNjY4LDcgQEAgLSAodm9pZClfc2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91
dFJlYwogCiAtIChCT09MKV9mZXRjaEN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0OihOU1Jl
Y3QqKXJlY3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhl
ZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihfcHJpdmF0
ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOwogICAgIGlmIChDR1JlY3RJ
c051bGwoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0Rh
dGEuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksNyArMjQ5LDcgQEAgQGludGVyZmFjZSBX
ZWJWaWV3UHJpdmF0ZSA6IE5TT2JqZWN0IHsKICAgICBDR1NpemUgZml4ZWRMYXlvdXRTaXplOwog
ICAgIEJPT0wgbWFpblZpZXdJc1Njcm9sbGluZ09yWm9vbWluZzsKICAgICBpbnQzMl90IGRpZERy
YXdUaWxlczsKLSAgICBXVEY6Ok11dGV4IHBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11
dGV4OworICAgIFdURjo6TG9jayBwZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleDsK
ICAgICBDR1JlY3QgcGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0OwogI2VuZGlmCiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE1LTA4LTE1ICBG
aWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIE11dGV4IHRv
IExvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NzY3NQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgICog
UGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlQ2FsbCk6CisgICAgICAgIChXZWJD
b3JlOjpQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpyZWdpc3RlclBsdWdpbik6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjp1bnJlZ2lzdGVyUGx1Z2luKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OmRpc3BhdGNoQ2Fs
bHNGb3JQbHVnaW4pOgorICAgICAgICAqIFBsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxl
ci5oOgorICAgICAgICAqIFdlYkljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJJY29uRGF0
YWJhc2U6OmRpZFJlbW92ZUFsbEljb25zKToKKyAgICAgICAgKFdlYkljb25EYXRhYmFzZTo6ZGlk
SW1wb3J0SWNvblVSTEZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViSWNvbkRhdGFiYXNlOjpkZWxp
dmVyTm90aWZpY2F0aW9ucyk6CisgICAgICAgICogV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcDoK
KyAgICAgICAgKG1haW5CdW5kbGVMb2NTdHJpbmdzKToKKyAgICAgICAgKGZyYW1ld29ya0xvY1N0
cmluZ3NNdXRleCk6CisgICAgICAgIChmaW5kQ2FjaGVkU3RyaW5nKToKKyAgICAgICAgKGNhY2hl
U3RyaW5nKToKKwogMjAxNS0wOC0xMyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBEb3dubG9hZHMgZG8gbm90IHN0YXJ0IGlmIHBvbGljeSBkZWNpc2lv
biBpcyBtYWRlIGFzeW5jaHJvbm91c2x5CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJJY29u
RGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRh
YmFzZS5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25E
YXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyMCwxNCArMzIwLDE0IEBAIEhCSVRNQVAg
V2ViSWNvbkRhdGFiYXNlOjpnZXRPckNyZWF0ZURlZmEKIHZvaWQgV2ViSWNvbkRhdGFiYXNlOjpk
aWRSZW1vdmVBbGxJY29ucygpCiB7CiAgICAgLy8gUXVldWVpbmcgdGhlIGVtcHR5IHN0cmluZyBp
cyBhIHNwZWNpYWwgd2F5IG9mIHNheWluZyAidGhpcyBxdWV1ZWQgbm90aWZpY2F0aW9uIGlzIHRo
ZSBkaWRSZW1vdmVBbGxJY29ucyBub3RpZmljYXRpb24iCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fbm90aWZpY2F0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbm90aWZpY2F0
aW9uTXV0ZXgpOwogICAgIG1fbm90aWZpY2F0aW9uUXVldWUuYXBwZW5kKFN0cmluZygpKTsKICAg
ICBzY2hlZHVsZU5vdGlmaWNhdGlvbkRlbGl2ZXJ5KCk7CiB9CiAKIHZvaWQgV2ViSWNvbkRhdGFi
YXNlOjpkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBXVEY6OlN0cmluZyYgcGFnZVVS
TCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9ub3RpZmljYXRpb25NdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9ub3RpZmljYXRpb25NdXRleCk7CiAgICAgbV9ub3RpZmljYXRp
b25RdWV1ZS5hcHBlbmQocGFnZVVSTC5pc29sYXRlZENvcHkoKSk7CiAgICAgc2NoZWR1bGVOb3Rp
ZmljYXRpb25EZWxpdmVyeSgpOwogfQpAQCAtNDAzLDcgKzQwMyw3IEBAIHZvaWQgV2ViSWNvbkRh
dGFiYXNlOjpkZWxpdmVyTm90aWZpY2F0aW8KIAogICAgIFZlY3RvcjxTdHJpbmc+IHF1ZXVlOwog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2hhcmVkV2ViSWNvbkRhdGFiYXNl
LT5tX25vdGlmaWNhdGlvbk11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zaGFy
ZWRXZWJJY29uRGF0YWJhc2UtPm1fbm90aWZpY2F0aW9uTXV0ZXgpOwogICAgICAgICBxdWV1ZS5z
d2FwKG1fc2hhcmVkV2ViSWNvbkRhdGFiYXNlLT5tX25vdGlmaWNhdGlvblF1ZXVlKTsKICAgICAg
ICAgbV9zaGFyZWRXZWJJY29uRGF0YWJhc2UtPm1fZGVsaXZlcnlSZXF1ZXN0ZWQgPSBmYWxzZTsK
ICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJJY29uRGF0YWJhc2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJJY29uRGF0YWJhc2UuaAkocmV2aXNpb24gMTg4
NTEwKQorKysgU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTExNiw3ICsxMTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgSGFzaE1hcDxJbnRTaXplLCBI
QklUTUFQPiBtX2RlZmF1bHRJY29uTWFwOwogICAgIEhhc2hNYXA8SW50U2l6ZSwgSEJJVE1BUD4g
bV9zaGFyZWRJY29uTWFwOwogCi0gICAgTXV0ZXggbV9ub3RpZmljYXRpb25NdXRleDsKKyAgICBM
b2NrIG1fbm90aWZpY2F0aW9uTXV0ZXg7CiAgICAgVmVjdG9yPFN0cmluZz4gbV9ub3RpZmljYXRp
b25RdWV1ZTsKICAgICB2b2lkIHNjaGVkdWxlTm90aWZpY2F0aW9uRGVsaXZlcnkoKTsKICAgICBi
b29sIG1fZGVsaXZlcnlSZXF1ZXN0ZWQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJMb2Nh
bGl6YWJsZVN0cmluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkxv
Y2FsaXphYmxlU3RyaW5ncy5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDkgKzQ0
LDkgQEAgV2ViTG9jYWxpemFibGVTdHJpbmdzQnVuZGxlIFdlYktpdExvY2FsaQogCiB0eXBlZGVm
IEhhc2hNYXA8U3RyaW5nLCBMb2NhbGl6ZWRTdHJpbmcqPiBMb2NhbGl6ZWRTdHJpbmdNYXA7CiAK
LXN0YXRpYyBNdXRleCYgbWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgpCitzdGF0aWMgTG9jayYg
bWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChMb2NrLCBtdXRleCwgKCkpOwogICAgIHJldHVybiBtdXRleDsKIH0KIApAQCAtNTYs
OSArNTYsOSBAQCBzdGF0aWMgTG9jYWxpemVkU3RyaW5nTWFwJiBtYWluQnVuZGxlTG9jCiAgICAg
cmV0dXJuIG1hcDsKIH0KIAotc3RhdGljIE11dGV4JiBmcmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgo
KQorc3RhdGljIExvY2smIGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NrLCBtdXRleCwgKCkpOwogICAgIHJldHVybiBtdXRl
eDsKIH0KIApAQCAtMTc1LDEyICsxNzUsMTIgQEAgc3RhdGljIENGU3RyaW5nUmVmIGNvcHlMb2Nh
bGl6ZWRTdHJpbmdGcgogc3RhdGljIExvY2FsaXplZFN0cmluZyogZmluZENhY2hlZFN0cmluZyhX
ZWJMb2NhbGl6YWJsZVN0cmluZ3NCdW5kbGUqIHN0cmluZ3NCdW5kbGUsIGNvbnN0IFN0cmluZyYg
a2V5KQogewogICAgIGlmICghc3RyaW5nc0J1bmRsZSkgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrKG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgoKSk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
ayhtYWluQnVuZGxlTG9jU3RyaW5nc011dGV4KCkpOwogICAgICAgICByZXR1cm4gbWFpbkJ1bmRs
ZUxvY1N0cmluZ3MoKS5nZXQoa2V5KTsKICAgICB9CiAKICAgICBpZiAoc3RyaW5nc0J1bmRsZS0+
YnVuZGxlID09IFdlYktpdExvY2FsaXphYmxlU3RyaW5nc0J1bmRsZS5idW5kbGUpIHsKLSAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9jayhmcmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgoKSk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9jayhmcmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgoKSk7CiAgICAgICAgIHJl
dHVybiBmcmFtZXdvcmtMb2NTdHJpbmdzKCkuZ2V0KGtleSk7CiAgICAgfQogCkBAIC0xOTAsMTIg
KzE5MCwxMiBAQCBzdGF0aWMgTG9jYWxpemVkU3RyaW5nKiBmaW5kQ2FjaGVkU3RyaW5nCiBzdGF0
aWMgdm9pZCBjYWNoZVN0cmluZyhXZWJMb2NhbGl6YWJsZVN0cmluZ3NCdW5kbGUqIHN0cmluZ3NC
dW5kbGUsIGNvbnN0IFN0cmluZyYga2V5LCBMb2NhbGl6ZWRTdHJpbmcqIHZhbHVlKQogewogICAg
IGlmICghc3RyaW5nc0J1bmRsZSkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1haW5CdW5k
bGVMb2NTdHJpbmdzTXV0ZXgoKSk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtYWluQnVuZGxl
TG9jU3RyaW5nc011dGV4KCkpOwogICAgICAgICBtYWluQnVuZGxlTG9jU3RyaW5ncygpLnNldChr
ZXksIHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIE11dGV4TG9ja2VyIGxv
Y2soZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhmcmFt
ZXdvcmtMb2NTdHJpbmdzTXV0ZXgoKSk7CiAgICAgZnJhbWV3b3JrTG9jU3RyaW5ncygpLnNldChr
ZXksIHZhbHVlKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5N
YWluVGhyZWFkU2NoZWR1bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9Q
bHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiAxODg1MTApCisr
KyBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVs
ZXI6OlBsdWdpbk1haW5UaHIKIAogdm9pZCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hl
ZHVsZUNhbGwoTlBQIG5wcCwgTWFpblRocmVhZEZ1bmN0aW9uIGZ1bmN0aW9uLCB2b2lkKiB1c2Vy
RGF0YSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrKG1fcXVldWVNdXRleCk7CiAKICAgICBDYWxsUXVldWVNYXA6Oml0ZXJhdG9yIGl0
ID0gbV9jYWxsUXVldWVNYXAuZmluZChucHApOwogICAgIGlmIChpdCA9PSBtX2NhbGxRdWV1ZU1h
cC5lbmQoKSkKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVy
OjpzY2hlZHVsZQogCiB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnJlZ2lzdGVyUGx1
Z2luKE5QUCBucHApCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogCiAgICAgQVNTRVJUKCFtX2NhbGxRdWV1
ZU1hcC5jb250YWlucyhucHApKTsKICAgICBtX2NhbGxRdWV1ZU1hcC5zZXQobnBwLCBEZXF1ZTxD
YWxsPigpKTsKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVy
OjpyZWdpc3RlcgogCiB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnVucmVnaXN0ZXJQ
bHVnaW4oTlBQIG5wcCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrKG1fcXVldWVNdXRleCk7CiAKICAgICBBU1NFUlQobV9jYWxsUXVl
dWVNYXAuY29udGFpbnMobnBwKSk7CiAgICAgbV9jYWxsUXVldWVNYXAucmVtb3ZlKG5wcCk7CkBA
IC03Nyw3ICs3Nyw3IEBAIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6ZGlzcGF0Y2gK
ICAgICBmb3IgKGF1dG8mIGNhbGwgOiBjYWxscykgewogICAgICAgICAvLyBDaGVjayBpZiB0aGUg
cGx1Zy1pbiBoYXMgYmVlbiBkZXN0cm95ZWQuCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4
TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9jayht
X3F1ZXVlTXV0ZXgpOwogICAgICAgICAgICAgaWYgKCFtX2NhbGxRdWV1ZU1hcC5jb250YWlucyhu
cHApKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpJbmRleDogU291cmNlL1dl
YktpdC93aW4vUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmgJ
KHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luTWFp
blRocmVhZFNjaGVkdWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw3IEBAIHByaXZh
dGU6CiAKICAgICBib29sIG1fY2FsbFBlbmRpbmc7CiAgICAgQ2FsbFF1ZXVlTWFwIG1fY2FsbFF1
ZXVlTWFwOwotICAgIE11dGV4IG1fcXVldWVNdXRleDsKKyAgICBMb2NrIG1fcXVldWVNdXRleDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBUb29scy9E
dW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDQsOSArNDQsOSBAQCBzdGF0aWMgY29uc3Qgc2l6ZV90IGphdmFTY3JpcHRUaHJlYWRzQ291CiBz
dGF0aWMgYm9vbCBqYXZhU2NyaXB0VGhyZWFkc1Nob3VsZFRlcm1pbmF0ZTsKIHN0YXRpYyBKU0Nv
bnRleHRHcm91cFJlZiBqYXZhU2NyaXB0VGhyZWFkc0dyb3VwOwogCi1zdGF0aWMgTXV0ZXgmIGph
dmFTY3JpcHRUaHJlYWRzTXV0ZXgoKQorc3RhdGljIExvY2smIGphdmFTY3JpcHRUaHJlYWRzTXV0
ZXgoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc3RhdGlj
TXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgc3Rh
dGljTXV0ZXgsICgpKTsKICAgICByZXR1cm4gc3RhdGljTXV0ZXg7CiB9CiAKQEAgLTcwLDI2ICs3
MCwyNiBAQCB2b2lkIHJ1bkphdmFTY3JpcHRUaHJlYWQodm9pZCopCiAKICAgICBKU0dsb2JhbENv
bnRleHRSZWYgY3R4OwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3Jp
cHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRU
aHJlYWRzTXV0ZXgoKSk7CiAgICAgICAgIGN0eCA9IEpTR2xvYmFsQ29udGV4dENyZWF0ZUluR3Jv
dXAoamF2YVNjcmlwdFRocmVhZHNHcm91cCwgMCk7CiAgICAgfQogCiAgICAgSlNTdHJpbmdSZWYg
c2NyaXB0UmVmOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRU
aHJlYWRzTXV0ZXgoKSk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJl
YWRzTXV0ZXgoKSk7CiAgICAgICAgIHNjcmlwdFJlZiA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKHNjcmlwdCk7CiAgICAgfQogCiAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgewot
ICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7
CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkp
OwogICAgICAgICAgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOwogICAgICAgICAgICAgSlNF
dmFsdWF0ZVNjcmlwdChjdHgsIHNjcmlwdFJlZiwgMCwgMCwgMSwgJmV4Y2VwdGlvbik7CiAgICAg
ICAgICAgICBBU1NFUlQoIWV4Y2VwdGlvbik7CiAgICAgICAgIH0KIAogICAgICAgICB7Ci0gICAg
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAg
ICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAg
ICAgICAgICAgICBjb25zdCBzaXplX3QgdmFsdWVzQ291bnQgPSAxMDI0OwogICAgICAgICAgICAg
SlNWYWx1ZVJlZiB2YWx1ZXNbdmFsdWVzQ291bnRdOwogICAgICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCB2YWx1ZXNDb3VudDsgKytpKQpAQCAtOTcsNyArOTcsNyBAQCB2b2lkIHJ1bkph
dmFTY3JpcHRUaHJlYWQodm9pZCopCiAgICAgICAgIH0KIAogICAgICAgICB7Ci0gICAgICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgICAg
ICAgICBpZiAoamF2YVNjcmlwdFRocmVhZHNTaG91bGRUZXJtaW5hdGUpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIHJ1bkphdmFTY3Jp
cHRUaHJlYWQodm9pZCopCiAgICAgICAgIGlmIChyYW5kKCkgJSA1KQogICAgICAgICAgICAgY29u
dGludWU7CiAKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0
ZXgoKSk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgo
KSk7CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkID0gY3VycmVudFRocmVhZCgpOwog
ICAgICAgICBkZXRhY2hUaHJlYWQodGhyZWFkKTsKICAgICAgICAgamF2YVNjcmlwdFRocmVhZHMo
KS5yZW1vdmUodGhyZWFkKTsKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIHJ1bkphdmFTY3JpcHRU
aHJlYWQodm9pZCopCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKGph
dmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgSlNTdHJpbmdSZWxlYXNlKHNjcmlwdFJlZik7
CiAgICAgSlNHYXJiYWdlQ29sbGVjdChjdHgpOwogICAgIEpTR2xvYmFsQ29udGV4dFJlbGVhc2Uo
Y3R4KTsKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIHN0YXJ0SmF2YVNjcmlwdFRocmVhZHMoKQog
ewogICAgIGphdmFTY3JpcHRUaHJlYWRzR3JvdXAgPSBKU0NvbnRleHRHcm91cENyZWF0ZSgpOwog
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKIAogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgamF2YVNjcmlwdFRocmVhZHNDb3VudDsgKytpKQogICAgICAgICBq
YXZhU2NyaXB0VGhyZWFkcygpLmFkZChjcmVhdGVUaHJlYWQoJnJ1bkphdmFTY3JpcHRUaHJlYWQs
IDAsIDApKTsKQEAgLTEzMywxMyArMTMzLDEzIEBAIHZvaWQgc3RhcnRKYXZhU2NyaXB0VGhyZWFk
cygpCiB2b2lkIHN0b3BKYXZhU2NyaXB0VGhyZWFkcygpCiB7CiAgICAgewotICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgamF2YVNjcmlw
dFRocmVhZHNTaG91bGRUZXJtaW5hdGUgPSB0cnVlOwogICAgIH0KIAogICAgIFZlY3RvcjxUaHJl
YWRJZGVudGlmaWVyLCBqYXZhU2NyaXB0VGhyZWFkc0NvdW50PiB0aHJlYWRzOwogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgICAg
IGNvcHlUb1ZlY3RvcihqYXZhU2NyaXB0VGhyZWFkcygpLCB0aHJlYWRzKTsKICAgICAgICAgQVNT
RVJUKHRocmVhZHMuc2l6ZSgpID09IGphdmFTY3JpcHRUaHJlYWRzQ291bnQpOwogICAgIH0KQEAg
LTE0OCw3ICsxNDgsNyBAQCB2b2lkIHN0b3BKYXZhU2NyaXB0VGhyZWFkcygpCiAgICAgICAgIHdh
aXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVhZHNbaV0pOwogCiAgICAgewotICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgamF2YVNjcmlw
dFRocmVhZHMoKS5jbGVhcigpOwogICAgIH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3
ICs0MCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBkaXNwYXRjaEFmdGVyTGFiZWwgPSAKICAgICAK
IFRFU1QoV1RGX1dvcmtRdWV1ZSwgU2ltcGxlKQogewotICAgIE11dGV4IG1fbG9jazsKKyAgICBM
b2NrIG1fbG9jazsKICAgICBUaHJlYWRDb25kaXRpb24gbV90ZXN0Q29tcGxldGVkOwogICAgIFZl
Y3RvcjxzdGQ6OnN0cmluZz4gbV9mdW5jdGlvbkNhbGxPcmRlcjsKIApAQCAtNTYsNyArNTYsNyBA
QCBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICBpbnQgaW5pdGlhbFJlZkNvdW50ID0g
cXVldWUtPnJlZkNvdW50KCk7CiAgICAgRVhQRUNUX0VRKDEsIGluaXRpYWxSZWZDb3VudCk7CiAK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X2xvY2spOwogICAgIHF1ZXVlLT5kaXNwYXRjaChbJl0odm9pZCkgewogICAgICAgICBtX2Z1bmN0
aW9uQ2FsbE9yZGVyLmFwcGVuZChzaW1wbGVUZXN0TGFiZWwpOwogICAgICAgICBjYWxsZWRTaW1w
bGVUZXN0ID0gdHJ1ZTsKQEAgLTY5LDcgKzY5LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBTaW1w
bGUpCiAgICAgfSk7CiAKICAgICBxdWV1ZS0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKLSAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bG9jayk7CiAgICAgICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIuYXBwZW5kKHRoaXJkVGVzdExhYmVs
KTsKICAgICAgICAgY2FsbGVkVGhpcmRUZXN0ID0gdHJ1ZTsKIApAQCAtOTYsNyArOTYsNyBAQCBU
RVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKIAogVEVTVChXVEZfV29ya1F1ZXVlLCBUd29RdWV1
ZXMpCiB7Ci0gICAgTXV0ZXggbV9sb2NrOworICAgIExvY2sgbV9sb2NrOwogICAgIFRocmVhZENv
bmRpdGlvbiBtX3Rlc3RRdWV1ZTFDb21wbGV0ZWQsIG1fdGVzdFF1ZXVlMkNvbXBsZXRlZDsKICAg
ICBWZWN0b3I8c3RkOjpzdHJpbmc+IG1fZnVuY3Rpb25DYWxsT3JkZXI7CiAKQEAgLTExMCw3ICsx
MTAsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFR3b1F1ZXVlcykKICAgICBFWFBFQ1RfRVEoMSwg
cXVldWUxLT5yZWZDb3VudCgpKTsKICAgICBFWFBFQ1RfRVEoMSwgcXVldWUyLT5yZWZDb3VudCgp
KTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fbG9jayk7CiAgICAgCiAgICAgcXVldWUxLT5kaXNwYXRjaChbJl0odm9pZCkgewogICAg
ICAgICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZChzaW1wbGVUZXN0TGFiZWwpOwpAQCAtMTIw
LDcgKzEyMCw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgVHdvUXVldWVzKQogICAgIHF1ZXVlMi0+
ZGlzcGF0Y2goWyZdKHZvaWQpIHsKICAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9y
KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTApKTsKIAotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKIAogICAg
ICAgICAvLyBXaWxsIGZhaWwgaWYgcXVldWUyIHRvb2sgdGhlIG11dGV4IGJlZm9yZSBxdWV1ZTEu
CiAgICAgICAgIEVYUEVDVF9UUlVFKGNhbGxlZFRoaXJkVGVzdCk7CkBAIC0xMzEsNyArMTMxLDcg
QEAgVEVTVChXVEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMpCiAgICAgfSk7CiAKICAgICBxdWV1ZTEt
PmRpc3BhdGNoKFsmXSh2b2lkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2sp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBtX2Z1bmN0aW9u
Q2FsbE9yZGVyLmFwcGVuZCh0aGlyZFRlc3RMYWJlbCk7CiAgICAgICAgIGNhbGxlZFRoaXJkVGVz
dCA9IHRydWU7CiAgICAgICAgIApAQCAtMTU4LDcgKzE1OCw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1
ZSwgVHdvUXVldWVzKQogCiBURVNUKFdURl9Xb3JrUXVldWUsIERpc3BhdGNoQWZ0ZXIpCiB7Ci0g
ICAgTXV0ZXggbV9sb2NrOworICAgIExvY2sgbV9sb2NrOwogICAgIFRocmVhZENvbmRpdGlvbiBt
X3Rlc3RDb21wbGV0ZWQsIG1fZGlzcGF0Y2hBZnRlclRlc3RDb21wbGV0ZWQ7CiAgICAgVmVjdG9y
PHN0ZDo6c3RyaW5nPiBtX2Z1bmN0aW9uQ2FsbE9yZGVyOwogCkBAIC0xNjcsMTcgKzE2NywxNyBA
QCBURVNUKFdURl9Xb3JrUXVldWUsIERpc3BhdGNoQWZ0ZXIpCiAKICAgICBhdXRvIHF1ZXVlID0g
V29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5kaXNwYXRjaEFmdGVyIik7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2xvY2spOwogCiAgICAgcXVldWUtPmRpc3BhdGNoKFsmXSh2b2lkKSB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xv
Y2spOwogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZChzaW1wbGVUZXN0TGFiZWwp
OwogICAgICAgICBjYWxsZWRTaW1wbGVUZXN0ID0gdHJ1ZTsKICAgICAgICAgbV90ZXN0Q29tcGxl
dGVkLnNpZ25hbCgpOwogICAgIH0pOwogCiAgICAgcXVldWUtPmRpc3BhdGNoQWZ0ZXIoc3RkOjpj
aHJvbm86Om1pbGxpc2Vjb25kcyg1MDApLCBbJl0odm9pZCkgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAg
ICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQoZGlzcGF0Y2hBZnRlckxhYmVsKTsKICAg
ICAgICAgY2FsbGVkRGlzcGF0Y2hBZnRlclRlc3QgPSB0cnVlOwogICAgICAgICBtX2Rpc3BhdGNo
QWZ0ZXJUZXN0Q29tcGxldGVkLnNpZ25hbCgpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCShyZXZpc2lvbiAxODg1
MTApCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKIFRFU1QoV1RGX1dvcmtRdWV1ZSwgQXN5bmNJTykKIHsKICAgICBzdHJ1Y3QgVGVzdGlu
Z0NvbnRleHQgewotICAgICAgICBNdXRleCBtX2xvY2s7CisgICAgICAgIExvY2sgbV9sb2NrOwog
ICAgICAgICBUaHJlYWRDb25kaXRpb24gbV90ZXN0Q29tcGxldGVkOwogICAgICAgICBHTWFpbkNv
bnRleHQqIG1fbWFpbkNvbnRleHQ7CiAgICAgfSBjb250ZXh0OwpAQCAtNDksNyArNDksNyBAQCBU
RVNUKFdURl9Xb3JrUXVldWUsIEFzeW5jSU8pCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjdXJyZW50
RGlyZWN0b3J5KGdfZ2V0X2N1cnJlbnRfZGlyKCkpOwogICAgIEdSZWZQdHI8R0ZpbGU+IGZpbGUg
PSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChjdXJyZW50RGlyZWN0b3J5LmdldCgpKSk7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIoY29udGV4dC5tX2xvY2spOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKGNvbnRleHQubV9sb2NrKTsKICAgICBxdWV1ZS0+ZGlzcGF0Y2goWyZdKHZvaWQp
IHsKICAgICAgICAgRVhQRUNUX1RSVUUoZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0
KCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShnX21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1
bHQoKSAhPSBjb250ZXh0Lm1fbWFpbkNvbnRleHQpOwpAQCAtNTcsNyArNTcsNyBAQCBURVNUKFdU
Rl9Xb3JrUXVldWUsIEFzeW5jSU8pCiAgICAgICAgIGdfZmlsZV9xdWVyeV9pbmZvX2FzeW5jKGZp
bGUuZ2V0KCksIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfU0laRSwgR19GSUxFX1FVRVJZX0lO
Rk9fTk9ORSwgR19QUklPUklUWV9ERUZBVUxULCBudWxscHRyLAogICAgICAgICAgICAgW10oR09i
amVjdCosIEdBc3luY1Jlc3VsdCosIGdwb2ludGVyIHVzZXJEYXRhKSB7CiAgICAgICAgICAgICAg
ICAgVGVzdGluZ0NvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxUZXN0aW5nQ29udGV4dCo+
KHVzZXJEYXRhKTsKLSAgICAgICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoY29udGV4dC0+
bV9sb2NrKTsKKyAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihjb250ZXh0LT5tX2xv
Y2spOwogICAgICAgICAgICAgICAgIEVYUEVDVF9FUShnX21haW5fY29udGV4dF9nZXRfdGhyZWFk
X2RlZmF1bHQoKSwgY29udGV4dC0+bV9tYWluQ29udGV4dCk7CiAgICAgICAgICAgICAgICAgY29u
dGV4dC0+bV90ZXN0Q29tcGxldGVkLnNpZ25hbCgpOwogICAgICAgICAgICAgfSwgJmNvbnRleHQp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259197</attachid>
            <date>2015-08-17 16:03:10 -0700</date>
            <delta_ts>2015-08-17 20:37:24 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>203016</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxODg1NDgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RG
OjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBhbHNvIGJlZWZzIHVwIGFuZCByYXRpb25hbGl6ZXMgdGhlIENv
bmRpdGlvbiBBUEksIHNvIHRoYXQgaXQgY2FuIGRlYWwgd2l0aCB1bml0cyBvZiB0aW1lCisgICAg
ICAgIG90aGVyIHRoYW4ganVzdCBzdGVhZHlfY2xvY2suIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRv
IHBvcnQgVGhyZWFkQ29uZGl0aW9uIGFuZAorICAgICAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJs
ZSBjb2RlIG92ZXIgdG8gQ29uZGl0aW9uLiBUaGlzIHBhdGNoIGRvZXMgbm90IHRha2UgYSBwb3Np
dGlvbiBvbiB3aGF0CisgICAgICAgIGtpbmQgb2YgdGltZSBpcyBiZXN0OyBmcm9tIHJlYWRpbmcg
YSBsb3Qgb2YgdGhlIHVzZXMgaW4gV2ViQ29yZSwgaXQgc2VlbXMgbGlrZSBvdXIgdXNlIG9mCisg
ICAgICAgIGRvdWJsZSB0byBtZWFzdXJlIHNlY29uZHMgaXMgb2Z0ZW4gbmljZXIgdGhhbiB0aGUg
bWFueSBkaWZmZXJlbnQgY2xhc3NlcyBpbiBzdGQ6OmNocm9uby4KKworICAgICAgICAqIHd0Zi9D
b25kaXRpb24uaDoKKyAgICAgICAgKFdURjo6Q29uZGl0aW9uOjpDb25kaXRpb24pOgorICAgICAg
ICAoV1RGOjpDb25kaXRpb246OndhaXRVbnRpbCk6CisgICAgICAgIChXVEY6OkNvbmRpdGlvbjo6
d2FpdEZvcik6CisgICAgICAgIChXVEY6OkNvbmRpdGlvbjo6d2FpdCk6CisgICAgICAgIChXVEY6
OkNvbmRpdGlvbjo6d2FpdFVudGlsV2FsbENsb2NrU2Vjb25kcyk6CisgICAgICAgIChXVEY6OkNv
bmRpdGlvbjo6d2FpdFVudGlsTW9ub3RvbmljQ2xvY2tTZWNvbmRzKToKKyAgICAgICAgKFdURjo6
Q29uZGl0aW9uOjpub3RpZnlPbmUpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246Om5vdGlmeUFs
bCk6CisgICAgICAgIChXVEY6OkNvbmRpdGlvbjo6d2FpdEZvclNlY29uZHNJbXBsKToKKyAgICAg
ICAgKFdURjo6Q29uZGl0aW9uOjp3YWl0Rm9ySW1wbCk6CisgICAgICAgIChXVEY6OkNvbmRpdGlv
bjo6YWJzb2x1dGVGcm9tUmVsYXRpdmUpOgorICAgICAgICAqIHd0Zi9NZXNzYWdlUXVldWUuaDoK
KyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlOjppbmZpbml0ZVRpbWUpOgorICAgICAgICAoV1RG
OjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjphcHBlbmQpOgorICAgICAgICAoV1RGOjpNZXNzYWdl
UXVldWU8RGF0YVR5cGU+OjphcHBlbmRBbmRLaWxsKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1
ZXVlPERhdGFUeXBlPjo6YXBwZW5kQW5kQ2hlY2tFbXB0eSk6CisgICAgICAgIChXVEY6Ok1lc3Nh
Z2VRdWV1ZTxEYXRhVHlwZT46OnByZXBlbmQpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8
RGF0YVR5cGU+OjpyZW1vdmVJZik6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlw
ZT46OmlzRW1wdHkpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpraWxs
KToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbGVkKToKKyAgICAg
ICAgKiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVs
RW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OmV4ZWN1dGUpOgorICAgICAgICAoV1RGOjpQYXJh
bGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp3YWl0Rm9yRmluaXNoKToKKyAgICAgICAg
KFdURjo6UGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d29ya2VyVGhyZWFkKToK
KyAgICAgICAgKiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oOgorICAgICAgICAqIHd0Zi9QYXJr
aW5nTG90LmNwcDoKKyAgICAgICAgKFdURjo6UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHkp
OgorICAgICAgICAqIHd0Zi9QYXJraW5nTG90Lmg6CisgICAgICAgIChXVEY6OlBhcmtpbmdMb3Q6
OmNvbXBhcmVBbmRQYXJrKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOgor
ICAgICAgICAoV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKToKKyAgICAgICAgKiB3dGYvVGhyZWFk
aW5nV2luLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZyk6CisgICAgICAg
ICogd3RmL2R0b2EuY3BwOgorICAgICAgICAoV1RGOjpwb3c1bXVsdCk6CisgICAgICAgICogd3Rm
L2R0b2EuaDoKKwogMjAxNS0wOC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIE1vdmUgc29tZSBjb21tYW5kcyBmcm9tIC4vQ01ha2VMaXN0
cy50eHQgdG8gU291cmNlL2NtYWtlCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAkocmV2aXNpb24gMTg4NTEw
KQorKysgU291cmNlL1dURi93dGYvQ29uZGl0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDI2
ICsyOSw1OSBAQAogI2luY2x1ZGUgPGNocm9ubz4KICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2lu
Y2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0
Zi9QYXJraW5nTG90Lmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBDb25kaXRpb24gewog
cHVibGljOgorICAgIHR5cGVkZWYgUGFya2luZ0xvdDo6Q2xvY2sgQ2xvY2s7CisgICAgCiAgICAg
Q29uZGl0aW9uKCkgeyB9CiAKICAgICAvLyBXYWl0IG9uIGEgcGFya2luZyBxdWV1ZSB3aGlsZSBy
ZWxlYXNpbmcgdGhlIGdpdmVuIGxvY2suIEl0IHdpbGwgdW5sb2NrIHRoZSBsb2NrIGp1c3QgYmVm
b3JlCiAgICAgLy8gcGFya2luZywgYW5kIHJlbG9jayBpdCB1cG9uIHdha2V1cC4gUmV0dXJucyB0
cnVlIGlmIHdlIHdva2UgdXAgZHVlIHRvIHNvbWUgY2FsbCB0bwotICAgIC8vIG5vdGlmeU9uZSgp
IG9yIG5vdGlmeUFsbCgpLiBSZXR1cm5zIGZhbHNlIGlmIHdlIHdva2UgdXAgZHVlIHRvIGEgdGlt
ZW91dC4KKyAgICAvLyBub3RpZnlPbmUoKSBvciBub3RpZnlBbGwoKS4gUmV0dXJucyBmYWxzZSBp
ZiB3ZSB3b2tlIHVwIGR1ZSB0byBhIHRpbWVvdXQuIE5vdGUgdGhhdCB0aGlzIGZvcm0KKyAgICAv
LyBvZiB3YWl0VW50aWwoKSBoYXMgc29tZSBxdWlya3M6CisgICAgLy8KKyAgICAvLyBObyBzcHVy
aW91cyB3YWtlLXVwOiBpbiBvcmRlciBmb3IgdGhpcyB0byByZXR1cm4gYmVmb3JlIHRoZSB0aW1l
b3V0LCBzb21lIG5vdGlmeU9uZSgpIG9yCisgICAgLy8gbm90aWZ5QWxsKCkgY2FsbCBtdXN0IGhh
dmUgaGFwcGVuZWQuIE5vIHNjZW5hcmlvIG90aGVyIHRoYW4gdGltZW91dCBvciBub3RpZnkgY2Fu
IGxlYWQgdG8gdGhpcworICAgIC8vIG1ldGhvZCByZXR1cm5pbmcuIFRoaXMgbWVhbnMsIGZvciBl
eGFtcGxlLCB0aGF0IHlvdSBjYW4ndCB1c2UgcHRocmVhZCBjYW5jZWxhdGlvbiBvciBzaWduYWxz
IHRvCisgICAgLy8gY2F1c2UgZWFybHkgcmV0dXJuLgorICAgIC8vCisgICAgLy8gUGFzdCB0aW1l
b3V0OiBpdCdzIHBvc3NpYmxlIGZvciB3YWl0VW50aWwoKSB0byBiZSBjYWxsZWQgd2l0aCBhIHRp
bWVvdXQgaW4gdGhlIHBhc3QuIEluIHRoYXQKKyAgICAvLyBjYXNlLCB3YWl0VW50aWwoKSB3aWxs
IHN0aWxsIHJlbGVhc2UgdGhlIGxvY2sgYW5kIHJlYWNxdWlyZSBpdC4gd2FpdFVudGlsKCkgd2ls
bCBhbHdheXMgcmV0dXJuCisgICAgLy8gZmFsc2UgaW4gdGhhdCBjYXNlLiBUaGlzIGlzIHN1YnRs
eSBkaWZmZXJlbnQgZnJvbSBzb21lIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSBpbXBsZW1lbnRh
dGlvbnMsCisgICAgLy8gd2hpY2ggbWF5IG5vdCByZWxlYXNlIHRoZSBsb2NrIGZvciBwYXN0IHRp
bWVvdXQuIEJ1dCwgdGhpcyBiZWhhdmlvciBpcyBjb25zaXN0ZW50IHdpdGggT3Blbkdyb3VwCisg
ICAgLy8gZG9jdW1lbnRhdGlvbiBmb3IgdGltZWR3YWl0KCkuCisgICAgLy8KKyAgICAvLyBNYXkg
d2FpdCB0b28gbG9uZyBvbiBzb21lIE9TZXM6IHRoZSBDKysgc3RhbmRhcmQgbGlicmFyeSBpbXBs
ZW1lbnRhdGlvbiBvZgorICAgIC8vIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlOjp3YWl0X3VudGls
KCksIHdoaWNoIHRoaXMgdXNlcyBpbnRlcm5hbGx5LCBtYXkgY29udmVydCB0aGUgYWJzb2x1dGUK
KyAgICAvLyB0aW1lIHRvIGFuIGFic29sdXRlIHRpbWUgYWNjb3JkaW5nIHRvIHRoZSBzeXN0ZW0g
Y2xvY2ssIHdoaWNoIGlzbid0IG1vbm90b25pYy4gSXQgd2lsbCBkbyB0aGlzCisgICAgLy8gc28g
dGhhdCBpdCBjYW4gdXNlIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKS4gRGVwZW5kaW5nIG9uIHRo
ZSBPUyBhbmQgaWYgYW4gdW5mb3J0dW5hdGUKKyAgICAvLyBjb21iaW5hdGlvbiBvZiB0aHJlYWQg
aW50ZXJsZWF2aW5ncyBhbmQgc3lzdGVtIHRpbWUgY2hhbmdlcyBoYXBwZW5zLCB0aGlzIG1heSBj
YXVzZSB3YWl0VW50aWwoKQorICAgIC8vIHRvIHdhaXQgbG9uZ2VyIHRoYW4gaXQncyBzdXBwb3Nl
ZCB0by4gSG93ZXZlciwgaXQncyB0eXBpY2FsIGZvciBPU2VzIHRvIHR1cm4gdGhlIGFic29sdXRl
CisgICAgLy8gdGltZW91dCBpbiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gYSByZWxhdGl2
ZSB0aW1lb3V0IGJlZm9yZSBjYWxsaW5nIGludG8gdGhlIGtlcm5lbC4gVGhpcworICAgIC8vIGlz
IHdoYXQgZ2xpYmMgZG9lcywgZm9yIGV4YW1wbGUuCisgICAgLy8KKyAgICAvLyBUaGVzZSBxdWly
a3MgYXJlIGdlbmVyYWxseSBub3Qgd29ydGggd29ycnlpbmcgdG9vIG11Y2ggYWJvdXQuIFRoZSBm
YWN0IHRoYXQgc29tZSBPU2VzIHBlcmZvcm0KKyAgICAvLyBjb252ZXJzaW9ucyB0byBhbiBhYnNv
bHV0ZSBub24tbW9ub3RvbmljIHRpbWUgaXMgdW5saWtlbHkgdG8gY2F1c2UgaXNzdWVzIGJlY2F1
c2UgdGhleSB1c3VhbGx5CisgICAgLy8ganVzdCBkbyB0aGF0IGFzIHBhcnQgb2YgYSBjb252ZXJz
aW9uIHRvIGEgcmVsYXRpdmUgc2xlZXAgYW1vdW50IGluIHRoZSBrZXJuZWwuCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgTG9ja1R5cGU+Ci0gICAgYm9vbCB3YWl0VW50aWwoCi0gICAgICAgIExvY2tU
eXBlJiBsb2NrLCBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQp
CisgICAgYm9vbCB3YWl0VW50aWwoTG9ja1R5cGUmIGxvY2ssIENsb2NrOjp0aW1lX3BvaW50IHRp
bWVvdXQpCiAgICAgewotICAgICAgICBib29sIHJlc3VsdCA9IFBhcmtpbmdMb3Q6OnBhcmtDb25k
aXRpb25hbGx5KAotICAgICAgICAgICAgJm1fZHVtbXksCi0gICAgICAgICAgICBbXSAoKSAtPiBi
b29sIHsgcmV0dXJuIHRydWU7IH0sCi0gICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxv
Y2soKTsgfSwKLSAgICAgICAgICAgIHRpbWVvdXQpOworICAgICAgICBib29sIHJlc3VsdDsKKyAg
ICAgICAgaWYgKHRpbWVvdXQgPCBDbG9jazo6bm93KCkpIHsKKyAgICAgICAgICAgIGxvY2sudW5s
b2NrKCk7CisgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIHJlc3VsdCA9IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAorICAgICAg
ICAgICAgICAgICZtX2R1bW15LAorICAgICAgICAgICAgICAgIFtdICgpIC0+IGJvb2wgeyByZXR1
cm4gdHJ1ZTsgfSwKKyAgICAgICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsg
fSwKKyAgICAgICAgICAgICAgICB0aW1lb3V0KTsKKyAgICAgICAgfQogICAgICAgICBsb2NrLmxv
Y2soKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CkBAIC01Niw4ICs4OSw3IEBAIHB1
YmxpYzoKICAgICAvLyBXYWl0IHVudGlsIHRoZSBnaXZlbiBwcmVkaWNhdGUgaXMgc2F0aXNmaWVk
LiBSZXR1cm5zIHRydWUgaWYgaXQgaXMgc2F0aXNmaWVkIGluIHRoZSBlbmQuCiAgICAgLy8gTWF5
IHJldHVybiBlYXJseSBkdWUgdG8gdGltZW91dC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2Nr
VHlwZSwgdHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBib29sIHdhaXRVbnRpbCgKLSAgICAgICAgTG9j
a1R5cGUmIGxvY2ssIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgdGltZW91
dCwgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKQorICAgIGJvb2wgd2FpdFVudGlsKExvY2tUeXBl
JiBsb2NrLCBDbG9jazo6dGltZV9wb2ludCB0aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNh
dGUpCiAgICAgewogICAgICAgICB3aGlsZSAoIXByZWRpY2F0ZSgpKSB7CiAgICAgICAgICAgICBp
ZiAoIXdhaXRVbnRpbChsb2NrLCB0aW1lb3V0KSkKQEAgLTcyLDE3ICsxMDQsMTMgQEAgcHVibGlj
OgogICAgIGJvb2wgd2FpdEZvcigKICAgICAgICAgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0
aW9uVHlwZSYgcmVsYXRpdmVUaW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAg
ewotICAgICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IGFic29sdXRl
VGltZW91dCA9Ci0gICAgICAgICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSAr
Ci0gICAgICAgICAgICBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6c3Rl
YWR5X2Nsb2NrOjpkdXJhdGlvbj4ocmVsYXRpdmVUaW1lb3V0KTsKLQotICAgICAgICByZXR1cm4g
d2FpdFVudGlsKGxvY2ssIGFic29sdXRlVGltZW91dCwgcHJlZGljYXRlKTsKKyAgICAgICAgcmV0
dXJuIHdhaXRVbnRpbChsb2NrLCBhYnNvbHV0ZUZyb21SZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQp
LCBwcmVkaWNhdGUpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgog
ICAgIHZvaWQgd2FpdChMb2NrVHlwZSYgbG9jaykKICAgICB7Ci0gICAgICAgIHdhaXRVbnRpbChs
b2NrLCBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7CisgICAg
ICAgIHdhaXRVbnRpbChsb2NrLCBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlLCB0eXBlbmFtZSBGdW5jdG9yPgpAQCAtOTIs
NiArMTIwLDMyIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHdhaXQobG9jayk7CiAgICAgfQogCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVuYW1lIFRpbWVUeXBlPgorICAgIGJv
b2wgd2FpdFVudGlsKExvY2tUeXBlJiBsb2NrLCBjb25zdCBUaW1lVHlwZSYgdGltZW91dCkKKyAg
ICB7CisgICAgICAgIGlmICh0aW1lb3V0ID09IFRpbWVUeXBlOjptYXgoKSkgeworICAgICAgICAg
ICAgd2FpdChsb2NrKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiB3YWl0Rm9ySW1wbChsb2NrLCB0aW1lb3V0IC0gVGltZVR5cGU6OmNsb2NrOjpu
b3coKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+CisgICAgYm9v
bCB3YWl0VW50aWxXYWxsQ2xvY2tTZWNvbmRzKExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1
dGVUaW1lb3V0U2Vjb25kcykKKyAgICB7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0lt
cGwobG9jaywgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcyAtIGN1cnJlbnRUaW1lKCkpOworICAgIH0K
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsTW9u
b3RvbmljQ2xvY2tTZWNvbmRzKExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0
U2Vjb25kcykKKyAgICB7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywg
YWJzb2x1dGVUaW1lb3V0U2Vjb25kcyAtIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsK
KyAgICB9CisKKyAgICAvLyBGSVhNRTogV2UgY291bGQgcmVwbGFjZSB0aGUgZHVtbXkgYnl0ZSB3
aXRoIGEgYm9vbGVhbiB0byB0ZWxsIHVzIGlmIHRoZXJlIGlzIGFueW9uZSB3YWl0aW5nCisgICAg
Ly8gcmlnaHQgbm93LiBUaGlzIGNvdWxkIGJlIHVzZWQgdG8gaW1wbGVtZW50IGEgZmFzdCBwYXRo
IGZvciBub3RpZnlPbmUoKSBhbmQgbm90aWZ5QWxsKCkuCisgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODA5MAorCiAgICAgdm9pZCBub3RpZnlPbmUoKQog
ICAgIHsKICAgICAgICAgUGFya2luZ0xvdDo6dW5wYXJrT25lKCZtX2R1bW15KTsKQEAgLTEwMyw3
ICsxNTcsNDAgQEAgcHVibGljOgogICAgIH0KICAgICAKIHByaXZhdGU6CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgTG9ja1R5cGU+CisgICAgYm9vbCB3YWl0Rm9yU2Vjb25kc0ltcGwoTG9ja1R5cGUm
IGxvY2ssIGRvdWJsZSByZWxhdGl2ZVRpbWVvdXRTZWNvbmRzKQorICAgIHsKKyAgICAgICAgYXV0
byByZWxhdGl2ZVRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMoCisgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxpbnQ2NF90PihyZWxhdGl2ZVRpbWVvdXRTZWNvbmRzICogKDEwMDAuMCAq
IDEwMDAuMCAqIDEwMDAuMCkpKTsKKworICAgICAgICByZXR1cm4gd2FpdEZvckltcGwobG9jaywg
cmVsYXRpdmVUaW1lb3V0KTsKKyAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9j
a1R5cGUsIHR5cGVuYW1lIER1cmF0aW9uVHlwZT4KKyAgICBib29sIHdhaXRGb3JJbXBsKExvY2tU
eXBlJiBsb2NrLCBjb25zdCBEdXJhdGlvblR5cGUmIHJlbGF0aXZlVGltZW91dCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB3YWl0VW50aWwobG9jaywgYWJzb2x1dGVGcm9tUmVsYXRpdmUocmVsYXRp
dmVUaW1lb3V0KSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRHVyYXRpb25UeXBl
PgorICAgIENsb2NrOjp0aW1lX3BvaW50IGFic29sdXRlRnJvbVJlbGF0aXZlKGNvbnN0IER1cmF0
aW9uVHlwZSYgcmVsYXRpdmVUaW1lb3V0KQorICAgIHsKKyAgICAgICAgaWYgKHJlbGF0aXZlVGlt
ZW91dCA8IER1cmF0aW9uVHlwZTo6emVybygpKQorICAgICAgICAgICAgcmV0dXJuIENsb2NrOjp0
aW1lX3BvaW50OjptaW4oKTsKKworICAgICAgICBpZiAocmVsYXRpdmVUaW1lb3V0ID4gQ2xvY2s6
OmR1cmF0aW9uOjptYXgoKSkgeworICAgICAgICAgICAgLy8gVGhpcyBpcyBoaWdobHkgdW5saWtl
bHkuIEJ1dCBpZiBpdCBoYXBwZW5zLCB3ZSB3YW50IHRvIG5vdCBkbyBhbnl0aGluZyBkdW1iLiBT
bGVlcGluZworICAgICAgICAgICAgLy8gd2l0aG91dCBhIHRpbWVvdXQgc2VlbXMgc2Vuc2libGUg
d2hlbiB0aGUgdGltZW91dCBkdXJhdGlvbiBpcyBncmVhdGVyIHRoYW4gd2hhdCBjYW4gYmUKKyAg
ICAgICAgICAgIC8vIGV4cHJlc3NlZCB1c2luZyBzdGVhZHlfY2xvY2suCisgICAgICAgICAgICBy
ZXR1cm4gQ2xvY2s6OnRpbWVfcG9pbnQ6Om1heCgpOworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICBDbG9jazo6ZHVyYXRpb24gbXlSZWxhdGl2ZVRpbWVvdXQgPQorICAgICAgICAgICAgc3Rk
OjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8Q2xvY2s6OmR1cmF0aW9uPihyZWxhdGl2ZVRpbWVvdXQp
OworCisgICAgICAgIHJldHVybiBDbG9jazo6bm93KCkgKyBteVJlbGF0aXZlVGltZW91dDsKKyAg
ICB9CisKICAgICB1aW50OF90IG1fZHVtbXk7CiB9OwogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9N
ZXNzYWdlUXVldWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUu
aAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMy
LDcgKzMyLDkgQEAKIAogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
KyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAtNzcsOCArNzksOCBAQCBuYW1lc3BhY2UgV1RG
IHsKICAgICAgICAgc3RhdGljIGRvdWJsZSBpbmZpbml0ZVRpbWUoKSB7IHJldHVybiBzdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46Om1heCgpOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBt
dXRhYmxlIE11dGV4IG1fbXV0ZXg7Ci0gICAgICAgIFRocmVhZENvbmRpdGlvbiBtX2NvbmRpdGlv
bjsKKyAgICAgICAgbXV0YWJsZSBMb2NrIG1fbXV0ZXg7CisgICAgICAgIENvbmRpdGlvbiBtX2Nv
bmRpdGlvbjsKICAgICAgICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPj4gbV9xdWV1
ZTsKICAgICAgICAgYm9vbCBtX2tpbGxlZDsKICAgICB9OwpAQCAtOTEsMzcgKzkzLDM3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGlu
ZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8RGF0
YVR5cGU+IG1lc3NhZ2UpCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIG1fcXVldWUuYXBw
ZW5kKFdURjo6bW92ZShtZXNzYWdlKSk7Ci0gICAgICAgIG1fY29uZGl0aW9uLnNpZ25hbCgpOwor
ICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEYXRhVHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+
OjphcHBlbmRBbmRLaWxsKHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9jayhtX211dGV4KTsKICAgICAgICAgbV9xdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKG1lc3NhZ2Up
KTsKICAgICAgICAgbV9raWxsZWQgPSB0cnVlOwotICAgICAgICBtX2NvbmRpdGlvbi5icm9hZGNh
c3QoKTsKKyAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgfQogCiAgICAgLy8g
UmV0dXJucyB0cnVlIGlmIHRoZSBxdWV1ZSB3YXMgZW1wdHkgYmVmb3JlIHRoZSBpdGVtIHdhcyBh
ZGRlZC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4KICAgICBpbmxpbmUgYm9vbCBN
ZXNzYWdlUXVldWU8RGF0YVR5cGU+OjphcHBlbmRBbmRDaGVja0VtcHR5KHN0ZDo6dW5pcXVlX3B0
cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9t
dXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgYm9vbCB3
YXNFbXB0eSA9IG1fcXVldWUuaXNFbXB0eSgpOwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEY6
Om1vdmUobWVzc2FnZSkpOwotICAgICAgICBtX2NvbmRpdGlvbi5zaWduYWwoKTsKKyAgICAgICAg
bV9jb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgICAgIHJldHVybiB3YXNFbXB0eTsKICAgICB9
CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNz
YWdlUXVldWU8RGF0YVR5cGU+OjpwcmVwZW5kKHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVz
c2FnZSkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9xdWV1ZS5wcmVwZW5kKFdURjo6
bW92ZShtZXNzYWdlKSk7Ci0gICAgICAgIG1fY29uZGl0aW9uLnNpZ25hbCgpOworICAgICAgICBt
X2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
YXRhVHlwZT4KQEAgLTEzNyw3ICsxMzksNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBQcmVkaWNhdGU+CiAgICAgaW5saW5lIGF1dG8gTWVzc2FnZVF1ZXVlPERhdGFU
eXBlPjo6d2FpdEZvck1lc3NhZ2VGaWx0ZXJlZFdpdGhUaW1lb3V0KE1lc3NhZ2VRdWV1ZVdhaXRS
ZXN1bHQmIHJlc3VsdCwgUHJlZGljYXRlJiYgcHJlZGljYXRlLCBkb3VibGUgYWJzb2x1dGVUaW1l
KSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+CiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAg
ICAgIGJvb2wgdGltZWRPdXQgPSBmYWxzZTsKIAogICAgICAgICBhdXRvIGZvdW5kID0gbV9xdWV1
ZS5lbmQoKTsKQEAgLTE0OSw3ICsxNTEsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgICAg
IGlmIChmb3VuZCAhPSBtX3F1ZXVlLmVuZCgpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0g
ICAgICAgICAgICB0aW1lZE91dCA9ICFtX2NvbmRpdGlvbi50aW1lZFdhaXQobV9tdXRleCwgYWJz
b2x1dGVUaW1lKTsKKyAgICAgICAgICAgIHRpbWVkT3V0ID0gIW1fY29uZGl0aW9uLndhaXRVbnRp
bFdhbGxDbG9ja1NlY29uZHMobV9tdXRleCwgYWJzb2x1dGVUaW1lKTsKICAgICAgICAgfQogCiAg
ICAgICAgIEFTU0VSVCghdGltZWRPdXQgfHwgYWJzb2x1dGVUaW1lICE9IGluZmluaXRlVGltZSgp
KTsKQEAgLTE3NCw3ICsxNzYsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEYXRhVHlwZT4KICAgICBpbmxpbmUgYXV0byBNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojp0
cnlHZXRNZXNzYWdlKCkgLT4gc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPgogICAgIHsKLSAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1f
bXV0ZXgpOwogICAgICAgICBpZiAobV9raWxsZWQpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAgICAgaWYgKG1fcXVldWUuaXNFbXB0eSgpKQpAQCAtMTg2LDcgKzE4OCw3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGlu
ZSBhdXRvIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OnRyeUdldE1lc3NhZ2VJZ25vcmluZ0tpbGxl
ZCgpIC0+IHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4KICAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAg
ICAgICAgaWYgKG1fcXVldWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKQEAgLTE5Nyw3ICsxOTksNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBQcmVkaWNhdGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6
cmVtb3ZlSWYoUHJlZGljYXRlJiYgcHJlZGljYXRlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAg
ICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICAgYXV0byBmb3VuZCA9IG1fcXVldWUuZmlu
ZElmKFsmcHJlZGljYXRlXShjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+JiBwdHIpIC0+
IGJvb2wgewogICAgICAgICAgICAgICAgIEFTU0VSVChwdHIpOwpAQCAtMjE0LDcgKzIxNiw3IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlu
bGluZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmlzRW1wdHkoKQogICAgIHsKLSAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1f
bXV0ZXgpOwogICAgICAgICBpZiAobV9raWxsZWQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgcmV0dXJuIG1fcXVldWUuaXNFbXB0eSgpOwpAQCAtMjIzLDE1ICsyMjUsMTUgQEAg
bmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5s
aW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbCgpCiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRl
eCk7CiAgICAgICAgIG1fa2lsbGVkID0gdHJ1ZTsKLSAgICAgICAgbV9jb25kaXRpb24uYnJvYWRj
YXN0KCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeUFsbCgpOwogICAgIH0KIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBib29sIE1lc3NhZ2VRdWV1ZTxE
YXRhVHlwZT46OmtpbGxlZCgpIGNvbnN0CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
KG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIHJl
dHVybiBtX2tpbGxlZDsKICAgICB9CiB9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
d3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDE3
ICsxMDUsMTcgQEAgYm9vbCBQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOgogCiB2
b2lkIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OmV4ZWN1dGUoVGhyZWFkRnVu
Y3Rpb24gdGhyZWFkRnVuY3Rpb24sIHZvaWQqIHBhcmFtZXRlcnMpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAKICAgICBt
X3RocmVhZEZ1bmN0aW9uID0gdGhyZWFkRnVuY3Rpb247CiAgICAgbV9wYXJhbWV0ZXJzID0gcGFy
YW1ldGVyczsKICAgICBtX3J1bm5pbmcgPSB0cnVlOwotICAgIG1fdGhyZWFkQ29uZGl0aW9uLnNp
Z25hbCgpOworICAgIG1fdGhyZWFkQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogfQogCiB2b2lkIFBh
cmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OndhaXRGb3JGaW5pc2goKQogewotICAg
IE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgp
OwogCiAgICAgd2hpbGUgKG1fcnVubmluZykKICAgICAgICAgbV90aHJlYWRDb25kaXRpb24ud2Fp
dChtX211dGV4KTsKQEAgLTEyNCwxNCArMTI0LDE0IEBAIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVu
dDo6VGhyZWFkUHJpdmF0ZToKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0
ZTo6d29ya2VyVGhyZWFkKHZvaWQqIHRocmVhZERhdGEpCiB7CiAgICAgVGhyZWFkUHJpdmF0ZSog
c2hhcmVkVGhyZWFkID0gcmVpbnRlcnByZXRfY2FzdDxUaHJlYWRQcml2YXRlKj4odGhyZWFkRGF0
YSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhzaGFyZWRUaHJlYWQtPm1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhzaGFyZWRUaHJlYWQtPm1fbXV0ZXgpOwogCiAgICAgd2hpbGUgKHNoYXJl
ZFRocmVhZC0+bV90aHJlYWRJRCkgewogICAgICAgICBpZiAoc2hhcmVkVGhyZWFkLT5tX3J1bm5p
bmcpIHsKICAgICAgICAgICAgICgqc2hhcmVkVGhyZWFkLT5tX3RocmVhZEZ1bmN0aW9uKShzaGFy
ZWRUaHJlYWQtPm1fcGFyYW1ldGVycyk7CiAgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1fcnVu
bmluZyA9IGZhbHNlOwogICAgICAgICAgICAgc2hhcmVkVGhyZWFkLT5tX3BhcmVudCA9IDA7Ci0g
ICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1fdGhyZWFkQ29uZGl0aW9uLnNpZ25hbCgpOworICAg
ICAgICAgICAgc2hhcmVkVGhyZWFkLT5tX3RocmVhZENvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAg
ICAgICAgfQogCiAgICAgICAgIHNoYXJlZFRocmVhZC0+bV90aHJlYWRDb25kaXRpb24ud2FpdChz
aGFyZWRUaHJlYWQtPm1fbXV0ZXgpOwpJbmRleDogU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2Jz
R2VuZXJpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVy
aWMuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2Vu
ZXJpYy5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw4ICs3Niw4IEBAIHB1YmxpYzoKICAgICAgICAg
Ym9vbCBtX3J1bm5pbmc7CiAgICAgICAgIFBhcmFsbGVsRW52aXJvbm1lbnQqIG1fcGFyZW50Owog
Ci0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29uZGl0aW9u
IG1fdGhyZWFkQ29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKKyAgICAg
ICAgQ29uZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOwogCiAgICAgICAgIFRocmVhZEZ1bmN0aW9u
IG1fdGhyZWFkRnVuY3Rpb247CiAgICAgICAgIHZvaWQqIG1fcGFyYW1ldGVyczsKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L1BhcmtpbmdMb3QuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV1RGL3d0Zi9QYXJr
aW5nTG90LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTExLDcgKzUxMSw3IEBAIGJvb2wgUGFya2lu
Z0xvdDo6cGFya0NvbmRpdGlvbmFsbHkoCiAgICAgY29uc3Qgdm9pZCogYWRkcmVzcywKICAgICBz
dGQ6OmZ1bmN0aW9uPGJvb2woKT4gdmFsaWRhdGlvbiwKICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQo
KT4gYmVmb3JlU2xlZXAsCi0gICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2lu
dCB0aW1lb3V0KQorICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiB7CiAgICAgaWYgKHZl
cmJvc2UpCiAgICAgICAgIGRhdGFMb2codG9TdHJpbmcoY3VycmVudFRocmVhZCgpLCAiOiBwYXJr
aW5nLlxuIikpOwpAQCAtNTM5LDExICs1MzksMTEgQEAgYm9vbCBQYXJraW5nTG90OjpwYXJrQ29u
ZGl0aW9uYWxseSgKICAgICBib29sIGRpZEdldERlcXVldWVkOwogICAgIHsKICAgICAgICAgc3Rk
Ojp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrZXIobWUtPnBhcmtpbmdMb2NrKTsKLSAgICAg
ICAgd2hpbGUgKG1lLT5hZGRyZXNzICYmIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygp
IDwgdGltZW91dCkgeworICAgICAgICB3aGlsZSAobWUtPmFkZHJlc3MgJiYgQ2xvY2s6Om5vdygp
IDwgdGltZW91dCkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyBwcmV0dHkgZnVubnkuIE9uIExp
bnV4LCBpZiB5b3Ugd2FpdCB1bnRpbCB0aGUgbWF4IHRpbWUsIGl0IGltbWVkaWF0ZWx5IHJlcG9y
dHMgdGhhdCB5b3UgdGltZWQKICAgICAgICAgICAgIC8vIG91dC4gV2hhdCdzIHBhcnRpY3VsYXJs
eSBiYWQgYWJvdXQgdGhpcyBpcyB0aGF0IGl0IG5ldmVyIHJlbGVhc2VzIHRoZSBsb2NrIGluIHRo
YXQgY2FzZS4gU28sIHlvdSBsb29wCiAgICAgICAgICAgICAvLyBmb3JldmVyIHdpdGhvdXQgeWll
bGRpbmcgdG8gdGhlIHRocmVhZCB0aGF0IHdvdWxkIHdha2UgeW91IHVwLgotICAgICAgICAgICAg
aWYgKHRpbWVvdXQgPT0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludDo6bWF4
KCkpCisgICAgICAgICAgICBpZiAodGltZW91dCA9PSBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkp
CiAgICAgICAgICAgICAgICAgbWUtPnBhcmtpbmdDb25kaXRpb24ud2FpdChsb2NrZXIpOwogICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1lLT5wYXJraW5nQ29uZGl0aW9uLndhaXRf
dW50aWwobG9ja2VyLCB0aW1lb3V0KTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmgJKHJldmlzaW9uIDE4
ODUxMCkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuaAkod29ya2luZyBjb3B5KQpAQCAt
MzgsNiArMzgsOCBAQCBjbGFzcyBQYXJraW5nTG90IHsKICAgICBQYXJraW5nTG90KGNvbnN0IFBh
cmtpbmdMb3QmKSA9IGRlbGV0ZTsKIAogcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjpjaHJvbm86
OnN0ZWFkeV9jbG9jayBDbG9jazsKKyAgICAKICAgICAvLyBQYXJrcyB0aGUgdGhyZWFkIGluIGEg
cXVldWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBhZGRyZXNzLCB3aGljaCBjYW5ub3QgYmUg
bnVsbC4gVGhlCiAgICAgLy8gcGFya2luZyBvbmx5IHN1Y2NlZWRzIGlmIHRoZSB2YWxpZGF0aW9u
IGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSB3aGlsZSB0aGUgcXVldWUgbG9jayBpcyBoZWxkLgogICAg
IC8vIElmIHZhbGlkYXRpb24gcmV0dXJucyBmYWxzZSwgaXQgd2lsbCB1bmxvY2sgdGhlIGludGVy
bmFsIHBhcmtpbmcgcXVldWUgYW5kIHRoZW4gaXQgd2lsbApAQCAtNTMsNyArNTUsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGNvbnN0IHZvaWQqIGFkZHJlc3MsCiAgICAgICAgIHN0ZDo6ZnVuY3Rpb248
Ym9vbCgpPiB2YWxpZGF0aW9uLAogICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gYmVmb3Jl
U2xlZXAsCi0gICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgdGlt
ZW91dCk7CisgICAgICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpOwogCiAgICAgLy8gU2lt
cGxlIHZlcnNpb24gb2YgcGFya0NvbmRpdGlvbmFsbHkoKSB0aGF0IGNvdmVycyB0aGUgbW9zdCBj
b21tb24gY2FzZTogeW91IHdhbnQgdG8gcGFyawogICAgIC8vIGluZGVmaW5pdGVseSBzbyBsb25n
IGFzIHRoZSB2YWx1ZSBhdCB0aGUgZ2l2ZW4gYWRkcmVzcyBoYXNuJ3QgY2hhbmdlZC4KQEAgLTY3
LDcgKzY5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBleHBl
Y3RlZDsKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICBbXSAoKSB7IH0sCi0gICAgICAgICAg
ICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7CisgICAgICAg
ICAgICBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIC8vIFVucGFya3Mg
b25lIHRocmVhZCBmcm9tIHRoZSBxdWV1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGFkZHJl
c3MsIHdoaWNoIGNhbm5vdCBiZSBudWxsLgpJbmRleDogU291cmNlL1dURi93dGYvVGhyZWFkaW5n
UHRocmVhZHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJl
YWRzLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRo
cmVhZHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsNyArMTI2LDYgQEAgdm9pZCBpbml0aWFs
aXplVGhyZWFkaW5nKCkKICAgICBUaHJlYWRJZGVudGlmaWVyRGF0YTo6aW5pdGlhbGl6ZU9uY2Uo
KTsKICAgICBTdGFja1N0YXRzOjppbml0aWFsaXplKCk7CiAgICAgd3RmVGhyZWFkRGF0YSgpOwot
ICAgIHNfZHRvYVA1TXV0ZXggPSBuZXcgTXV0ZXg7CiAgICAgaW5pdGlhbGl6ZURhdGVzKCk7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291
cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY1LDcgKzE2
NSw2IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgdGhyZWFkTWFwTXV0ZXgoKTsK
ICAgICBpbml0aWFsaXplUmFuZG9tTnVtYmVyR2VuZXJhdG9yKCk7CiAgICAgd3RmVGhyZWFkRGF0
YSgpOwotICAgIHNfZHRvYVA1TXV0ZXggPSBuZXcgTXV0ZXg7CiAgICAgaW5pdGlhbGl6ZURhdGVz
KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL2R0b2EuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV1RGL3d0
Zi9kdG9hLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAKICAqIFRoZSBhdXRob3Ig
b2YgdGhpcyBzb2Z0d2FyZSBpcyBEYXZpZCBNLiBHYXkuCiAgKgogICogQ29weXJpZ2h0IChjKSAx
OTkxLCAyMDAwLCAyMDAxIGJ5IEx1Y2VudCBUZWNobm9sb2dpZXMuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDIsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4LCAyMDEwLCAyMDEyLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0
aGlzIHNvZnR3YXJlIGZvciBhbnkKICAqIHB1cnBvc2Ugd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdy
YW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhpcyBlbnRpcmUgbm90aWNlCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiZHRvYS5oIgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYv
TG9jay5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTU0LDcgKzU1LDcgQEAKIAogbmFt
ZXNwYWNlIFdURiB7CiAKLU11dGV4KiBzX2R0b2FQNU11dGV4Oworc3RhdGljIFN0YXRpY0xvY2sg
c19kdG9hUDVNdXRleDsKIAogdHlwZWRlZiB1bmlvbiB7CiAgICAgZG91YmxlIGQ7CkBAIC0zNzUs
NyArMzc2LDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBwb3c1bXVsdChCaWdJbgogICAg
IGlmICghKGsgPj49IDIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBzX2R0b2FQNU11dGV4LT5s
b2NrKCk7CisgICAgc19kdG9hUDVNdXRleC5sb2NrKCk7CiAgICAgUDVOb2RlKiBwNSA9IHA1czsK
IAogICAgIGlmICghcDUpIHsKQEAgLTM4OCw3ICszODksNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElO
RSB2b2lkIHBvdzVtdWx0KEJpZ0luCiAgICAgfQogCiAgICAgaW50IHA1c0NvdW50TG9jYWwgPSBw
NXNDb3VudDsKLSAgICBzX2R0b2FQNU11dGV4LT51bmxvY2soKTsKKyAgICBzX2R0b2FQNU11dGV4
LnVubG9jaygpOwogICAgIGludCBwNXNVc2VkID0gMDsKIAogICAgIGZvciAoOzspIHsKQEAgLTM5
OSw3ICs0MDAsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSB2b2lkIHBvdzVtdWx0KEJpZ0luCiAg
ICAgICAgICAgICBicmVhazsKIAogICAgICAgICBpZiAoKytwNXNVc2VkID09IHA1c0NvdW50TG9j
YWwpIHsKLSAgICAgICAgICAgIHNfZHRvYVA1TXV0ZXgtPmxvY2soKTsKKyAgICAgICAgICAgIHNf
ZHRvYVA1TXV0ZXgubG9jaygpOwogICAgICAgICAgICAgaWYgKHA1c1VzZWQgPT0gcDVzQ291bnQp
IHsKICAgICAgICAgICAgICAgICBBU1NFUlQoIXA1LT5uZXh0KTsKICAgICAgICAgICAgICAgICBw
NS0+bmV4dCA9IG5ldyBQNU5vZGU7CkBAIC00MTAsNyArNDExLDcgQEAgc3RhdGljIEFMV0FZU19J
TkxJTkUgdm9pZCBwb3c1bXVsdChCaWdJbgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBw
NXNDb3VudExvY2FsID0gcDVzQ291bnQ7Ci0gICAgICAgICAgICBzX2R0b2FQNU11dGV4LT51bmxv
Y2soKTsKKyAgICAgICAgICAgIHNfZHRvYVA1TXV0ZXgudW5sb2NrKCk7CiAgICAgICAgIH0KICAg
ICAgICAgcDUgPSBwNS0+bmV4dDsKICAgICB9CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9kdG9hLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvZHRvYS5oCShyZXZpc2lvbiAxODg1MTApCisr
KyBTb3VyY2UvV1RGL3d0Zi9kdG9hLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCw2IEBA
CiAKIG5hbWVzcGFjZSBXVEYgewogCi1jbGFzcyBNdXRleDsKLQotZXh0ZXJuIE11dGV4KiBzX2R0
b2FQNU11dGV4OwotCiB0eXBlZGVmIGNoYXIgRHRvYUJ1ZmZlcls4MF07CiAKIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGR0b2EoRHRvYUJ1ZmZlciByZXN1bHQsIGRvdWJsZSBkZCwgYm9vbCYgc2ln
biwgaW50JiBleHBvbmVudCwgdW5zaWduZWQmIHByZWNpc2lvbik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxODg1NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyNzQgQEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBvZiBXVEY6Ok11
dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBubyBuZXcgYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFzeW5jQXVkaW9EZWNvZGVyOjpBc3luY0F1ZGlvRGVjb2Rlcik6CisgICAgICAgIChX
ZWJDb3JlOjpBc3luY0F1ZGlvRGVjb2Rlcjo6cnVuTG9vcCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Db250ZXh0Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1
ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6
OmFkZEF1ZGlvQ29uc3VtZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZTo6cmVtb3ZlQXVkaW9Db25zdW1lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVh
bUF1ZGlvU291cmNlOjpzZXRBdWRpb0Zvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbUF1ZGlvU291cmNlOjpjb25zdW1lQXVkaW8pOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OmNsb3NlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpydW5UcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZTo6aW5Qcm9ncmVzc1RyYW5zYWN0aW9uQ29tcGxldGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlOjpoYXNQZW5kaW5nVHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGFzay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRhc2tTeW5j
aHJvbml6ZXI6OnRhc2tDb21wbGV0ZWQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUYXNrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRo
cmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRocmVhZDo6c3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJlYWQ6OmRhdGFiYXNlVGhyZWFkKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmg6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VUcmFja2VyOjpzZXREYXRhYmFzZURpcmVjdG9yeVBhdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YWJhc2VUcmFja2VyOjpjYW5Fc3RhYmxpc2hEYXRhYmFzZSk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZVRyYWNrZXI6OnJldHJ5Q2FuRXN0YWJsaXNoRGF0YWJhc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpoYXNFbnRyeUZvck9yaWdpbik6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmdldE1heFNpemVGb3JEYXRhYmFzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmNsb3NlQWxsRGF0YWJhc2VzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZnVsbFBhdGhGb3JEYXRhYmFzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6Om9yaWdpbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YWJhc2VUcmFja2VyOjpkYXRhYmFzZU5hbWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpzZXREYXRhYmFzZURldGFpbHMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpkb25lQ3JlYXRpbmdEYXRhYmFzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmFkZE9wZW5EYXRhYmFzZSk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnJlbW92ZU9wZW5EYXRhYmFzZSk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmdldE9wZW5EYXRhYmFzZXMpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpvcmlnaW5Mb2NrRm9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFiYXNlVHJhY2tlcjo6cXVvdGFGb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUcmFja2VyOjpzZXRRdW90YSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRy
YWNrZXI6OmRlbGV0ZU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6
OmRlbGV0ZURhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZGVs
ZXRlRGF0YWJhc2VGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6cmVt
b3ZlRGVsZXRlZE9wZW5lZERhdGFiYXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRy
YWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZUlmRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRleCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpub3RpZmljYXRpb25N
dXRleCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnNjaGVkdWxlTm90aWZ5
RGF0YWJhc2VDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6bm90
aWZ5RGF0YWJhc2VzQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRyYWNrZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2su
aDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpTUUxDYWxsYmFja1dyYXBwZXI6OnVud3JhcCk6CisgICAgICAgIChXZWJDb3JlOjpT
UUxDYWxsYmFja1dyYXBwZXI6Omhhc0NhbGxiYWNrKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxU
cmFuc2FjdGlvbkJhY2tlbmQ6OmRvQ2xlYW51cCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFu
c2FjdGlvbkJhY2tlbmQ6OmVucXVldWVTdGF0ZW1lbnRCYWNrZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Z2V0TmV4dFN0YXRlbWVudCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclNjcmlwdENvbnRyb2xsZXI6OnNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aXNFeGVjdXRpb25UZXJt
aW5hdGluZyk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5o
OgorICAgICAgICAqIGRvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbDo6cG9zdE1lc3NhZ2VUb1JlbW90
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OnRyeUdldE1lc3NhZ2VG
cm9tUmVtb3RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbDo6aXNDb25u
ZWN0ZWRUbyk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6Omhhc1BlbmRp
bmdBY3Rpdml0eSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OmxvY2Fs
bHlFbnRhbmdsZWRQb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsOjpzZXRSZW1vdGVQb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVzc2Fn
ZVBvcnRDaGFubmVsOjplbnRhbmdsZWRDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtTWVzc2FnZVBvcnRDaGFubmVsOjpjbG9zZUludGVybmFsKToKKyAgICAgICAgKiBkb20vZGVm
YXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oOgorICAgICAgICAqIGxvYWRlci9pY29u
L0ljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnJlbW92
ZUFsbEljb25zKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJ
Y29uRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnN5bmNocm9u
b3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpzeW5jaHJvbm91c0ljb25VUkxGb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25E
YXRhYmFzZTo6cmV0YWluSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRh
dGFiYXNlOjpwZXJmb3JtUmV0YWluSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
SWNvbkRhdGFiYXNlOjpyZWxlYXNlSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
SWNvbkRhdGFiYXNlOjpwZXJmb3JtUmVsZWFzZUljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdl
YkNvcmU6Okljb25EYXRhYmFzZTo6c2V0SWNvbkRhdGFGb3JJY29uVVJMKToKKyAgICAgICAgKFdl
YkNvcmU6Okljb25EYXRhYmFzZTo6c2V0SWNvblVSTEZvclBhZ2VVUkwpOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0xvYWREZWNpc2lvbkZvckljb25VUkwpOgor
ICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25EYXRhS25vd25G
b3JJY29uVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGFnZVVSTE1hcHBp
bmdDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnJldGFpbmVkUGFnZVVS
TENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50
KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50V2l0aERh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjp3YWtlU3luY1RocmVhZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNjaGVkdWxlT3JEZWZlclN5bmNUaW1lcik6
CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OmlzT3BlbkJlc2lkZXNNYWluVGhyZWFk
Q2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6ZGF0YWJhc2VQYXRo
KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6Z2V0T3JDcmVhdGVQYWdlVVJMUmVj
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3luY1Ro
cmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnBlcmZvcm1PcGVuSW5pdGlh
bGl6YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1w
b3J0KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY1RocmVhZE1haW5Mb29w
KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVBlbmRpbmdSZXRhaW5B
bmRSZWxlYXNlT3BlcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnJl
YWRGcm9tRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjp3cml0ZVRv
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpwcnVuZVVucmV0YWlu
ZWRJY29ucyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OmNsZWFudXBTeW5jVGhy
ZWFkKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmNvbW1pdE5ld1RyZWVTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVQaW5TdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjptYWluRnJhbWVTY3JvbGxQb3NpdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjppc1BvaW50SW5Ob25GYXN0U2Nyb2xsYWJs
ZVJlZ2lvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjppc1J1YmJlckJhbmRJ
blByb2dyZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFt
ZUlzUnViYmVyQmFuZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjppc1Nj
cm9sbFNuYXBJblByb2dyZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNl
dE1haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZTo6c2V0Q2FuUnViYmVyQmFuZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWU6OnJ1YmJlckJhbmRzQXRMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWU6OnJ1YmJlckJhbmRzQXRSaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
OjpydWJiZXJCYW5kc0F0Qm90dG9tKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6
OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0
U2Nyb2xsUGlubmluZ0JlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6
OnNjcm9sbFBpbm5pbmdCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
Ojp3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OmxhdGNoZWROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWU6OnNldExhdGNoZWROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmNs
ZWFyTGF0Y2hlZE5vZGUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFJURkRhdGFiYXNlTG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2Vi
Q29yZTo6SFJURkRhdGFiYXNlTG9hZGVyOjp3YWl0Rm9yTG9hZGVyVGhyZWFkQ29tcGxldGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmg6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNldFJlY2VpdmVkTWVtb3J5UHJlc3N1
cmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpjbGVhck1lbW9y
eVByZXNzdXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2hv
dWxkV2FpdEZvck1lbW9yeUNsZWFyTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNzdXJlSWZOZWVkZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlEaWRSZWZyZXNoKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6c2V0TW9ub3RvbmljQW5pbWF0aW9u
U3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6bXV0
ZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uOjpzZXREZWxheUNhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmNsZWFyTWFpblRocmVhZFBlbmRpbmdG
bGFnKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6
ZGlzcGF0Y2hOb3RpZmljYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6Y2FsbGJhY2tDb250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6On5BVkZXcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkFWRldyYXBwZXI6Om1hcExvY2spOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3Jh
cHBlcjo6YWRkVG9NYXApOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cmVtb3ZlRnJv
bU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjpwZXJpb2RpY1RpbWVPYnNlcnZl
ckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OnByb2Nlc3NOb3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6bG9hZFBsYXlhYmxlQ29tcGxl
dGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OmxvYWRNZXRhZGF0
YUNvbXBsZXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjpzZWVr
Q29tcGxldGVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cHJvY2Vz
c0N1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjpsZWdpYmxlT3V0cHV0Q2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cHJvY2Vzc1Nob3VsZFdhaXRGb3JM
b2FkaW5nT2ZSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjpyZXNvdXJj
ZUxvYWRlclNob3VsZFdhaXRGb3JMb2FkaW5nT2ZSZXF1ZXN0ZWRSZXNvdXJjZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJl
YW1lcjo6aGFuZGxlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1By
aXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTYW1wbGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6
dGFnc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
cjo6bm90aWZ5VHJhY2tPZlRhZ3NDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpyZXF1ZXN0UmVmcmVzaENhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGxheUxp
bmtGaXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhRm91bmRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVNZWRpYUZvdW5kYXRpb246OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVtb3ZlTGlzdGVuZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpub3RpZnlEZWxl
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bjo6QXN5bmNDYWxsYmFjazo6SW52b2tlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6QXN5bmNDYWxsYmFjazo6b25NZWRpYVBsYXllckRlbGV0
ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYUZvdW5kYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0VGlsZXNPcGFxdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6TGVnYWN5VGlsZUNhY2hlOjpkb0xheW91dFRpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkxlZ2FjeVRpbGVDYWNoZTo6c2V0Q3VycmVudFNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okxl
Z2FjeVRpbGVDYWNoZTo6Y29tbWl0U2NhbGVDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TGVn
YWN5VGlsZUNhY2hlOjpsYXlvdXRUaWxlc05vdyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lU
aWxlQ2FjaGU6OmxheW91dFRpbGVzTm93Rm9yUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdh
Y3lUaWxlQ2FjaGU6OnJlbW92ZUFsbE5vblZpc2libGVUaWxlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUFsbFRpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6Okxl
Z2FjeVRpbGVDYWNoZTo6cmVtb3ZlRm9yZWdyb3VuZFRpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkxlZ2FjeVRpbGVDYWNoZTo6c2V0Q29udGVudFJlcGxhY2VtZW50SW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpjb250ZW50UmVwbGFjZW1lbnRJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnRpbGVDcmVhdGlvblRpbWVyRmlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpzZXROZWVkc0Rpc3BsYXlJblJlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjp1cGRhdGVUaWxpbmdNb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0VGlsaW5nTW9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmRvUGVuZGluZ1JlcGFpbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6Zmx1c2hTYXZlZERpc3BsYXlSZWN0cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnByZXBhcmVUb0RyYXcpOgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLmg6CisgICAgICAgICogcGxhdGZv
cm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wubW06CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lU
aWxlTGF5ZXJQb29sOjphZGRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5
ZXJQb29sOjp0YWtlTGF5ZXJXaXRoU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxl
TGF5ZXJQb29sOjpzZXRDYXBhY2l0eSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5
ZXJQb29sOjpwcnVuZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjpk
cmFpbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjphZGQpOgorICAgICAgICAo
V2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6
OkN1cmxEb3dubG9hZE1hbmFnZXI6OmdldEFjdGl2ZURvd25sb2FkQ291bnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6Z2V0UGVuZGluZ0Rvd25sb2FkQ291bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6c3RvcFRocmVhZElmSWRsZSk6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjp1cGRhdGVIYW5kbGVMaXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6fkN1cmxEb3dubG9hZCk6CisgICAg
ICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmluaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vy
bERvd25sb2FkOjpnZXRUZW1wUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6
OmdldFVybCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmdldFJlc3BvbnNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Y2xvc2VGaWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZUhlYWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxE
b3dubG9hZDo6ZGlkRmFpbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxE
b3dubG9hZC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llSmFyUGF0aCk6CisgICAgICAg
IChXZWJDb3JlOjpzaGFyZWRSZXNvdXJjZU11dGV4KToKKyAgICAgICAgKFdlYkNvcmU6OmN1cmxf
bG9ja19jYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpjdXJsX3VubG9ja19jYWxsYmFjayk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UUxEaXJlY3RvcnlBdHRyaWJ1dGVzKToKKyAgICAgICAgKHFsUHJldmlld0NvbnZl
cnRlckRpY3Rpb25hcnlNdXRleCk6CisgICAgICAgIChXZWJDb3JlOjphZGRRTFByZXZpZXdDb252
ZXJ0ZXJXaXRoRmlsZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpxbFByZXZpZXdDb252ZXJ0
ZXJVVElGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6cmVtb3ZlUUxQcmV2aWV3Q29udmVydGVy
Rm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OnNhZmVRTFVSTEZvckRvY3VtZW50VVJMQW5kUmVz
b3VyY2VVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U1FMaXRlRGF0YWJhc2U6Om1heGltdW1TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0
ZURhdGFiYXNlOjpzZXRNYXhpbXVtU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRh
YmFzZTo6cGFnZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmZyZWVT
cGFjZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnRvdGFsU2l6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVtZW50YWxWYWN1dW1D
b21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpzZXRBdXRob3JpemVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpkYXRhYmFzZU11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZVN0YXRl
bWVudDo6cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ6OnN0ZXAp
OgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclRocmVhZDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjp3
b3JrZXJUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpzdG9wKToKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgorCiAyMDE1LTA4LTE3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBzb21lIGNv
bW1hbmRzIGZyb20gLi9DTWFrZUxpc3RzLnR4dCB0byBTb3VyY2UvY21ha2UKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIu
Y3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0FzeW5jQXVkaW9EZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29kZXIo
KQogewogICAgIC8vIFN0YXJ0IHdvcmtlciB0aHJlYWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayht
X3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0
aW9uTXV0ZXgpOwogICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29k
ZXI6OnRocmVhZEVudHJ5LCB0aGlzLCAiQXVkaW8gRGVjb2RlciIpOwogfQogCkBAIC03Niw3ICs3
Niw3IEBAIHZvaWQgQXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3AoKQogCiAgICAgewogICAgICAg
ICAvLyBXYWl0IGZvciB1bnRpbCB3ZSBoYXZlIG1fdGhyZWFkSUQgZXN0YWJsaXNoZWQgYmVmb3Jl
IHN0YXJ0aW5nIHRoZSBydW4gbG9vcC4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVh
ZENyZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlv
bk11dGV4KTsKICAgICB9CiAKICAgICAvLyBLZWVwIHJ1bm5pbmcgZGVjb2RpbmcgdGFza3MgdW50
aWwgd2UncmUga2lsbGVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
c3luY0F1ZGlvRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5Mb29wKCk7CiAKICAg
ICBXVEY6OlRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJRDsKLSAgICBNdXRleCBtX3RocmVhZENy
ZWF0aW9uTXV0ZXg7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgTWVzc2Fn
ZVF1ZXVlPERlY29kaW5nVGFzaz4gbV9xdWV1ZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkocmV2aXNpb24gMTg4NTEwKQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzgwLDcgKzM4MCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb25u
ZWN0aW9uQ291bnQgeyAwIH07CiAKICAgICAvLyBHcmFwaCBsb2NraW5nLgotICAgIE11dGV4IG1f
Y29udGV4dEdyYXBoTXV0ZXg7CisgICAgTG9jayBtX2NvbnRleHRHcmFwaE11dGV4OwogICAgIHZv
bGF0aWxlIFRocmVhZElkZW50aWZpZXIgbV9hdWRpb1RocmVhZCB7IDAgfTsKICAgICB2b2xhdGls
ZSBUaHJlYWRJZGVudGlmaWVyIG1fZ3JhcGhPd25lclRocmVhZDsgLy8gaWYgdGhlIGxvY2sgaXMg
aGVsZCB0aGVuIHRoaXMgaXMgdGhlIHRocmVhZCB3aGljaCBvd25zIGl0LCBvdGhlcndpc2UgPT0g
VW5kZWZpbmVkVGhyZWFkSWRlbnRpZmllcgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHJl
dmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDEzICs2MywxMyBAQCBj
b25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBNZWRpYVN0CiAKIHZvaWQgTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZTo6YWRkQXVkaW9Db25zdW1lcihQYXNzUmVmUHRyPEF1ZGlvRGVzdGluYXRp
b25Db25zdW1lcj4gY29uc3VtZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXVkaW9D
b25zdW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9j
ayk7CiAgICAgbV9hdWRpb0NvbnN1bWVycy5hcHBlbmQoY29uc3VtZXIpOwogfQogCiBib29sIE1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIoQXVkaW9EZXN0aW5hdGlv
bkNvbnN1bWVyKiBjb25zdW1lcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdWRpb0Nv
bnN1bWVyc0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2Nr
KTsKICAgICBzaXplX3QgcG9zID0gbV9hdWRpb0NvbnN1bWVycy5maW5kKGNvbnN1bWVyKTsKICAg
ICBpZiAocG9zICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIG1fYXVkaW9Db25zdW1lcnMucmVtb3Zl
KHBvcyk7CkBAIC04MCwxNCArODAsMTQgQEAgYm9vbCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpy
ZW1vdmVBdWRpbwogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnNldEF1ZGlvRm9ybWF0
KHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9hdWRpb0NvbnN1bWVyc0xvY2spOwogICAgIGZvciAoYXV0byYgY29uc3VtZXIgOiBtX2F1
ZGlvQ29uc3VtZXJzKQogICAgICAgICBjb25zdW1lci0+c2V0Rm9ybWF0KG51bWJlck9mQ2hhbm5l
bHMsIHNhbXBsZVJhdGUpOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1
bWVBdWRpbyhBdWRpb0J1cyogYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CiAgICAgZm9yIChhdXRvJiBjb25zdW1lciA6IG1f
YXVkaW9Db25zdW1lcnMpCiAgICAgICAgIGNvbnN1bWVyLT5jb25zdW1lQXVkaW8oYnVzLCBudW1i
ZXJPZkZyYW1lcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTg4NTEwKQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvRGVz
dGluYXRpb25Db25zdW1lci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNp
bmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBA
IC02NSw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpOwog
CiAgICAgU3RyaW5nIG1fZGV2aWNlSWQ7Ci0gICAgTXV0ZXggbV9hdWRpb0NvbnN1bWVyc0xvY2s7
CisgICAgTG9jayBtX2F1ZGlvQ29uc3VtZXJzTG9jazsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlv
RGVzdGluYXRpb25Db25zdW1lcj4+IG1fYXVkaW9Db25zdW1lcnM7CiAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZVN0YXRlcyBtX2N1cnJlbnRTdGF0ZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODUxMCkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xvc2UoKQogICAg
IEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhy
ZWFkKCktPmdldFRocmVhZElEKCkpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOwogCiAgICAgICAgIC8vIENsZWFuIHVw
IHRyYW5zYWN0aW9ucyB0aGF0IGhhdmUgbm90IGJlZW4gc2NoZWR1bGVkIHlldDoKICAgICAgICAg
Ly8gVHJhbnNhY3Rpb24gcGhhc2UgMSBjbGVhbnVwLiBTZWUgY29tbWVudCBvbiAiV2hhdCBoYXBw
ZW5zIGlmIGEKQEAgLTU2NSw3ICs1NjUsNyBAQCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRyYW5z
YWN0aW9uKCkKIAogUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IERhdGFiYXNlOjpy
dW5UcmFuc2FjdGlvbihQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbiwgYm9v
bCByZWFkT25seSwgY29uc3QgQ2hhbmdlVmVyc2lvbkRhdGEqIGRhdGEpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOwogICAgIGlmICghbV9pc1Ry
YW5zYWN0aW9uUXVldWVFbmFibGVkKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtNTkzLDE0ICs1
OTMsMTQgQEAgdm9pZCBEYXRhYmFzZTo6c2NoZWR1bGVUcmFuc2FjdGlvblN0ZXAoUwogCiB2b2lk
IERhdGFiYXNlOjppblByb2dyZXNzVHJhbnNhY3Rpb25Db21wbGV0ZWQoKQogewotICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4KTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4KTsKICAgICBtX3RyYW5zYWN0
aW9uSW5Qcm9ncmVzcyA9IGZhbHNlOwogICAgIHNjaGVkdWxlVHJhbnNhY3Rpb24oKTsKIH0KIAog
Ym9vbCBEYXRhYmFzZTo6aGFzUGVuZGluZ1RyYW5zYWN0aW9uKCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CiAgICAgcmV0dXJuIG1fdHJhbnNh
Y3Rpb25JblByb2dyZXNzIHx8ICFtX3RyYW5zYWN0aW9uUXVldWUuaXNFbXB0eSgpOwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCShy
ZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlICJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiU1FMaXRlRGF0YWJh
c2UuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0x
NjIsNyArMTYzLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RGF0YWJhc2VBdXRob3JpemVyPiBt
X2RhdGFiYXNlQXV0aG9yaXplcjsKIAogICAgIERlcXVlPFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJh
Y2tlbmQ+PiBtX3RyYW5zYWN0aW9uUXVldWU7Ci0gICAgTXV0ZXggbV90cmFuc2FjdGlvbkluUHJv
Z3Jlc3NNdXRleDsKKyAgICBMb2NrIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXg7CiAgICAg
Ym9vbCBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzczsKICAgICBib29sIG1faXNUcmFuc2FjdGlvblF1
ZXVlRW5hYmxlZDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRhc2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIw
MDgsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgRGF0YWJhc2VUYXNr
U3luY2hyb25pemVyOjp0YXNrQ29tcGwKIHsKICAgICBtX3N5bmNocm9ub3VzTXV0ZXgubG9jaygp
OwogICAgIG1fdGFza0NvbXBsZXRlZCA9IHRydWU7Ci0gICAgbV9zeW5jaHJvbm91c0NvbmRpdGlv
bi5zaWduYWwoKTsKKyAgICBtX3N5bmNocm9ub3VzQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAg
IG1fc3luY2hyb25vdXNNdXRleC51bmxvY2soKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oCShyZXZpc2lvbiAxODg1
MTApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NywgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDcsIDIwMDgsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw4ICszMSw5IEBACiAj
aW5jbHVkZSAiRGF0YWJhc2VCYXNpY1R5cGVzLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VFcnJvci5o
IgogI2luY2x1ZGUgIlNRTFRyYW5zYWN0aW9uQmFja2VuZC5oIgorI2luY2x1ZGUgPHd0Zi9Db25k
aXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsOCArNTksOCBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgYm9vbCBtX3Rhc2tDb21wbGV0ZWQ7Ci0gICAgTXV0ZXggbV9z
eW5jaHJvbm91c011dGV4OwotICAgIFRocmVhZENvbmRpdGlvbiBtX3N5bmNocm9ub3VzQ29uZGl0
aW9uOworICAgIExvY2sgbV9zeW5jaHJvbm91c011dGV4OworICAgIENvbmRpdGlvbiBtX3N5bmNo
cm9ub3VzQ29uZGl0aW9uOwogI2lmbmRlZiBOREVCVUcKICAgICBib29sIG1faGFzQ2hlY2tlZEZv
clRlcm1pbmF0aW9uOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcAkocmV2aXNpb24gMTg4NTEwKQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgRGF0YWJhc2VUaHJlYWQ6On5EYXRhYmFz
ZVRocmVhZCgpCiAKIGJvb2wgRGF0YWJhc2VUaHJlYWQ6OnN0YXJ0KCkKIHsKLSAgICBNdXRleExv
Y2tlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1f
dGhyZWFkQ3JlYXRpb25NdXRleCk7CiAKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0
dXJuIHRydWU7CkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBEYXRhYmFzZVRocmVhZDo6ZGF0YWJh
c2VUaHJlYWQoKQogewogICAgIHsKICAgICAgICAgLy8gV2FpdCBmb3IgRGF0YWJhc2VUaHJlYWQ6
OnN0YXJ0KCkgdG8gY29tcGxldGUuCi0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJlYWRD
cmVhdGlvbk11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25N
dXRleCk7CiAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiU3RhcnRlZCBEYXRhYmFzZVRocmVhZCAl
cCIsIHRoaXMpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRocmVhZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCSh3b3JraW5n
IGNvcHkpCkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGF0YWJh
c2VUaHJlYWRTdGFydCh2b2lkKik7CiAgICAgdm9pZCBkYXRhYmFzZVRocmVhZCgpOwogCi0gICAg
TXV0ZXggbV90aHJlYWRDcmVhdGlvbk11dGV4OworICAgIExvY2sgbV90aHJlYWRDcmVhdGlvbk11
dGV4OwogICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJRDsKICAgICBSZWZQdHI8RGF0YWJh
c2VUaHJlYWQ+IG1fc2VsZlJlZjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAkocmV2aXNpb24gMTg4NTEw
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIERhdGFiYXNlVHJhY2tlcjo6RGF0
YWJhc2VUcmFja2VyKGNvbnN0IFMKIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnNldERhdGFiYXNl
RGlyZWN0b3J5UGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
a0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2Uo
bV9kYXRhYmFzZUd1YXJkKTsKICAgICBBU1NFUlQoIW1fZGF0YWJhc2UuaXNPcGVuKCkpOwogICAg
IG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoID0gcGF0aC5pc29sYXRlZENvcHkoKTsKIH0KQEAgLTE2
Niw3ICsxNjYsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhCiB7
CiAgICAgZXJyb3IgPSBEYXRhYmFzZUVycm9yOjpOb25lOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9j
a0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2Uo
bV9kYXRhYmFzZUd1YXJkKTsKICAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gY29udGV4dC0+
c2VjdXJpdHlPcmlnaW4oKTsKIAogICAgIGlmIChpc0RlbGV0aW5nRGF0YWJhc2VPck9yaWdpbkZv
cihvcmlnaW4sIG5hbWUpKSB7CkBAIC0yMTgsNyArMjE4LDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNr
ZXI6OnJldHJ5Q2FuRXN0YWJsaXNoRAogewogICAgIGVycm9yID0gRGF0YWJhc2VFcnJvcjo6Tm9u
ZTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAg
IExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgU2VjdXJpdHlP
cmlnaW4qIG9yaWdpbiA9IGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCk7CiAKICAgICAvLyBXZSBo
YXZlIGFscmVhZHkgZWxpbWluYXRlZCBvdGhlciB0eXBlcyBvZiBlcnJvcnMgaW4gY2FuRXN0YWJs
aXNoRGF0YWJhc2UoKS4KQEAgLTI1Nyw3ICsyNTcsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6
aGFzRW50cnlGb3JPcmlnaW5OCiAKIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpoYXNFbnRyeUZvck9y
aWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tEYXRh
YmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0
YWJhc2VHdWFyZCk7CiAgICAgcmV0dXJuIGhhc0VudHJ5Rm9yT3JpZ2luTm9Mb2NrKG9yaWdpbik7
CiB9CiAKQEAgLTI4Niw3ICsyODYsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFj
a2VyOjpnZXRNCiB7CiAgICAgLy8gVGhlIG1heGltdW0gc2l6ZSBmb3IgYSBkYXRhYmFzZSBpcyB0
aGUgZnVsbCBxdW90YSBmb3IgaXRzIG9yaWdpbiwgbWludXMgdGhlIGN1cnJlbnQgdXNhZ2Ugd2l0
aGluIHRoZSBvcmlnaW4sCiAgICAgLy8gcGx1cyB0aGUgY3VycmVudCB1c2FnZSBvZiB0aGUgZ2l2
ZW4gZGF0YWJhc2UKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJk
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIFNl
Y3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBkYXRhYmFzZS0+c2VjdXJpdHlPcmlnaW4oKTsKIAogICAg
IHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSA9IHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbik7
CkBAIC0zMTEsNyArMzExLDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6OmNsb3NlQWxsRGF0YWJh
c2VzKAogewogICAgIFZlY3RvcjxSZWY8RGF0YWJhc2U+PiBvcGVuRGF0YWJhc2VzOwogICAgIHsK
LSAgICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1h
cEd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRh
dGFiYXNlTWFwR3VhcmQpOwogICAgICAgICBpZiAoIW1fb3BlbkRhdGFiYXNlTWFwKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICBmb3IgKGF1dG8mIG5hbWVNYXAgOiBtX29wZW5EYXRhYmFz
ZU1hcC0+dmFsdWVzKCkpIHsKQEAgLTM4OSwxMyArMzg5LDEzIEBAIFN0cmluZyBEYXRhYmFzZVRy
YWNrZXI6OmZ1bGxQYXRoRm9yRGF0YWIKIAogU3RyaW5nIERhdGFiYXNlVHJhY2tlcjo6ZnVsbFBh
dGhGb3JEYXRhYmFzZShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGJvb2wgY3JlYXRlSWZOb3RFeGlzdHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNl
KG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFz
ZUd1YXJkKTsKICAgICByZXR1cm4gZnVsbFBhdGhGb3JEYXRhYmFzZU5vTG9jayhvcmlnaW4sIG5h
bWUsIGNyZWF0ZUlmTm90RXhpc3RzKS5pc29sYXRlZENvcHkoKTsKIH0KIAogdm9pZCBEYXRhYmFz
ZVRyYWNrZXI6Om9yaWdpbnMoVmVjdG9yPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+JiBvcmlnaW5z
UmVzdWx0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAKICAgICBv
cGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgaWYgKCFt
X2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNDQ4LDcgKzQ0OCw3IEBAIGJvb2wgRGF0YWJhc2VUcmFj
a2VyOjpkYXRhYmFzZU5hbWVzRm9yT3IKIHsKICAgICBWZWN0b3I8U3RyaW5nPiB0ZW1wOwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgICAg
IGlmICghZGF0YWJhc2VOYW1lc0Zvck9yaWdpbk5vTG9jayhvcmlnaW4sIHRlbXApKQogICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC00NjUsNyArNDY1LDcgQEAgRGF0YWJhc2VEZXRh
aWxzIERhdGFiYXNlVHJhY2tlcjo6ZGV0YWlscwogICAgIGludDY0X3QgZXhwZWN0ZWRVc2FnZTsK
IAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFy
ZCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAK
ICAgICAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShEb250Q3JlYXRlSWZEb2VzTm90RXhpc3QpOwog
ICAgICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCkBAIC01MDAsNyArNTAwLDcgQEAgdm9p
ZCBEYXRhYmFzZVRyYWNrZXI6OnNldERhdGFiYXNlRGV0YWlscwogICAgIFN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyID0gb3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKTsKICAgICBpbnQ2NF90IGd1
aWQgPSAwOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7
CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgIG9w
ZW5UcmFja2VyRGF0YWJhc2UoQ3JlYXRlSWZEb2VzTm90RXhpc3QpOwogICAgIGlmICghbV9kYXRh
YmFzZS5pc09wZW4oKSkKQEAgLTU0OSw3ICs1NDksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6
c2V0RGF0YWJhc2VEZXRhaWxzCiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpkb25lQ3JlYXRpbmdE
YXRhYmFzZShEYXRhYmFzZSogZGF0YWJhc2UpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFi
YXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKICAgICBkb25lQ3JlYXRpbmdEYXRhYmFzZShkYXRhYmFzZS0+c2VjdXJpdHlP
cmlnaW4oKSwgZGF0YWJhc2UtPnN0cmluZ0lkZW50aWZpZXIoKSk7CiB9CiAKQEAgLTU1OSw3ICs1
NTksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6YWRkT3BlbkRhdGFiYXNlKERhCiAgICAgICAg
IHJldHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9j
ayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJh
c2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogCiAgICAgICAgIGlmICghbV9vcGVu
RGF0YWJhc2VNYXApCiAgICAgICAgICAgICBtX29wZW5EYXRhYmFzZU1hcCA9IHN0ZDo6bWFrZV91
bmlxdWU8RGF0YWJhc2VPcmlnaW5NYXA+KCk7CkBAIC01ODksNyArNTg5LDcgQEAgdm9pZCBEYXRh
YmFzZVRyYWNrZXI6OnJlbW92ZU9wZW5EYXRhYmFzZQogICAgICAgICByZXR1cm47CiAKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VN
YXBHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5E
YXRhYmFzZU1hcEd1YXJkKTsKIAogICAgICAgICBpZiAoIW1fb3BlbkRhdGFiYXNlTWFwKSB7CiAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTYyOSw3ICs2MjksNyBAQCB2b2lk
IERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlT3BlbkRhdGFiYXNlCiAKIHZvaWQgRGF0YWJhc2VUcmFj
a2VyOjpnZXRPcGVuRGF0YWJhc2VzKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgSGFzaFNldDxSZWZQdHI8RGF0YWJhc2U+PiogZGF0YWJhc2VzKQogewotICAgIE11
dGV4TG9ja2VyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7Cisg
ICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQp
OwogICAgIGlmICghbV9vcGVuRGF0YWJhc2VNYXApCiAgICAgICAgIHJldHVybjsKIApAQCAtNjQ3
LDcgKzY0Nyw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpnZXRPcGVuRGF0YWJhc2VzKFMKIAog
UmVmUHRyPE9yaWdpbkxvY2s+IERhdGFiYXNlVHJhY2tlcjo6b3JpZ2luTG9ja0ZvcihTZWN1cml0
eU9yaWdpbiogb3JpZ2luKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFi
YXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7
CiAgICAgU3RyaW5nIGRhdGFiYXNlSWRlbnRpZmllciA9IG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlm
aWVyKCk7CiAKICAgICAvLyBUaGUgb3JpZ2luTG9ja01hcCBpcyBhY2Nlc3NlZCBmcm9tIG11bHRp
cGxlIERhdGFiYXNlVGhyZWFkcyBzaW5jZQpAQCAtNzI3LDEzICs3MjcsMTMgQEAgdW5zaWduZWQg
bG9uZyBsb25nIERhdGFiYXNlVHJhY2tlcjo6cXVvdAogCiB1bnNpZ25lZCBsb25nIGxvbmcgRGF0
YWJhc2VUcmFja2VyOjpxdW90YUZvck9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewot
ICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tI
b2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgcmV0dXJuIHF1b3RhRm9y
T3JpZ2luTm9Mb2NrKG9yaWdpbik7CiB9CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXRRdW90
YShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hv
bGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgIGlmIChxdW90YUZvck9y
aWdpbk5vTG9jayhvcmlnaW4pID09IHF1b3RhKQogICAgICAgICByZXR1cm47CkBAIC04NjQsNyAr
ODY0LDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cgogewogICAg
IFZlY3RvcjxTdHJpbmc+IGRhdGFiYXNlTmFtZXM7CiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
RGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShE
b250Q3JlYXRlSWZEb2VzTm90RXhpc3QpOwogICAgICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVu
KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC04OTAsNyArODkwLDcgQEAgYm9vbCBE
YXRhYmFzZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cgogICAgIH0KIAogICAgIHsKLSAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgICAgIExv
Y2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgICAgIGRlbGV0ZU9y
aWdpbkxvY2tGb3Iob3JpZ2luKTsKICAgICAgICAgZG9uZURlbGV0aW5nT3JpZ2luKG9yaWdpbik7
CiAKQEAgLTEwNzEsNyArMTA3MSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpkb25lRGVsZXRp
bmdPcmlnaW4KIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZShTZWN1cml0eU9y
aWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgewotICAgICAgICBNdXRl
eExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRl
ciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICAgICAgb3BlblRyYWNrZXJEYXRh
YmFzZShEb250Q3JlYXRlSWZEb2VzTm90RXhpc3QpOwogICAgICAgICBpZiAoIW1fZGF0YWJhc2Uu
aXNPcGVuKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDg2LDEyICsxMDg2LDEy
IEBAIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZShTZWMKICAgICAvLyBXZSBk
cm9wIHRoZSBsb2NrIGhlcmUgYmVjYXVzZSBob2xkaW5nIGxvY2tzIGR1cmluZyBhIGNhbGwgdG8g
ZGVsZXRlRGF0YWJhc2VGaWxlIHdpbGwgZGVhZGxvY2suCiAgICAgaWYgKCFkZWxldGVEYXRhYmFz
ZUZpbGUob3JpZ2luLCBuYW1lKSkgewogICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBkZWxl
dGUgZmlsZSBmb3IgZGF0YWJhc2UgJXMgaW4gb3JpZ2luICVzIiwgbmFtZS5hc2NpaSgpLmRhdGEo
KSwgb3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKS5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgICAgICBkb25lRGVsZXRp
bmdEYXRhYmFzZShvcmlnaW4sIG5hbWUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9j
a0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgIFNRTGl0ZVN0YXRl
bWVudCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwgIkRFTEVURSBGUk9NIERhdGFiYXNlcyBXSEVSRSBv
cmlnaW49PyBBTkQgbmFtZT0/Iik7CiAgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FM
SVRFX09LKSB7CkBAIC0xMTMxLDcgKzExMzEsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVs
ZXRlRGF0YWJhc2VGaWxlCiAKICNpZm5kZWYgTkRFQlVHCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBs
b2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICAgICAgQVNTRVJUKGlzRGVsZXRpbmdE
YXRhYmFzZU9yT3JpZ2luRm9yKG9yaWdpbiwgbmFtZSkpOwogICAgIH0KICNlbmRpZgpAQCAtMTE0
Miw3ICsxMTQyLDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZQog
ICAgIC8vIERhdGFiYXNlOjptYXJrQXNEZWxldGVkQW5kQ2xvc2UoKSwgc2luY2UgdGhhdCBjYW4g
Y2F1c2UgYSBkZWFkbG9jawogICAgIC8vIGR1cmluZyB0aGUgc3luY2hyb25vdXMgRGF0YWJhc2VU
aHJlYWQgY2FsbCBpdCB0cmlnZ2Vycy4KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIG9wZW5E
YXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CisgICAgICAgIExvY2tIb2xk
ZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKICAgICAgICAg
aWYgKG1fb3BlbkRhdGFiYXNlTWFwKSB7CiAgICAgICAgICAgICAvLyBUaGVyZSBhcmUgc29tZSBv
cGVuIGRhdGFiYXNlcywgbGV0cyBjaGVjayBpZiB0aGV5IGFyZSBmb3IgdGhpcyBvcmlnaW4uCiAg
ICAgICAgICAgICBEYXRhYmFzZU5hbWVNYXAqIG5hbWVNYXAgPSBtX29wZW5EYXRhYmFzZU1hcC0+
Z2V0KG9yaWdpbik7CkBAIC0xMTg1LDcgKzExODUsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6
cmVtb3ZlRGVsZXRlZE9wZW5lCiAgICAgCiAgICAgewogICAgICAgICAvLyBBY3F1aXJlIHRoZSBs
b2NrIGJlZm9yZSBjYWxsaW5nIG9wZW5UcmFja2VyRGF0YWJhc2UuCi0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNl
KERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgfQogCkBAIC0xMjAxLDcgKzEyMDEsNyBA
QCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlRGVsZXRlZE9wZW5lCiAgICAgLy8gRGF0YWJh
c2U6Om1hcmtBc0RlbGV0ZWRBbmRDbG9zZSgpLCBzaW5jZSB0aGF0IGNhbiBjYXVzZSBhIGRlYWRs
b2NrCiAgICAgLy8gZHVyaW5nIHRoZSBzeW5jaHJvbm91cyBEYXRhYmFzZVRocmVhZCBjYWxsIGl0
IHRyaWdnZXJzLgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9j
ayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJh
c2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogICAgICAgICBpZiAobV9vcGVuRGF0
YWJhc2VNYXApIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgb3BlbkRhdGFiYXNlIDogKm1fb3Bl
bkRhdGFiYXNlTWFwKSB7CiAgICAgICAgICAgICAgICAgYXV0byYgb3JpZ2luID0gb3BlbkRhdGFi
YXNlLmtleTsKQEAgLTEzMDUsOSArMTMwNSw5IEBAIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpkZWxl
dGVEYXRhYmFzZUZpbGUKICAgICByZXR1cm4gU1FMaXRlRmlsZVN5c3RlbTo6ZGVsZXRlRGF0YWJh
c2VGaWxlKHBhdGgpOwogfQogCi1NdXRleCYgRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VN
dXRleCgpCitMb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+IG11dGV4OworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxMb2NrPiBtdXRleDsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTEzMzAsOSAr
MTMzMCw5IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXRDbGllbnQoRGF0YWJhc2UKICAgICBt
X2NsaWVudCA9IGNsaWVudDsKIH0KIAotc3RhdGljIE11dGV4JiBub3RpZmljYXRpb25NdXRleCgp
CitzdGF0aWMgTG9jayYgbm90aWZpY2F0aW9uTXV0ZXgoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxNdXRleD4gbXV0ZXg7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IG11
dGV4OwogICAgIHJldHVybiBtdXRleDsKIH0KIApAQCAtMTM0Niw3ICsxMzQ2LDcgQEAgc3RhdGlj
IE5vdGlmaWNhdGlvblF1ZXVlJiBub3RpZmljYXRpb25RdQogCiB2b2lkIERhdGFiYXNlVHJhY2tl
cjo6c2NoZWR1bGVOb3RpZnlEYXRhYmFzZUNoYW5nZWQoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihub3RpZmljYXRp
b25NdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsK
IAogICAgIG5vdGlmaWNhdGlvblF1ZXVlKCkuYXBwZW5kKHN0ZDo6cGFpcjxSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+LCBTdHJpbmc+KG9yaWdpbi0+aXNvbGF0ZWRDb3B5KCksIG5hbWUuaXNvbGF0ZWRD
b3B5KCkpKTsKICAgICBzY2hlZHVsZUZvck5vdGlmaWNhdGlvbigpOwpAQCAtMTM3Miw3ICsxMzcy
LDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6Om5vdGlmeURhdGFiYXNlc0NoYQogCiAgICAgTm90
aWZpY2F0aW9uUXVldWUgbm90aWZpY2F0aW9uczsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bm90aWZpY2F0aW9uTXV0ZXgoKSk7CiAKICAgICAgICAgbm90aWZpY2F0aW9ucy5zd2FwKG5vdGlm
aWNhdGlvblF1ZXVlKCkpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgLy8gTW9iaWxlU2FmYXJp
IHdpbGwgZ3JhYiB0aGlzIG11dGV4IG9uIHRoZSBtYWluIHRocmVhZCBiZWZvcmUgZGlzcGF0Y2hp
bmcgdGhlIHRhc2sgdG8gCiAgICAgLy8gY2xlYW4gdXAgemVybyBieXRlIGRhdGFiYXNlIGZpbGVz
LiAgQW55IG9wZXJhdGlvbnMgdG8gb3BlbiBuZXcgZGF0YWJhc2Ugd2lsbCBoYXZlIHRvCiAgICAg
Ly8gd2FpdCBmb3IgdGhhdCB0YXNrIHRvIGZpbmlzaCBieSB3YWl0aW5nIG9uIHRoaXMgbXV0ZXgu
Ci0gICAgc3RhdGljIE11dGV4JiBvcGVuRGF0YWJhc2VNdXRleCgpOworICAgIHN0YXRpYyBMb2Nr
JiBvcGVuRGF0YWJhc2VNdXRleCgpOwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIGVtcHR5RGF0YWJhc2VGaWxlc1JlbW92YWxUYXNrV2lsbEJlU2NoZWR1bGVkKCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tE
aWRGaW5pc2goKTsKQEAgLTE1MCwxMSArMTUwLDExIEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBI
YXNoTWFwPFN0cmluZywgRGF0YWJhc2VTZXQqPiBEYXRhYmFzZU5hbWVNYXA7CiAgICAgdHlwZWRl
ZiBIYXNoTWFwPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIERhdGFiYXNlTmFtZU1hcCo+IERhdGFi
YXNlT3JpZ2luTWFwOwogCi0gICAgTXV0ZXggbV9vcGVuRGF0YWJhc2VNYXBHdWFyZDsKKyAgICBM
b2NrIG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQ7CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8
RGF0YWJhc2VPcmlnaW5NYXA+IG1fb3BlbkRhdGFiYXNlTWFwOwogCiAgICAgLy8gVGhpcyBsb2Nr
IHByb3RlY3RzIG1fZGF0YWJhc2UsIG1fb3JpZ2luTG9ja01hcCwgbV9kYXRhYmFzZURpcmVjdG9y
eVBhdGgsIG1fb3JpZ2luc0JlaW5nRGVsZXRlZCwgbV9iZWluZ0NyZWF0ZWQsIGFuZCBtX2JlaW5n
RGVsZXRlZC4KLSAgICBNdXRleCBtX2RhdGFiYXNlR3VhcmQ7CisgICAgTG9jayBtX2RhdGFiYXNl
R3VhcmQ7CiAgICAgU1FMaXRlRGF0YWJhc2UgbV9kYXRhYmFzZTsKIAogICAgIHR5cGVkZWYgSGFz
aE1hcDxTdHJpbmcsIFJlZlB0cjxPcmlnaW5Mb2NrPj4gT3JpZ2luTG9ja01hcDsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5oCShyZXZp
c2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdp
bkxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMjcsOCArMjcsOCBAQAogI2RlZmluZSBPcmlnaW5M
b2NrX2gKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmdQcmltaXRpdmVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMg
U3RyaW5nIGxvY2tGaWxlTmFtZUZvclBhdGgoU3RyaW5nIG9yaWdpblBhdGgpOwogCiAgICAgU3Ry
aW5nIG1fbG9ja0ZpbGVOYW1lOwotICAgIE11dGV4IG1fbXV0ZXg7CisgICAgTG9jayBtX211dGV4
OwogI2lmIFVTRShGSUxFX0xPQ0spCiAgICAgUGxhdGZvcm1GaWxlSGFuZGxlIG1fbG9ja0hhbmRs
ZTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxD
YWxsYmFja1dyYXBwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAjZGVmaW5lIFNRTENhbGxiYWNrV3JhcHBlcl9o
CiAKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZ1ByaW1pdGl2ZXMuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0UHRyOwogICAgICAgICBUKiBjYWxs
YmFjazsKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgICAgICAgICBp
ZiAoIW1fY2FsbGJhY2spIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoIW1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtODMsNyArODMsNyBAQCBw
dWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPFQ+IHVud3JhcCgpCiAgICAgewotICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0
ZXgpOwogICAgICAgICBBU1NFUlQoIW1fY2FsbGJhY2sgfHwgbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSk7CiAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBtX2NhbGxiYWNrLnJlbGVhc2UoKTsKQEAgLTkz
LDcgKzkzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ2FsbGJhY2soKSBjb25zdCB7IHJldHVy
biBtX2NhbGxiYWNrOyB9CiAKIHByaXZhdGU6Ci0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2Nr
IG1fbXV0ZXg7CiAgICAgUmVmUHRyPFQ+IG1fY2FsbGJhY2s7CiAgICAgUmVmUHRyPFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ+IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIH07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkJhY2tlbmQuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM4MSw3ICszODEsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZG9DbGVh
bnVwKCkKIAogICAgIHJlbGVhc2VPcmlnaW5Mb2NrSWZOZWVkZWQoKTsKIAotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N0
YXRlbWVudE11dGV4KTsKICAgICBtX3N0YXRlbWVudFF1ZXVlLmNsZWFyKCk7CiAKICAgICBpZiAo
bV9zcWxpdGVUcmFuc2FjdGlvbikgewpAQCAtNDY1LDcgKzQ2NSw3IEBAIFNRTFRyYW5zYWN0aW9u
QmFja2VuZDo6U3RhdGVGdW5jdGlvbiBTUUwKIAogdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6
OmVucXVldWVTdGF0ZW1lbnRCYWNrZW5kKHN0ZDo6dW5pcXVlX3B0cjxTUUxTdGF0ZW1lbnQ+IHN0
YXRlbWVudEJhY2tlbmQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOwogICAgIG1fc3Rh
dGVtZW50UXVldWUuYXBwZW5kKFdURjo6bW92ZShzdGF0ZW1lbnRCYWNrZW5kKSk7CiB9CiAKQEAg
LTY4MSw3ICs2ODEsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Z2V0TmV4dFN0YXRl
CiB7CiAgICAgbV9jdXJyZW50U3RhdGVtZW50QmFja2VuZCA9IG51bGxwdHI7CiAKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9zdGF0ZW1lbnRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9zdGF0ZW1lbnRNdXRleCk7CiAgICAgaWYgKCFtX3N0YXRlbWVudFF1ZXVlLmlzRW1wdHkoKSkK
ICAgICAgICAgbV9jdXJyZW50U3RhdGVtZW50QmFja2VuZCA9IG1fc3RhdGVtZW50UXVldWUudGFr
ZUZpcnN0KCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NR
TFRyYW5zYWN0aW9uQmFja2VuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgJKHJldmlzaW9uIDE4ODUxMCkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNr
ZW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA3LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNywgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRl
IDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTEyNSw3ICsxMjUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9yZWFkT25seTsK
ICAgICBib29sIG1faGFzVmVyc2lvbk1pc21hdGNoOwogCi0gICAgTXV0ZXggbV9zdGF0ZW1lbnRN
dXRleDsKKyAgICBMb2NrIG1fc3RhdGVtZW50TXV0ZXg7CiAgICAgRGVxdWU8c3RkOjp1bmlxdWVf
cHRyPFNRTFN0YXRlbWVudD4+IG1fc3RhdGVtZW50UXVldWU7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8U1FMaXRlVHJhbnNhY3Rpb24+IG1fc3FsaXRlVHJhbnNhY3Rpb247CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNw
cAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw3ICsxNTEsNyBAQCB2
b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OnNjaGVkdWxlRXhlCiAgICAgLy8gVGhlIG11dGV4
IHByb3ZpZGVzIGEgbWVtb3J5IGJhcnJpZXIgdG8gZW5zdXJlIHRoYXQgb25jZQogICAgIC8vIHRl
cm1pbmF0aW9uIGlzIHNjaGVkdWxlZCwgaXNFeGVjdXRpb25UZXJtaW5hdGluZyB3aWxsCiAgICAg
Ly8gYWNjdXJhdGVseSByZWZsZWN0IHRoYXQgc3RhdGUgd2hlbiBjYWxsZWQgZnJvbSBhbm90aGVy
IHRocmVhZC4KLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zY2hlZHVsZWRUZXJtaW5hdGlvbk11
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgp
OwogICAgIGlmIChtX3ZtLT53YXRjaGRvZykKICAgICAgICAgbV92bS0+d2F0Y2hkb2ctPmZpcmUo
KTsKIH0KQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OnNj
aGVkdWxlRXhlCiBib29sIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmlzRXhlY3V0aW9uVGVybWlu
YXRpbmcoKSBjb25zdAogewogICAgIC8vIFNlZSBjb21tZW50cyBpbiBzY2hlZHVsZUV4ZWN1dGlv
blRlcm1pbmF0aW9uIHJlZ2FyZGluZyBtdXRleCB1c2FnZS4KLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9zY2hlZHVsZWRUZXJtaW5hdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOwogICAgIGlmIChtX3ZtLT53YXRjaGRvZykKICAg
ICAgICAgcmV0dXJuIG1fdm0tPndhdGNoZG9nLT5kaWRGaXJlKCk7CiAgICAgcmV0dXJuIGZhbHNl
OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlw
dENvbnRyb2xsZXIuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSA8
ZGVidWdnZXIvRGVidWdnZXIuaD4KICNpbmNsdWRlIDxoZWFwL1N0cm9uZy5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmFr
ZWRQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBEZXByZWNh
dGVkIHsKIGNsYXNzIFNjcmlwdFZhbHVlOwpAQCAtOTcsNyArOTcsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIFdvcmtlckdsb2JhbFNjb3BlKiBtX3dvcmtlckdsb2JhbFNjb3BlOwog
ICAgICAgICBKU0M6OlN0cm9uZzxKU1dvcmtlckdsb2JhbFNjb3BlPiBtX3dvcmtlckdsb2JhbFNj
b3BlV3JhcHBlcjsKICAgICAgICAgYm9vbCBtX2V4ZWN1dGlvbkZvcmJpZGRlbjsKLSAgICAgICAg
bXV0YWJsZSBNdXRleCBtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXg7CisgICAgICAgIG11dGFi
bGUgTG9jayBtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXg7CiAgICAgfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1N
ZXNzYWdlUG9ydENoYW5uZWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9k
ZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcAkocmV2aXNpb24gMTg4NTEwKQor
KysgU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQgTWVzc2FnZVBvcnRDaGFu
bmVsOjpkaXNlbnRhbmdsZSgpCiAKIHZvaWQgTWVzc2FnZVBvcnRDaGFubmVsOjpwb3N0TWVzc2Fn
ZVRvUmVtb3RlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2so
bV9jaGFubmVsLT5tX211dGV4KTsKICAgICBpZiAoIW1fY2hhbm5lbC0+bV9vdXRnb2luZ1F1ZXVl
KQogICAgICAgICByZXR1cm47CiAgICAgYm9vbCB3YXNFbXB0eSA9IG1fY2hhbm5lbC0+bV9vdXRn
b2luZ1F1ZXVlLT5hcHBlbmRBbmRDaGVja0VtcHR5KHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1N
ZXNzYWdlUG9ydENoYW5uZWw6OkV2ZW50RGF0YT4obWVzc2FnZSwgV1RGOjptb3ZlKGNoYW5uZWxz
KSkpOwpAQCAtOTgsNyArOTgsNyBAQCB2b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbDo6cG9zdE1lc3Nh
Z2VUb1JlCiAKIGJvb2wgTWVzc2FnZVBvcnRDaGFubmVsOjp0cnlHZXRNZXNzYWdlRnJvbVJlbW90
ZShSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRy
PE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYgY2hhbm5lbHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX2NoYW5uZWwt
Pm1fbXV0ZXgpOwogICAgIGF1dG8gcmVzdWx0ID0gbV9jaGFubmVsLT5tX2luY29taW5nUXVldWUt
PnRyeUdldE1lc3NhZ2UoKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTIxLDIwICsxMjEsMjAgQEAgdm9pZCBNZXNzYWdlUG9ydENoYW5uZWw6OmNsb3NlKCkK
IGJvb2wgTWVzc2FnZVBvcnRDaGFubmVsOjppc0Nvbm5lY3RlZFRvKE1lc3NhZ2VQb3J0KiBwb3J0
KQogewogICAgIC8vIEZJWE1FOiBXaGF0IGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVzdWx0IHJlbWFp
bnMgdGhlIHNhbWUgYWZ0ZXIgd2UgcmVsZWFzZSB0aGUgbG9jaz8KLSAgICBNdXRleExvY2tlciBs
b2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+
bV9tdXRleCk7CiAgICAgcmV0dXJuIG1fY2hhbm5lbC0+bV9yZW1vdGVQb3J0ID09IHBvcnQ7CiB9
CiAKIGJvb2wgTWVzc2FnZVBvcnRDaGFubmVsOjpoYXNQZW5kaW5nQWN0aXZpdHkoKQogewogICAg
IC8vIEZJWE1FOiBXaGF0IGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVzdWx0IHJlbWFpbnMgdGhlIHNh
bWUgYWZ0ZXIgd2UgcmVsZWFzZSB0aGUgbG9jaz8KLSAgICBNdXRleExvY2tlciBsb2NrKG1fY2hh
bm5lbC0+bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7
CiAgICAgcmV0dXJuICFtX2NoYW5uZWwtPm1faW5jb21pbmdRdWV1ZS0+aXNFbXB0eSgpOwogfQog
CiBNZXNzYWdlUG9ydCogTWVzc2FnZVBvcnRDaGFubmVsOjpsb2NhbGx5RW50YW5nbGVkUG9ydChj
b25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9jaGFubmVs
LT5tX211dGV4KTsKICAgICAvLyBTZWUgaWYgYm90aCBjb250ZXh0cyBhcmUgcnVuIGJ5IHRoZSBz
YW1lIHRocmVhZCAoYXJlIHRoZSBzYW1lIGNvbnRleHQsIG9yIGFyZSBib3RoIGRvY3VtZW50cyku
CiAgICAgaWYgKG1fY2hhbm5lbC0+bV9yZW1vdGVQb3J0KSB7CiAgICAgICAgIC8vIFRoZSByZW1v
dGUgcG9ydCdzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgaXMgZ3VhcmFudGVlZCBub3QgdG8gY2hh
bmdlIGhlcmUgLSBNZXNzYWdlUG9ydDo6Y29udGV4dERlc3Ryb3llZCgpCkBAIC0xNjQsNyArMTY0
LDcgQEAgUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6On5QbGF0Zm9ybU1lcwogCiB2b2lkIFBs
YXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpzZXRSZW1vdGVQb3J0KE1lc3NhZ2VQb3J0KiBwb3J0
KQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbXV0ZXgpOwogICAgIC8vIFNob3VsZCBuZXZlciBzZXQgcG9ydCBpZiBpdCBpcyBhbHJlYWR5
IHNldC4KICAgICBBU1NFUlQoIXBvcnQgfHwgIW1fcmVtb3RlUG9ydCk7CiAgICAgbV9yZW1vdGVQ
b3J0ID0gcG9ydDsKQEAgLTE3NSwxMyArMTc1LDEzIEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWw+IFAKICAgICAvLyBGSVhNRTogV2hhdCBndWFyYW50ZWVzIHRoYXQgdGhl
IHJlc3VsdCByZW1haW5zIHRoZSBzYW1lIGFmdGVyIHdlIHJlbGVhc2UgdGhlIGxvY2s/CiAgICAg
Ly8gVGhpcyBsb2NrIG9ubHkgZ3VhcmFudGVlcyB0aGF0IHRoZSByZXR1cm5lZCBwb2ludGVyIHdp
bGwgbm90IGJlIHBvaW50aW5nIHRvIHJlbGVhc2VkIG1lbW9yeSwKICAgICAvLyBidXQgbm90IHRo
YXQgaXQgd2lsbCBzdGlsbCBiZSBwb2ludGluZyB0byB0aGlzIG9iamVjdCdzIGVudGFuZ2xlZCBw
b3J0IGNoYW5uZWwuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2sobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fZW50YW5nbGVkQ2hhbm5lbDsKIH0KIAog
dm9pZCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y2xvc2VJbnRlcm5hbCgpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7
CiAgICAgLy8gRGlzZW50YW5nbGUgb3Vyc2VsdmVzIGZyb20gdGhlIG90aGVyIGVuZC4gV2Ugc3Rp
bGwgbWFpbnRhaW4gYSByZWZlcmVuY2UgdG8gb3VyIGluY29taW5nIHF1ZXVlLCBzaW5jZSBwcmV2
aW91c2x5LWV4aXN0aW5nIG1lc3NhZ2VzIHNob3VsZCBzdGlsbCBiZSBkZWxpdmVyZWQuCiAgICAg
bV9yZW1vdGVQb3J0ID0gbnVsbHB0cjsKICAgICBtX2VudGFuZ2xlZENoYW5uZWwgPSBudWxscHRy
OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENo
YW5uZWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9y
bU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC05NSw4ICs5NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRS
ZW1vdGVQb3J0KE1lc3NhZ2VQb3J0Kik7CiAgICAgICAgIHZvaWQgY2xvc2VJbnRlcm5hbCgpOwog
Ci0gICAgICAgIC8vIE11dGV4IHVzZWQgdG8gZW5zdXJlIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gdGhl
IG9iamVjdCBpbnRlcm5hbHMuCi0gICAgICAgIE11dGV4IG1fbXV0ZXg7CisgICAgICAgIC8vIExv
Y2sgdXNlZCB0byBlbnN1cmUgZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgb2JqZWN0IGludGVybmFs
cy4KKyAgICAgICAgTG9jayBtX211dGV4OwogCiAgICAgICAgIC8vIFBvaW50ZXIgdG8gb3VyIGVu
dGFuZ2xlZCBwYWlyIC0gY2xlYXJlZCB3aGVuIGNsb3NlKCkgaXMgY2FsbGVkLgogICAgICAgICBS
ZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IG1fZW50YW5nbGVkQ2hhbm5lbDsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAkocmV2aXNp
b24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpy
ZW1vdmVBbGxJY29ucygpCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhlIGluLW1lbW9yeSByZWNvcmQg
b2YgZXZlcnkgSWNvblJlY29yZCwgYW55dGhpbmcgd2FpdGluZyB0byBiZSByZWFkIGZyb20gZGlz
aywgYW5kIGFueXRoaW5nIHdhaXRpbmcgdG8gYmUgd3JpdHRlbiB0byBkaXNrCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgICAgICAKICAgICAgICAgLy8gQ2xl
YXIgdGhlIEljb25SZWNvcmRzIGZvciBldmVyeSBwYWdlIFVSTCAtIFJlZkNvdW50aW5nIHdpbGwg
Y2F1c2UgdGhlIEljb25SZWNvcmRzIHRoZW1zZWx2ZXMgdG8gYmUgZGVsZXRlZAogICAgICAgICAv
LyBXZSBkb24ndCBkZWxldGUgdGhlIGFjdHVhbCBQYWdlUmVjb3JkcyBiZWNhdXNlIHdlIGhhdmUg
dGhlICJyZXRhaW4gaWNvbiBmb3IgdXJsIiBjb3VudCB0byBrZWVwIHRyYWNrIG9mCkBAIC0yMDAs
MTQgKzIwMCwxNCBAQCB2b2lkIEljb25EYXRhYmFzZTo6cmVtb3ZlQWxsSWNvbnMoKQogICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgLy8gQ2xlYXIgYWxsIGluLW1lbW9yeSByZWNvcmRzIG9m
IHRoaW5ncyB0aGF0IG5lZWQgdG8gYmUgc3luY2VkIG91dCB0byBkaXNrCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CiAgICAgICAgICAgICBt
X3BhZ2VVUkxzUGVuZGluZ1N5bmMuY2xlYXIoKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5n
U3luYy5jbGVhcigpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBDbGVhciBhbGwg
aW4tbWVtb3J5IHJlY29yZHMgb2YgdGhpbmdzIHRoYXQgbmVlZCB0byBiZSByZWFkIGluIGZyb20g
ZGlzawogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5n
UmVhZGluZ0xvY2spOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVh
ZGluZ0xvY2spOwogICAgICAgICAgICAgbV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQuY2xlYXIoKTsK
ICAgICAgICAgICAgIG1fcGFnZVVSTHNJbnRlcmVzdGVkSW5JY29ucy5jbGVhcigpOwogICAgICAg
ICAgICAgbV9pY29uc1BlbmRpbmdSZWFkaW5nLmNsZWFyKCk7CkBAIC0yMjksNyArMjI5LDcgQEAg
SW1hZ2UqIEljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uRm9yUAogICAgIGlmICghaXNPcGVu
KCkgfHwgIWRvY3VtZW50Q2FuSGF2ZUljb24ocGFnZVVSTE9yaWdpbmFsKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAKICAgICBwZXJmb3JtUGVuZGlu
Z1JldGFpbkFuZFJlbGVhc2VPcGVyYXRpb25zKCk7CiAgICAgCkBAIC0yNDUsNyArMjQ1LDcgQEAg
SW1hZ2UqIEljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uRm9yUAogICAgIC8vIDEgLSBUaGUg
aW5pdGlhbCB1cmwgaW1wb3J0IGlzIGluY29tcGxldGUgYW5kIHRoaXMgcGFnZVVSTCB3YXMgbWFy
a2VkIHRvIGJlIG5vdGlmaWVkIG9uY2UgaXQgaXMgY29tcGxldGUgaWYgYW4gaWNvblVSTCBleGlz
dHMKICAgICAvLyAyIC0gVGhlIGluaXRpYWwgdXJsIGltcG9ydCBJUyBjb21wbGV0ZSBhbmQgdGhp
cyBwYWdlVVJMIGhhcyBubyBpY29uCiAgICAgaWYgKCFwYWdlUmVjb3JkKSB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgCiAgICAgICAgIC8vIElt
cG9ydCBpcyBvbmdvaW5nLCB0aGVyZSBtaWdodCBiZSBhbiBpY29uLiAgSW4gdGhpcyBjYXNlLCBy
ZWdpc3RlciB0byBiZSBub3RpZmllZCB3aGVuIHRoZSBpY29uIGNvbWVzIGluCiAgICAgICAgIC8v
IElmIHdlIGV2ZXIgcmVhY2ggdGhpcyBjb25kaXRpb24sIHdlIGtub3cgd2UndmUgYWxyZWFkeSBt
YWRlIHRoZSBwYWdlVVJMIGNvcHkKQEAgLTI3Niw3ICsyNzYsNyBAQCBJbWFnZSogSWNvbkRhdGFi
YXNlOjpzeW5jaHJvbm91c0ljb25Gb3JQCiAgICAgICAgIGlmIChwYWdlVVJMQ29weS5pc051bGwo
KSkKICAgICAgICAgICAgIHBhZ2VVUkxDb3B5ID0gcGFnZVVSTE9yaWdpbmFsLmlzb2xhdGVkQ29w
eSgpOwogICAgIAotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xv
Y2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAg
ICAgICAgIG1fcGFnZVVSTHNJbnRlcmVzdGVkSW5JY29ucy5hZGQocGFnZVVSTENvcHkpOwogICAg
ICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcuYWRkKGljb25SZWNvcmQpOwogICAgICAgICB3YWtl
U3luY1RocmVhZCgpOwpAQCAtMzA3LDcgKzMwNyw3IEBAIFBhc3NOYXRpdmVJbWFnZVB0ciBJY29u
RGF0YWJhc2U6OnN5bmNocm8KICAgICBpZiAoIWljb24pCiAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgIHJldHVybiBpY29uLT5uYXRpdmVJbWFnZUZv
ckN1cnJlbnRGcmFtZSgpOwogfQogCkBAIC0zMjksNyArMzI5LDcgQEAgU3RyaW5nIEljb25EYXRh
YmFzZTo6c3luY2hyb25vdXNJY29uVVJMRgogICAgIGlmICghaXNPcGVuKCkgfHwgIWRvY3VtZW50
Q2FuSGF2ZUljb24ocGFnZVVSTE9yaWdpbmFsKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwog
ICAgICAgICAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgCiAgICAgUGFnZVVSTFJl
Y29yZCogcGFnZVJlY29yZCA9IG1fcGFnZVVSTFRvUmVjb3JkTWFwLmdldChwYWdlVVJMT3JpZ2lu
YWwpOwogICAgIGlmICghcGFnZVJlY29yZCkKQEAgLTQxNyw3ICs0MTcsNyBAQCB2b2lkIEljb25E
YXRhYmFzZTo6cmV0YWluSWNvbkZvclBhZ2VVUkwoCiAgICAgICAgIHJldHVybjsKIAogICAgIHsK
LSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsc1RvUmV0YWluT3JSZWxlYXNlTG9jayk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsc1RvUmV0YWluT3JSZWxlYXNlTG9jayk7
CiAgICAgICAgIG1fdXJsc1RvUmV0YWluLmFkZChwYWdlVVJMLmlzb2xhdGVkQ29weSgpKTsKICAg
ICAgICAgbV9yZXRhaW5PclJlbGVhc2VJY29uUmVxdWVzdGVkID0gdHJ1ZTsKICAgICB9CkBAIC00
NTAsNyArNDUwLDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnBlcmZvcm1SZXRhaW5JY29uRm9yUAog
ICAgICAgICBpZiAoIW1faWNvblVSTEltcG9ydENvbXBsZXRlKQogICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKICAgICAgICAgLy8gSWYg
dGhpcyBwYWdlVVJMIHdhaXRpbmcgdG8gYmUgc3luYydlZCwgdXBkYXRlIHRoZSBzeW5jIHJlY29y
ZAogICAgICAgICAvLyBUaGlzIHNhdmVzIHVzIGluIHRoZSBjYXNlIHdoZXJlIGEgcGFnZSB3YXMg
cmVhZHkgdG8gYmUgZGVsZXRlZCBmcm9tIHRoZSBkYXRhYmFzZSBidXQgd2FzIGp1c3QgcmV0YWlu
ZWQgLSBzbyB0aGVyZXMgbm8gbmVlZCB0byBkZWxldGUgaXQhCiAgICAgICAgIGlmICghbV9wcml2
YXRlQnJvd3NpbmdFbmFibGVkICYmIG1fcGFnZVVSTHNQZW5kaW5nU3luYy5jb250YWlucyhwYWdl
VVJMKSkgewpAQCAtNDcwLDcgKzQ3MCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpyZWxlYXNlSWNv
bkZvclBhZ2VVUkwKICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKICAgICAgICAgbV91cmxzVG9S
ZWxlYXNlLmFkZChwYWdlVVJMLmlzb2xhdGVkQ29weSgpKTsKICAgICAgICAgbV9yZXRhaW5PclJl
bGVhc2VJY29uUmVxdWVzdGVkID0gdHJ1ZTsKICAgICB9CkBAIC01MDYsNyArNTA2LDcgQEAgdm9p
ZCBJY29uRGF0YWJhc2U6OnBlcmZvcm1SZWxlYXNlSWNvbkZvcgogICAgIEFTU0VSVCghaWNvblJl
Y29yZCB8fCAoaWNvblJlY29yZCAmJiBtX2ljb25VUkxUb1JlY29yZE1hcC5nZXQoaWNvblJlY29y
ZC0+aWNvblVSTCgpKSA9PSBpY29uUmVjb3JkKSk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgCiAgICAgICAgIC8vIFNpbmNlIHRo
aXMgcGFnZVVSTCBpcyBnb2luZyBhd2F5LCB0aGVyZSdzIG5vIHJlYXNvbiBhbnlvbmUgd291bGQg
ZXZlciBiZSBpbnRlcmVzdGVkIGluIGl0cyByZWFkIHJlc3VsdHMgICAgCiAgICAgICAgIGlmICgh
bV9pY29uVVJMSW1wb3J0Q29tcGxldGUpCkBAIC01MjIsNyArNTIyLDcgQEAgdm9pZCBJY29uRGF0
YWJhc2U6OnBlcmZvcm1SZWxlYXNlSWNvbkZvcgogICAgIAogICAgIC8vIE1hcmsgc3R1ZmYgZm9y
IGRlbGV0aW9uIGZyb20gdGhlIGRhdGFiYXNlIG9ubHkgaWYgd2UncmUgbm90IGluIHByaXZhdGUg
YnJvd3NpbmcKICAgICBpZiAoIW1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CiAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nU3lu
Yy5zZXQocGFnZVVSTE9yaWdpbmFsLmlzb2xhdGVkQ29weSgpLCBwYWdlUmVjb3JkLT5zbmFwc2hv
dCh0cnVlKSk7CiAgICAgCiAgICAgICAgIC8vIElmIHRoaXMgcGFnZSBpcyB0aGUgbGFzdCBwYWdl
IHRvIHJlZmVyIHRvIGEgcGFydGljdWxhciBJY29uUmVjb3JkLCB0aGF0IEljb25SZWNvcmQgbmVl
ZHMgdG8KQEAgLTU0OCwxMiArNTQ4LDEyIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0
YUZvckljb25VUkwKICAgICAKICAgICBWZWN0b3I8U3RyaW5nPiBwYWdlVVJMczsKICAgICB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgCiAgICAgICAgIC8vIElmIHRo
aXMgaWNvbiB3YXMgcGVuZGluZyBhIHJlYWQsIHJlbW92ZSBpdCBmcm9tIHRoYXQgc2V0IGJlY2F1
c2UgdGhpcyBuZXcgZGF0YSBzaG91bGQgb3ZlcnJpZGUgd2hhdCBpcyBvbiBkaXNrCiAgICAgICAg
IFJlZlB0cjxJY29uUmVjb3JkPiBpY29uID0gbV9pY29uVVJMVG9SZWNvcmRNYXAuZ2V0KGljb25V
UkwpOwogICAgICAgICBpZiAoaWNvbikgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
cGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5y
ZW1vdmUoaWNvbi5nZXQoKSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgaWNvbiA9IGdl
dE9yQ3JlYXRlSWNvblJlY29yZChpY29uVVJMKTsKQEAgLTU2Nyw3ICs1NjcsNyBAQCB2b2lkIElj
b25EYXRhYmFzZTo6c2V0SWNvbkRhdGFGb3JJY29uVVJMCiAgICAgICAgIAogICAgICAgICAvLyBN
YXJrIHRoZSBJY29uUmVjb3JkIGFzIHJlcXVpcmluZyBhbiB1cGRhdGUgdG8gdGhlIGRhdGFiYXNl
IG9ubHkgaWYgcHJpdmF0ZSBicm93c2luZyBpcyBkaXNhYmxlZAogICAgICAgICBpZiAoIW1fcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCkgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
cGVuZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGlu
Z1N5bmNMb2NrKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nU3luYy5zZXQoaWNvblVSTCwg
aWNvbi0+c25hcHNob3QoKSk7CiAgICAgICAgIH0KIApAQCAtNjA4LDcgKzYwOCw3IEBAIHZvaWQg
SWNvbkRhdGFiYXNlOjpzZXRJY29uVVJMRm9yUGFnZVVSTCgKICAgICBTdHJpbmcgaWNvblVSTCwg
cGFnZVVSTDsKICAgICAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFu
ZEljb25Mb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7
CiAKICAgICAgICAgUGFnZVVSTFJlY29yZCogcGFnZVJlY29yZCA9IG1fcGFnZVVSTFRvUmVjb3Jk
TWFwLmdldChwYWdlVVJMT3JpZ2luYWwpOwogICAgICAgICAKQEAgLTYzNiwxMyArNjM2LDEzIEBA
IHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uVVJMRm9yUGFnZVVSTCgKICAgICAgICAgICAgIEFT
U0VSVChpY29uUmVjb3JkLT5yZXRhaW5pbmdQYWdlVVJMcygpLnNpemUoKSA9PSAwKTsKICAgICAg
ICAgICAgIExPRyhJY29uRGF0YWJhc2UsICJJY29uIGZvciBpY29uIHVybCAlcyBpcyBhYm91dCB0
byBiZSBkZXN0cm95ZWQgLSByZW1vdmluZyBtYXBwaW5nIGZvciBpdCIsIHVybEZvckxvZ2dpbmco
aWNvblJlY29yZC0+aWNvblVSTCgpKS5hc2NpaSgpLmRhdGEoKSk7CiAgICAgICAgICAgICBtX2lj
b25VUkxUb1JlY29yZE1hcC5yZW1vdmUoaWNvblJlY29yZC0+aWNvblVSTCgpKTsKLSAgICAgICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICBt
X2ljb25zUGVuZGluZ1JlYWRpbmcucmVtb3ZlKGljb25SZWNvcmQuZ2V0KCkpOwogICAgICAgICB9
CiAgICAgICAgIAogICAgICAgICAvLyBBbmQgbWFyayB0aGlzIG1hcHBpbmcgdG8gYmUgYWRkZWQg
dG8gdGhlIGRhdGFiYXNlCiAgICAgICAgIGlmICghbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKSB7
Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAg
ICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAg
ICAgbV9wYWdlVVJMc1BlbmRpbmdTeW5jLnNldChwYWdlVVJMLCBwYWdlUmVjb3JkLT5zbmFwc2hv
dCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gSWYgdGhlIGljb24gaXMgb24gaXRz
IGxhc3QgcmVmLCBtYXJrIGl0IGZvciBkZWxldGlvbgpAQCAtNjc0LDcgKzY3NCw3IEBAIEljb25M
b2FkRGVjaXNpb24gSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm8KICAgICAvLyAxIC0gV2hlbiB3ZSBy
ZWFkIHRoZSBpY29uIHVybHMgZnJvbSBkaXNrLCBnZXR0aW5nIHRoZSB0aW1lU3RhbXAgYXQgdGhl
IHNhbWUgdGltZQogICAgIC8vIDIgLSBXaGVuIHdlIGdldCBhIG5ldyBpY29uIGZyb20gdGhlIGxv
YWRlciwgaW4gd2hpY2ggY2FzZSB0aGUgdGltZXN0YW1wIGlzIHNldCBhdCB0aGF0IHRpbWUKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgICAgIGlmIChJY29u
UmVjb3JkKiBpY29uID0gbV9pY29uVVJMVG9SZWNvcmRNYXAuZ2V0KGljb25VUkwpKSB7CiAgICAg
ICAgICAgICBMT0coSWNvbkRhdGFiYXNlLCAiRm91bmQgZXhwaXJhdGlvbiB0aW1lIG9uIGEgcHJl
c2VudCBpY29uIGJhc2VkIG9uIGV4aXN0aW5nIEljb25SZWNvcmQiKTsKICAgICAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxpbnQ+KGN1cnJlbnRUaW1lKCkpIC0gc3RhdGljX2Nhc3Q8aW50Pihp
Y29uLT5nZXRUaW1lc3RhbXAoKSkgPiBpY29uRXhwaXJhdGlvblRpbWUgPyBJY29uTG9hZFllcyA6
IEljb25Mb2FkTm87CkBAIC02ODIsNyArNjgyLDcgQEAgSWNvbkxvYWREZWNpc2lvbiBJY29uRGF0
YWJhc2U6OnN5bmNocm9ubwogICAgIH0KICAgICAKICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEg
cmVjb3JkIGZvciBpdCwgYnV0IHdlICpoYXZlKiBpbXBvcnRlZCBhbGwgaWNvblVSTHMgZnJvbSBk
aXNrLCB0aGVuIHdlIHNob3VsZCBsb2FkIGl0IG5vdwotICAgIE11dGV4TG9ja2VyIHJlYWRpbmdM
b2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgIExvY2tIb2xkZXIgcmVhZGluZ0xvY2tl
cihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgaWYgKG1faWNvblVSTEltcG9ydENvbXBsZXRl
KQogICAgICAgICByZXR1cm4gSWNvbkxvYWRZZXM7CiAgICAgICAgIApAQCAtNjk5LDcgKzY5OSw3
IEBAIGJvb2wgSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25EYXRhS24KIHsKICAgICBBU1NF
UlRfTk9UX1NZTkNfVEhSRUFEKCk7CiAgICAgCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJs
QW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwog
ICAgIGlmIChJY29uUmVjb3JkKiBpY29uID0gbV9pY29uVVJMVG9SZWNvcmRNYXAuZ2V0KGljb25V
UkwpKQogICAgICAgICByZXR1cm4gaWNvbi0+aW1hZ2VEYXRhU3RhdHVzKCkgIT0gSW1hZ2VEYXRh
U3RhdHVzVW5rbm93bjsKIApAQCAtNzU0LDI2ICs3NTQsMjYgQEAgdm9pZCBJY29uRGF0YWJhc2U6
OmNoZWNrSW50ZWdyaXR5QmVmb3JlTwogCiBzaXplX3QgSWNvbkRhdGFiYXNlOjpwYWdlVVJMTWFw
cGluZ0NvdW50KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgcmV0dXJuIG1f
cGFnZVVSTFRvUmVjb3JkTWFwLnNpemUoKTsKIH0KIAogc2l6ZV90IEljb25EYXRhYmFzZTo6cmV0
YWluZWRQYWdlVVJMQ291bnQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKICAgICBw
ZXJmb3JtUGVuZGluZ1JldGFpbkFuZFJlbGVhc2VPcGVyYXRpb25zKCk7CiAgICAgcmV0dXJuIG1f
cmV0YWluZWRQYWdlVVJMcy5zaXplKCk7CiB9CiAKIHNpemVfdCBJY29uRGF0YWJhc2U6Omljb25S
ZWNvcmRDb3VudCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2sp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgIHJldHVybiBt
X2ljb25VUkxUb1JlY29yZE1hcC5zaXplKCk7CiB9CiAKIHNpemVfdCBJY29uRGF0YWJhc2U6Omlj
b25SZWNvcmRDb3VudFdpdGhEYXRhKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxB
bmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAg
ICAgc2l6ZV90IHJlc3VsdCA9IDA7CiAgICAgCiAgICAgSGFzaE1hcDxTdHJpbmcsIEljb25SZWNv
cmQqPjo6aXRlcmF0b3IgaSA9IG1faWNvblVSTFRvUmVjb3JkTWFwLmJlZ2luKCk7CkBAIC04Mjks
MTMgKzgyOSwxMyBAQCB2b2lkIEljb25EYXRhYmFzZTo6bm90aWZ5UGVuZGluZ0xvYWREZWNpCiAK
IHZvaWQgSWNvbkRhdGFiYXNlOjp3YWtlU3luY1RocmVhZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fc3luY0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwog
CiAgICAgaWYgKCFtX2Rpc2FibGVTdWRkZW5UZXJtaW5hdGlvbldoaWxlU3luY1RocmVhZEhhc1dv
cmtUb0RvKQogICAgICAgICBtX2Rpc2FibGVTdWRkZW5UZXJtaW5hdGlvbldoaWxlU3luY1RocmVh
ZEhhc1dvcmtUb0RvID0gc3RkOjptYWtlX3VuaXF1ZTxTdWRkZW5UZXJtaW5hdGlvbkRpc2FibGVy
PigpOwogCiAgICAgbV9zeW5jVGhyZWFkSGFzV29ya1RvRG8gPSB0cnVlOwotICAgIG1fc3luY0Nv
bmRpdGlvbi5zaWduYWwoKTsKKyAgICBtX3N5bmNDb25kaXRpb24ubm90aWZ5T25lKCk7CiB9CiAK
IHZvaWQgSWNvbkRhdGFiYXNlOjpzY2hlZHVsZU9yRGVmZXJTeW5jVGltZXIoKQpAQCAtODc0LDEz
ICs4NzQsMTMgQEAgYm9vbCBJY29uRGF0YWJhc2U6OmlzT3BlbigpIGNvbnN0CiAKIGJvb2wgSWNv
bkRhdGFiYXNlOjppc09wZW5CZXNpZGVzTWFpblRocmVhZENhbGxiYWNrcygpIGNvbnN0CiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fc3luY0xvY2spOwogICAgIHJldHVybiBtX3N5bmNUaHJlYWRSdW5uaW5nIHx8IG1fc3luY0RC
LmlzT3BlbigpOwogfQogCiBTdHJpbmcgSWNvbkRhdGFiYXNlOjpkYXRhYmFzZVBhdGgoKSBjb25z
dAogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX3N5bmNMb2NrKTsKICAgICByZXR1cm4gbV9jb21wbGV0ZURhdGFiYXNlUGF0aC5p
c29sYXRlZENvcHkoKTsKIH0KIApAQCAtOTE2LDcgKzkxNiw3IEBAIFBhZ2VVUkxSZWNvcmQqIElj
b25EYXRhYmFzZTo6Z2V0T3JDcmVhdGUKIAogICAgIFBhZ2VVUkxSZWNvcmQqIHBhZ2VSZWNvcmQg
PSBtX3BhZ2VVUkxUb1JlY29yZE1hcC5nZXQocGFnZVVSTCk7CiAgICAgCi0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgaWYgKCFtX2ljb25VUkxJbXBvcnRDb21wbGV0ZSkg
ewogICAgICAgICAvLyBJZiB0aGUgaW5pdGlhbCBpbXBvcnQgb2YgYWxsIFVSTHMgaGFzbid0IGNv
bXBsZXRlZCBhbmQgd2UgaGF2ZSBubyBwYWdlIHJlY29yZCwgd2UgYXNzdW1lIHdlICptaWdodCog
a25vdyBhYm91dCB0aGlzIGxhdGVyIGFuZCBjcmVhdGUgYSByZWNvcmQgZm9yIGl0CiAgICAgICAg
IGlmICghcGFnZVJlY29yZCkgewpAQCAtOTg1LDcgKzk4NSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjppY29uRGF0YWJhc2VTeW5jVGhyZWEKICAgICB9CiAgICAgCiAgICAgewotICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
c3luY0xvY2spOwogICAgICAgICBpZiAoIW1fc3luY0RCLm9wZW4obV9jb21wbGV0ZURhdGFiYXNl
UGF0aCkpIHsKICAgICAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIG9wZW4gaWNvbiBkYXRh
YmFzZSBhdCBwYXRoICVzIC0gJXMiLCBtX2NvbXBsZXRlRGF0YWJhc2VQYXRoLmFzY2lpKCkuZGF0
YSgpLCBtX3N5bmNEQi5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0x
MTEzLDcgKzExMTMsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybU9wZW5Jbml0aWFsaXph
CiAgICAgICAgICAgICBtX3N5bmNEQi5jbG9zZSgpOwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY0xvY2spOworICAg
ICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgICAgICAgICAg
ICAgIC8vIFNob3VsZCd2ZSBiZWVuIGNvbnN1bWVkIGJ5IFNRTGl0ZSwgZGVsZXRlIGp1c3QgdG8g
bWFrZSBzdXJlIHdlIGRvbid0IHNlZSBpdCBhZ2FpbiBpbiB0aGUgZnV0dXJlOwogICAgICAgICAg
ICAgICAgIGRlbGV0ZUZpbGUobV9jb21wbGV0ZURhdGFiYXNlUGF0aCArICItam91cm5hbCIpOwog
ICAgICAgICAgICAgICAgIGRlbGV0ZUZpbGUobV9jb21wbGV0ZURhdGFiYXNlUGF0aCk7CkBAIC0x
MjE1LDcgKzEyMTUsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAg
ICAgICAgIFN0cmluZyBpY29uVVJMID0gcXVlcnkuZ2V0Q29sdW1uVGV4dCgxKTsKIAogICAgICAg
ICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7Cisg
ICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKIAogICAgICAg
ICAgICAgUGFnZVVSTFJlY29yZCogcGFnZVJlY29yZCA9IG1fcGFnZVVSTFRvUmVjb3JkTWFwLmdl
dChwYWdlVVJMKTsKICAgICAgICAgICAgIApAQCAtMTI0OCw3ICsxMjQ4LDcgQEAgdm9pZCBJY29u
RGF0YWJhc2U6OnBlcmZvcm1VUkxJbXBvcnQoKQogICAgICAgICAvLyBvbmUgZm9yIHRoZSBVUkwg
YW5kIG9uZSBmb3IgdGhlIEltYWdlIGl0c2VsZgogICAgICAgICAvLyBOb3RlIHRoYXQgV2ViSWNv
bkRhdGFiYXNlIGlzIG5vdCBuZWNjZXNzYXJpbHkgQVBJIHNvIHdlIG1pZ2h0IGJlIGFibGUgdG8g
bWFrZSB0aGlzIGNoYW5nZQogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAgaWYgKG1fcGFnZVVSTHNQZW5kaW5n
SW1wb3J0LmNvbnRhaW5zKHBhZ2VVUkwpKSB7CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hEaWRJ
bXBvcnRJY29uVVJMRm9yUGFnZVVSTE9uTWFpblRocmVhZChwYWdlVVJMKTsKICAgICAgICAgICAg
ICAgICBtX3BhZ2VVUkxzUGVuZGluZ0ltcG9ydC5yZW1vdmUocGFnZVVSTCk7CkBAIC0xMjcxLDcg
KzEyNzEsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAgLy8g
YnV0IGFmdGVyIG1faWNvblVSTEltcG9ydENvbXBsZXRlIGlzIHNldCB0byB0cnVlLCB3ZSBkb24n
dCBjYXJlIGFib3V0IHRoaXMgc2V0IGFueW1vcmUKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxzOwog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogCiAgICAg
ICAgIHVybHMuYXBwZW5kUmFuZ2UobV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQuYmVnaW4oKSwgbV9w
YWdlVVJMc1BlbmRpbmdJbXBvcnQuZW5kKCkpOwogICAgICAgICBtX3BhZ2VVUkxzUGVuZGluZ0lt
cG9ydC5jbGVhcigpOyAgICAgICAgCkBAIC0xMjg0LDcgKzEyODQsNyBAQCB2b2lkIEljb25EYXRh
YmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAgLy8gUmVtb3ZlIHVucmV0YWluZWQgb25lcyBp
ZiBkYXRhYmFzZSBjbGVhbnVwIGlzIGFsbG93ZWQKICAgICAvLyBLZWVwIGEgc2V0IG9mIG9uZXMg
dGhhdCBhcmUgcmV0YWluZWQgYW5kIHBlbmRpbmcgbm90aWZpY2F0aW9uCiAgICAgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogCiAgICAgICAgIHBlcmZvcm1QZW5kaW5nUmV0
YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMoKTsKIApAQCAtMTMwMSwxMiArMTMwMSwxMiBAQCB2b2lk
IEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2ljb25VUkxUb1JlY29yZE1hcC5yZW1vdmUoaWNvblJlY29yZC0+aWNvblVSTCgpKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5n
TG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9w
ZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFnZVVS
THNJbnRlcmVzdGVkSW5JY29ucy5yZW1vdmUodXJsc1tpXSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9pY29uc1BlbmRpbmdSZWFkaW5nLnJlbW92ZShpY29uUmVjb3JkKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2sp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGlu
Z1N5bmNMb2NrKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1N5
bmMuc2V0KGljb25SZWNvcmQtPmljb25VUkwoKSwgaWNvblJlY29yZC0+c25hcHNob3QodHJ1ZSkp
OyAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgIH0KQEAgLTEzNzEsNyArMTM3MSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpz
eW5jVGhyZWFkTWFpbkxvb3AoKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgewotICAg
ICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgICAgICAgICBwZXJm
b3JtUGVuZGluZ1JldGFpbkFuZFJlbGVhc2VPcGVyYXRpb25zKCk7CiAgICAgICAgIH0KICAgICAg
ICAgCkBAIC0xNDUxLDcgKzE0NTEsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVBlbmRp
bmdSZXRhaW5BCiAgICAgSGFzaENvdW50ZWRTZXQ8U3RyaW5nPiB0b1JlbGVhc2U7CiAKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIHBlbmRpbmdXb3JrTG9ja2VyKG1fdXJsc1RvUmV0YWluT3JS
ZWxlYXNlTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgcGVuZGluZ1dvcmtMb2NrZXIobV91cmxz
VG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKICAgICAgICAgaWYgKCFtX3JldGFpbk9yUmVsZWFzZUlj
b25SZXF1ZXN0ZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTE0ODgsNyArMTQ4OCw3IEBA
IGJvb2wgSWNvbkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKCkKICAgICAvLyBUaGlzIHdheSB3
ZSB3b24ndCBob2xkIHRoZSBsb2NrIGZvciBhIGxvbmcgcGVyaW9kIG9mIHRpbWUKICAgICBWZWN0
b3I8SWNvblJlY29yZCo+IGljb25zOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5k
aW5nUmVhZGluZ0xvY2spOwogICAgICAgICBpY29ucy5hcHBlbmRSYW5nZShtX2ljb25zUGVuZGlu
Z1JlYWRpbmcuYmVnaW4oKSwgbV9pY29uc1BlbmRpbmdSZWFkaW5nLmVuZCgpKTsKICAgICB9CiAg
ICAgCkBAIC0xNTAxLDkgKzE1MDEsOSBAQCBib29sIEljb25EYXRhYmFzZTo6cmVhZEZyb21EYXRh
YmFzZSgpCiAKICAgICAgICAgLy8gVmVyaWZ5IHRoaXMgaWNvbiBzdGlsbCB3YW50cyB0byBiZSBy
ZWFkIGZyb20gZGlzawogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciB1cmxMb2Nr
ZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIHVybExvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBNdXRleExv
Y2tlciByZWFkTG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgICAgICAgICBM
b2NrSG9sZGVyIHJlYWRMb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgIGlmIChtX2ljb25zUGVuZGluZ1JlYWRpbmcuY29udGFpbnMo
aWNvbnNbaV0pKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgbmV3IGRhdGEKQEAg
LTE1OTEsMTEgKzE1OTEsMTEgQEAgYm9vbCBJY29uRGF0YWJhc2U6OndyaXRlVG9EYXRhYmFzZSgp
CiAgICAgLy8gd2UnbGwgcGljayBpdCB1cCBvbiB0aGUgbmV4dCBwYXNzLiAgVGhpcyBncmVhdGx5
IHNpbXBsaWZpZXMgdGhlIGxvY2tpbmcgc3RyYXRlZ3kgZm9yIHRoaXMgbWV0aG9kIGFuZCByZW1h
aW5zIGNvaGVzaXZlIHdpdGggY2hhbmdlcwogICAgIC8vIGFza2VkIGZvciBieSB0aGUgZGF0YWJh
c2Ugb24gdGhlIG1haW4gdGhyZWFkCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV91cmxBbmRJY29uTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNv
bkxvY2spOwogICAgICAgICBWZWN0b3I8SWNvblNuYXBzaG90PiBpY29uU25hcHNob3RzOwogICAg
ICAgICBWZWN0b3I8UGFnZVVSTFNuYXBzaG90PiBwYWdlU25hcHNob3RzOwogICAgICAgICB7Ci0g
ICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogCiAgICAgICAgICAg
ICBpY29uU25hcHNob3RzLmFwcGVuZFJhbmdlKG1faWNvbnNQZW5kaW5nU3luYy5iZWdpbigpLnZh
bHVlcygpLCBtX2ljb25zUGVuZGluZ1N5bmMuZW5kKCkudmFsdWVzKCkpOwogICAgICAgICAgICAg
bV9pY29uc1BlbmRpbmdTeW5jLmNsZWFyKCk7CkBAIC0xNjU4LDcgKzE2NTgsNyBAQCB2b2lkIElj
b25EYXRhYmFzZTo6cHJ1bmVVbnJldGFpbmVkSWNvbnMoCiAgICAgCiAgICAgaW50IHJlc3VsdDsK
ICAgICB3aGlsZSAoKHJlc3VsdCA9IHBhZ2VTUUwuc3RlcCgpKSA9PSBTUUxJVEVfUk9XKSB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgICAgIGlmICghbV9wYWdlVVJM
VG9SZWNvcmRNYXAuY29udGFpbnMocGFnZVNRTC5nZXRDb2x1bW5UZXh0KDEpKSkKICAgICAgICAg
ICAgIHBhZ2VJRHNUb0RlbGV0ZS5hcHBlbmQocGFnZVNRTC5nZXRDb2x1bW5JbnQ2NCgwKSk7CiAg
ICAgfQpAQCAtMTc5MSw3ICsxNzkxLDcgQEAgdm9pZCogSWNvbkRhdGFiYXNlOjpjbGVhbnVwU3lu
Y1RocmVhZCgpCiAgICAgd3JpdGVUb0RhdGFiYXNlKCk7CiAgICAgCiAgICAgLy8gQ2xvc2UgdGhl
IGRhdGFiYXNlCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY0xvY2spOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgIAogICAgIG1fZGF0YWJhc2VEaXJlY3Rvcnkg
PSBTdHJpbmcoKTsKICAgICBtX2NvbXBsZXRlRGF0YWJhc2VQYXRoID0gU3RyaW5nKCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaAkocmV2aXNpb24gMTg4
NTEwKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpZiBFTkFCTEUoSUNPTkRBVEFCQVNFKQogI2lu
Y2x1ZGUgIlNRTGl0ZURhdGFiYXNlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3
dGYvQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtMTQxLDggKzE0
Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRW5hYmxlZDsKICAgICBib29sIG1fcHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZDsKIAotICAgIG11dGFibGUgTXV0ZXggbV9zeW5jTG9jazsKLSAgICBU
aHJlYWRDb25kaXRpb24gbV9zeW5jQ29uZGl0aW9uOworICAgIG11dGFibGUgTG9jayBtX3N5bmNM
b2NrOworICAgIENvbmRpdGlvbiBtX3N5bmNDb25kaXRpb247CiAgICAgU3RyaW5nIG1fZGF0YWJh
c2VEaXJlY3Rvcnk7CiAgICAgLy8gSG9sZGluZyBtX3N5bmNMb2NrIGlzIHJlcXVpcmVkIHdoZW4g
YWNjZXNzaW5nIG1fY29tcGxldGVEYXRhYmFzZVBhdGgKICAgICBTdHJpbmcgbV9jb21wbGV0ZURh
dGFiYXNlUGF0aDsKQEAgLTE1MywyNCArMTU0LDI0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3N5
bmNUaHJlYWRIYXNXb3JrVG9EbzsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3VkZGVuVGVybWluYXRp
b25EaXNhYmxlcj4gbV9kaXNhYmxlU3VkZGVuVGVybWluYXRpb25XaGlsZVN5bmNUaHJlYWRIYXNX
b3JrVG9EbzsKIAotICAgIE11dGV4IG1fdXJsQW5kSWNvbkxvY2s7CisgICAgTG9jayBtX3VybEFu
ZEljb25Mb2NrOwogICAgIC8vIEhvbGRpbmcgbV91cmxBbmRJY29uTG9jayBpcyByZXF1aXJlZCB3
aGVuIGFjY2Vzc2luZyBhbnkgb2YgdGhlIGZvbGxvd2luZyBkYXRhIHN0cnVjdHVyZXMgb3IgdGhl
IG9iamVjdHMgdGhleSBjb250YWluCiAgICAgSGFzaE1hcDxTdHJpbmcsIEljb25SZWNvcmQqPiBt
X2ljb25VUkxUb1JlY29yZE1hcDsKICAgICBIYXNoTWFwPFN0cmluZywgUGFnZVVSTFJlY29yZCo+
IG1fcGFnZVVSTFRvUmVjb3JkTWFwOwogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3JldGFpbmVkUGFn
ZVVSTHM7CiAKLSAgICBNdXRleCBtX3BlbmRpbmdTeW5jTG9jazsKKyAgICBMb2NrIG1fcGVuZGlu
Z1N5bmNMb2NrOwogICAgIC8vIEhvbGRpbmcgbV9wZW5kaW5nU3luY0xvY2sgaXMgcmVxdWlyZWQg
d2hlbiBhY2Nlc3NpbmcgYW55IG9mIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzCiAgICAg
SGFzaE1hcDxTdHJpbmcsIFBhZ2VVUkxTbmFwc2hvdD4gbV9wYWdlVVJMc1BlbmRpbmdTeW5jOwog
ICAgIEhhc2hNYXA8U3RyaW5nLCBJY29uU25hcHNob3Q+IG1faWNvbnNQZW5kaW5nU3luYzsKICAg
ICAKLSAgICBNdXRleCBtX3BlbmRpbmdSZWFkaW5nTG9jazsgICAgCisgICAgTG9jayBtX3BlbmRp
bmdSZWFkaW5nTG9jazsgICAgCiAgICAgLy8gSG9sZGluZyBtX3BlbmRpbmdTeW5jTG9jayBpcyBy
ZXF1aXJlZCB3aGVuIGFjY2Vzc2luZyBhbnkgb2YgdGhlIGZvbGxvd2luZyBkYXRhIHN0cnVjdHVy
ZXMgLSB3aGVuIGRlYWxpbmcgd2l0aCBJY29uUmVjb3JkKnMsIGhvbGRpbmcgbV91cmxBbmRJY29u
TG9jayBpcyBhbHNvIHJlcXVpcmVkCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fcGFnZVVSTHNQZW5k
aW5nSW1wb3J0OwogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3BhZ2VVUkxzSW50ZXJlc3RlZEluSWNv
bnM7CiAgICAgSGFzaFNldDxJY29uUmVjb3JkKj4gbV9pY29uc1BlbmRpbmdSZWFkaW5nOwogCi0g
ICAgTXV0ZXggbV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrOworICAgIExvY2sgbV91cmxzVG9S
ZXRhaW5PclJlbGVhc2VMb2NrOwogICAgIC8vIEhvbGRpbmcgbV91cmxzVG9SZXRhaW5PclJlbGVh
c2VMb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUgZm9sbG93aW5nIGRh
dGEgc3RydWN0dXJlcy4KICAgICBIYXNoQ291bnRlZFNldDxTdHJpbmc+IG1fdXJsc1RvUmV0YWlu
OwogICAgIEhhc2hDb3VudGVkU2V0PFN0cmluZz4gbV91cmxzVG9SZWxlYXNlOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHJldmlz
aW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIFNjcm9sbGluZ1RyZWU6On5T
Y3JvbGxpbmdUcmVlKCkKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVu
dFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewog
ICAgIC8vIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYnkgdGhlIGV2ZW50IGhhbmRsaW5nIHRocmVh
ZAotICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1f
bXV0ZXgpOwogCiAgICAgYm9vbCBzaG91bGRTZXRMYXRjaCA9IHdoZWVsRXZlbnQuc2hvdWxkQ29u
c2lkZXJMYXRjaGluZygpOwogICAgIApAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgU2Nyb2xsaW5n
VHJlZTo6Y29tbWl0TmV3VHJlZVN0YXRlKHMKICAgICAgICAgJiYgKHJvb3RTdGF0ZU5vZGVDaGFu
Z2VkCiAgICAgICAgICAgICB8fCByb290Tm9kZS0+aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGlu
Z1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbikKICAgICAg
ICAgICAgIHx8IHJvb3ROb2RlLT5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2Rl
OjpTY3JvbGxMYXllcikpKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKIAogICAgICAgICBpZiAocm9vdFN0YXRl
Tm9kZUNoYW5nZWQgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZU5vZGU6OlNjcm9sbExheWVyKSkKICAgICAgICAgICAgIG1fbWFpbkZyYW1lU2Nyb2xsUG9zaXRp
b24gPSBGbG9hdFBvaW50KCk7CkBAIC0yMDgsNyArMjA4LDcgQEAgU2Nyb2xsaW5nVHJlZU5vZGUq
IFNjcm9sbGluZ1RyZWU6Om5vZGVGbwogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFt
ZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBpbm5lZFRvVGhlUmlnaHQsIGJv
b2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9UaGVCb3R0b20pCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3N3aXBlU3RhdGVNdXRleCk7CiAKICAgICBtX21haW5GcmFtZVBpbm5lZFRvVGhlTGVmdCA9IHBp
bm5lZFRvVGhlTGVmdDsKICAgICBtX21haW5GcmFtZVBpbm5lZFRvVGhlUmlnaHQgPSBwaW5uZWRU
b1RoZVJpZ2h0OwpAQCAtMjE4LDU0ICsyMTgsNTQgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRN
YWluRnJhbWVQaW5TdGF0ZQogCiBGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWU6Om1haW5GcmFtZVNj
cm9sbFBvc2l0aW9uKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICByZXR1cm4gbV9tYWluRnJhbWVTY3JvbGxQb3Np
dGlvbjsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlv
bihGbG9hdFBvaW50IHBvc2l0aW9uKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIG1fbWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb24gPSBwb3NpdGlvbjsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjppc1BvaW50SW5Ob25G
YXN0U2Nyb2xsYWJsZVJlZ2lvbihJbnRQb2ludCBwKQogewotICAgIE11dGV4TG9ja2VyIGxvY2so
bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIAogICAgIHJldHVy
biBtX25vbkZhc3RTY3JvbGxhYmxlUmVnaW9uLmNvbnRhaW5zKHApOwogfQogCiBib29sIFNjcm9s
bGluZ1RyZWU6OmlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9tdXRleCk7ICAgIAorICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsgICAgCiAKICAg
ICByZXR1cm4gbV9tYWluRnJhbWVJc1J1YmJlckJhbmRpbmc7CiB9CiAKIHZvaWQgU2Nyb2xsaW5n
VHJlZTo6c2V0TWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nKGJvb2wgaXNSdWJiZXJCYW5kaW5nKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX211dGV4KTsKIAogICAgIG1fbWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nID0gaXNSdWJiZXJC
YW5kaW5nOwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3Mo
KQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbXV0ZXgpOwogICAgIAogICAgIHJldHVybiBtX21haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmc7
CiB9CiAgICAgCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZUlzU2Nyb2xsU25hcHBp
bmcoYm9vbCBpc1Njcm9sbFNuYXBwaW5nKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICAKICAgICBtX21haW5G
cmFtZUlzU2Nyb2xsU25hcHBpbmcgPSBpc1Njcm9sbFNuYXBwaW5nOwogfQogCiB2b2lkIFNjcm9s
bGluZ1RyZWU6OnNldENhblJ1YmJlckJhbmRTdGF0ZShib29sIGNhblJ1YmJlckJhbmRBdExlZnQs
IGJvb2wgY2FuUnViYmVyQmFuZEF0UmlnaHQsIGJvb2wgY2FuUnViYmVyQmFuZEF0VG9wLCBib29s
IGNhblJ1YmJlckJhbmRBdEJvdHRvbSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lw
ZVN0YXRlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsK
IAogICAgIG1fcnViYmVyQmFuZHNBdExlZnQgPSBjYW5SdWJiZXJCYW5kQXRMZWZ0OwogICAgIG1f
cnViYmVyQmFuZHNBdFJpZ2h0ID0gY2FuUnViYmVyQmFuZEF0UmlnaHQ7CkBAIC0yNzUsMjggKzI3
NSwyOCBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldENhblJ1YmJlckJhbmRTdGF0CiAKIGJvb2wg
U2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdExlZnQoKQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9zd2lwZVN0YXRlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3N3aXBlU3RhdGVN
dXRleCk7CiAKICAgICByZXR1cm4gbV9ydWJiZXJCYW5kc0F0TGVmdDsKIH0KIAogYm9vbCBTY3Jv
bGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0UmlnaHQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2so
bV9zd2lwZVN0YXRlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRl
eCk7CiAKICAgICByZXR1cm4gbV9ydWJiZXJCYW5kc0F0UmlnaHQ7CiB9CiAKIGJvb2wgU2Nyb2xs
aW5nVHJlZTo6cnViYmVyQmFuZHNBdEJvdHRvbSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayht
X3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4
KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRzQXRCb3R0b207CiB9CiAKIGJvb2wgU2Nyb2xs
aW5nVHJlZTo6cnViYmVyQmFuZHNBdFRvcCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3
aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsK
IAogICAgIHJldHVybiBtX3J1YmJlckJhbmRzQXRUb3A7CiB9CkBAIC0zMDgsMTQgKzMwOCwxNCBA
QCBib29sIFNjcm9sbGluZ1RyZWU6OmlzSGFuZGxpbmdQcm9ncmFtbWF0CiAKIHZvaWQgU2Nyb2xs
aW5nVHJlZTo6c2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKFNjcm9sbFBpbm5pbmdCZWhhdmlvciBw
aW5uaW5nKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwogICAgIAogICAgIG1fc2Ny
b2xsUGlubmluZ0JlaGF2aW9yID0gcGlubmluZzsKIH0KIAogU2Nyb2xsUGlubmluZ0JlaGF2aW9y
IFNjcm9sbGluZ1RyZWU6OnNjcm9sbFBpbm5pbmdCZWhhdmlvcigpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fc3dpcGVT
dGF0ZU11dGV4KTsKICAgICAKICAgICByZXR1cm4gbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7CiB9
CkBAIC0zMjUsNyArMzI1LDcgQEAgYm9vbCBTY3JvbGxpbmdUcmVlOjp3aWxsV2hlZWxFdmVudFN0
YXJ0UwogICAgIGlmICh3aGVlbEV2ZW50LnBoYXNlKCkgIT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2VCZWdhbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9jayht
X3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4
KTsKIAogICAgIGlmICh3aGVlbEV2ZW50LmRlbHRhWCgpID4gMCAmJiBtX21haW5GcmFtZVBpbm5l
ZFRvVGhlTGVmdCAmJiAhbV9ydWJiZXJCYW5kc0F0TGVmdCkKICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0zNTEsMTkgKzM1MSwxOSBAQCBib29sIFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1BlcmZv
cm1hbmNlCiAKIFNjcm9sbGluZ05vZGVJRCBTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSgpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fbXV0ZXgpOwogICAgIHJldHVybiBtX2xhdGNoZWROb2RlOwogfQogCiB2b2lkIFNjcm9sbGlu
Z1RyZWU6OnNldExhdGNoZWROb2RlKFNjcm9sbGluZ05vZGVJRCBub2RlKQogewotICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsK
ICAgICBtX2xhdGNoZWROb2RlID0gbm9kZTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpjbGVh
ckxhdGNoZWROb2RlKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgbV9sYXRjaGVkTm9kZSA9IDA7CiB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgJ
KHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlNj
cm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1
ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMu
aD4KIApAQCAtMTYwLDExICsxNjEsMTEgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8
U2Nyb2xsaW5nTm9kZUlELCBTY3JvbGxpbmdUcmVlTm9kZSo+IFNjcm9sbGluZ1RyZWVOb2RlTWFw
OwogICAgIFNjcm9sbGluZ1RyZWVOb2RlTWFwIG1fbm9kZU1hcDsKIAotICAgIE11dGV4IG1fbXV0
ZXg7CisgICAgTG9jayBtX211dGV4OwogICAgIFJlZ2lvbiBtX25vbkZhc3RTY3JvbGxhYmxlUmVn
aW9uOwogICAgIEZsb2F0UG9pbnQgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbjsKIAotICAgIE11
dGV4IG1fc3dpcGVTdGF0ZU11dGV4OworICAgIExvY2sgbV9zd2lwZVN0YXRlTXV0ZXg7CiAgICAg
U2Nyb2xsUGlubmluZ0JlaGF2aW9yIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yIHsgRG9Ob3RQaW4g
fTsKICAgICBTY3JvbGxpbmdOb2RlSUQgbV9sYXRjaGVkTm9kZSB7IDAgfTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHJldmlz
aW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFu
ZGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsNyArMTM3LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fY2xlYXJQcmVzc3VyZU9uTWVtb3J5UmVsZWFzZTsKICAgICB2b2lkIChebV9yZWxlYXNl
TWVtb3J5QmxvY2spKCk7CiAgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYgbV9vYnNlcnZlcjsKLSAg
ICBNdXRleCBtX29ic2VydmVyTXV0ZXg7CisgICAgTG9jayBtX29ic2VydmVyTXV0ZXg7CiAjZWxp
ZiBPUyhMSU5VWCkKICAgICBpbnQgbV9ldmVudEZEOwogICAgIGludCBtX3ByZXNzdXJlTGV2ZWxG
RDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRh
dGFiYXNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAy
LDcgKzEwMiw3IEBAIHZvaWQgSFJURkRhdGFiYXNlTG9hZGVyOjpsb2FkQXN5bmNocm9ub3UKIHsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
dGhyZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aHJlYWRMb2NrKTsKICAgICAK
ICAgICBpZiAoIW1faHJ0ZkRhdGFiYXNlLmdldCgpICYmICFtX2RhdGFiYXNlTG9hZGVyVGhyZWFk
KSB7CiAgICAgICAgIC8vIFN0YXJ0IHRoZSBhc3luY2hyb25vdXMgZGF0YWJhc2UgbG9hZGluZyBw
cm9jZXNzLgpAQCAtMTE3LDcgKzExNyw3IEBAIGJvb2wgSFJURkRhdGFiYXNlTG9hZGVyOjppc0xv
YWRlZCgpIGNvbnMKIAogdm9pZCBIUlRGRGF0YWJhc2VMb2FkZXI6OndhaXRGb3JMb2FkZXJUaHJl
YWRDb21wbGV0aW9uKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90aHJlYWRMb2NrKTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RocmVhZExvY2spOwogICAgIAogICAgIC8vIHdhaXRG
b3JUaHJlYWRDb21wbGV0aW9uKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgdHdpY2UgZm9yIHRoZSBz
YW1lIHRocmVhZC4KICAgICBpZiAobV9kYXRhYmFzZUxvYWRlclRocmVhZCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oCShy
ZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0
YWJhc2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IkhSVEZEYXRhYmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAg
LTc2LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SFJURkRhdGFiYXNl
PiBtX2hydGZEYXRhYmFzZTsKIAogICAgIC8vIEhvbGRpbmcgYSBtX3RocmVhZExvY2sgaXMgcmVx
dWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9kYXRhYmFzZUxvYWRlclRocmVhZC4KLSAgICBNdXRleCBt
X3RocmVhZExvY2s7CisgICAgTG9jayBtX3RocmVhZExvY2s7CiAgICAgVGhyZWFkSWRlbnRpZmll
ciBtX2RhdGFiYXNlTG9hZGVyVGhyZWFkOwogCiAgICAgZmxvYXQgbV9kYXRhYmFzZVNhbXBsZVJh
dGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhh
bmRsZXJDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQkocmV2aXNpb24gMTg4NTEwKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0J
KHdvcmtpbmcgY29weSkKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6c2V0UmVjZWl2ZWRNCiAgICAgbV91bmRlck1lbW9yeVByZXNzdXJlID0gdHJ1ZTsKIAog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CiAgICAgICAgIGlmICghbV9v
YnNlcnZlcikgewogICAgICAgICAgICAgbV9vYnNlcnZlciA9IENGUnVuTG9vcE9ic2VydmVyQ3Jl
YXRlKE5VTEwsIGtDRlJ1bkxvb3BCZWZvcmVXYWl0aW5nIHwga0NGUnVuTG9vcEV4aXQsIE5PIC8q
IGRvbid0IHJlcGVhdCAqLywKICAgICAgICAgICAgICAgICAwLCBXZWJDb3JlOjpyZXNwb25kVG9N
ZW1vcnlQcmVzc3VyZUNhbGxiYWNrLCBOVUxMKTsKQEAgLTI3MiwxNCArMjcyLDE0IEBAIHZvaWQg
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpjbGVhck1lbW9yeVAKICAgICBtX3VuZGVyTWVtb3J5UHJl
c3N1cmUgPSBmYWxzZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2Jz
ZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7
CiAgICAgICAgIG1fbWVtb3J5UHJlc3N1cmVSZWFzb24gPSBNZW1vcnlQcmVzc3VyZVJlYXNvbk5v
bmU7CiAgICAgfQogfQogCiBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2hvdWxkV2FpdEZv
ck1lbW9yeUNsZWFyTWVzc2FnZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2JzZXJ2
ZXJNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vYnNlcnZlck11dGV4KTsKICAgICBy
ZXR1cm4gbV9tZW1vcnlQcmVzc3VyZVJlYXNvbiAmIE1lbW9yeVByZXNzdXJlUmVhc29uVk1TdGF0
dXM7CiB9CiAKQEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
cmVzcG9uZFRvTWVtCiAgICAgQVNTRVJUKFdlYlRocmVhZElzTG9ja2VkT3JEaXNhYmxlZCgpKTsK
IAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CiAgICAgICAgIG1fb2Jz
ZXJ2ZXIgPSAwOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCShyZXZpc2lvbiAx
ODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVz
aE1vbml0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmUKICAgICBkb3VibGUgbW9ub3RvbmljQW5pbWF0
aW9uU3RhcnRUaW1lOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmICghbV9zY2hl
ZHVsZWQpCiAgICAgICAgICAgICArK21fdW5zY2hlZHVsZWRGaXJlQ291bnQ7CiAgICAgICAgIGVs
c2UKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGxh
eURpZFJlCiAgICAgICAgIG1fY2xpZW50c1RvQmVOb3RpZmllZCA9IG51bGxwdHI7CiAKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9jayhtX211dGV4KTsKICAgICAgICAgbV9wcmV2aW91c0ZyYW1lRG9uZSA9IHRydWU7CiAgICAg
fQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAs
IDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw5ICszMCw5IEBACiAKICNpbmNsdWRlICJQbGF0Zm9y
bVNjcmVlbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
LSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1vbm90b25pY0FuaW1hdGlvblN0
YXJ0VGltZShkb3VibGUgc3RhcnRUaW1lKSB7IG1fbW9ub3RvbmljQW5pbWF0aW9uU3RhcnRUaW1l
ID0gc3RhcnRUaW1lOyB9CiAKLSAgICBNdXRleCYgbXV0ZXgoKSB7IHJldHVybiBtX211dGV4OyB9
CisgICAgTG9jayYgbXV0ZXgoKSB7IHJldHVybiBtX211dGV4OyB9CiAKICAgICBzdGF0aWMgUmVm
UHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGVmYXVsdERpc3BsYXlSZWZyZXNoTW9u
aXRvcihQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fcHJldmlvdXNGcmFtZURvbmU7CiAgICAgaW50IG1fdW5zY2hlZHVsZWRGaXJlQ291
bnQ7IC8vIE51bWJlciBvZiB0aW1lcyB0aGUgZGlzcGxheSBsaW5rIGhhcyBmaXJlZCB3aXRoIG5v
IGNsaWVudHMuCiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNwbGF5SUQ7Ci0gICAgTXV0ZXgg
bV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAKICAgICBIYXNoU2V0PERpc3BsYXlSZWZyZXNo
TW9uaXRvckNsaWVudCo+IG1fY2xpZW50czsKICAgICBIYXNoU2V0PERpc3BsYXlSZWZyZXNoTW9u
aXRvckNsaWVudCo+KiBtX2NsaWVudHNUb0JlTm90aWZpZWQ7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAkocmV2aXNp
b24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTczNSw3ICs3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXREZWxheUNhbGxiYWNr
cyhib29sIGRlbGF5KSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKICAgICBpZiAoZGVsYXkpCiAg
ICAgICAgICsrbV9kZWxheUNhbGxiYWNrczsKICAgICBlbHNlIHsKQEAgLTc1NCw3ICs3NTQsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bWFpCiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1haW5UaHJlYWRQZW5kaW5nRmxhZygpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9j
ayhtX3F1ZXVlTXV0ZXgpOwogICAgIG1fbWFpblRocmVhZENhbGxQZW5kaW5nID0gZmFsc2U7CiB9
CiAKQEAgLTgyMCw3ICs4MjAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bjo6ZGlzCiAKICAgICBOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uID0gTm90aWZpY2F0aW9uKCk7
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVNdXRleCk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgICAgICAKICAgICAgICAgaWYgKG1f
cXVldWVkTm90aWZpY2F0aW9ucy5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMxNyw3ICszMTcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiBtX3BlbmRpbmdTZWVrOwogCiAgICAgVmVjdG9yPE5vdGlmaWNhdGlvbj4gbV9xdWV1ZWRO
b3RpZmljYXRpb25zOwotICAgIG11dGFibGUgTXV0ZXggbV9xdWV1ZU11dGV4OworICAgIG11dGFi
bGUgTG9jayBtX3F1ZXVlTXV0ZXg7CiAKICAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybVRpbWVSYW5nZXM+IG1fY2FjaGVkTG9hZGVkVGltZVJhbmdlczsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbkNGLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0YuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNyArMTU4LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBpbmxpbmUgdm9pZCogY2FsbGJhY2tDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4obV9vYmplY3RJRCk7IH0KIAotICAgIHN0YXRpYyBNdXRleCYgbWFw
TG9jaygpOworICAgIHN0YXRpYyBMb2NrJiBtYXBMb2NrKCk7CiAgICAgc3RhdGljIEhhc2hNYXA8
dWludHB0cl90LCBBVkZXcmFwcGVyKj4mIG1hcCgpOwogICAgIHN0YXRpYyBBVkZXcmFwcGVyKiBh
dmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KHZvaWQqKTsKICAgICB2b2lkIGFkZFRvTWFwKCk7
CkBAIC0xNDA0LDkgKzE0MDQsOSBAQCBBVkZXcmFwcGVyOjp+QVZGV3JhcHBlcigpCiAgICAgbV9h
dlBsYXllciA9IDA7CiB9CiAKLU11dGV4JiBBVkZXcmFwcGVyOjptYXBMb2NrKCkKK0xvY2smIEFW
RldyYXBwZXI6Om1hcExvY2soKQogewotICAgIHN0YXRpYyBNdXRleCBtYXBMb2NrOworICAgIHN0
YXRpYyBMb2NrIG1hcExvY2s7CiAgICAgcmV0dXJuIG1hcExvY2s7CiB9CiAKQEAgLTE0MTgsNyAr
MTQxOCw3IEBAIEhhc2hNYXA8dWludHB0cl90LCBBVkZXcmFwcGVyKj4mIEFWRldyYXAKIAogdm9p
ZCBBVkZXcmFwcGVyOjphZGRUb01hcCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExv
Y2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICAKICAgICAvLyBI
YXNoTWFwIGRvZXNuJ3QgbGlrZSBhIGtleSBvZiAwLCBhbmQgYWxzbyBtYWtlIHN1cmUgd2UgYXJl
bid0CiAgICAgLy8gdXNpbmcgYW4gb2JqZWN0IElEIHRoYXQncyBhbHJlYWR5IGluIHVzZS4KQEAg
LTE0MzQsNyArMTQzNCw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6cmVtb3ZlRnJvbU1hcCgpIGNvbnN0
CiB7CiAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6cmVtb3ZlRnJvbU1hcCglcCAlZCkiLCB0
aGlzLCBtX29iamVjdElEKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgbWFwKCkucmVtb3ZlKG1fb2Jq
ZWN0SUQpOwogfQogCkBAIC0xNjM1LDcgKzE2MzUsNyBAQCB2b2lkIEFWRldyYXBwZXI6OmNyZWF0
ZVBsYXllckl0ZW0oKQogCiB2b2lkIEFWRldyYXBwZXI6OnBlcmlvZGljVGltZU9ic2VydmVyQ2Fs
bGJhY2soQVZDRlBsYXllclJlZiwgQ01UaW1lIGNtVGltZSwgdm9pZCogY29udGV4dCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
YXBMb2NrKCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tD
b250ZXh0KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJB
VkZXcmFwcGVyOjpwZXJpb2RpY1RpbWVPYnNlcnZlckNhbGxiYWNrIGludm9rZWQgZm9yIGRlbGV0
ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7
CkBAIC0xNjY2LDcgKzE2NjYsNyBAQCB2b2lkIEFWRldyYXBwZXI6OnByb2Nlc3NOb3RpZmljYXRp
b24odm9pCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Tm90aWZpY2F0aW9uQ2FsbGJhY2tEYXRhPiBu
b3RpZmljYXRpb25EYXRhIHsgc3RhdGljX2Nhc3Q8Tm90aWZpY2F0aW9uQ2FsbGJhY2tEYXRhKj4o
Y29udGV4dCkgfTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2Zldy
YXBwZXJGb3JDYWxsYmFja0NvbnRleHQobm90aWZpY2F0aW9uRGF0YS0+bV9jb250ZXh0KTsKICAg
ICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6cHJvY2Vzc05v
dGlmaWNhdGlvbiBpbnZva2VkIGZvciBkZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCkpOwpAQCAtMTcyMSw3ICsxNzIxLDcgQEAgdm9pZCBB
VkZXcmFwcGVyOjpub3RpZmljYXRpb25DYWxsYmFjayhDRgogCiB2b2lkIEFWRldyYXBwZXI6Omxv
YWRQbGF5YWJsZUNvbXBsZXRpb25DYWxsYmFjayhBVkNGQXNzZXRSZWYsIHZvaWQqIGNvbnRleHQp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBlckZvckNh
bGxiYWNrQ29udGV4dChjb250ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1l
ZGlhLCAiQVZGV3JhcHBlcjo6bG9hZFBsYXlhYmxlQ29tcGxldGlvbkNhbGxiYWNrIGludm9rZWQg
Zm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihj
b250ZXh0KSk7CkBAIC0xNzQ5LDcgKzE3NDksNyBAQCB2b2lkIEFWRldyYXBwZXI6OmNoZWNrUGxh
eWFiaWxpdHkoKQogCiB2b2lkIEFWRldyYXBwZXI6OmxvYWRNZXRhZGF0YUNvbXBsZXRpb25DYWxs
YmFjayhBVkNGQXNzZXRSZWYsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBB
VkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChjb250ZXh0KTsK
ICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6bG9hZE1l
dGFkYXRhQ29tcGxldGlvbkNhbGxiYWNrIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAl
ZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xNzY5LDcgKzE3
NjksNyBAQCB2b2lkIEFWRldyYXBwZXI6OmJlZ2luTG9hZGluZ01ldGFkYXRhKCkKIAogdm9pZCBB
VkZXcmFwcGVyOjpzZWVrQ29tcGxldGVkQ2FsbGJhY2soQVZDRlBsYXllckl0ZW1SZWYsIEJvb2xl
YW4gZmluaXNoZWQsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1h
cExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFw
cGVyKiBzZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChjb250ZXh0KTsKICAgICBp
ZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6c2Vla0NvbXBsZXRl
ZENhbGxiYWNrIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0
X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xODEyLDcgKzE4MTIsNyBAQCB2b2lkIEFW
RldyYXBwZXI6OnByb2Nlc3NDdWUodm9pZCogY29udGV4CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
TGVnaWJsZU91dHB1dERhdGE+IGxlZ2libGVPdXRwdXREYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8TGVn
aWJsZU91dHB1dERhdGEqPihjb250ZXh0KSk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobWFw
TG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldyYXBw
ZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGxlZ2libGVPdXRwdXREYXRh
LT5tX2NvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZX
cmFwcGVyOjpwcm9jZXNzQ3VlIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJl
aW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xODI4LDcgKzE4MjgsNyBA
QCB2b2lkIEFWRldyYXBwZXI6OnByb2Nlc3NDdWUodm9pZCogY29udGV4CiB2b2lkIEFWRldyYXBw
ZXI6OmxlZ2libGVPdXRwdXRDYWxsYmFjayh2b2lkKiBjb250ZXh0LCBBVkNGUGxheWVySXRlbUxl
Z2libGVPdXRwdXRSZWYgbGVnaWJsZU91dHB1dCwgQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3RyaW5n
cywgQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVCdWZmZXJzLCBDTVRpbWUgaXRlbVRpbWUpCiB7CiAg
ICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExv
Y2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVy
KiBzZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChjb250ZXh0KTsKICAgICBpZiAo
IXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6bGVnaWJsZU91dHB1dENh
bGxiYWNrIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xODY2LDcgKzE4NjYsNyBAQCB2b2lkIEFWRldy
YXBwZXI6OnByb2Nlc3NTaG91bGRXYWl0Rm9yTG9hCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TG9h
ZFJlcXVlc3REYXRhPiBsb2FkUmVxdWVzdERhdGEocmVpbnRlcnByZXRfY2FzdDxMb2FkUmVxdWVz
dERhdGEqPihjb250ZXh0KSk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYg
PSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGxvYWRSZXF1ZXN0RGF0YS0+bV9jb250ZXh0
KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6cHJv
Y2Vzc1Nob3VsZFdhaXRGb3JMb2FkaW5nT2ZSZXNvdXJjZSBpbnZva2VkIGZvciBkZWxldGVkIEFW
RldyYXBwZXIgJWQiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCkpOwpAQCAt
MTkyMiw3ICsxOTIyLDcgQEAgYm9vbCBBVkZXcmFwcGVyOjpzaG91bGRXYWl0Rm9yTG9hZGluZ09m
UgogQm9vbGVhbiBBVkZXcmFwcGVyOjpyZXNvdXJjZUxvYWRlclNob3VsZFdhaXRGb3JMb2FkaW5n
T2ZSZXF1ZXN0ZWRSZXNvdXJjZShBVkNGQXNzZXRSZXNvdXJjZUxvYWRlclJlZiByZXNvdXJjZUxv
YWRlciwgQVZDRkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdFJlZiBsb2FkaW5nUmVxdWVzdCwg
dm9pZCAqY29udGV4dCkKIHsKICAgICBBU1NFUlQoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSAh
PSBkaXNwYXRjaF9nZXRfY3VycmVudF9xdWV1ZSgpKTsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldy
YXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRleHQpOwogICAg
IGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpyZXNvdXJjZUxv
YWRlclNob3VsZFdhaXRGb3JMb2FkaW5nT2ZSZXF1ZXN0ZWRSZXNvdXJjZSBpbnZva2VkIGZvciBk
ZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29udGV4
dCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUdTdHJlYW1lcjo6aGEKIHsKICAgICBtX3NhbXBsZVRpbWVySGFuZGxlci5jYW5jZWwoKTsK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9zYW1wbGVNdXRleCk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKICAgICAgICAgbV9wZW5kaW5nU2FtcGxl
cy5hcHBlbmQoc2FtcGxlKTsKICAgICB9CiAgICAgbV9zYW1wbGVUaW1lckhhbmRsZXIuc2NoZWR1
bGUoIltXZWJLaXRdIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNr
T2ZTYW1wbGUiLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4oc3RkOjpiaW5kKCZJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlLCB0aGlzKSkpOwpAQCAtOTIs
NyArOTIsNyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vCiB7CiAg
ICAgVmVjdG9yPEdSZWZQdHI8R3N0U2FtcGxlPiA+IHNhbXBsZXM7CiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrKG1fc2FtcGxlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV9zYW1wbGVNdXRleCk7CiAgICAgICAgIG1fcGVuZGluZ1NhbXBsZXMuc3dhcChzYW1wbGVzKTsK
ICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZh
dGVHU3RyZWFtZXIuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAgIGd1bG9uZyBtX2V2
ZW50UHJvYmU7CiAgICAgVmVjdG9yPEdSZWZQdHI8R3N0U2FtcGxlPiA+IG1fcGVuZGluZ1NhbXBs
ZXM7CiAgICAgU3RyaW5nIG1fc3RyZWFtSWQ7Ci0gICAgTXV0ZXggbV9zYW1wbGVNdXRleDsKKyAg
ICBMb2NrIG1fc2FtcGxlTXV0ZXg7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRl
QmFzZUdTdHJlYW1lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCShyZXZpc2lv
biAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw3ICsx
MDIsNyBAQCB2b2lkIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OnRhZ3NDaGFuCiAgICAgR1Jl
ZlB0cjxHc3RUYWdMaXN0PiB0YWdzOwogICAgIGdfb2JqZWN0X2dldChtX3BhZC5nZXQoKSwgInRh
Z3MiLCAmdGFncy5vdXRQdHIoKSwgTlVMTCk7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrKG1fdGFnTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90YWdNdXRleCk7CiAg
ICAgICAgIG1fdGFncy5zd2FwKHRhZ3MpOwogICAgIH0KIApAQCAtMTU4LDcgKzE1OCw3IEBAIHZv
aWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6bm90aWZ5VHIKIAogICAgIEdSZWZQdHI8R3N0
VGFnTGlzdD4gdGFnczsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV90YWdNdXRl
eCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3RhZ011dGV4KTsKICAgICAgICAgdGFncy5z
d2FwKG1fdGFncyk7CiAgICAgfQogICAgIGlmICghdGFncykKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBwcml2YXRlOgogICAgIEdU
aHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UgbV9hY3RpdmVUaW1lckhhbmRsZXI7CiAgICAgR1RocmVh
ZFNhZmVNYWluTG9vcFNvdXJjZSBtX3RhZ1RpbWVySGFuZGxlcjsKIAotICAgIE11dGV4IG1fdGFn
TXV0ZXg7CisgICAgTG9jayBtX3RhZ011dGV4OwogICAgIEdSZWZQdHI8R3N0VGFnTGlzdD4gbV90
YWdzOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rp
c3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAJKHJldmlz
aW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNw
bGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCwxNCArODQsMTQg
QEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnJlcXVlc3RSZQogICAgICAgICBzZXRJ
c0FjdGl2ZSh0cnVlKTsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrKG11dGV4KCkpOwor
ICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgpKTsKICAgICBzZXRJc1NjaGVkdWxlZCh0cnVlKTsK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRp
c3BsYXlMaW5rRmlyZWQoZG91YmxlIG5vd1NlY29uZHMsIGRvdWJsZSBvdXRwdXRUaW1lU2Vjb25k
cykKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9j
ayhtdXRleCgpKTsKICAgICBpZiAoIWlzUHJldmlvdXNGcmFtZURvbmUoKSkKICAgICAgICAgcmV0
dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUxMiwyMSArNTEyLDIxIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uOjoKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmFk
ZExpc3RlbmVyKE1lZGlhUGxheWVyTGlzdGVuZXIqIGxpc3RlbmVyKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX211dGV4TGlzdGVuZXJzKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211
dGV4TGlzdGVuZXJzKTsKIAogICAgIG1fbGlzdGVuZXJzLmFkZChsaXN0ZW5lcik7CiB9CiAKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpyZW1vdmVMaXN0ZW5lcihNZWRp
YVBsYXllckxpc3RlbmVyKiBsaXN0ZW5lcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9t
dXRleExpc3RlbmVycyk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7
CiAKICAgICBtX2xpc3RlbmVycy5yZW1vdmUobGlzdGVuZXIpOwogfQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6bm90aWZ5RGVsZXRlZCgpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5lcnMpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bXV0ZXhMaXN0ZW5lcnMpOwogCiAgICAgZm9yIChIYXNoU2V0PE1lZGlhUGxheWVyTGlzdGVuZXIq
Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2xpc3RlbmVycy5iZWdpbigpOyBpdCAhPSBtX2xpc3Rl
bmVycy5lbmQoKTsgKytpdCkKICAgICAgICAgKCppdCktPm9uTWVkaWFQbGF5ZXJEZWxldGVkKCk7
CkBAIC03MDQsNyArNzA0LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBNZWRpYVBsYXll
clByaQogCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbjo6QXN5bmNDYWxsYmFjazo6SW52b2tlKF9fUlBDX19pbl9vcHQgSU1GQXN5bmNS
ZXN1bHQgKnBBc3luY1Jlc3VsdCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBpZiAoIW1fbWVkaWFQbGF5
ZXIpCiAgICAgICAgIHJldHVybiBTX09LOwpAQCAtNzE5LDcgKzcxOSw3IEBAIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgTWVkaWFQbGF5ZXJQcmkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Om9uTWVkaWFQbGF5ZXJEZWxldGVkKCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9tdXRleCk7CiAKICAgICBtX21lZGlhUGxheWVyID0gbnVsbHB0cjsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZv
dW5kYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgJKHJldmlzaW9uIDE4ODUx
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYUZvdW5kYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCBw
cml2YXRlOgogCiAgICAgY2xhc3MgTWVkaWFQbGF5ZXJMaXN0ZW5lcjsKICAgICBIYXNoU2V0PE1l
ZGlhUGxheWVyTGlzdGVuZXIqPiBtX2xpc3RlbmVyczsKLSAgICBNdXRleCBtX211dGV4TGlzdGVu
ZXJzOworICAgIExvY2sgbV9tdXRleExpc3RlbmVyczsKIAogICAgIENPTVB0cjxJTUZNZWRpYVNl
c3Npb24+IG1fbWVkaWFTZXNzaW9uOwogICAgIENPTVB0cjxJTUZTb3VyY2VSZXNvbHZlcj4gbV9z
b3VyY2VSZXNvbHZlcjsKQEAgLTE0OSw3ICsxNDksNyBAQCBwcml2YXRlOgogICAgICAgICBVTE9O
RyBtX3JlZkNvdW50OwogICAgICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24q
IG1fbWVkaWFQbGF5ZXI7CiAgICAgICAgIGJvb2wgbV9ldmVudDsKLSAgICAgICAgTXV0ZXggbV9t
dXRleDsKKyAgICAgICAgTG9jayBtX211dGV4OwogICAgIH07CiAKIH07CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5oCShyZXZpc2lvbiAxODg1
MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIxMSw5ICsyMTEsOSBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fcGVu
ZGluZ1NjYWxlOwogICAgIGZsb2F0IG1fcGVuZGluZ1pvb21lZE91dFNjYWxlOwogCi0gICAgbXV0
YWJsZSBNdXRleCBtX3RpbGVNdXRleDsKLSAgICBtdXRhYmxlIE11dGV4IG1fc2F2ZWREaXNwbGF5
UmVjdE11dGV4OwotICAgIG11dGFibGUgTXV0ZXggbV9jb250ZW50UmVwbGFjZW1lbnRJbWFnZU11
dGV4OworICAgIG11dGFibGUgTG9jayBtX3RpbGVNdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9z
YXZlZERpc3BsYXlSZWN0TXV0ZXg7CisgICAgbXV0YWJsZSBMb2NrIG1fY29udGVudFJlcGxhY2Vt
ZW50SW1hZ2VNdXRleDsKIAogICAgIGJvb2wgbV90aWxlQ29udHJvbGxlclNob3VsZFVzZUxvd1Nj
YWxlVGlsZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRp
bGVDYWNoZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVn
YWN5VGlsZUNhY2hlLm1tCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNyArMTQ3
LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldFRpbGVzT3BhcXVlKGJvbwogICAgIGlmICht
X3RpbGVzT3BhcXVlID09IG9wYXF1ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRl
eCk7CiAKICAgICBtX3RpbGVzT3BhcXVlID0gb3BhcXVlOwogICAgIG1fem9vbWVkT3V0VGlsZUdy
aWQtPnVwZGF0ZVRpbGVPcGFjaXR5KCk7CkBAIC0xNjAsNyArMTYwLDcgQEAgdm9pZCBMZWdhY3lU
aWxlQ2FjaGU6OmRvTGF5b3V0VGlsZXMoKQogICAgIGlmIChpc1RpbGVDcmVhdGlvblN1c3BlbmRl
ZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICBMZWdhY3lUaWxl
R3JpZCogYWN0aXZlR3JpZCA9IGFjdGl2ZVRpbGVHcmlkKCk7CiAgICAgLy8gRXZlbiB0aG91Z2gg
d2UgYXJlbid0IGFjdHVhbGx5IGNyZWF0aW5nIHRpbGVzIGluIHRoZSBpbmFjdGl2ZSBncmlkLCB3
ZQogICAgIC8vIHN0aWxsIG5lZWQgdG8gZHJvcCBpbnZhbGlkIHRpbGVzIGluIHJlc3BvbnNlIHRv
IGEgbGF5b3V0LgpAQCAtMjAwLDcgKzIwMCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzZXRD
dXJyZW50U2NhbGUoZmwKICAgICBpZiAoIWtlZXBzWm9vbWVkT3V0VGlsZXMoKSAmJiAhaXNUaWxl
SW52YWxpZGF0aW9uU3VzcGVuZGVkKCkpIHsKICAgICAgICAgLy8gVGlsZSBpbnZhbGlkYXRpb24g
aXMgbm9ybWFsbHkgc3VzcGVuZGVkIGR1cmluZyB6b29taW5nIGJ5IFVJS2l0IGJ1dCBzb21lIGFw
cGxpY2F0aW9ucwogICAgICAgICAvLyB1c2luZyBjdXN0b20gc2Nyb2xsdmlld3MgbWF5IHpvb20g
d2l0aG91dCB0cmlnZ2VyaW5nIHRoZSBjYWxsYmFja3MuIEludmFsaWRhdGUgdGhlIHRpbGVzIGV4
cGxpY2l0bHkuCi0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICAgICAgYWN0aXZlVGlsZUdy
aWQoKS0+ZHJvcEFsbFRpbGVzKCk7CiAgICAgICAgIGFjdGl2ZVRpbGVHcmlkKCktPmNyZWF0ZVRp
bGVzKENvdmVyVmlzaWJsZU9ubHkpOwogICAgIH0KQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIExl
Z2FjeVRpbGVDYWNoZTo6Y29tbWl0U2NhbGVDaGFuZ2UoCiAgICAgQVNTRVJUKG1fcGVuZGluZ1pv
b21lZE91dFNjYWxlIHx8IG1fcGVuZGluZ1NjYWxlKTsKICAgICBBU1NFUlQobV90aWxpbmdNb2Rl
ICE9IERpc2FibGVkKTsKICAgICAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKIAogICAgIGlmIChtX3BlbmRp
bmdab29tZWRPdXRTY2FsZSkgewogICAgICAgICBtX3pvb21lZE91dFRpbGVHcmlkLT5zZXRTY2Fs
ZShtX3BlbmRpbmdab29tZWRPdXRTY2FsZSk7CkBAIC0zMTQsNyArMzE0LDcgQEAgdm9pZCBMZWdh
Y3lUaWxlQ2FjaGU6OmxheW91dFRpbGVzTm93KCkKICAgICBpZiAobV90aWxpbmdNb2RlID09IFpv
b21pbmcpCiAgICAgICAgIG1fdGlsaW5nTW9kZSA9IE1pbmltYWw7CiAKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4
KTsKICAgICBMZWdhY3lUaWxlR3JpZCogYWN0aXZlR3JpZCA9IGFjdGl2ZVRpbGVHcmlkKCk7CiAg
ICAgaWYgKGFjdGl2ZUdyaWQtPmNoZWNrRG9TaW5nbGVUaWxlTGF5b3V0KCkpIHsKICAgICAgICAg
bV90aWxpbmdNb2RlID0gc2F2ZWRUaWxpbmdNb2RlOwpAQCAtMzI3LDE0ICszMjcsMTQgQEAgdm9p
ZCBMZWdhY3lUaWxlQ2FjaGU6OmxheW91dFRpbGVzTm93KCkKIHZvaWQgTGVnYWN5VGlsZUNhY2hl
OjpsYXlvdXRUaWxlc05vd0ZvclJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBBU1NF
UlQoV2ViVGhyZWFkSXNMb2NrZWRPckRpc2FibGVkKCkpOwotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogCiAg
ICAgYWN0aXZlVGlsZUdyaWQoKS0+YWRkVGlsZXNDb3ZlcmluZ1JlY3QocmVjdCk7CiB9CiAKIHZv
aWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMoKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90
aWxlTXV0ZXgpOwogICAgIHJlbW92ZUFsbE5vblZpc2libGVUaWxlc0ludGVybmFsKCk7CiB9CiAK
QEAgLTM1Niw3ICszNTYsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6cmVtb3ZlQWxsTm9uVmlz
aWJsCiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxUaWxlcygpCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rp
bGVNdXRleCk7CiAgICAgbV96b29tZWRPdXRUaWxlR3JpZC0+ZHJvcEFsbFRpbGVzKCk7CiAgICAg
aWYgKG1fem9vbWVkSW5UaWxlR3JpZCkKICAgICAgICAgbV96b29tZWRJblRpbGVHcmlkLT5kcm9w
QWxsVGlsZXMoKTsKQEAgLTM2NCw3ICszNjQsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6cmVt
b3ZlQWxsVGlsZXMoKQogCiB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6cmVtb3ZlRm9yZWdyb3VuZFRp
bGVzKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICBpZiAoIWtlZXBzWm9vbWVkT3V0VGlsZXMo
KSkKICAgICAgICAgbV96b29tZWRPdXRUaWxlR3JpZC0+ZHJvcEFsbFRpbGVzKCk7CiAgICAgaWYg
KG1fem9vbWVkSW5UaWxlR3JpZCkKQEAgLTM3MywxMyArMzczLDEzIEBAIHZvaWQgTGVnYWN5VGls
ZUNhY2hlOjpyZW1vdmVGb3JlZ3JvdW5kVGkKIAogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldENv
bnRlbnRSZXBsYWNlbWVudEltYWdlKFJldGFpblB0cjxDR0ltYWdlUmVmPiBjb250ZW50UmVwbGFj
ZW1lbnRJbWFnZSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9jb250ZW50UmVwbGFjZW1l
bnRJbWFnZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2NvbnRlbnRSZXBsYWNlbWVu
dEltYWdlTXV0ZXgpOwogICAgIG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2UgPSBjb250ZW50UmVw
bGFjZW1lbnRJbWFnZTsKIH0KIAogUmV0YWluUHRyPENHSW1hZ2VSZWY+IExlZ2FjeVRpbGVDYWNo
ZTo6Y29udGVudFJlcGxhY2VtZW50SW1hZ2UoKSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRleCk7CiAgICAgcmV0dXJuIG1fY29udGVu
dFJlcGxhY2VtZW50SW1hZ2U7CiB9CiAKQEAgLTQyNiw3ICs0MjYsNyBAQCB2b2lkIExlZ2FjeVRp
bGVDYWNoZTo6dGlsZUNyZWF0aW9uVGltZXJGCiB7CiAgICAgaWYgKGlzVGlsZUNyZWF0aW9uU3Vz
cGVuZGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxl
TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICBjcmVhdGVU
aWxlc0luQWN0aXZlR3JpZChDb3ZlclNwZWN1bGF0aXZlKTsKIH0KIApAQCAtNjIwLDcgKzYyMCw3
IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzY2hlZHVsZUxheWVyRmx1c2gKIAogdm9pZCBMZWdh
Y3lUaWxlQ2FjaGU6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JiBkaXJ0eVJl
Y3QpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NhdmVkRGlzcGxheVJlY3RNdXRleCk7CiAgICAgYm9v
bCBhZGRlZEZpcnN0UmVjdCA9IG1fc2F2ZWREaXNwbGF5UmVjdHMuaXNFbXB0eSgpOwogICAgIG1f
c2F2ZWREaXNwbGF5UmVjdHMuYXBwZW5kKGRpcnR5UmVjdCk7CiAgICAgaWYgKCFhZGRlZEZpcnN0
UmVjdCkKQEAgLTY5Miw3ICs2OTIsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6dXBkYXRlVGls
aW5nTW9kZSgpCiAgICAgICAgIGlmIChtX3RpbGluZ01vZGUgPT0gRGlzYWJsZWQpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgICAgICBjcmVhdGVU
aWxlc0luQWN0aXZlR3JpZChDb3ZlclZpc2libGVPbmx5KTsKIAogICAgICAgICBpZiAoIW1fc2F2
ZWREaXNwbGF5UmVjdHMuaXNFbXB0eSgpKQpAQCAtNzEwLDcgKzcxMCw3IEBAIHZvaWQgTGVnYWN5
VGlsZUNhY2hlOjpzZXRUaWxpbmdNb2RlKFRpbGkKICAgICBpZiAoKG1fcGVuZGluZ1pvb21lZE91
dFNjYWxlIHx8IG1fcGVuZGluZ1NjYWxlKSAmJiBtX3RpbGluZ01vZGUgIT0gRGlzYWJsZWQpCiAg
ICAgICAgIGNvbW1pdFNjYWxlQ2hhbmdlKCk7CiAgICAgZWxzZSBpZiAod2FzWm9vbWluZykgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgICAgIGJyaW5nQWN0aXZlVGlsZUdyaWRUb0Zy
b250KCk7CiAgICAgfQogCkBAIC03NTMsNyArNzUzLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6
OmRvUGVuZGluZ1JlcGFpbnRzKAogICAgICAgICByZXR1cm47CiAgICAgaWYgKGlzVGlsZUludmFs
aWRhdGlvblN1c3BlbmRlZCgpKQogICAgICAgICByZXR1cm47Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAg
ICAgZmx1c2hTYXZlZERpc3BsYXlSZWN0cygpOwogfQogCkBAIC03NjQsNyArNzY0LDcgQEAgdm9p
ZCBMZWdhY3lUaWxlQ2FjaGU6OmZsdXNoU2F2ZWREaXNwbGF5UgogCiAgICAgVmVjdG9yPEludFJl
Y3Q+IHJlY3RzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2F2ZWREaXNw
bGF5UmVjdE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zYXZlZERpc3BsYXlS
ZWN0TXV0ZXgpOwogICAgICAgICBtX3NhdmVkRGlzcGxheVJlY3RzLnN3YXAocmVjdHMpOwogICAg
IH0KICAgICBzaXplX3Qgc2l6ZSA9IHJlY3RzLnNpemUoKTsKQEAgLTc5Miw3ICs3OTIsNyBAQCB2
b2lkIExlZ2FjeVRpbGVDYWNoZTo6cHJlcGFyZVRvRHJhdygpCiAgICAgW1ttX3dpbmRvdyBjb250
ZW50Vmlld10gdmlld1dpbGxEcmF3XTsKIAogICAgIGlmICghbV9zYXZlZERpc3BsYXlSZWN0cy5p
c0VtcHR5KCkpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgICAgICBmbHVzaFNhdmVk
RGlzcGxheVJlY3RzKCk7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0xlZ2FjeVRpbGVMYXllclBvb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5oCShyZXZpc2lvbiAxODg1MTApCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPEludFNpemU+IG1f
c2l6ZXNJblBydW5lT3JkZXI7CiAgICAgdW5zaWduZWQgbV90b3RhbEJ5dGVzOwogICAgIHVuc2ln
bmVkIG1fY2FwYWNpdHk7Ci0gICAgTXV0ZXggbV9sYXllclBvb2xNdXRleDsKKyAgICBMb2NrIG1f
bGF5ZXJQb29sTXV0ZXg7CiAKICAgICBkb3VibGUgbV9sYXN0QWRkVGltZTsKICAgICBib29sIG1f
bmVlZHNQcnVuZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxl
TGF5ZXJQb29sLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9M
ZWdhY3lUaWxlTGF5ZXJQb29sLm1tCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbQkod29ya2luZyBjb3B5KQpAQCAt
ODQsNyArODQsNyBAQCB2b2lkIExlZ2FjeVRpbGVMYXllclBvb2w6OmFkZExheWVyKGNvbnN0CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sYXllclBv
b2xNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7CiAgICAg
bGlzdE9mTGF5ZXJzV2l0aFNpemUobGF5ZXJTaXplKS5wcmVwZW5kKGxheWVyKTsKICAgICBtX3Rv
dGFsQnl0ZXMgKz0gYnl0ZXNCYWNraW5nTGF5ZXJXaXRoUGl4ZWxTaXplKGxheWVyU2l6ZSk7CiAK
QEAgLTk2LDcgKzk2LDcgQEAgUmV0YWluUHRyPExlZ2FjeVRpbGVMYXllcj4gTGVnYWN5VGlsZUxh
eQogewogICAgIGlmICghY2FuUmV1c2VMYXllcldpdGhTaXplKHNpemUpKQogICAgICAgICByZXR1
cm4gbmlsOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xheWVyUG9vbE11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2xheWVyUG9vbE11dGV4KTsKICAgICBMYXllckxpc3QmIHJldXNl
TGlzdCA9IGxpc3RPZkxheWVyc1dpdGhTaXplKHNpemUsIE1hcmtBc1VzZWQpOwogICAgIGlmIChy
ZXVzZUxpc3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbmlsOwpAQCAtMTA2LDcgKzEwNiw3
IEBAIFJldGFpblB0cjxMZWdhY3lUaWxlTGF5ZXI+IExlZ2FjeVRpbGVMYXkKIAogdm9pZCBMZWdh
Y3lUaWxlTGF5ZXJQb29sOjpzZXRDYXBhY2l0eSh1bnNpZ25lZCBjYXBhY2l0eSkKIHsKLSAgICBN
dXRleExvY2tlciByZXVzZUxvY2tlcihtX2xheWVyUG9vbE11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IHJldXNlTG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwogICAgIGlmIChjYXBhY2l0eSA8IG1fY2Fw
YWNpdHkpCiAgICAgICAgIHNjaGVkdWxlUHJ1bmUoKTsKICAgICBtX2NhcGFjaXR5ID0gY2FwYWNp
dHk7CkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpzY2hlZHVs
ZVBydW5lKAogCiB2b2lkIExlZ2FjeVRpbGVMYXllclBvb2w6OnBydW5lKCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9sYXllclBvb2xNdXRleCk7CiAgICAgQVNTRVJUKG1fbmVlZHNQcnVuZSk7CiAgICAgbV9uZWVk
c1BydW5lID0gZmFsc2U7CiAgICAgdW5zaWduZWQgc2hyaW5rVG8gPSBkZWNheWVkQ2FwYWNpdHko
KTsKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIExlZ2FjeVRpbGVMYXllclBvb2w6OnBydW5lKCkK
IAogdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpkcmFpbigpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
cmV1c2VMb2NrZXIobV9sYXllclBvb2xNdXRleCk7CisgICAgTG9ja0hvbGRlciByZXVzZUxvY2tl
cihtX2xheWVyUG9vbE11dGV4KTsKICAgICBtX3JldXNlTGlzdHMuY2xlYXIoKTsKICAgICBtX3Np
emVzSW5QcnVuZU9yZGVyLmNsZWFyKCk7CiAgICAgbV90b3RhbEJ5dGVzID0gMDsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxv
YWQuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBA
QCBDdXJsRG93bmxvYWRNYW5hZ2VyOjp+Q3VybERvd25sb2FkTWFuYWdlCiAKIGJvb2wgQ3VybERv
d25sb2FkTWFuYWdlcjo6YWRkKENVUkwqIGN1cmxIYW5kbGUpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAg
bV9wZW5kaW5nSGFuZGxlTGlzdC5hcHBlbmQoY3VybEhhbmRsZSk7CiAgICAgc3RhcnRUaHJlYWRJ
Zk5lZWRlZCgpOwpAQCAtNzAsNyArNzAsNyBAQCBib29sIEN1cmxEb3dubG9hZE1hbmFnZXI6OmFk
ZChDVVJMKiBjdXJsCiAKIGJvb2wgQ3VybERvd25sb2FkTWFuYWdlcjo6cmVtb3ZlKENVUkwqIGN1
cmxIYW5kbGUpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgbV9yZW1vdmVkSGFuZGxlTGlzdC5hcHBlbmQo
Y3VybEhhbmRsZSk7CiAKQEAgLTc5LDEzICs3OSwxMyBAQCBib29sIEN1cmxEb3dubG9hZE1hbmFn
ZXI6OnJlbW92ZShDVVJMKiBjCiAKIGludCBDdXJsRG93bmxvYWRNYW5hZ2VyOjpnZXRBY3RpdmVE
b3dubG9hZENvdW50KCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fYWN0aXZlSGFu
ZGxlTGlzdC5zaXplKCk7CiB9CiAKIGludCBDdXJsRG93bmxvYWRNYW5hZ2VyOjpnZXRQZW5kaW5n
RG93bmxvYWRDb3VudCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIHJldHVybiBtX3BlbmRpbmdI
YW5kbGVMaXN0LnNpemUoKTsKIH0KIApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgQ3VybERvd25s
b2FkTWFuYWdlcjo6c3RvcFRocmVhZCgpCiAKIHZvaWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3Rv
cFRocmVhZElmSWRsZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKCFnZXRBY3RpdmVEb3dubG9h
ZENvdW50KCkgJiYgIWdldFBlbmRpbmdEb3dubG9hZENvdW50KCkpCiAgICAgICAgIHNldFJ1blRo
cmVhZChmYWxzZSk7CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBDdXJsRG93bmxvYWRNYW5hZ2Vy
OjpzdG9wVGhyZWFkSWZJZAogCiB2b2lkIEN1cmxEb3dubG9hZE1hbmFnZXI6OnVwZGF0ZUhhbmRs
ZUxpc3QoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIC8vIFJlbW92ZSBjdXJsIGVhc3kgaGFuZGxlcyBm
cm9tIG11bHRpIGxpc3QgCiAgICAgaW50IHNpemUgPSBtX3JlbW92ZWRIYW5kbGVMaXN0LnNpemUo
KTsKQEAgLTI0NSw3ICsyNDUsNyBAQCBDdXJsRG93bmxvYWQ6OkN1cmxEb3dubG9hZCgpCiAKIEN1
cmxEb3dubG9hZDo6fkN1cmxEb3dubG9hZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
bXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKG1fdXJs
KQogICAgICAgICBmYXN0RnJlZShtX3VybCk7CkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBDdXJs
RG93bmxvYWQ6OmluaXQoQ3VybERvd25sb2FkTGlzdAogICAgIGlmICghbGlzdGVuZXIpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIG1fY3VybEhhbmRsZSA9IGN1cmxfZWFzeV9p
bml0KCk7CiAKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIEN1cmxEb3dubG9hZDo6aW5pdChDdXJs
RG93bmxvYWRMaXN0CiAgICAgaWYgKCFsaXN0ZW5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0
ZXgpOwogCiAgICAgVVJMIHVybChQYXJzZWRVUkxTdHJpbmcsIHJlcXVlc3QudXJsKCkpOwogCkBA
IC0zMTcsMjUgKzMxNywyNSBAQCBib29sIEN1cmxEb3dubG9hZDo6Y2FuY2VsKCkKIAogU3RyaW5n
IEN1cmxEb3dubG9hZDo6Z2V0VGVtcFBhdGgoKSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICByZXR1
cm4gbV90ZW1wUGF0aDsKIH0KIAogU3RyaW5nIEN1cmxEb3dubG9hZDo6Z2V0VXJsKCkgY29uc3QK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIFN0cmluZyhtX3VybCk7CiB9CiAKIFJlc291cmNlUmVz
cG9uc2UgQ3VybERvd25sb2FkOjpnZXRSZXNwb25zZSgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAg
IHJldHVybiBtX3Jlc3BvbnNlOwogfQogCiB2b2lkIEN1cmxEb3dubG9hZDo6Y2xvc2VGaWxlKCkK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9tdXRleCk7CiAKICAgICBpZiAobV90ZW1wSGFuZGxlICE9IGludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGUpIHsKICAgICAgICAgV2ViQ29yZTo6Y2xvc2VGaWxlKG1fdGVtcEhhbmRsZSk7CkBA
IC0zOTAsNyArMzkwLDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmFkZEhlYWRlcnMoY29uc3QgUmVz
bwogCiB2b2lkIEN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhl
YWRlcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBpZiAoaGVhZGVyID09ICJcclxuIiB8fCBoZWFkZXIg
PT0gIlxuIikgewogCkBAIC00MzAsNyArNDMwLDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmRpZFJl
Y2VpdmVIZWFkZXIoY29ucwogCiB2b2lkIEN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEodm9p
ZCogZGF0YSwgaW50IHNpemUpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgUmVmUHRyPEN1cmxEb3dubG9h
ZD4gcHJvdGVjdGVkRG93bmxvYWQodGhpcyk7CiAKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIEN1
cmxEb3dubG9hZDo6ZGlkRmluaXNoKCkKIAogdm9pZCBDdXJsRG93bmxvYWQ6OmRpZEZhaWwoKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX211dGV4KTsKIAogICAgIGNsb3NlRmlsZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oCShyZXZpc2lvbiAx
ODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25s
b2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICBWZWN0
b3I8Q1VSTCo+IG1fcGVuZGluZ0hhbmRsZUxpc3Q7CiAgICAgVmVjdG9yPENVUkwqPiBtX2FjdGl2
ZUhhbmRsZUxpc3Q7CiAgICAgVmVjdG9yPENVUkwqPiBtX3JlbW92ZWRIYW5kbGVMaXN0OwotICAg
IG11dGFibGUgTXV0ZXggbV9tdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKICAgICBi
b29sIG1fcnVuVGhyZWFkOwogfTsKIApAQCAtMTQwLDcgKzE0MCw3IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fdGVtcEhhbmRsZTsKICAgICBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAgICAgYm9vbCBtX2RlbGV0ZXNGaWxlVXBvbkZh
aWx1cmU7Ci0gICAgbXV0YWJsZSBNdXRleCBtX211dGV4OworICAgIG11dGFibGUgTG9jayBtX211
dGV4OwogICAgIEN1cmxEb3dubG9hZExpc3RlbmVyICptX2xpc3RlbmVyOwogCiAgICAgc3RhdGlj
IEN1cmxEb3dubG9hZE1hbmFnZXIgbV9kb3dubG9hZE1hbmFnZXI7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VI
YW5kbGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEzMywxMCArMTMzLDExIEBAIHN0YXRpYyBjaGFyKiBjb29raWVKYXJQYXRoKCkKICNl
bmRpZgogfQogCi1zdGF0aWMgTXV0ZXgqIHNoYXJlZFJlc291cmNlTXV0ZXgoY3VybF9sb2NrX2Rh
dGEgZGF0YSkgewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgY29v
a2llTXV0ZXgsICgpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgs
IGRuc011dGV4LCAoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4
LCBzaGFyZU11dGV4LCAoKSk7CitzdGF0aWMgTG9jayogc2hhcmVkUmVzb3VyY2VNdXRleChjdXJs
X2xvY2tfZGF0YSBkYXRhKQoreworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChM
b2NrLCBjb29raWVNdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChMb2NrLCBkbnNNdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChMb2NrLCBzaGFyZU11dGV4LCAoKSk7CiAKICAgICBzd2l0Y2ggKGRhdGEpIHsKICAgICAgICAg
Y2FzZSBDVVJMX0xPQ0tfREFUQV9DT09LSUU6CkBAIC0xOTAsMTMgKzE5MSwxMyBAQCBzdGF0aWMg
dm9pZCBjYWxjdWxhdGVXZWJUaW1pbmdJbmZvcm1hdGlvCiAvLyBjYWNoZS4KIHN0YXRpYyB2b2lk
IGN1cmxfbG9ja19jYWxsYmFjayhDVVJMKiAvKiBoYW5kbGUgKi8sIGN1cmxfbG9ja19kYXRhIGRh
dGEsIGN1cmxfbG9ja19hY2Nlc3MgLyogYWNjZXNzICovLCB2b2lkKiAvKiB1c2VyUHRyICovKQog
ewotICAgIGlmIChNdXRleCogbXV0ZXggPSBzaGFyZWRSZXNvdXJjZU11dGV4KGRhdGEpKQorICAg
IGlmIChMb2NrKiBtdXRleCA9IHNoYXJlZFJlc291cmNlTXV0ZXgoZGF0YSkpCiAgICAgICAgIG11
dGV4LT5sb2NrKCk7CiB9CiAKIHN0YXRpYyB2b2lkIGN1cmxfdW5sb2NrX2NhbGxiYWNrKENVUkwq
IC8qIGhhbmRsZSAqLywgY3VybF9sb2NrX2RhdGEgZGF0YSwgdm9pZCogLyogdXNlclB0ciAqLykK
IHsKLSAgICBpZiAoTXV0ZXgqIG11dGV4ID0gc2hhcmVkUmVzb3VyY2VNdXRleChkYXRhKSkKKyAg
ICBpZiAoTG9jayogbXV0ZXggPSBzaGFyZWRSZXNvdXJjZU11dGV4KGRhdGEpKQogICAgICAgICBt
dXRleC0+dW5sb2NrKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvaW9zL1F1aWNrTG9vay5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0JKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQkod29ya2luZyBjb3B5KQpA
QCAtODUsOSArODUsOSBAQCBOU0RpY3Rpb25hcnkgKldlYkNvcmU6OlFMRGlyZWN0b3J5QXR0cmli
CiAgICAgcmV0dXJuIGRpY3Rpb25hcnk7CiB9CiAKLXN0YXRpYyBNdXRleCYgcWxQcmV2aWV3Q29u
dmVydGVyRGljdGlvbmFyeU11dGV4KCkKK3N0YXRpYyBMb2NrJiBxbFByZXZpZXdDb252ZXJ0ZXJE
aWN0aW9uYXJ5TXV0ZXgoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0
ZXg7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4OwogICAgIHJldHVybiBt
dXRleDsKIH0KIApAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgV2ViQ29yZTo6YWRkUUxQcmV2aWV3
Q29udmVydGVyV2l0aEYKIHsKICAgICBBU1NFUlQodXJsKTsKICAgICBBU1NFUlQoY29udmVydGVy
KTsKLSAgICBNdXRleExvY2tlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRl
eCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11
dGV4KCkpOwogICAgIFtRTFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5KCkgc2V0T2JqZWN0OmNv
bnZlcnRlciBmb3JLZXk6dXJsXTsKICAgICBbUUxDb250ZW50RGljdGlvbmFyeSgpIHNldE9iamVj
dDooZmlsZU5hbWUgPyBmaWxlTmFtZSA6IEAiIikgZm9yS2V5OnVybF07CiB9CkBAIC0xMjEsNyAr
MTIxLDcgQEAgTlNTdHJpbmcgKldlYkNvcmU6OnFsUHJldmlld0NvbnZlcnRlclVUSQogewogICAg
IGlkIGNvbnZlcnRlciA9IG5pbDsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2socWxQ
cmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOwogICAgICAgICBjb252ZXJ0
ZXIgPSBbUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgpIG9iamVjdEZvcktleTp1cmxdOwog
ICAgIH0KICAgICBpZiAoIWNvbnZlcnRlcikKQEAgLTEzMSw3ICsxMzEsNyBAQCBOU1N0cmluZyAq
V2ViQ29yZTo6cWxQcmV2aWV3Q29udmVydGVyVVRJCiAKIHZvaWQgV2ViQ29yZTo6cmVtb3ZlUUxQ
cmV2aWV3Q29udmVydGVyRm9yVVJMKE5TVVJMICp1cmwpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
ayhxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBs
b2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKICAgICBbUUxQcmV2aWV3
Q29udmVydGVyRGljdGlvbmFyeSgpIHJlbW92ZU9iamVjdEZvcktleTp1cmxdOwogCiAgICAgLy8g
RGVsZXRlIHRoZSBmaWxlIHdoZW4gd2UgcmVtb3ZlIHRoZSBwcmV2aWV3IGNvbnZlcnRlcgpAQCAt
MTY2LDcgKzE2Niw3IEBAIGNvbnN0IFVSTCBXZWJDb3JlOjpzYWZlUUxVUkxGb3JEb2N1bWVudFUK
ICAgICBpZCBjb252ZXJ0ZXIgPSBuaWw7CiAgICAgTlNVUkwgKm5zRG9jdW1lbnRVUkwgPSBkb2N1
bWVudFVSTDsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2socWxQcmV2aWV3Q29udmVy
dGVyRGljdGlvbmFyeU11dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2socWxQcmV2aWV3
Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOwogICAgICAgICBjb252ZXJ0ZXIgPSBbUUxQcmV2
aWV3Q29udmVydGVyRGljdGlvbmFyeSgpIG9iamVjdEZvcktleTpuc0RvY3VtZW50VVJMXTsKICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBAIHZv
aWQgU1FMaXRlRGF0YWJhc2U6OmNsb3NlKCkKICAgICAgICAgLy8gQVNTRVJUKGN1cnJlbnRUaHJl
YWQoKSA9PSBtX29wZW5pbmdUaHJlYWQpOwogICAgICAgICBzcWxpdGUzKiBkYiA9IG1fZGI7CiAg
ICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlQ2xvc2lu
Z011dGV4KTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VDbG9zaW5n
TXV0ZXgpOwogICAgICAgICAgICAgbV9kYiA9IDA7CiAgICAgICAgIH0KICAgICAgICAgc3FsaXRl
M19jbG9zZShkYik7CkBAIC0xNjAsNyArMTYwLDcgQEAgaW50NjRfdCBTUUxpdGVEYXRhYmFzZTo6
bWF4aW11bVNpemUoKQogICAgIGludDY0X3QgbWF4UGFnZUNvdW50ID0gMDsKIAogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICAgICAgZW5hYmxlQXV0aG9yaXpl
cihmYWxzZSk7CiAgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsIEFTQ0lJ
TGl0ZXJhbCgiUFJBR01BIG1heF9wYWdlX2NvdW50IikpOwogICAgICAgICBtYXhQYWdlQ291bnQg
PSBzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50NjQoMCk7CkBAIC0xODAsNyArMTgwLDcgQEAgdm9pZCBT
UUxpdGVEYXRhYmFzZTo6c2V0TWF4aW11bVNpemUoaW50NgogICAgIEFTU0VSVChjdXJyZW50UGFn
ZVNpemUgfHwgIW1fZGIpOwogICAgIGludDY0X3QgbmV3TWF4UGFnZUNvdW50ID0gY3VycmVudFBh
Z2VTaXplID8gc2l6ZSAvIGN1cnJlbnRQYWdlU2l6ZSA6IDA7CiAgICAgCi0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXV0
aG9yaXplckxvY2spOwogICAgIGVuYWJsZUF1dGhvcml6ZXIoZmFsc2UpOwogCiAgICAgU1FMaXRl
U3RhdGVtZW50IHN0YXRlbWVudCgqdGhpcywgIlBSQUdNQSBtYXhfcGFnZV9jb3VudCA9ICIgKyBT
dHJpbmc6Om51bWJlcihuZXdNYXhQYWdlQ291bnQpKTsKQEAgLTE5Nyw3ICsxOTcsNyBAQCBpbnQg
U1FMaXRlRGF0YWJhc2U6OnBhZ2VTaXplKCkKICAgICAvLyBTaW5jZSB0aGUgcGFnZSBzaXplIG9m
IGEgZGF0YWJhc2UgaXMgbG9ja2VkIGluIGF0IGNyZWF0aW9uIGFuZCB0aGVyZWZvcmUgY2Fubm90
IGJlIGR5bmFtaWMsIAogICAgIC8vIHdlIGNhbiBjYWNoZSB0aGUgdmFsdWUgZm9yIGZ1dHVyZSB1
c2UKICAgICBpZiAobV9wYWdlU2l6ZSA9PSAtMSkgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXV0aG9y
aXplckxvY2spOwogICAgICAgICBlbmFibGVBdXRob3JpemVyKGZhbHNlKTsKICAgICAgICAgCiAg
ICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsIEFTQ0lJTGl0ZXJhbCgiUFJB
R01BIHBhZ2Vfc2l6ZSIpKTsKQEAgLTIxNCw3ICsyMTQsNyBAQCBpbnQ2NF90IFNRTGl0ZURhdGFi
YXNlOjpmcmVlU3BhY2VTaXplKCkKICAgICBpbnQ2NF90IGZyZWVsaXN0Q291bnQgPSAwOwogCiAg
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwogICAgICAgICBlbmFibGVB
dXRob3JpemVyKGZhbHNlKTsKICAgICAgICAgLy8gTm90ZTogZnJlZWxpc3RfY291bnQgd2FzIGFk
ZGVkIGluIFNRTGl0ZSAzLjQuMS4KICAgICAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudCgq
dGhpcywgQVNDSUlMaXRlcmFsKCJQUkFHTUEgZnJlZWxpc3RfY291bnQiKSk7CkBAIC0yMzAsNyAr
MjMwLDcgQEAgaW50NjRfdCBTUUxpdGVEYXRhYmFzZTo6dG90YWxTaXplKCkKICAgICBpbnQ2NF90
IHBhZ2VDb3VudCA9IDA7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1
dGhvcml6ZXJMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9j
ayk7CiAgICAgICAgIGVuYWJsZUF1dGhvcml6ZXIoZmFsc2UpOwogICAgICAgICBTUUxpdGVTdGF0
ZW1lbnQgc3RhdGVtZW50KCp0aGlzLCBBU0NJSUxpdGVyYWwoIlBSQUdNQSBwYWdlX2NvdW50Iikp
OwogICAgICAgICBwYWdlQ291bnQgPSBzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50NjQoMCk7CkBAIC0z
MDksNyArMzA5LDcgQEAgaW50IFNRTGl0ZURhdGFiYXNlOjpydW5WYWN1dW1Db21tYW5kKCkKIAog
aW50IFNRTGl0ZURhdGFiYXNlOjpydW5JbmNyZW1lbnRhbFZhY3V1bUNvbW1hbmQoKQogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICBlbmFibGVBdXRob3JpemVyKGZhbHNlKTsKIAog
ICAgIGlmICghZXhlY3V0ZUNvbW1hbmQoQVNDSUlMaXRlcmFsKCJQUkFHTUEgaW5jcmVtZW50YWxf
dmFjdXVtIikpKQpAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OnNldEF1
dGhvcml6ZXIoUGFzc1IKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhv
cml6ZXJMb2NrKTsKIAogICAgIG1fYXV0aG9yaXplciA9IGF1dGg7CiAgICAgCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAkocmV2aXNpb24gMTg4
NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAj
aW5jbHVkZSA8c3FsaXRlMy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTEwNiw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgdm9pZCBzZXRBdXRob3JpemVyKFBhc3NSZWZQdHI8RGF0YWJhc2VBdXRob3JpemVyPik7CiAK
LSAgICBNdXRleCYgZGF0YWJhc2VNdXRleCgpIHsgcmV0dXJuIG1fbG9ja2luZ011dGV4OyB9Cisg
ICAgTG9jayYgZGF0YWJhc2VNdXRleCgpIHsgcmV0dXJuIG1fbG9ja2luZ011dGV4OyB9CiAgICAg
Ym9vbCBpc0F1dG9Db21taXRPbigpIGNvbnN0OwogCiAgICAgLy8gVGhlIFNRTGl0ZSBBVVRPX1ZB
Q1VVTSBwcmFnbWEgY2FuIGJlIGVpdGhlciBOT05FLCBGVUxMLCBvciBJTkNSRU1FTlRBTC4KQEAg
LTE0NywxMyArMTQ4LDEzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3RyYW5zYWN0aW9uSW5Qcm9n
cmVzczsKICAgICBib29sIG1fc2hhcmFibGU7CiAgICAgCi0gICAgTXV0ZXggbV9hdXRob3JpemVy
TG9jazsKKyAgICBMb2NrIG1fYXV0aG9yaXplckxvY2s7CiAgICAgUmVmUHRyPERhdGFiYXNlQXV0
aG9yaXplcj4gbV9hdXRob3JpemVyOwogCi0gICAgTXV0ZXggbV9sb2NraW5nTXV0ZXg7CisgICAg
TG9jayBtX2xvY2tpbmdNdXRleDsKICAgICBUaHJlYWRJZGVudGlmaWVyIG1fb3BlbmluZ1RocmVh
ZDsKIAotICAgIE11dGV4IG1fZGF0YWJhc2VDbG9zaW5nTXV0ZXg7CisgICAgTG9jayBtX2RhdGFi
YXNlQ2xvc2luZ011dGV4OwogCiAgICAgaW50IG1fb3BlbkVycm9yOwogICAgIENTdHJpbmcgbV9v
cGVuRXJyb3JNZXNzYWdlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZVN0YXRlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Fs
L1NRTGl0ZVN0YXRlbWVudC5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3
ICs1OSw3IEBAIGludCBTUUxpdGVTdGF0ZW1lbnQ6OnByZXBhcmUoKQogewogICAgIEFTU0VSVCgh
bV9pc1ByZXBhcmVkKTsKIAotICAgIE11dGV4TG9ja2VyIGRhdGFiYXNlTG9jayhtX2RhdGFiYXNl
LmRhdGFiYXNlTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBkYXRhYmFzZUxvY2sobV9kYXRhYmFz
ZS5kYXRhYmFzZU11dGV4KCkpOwogCiAgICAgQ1N0cmluZyBxdWVyeSA9IG1fcXVlcnkuc3RyaXBX
aGl0ZVNwYWNlKCkudXRmOCgpOwogICAgIApAQCAtODYsNyArODYsNyBAQCBpbnQgU1FMaXRlU3Rh
dGVtZW50OjpwcmVwYXJlKCkKIAogaW50IFNRTGl0ZVN0YXRlbWVudDo6c3RlcCgpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgZGF0YWJhc2VMb2NrKG1fZGF0YWJhc2UuZGF0YWJhc2VNdXRleCgpKTsKKyAg
ICBMb2NrSG9sZGVyIGRhdGFiYXNlTG9jayhtX2RhdGFiYXNlLmRhdGFiYXNlTXV0ZXgoKSk7CiAK
ICAgICBpZiAoIW1fc3RhdGVtZW50KQogICAgICAgICByZXR1cm4gU1FMSVRFX09LOwpJbmRleDog
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAkocmV2aXNpb24gMTg4NTEwKQor
KysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjIsNyArMTIyLDcgQEAgV29ya2VyVGhyZWFkOjp+V29ya2VyVGhyZWFkKCkKIGJvb2wg
V29ya2VyVGhyZWFkOjpzdGFydCgpCiB7CiAgICAgLy8gTXV0ZXggcHJvdGVjdGlvbiBpcyBuZWNl
c3NhcnkgdG8gZW5zdXJlIHRoYXQgbV90aHJlYWRJRCBpcyBpbml0aWFsaXplZCB3aGVuIHRoZSB0
aHJlYWQgc3RhcnRzLgotICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKIAogICAgIGlm
IChtX3RocmVhZElEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE0NSw3ICsxNDUsNyBAQCB2
b2lkIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKCkKICNlbmRpZgogCiAgICAgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwogICAgICAgICBtX3dvcmtlckdsb2Jh
bFNjb3BlID0gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUobV9zdGFydHVwRGF0YS0+bV9zY3JpcHRV
UkwsIG1fc3RhcnR1cERhdGEtPm1fdXNlckFnZW50LCBtX3N0YXJ0dXBEYXRhLT5tX2NvbnRlbnRT
ZWN1cml0eVBvbGljeSwgbV9zdGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xpY3lUeXBl
LCBtX3N0YXJ0dXBEYXRhLT5tX3RvcE9yaWdpbi5yZWxlYXNlKCkpOwogCiAgICAgICAgIGlmICht
X3J1bkxvb3AudGVybWluYXRlZCgpKSB7CkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBXb3JrZXJU
aHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCiB2b2lkIFdvcmtlclRocmVhZDo6c3RvcCgpCiB7CiAgICAg
Ly8gTXV0ZXggcHJvdGVjdGlvbiBpcyBuZWNlc3NhcnkgYmVjYXVzZSBzdG9wKCkgY2FuIGJlIGNh
bGxlZCBiZWZvcmUgdGhlIGNvbnRleHQgaXMgZnVsbHkgY3JlYXRlZC4KLSAgICBNdXRleExvY2tl
ciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdGhy
ZWFkQ3JlYXRpb25NdXRleCk7CiAKICAgICAvLyBFbnN1cmUgdGhhdCB0YXNrcyBhcmUgYmVpbmcg
aGFuZGxlZCBieSB0aHJlYWQgZXZlbnQgbG9vcC4gSWYgc2NyaXB0IGV4ZWN1dGlvbiB3ZXJlbid0
IGZvcmJpZGRlbiwgYSB3aGlsZSgxKSBsb29wIGluIEpTIGNvdWxkIGtlZXAgdGhlIHRocmVhZCBh
bGl2ZSBmb3JldmVyLgogICAgIGlmIChtX3dvcmtlckdsb2JhbFNjb3BlKSB7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcg
Kzg5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXb3JrZXJSZXBvcnRpbmdQcm94
eSYgbV93b3JrZXJSZXBvcnRpbmdQcm94eTsKIAogICAgICAgICBSZWZQdHI8V29ya2VyR2xvYmFs
U2NvcGU+IG1fd29ya2VyR2xvYmFsU2NvcGU7Ci0gICAgICAgIE11dGV4IG1fdGhyZWFkQ3JlYXRp
b25NdXRleDsKKyAgICAgICAgTG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAKICAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhPiBtX3N0YXJ0dXBEYXRhOwog
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODg1NDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1OSBAQAorMjAxNS0wOC0xNyAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgYWxsIHJlbWFpbmlu
ZyB1c2VzIG9mIFdURjo6TXV0ZXggd2l0aCBXVEY6OkxvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODA4OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzczo6cG9zdERhdGFiYXNl
VGFzayk6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzczo6cGVyZm9ybU5leHREYXRh
YmFzZVRhc2spOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaDoK
KyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OnNodXRkb3duKToKKyAgICAg
ICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OnBvc3RNYWluVGhyZWFkVGFzayk6CisgICAg
ICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtTmV4dE1haW5UaHJlYWRUYXNr
KToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OnBvc3REYXRhYmFzZVRhc2sp
OgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybU5leHREYXRhYmFz
ZVRhc2spOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0
YWJhc2UuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChJUEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZSk6CisgICAgICAgIChJUEM6OkNvbm5l
Y3Rpb246OnNlbmRTeW5jTWVzc2FnZUZyb21TZWNvbmRhcnlUaHJlYWQpOgorICAgICAgICAoSVBD
OjpDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5KToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlv
bjo6cHJvY2Vzc0luY29taW5nU3luY1JlcGx5KToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6
Y29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5o
OgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6
YXBwZW5kVXBkYXRlKToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVDb21wb3NpdGluZ1RocmVhZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29tcG9zaXRvcjo6cnVuQ29tcG9zaXRpbmdUaHJlYWQp
OgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OnRlcm1pbmF0ZUNvbXBvc2l0
aW5nVGhyZWFkKToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmg6CisgICAgICAgICogU2hhcmVkL05ldHdv
cmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmFkZEN1c3RvbVByb3RvY29s
KToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpyZW1vdmVDdXN0b21Q
cm90b2NvbCk6CisgICAgICAgIChXZWJLaXQ6OkN1c3RvbVByb3RvY29sTWFuYWdlcjo6cmVnaXN0
ZXJTY2hlbWUpOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnVucmVn
aXN0ZXJTY2hlbWUpOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnN1
cHBvcnRzU2NoZW1lKToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpw
cm90b2NvbEZvcklEKToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMv
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmg6CisgICAgICAgICogU2hhcmVkL2xpbnV4L1NlY2NvbXBG
aWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpyZW1vdmVQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlcjo6cGx1Z2luUHJvY2Vzc0NyYXNoZWQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RXZlbnREaXNwYXRjaGVyOjphZGRTY3JvbGxpbmdUcmVlRm9yUGFnZSk6CisgICAgICAgIChX
ZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6cmVtb3ZlU2Nyb2xsaW5nVHJlZUZvclBhZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHA6CisgICAgICAgICh3ZWJraXRT
b3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jKToKKyAgICAgICAgKHdlYmtpdFNvdXBSZXF1
ZXN0SW5wdXRTdHJlYW1BZGREYXRhKToKKwogMjAxNS0wOC0xNyAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24ncyBzZXNzaW9uSUQg
bmVlZHMgdG8gYmUgc2V0IHdoZW5ldmVyIHRoZSBBUEk6OldlYnNpdGVEYXRhU3RvcmUgaXMgc2V0
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQ
cm9jZXNzLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw3ICsxNTEs
NyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6cG9zdERhdGFiYXNlVGFzayhzCiB7CiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFi
YXNlVGFza011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4
KTsKIAogICAgIG1fZGF0YWJhc2VUYXNrcy5hcHBlbmQoV1RGOjptb3ZlKHRhc2spKTsKIApAQCAt
MTY2LDcgKzE2Niw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzOjpwZXJmb3JtTmV4dERhdGFiYXMK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1Rhc2s+IHRhc2s7CiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwogICAgICAgICBBU1NFUlQoIW1fZGF0YWJh
c2VUYXNrcy5pc0VtcHR5KCkpOwogICAgICAgICB0YXNrID0gbV9kYXRhYmFzZVRhc2tzLnRha2VG
aXJzdCgpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRh
YmFzZVByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nl
c3MvRGF0YWJhc2VQcm9jZXNzLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2
LDcgKzEwNiw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxVbmlxdWVJREJEYXRhYmFzZUlkZW50
aWZpZXIsIFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZT4+IG1faWRiRGF0YWJhc2VzOwogCiAgICAg
RGVxdWU8c3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4+IG1fZGF0YWJhc2VUYXNrczsKLSAgICBN
dXRleCBtX2RhdGFiYXNlVGFza011dGV4OworICAgIExvY2sgbV9kYXRhYmFzZVRhc2tNdXRleDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFz
ZS5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYs
NyArMTM2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6c2h1dGRvd24oVW5pcXVlSQogICAg
IHJlZigpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZVRh
c2tNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgp
OwogICAgICAgICBtX2RhdGFiYXNlVGFza3MuY2xlYXIoKTsKICAgICB9CiAKQEAgLTExMjUsNyAr
MTEyNSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBvc3RNYWluVGhyZWFkVGEKICAgICBp
ZiAoIW1fYWNjZXB0aW5nTmV3UmVxdWVzdHMgJiYgdGFza1R5cGUgPT0gRGF0YWJhc2VUYXNrVHlw
ZTo6Tm9ybWFsKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9t
YWluVGhyZWFkVGFza011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX21haW5UaHJlYWRU
YXNrTXV0ZXgpOwogCiAgICAgbV9tYWluVGhyZWFkVGFza3MuYXBwZW5kKFdURjo6bW92ZSh0YXNr
KSk7CiAKQEAgLTExNDMsNyArMTE0Myw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZv
cm1OZXh0TWFpblQKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1Rhc2s+IHRhc2s7CiAgICAg
ewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tYWluVGhyZWFkVGFza011dGV4KTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tYWluVGhyZWFkVGFza011dGV4KTsKIAogICAgICAg
ICAvLyBUaGlzIGRhdGFiYXNlIG1pZ2h0IGJlIHNodXR0aW5nIGRvd24sIGluIHdoaWNoIGNhc2Ug
dGhlIHRhc2sgcXVldWUgbWlnaHQgYmUgZW1wdHkuCiAgICAgICAgIGlmIChtX21haW5UaHJlYWRU
YXNrcy5pc0VtcHR5KCkpCkBAIC0xMTY1LDcgKzExNjUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpwb3N0RGF0YWJhc2VUYXNrCiAgICAgaWYgKCFtX2FjY2VwdGluZ05ld1JlcXVlc3RzICYm
IHRhc2tUeXBlID09IERhdGFiYXNlVGFza1R5cGU6Ok5vcm1hbCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwogCiAgICAgbV9kYXRhYmFzZVRhc2tz
LmFwcGVuZChXVEY6Om1vdmUodGFzaykpOwogCkBAIC0xMTg2LDcgKzExODYsNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtTmV4dERhdGFiCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
QXN5bmNUYXNrPiB0YXNrOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0
YWJhc2VUYXNrTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlVGFz
a011dGV4KTsKIAogICAgICAgICAvLyBUaGlzIGRhdGFiYXNlIG1pZ2h0IGJlIHNodXR0aW5nIGRv
d24gb24gdGhlIG1haW4gdGhyZWFkLCBpbiB3aGljaCBjYXNlIHRoZSB0YXNrIHF1ZXVlIG1pZ2h0
IGJlIGVtcHR5LgogICAgICAgICBpZiAobV9kYXRhYmFzZVRhc2tzLmlzRW1wdHkoKSkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJh
c2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjEwLDEwICsyMTAsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8VW5pcXVl
SURCRGF0YWJhc2VCYWNraW5nU3RvcmU+IG1fYmFja2luZ1N0b3JlOwogCiAgICAgRGVxdWU8c3Rk
Ojp1bmlxdWVfcHRyPEFzeW5jVGFzaz4+IG1fZGF0YWJhc2VUYXNrczsKLSAgICBNdXRleCBtX2Rh
dGFiYXNlVGFza011dGV4OworICAgIExvY2sgbV9kYXRhYmFzZVRhc2tNdXRleDsKIAogICAgIERl
cXVlPHN0ZDo6dW5pcXVlX3B0cjxBc3luY1Rhc2s+PiBtX21haW5UaHJlYWRUYXNrczsKLSAgICBN
dXRleCBtX21haW5UaHJlYWRUYXNrTXV0ZXg7CisgICAgTG9jayBtX21haW5UaHJlYWRUYXNrTXV0
ZXg7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU5
LDcgKzQ1OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAog
ICAgIC8vIFB1c2ggdGhlIHBlbmRpbmcgc3luYyByZXBseSBpbmZvcm1hdGlvbiBvbiBvdXIgc3Rh
Y2suCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsK
ICAgICAgICAgaWYgKCFtX3Nob3VsZFdhaXRGb3JTeW5jUmVwbGllcykgewogICAgICAgICAgICAg
ZGlkRmFpbFRvU2VuZFN5bmNNZXNzYWdlKCk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
QEAgLTQ4Niw3ICs0ODYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5l
Y3RpCiAKICAgICAvLyBGaW5hbGx5LCBwb3AgdGhlIHBlbmRpbmcgc3luYyByZXBseSBpbmZvcm1h
dGlvbi4KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRl
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgp
OwogICAgICAgICBBU1NFUlQobV9wZW5kaW5nU3luY1JlcGxpZXMubGFzdCgpLnN5bmNSZXF1ZXN0
SUQgPT0gc3luY1JlcXVlc3RJRCk7CiAgICAgICAgIG1fcGVuZGluZ1N5bmNSZXBsaWVzLnJlbW92
ZUxhc3QoKTsKICAgICB9CkBAIC01MDgsNyArNTA4LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3Nh
Z2VEZWNvZGVyPiBDb25uZWN0aQogCiAgICAgLy8gUHVzaCB0aGUgcGVuZGluZyBzeW5jIHJlcGx5
IGluZm9ybWF0aW9uIG9uIG91ciBzdGFjay4KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogICAgICAgICBpZiAoIW1fc2hvdWxkV2FpdEZvclN5bmNS
ZXBsaWVzKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTUyNiw3ICs1MjYsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3RpCiAKICAgICAvLyBGaW5h
bGx5LCBwb3AgdGhlIHBlbmRpbmcgc3luYyByZXBseSBpbmZvcm1hdGlvbi4KICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogICAgICAgICBBU1NFUlQo
bV9zZWNvbmRhcnlUaHJlYWRQZW5kaW5nU3luY1JlcGx5TWFwLmNvbnRhaW5zKHN5bmNSZXF1ZXN0
SUQpKTsKICAgICAgICAgbV9zZWNvbmRhcnlUaHJlYWRQZW5kaW5nU3luY1JlcGx5TWFwLnJlbW92
ZShzeW5jUmVxdWVzdElEKTsKICAgICB9CkBAIC01NDYsNyArNTQ2LDcgQEAgc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aQogICAgICAgICBTeW5jTWVzc2FnZVN0YXRlOjpz
aW5nbGV0b24oKS5kaXNwYXRjaE1lc3NhZ2VzKG51bGxwdHIpOwogICAgICAgICAKICAgICAgICAg
ewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7
CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwog
CiAgICAgICAgICAgICAvLyBTZWNvbmQsIGNoZWNrIGlmIHRoZXJlIGlzIGEgc3luYyByZXBseSBh
dCB0aGUgdG9wIG9mIHRoZSBzdGFjay4KICAgICAgICAgICAgIEFTU0VSVCghbV9wZW5kaW5nU3lu
Y1JlcGxpZXMuaXNFbXB0eSgpKTsKQEAgLTU5Miw3ICs1OTIsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZURlY29kZXI+IENvbm5lY3RpCiAKIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29t
aW5nU3luY1JlcGx5KHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gZGVjb2RlcikKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogCiAgICAgLy8gR28gdGhyb3Vn
aCB0aGUgc3RhY2sgb2Ygc3luYyByZXF1ZXN0cyB0aGF0IGhhdmUgcGVuZGluZyByZXBsaWVzIGFu
ZCBzZWUgd2hpY2ggb25lCiAgICAgLy8gdGhpcyByZXBseSBpcyBmb3IuCkBAIC03NTAsNyArNzUw
LDcgQEAgdm9pZCBDb25uZWN0aW9uOjpjb25uZWN0aW9uRGlkQ2xvc2UoKQogICAgIHBsYXRmb3Jt
SW52YWxpZGF0ZSgpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5j
UmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jUmVwbHlT
dGF0ZU11dGV4KTsKIAogICAgICAgICBBU1NFUlQobV9zaG91bGRXYWl0Rm9yU3luY1JlcGxpZXMp
OwogICAgICAgICBtX3Nob3VsZFdhaXRGb3JTeW5jUmVwbGllcyA9IGZhbHNlOwpJbmRleDogU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCShyZXZpc2lvbiAxODg1MTApCisr
KyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KIApAQCAtMjk4LDcgKzI5OSw3IEBAIHByaXZhdGU6CiAgICAgY2xhc3MgU3luY01lc3Nh
Z2VTdGF0ZTsKICAgICBmcmllbmQgY2xhc3MgU3luY01lc3NhZ2VTdGF0ZTsKIAotICAgIE11dGV4
IG1fc3luY1JlcGx5U3RhdGVNdXRleDsKKyAgICBMb2NrIG1fc3luY1JlcGx5U3RhdGVNdXRleDsK
ICAgICBib29sIG1fc2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzOwogICAgIFZlY3RvcjxQZW5kaW5n
U3luY1JlcGx5PiBtX3BlbmRpbmdTeW5jUmVwbGllczsKIApJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OTAsNyArNjkwLDcgQEAgdm9pZCBDb29yZGluYXRl
ZEdyYXBoaWNzU2NlbmU6OmFwcGVuZFVwZAogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3JlbmRlclF1ZXVlTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcmVuZGVyUXVldWVNdXRleCk7CiAgICAgbV9y
ZW5kZXJRdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKGZ1bmN0aW9uKSk7CiB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCShyZXZpc2lvbiAxODg1MTApCisrKyBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzU2NlbmUuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ1LDcgKzE0NSw3IEBAIHByaXZhdGU6CiAK
ICAgICAvLyBSZW5kZXIgcXVldWUgY2FuIGJlIGFjY2Vzc2VkIG9ueSBmcm9tIG1haW4gdGhyZWFk
IG9yIHVwZGF0ZVBhaW50Tm9kZSBjYWxsIHN0YWNrIQogICAgIFZlY3RvcjxzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4+IG1fcmVuZGVyUXVldWU7Ci0gICAgTXV0ZXggbV9yZW5kZXJRdWV1ZU11dGV4Owor
ICAgIExvY2sgbV9yZW5kZXJRdWV1ZU11dGV4OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlRleHR1cmVNYXBwZXI+IG1fdGV4dHVyZU1hcHBlcjsKIApJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVk
Q29tcG9zaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAJ
KHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTUsNyArMjk1LDcgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0
ZUNvbXBvc2l0aQogICAgIGlmIChtX3RocmVhZElkZW50aWZpZXIpCiAgICAgICAgIHJldHVybjsK
IAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25N
dXRleCk7CiAgICAgbV90aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKGNvbXBvc2l0aW5n
VGhyZWFkRW50cnksIHRoaXMsICJXZWJDb3JlOiBUaHJlYWRlZENvbXBvc2l0b3IiKTsKIAogICAg
IG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb24ud2FpdChtX2luaXRpYWxpemVSdW5Mb29wQ29u
ZGl0aW9uTXV0ZXgpOwpAQCAtMzA0LDcgKzMwNCw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9y
OjpjcmVhdGVDb21wb3NpdGkKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpydW5Db21wb3NpdGlu
Z1RocmVhZCgpCiB7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9pbml0aWFs
aXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9p
bml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKIAogICAgICAgICBtX2NvbXBvc2l0aW5n
UnVuTG9vcCA9IHN0ZDo6bWFrZV91bmlxdWU8Q29tcG9zaXRpbmdSdW5Mb29wPihbJl0gewogICAg
ICAgICAgICAgcmVuZGVyTGF5ZXJUcmVlKCk7CkBAIC0zMjEsNyArMzIxLDcgQEAgdm9pZCBUaHJl
YWRlZENvbXBvc2l0b3I6OnJ1bkNvbXBvc2l0aW5nVAogICAgIG1fc2NlbmUtPnB1cmdlR0xSZXNv
dXJjZXMoKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGVybWluYXRl
UnVuTG9vcENvbmRpdGlvbk11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90ZXJt
aW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogICAgICAgICBtX2NvbXBvc2l0aW5nUnVuTG9v
cCA9IG51bGxwdHI7CiAgICAgICAgIG1fY29udGV4dCA9IG51bGxwdHI7CiAgICAgICAgIG1fdGVy
bWluYXRlUnVuTG9vcENvbmRpdGlvbi5zaWduYWwoKTsKQEAgLTMzMiw3ICszMzIsNyBAQCB2b2lk
IFRocmVhZGVkQ29tcG9zaXRvcjo6cnVuQ29tcG9zaXRpbmdUCiAKIHZvaWQgVGhyZWFkZWRDb21w
b3NpdG9yOjp0ZXJtaW5hdGVDb21wb3NpdGluZ1RocmVhZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAKICAgICBtX3NjZW5l
LT5kZXRhY2goKTsKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cnVuTG9vcCgpLnN0b3AoKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFk
ZWRDb21wb3NpdG9yLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMTExLDkgKzExMSw5IEBAIHByaXZhdGU6CiAKICAgICBU
aHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkSWRlbnRpZmllcjsKICAgICBUaHJlYWRDb25kaXRpb24g
bV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbjsKLSAgICBNdXRleCBtX2luaXRpYWxpemVSdW5M
b29wQ29uZGl0aW9uTXV0ZXg7CisgICAgTG9jayBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9u
TXV0ZXg7CiAgICAgVGhyZWFkQ29uZGl0aW9uIG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbjsK
LSAgICBNdXRleCBtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKKyAgICBMb2NrIG1f
dGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11dGV4OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMv
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oCShyZXZp
c2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90
b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCwxMSAr
MTAwLDExIEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBIYXNoU2V0PFN0
cmluZz4gbV9yZWdpc3RlcmVkU2NoZW1lczsKLSAgICBNdXRleCBtX3JlZ2lzdGVyZWRTY2hlbWVz
TXV0ZXg7CisgICAgTG9jayBtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXg7CiAKICAgICB0eXBlZGVm
IEhhc2hNYXA8dWludDY0X3QsIFJldGFpblB0cjxXS0N1c3RvbVByb3RvY29sPj4gQ3VzdG9tUHJv
dG9jb2xNYXA7CiAgICAgQ3VzdG9tUHJvdG9jb2xNYXAgbV9jdXN0b21Qcm90b2NvbE1hcDsKLSAg
ICBNdXRleCBtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXg7CisgICAgTG9jayBtX2N1c3RvbVByb3Rv
Y29sTWFwTXV0ZXg7CiAgICAgCiAgICAgLy8gV0tDdXN0b21Qcm90b2NvbCBvYmplY3RzIGNhbiBi
ZSByZW1vdmVkIGZyb20gdGhlIG1fY3VzdG9tUHJvdG9jb2xNYXAgZnJvbSBtdWx0aXBsZSB0aHJl
YWRzLgogICAgIC8vIFdlIHJldHVybiBhIFJldGFpblB0ciBoZXJlIGJlY2F1c2UgaXQgaXMgdW5z
YWZlIHRvIHJldHVybiBhIHJhdyBwb2ludGVyIHNpbmNlIHRoZSBvYmplY3QgbWlnaHQgaW1tZWRp
YXRlbHkgYmUgZGVzdHJveWVkIGZyb20gYSBkaWZmZXJlbnQgdGhyZWFkLgpJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3Rv
Y29sTWFuYWdlckNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5t
bQkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3Vz
dG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjUsMjggKzE2NSwyOCBAQCB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6
aW5pdGlhbGl6ZShjCiB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6YWRkQ3VzdG9tUHJvdG9j
b2woV0tDdXN0b21Qcm90b2NvbCAqY3VzdG9tUHJvdG9jb2wpCiB7CiAgICAgQVNTRVJUKGN1c3Rv
bVByb3RvY29sKTsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9jdXN0b21Qcm90b2NvbE1hcE11
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOwog
ICAgIG1fY3VzdG9tUHJvdG9jb2xNYXAuYWRkKGN1c3RvbVByb3RvY29sLmN1c3RvbVByb3RvY29s
SUQsIGN1c3RvbVByb3RvY29sKTsKIH0KIAogdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnJl
bW92ZUN1c3RvbVByb3RvY29sKFdLQ3VzdG9tUHJvdG9jb2wgKmN1c3RvbVByb3RvY29sKQogewog
ICAgIEFTU0VSVChjdXN0b21Qcm90b2NvbCk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY3Vz
dG9tUHJvdG9jb2xNYXBNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9jdXN0b21Qcm90
b2NvbE1hcE11dGV4KTsKICAgICBtX2N1c3RvbVByb3RvY29sTWFwLnJlbW92ZShjdXN0b21Qcm90
b2NvbC5jdXN0b21Qcm90b2NvbElEKTsKIH0KICAgICAKIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyOjpyZWdpc3RlclNjaGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKICAgICBBU1NFUlQo
IXNjaGVtZS5pc051bGwoKSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNj
aGVtZXNNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011
dGV4KTsKICAgICBtX3JlZ2lzdGVyZWRTY2hlbWVzLmFkZChzY2hlbWUpOwogfQogICAgIAogdm9p
ZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnVucmVnaXN0ZXJTY2hlbWUoY29uc3QgU3RyaW5nJiBz
Y2hlbWUpCiB7CiAgICAgQVNTRVJUKCFzY2hlbWUuaXNOdWxsKCkpOwotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7CiAgICAgbV9yZWdpc3RlcmVkU2NoZW1lcy5yZW1v
dmUoc2NoZW1lKTsKIH0KIApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wgQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyOjpzdXBwb3J0c1NjaGUKICAgICBpZiAoc2NoZW1lLmlzTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9yZWdpc3RlcmVkU2NoZW1l
c011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgp
OwogICAgIHJldHVybiBtX3JlZ2lzdGVyZWRTY2hlbWVzLmNvbnRhaW5zKHNjaGVtZSk7CiB9CiAK
QEAgLTI2MSw3ICsyNjEsNyBAQCAgICAgaWYgKCFwcm90b2NvbCkKIAogUmV0YWluUHRyPFdLQ3Vz
dG9tUHJvdG9jb2w+IEN1c3RvbVByb3RvY29sTWFuYWdlcjo6cHJvdG9jb2xGb3JJRCh1aW50NjRf
dCBjdXN0b21Qcm90b2NvbElEKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2N1c3RvbVBy
b3RvY29sTWFwTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xN
YXBNdXRleCk7CiAKICAgICBDdXN0b21Qcm90b2NvbE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBt
X2N1c3RvbVByb3RvY29sTWFwLmZpbmQoY3VzdG9tUHJvdG9jb2xJRCk7CiAgICAgaWYgKGl0ID09
IG1fY3VzdG9tUHJvdG9jb2xNYXAuZW5kKCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bGludXgvU2VjY29tcEZpbHRlcnMvU2VjY29tcEJyb2tlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3Bw
CShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29t
cEZpbHRlcnMvU2VjY29tcEJyb2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcg
QEAgcHJpdmF0ZToKIAogICAgIGludCBtX3NvY2tldDsKIAotICAgIG11dGFibGUgTXV0ZXggbV9z
b2NrZXRMb2NrOworICAgIG11dGFibGUgTG9jayBtX3NvY2tldExvY2s7CiAKICAgICAvLyBNYXBz
IGZpbGVzIHRoYXQgbWF5IGJlIHJlYWQgYnkgbWFsbG9jKCkgdG8gb3BlbiBmaWxlIGRlc2NyaXB0
b3JzLgogICAgIEhhc2hNYXA8U3RyaW5nLCBpbnQ+IG1fZmlsZURlc2NyaXB0b3JDYWNoZTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAxODg1
MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsNyBAQCBQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbiogUGx1Z2luUHJvY2Vzc0NvCiAgICAgbV9wbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbnMuYXBwZW5kKHBsdWdpblByb2Nlc3NDb25uZWN0aW9uKTsKIAogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdG9rZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdG9rZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7CiAg
ICAgICAgIEFTU0VSVCghbV90b2tlbnNBbmRDb25uZWN0aW9ucy5jb250YWlucyhwbHVnaW5Qcm9j
ZXNzVG9rZW4pKTsKIAogICAgICAgICBtX3Rva2Vuc0FuZENvbm5lY3Rpb25zLnNldChwbHVnaW5Q
cm9jZXNzVG9rZW4sIHBsdWdpblByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCkpOwpAQCAt
MTAxLDcgKzEwMSw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpyZW0K
ICAgICBBU1NFUlQodmVjdG9ySW5kZXggIT0gbm90Rm91bmQpOwogCiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV90b2tlbnNBbmRDb25uZWN0aW9uc011dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV90b2tlbnNBbmRDb25uZWN0aW9uc011dGV4KTsKICAgICAgICAg
QVNTRVJUKG1fdG9rZW5zQW5kQ29ubmVjdGlvbnMuY29udGFpbnMocGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24tPnBsdWdpblByb2Nlc3NUb2tlbigpKSk7CiAgICAgICAgIAogICAgICAgICBtX3Rva2Vu
c0FuZENvbm5lY3Rpb25zLnJlbW92ZShwbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi0+cGx1Z2luUHJv
Y2Vzc1Rva2VuKCkpOwpAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyOjpyZW0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6
OnBsdWdpblByb2Nlc3NDcmFzaGVkKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV90b2tlbnNBbmRDb25uZWN0aW9uc011dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXgpOwogICAgIElQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiA9IG1fdG9rZW5zQW5kQ29ubmVjdGlvbnMuZ2V0KHBsdWdp
blByb2Nlc3NUb2tlbik7CiAKICAgICAvLyBJdCdzIE9LIGZvciBjb25uZWN0aW9uIHRvIGJlIG51
bGwgaGVyZTsgaXQgd2lsbCBoYXBwZW4gaWYgdGhpcyB3ZWIgcHJvY2VzcyBkb2Vzbid0IGtub3cK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgJKHJldmlzaW9uIDE4ODUx
MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRl
OgogCiAgICAgVmVjdG9yPFJlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4+IG1fcGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25zOwogCi0gICAgTXV0ZXggbV90b2tlbnNBbmRDb25uZWN0aW9uc011
dGV4OworICAgIExvY2sgbV90b2tlbnNBbmRDb25uZWN0aW9uc011dGV4OwogICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+PiBtX3Rva2Vuc0FuZENvbm5lY3Rpb25z
OwogfTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlz
cGF0Y2hlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02NSw3ICs2NSw3IEBAIEV2ZW50RGlzcGF0Y2hlcjo6fkV2ZW50RGlzcGF0Y2hlcigpCiAj
aWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKIHZvaWQgRXZlbnREaXNwYXRjaGVyOjphZGRTY3Jv
bGxpbmdUcmVlRm9yUGFnZShXZWJQYWdlKiB3ZWJQYWdlKQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Ny
b2xsaW5nVHJlZXNNdXRleCk7CiAKICAgICBBU1NFUlQod2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2Ny
b2xsaW5nQ29vcmRpbmF0b3IoKSk7CiAgICAgQVNTRVJUKCFtX3Njcm9sbGluZ1RyZWVzLmNvbnRh
aW5zKHdlYlBhZ2UtPnBhZ2VJRCgpKSk7CkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgRXZlbnREaXNw
YXRjaGVyOjphZGRTY3JvbGxpbmdUcmVlRm8KIAogdm9pZCBFdmVudERpc3BhdGNoZXI6OnJlbW92
ZVNjcm9sbGluZ1RyZWVGb3JQYWdlKFdlYlBhZ2UqIHdlYlBhZ2UpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9zY3JvbGxpbmdUcmVlc011dGV4KTsKICAgICBBU1NFUlQobV9zY3JvbGxpbmdUcmVlcy5jb250
YWlucyh3ZWJQYWdlLT5wYWdlSUQoKSkpOwogCiAgICAgbV9zY3JvbGxpbmdUcmVlcy5yZW1vdmUo
d2ViUGFnZS0+cGFnZUlEKCkpOwpAQCAtMTMyLDcgKzEzMiw3IEBAIHZvaWQgRXZlbnREaXNwYXRj
aGVyOjp3aGVlbEV2ZW50KHVpbnQ2NF8KICNlbmRpZgogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOwogICAgIGlmIChSZWZQ
dHI8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPiBzY3JvbGxpbmdUcmVlID0gbV9zY3JvbGxpbmdUcmVl
cy5nZXQocGFnZUlEKSkgewogICAgICAgICAvLyBGSVhNRTogSXQncyBwcmV0dHkgaG9ycmlibGUg
dGhhdCB3ZSdyZSB1cGRhdGluZyB0aGUgYmFjay9mb3J3YXJkIHN0YXRlIGhlcmUuCiAgICAgICAg
IC8vIFdlYkNvcmUgc2hvdWxkIGFsd2F5cyBrbm93IHRoZSBjdXJyZW50IHN0YXRlIGFuZCBrbm93
IHdoZW4gaXQgY2hhbmdlcyBzbyB0aGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgJKHJldmlzaW9uIDE4ODUxMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIFJlZjxXb3JrUXVldWU+
IG1fcXVldWU7CiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQotICAgIE11dGV4IG1fc2Ny
b2xsaW5nVHJlZXNNdXRleDsKKyAgICBMb2NrIG1fc2Nyb2xsaW5nVHJlZXNNdXRleDsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlPj4g
bV9zY3JvbGxpbmdUcmVlczsKICNlbmRpZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpX
aGVlbEV2ZW50RGVsdGFUcmFja2VyPiBtX3JlY2VudFdoZWVsRXZlbnREZWx0YVRyYWNrZXI7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3Vw
L1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgc3RydWN0IF9XZWJLaXRTb3Vw
UmVxdWVzdElucHV0U3RyZWFtUHJpdgogICAgIHVpbnQ2NF90IGJ5dGVzUmVjZWl2ZWQ7CiAgICAg
dWludDY0X3QgYnl0ZXNSZWFkOwogCi0gICAgTXV0ZXggcmVhZExvY2s7CisgICAgTG9jayByZWFk
TG9jazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNSZWFkRGF0YT4gcGVuZGluZ0FzeW5jUmVh
ZDsKIH07CiAKQEAgLTg0LDcgKzg0LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0U291cFJlcXVlc3RJ
bnB1dFN0cmVhbQogICAgIFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0qIHN0cmVhbSA9IFdF
QktJVF9TT1VQX1JFUVVFU1RfSU5QVVRfU1RSRUFNKGlucHV0U3RyZWFtKTsKICAgICBHUmVmUHRy
PEdUYXNrPiB0YXNrID0gYWRvcHRHUmVmKGdfdGFza19uZXcoc3RyZWFtLCBjYW5jZWxsYWJsZSwg
Y2FsbGJhY2ssIHVzZXJEYXRhKSk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIoc3RyZWFtLT5w
cml2LT5yZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIoc3RyZWFtLT5wcml2LT5yZWFk
TG9jayk7CiAKICAgICBpZiAoIXdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1IYXNEYXRhVG9S
ZWFkKHN0cmVhbSkgJiYgIXdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Jc1dhaXRpbmdGb3JE
YXRhKHN0cmVhbSkpIHsKICAgICAgICAgZ190YXNrX3JldHVybl9pbnQodGFzay5nZXQoKSwgMCk7
CkBAIC0xNDMsNyArMTQzLDcgQEAgdm9pZCB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtQWRk
RGF0YQogICAgIGlmICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtRmluaXNoZWQoc3RyZWFt
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKHN0cmVhbS0+cHJp
di0+cmVhZExvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKHN0cmVhbS0+cHJpdi0+cmVhZExv
Y2spOwogCiAgICAgaWYgKGRhdGFMZW5ndGgpIHsKICAgICAgICAgLy8gVHJ1bmNhdGUgdGhlIGRh
dGFMZW5ndGggdG8gdGhlIGNvbnRlbnRMZW5ndGggaWYgaXQncyBrbm93bi4KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODg1NDcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpN
dXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdG9yYWdlQXJlYVN5bmM6OnN5bmNUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VBcmVhU3luYzo6bWFya0ltcG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3Jh
Z2VBcmVhU3luYzo6YmxvY2tVbnRpbEltcG9ydENvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMpOgorICAgICAgICAqIFN0b3JhZ2UvU3RvcmFn
ZUFyZWFTeW5jLmg6CisgICAgICAgICogU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpmaW5pc2hlZEltcG9ydGluZ09yaWdp
bklkZW50aWZpZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzeW5jSW1w
b3J0T3JpZ2luSWRlbnRpZmllcnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6
OnN5bmNGaWxlU3lzdGVtQW5kVHJhY2tlckRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
b3JhZ2VUcmFja2VyOjpzZXRPcmlnaW5EZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3Jh
Z2VUcmFja2VyOjpzeW5jU2V0T3JpZ2luRGV0YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlVHJhY2tlcjo6b3JpZ2lucyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6
ZGVsZXRlQWxsT3JpZ2lucyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6c3lu
Y0RlbGV0ZUFsbE9yaWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmRl
bGV0ZU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0
ZU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6Y2FuRGVsZXRlT3Jp
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpjYW5jZWxEZWxldGluZ09y
aWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6ZGlza1VzYWdlRm9yT3Jp
Z2luKToKKyAgICAgICAgKiBTdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmg6CisKIDIwMTUtMDgtMTcg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBN
b3ZlIHNvbWUgY29tbWFuZHMgZnJvbSAuL0NNYWtlTGlzdHMudHh0IHRvIFNvdXJjZS9jbWFrZQpJ
bmRleDogU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAJKHJldmlzaW9u
IDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjQsNyArMTY0LDcgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnN5
bmNUaW1lckZpcmVkKCkKIAogICAgIGJvb2wgcGFydGlhbFN5bmMgPSBmYWxzZTsKICAgICB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9zeW5jTG9jayk7CiAKICAgICAgICAgLy8gRG8gbm90IHNjaGVkdWxlIGFub3Ro
ZXIgc3luYyBpZiB3ZSdyZSBzdGlsbCB0cnlpbmcgdG8gY29tcGxldGUgdGhlCiAgICAgICAgIC8v
IHByZXZpb3VzIG9uZS4gQnV0LCBpZiB3ZSdyZSBzaHV0dGluZyBkb3duLCBzY2hlZHVsZSBpdCBh
bnl3YXkuCkBAIC0zNTIsOSArMzUyLDkgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnBlcmZvcm1J
bXBvcnQoKQogCiB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6bWFya0ltcG9ydGVkKCkKIHsKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV9pbXBvcnRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X2ltcG9ydExvY2spOwogICAgIG1faW1wb3J0Q29tcGxldGUgPSB0cnVlOwotICAgIG1faW1wb3J0
Q29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1faW1wb3J0Q29uZGl0aW9uLm5vdGlmeU9uZSgpOwog
fQogCiAvLyBGSVhNRTogSW4gdGhlIGZ1dHVyZSwgd2Ugc2hvdWxkIGFsbG93IHVzZSBvZiBTdG9y
YWdlQXJlYXMgd2hpbGUgaXQncyBpbXBvcnRpbmcgKHdoZW4gc2FmZSB0byBkbyBzbykuCkBAIC0z
NzIsNyArMzcyLDcgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OmJsb2NrVW50aWxJbXBvcnRDbwog
ICAgIGlmICghbV9zdG9yYWdlQXJlYSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1faW1wb3J0TG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbXBvcnRM
b2NrKTsKICAgICB3aGlsZSAoIW1faW1wb3J0Q29tcGxldGUpCiAgICAgICAgIG1faW1wb3J0Q29u
ZGl0aW9uLndhaXQobV9pbXBvcnRMb2NrKTsKICAgICBtX3N0b3JhZ2VBcmVhID0gbnVsbHB0cjsK
QEAgLTQ2Nyw3ICs0NjcsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMoKQog
ICAgIGJvb2wgY2xlYXJJdGVtczsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBpdGVtczsK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAKICAgICAgICAgQVNTRVJUKG1fc3luY1Nj
aGVkdWxlZCk7CiAKQEAgLTQ4Miw3ICs0ODIsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVy
Zm9ybVN5bmMoKQogICAgIHN5bmMoY2xlYXJJdGVtcywgaXRlbXMpOwogCiAgICAgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fc3luY0xvY2spOwogICAgICAgICBtX3N5bmNJblByb2dyZXNzID0gZmFsc2U7CiAgICAg
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oCShyZXZpc2lv
biAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRl
RGF0YWJhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8d3RmL0Nv
bmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nSGFzaC5oPgogCkBAIC04NSw3ICs4Niw3IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBT
dHJpbmcgbV9kYXRhYmFzZUlkZW50aWZpZXI7CiAKLSAgICBNdXRleCBtX3N5bmNMb2NrOworICAg
IExvY2sgbV9zeW5jTG9jazsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2l0ZW1zUGVu
ZGluZ1N5bmM7CiAgICAgYm9vbCBtX2NsZWFySXRlbXNXaGlsZVN5bmNpbmc7CiAgICAgYm9vbCBt
X3N5bmNTY2hlZHVsZWQ7CkBAIC05NCw4ICs5NSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1f
c3luY0Nsb3NlRGF0YWJhc2U7CiAKLSAgICBtdXRhYmxlIE11dGV4IG1faW1wb3J0TG9jazsKLSAg
ICBUaHJlYWRDb25kaXRpb24gbV9pbXBvcnRDb25kaXRpb247CisgICAgbXV0YWJsZSBMb2NrIG1f
aW1wb3J0TG9jazsKKyAgICBDb25kaXRpb24gbV9pbXBvcnRDb25kaXRpb247CiAgICAgYm9vbCBt
X2ltcG9ydENvbXBsZXRlOwogICAgIHZvaWQgbWFya0ltcG9ydGVkKCk7CiAgICAgdm9pZCBtaWdy
YXRlSXRlbVRhYmxlSWZOZWVkZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9y
YWdlVHJhY2tlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3Jh
Z2VUcmFja2VyLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktpdC9TdG9yYWdl
L1N0b3JhZ2VUcmFja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIFN0
b3JhZ2VUcmFja2VyOjpTdG9yYWdlVHJhY2tlcihjb25zdCBTdHIKIAogdm9pZCBTdG9yYWdlVHJh
Y2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2RhdGFiYXNlTXV0ZXgpOwogCiAgICAgaWYgKG1fZGF0YWJhc2UuaXNPcGVuKCkpCiAg
ICAgICAgIG1fZGF0YWJhc2UuY2xvc2UoKTsKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFN0b3Jh
Z2VUcmFja2VyOjpzZXREYXRhYmFzZURpcmVjdG9yCiAgICAgbV9zdG9yYWdlRGlyZWN0b3J5UGF0
aCA9IHBhdGguaXNvbGF0ZWRDb3B5KCk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmln
aW5TZXRNdXRleCk7CiAgICAgICAgIG1fb3JpZ2luU2V0LmNsZWFyKCk7CiAgICAgfQogCkBAIC0x
ODUsNyArMTg1LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6aW1wb3J0T3JpZ2luSWRlbnRpZgog
CiB2b2lkIFN0b3JhZ2VUcmFja2VyOjpmaW5pc2hlZEltcG9ydGluZ09yaWdpbklkZW50aWZpZXJz
KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOwogICAgIGlmIChtX2NsaWVudCkKICAgICAg
ICAgbV9jbGllbnQtPmRpZEZpbmlzaExvYWRpbmdPcmlnaW5zKCk7CiB9CkBAIC0xOTcsNyArMTk3
LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgIEFTU0VS
VCghaXNNYWluVGhyZWFkKCkpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9kYXRhYmFzZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11
dGV4KTsKIAogICAgICAgICAvLyBEb24ndCBmb3JjZSBjcmVhdGlvbiBvZiBTdG9yYWdlVHJhY2tl
cidzIGRiIGp1c3QgYmVjYXVzZSBhIHRyYWNrZXIKICAgICAgICAgLy8gd2FzIGluaXRpYWxpemVk
LiBJdCB3aWxsIGJlIGNyZWF0ZWQgaWYgbG9jYWwgc3RvcmFnZSBkYnMgYXJlIGZvdW5kCkBAIC0y
MTcsNyArMjE3LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQog
ICAgICAgICAgICAgaW50IHJlc3VsdDsKICAgICAgICAgICAgIAogICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tPcmlnaW5zKG1fb3JpZ2luU2V0TXV0ZXgpOwor
ICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja09yaWdpbnMobV9vcmlnaW5TZXRNdXRleCk7
CiAgICAgICAgICAgICAgICAgd2hpbGUgKChyZXN1bHQgPSBzdGF0ZW1lbnQuc3RlcCgpKSA9PSBT
UUxJVEVfUk9XKQogICAgICAgICAgICAgICAgICAgICBtX29yaWdpblNldC5hZGQoc3RhdGVtZW50
LmdldENvbHVtblRleHQoMCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgICAgICAgICAgfQpAQCAtMjMy
LDEwICsyMzIsMTAgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQog
ICAgIHN5bmNGaWxlU3lzdGVtQW5kVHJhY2tlckRhdGFiYXNlKCk7CiAgICAgCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgpOwogCiAgICAgICAgIGlmIChtX2NsaWVudCkgewotICAg
ICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgICAgICBPcmln
aW5TZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOwogICAgICAgICAg
ICAgZm9yIChPcmlnaW5TZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9vcmlnaW5TZXQuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaXNwYXRjaERp
ZE1vZGlmeU9yaWdpbigqaXQpOwpAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgU3RvcmFnZVRyYWNr
ZXI6OnN5bmNGaWxlU3lzdGVtQW5kVHIKIAogICAgIFZlY3RvcjxTdHJpbmc+IHBhdGhzOwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgICAgIHBhdGhzID0gbGlz
dERpcmVjdG9yeShtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoLCAiKi5sb2NhbHN0b3JhZ2UiKTsKICAg
ICB9CiAKQEAgLTI2NSw3ICsyNjUsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRmlsZVN5
c3RlbUFuZFRyCiAgICAgLy8gZGVsZXRpb25zIGZyb20gZGlzayBhbmQgZnJvbSBtX29yaWdpblNl
dC4KICAgICBPcmlnaW5TZXQgb3JpZ2luU2V0Q29weTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRv
ciBpdCA9IG1fb3JpZ2luU2V0LmJlZ2luKCksIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOyBpdCAh
PSBlbmQ7ICsraXQpCiAgICAgICAgICAgICBvcmlnaW5TZXRDb3B5LmFkZCgoKml0KS5pc29sYXRl
ZENvcHkoKSk7CiAgICAgfQpAQCAtMzA2LDcgKzMwNiw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6
OnNldE9yaWdpbkRldGFpbHMoY28KICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogCiAgICAgICAgIGlmIChtX29yaWdpblNldC5jb250
YWlucyhvcmlnaW5JZGVudGlmaWVyKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTMzNyw3ICsz
MzcsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jU2V0T3JpZ2luRGV0YWlsCiAKICAgICBT
UUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOwogCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZSh0
cnVlKTsKICAgICAKQEAgLTM1NywxMyArMzU3LDEzIEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5
bmNTZXRPcmlnaW5EZXRhaWwKICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gZXN0YWJsaXNo
IG9yaWdpbiAnJXMnIGluIHRoZSB0cmFja2VyIiwgb3JpZ2luSWRlbnRpZmllci5hc2NpaSgpLmRh
dGEoKSk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAg
ICAgIGlmICghbV9vcmlnaW5TZXQuY29udGFpbnMob3JpZ2luSWRlbnRpZmllcikpCiAgICAgICAg
ICAgICBtX29yaWdpblNldC5hZGQob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgpOwogICAgICAgICBpZiAobV9jbGllbnQpCiAgICAg
ICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmll
cik7CiAgICAgfQpAQCAtMzc2LDcgKzM3Niw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6Om9yaWdp
bnMoVmVjdG9yPFJlZlAKICAgICBpZiAoIW1faXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKIAogICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9p
dGVyYXRvciBpdCA9IG1fb3JpZ2luU2V0LmJlZ2luKCksIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgp
OyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIoKml0KSk7CkBAIC0zOTIsNyArMzkyLDcgQEAg
dm9pZCBTdG9yYWdlVHJhY2tlcjo6ZGVsZXRlQWxsT3JpZ2lucygpCiAgICAgICAgIHJldHVybjsK
IAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgd2ls
bERlbGV0ZUFsbE9yaWdpbnMoKTsKICAgICAgICAgbV9vcmlnaW5TZXQuY2xlYXIoKTsKICAgICB9
CkBAIC00MTcsNyArNDE3LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9y
aWdpbgogCiAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNh
Y3Rpb25Db3VudGVyOwogICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgCiAgICAg
b3BlblRyYWNrZXJEYXRhYmFzZShmYWxzZSk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3Blbigp
KQpAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVBbGxP
cmlnaW4KICAgICAgICAgZGVsZXRlRmlsZShzdGF0ZW1lbnQuZ2V0Q29sdW1uVGV4dCgxKSk7CiAK
ICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgp
OworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9jbGllbnRNdXRleCk7CiAgICAgICAg
ICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlk
TW9kaWZ5T3JpZ2luKHN0YXRlbWVudC5nZXRDb2x1bW5UZXh0KDApKTsKICAgICAgICAgfQpAQCAt
NDk5LDcgKzQ5OSw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cmkK
ICAgICBTdHJpbmcgb3JpZ2luSWQgPSBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpOwogICAg
IAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgd2ls
bERlbGV0ZU9yaWdpbihvcmlnaW5JZCk7CiAgICAgICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmln
aW5JZCk7CiAgICAgfQpAQCAtNTE2LDcgKzUxNiw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5
bmNEZWxldGVPcmlnaW4oY28KIAogICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9D
b3VudGVyIHRyYW5zYWN0aW9uQ291bnRlcjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Rh
dGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAg
ICAgCiAgICAgaWYgKCFjYW5EZWxldGVPcmlnaW4ob3JpZ2luSWRlbnRpZmllcikpIHsKICAgICAg
ICAgTE9HX0VSUk9SKCJBdHRlbXB0ZWQgdG8gZGVsZXRlIG9yaWdpbiAnJXMnIHdoaWxlIGl0IHdh
cyBiZWluZyBjcmVhdGVkXG4iLCBvcmlnaW5JZGVudGlmaWVyLmFzY2lpKCkuZGF0YSgpKTsKQEAg
LTU0OSw3ICs1NDksNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKGNv
CiAgICAgCiAgICAgYm9vbCBzaG91bGREZWxldGVUcmFja2VyRmlsZXMgPSBmYWxzZTsKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgIG1fb3JpZ2luU2V0
LnJlbW92ZShvcmlnaW5JZGVudGlmaWVyKTsKICAgICAgICAgc2hvdWxkRGVsZXRlVHJhY2tlckZp
bGVzID0gbV9vcmlnaW5TZXQuaXNFbXB0eSgpOwogICAgIH0KQEAgLTU2Niw3ICs1NjYsNyBAQCB2
b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKGNvCiAgICAgfQogCiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgpOwogICAgICAgICBpZiAobV9jbGllbnQpCiAgICAg
ICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmll
cik7CiAgICAgfQpAQCAtNTkyLDcgKzU5Miw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OndpbGxE
ZWxldGVPcmlnaW4oY28KIGJvb2wgU3RvcmFnZVRyYWNrZXI6OmNhbkRlbGV0ZU9yaWdpbihjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlTXV0
ZXgudHJ5TG9jaygpKTsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgcmV0dXJuIG1f
b3JpZ2luc0JlaW5nRGVsZXRlZC5jb250YWlucyhvcmlnaW5JZGVudGlmaWVyKTsKIH0KIApAQCAt
NjAxLDkgKzYwMSw5IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OmNhbmNlbERlbGV0aW5nT3JpZ2kK
ICAgICBpZiAoIW1faXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJh
c2VNdXRleCk7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRN
dXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAg
ICAgICBpZiAoIW1fb3JpZ2luc0JlaW5nRGVsZXRlZC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBt
X29yaWdpbnNCZWluZ0RlbGV0ZWQucmVtb3ZlKG9yaWdpbklkZW50aWZpZXIpOwogICAgIH0KQEAg
LTY0Nyw3ICs2NDcsNyBAQCBsb25nIGxvbmcgU3RvcmFnZVRyYWNrZXI6OmRpc2tVc2FnZUZvck9y
CiAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0
YWJhc2VNdXRleCk7CiAKICAgICBTdHJpbmcgcGF0aCA9IGRhdGFiYXNlUGF0aEZvck9yaWdpbihv
cmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICBpZiAocGF0aC5pc0VtcHR5KCkpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAkocmV2aXNpb24gMTg4NTEw
KQorKysgU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTk1LDE1ICs5NSwxNSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3luY0ltcG9ydE9yaWdp
bklkZW50aWZpZXJzKCk7CiAKICAgICAvLyBNdXRleCBmb3IgbV9kYXRhYmFzZSBhbmQgbV9zdG9y
YWdlRGlyZWN0b3J5UGF0aC4KLSAgICBNdXRleCBtX2RhdGFiYXNlTXV0ZXg7CisgICAgTG9jayBt
X2RhdGFiYXNlTXV0ZXg7CiAgICAgU1FMaXRlRGF0YWJhc2UgbV9kYXRhYmFzZTsKICAgICBTdHJp
bmcgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aDsKIAotICAgIE11dGV4IG1fY2xpZW50TXV0ZXg7Cisg
ICAgTG9jayBtX2NsaWVudE11dGV4OwogICAgIFN0b3JhZ2VUcmFja2VyQ2xpZW50KiBtX2NsaWVu
dDsKIAogICAgIC8vIEd1YXJkIGZvciBtX29yaWdpblNldCBhbmQgbV9vcmlnaW5zQmVpbmdEZWxl
dGVkLgotICAgIE11dGV4IG1fb3JpZ2luU2V0TXV0ZXg7CisgICAgTG9jayBtX29yaWdpblNldE11
dGV4OwogICAgIHR5cGVkZWYgSGFzaFNldDxTdHJpbmc+IE9yaWdpblNldDsKICAgICBPcmlnaW5T
ZXQgbV9vcmlnaW5TZXQ7CiAgICAgT3JpZ2luU2V0IG1fb3JpZ2luc0JlaW5nRGVsZXRlZDsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2lvcy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU0NykKKysrIFNvdXJjZS9XZWJLaXQvaW9z
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA4LTE3ICBG
aWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVt
YWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGaXhl
ZFBvc2l0aW9uQ29udGVudC5tbToKKyAgICAgICAgKFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0
YUxvY2spOgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBzY3JvbGxPclpvb21D
aGFuZ2VkOl0pOgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBvdmVyZmxvd1Nj
cm9sbFBvc2l0aW9uRm9yTGF5ZXI6Y2hhbmdlZFRvOl0pOgorICAgICAgICAoLVtXZWJGaXhlZFBv
c2l0aW9uQ29udGVudCBzZXRWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzOnN0aWNreUNvbnRhaW5l
ck1hcDpdKToKKyAgICAgICAgKC1bV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQgaGFzRml4ZWRPclN0
aWNreVBvc2l0aW9uTGF5ZXJzXSk6CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50
IG1pbmltdW1PZmZzZXRGcm9tRml4ZWRQb3NpdGlvbkxheWVyc1RvQW5jaG9yRWRnZTpvZlJlY3Q6
aW5MYXllcjpdKToKKwogMjAxNS0wOC0xMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBhbmQgaW1wcm92ZSBUZXh0SW5kaWNhdG9yIHRv
IHByZXBhcmUgZm9yIHRlc3RzCkluZGV4OiBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbQkocmV2aXNpb24g
MTg4NTEwKQorKysgU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3Np
dGlvbkNvbnRlbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ4LDkgKzQ4LDkgQEAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotc3RhdGljIE11dGV4JiBX
ZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkKK3N0YXRpYyBMb2NrJiBXZWJGaXhlZFBv
c2l0aW9uQ29udGVudERhdGFMb2NrKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKExvY2ssIG11dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xMDEsNyAr
MTAxLDcgQEAgLSAodm9pZClkZWFsbG9jCiAKIC0gKHZvaWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDoo
Q0dSZWN0KXBvc2l0aW9uZWRPYmplY3RzUmVjdAogewotICAgIE11dGV4TG9ja2VyIGxvY2soV2Vi
Rml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2soV2Vi
Rml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKIAogICAgIExheWVySW5mb01hcDo6Y29u
c3RfaXRlcmF0b3IgZW5kID0gX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5l
bmQoKTsKICAgICBmb3IgKExheWVySW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBfcHJpdmF0
ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkg
ewpAQCAtMTQwLDcgKzE0MCw3IEBAIC0gKHZvaWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dSZWN0
KXBvc2kKIAogLSAodm9pZClvdmVyZmxvd1Njcm9sbFBvc2l0aW9uRm9yTGF5ZXI6KENBTGF5ZXIg
KilzY3JvbGxMYXllciBjaGFuZ2VkVG86KENHUG9pbnQpc2Nyb2xsUG9zaXRpb24KIHsKLSAgICBN
dXRleExvY2tlciBsb2NrKFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAg
TG9ja0hvbGRlciBsb2NrKFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAKICAg
ICBMYXllckluZm9NYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IF9wcml2YXRlLT5tX3ZpZXdwb3J0
Q29uc3RyYWluZWRMYXllcnMuZW5kKCk7CiAgICAgZm9yIChMYXllckluZm9NYXA6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5iZWdpbigp
OyBpdCAhPSBlbmQ7ICsraXQpIHsKQEAgLTE3Myw3ICsxNzMsNyBAQCAtICh2b2lkKWRpZEZpbmlz
aFNjcm9sbGluZ09yWm9vbWluZwogCiAtICh2b2lkKXNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXll
cnM6KFdURjo6SGFzaE1hcDxDQUxheWVyICosIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpWaWV3
cG9ydENvbnN0cmFpbnRzPj4mKWxheWVyTWFwIHN0aWNreUNvbnRhaW5lck1hcDooV1RGOjpIYXNo
TWFwPENBTGF5ZXIqLCBDQUxheWVyKj4mKXN0aWNreUNvbnRhaW5lcnMKIHsKLSAgICBNdXRleExv
Y2tlciBsb2NrKFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hv
bGRlciBsb2NrKFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAKICAgICBfcHJp
dmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmNsZWFyKCk7CiAKQEAgLTE5MCw3ICsx
OTAsNyBAQCAtICh2b2lkKXNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6KFdUCiAKIC0gKEJP
T0wpaGFzRml4ZWRPclN0aWNreVBvc2l0aW9uTGF5ZXJzCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
ayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9j
ayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkpOwogICAgIHJldHVybiAhX3ByaXZh
dGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5pc0VtcHR5KCk7CiB9CiAKQEAgLTIxMCw3
ICsyMTAsNyBAQCBzdGF0aWMgVmlld3BvcnRDb25zdHJhaW50czo6QW5jaG9yRWRnZUZsCiAKIC0g
KENHRmxvYXQpbWluaW11bU9mZnNldEZyb21GaXhlZFBvc2l0aW9uTGF5ZXJzVG9BbmNob3JFZGdl
OihXZWJGaXhlZFBvc2l0aW9uQW5jaG9yRWRnZSlhbmNob3JFZGdlIG9mUmVjdDooQ0dSZWN0KXJl
Y3QgaW5MYXllcjooQ0FMYXllciAqKWxheWVyCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJG
aXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJG
aXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkpOwogICAgIFZpZXdwb3J0Q29uc3RyYWludHM6
OkFuY2hvckVkZ2VGbGFncyBhbmNob3JFZGdlRmxhZ3MgPSBhbmNob3JFZGdlRmxhZ3NGb3JBbmNo
b3JFZGdlKGFuY2hvckVkZ2UpOwogICAgIENHRmxvYXQgbWluaW11bU9mZnNldCA9IENHRkxPQVRf
TUFYOwogICAgIExheWVySW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gX3ByaXZhdGUtPm1f
dmlld3BvcnRDb25zdHJhaW5lZExheWVycy5lbmQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE4ODU0NykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpN
dXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbToKKyAgICAgICAgKHRy
YW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jayk6CisgICAgICAgICgrW1dlYkRh
dGFiYXNlTWFuYWdlciBzdGFydEJhY2tncm91bmRUYXNrXSk6CisgICAgICAgICgrW1dlYkRhdGFi
YXNlTWFuYWdlciBlbmRCYWNrZ3JvdW5kVGFza10pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmll
dy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfc3luY2hyb25pemVDdXN0b21GaXhlZFBvc2l0aW9u
TGF5b3V0UmVjdF0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zZXRDdXN0b21GaXhlZFBvc2l0aW9u
TGF5b3V0UmVjdEluV2ViVGhyZWFkOnN5bmNocm9uaXplOl0pOgorICAgICAgICAoLVtXZWJWaWV3
IF9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdDpdKToKKyAgICAgICAgKC1bV2ViVmll
dyBfZmV0Y2hDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdDpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXdEYXRhLmg6CisKIDIwMTUtMDgtMTMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gRG93bmxvYWRzIGRvIG5vdCBzdGFydCBpZiBwb2xp
Y3kgZGVjaXNpb24gaXMgbWFkZSBhc3luY2hyb25vdXNseQpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0JKHJldmlzaW9uIDE4ODUxMCkK
KysrIFNvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMjYsOSArMjI2LDkgQEAgKyAodm9pZClzY2hlZHVsZUVtcHR5RGF0YWJh
c2VSZW1vdmFsCiAjaWYgUExBVEZPUk0oSU9TKQogQGltcGxlbWVudGF0aW9uIFdlYkRhdGFiYXNl
TWFuYWdlciAoV2ViRGF0YWJhc2VNYW5hZ2VySW50ZXJuYWwpCiAKLXN0YXRpYyBNdXRleCYgdHJh
bnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkKK3N0YXRpYyBMb2NrJiB0cmFu
c2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2soKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoTG9jaywgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9
CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCArICh2b2lkKWRpZEZpbmlzaExhc3RUcmFuc2FjdGlvbgog
CiArICh2b2lkKXN0YXJ0QmFja2dyb3VuZFRhc2sKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKHRy
YW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jaygpKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sodHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOwogCiAgICAg
Ly8gSWYgdGhlcmUncyBhbHJlYWR5IGFuIGV4aXN0aW5nIGJhY2tncm91bmQgdGFzayBnb2luZyBv
biwgdGhlcmUncyBubyBuZWVkIHRvIHN0YXJ0IGEgbmV3IG9uZS4KICAgICBpZiAoZ2V0VHJhbnNh
Y3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXIoKSAhPSBpbnZhbGlkV2ViQmFja2dyb3VuZFRh
c2tJZGVudGlmaWVyKCkpCkBAIC0yNzUsNyArMjc1LDcgQEAgKyAodm9pZClzdGFydEJhY2tncm91
bmRUYXNrCiAKICsgKHZvaWQpZW5kQmFja2dyb3VuZFRhc2sKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jaygpKTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2sodHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOwog
CiAgICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCB3ZSB3ZXJlIHVuYWJsZSB0byBzdGFydCB0aGUg
YmFja2dyb3VuZCB0YXNrIHdoZW4gdGhlIGZpcnN0IHRyYW5zYWN0aW9uIGJlZ2FuLgogICAgIC8v
IERvbid0IHRyeSB0byBlbmQgdGhlIHRhc2sgaW4gdGhhdCBjYXNlLgpJbmRleDogU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNjMyLDcgKzM2MzIs
NyBAQCAtICh2b2lkKV9zeW5jaHJvbml6ZUN1c3RvbUZpeGVkUG9zaXRpb25MCiAKICAgICBJbnRS
ZWN0IG5ld1JlY3Q7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoX3ByaXZhdGUt
PnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsK
ICAgICAgICAgaWYgKENHUmVjdElzTnVsbChfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25M
YXlvdXRSZWN0KSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbmV3UmVjdCA9IGVuY2xv
c2luZ0ludFJlY3QoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCk7CkBA
IC0zNjQ2LDcgKzM2NDYsNyBAQCAtICh2b2lkKV9zeW5jaHJvbml6ZUN1c3RvbUZpeGVkUG9zaXRp
b25MCiAtICh2b2lkKV9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdEluV2ViVGhyZWFk
OihDR1JlY3QpcmVjdCBzeW5jaHJvbml6ZTooQk9PTClzeW5jaHJvbml6ZQogewogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxh
eW91dFJlY3RNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5k
aW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleCk7CiAgICAgICAgIF9wcml2YXRlLT5wZW5k
aW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3QgPSByZWN0OwogICAgIH0KICAgICBpZiAoIXN5bmNo
cm9uaXplKQpAQCAtMzY2MCw3ICszNjYwLDcgQEAgLSAodm9pZClfc2V0Q3VzdG9tRml4ZWRQb3Np
dGlvbkxheW91dFJlYwogewogICAgIEFTU0VSVChXZWJUaHJlYWRJc0xvY2tlZCgpKTsKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRp
b25MYXlvdXRSZWN0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihfcHJpdmF0ZS0+
cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOwogICAgICAgICBfcHJpdmF0ZS0+
cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0ID0gcmVjdDsKICAgICB9CiAgICAgW3NlbGYg
X3N5bmNocm9uaXplQ3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3RdOwpAQCAtMzY2OCw3ICsz
NjY4LDcgQEAgLSAodm9pZClfc2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlYwogCiAtIChC
T09MKV9mZXRjaEN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0OihOU1JlY3QqKXJlY3QKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5
b3V0UmVjdE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0Zp
eGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOwogICAgIGlmIChDR1JlY3RJc051bGwoX3ByaXZh
dGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIApJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAkocmV2aXNp
b24gMTg4NTEwKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNDksNyArMjQ5LDcgQEAgQGludGVyZmFjZSBXZWJWaWV3UHJpdmF0
ZSA6IE5TT2JqZWN0IHsKICAgICBDR1NpemUgZml4ZWRMYXlvdXRTaXplOwogICAgIEJPT0wgbWFp
blZpZXdJc1Njcm9sbGluZ09yWm9vbWluZzsKICAgICBpbnQzMl90IGRpZERyYXdUaWxlczsKLSAg
ICBXVEY6Ok11dGV4IHBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4OworICAgIFdU
Rjo6TG9jayBwZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleDsKICAgICBDR1JlY3Qg
cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0OwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cJKHJldmlzaW9uIDE4ODU0NykKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMg
b2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6c2NoZWR1
bGVDYWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnJl
Z2lzdGVyUGx1Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVs
ZXI6OnVucmVnaXN0ZXJQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVh
ZFNjaGVkdWxlcjo6ZGlzcGF0Y2hDYWxsc0ZvclBsdWdpbik6CisgICAgICAgICogUGx1Z2lucy9Q
bHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmg6CisgICAgICAgICogV2ViSWNvbkRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKFdlYkljb25EYXRhYmFzZTo6ZGlkUmVtb3ZlQWxsSWNvbnMpOgorICAgICAg
ICAoV2ViSWNvbkRhdGFiYXNlOjpkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTCk6CisgICAgICAg
IChXZWJJY29uRGF0YWJhc2U6OmRlbGl2ZXJOb3RpZmljYXRpb25zKToKKyAgICAgICAgKiBXZWJJ
Y29uRGF0YWJhc2UuaDoKKyAgICAgICAgKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwOgorICAg
ICAgICAobWFpbkJ1bmRsZUxvY1N0cmluZ3MpOgorICAgICAgICAoZnJhbWV3b3JrTG9jU3RyaW5n
c011dGV4KToKKyAgICAgICAgKGZpbmRDYWNoZWRTdHJpbmcpOgorICAgICAgICAoY2FjaGVTdHJp
bmcpOgorCiAyMDE1LTA4LTE3ICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4K
IAogICAgICAgICBbV2luQ2Fpcm9dIEFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGRvZXMgbm90IHJl
c3BlY3QgZGV2aWNlIHNjYWxlIGZhY3Rvci4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYklj
b25EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRh
dGFiYXNlLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktpdC93aW4vV2ViSWNv
bkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIwLDE0ICszMjAsMTQgQEAgSEJJVE1B
UCBXZWJJY29uRGF0YWJhc2U6OmdldE9yQ3JlYXRlRGVmYQogdm9pZCBXZWJJY29uRGF0YWJhc2U6
OmRpZFJlbW92ZUFsbEljb25zKCkKIHsKICAgICAvLyBRdWV1ZWluZyB0aGUgZW1wdHkgc3RyaW5n
IGlzIGEgc3BlY2lhbCB3YXkgb2Ygc2F5aW5nICJ0aGlzIHF1ZXVlZCBub3RpZmljYXRpb24gaXMg
dGhlIGRpZFJlbW92ZUFsbEljb25zIG5vdGlmaWNhdGlvbiIKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9ub3RpZmljYXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ub3RpZmlj
YXRpb25NdXRleCk7CiAgICAgbV9ub3RpZmljYXRpb25RdWV1ZS5hcHBlbmQoU3RyaW5nKCkpOwog
ICAgIHNjaGVkdWxlTm90aWZpY2F0aW9uRGVsaXZlcnkoKTsKIH0KIAogdm9pZCBXZWJJY29uRGF0
YWJhc2U6OmRpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFdURjo6U3RyaW5nJiBwYWdl
VVJMKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX25vdGlmaWNhdGlvbk11dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX25vdGlmaWNhdGlvbk11dGV4KTsKICAgICBtX25vdGlmaWNh
dGlvblF1ZXVlLmFwcGVuZChwYWdlVVJMLmlzb2xhdGVkQ29weSgpKTsKICAgICBzY2hlZHVsZU5v
dGlmaWNhdGlvbkRlbGl2ZXJ5KCk7CiB9CkBAIC00MDMsNyArNDAzLDcgQEAgdm9pZCBXZWJJY29u
RGF0YWJhc2U6OmRlbGl2ZXJOb3RpZmljYXRpbwogCiAgICAgVmVjdG9yPFN0cmluZz4gcXVldWU7
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zaGFyZWRXZWJJY29uRGF0YWJh
c2UtPm1fbm90aWZpY2F0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3No
YXJlZFdlYkljb25EYXRhYmFzZS0+bV9ub3RpZmljYXRpb25NdXRleCk7CiAgICAgICAgIHF1ZXVl
LnN3YXAobV9zaGFyZWRXZWJJY29uRGF0YWJhc2UtPm1fbm90aWZpY2F0aW9uUXVldWUpOwogICAg
ICAgICBtX3NoYXJlZFdlYkljb25EYXRhYmFzZS0+bV9kZWxpdmVyeVJlcXVlc3RlZCA9IGZhbHNl
OwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCShyZXZpc2lvbiAx
ODg1MTApCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJJY29uRGF0YWJhc2UuaAkod29ya2luZyBj
b3B5KQpAQCAtMTE2LDcgKzExNiw3IEBAIHByb3RlY3RlZDoKICAgICBIYXNoTWFwPEludFNpemUs
IEhCSVRNQVA+IG1fZGVmYXVsdEljb25NYXA7CiAgICAgSGFzaE1hcDxJbnRTaXplLCBIQklUTUFQ
PiBtX3NoYXJlZEljb25NYXA7CiAKLSAgICBNdXRleCBtX25vdGlmaWNhdGlvbk11dGV4OworICAg
IExvY2sgbV9ub3RpZmljYXRpb25NdXRleDsKICAgICBWZWN0b3I8U3RyaW5nPiBtX25vdGlmaWNh
dGlvblF1ZXVlOwogICAgIHZvaWQgc2NoZWR1bGVOb3RpZmljYXRpb25EZWxpdmVyeSgpOwogICAg
IGJvb2wgbV9kZWxpdmVyeVJlcXVlc3RlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkxv
Y2FsaXphYmxlU3RyaW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2Vi
TG9jYWxpemFibGVTdHJpbmdzLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktp
dC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsOSAr
NDQsOSBAQCBXZWJMb2NhbGl6YWJsZVN0cmluZ3NCdW5kbGUgV2ViS2l0TG9jYWxpCiAKIHR5cGVk
ZWYgSGFzaE1hcDxTdHJpbmcsIExvY2FsaXplZFN0cmluZyo+IExvY2FsaXplZFN0cmluZ01hcDsK
IAotc3RhdGljIE11dGV4JiBtYWluQnVuZGxlTG9jU3RyaW5nc011dGV4KCkKK3N0YXRpYyBMb2Nr
JiBtYWluQnVuZGxlTG9jU3RyaW5nc011dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKExvY2ssIG11dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC01
Niw5ICs1Niw5IEBAIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmdNYXAmIG1haW5CdW5kbGVMb2MKICAg
ICByZXR1cm4gbWFwOwogfQogCi1zdGF0aWMgTXV0ZXgmIGZyYW1ld29ya0xvY1N0cmluZ3NNdXRl
eCgpCitzdGF0aWMgTG9jayYgZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIG11dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11
dGV4OwogfQogCkBAIC0xNzUsMTIgKzE3NSwxMiBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29weUxv
Y2FsaXplZFN0cmluZ0ZyCiBzdGF0aWMgTG9jYWxpemVkU3RyaW5nKiBmaW5kQ2FjaGVkU3RyaW5n
KFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRsZSogc3RyaW5nc0J1bmRsZSwgY29uc3QgU3RyaW5n
JiBrZXkpCiB7CiAgICAgaWYgKCFzdHJpbmdzQnVuZGxlKSB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2sobWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBs
b2NrKG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgoKSk7CiAgICAgICAgIHJldHVybiBtYWluQnVu
ZGxlTG9jU3RyaW5ncygpLmdldChrZXkpOwogICAgIH0KIAogICAgIGlmIChzdHJpbmdzQnVuZGxl
LT5idW5kbGUgPT0gV2ViS2l0TG9jYWxpemFibGVTdHJpbmdzQnVuZGxlLmJ1bmRsZSkgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrKGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsKICAgICAgICAg
cmV0dXJuIGZyYW1ld29ya0xvY1N0cmluZ3MoKS5nZXQoa2V5KTsKICAgICB9CiAKQEAgLTE5MCwx
MiArMTkwLDEyIEBAIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmcqIGZpbmRDYWNoZWRTdHJpbmcKIHN0
YXRpYyB2b2lkIGNhY2hlU3RyaW5nKFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRsZSogc3RyaW5n
c0J1bmRsZSwgY29uc3QgU3RyaW5nJiBrZXksIExvY2FsaXplZFN0cmluZyogdmFsdWUpCiB7CiAg
ICAgaWYgKCFzdHJpbmdzQnVuZGxlKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobWFpbkJ1
bmRsZUxvY1N0cmluZ3NNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1haW5CdW5k
bGVMb2NTdHJpbmdzTXV0ZXgoKSk7CiAgICAgICAgIG1haW5CdW5kbGVMb2NTdHJpbmdzKCkuc2V0
KGtleSwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgTXV0ZXhMb2NrZXIg
bG9jayhmcmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKGZy
YW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsKICAgICBmcmFtZXdvcmtMb2NTdHJpbmdzKCkuc2V0
KGtleSwgdmFsdWUpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdp
bk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2lu
L1BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAJKHJldmlzaW9uIDE4ODUxMCkK
KysrIFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgUGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlcjo6UGx1Z2luTWFpblRocgogCiB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNj
aGVkdWxlQ2FsbChOUFAgbnBwLCBNYWluVGhyZWFkRnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQqIHVz
ZXJEYXRhKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKIAogICAgIENhbGxRdWV1ZU1hcDo6aXRlcmF0b3Ig
aXQgPSBtX2NhbGxRdWV1ZU1hcC5maW5kKG5wcCk7CiAgICAgaWYgKGl0ID09IG1fY2FsbFF1ZXVl
TWFwLmVuZCgpKQpAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVs
ZXI6OnNjaGVkdWxlCiAKIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6cmVnaXN0ZXJQ
bHVnaW4oTlBQIG5wcCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrKG1fcXVldWVNdXRleCk7CiAKICAgICBBU1NFUlQoIW1fY2FsbFF1
ZXVlTWFwLmNvbnRhaW5zKG5wcCkpOwogICAgIG1fY2FsbFF1ZXVlTWFwLnNldChucHAsIERlcXVl
PENhbGw+KCkpOwpAQCAtNjYsNyArNjYsNyBAQCB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVs
ZXI6OnJlZ2lzdGVyCiAKIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6dW5yZWdpc3Rl
clBsdWdpbihOUFAgbnBwKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKIAogICAgIEFTU0VSVChtX2NhbGxR
dWV1ZU1hcC5jb250YWlucyhucHApKTsKICAgICBtX2NhbGxRdWV1ZU1hcC5yZW1vdmUobnBwKTsK
QEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpkaXNwYXRj
aAogICAgIGZvciAoYXV0byYgY2FsbCA6IGNhbGxzKSB7CiAgICAgICAgIC8vIENoZWNrIGlmIHRo
ZSBwbHVnLWluIGhhcyBiZWVuIGRlc3Ryb3llZC4KICAgICAgICAgewotICAgICAgICAgICAgTXV0
ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2Nr
KG1fcXVldWVNdXRleCk7CiAgICAgICAgICAgICBpZiAoIW1fY2FsbFF1ZXVlTWFwLmNvbnRhaW5z
KG5wcCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIu
aAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5N
YWluVGhyZWFkU2NoZWR1bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDcgQEAgcHJp
dmF0ZToKIAogICAgIGJvb2wgbV9jYWxsUGVuZGluZzsKICAgICBDYWxsUXVldWVNYXAgbV9jYWxs
UXVldWVNYXA7Ci0gICAgTXV0ZXggbV9xdWV1ZU11dGV4OworICAgIExvY2sgbV9xdWV1ZU11dGV4
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTQ3KQorKysgVG9vbHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTUtMDgtMTcgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1h
aW5pbmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0phdmFTY3Jp
cHRUaHJlYWRpbmcuY3BwOgorICAgICAgICAoamF2YVNjcmlwdFRocmVhZHNNdXRleCk6CisgICAg
ICAgIChydW5KYXZhU2NyaXB0VGhyZWFkKToKKyAgICAgICAgKHN0YXJ0SmF2YVNjcmlwdFRocmVh
ZHMpOgorICAgICAgICAoc3RvcEphdmFTY3JpcHRUaHJlYWRzKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVH
TGliLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE1LTA4LTE3ICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQVBJOjpQYWdlQ29uZmlndXJh
dGlvbidzIHNlc3Npb25JRCBuZWVkcyB0byBiZSBzZXQgd2hlbmV2ZXIgdGhlIEFQSTo6V2Vic2l0
ZURhdGFTdG9yZSBpcyBzZXQKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRU
aHJlYWRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3Jp
cHRUaHJlYWRpbmcuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBUb29scy9EdW1wUmVuZGVyVHJl
ZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ0LDkgKzQ1LDkgQEAgc3RhdGljIGNvbnN0IHNpemVf
dCBqYXZhU2NyaXB0VGhyZWFkc0NvdQogc3RhdGljIGJvb2wgamF2YVNjcmlwdFRocmVhZHNTaG91
bGRUZXJtaW5hdGU7CiBzdGF0aWMgSlNDb250ZXh0R3JvdXBSZWYgamF2YVNjcmlwdFRocmVhZHNH
cm91cDsKIAotc3RhdGljIE11dGV4JiBqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkKK3N0YXRpYyBM
b2NrJiBqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoTXV0ZXgsIHN0YXRpY011dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKExvY2ssIHN0YXRpY011dGV4LCAoKSk7CiAgICAgcmV0dXJuIHN0YXRp
Y011dGV4OwogfQogCkBAIC03MCwyNiArNzEsMjYgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFk
KHZvaWQqKQogCiAgICAgSlNHbG9iYWxDb250ZXh0UmVmIGN0eDsKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICBjdHggPSBK
U0dsb2JhbENvbnRleHRDcmVhdGVJbkdyb3VwKGphdmFTY3JpcHRUaHJlYWRzR3JvdXAsIDApOwog
ICAgIH0KIAogICAgIEpTU3RyaW5nUmVmIHNjcmlwdFJlZjsKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICBzY3JpcHRSZWYg
PSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHQpOwogICAgIH0KIAogICAgIHdo
aWxlICh0cnVlKSB7CiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihq
YXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
amF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgICAgIEpTVmFsdWVSZWYgZXhjZXB0
aW9uID0gMDsKICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY3R4LCBzY3JpcHRSZWYsIDAs
IDAsIDEsICZleGNlcHRpb24pOwogICAgICAgICAgICAgQVNTRVJUKCFleGNlcHRpb24pOwogICAg
ICAgICB9CiAKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFT
Y3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZh
U2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICAgICAgY29uc3Qgc2l6ZV90IHZhbHVlc0Nv
dW50ID0gMTAyNDsKICAgICAgICAgICAgIEpTVmFsdWVSZWYgdmFsdWVzW3ZhbHVlc0NvdW50XTsK
ICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVzQ291bnQ7ICsraSkKQEAg
LTk3LDcgKzk4LDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqKQogICAgICAgICB9
CiAKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRU
aHJlYWRzTXV0ZXgoKSk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0
VGhyZWFkc011dGV4KCkpOwogICAgICAgICAgICAgaWYgKGphdmFTY3JpcHRUaHJlYWRzU2hvdWxk
VGVybWluYXRlKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xMDYsNyAr
MTA3LDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqKQogICAgICAgICBpZiAocmFu
ZCgpICUgNSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRo
cmVhZCA9IGN1cnJlbnRUaHJlYWQoKTsKICAgICAgICAgZGV0YWNoVGhyZWFkKHRocmVhZCk7CiAg
ICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkucmVtb3ZlKHRocmVhZCk7CkBAIC0xMTQsNyArMTE1
LDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqKQogICAgICAgICBicmVhazsKICAg
ICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgIEpT
U3RyaW5nUmVsZWFzZShzY3JpcHRSZWYpOwogICAgIEpTR2FyYmFnZUNvbGxlY3QoY3R4KTsKICAg
ICBKU0dsb2JhbENvbnRleHRSZWxlYXNlKGN0eCk7CkBAIC0xMjQsNyArMTI1LDcgQEAgdm9pZCBz
dGFydEphdmFTY3JpcHRUaHJlYWRzKCkKIHsKICAgICBqYXZhU2NyaXB0VGhyZWFkc0dyb3VwID0g
SlNDb250ZXh0R3JvdXBDcmVhdGUoKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2Ny
aXB0VGhyZWFkc011dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJl
YWRzTXV0ZXgoKSk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGphdmFTY3JpcHRUaHJl
YWRzQ291bnQ7ICsraSkKICAgICAgICAgamF2YVNjcmlwdFRocmVhZHMoKS5hZGQoY3JlYXRlVGhy
ZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCAwKSk7CkBAIC0xMzMsMTMgKzEzNCwxMyBAQCB2
b2lkIHN0YXJ0SmF2YVNjcmlwdFRocmVhZHMoKQogdm9pZCBzdG9wSmF2YVNjcmlwdFRocmVhZHMo
KQogewogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRz
TXV0ZXgoKSk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0
ZXgoKSk7CiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzU2hvdWxkVGVybWluYXRlID0gdHJ1ZTsK
ICAgICB9CiAKICAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllciwgamF2YVNjcmlwdFRocmVhZHND
b3VudD4gdGhyZWFkczsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2Ny
aXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0
VGhyZWFkc011dGV4KCkpOwogICAgICAgICBjb3B5VG9WZWN0b3IoamF2YVNjcmlwdFRocmVhZHMo
KSwgdGhyZWFkcyk7CiAgICAgICAgIEFTU0VSVCh0aHJlYWRzLnNpemUoKSA9PSBqYXZhU2NyaXB0
VGhyZWFkc0NvdW50KTsKICAgICB9CkBAIC0xNDgsNyArMTQ5LDcgQEAgdm9pZCBzdG9wSmF2YVNj
cmlwdFRocmVhZHMoKQogICAgICAgICB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbih0aHJlYWRzW2ld
KTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRz
TXV0ZXgoKSk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0
ZXgoKSk7CiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkuY2xlYXIoKTsKICAgICB9CiAKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAkocmV2aXNp
b24gMTg4NTEwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
CiAjaW5jbHVkZSAiVGVzdC5oIgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRl
IDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV29y
a1F1ZXVlLmg+CiAjaW5jbHVkZSA8c3RyaW5nPgpAQCAtNDAsOCArNDIsOCBAQCBzdGF0aWMgY29u
c3QgY2hhciogZGlzcGF0Y2hBZnRlckxhYmVsID0gCiAgICAgCiBURVNUKFdURl9Xb3JrUXVldWUs
IFNpbXBsZSkKIHsKLSAgICBNdXRleCBtX2xvY2s7Ci0gICAgVGhyZWFkQ29uZGl0aW9uIG1fdGVz
dENvbXBsZXRlZDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBDb25kaXRpb24gbV90ZXN0Q29tcGxl
dGVkOwogICAgIFZlY3RvcjxzdGQ6OnN0cmluZz4gbV9mdW5jdGlvbkNhbGxPcmRlcjsKIAogICAg
IGJvb2wgY2FsbGVkU2ltcGxlVGVzdCA9IGZhbHNlOwpAQCAtNTYsNyArNTgsNyBAQCBURVNUKFdU
Rl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICBpbnQgaW5pdGlhbFJlZkNvdW50ID0gcXVldWUtPnJl
ZkNvdW50KCk7CiAgICAgRVhQRUNUX0VRKDEsIGluaXRpYWxSZWZDb3VudCk7CiAKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwog
ICAgIHF1ZXVlLT5kaXNwYXRjaChbJl0odm9pZCkgewogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9y
ZGVyLmFwcGVuZChzaW1wbGVUZXN0TGFiZWwpOwogICAgICAgICBjYWxsZWRTaW1wbGVUZXN0ID0g
dHJ1ZTsKQEAgLTY5LDcgKzcxLDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBTaW1wbGUpCiAgICAg
fSk7CiAKICAgICBxdWV1ZS0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAg
ICAgICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIuYXBwZW5kKHRoaXJkVGVzdExhYmVsKTsKICAgICAg
ICAgY2FsbGVkVGhpcmRUZXN0ID0gdHJ1ZTsKIApAQCAtNzcsNyArNzksNyBAQCBURVNUKFdURl9X
b3JrUXVldWUsIFNpbXBsZSkKICAgICAgICAgRVhQRUNUX1RSVUUoY2FsbGVkTG9uZ1Rlc3QpOwog
ICAgICAgICBFWFBFQ1RfVFJVRShjYWxsZWRUaGlyZFRlc3QpOwogICAgICAgICAKLSAgICAgICAg
bV90ZXN0Q29tcGxldGVkLnNpZ25hbCgpOworICAgICAgICBtX3Rlc3RDb21wbGV0ZWQubm90aWZ5
T25lKCk7CiAgICAgfSk7CiAKICAgICBFWFBFQ1RfR1QocXVldWUtPnJlZkNvdW50KCksIDEpOwpA
QCAtOTYsOCArOTgsOCBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKIAogVEVTVChXVEZf
V29ya1F1ZXVlLCBUd29RdWV1ZXMpCiB7Ci0gICAgTXV0ZXggbV9sb2NrOwotICAgIFRocmVhZENv
bmRpdGlvbiBtX3Rlc3RRdWV1ZTFDb21wbGV0ZWQsIG1fdGVzdFF1ZXVlMkNvbXBsZXRlZDsKKyAg
ICBMb2NrIG1fbG9jazsKKyAgICBDb25kaXRpb24gbV90ZXN0UXVldWUxQ29tcGxldGVkLCBtX3Rl
c3RRdWV1ZTJDb21wbGV0ZWQ7CiAgICAgVmVjdG9yPHN0ZDo6c3RyaW5nPiBtX2Z1bmN0aW9uQ2Fs
bE9yZGVyOwogCiAgICAgYm9vbCBjYWxsZWRTaW1wbGVUZXN0ID0gZmFsc2U7CkBAIC0xMTAsNyAr
MTEyLDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMpCiAgICAgRVhQRUNUX0VRKDEs
IHF1ZXVlMS0+cmVmQ291bnQoKSk7CiAgICAgRVhQRUNUX0VRKDEsIHF1ZXVlMi0+cmVmQ291bnQo
KSk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2xvY2spOwogICAgIAogICAgIHF1ZXVlMS0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKICAg
ICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQoc2ltcGxlVGVzdExhYmVsKTsKQEAgLTEy
MCwyMiArMTIyLDIyIEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgVHdvUXVldWVzKQogICAgIHF1ZXVl
Mi0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKICAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBf
Zm9yKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTApKTsKIAotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKIAog
ICAgICAgICAvLyBXaWxsIGZhaWwgaWYgcXVldWUyIHRvb2sgdGhlIG11dGV4IGJlZm9yZSBxdWV1
ZTEuCiAgICAgICAgIEVYUEVDVF9UUlVFKGNhbGxlZFRoaXJkVGVzdCk7CiAKICAgICAgICAgbV9m
dW5jdGlvbkNhbGxPcmRlci5hcHBlbmQobG9uZ1Rlc3RMYWJlbCk7CiAgICAgICAgIGNhbGxlZExv
bmdUZXN0ID0gdHJ1ZTsKLSAgICAgICAgbV90ZXN0UXVldWUyQ29tcGxldGVkLnNpZ25hbCgpOwor
ICAgICAgICBtX3Rlc3RRdWV1ZTJDb21wbGV0ZWQubm90aWZ5T25lKCk7CiAgICAgfSk7CiAKICAg
ICBxdWV1ZTEtPmRpc3BhdGNoKFsmXSh2b2lkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBt
X2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZCh0aGlyZFRlc3RMYWJlbCk7CiAgICAgICAgIGNhbGxl
ZFRoaXJkVGVzdCA9IHRydWU7CiAgICAgICAgIAotICAgICAgICBtX3Rlc3RRdWV1ZTFDb21wbGV0
ZWQuc2lnbmFsKCk7CisgICAgICAgIG1fdGVzdFF1ZXVlMUNvbXBsZXRlZC5ub3RpZnlPbmUoKTsK
ICAgICB9KTsKIAogICAgIG1fdGVzdFF1ZXVlMUNvbXBsZXRlZC53YWl0KG1fbG9jayk7CkBAIC0x
NTgsOCArMTYwLDggQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMpCiAKIFRFU1QoV1RG
X1dvcmtRdWV1ZSwgRGlzcGF0Y2hBZnRlcikKIHsKLSAgICBNdXRleCBtX2xvY2s7Ci0gICAgVGhy
ZWFkQ29uZGl0aW9uIG1fdGVzdENvbXBsZXRlZCwgbV9kaXNwYXRjaEFmdGVyVGVzdENvbXBsZXRl
ZDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBDb25kaXRpb24gbV90ZXN0Q29tcGxldGVkLCBtX2Rp
c3BhdGNoQWZ0ZXJUZXN0Q29tcGxldGVkOwogICAgIFZlY3RvcjxzdGQ6OnN0cmluZz4gbV9mdW5j
dGlvbkNhbGxPcmRlcjsKIAogICAgIGJvb2wgY2FsbGVkU2ltcGxlVGVzdCA9IGZhbHNlOwpAQCAt
MTY3LDIwICsxNjksMjAgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBEaXNwYXRjaEFmdGVyKQogCiAg
ICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3Qu
ZGlzcGF0Y2hBZnRlciIpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKIAogICAgIHF1ZXVlLT5kaXNwYXRjaChbJl0odm9p
ZCkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQo
c2ltcGxlVGVzdExhYmVsKTsKICAgICAgICAgY2FsbGVkU2ltcGxlVGVzdCA9IHRydWU7Ci0gICAg
ICAgIG1fdGVzdENvbXBsZXRlZC5zaWduYWwoKTsKKyAgICAgICAgbV90ZXN0Q29tcGxldGVkLm5v
dGlmeU9uZSgpOwogICAgIH0pOwogCiAgICAgcXVldWUtPmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyg1MDApLCBbJl0odm9pZCkgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAg
ICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQoZGlzcGF0Y2hBZnRlckxhYmVsKTsKICAgICAg
ICAgY2FsbGVkRGlzcGF0Y2hBZnRlclRlc3QgPSB0cnVlOwotICAgICAgICBtX2Rpc3BhdGNoQWZ0
ZXJUZXN0Q29tcGxldGVkLnNpZ25hbCgpOworICAgICAgICBtX2Rpc3BhdGNoQWZ0ZXJUZXN0Q29t
cGxldGVkLm5vdGlmeU9uZSgpOwogICAgIH0pOwogCiAgICAgbV90ZXN0Q29tcGxldGVkLndhaXQo
bV9sb2NrKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1
ZXVlR0xpYi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Z2xpYi9Xb3JrUXVldWVHTGliLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBURVNUKFdURl9Xb3Jr
UXVldWUsIEFzeW5jSU8pCiB7CiAgICAgc3RydWN0IFRlc3RpbmdDb250ZXh0IHsKLSAgICAgICAg
TXV0ZXggbV9sb2NrOworICAgICAgICBMb2NrIG1fbG9jazsKICAgICAgICAgVGhyZWFkQ29uZGl0
aW9uIG1fdGVzdENvbXBsZXRlZDsKICAgICAgICAgR01haW5Db250ZXh0KiBtX21haW5Db250ZXh0
OwogICAgIH0gY29udGV4dDsKQEAgLTQ5LDcgKzQ5LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBB
c3luY0lPKQogICAgIEdVbmlxdWVQdHI8Y2hhcj4gY3VycmVudERpcmVjdG9yeShnX2dldF9jdXJy
ZW50X2RpcigpKTsKICAgICBHUmVmUHRyPEdGaWxlPiBmaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9u
ZXdfZm9yX3BhdGgoY3VycmVudERpcmVjdG9yeS5nZXQoKSkpOwogCi0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKGNvbnRleHQubV9sb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihjb250ZXh0Lm1f
bG9jayk7CiAgICAgcXVldWUtPmRpc3BhdGNoKFsmXSh2b2lkKSB7CiAgICAgICAgIEVYUEVDVF9U
UlVFKGdfbWFpbl9jb250ZXh0X2dldF90aHJlYWRfZGVmYXVsdCgpKTsKICAgICAgICAgRVhQRUNU
X1RSVUUoZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCkgIT0gY29udGV4dC5tX21h
aW5Db250ZXh0KTsKQEAgLTU3LDcgKzU3LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBBc3luY0lP
KQogICAgICAgICBnX2ZpbGVfcXVlcnlfaW5mb19hc3luYyhmaWxlLmdldCgpLCBHX0ZJTEVfQVRU
UklCVVRFX1NUQU5EQVJEX1NJWkUsIEdfRklMRV9RVUVSWV9JTkZPX05PTkUsIEdfUFJJT1JJVFlf
REVGQVVMVCwgbnVsbHB0ciwKICAgICAgICAgICAgIFtdKEdPYmplY3QqLCBHQXN5bmNSZXN1bHQq
LCBncG9pbnRlciB1c2VyRGF0YSkgewogICAgICAgICAgICAgICAgIFRlc3RpbmdDb250ZXh0KiBj
b250ZXh0ID0gc3RhdGljX2Nhc3Q8VGVzdGluZ0NvbnRleHQqPih1c2VyRGF0YSk7Ci0gICAgICAg
ICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGNvbnRleHQtPm1fbG9jayk7CisgICAgICAgICAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIoY29udGV4dC0+bV9sb2NrKTsKICAgICAgICAgICAgICAg
ICBFWFBFQ1RfRVEoZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCksIGNvbnRleHQt
Pm1fbWFpbkNvbnRleHQpOwogICAgICAgICAgICAgICAgIGNvbnRleHQtPm1fdGVzdENvbXBsZXRl
ZC5zaWduYWwoKTsKICAgICAgICAgICAgIH0sICZjb250ZXh0KTsK
</data>
<flag name="commit-queue"
          id="284369"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>259207</attachid>
            <date>2015-08-17 16:52:25 -0700</date>
            <delta_ts>2015-08-17 20:37:24 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews100 for mac-mavericks</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>778234</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
DoJAFEXh3lXcDUgYNCoTY0LA2FipnbEY5QZJhjfmMfi3elmG5fmqUwwNzBJmYbPcmhx89SZNEx9u
zqMauseBUlNPSp6z+Wx1wXqrGnRjUe7KIJHveGTct8LK9XeLVp7OtzXqseBU3cfCRXi6PiIIQc+O
EtENI1wJCTL9UkMyKf7o5QdQSwMECgAAAAAAtYMRRwAAAAAAAAAAAAAAAAkAHABmYXN0L2RvbS9V
VAkAA2Zu0lXybtJVdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAALaDEUcAAAAAAAAAAAAAAAAaABwA
ZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9VVAkAA2du0lXybtJVdXgLAAEE9QEAAARQAAAAUEsD
BBQAAgAIALWDEUetATuDowAAANUAAAA/ABwAZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kYXRh
YmFzZS1jYWxsYmFjay1kZWxpdmVyeS1hY3R1YWwudHh0VVQJAANmbtJVZm7SVXV4CwABBPUBAAAE
UAAAACXNQQrCMBCF4X1O8ehaPIC7ohWEioXmAtN0KsE0A5nE0tsbdTOrb/53bW/9CdavPENKxkY+
+/jEIglRsl/2i0RGFkwMRyHwbCzrz6wlU/YSFZQYMwf/5lQ7i4Qg21dcKNNEWv8TRSX31b/KRO6l
R2MeEVqcY9UDdinYfAhQZlC9ybNCFjRDO44N1qroyVX+B+rStKOx3WhxftyHvrNdU5vGfABQSwME
FAACAAgAtYMRR0z3LCheAQAAmwIAAD0AHABmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2RhdGFi
YXNlLWNhbGxiYWNrLWRlbGl2ZXJ5LWRpZmYudHh0VVQJAANmbtJVZ27SVXV4CwABBPUBAAAEUAAA
AMWQQW/bMAyF7/4VhK+OogY7FNgp2ZICw9olaIz2MOxA23QmTLYKkWrif1868Vp06H0XCdB7fO+j
jDFgH4JPHbFdo6DdPO7tI1XfnUzXl+R8Y+/JEzJZj0NIYoRYTCROXti2yGKb0Nm7JCgu9NuKKT5T
tI0mVjpmavS+wvqPacg7VQZDpyeqhZq5nCQriuI/YWAtCf0ZYrkEs5gtPkGxmF3DcpkVN6tvt5+h
dB01oHVwRCeuP0AbIvRBXDusQ08gASqCMZuaDEplGk3dRMGAkWAq1KA2eB+Oo2M9YYFE7FlJ1A1/
EXmeQQbbHjjVNTHPQDeGo/MemAhQz+iIIbSQ71b7fQ76d4wHUuelQruqAfJysy/h6/Zud7spN/k5
NTPjxBvh3FN/kN/gGBb/aj+vfs1leKJRzFEkuirpt+cf+V7lH9hdBtoQ8te+aZM2eT/sMLICqkdi
osxk5h2nPrwAUEsDBBQAAgAIALWDEUfBGnqcxQAAADwBAABBABwAZmFzdC9kb20vTXV0YXRpb25P
YnNlcnZlci9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVyeS1leHBlY3RlZC50eHRVVAkAA2Zu0lVm
btJVdXgLAAEE9QEAAARQAAAAbc+xTsQwEATQ3l8xco0i+AQE6YCLlHSIYpPbBIuNffKuOeXvcXQn
EIjGzTztjAdWC3HBWowspKigzDiyhE/OfMScRNJ5F49kNJIyLFNUmnaNiURGmj60ce4QoWWaWPUG
Wyo4BxEoM6i+ObAizfDdfd97rFXRwlVeCmrTuMEPbT/g4fDcPbVD6+tNt/OfcY1wXOwdQXH3J3q9
fWtsO/GeeTLLYSzG6v9h3+kLrRc/p+SvXdcvzEVk6yhrXVaF5cLO/Zrn3BdQSwMEFAACAAgAtoMR
RyyZJxKOCAAAtyAAAEUAHABmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2RhdGFiYXNlLWNhbGxi
YWNrLWRlbGl2ZXJ5LXByZXR0eS1kaWZmLmh0bWxVVAkAA2du0lVnbtJVdXgLAAEE9QEAAARQAAAA
3Vptb+O4Ef6eX0Fs0AtwiGQ7trOxvZtiNy9o0d3bRRP0PhRFQUmUxQ0l+kgqsbftf+/wTZZkyfGi
SYH2DneWyCH5zMwzL9Tuu0zl7PLoXUZwAj85URjFGRaSqPcnpUqDixMYlmrDyOXRnNHi4RTNH6mk
iiToH0cI/lFkrYKExFxgRXkxRwUvyMJMRVwkRAQRV4rnczRarVECzyRZHP3ryG7nNok542KOjofj
mZkLbykj1zRN3XyE44el4GWRBF40vdD/1g+yJ0jOaIKOkySxcykvVJDinLLNHOW84HKFYwcwx2JJ
AfKI5Ghoh1YclDN6CMJAo0diAGWjFtLxeNyxv8SFDCQRNK1NSvqdmDPqhwaMpGqOhuHUjydUrhiG
TWgBlnEIn2iiMlg8HP7O4cNJQotltdJic67RT03vOLi0yACUqsQz/khES6PpdLroMzYh1gyh9skn
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
NWrk68Acv4IBf4T6rR9z44Cu3vx9hX8DUEsDBAoAAAAAAK+DEUcAAAAAAAAAAAAAAAAMABwAZmFz
dC9ldmVudHMvVVQJAANZbtJV8m7SVXV4CwABBPUBAAAEUAAAAFBLAwQKAAIAAACvgxFH9Dpr8QUA
AAAFAAAAMwAcAGZhc3QvZXZlbnRzL2ZyYW1lLXNjcm9sbC1mYWtlLW1vdXNlLW1vdmUtYWN0dWFs
LnR4dFVUCQADWW7SVVlu0lV1eAsAAQT1AQAABFAAAABGQUlMClBLAwQUAAIACACvgxFHnCL+logA
AAAMAQAAMQAcAGZhc3QvZXZlbnRzL2ZyYW1lLXNjcm9sbC1mYWtlLW1vdXNlLW1vdmUtZGlmZi50
eHRVVAkAA1lu0lVZbtJVdXgLAAEE9QEAAARQAAAAvY1BCsIwEADveUXuYV36g1RUED2IBXte2y0U
t0aym1J/LxXf4GVmbgMAHm9JysSKOzLCfdtgy/fTaD9tyyg9XlmYlFHonYqBsRpk1iKmOJAa8szP
tTNNDNrlJAIDPRimVHTlzMDLizvjfmOLuRDCH9fUWSH5jmP0UPlQ+RgdXOqmceFQH8/uA1BLAwQK
AAIAAACvgxFH7nAgwgUAAAAFAAAANQAcAGZhc3QvZXZlbnRzL2ZyYW1lLXNjcm9sbC1mYWtlLW1v
dXNlLW1vdmUtZXhwZWN0ZWQudHh0VVQJAANZbtJVWW7SVXV4CwABBPUBAAAEUAAAAFBBU1MKUEsD
BBQAAgAIAK+DEUfWRz5yXAcAAPoWAAA5ABwAZmFzdC9ldmVudHMvZnJhbWUtc2Nyb2xsLWZha2Ut
bW91c2UtbW92ZS1wcmV0dHktZGlmZi5odG1sVVQJAANZbtJVWW7SVXV4CwABBPUBAAAEUAAAAI1Y
WW/jNhB+z68QErQBFpFkJ3bqI3GxmwMtui0WzaJ9LCiJsrihRJWkYjtt/3uHlyzJkpMEiQ4OyW+u
b4a6yWROVyc3GUYJXHIskRdniAssb88rmfqzc3gt5I7i1cmCkuL5wlu8EEEkTrx/Tjz4kXgr/QTH
jCNJWLHwClbgpR6KGE8w9yMmJcsX3rjcegnc42R58t+JWc4uEjPK+MI7G13N9VjwSCi+J2lqxyMU
P685q4rEd6LpTP02NzI7CEZJ4p0lSWLGUlZIP0U5obuFl7OCiRLFFmCO+JoA5DHOvZF5VTJQTuvB
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
UAAAAK1OMQ7CQAzb+4p8oGRguxkm2EB0TttUnJS7VLmc1P6eg36BxbJsy/akaY1CHjUDm6kFWKLw
DwIivlRq4oIXcsLr8MCBx1t0vNOu1Z9cvOBCxXErgsZFq00tvr2tn3U6NRUkZoYzsHDi7BDTquZd
c8JBIUDNNLZRVxCl+U/j/VHP8/dF9wFQSwMEFAACAAgAtoMRR4kfIf6XAAAAwAMAACcAHABmYXN0
L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRVVAkAA2hu0lVobtJVdXgLAAEE9QEA
AARQAAAA7Y8xDsIwDEX3nsIXKB7YMsMEG4jObuqKSE5cJY5Ubk+gR2BDXSzb3/76z2tcgpAFTcA5
a3YwB+FvcYj4UKmRC57ICM/DDQceL8HwSi+tdudiBWcqhmsRzFy0Zt/O22T9SFMf4qLZ+prDoe1A
QmI4AgtHTgab2jXFbS04qInGFsAURGn6NUjSUv3zY9L+RDq/8+68f8T7BlBLAwQUAAIACAC2gxFH
z49mDlAAAACgAAAAJAAcAGZhc3QveHNsL3hzbHQtY29udGVudFR5cGUtc3RkZXJyLnR4dFVUCQAD
aG7SVWhu0lV1eAsAAQT1AQAABFAAAACtzLENwCAMBdGeKf4GUdpsg8AISzZGlokyfsgOaa67V0wn
Sw62AXI3v9BYCBAehBMkpDQCtmKuSDzuLFyxuwjNHErRre7LLJW/sKeHyvGRL1BLAwQUAAIACAC3
gxFHgUp3rUsAAACsAAAANAAcAGZhc3QveHNsL3hzbHQtdHJhbnNmb3JtLXRvLWZyYWdtZW50LWNy
YXNoLXN0ZGVyci50eHRVVAkAA2lu0lVpbtJVdXgLAAEE9QEAAARQAAAAtcyxDYAwDETRPlPcCrRs
48AFWXJsZCzmR6JgA+qv97eYp5qUhoOZkSuGGgFTJxbQOOmFW1KlG1ty51DXV8TAYdHFvo7iVW37
5foAUEsDBBQAAgAIAACEEUfuCPq0eQMAAH4NAAARABwAZnVsbF9yZXN1bHRzLmpzb25VVAkAA/Bu
0lXybtJVdXgLAAEE9QEAAARQAAAArVdNc9s2EP0vPLUzRNXWbTN1T55a02aa1BnLaXrTLMmliAoE
GHxI4mTy3/sWlDx2c6vhg0TCwD683bcfurm93d6vN+/fPGy++lRFDjFU15+qIcZJvh8XjtwE1+45
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
AAAAAPyDEUcAAAAAAAAAAAAAAAAqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvVVQJAAPrbtJV8m7SVXV4CwABBPUBAAAEUAAAAFBLAwQKAAIAAAD8gxFHlkAudywA
AAAsAAAATAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Jsb2It
dXJscy1tYXRjaC1zZWxmLWNyYXNoLWxvZy50eHRVVAkAA+tu0lXrbtJVdXgLAAEE9QEAAARQAAAA
Tm8gY3Jhc2ggbG9nIGZvdW5kIGZvciBEdW1wUmVuZGVyVHJlZToyNDE2LgpQSwMEFAACAAgA6IMR
R2BLZhCRAAAA+wEAAEUAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWRvY3Vt
ZW50LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAkAA8Ru0lXEbtJVdXgLAAEE9QEAAARQAAAA
7Y4xDoMwDEV3TuELhASWVplh6NKeAQVTIpkksp0Kbl869AYdq7++r/dC3kqkSWNOgMyZPSyREFbV
4q3t+kvrznX+6pyzgqFy1MPuImYY77dxMLuQmXOoGyY1X+DB8RlTu28EFBNCD0j4IUD0IJQVUZvz
6V/Icro95EQHdK2DBSetjAITI0gtJbPi3IR/6I9D31BLAwQKAAAAAADOgxFHAAAAAAAAAAAAAAAA
EwAcAGh0dHAvdGVzdHMvc3RvcmFnZS9VVAkAA5Ru0lXybtJVdXgLAAEE9QEAAARQAAAAUEsDBBQA
AgAIAM6DEUemIdSGDgEAABcCAABFABwAaHR0cC90ZXN0cy9zdG9yYWdlL2NhbGxiYWNrcy1hcmUt
Y2FsbGVkLWluLWNvcnJlY3QtY29udGV4dC1hY3R1YWwudHh0VVQJAAOUbtJVlG7SVXV4CwABBPUB
AAAEUAAAAI2Qz07DMAzG73kK33YhbccF1NvQNAmJA2J7gax1l2htMjmuyt4ep39AsB1IpMiOP/+S
z7vN61sJB9dhDaFnGIxj50/QBAIf2DXXbfAIHOCIUJm2xVoppeeldmQ6LGElrZeex2z1Uz1YF4Ex
8nhIaA2DMGD7MrKOpjpHMLSQwXnRSBY84yen+AoDpjqhYawfgIxcUiL9lg42ydKNsKVYtyhe4tKY
qffNfi9GRcBkfDQVu+ABicTo8pep489XiLDi5Z1MfWAjTUglWOZLmefrx6eskL0un4uiyCMHMifM
CWPoqcKYfzvV4lRPeO28ntF6RuuIEtW6SUPMLHftvUE3juLNnO/oJtg/hGwd3eq+AFBLAwQUAAIA
CADOgxFHpa/pWZcBAAC2DAAAQwAcAGh0dHAvdGVzdHMvc3RvcmFnZS9jYWxsYmFja3MtYXJlLWNh
bGxlZC1pbi1jb3JyZWN0LWNvbnRleHQtZGlmZi50eHRVVAkAA5Ru0lWUbtJVdXgLAAEE9QEAAARQ
AAAA7VZLT8MwDL73V/jGocuywgHUU5nGJAQHtE1wzlqPRqTJlLja9u9x9hIgEJwGSG2kJnZc+/Pj
kyqEAPnoTNtgkCNFSt48TeUTzu807bdhq00lJ2hQBZRGbVxLgjCQ8BhaQ0HWREsZNUEGcl49oyyV
MXNVvgShPIooYSW0FaXzHkvi3RKuSeB6ySJWfVpTkqbpr4JRJbXKbKEUBYisd3EFadbLMiiKJB1f
397nMNMNVsBRYaU0afsMC+fBOtKLzchZBHIwR9gFSSAusX8SGHvVYA5n/Pmypa109vZ+VusAEfv2
xcdaEbAnGA3hmARwEnv/oC3bsLRLIJ43sMJ471FxWXvgFSt99PTedFVHs6hh33xZGeSMwuHDfiIe
rqdTzpctyCsbuDja2SOMnfEHFNtyHkKwiwkukHU+h9iVXMrs/LI/4JXlV4PB4Ngg7p1rfcld/2mr
AvKpEotYwn5NjXmLNxCn0KAlCG3JXsM/Q83Reab+LGb4fDL+OOov5vk/TUjHw46H309Gx8OOhx0P
Ox6ejodw0r8PXq9QSwMEFAACAAgAzoMRRxOwtqccAQAAqQsAAEcAHABodHRwL3Rlc3RzL3N0b3Jh
Z2UvY2FsbGJhY2tzLWFyZS1jYWxsZWQtaW4tY29ycmVjdC1jb250ZXh0LWV4cGVjdGVkLnR4dFVU
CQADlG7SVZRu0lV1eAsAAQT1AQAABFAAAADtVk1PhDAQvfMr5rYXC6wXDTeN8Wzc/QMVZm0jtJuZ
Iei/d/jYdRUPXonQBObj8fra9CVNEjM9ySPZBgvYxFaOrQzZ5qu7d55BkGV4aeisgK1reLiHUr8v
tnxjsIRDhhX4oBjNYhB8lz7+gA77PqEVrK6ArBapZ/oO7VwP6yvKrc2qRugsn35Mk6e73a6AvQKE
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
ZXQvdGVzdHMvVVQJAAOibtJV8m7SVXV4CwABBPUBAAAEUAAAAFBLAwQKAAAAAADVgxFHAAAAAAAA
AAAAAAAAIAAcAGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvVVQJAAOibtJV8m7SVXV4
CwABBPUBAAAEUAAAAFBLAwQKAAAAAADqgxFHAAAAAAAAAAAAAAAAKAAcAGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9VVAkAA8hu0lXybtJVdXgLAAEE9QEAAARQAAAAUEsD
BBQAAgAIAP2DEUfXLW15EEUAAHVgAQBCABwAaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS93b3JrZXJzL3JlY2VpdmUtYmxvYi1jcmFzaC1sb2cudHh0VVQJAAPubtJVom7SVXV4CwABBPUB
AAAEUAAAAOxdW3PbtrZ+PvoVeNjTLSeVDRC8T0726Jq69e1YstOZTkfDC2hxhyJVknLif38WAF0o
Sk7M1G47CfRgUwSwblhY3wJEEFd5FrCicNH6M1jOF9csDVk+yRlDv2m6jn9vXXnlbFsHPie3WbKc
s+Lk9vLs5nx48upkt2HrNGRpGUcxy91DhFu3LC/iLN0Sxa1+FjI0eViw9c1fbbNj6qh94ZXxPTsC
KXIgiq42Ml89lLMs5UJS5/fWNSsWWVrEfrKiUMzQb8Sxf2/dFCxHp4MtMwOTVmvglexkEs83/DRM
jA62O8RCxHQpdjE5NmwNdbCFcetyjHaFPvcCBDd/RQQfO8cGahM6ovoRyLHI8rJSmZBWN83Sh3m2
LNDNjRAEU71vOaNRx9FGtGOattMxe8TuWNrAHlID26MBbbVa/dwrZixEk1nOvBDaUYrQe+b3sxzE
7hYPaTCKEzYuoXjeag0/BWxRAte1HYe/9qe97mDa7feH4zFqj0/fjYfvbo8qNbnZwZi/DK8vpqcX
t92zU6g+GFzz+l6J8Ce889Fwq3V7jq7ZHTQu0AXzcqijYbfV6bxFLW6Y6XQy/HWC6p8VAYIDi4Zw
0ancsE24QL9BHzjaL7+jvPPpJP/4CY3P/7d/+f6Au7Va3cUiiQNPqDBesAB8LUCnaZTlc3HTbfWv
u+OfTi/eoclwPHHRyUfmF1nwgZUnJSvK4mT24McnH7P8A3TUSc4CBk7W8ZPMP56V86TVkjZH2HXR
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
AbwjgAxkOmgyABKzwSxUewWqjZoa1T4IXZ/OmIt637i+wCOZAaNOWiL69oIaH37MB1IAUy9hrvxH
HnF9PwL/wfx9Qwoq+2UZQOfr+4cff1j9+HGJvl+uVu+/W87NOjT6do5+er9a6U8xKyV0qmmvAIeB
CqychrYYGhKynkNGM7LVLS4zn0eEOxXiCib6n7q5tTS9vnfTTvZX+9Pe+V70Z03urFtvX+HWPxeR
LBe/1re349/oW/kLQ4bR2CsA8nnadvMfYv/4q9k//j32EyHgtv1VLZ98Ncsno99ouaL5K6qpWQ+A
ZS8XgxM6648ztvJXlIzxx9P7v32co09gRqKhDe0wIDOYrz+rFFzR9PAISK4JSUScT/6vzeOPasbT
V7hp3O+mTxnVH1ukQqSQG8Aqy7eOKIVATdddEwB+IQCA2AFFB0PktlhoEluVB8pJDMJU5lJzUalb
My0QYOQDFyT8PR5u/RjABow0/9z3P1BLAwQUAAIACADLgxFHmfyz3XYAAACyAAAAKwAcAHB5d2Vi
c29ja2V0LndzLmxvZy0xN0F1ZzIwMTUtMTYyODQ0LWVyci50eHRVVAkAA41u0lUsbtJVdXgLAAEE
9QEAAARQAAAApcJLDoIwFAXQuau4C6DNq3w0nTnxM2GAAwaENBUephFapGX/LsKc0x1JlYLOQp2g
Kp2TJsqozHt07aWpH/WthzGLdd4Y2fLrGYYPp4a/O8d0t36cedNQkv7i1krabbUQGMLIKKjIsHCM
9s24upnhQ8IUdj8eflBLAwQUAAIACADLgxFHcBO3WIAAAACGAAAAKwAcAHB5d2Vic29ja2V0Lndz
LmxvZy0xN0F1ZzIwMTUtMTYyODQ0LW91dC50eHRVVAkAA41u0lUsbtJVdXgLAAEE9QEAAARQAAAA
8wgJCdA31DNUMDQwVAguzyxJzsjMS1cIKMovyU/Ozynm5QotSC9KTEm1UihPTSrOT85OLeHlcs7P
y0tNLsnMz7NSgMrzcgWnJuuGpyYFg9XoOiYnpxaUWCkEVmaEhZpZphi5uOSEWXr5l1Vm5haWF6S5
FgTa8nItteLl4uXiAgBQSwMEFAACAAgAAIQRR+R8RaOeJgAA26QAAAwAHAByZXN1bHRzLmh0bWxV
VAkAA/Bu0lXwbtJVdXgLAAEE9QEAAARQAAAAzX1rdxvJjeh3/Yo2naTJiA/JM5OdiBJ9HI0da9ev
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
0lV1eAsAAQT1AQAABFAAAABQSwMEFAACAAgA4IMRRzIa4FZbAAAAawAAAC0AHABzdG9yYWdlL3dl
YnNxbC9hbHRlci10by1pbmZvLXRhYmxlLWFjdHVhbC50eHRVVAkAA7Nu0lWzbtJVdXgLAAEE9QEA
AARQAAAAFYrBDYQwEMT+qWIquALuSws0MJBBiS7KnthFKN0TPpYsey3VEfKYLAwQcdb9N3BzIAyu
uP4Ydp2wu6P2wxDcmnCwNv+kpYl9Lq8qf5E5M10odGxSx97MlVN6AFBLAwQUAAIACADggxFH7Qat
JjMBAACLAgAAKwAcAHN0b3JhZ2Uvd2Vic3FsL2FsdGVyLXRvLWluZm8tdGFibGUtZGlmZi50eHRV
VAkAA7Nu0lWzbtJVdXgLAAEE9QEAAARQAAAAvZFPb8IwDMXv/RS+l5B1u+1U/nQIjcFUqnF2W0Or
hYTV7qDffilimnaA3XaJI/n592Q/pRToN2faPbGeoqBONmu9ofy5lksZt7UpdUqGkEkb7FwrSohF
NcStEdYsrsEd6SPl/GE0GqFGiVO13TolmBtSdDpQIVQO5SRBGIb/YoqFtGjOlnEMKhpEdxBGgweI
4wCyqmboif6tUABBmrp47+CIHYgDJmkP4H0bcEcLPRbOWNhibXgYqEmajLIEstF4kQALCu3JCnBb
FESl3/VHkry83tTNl+skzWC+/Fv6jUzns1mSXhGNFpnvZStPfFrdxK2FDhD53dGyv1ft7O92/2fe
tsZ0UFRod1TCdAyf1LDXXubvr82HEx+g9Xfsb0blI5Q+7dxHChUy5EQWCuOYygCCL1BLAwQUAAIA
CADggxFHaRUskKsAAABeAQAALwAcAHN0b3JhZ2Uvd2Vic3FsL2FsdGVyLXRvLWluZm8tdGFibGUt
ZXhwZWN0ZWQudHh0VVQJAAOzbtJVs27SVXV4CwABBPUBAAAEUAAAAIWPWwrCMBBF/13FXYGgO6ga
peCLmg2M6dQGayKdqdLdGxERwcfPcOGee2Bs7QXKounWpCBo692xx5V6aISwdmf0sWsRrwE+VBFK
+4ZRkW9kOJgWJrMGNpssDURJ+cRBIZ1zzCWXL8Kstr+wfL0zhUW+/ks+hUW+WJjiM5MtbarsJvnm
m1+ynfIZo/Q1BSGnPoa39h5Fqq5periawoFLzCa4cCsJfazH39aDG1BLAwQUAAIACADggxFHRuIm
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
dmVyeS1hY3R1YWwudHh0VVQFAANmbtJVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAtYMRR0z3
LCheAQAAmwIAAD0AGAAAAAAAAQAAAKSBxukAAGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvZGF0
YWJhc2UtY2FsbGJhY2stZGVsaXZlcnktZGlmZi50eHRVVAUAA2Zu0lV1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAC1gxFHwRp6nMUAAAA8AQAAQQAYAAAAAAABAAAApIGb6wAAZmFzdC9kb20vTXV0
YXRpb25PYnNlcnZlci9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVyeS1leHBlY3RlZC50eHRVVAUA
A2Zu0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAC2gxFHLJknEo4IAAC3IAAARQAYAAAAAAAB
AAAApIHb7AAAZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kYXRhYmFzZS1jYWxsYmFjay1kZWxp
dmVyeS1wcmV0dHktZGlmZi5odG1sVVQFAANnbtJVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA
r4MRRwAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1B6PUAAGZhc3QvZXZlbnRzL1VUBQADWW7SVXV4
CwABBPUBAAAEUAAAAFBLAQIeAwoAAgAAAK+DEUf0OmvxBQAAAAUAAAAzABgAAAAAAAEAAACkgS72
AABmYXN0L2V2ZW50cy9mcmFtZS1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLWFjdHVhbC50eHRVVAUA
A1lu0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACACvgxFHnCL+logAAAAMAQAAMQAYAAAAAAAB
AAAApIGg9gAAZmFzdC9ldmVudHMvZnJhbWUtc2Nyb2xsLWZha2UtbW91c2UtbW92ZS1kaWZmLnR4
dFVUBQADWW7SVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAgAAAK+DEUfucCDCBQAAAAUAAAA1ABgA
AAAAAAEAAACkgZP3AABmYXN0L2V2ZW50cy9mcmFtZS1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLWV4
cGVjdGVkLnR4dFVUBQADWW7SVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAK+DEUfWRz5yXAcA
APoWAAA5ABgAAAAAAAEAAACkgQf4AABmYXN0L2V2ZW50cy9mcmFtZS1zY3JvbGwtZmFrZS1tb3Vz
ZS1tb3ZlLXByZXR0eS1kaWZmLmh0bWxVVAUAA1lu0lV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAA
AAD4gxFHAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UHW/wAAZmFzdC9maWxlcy9VVAUAA+Ru0lV1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAD9gxFHYRQRo2tFAABKIAEALgAYAAAAAAABAAAApIEb
AAEAZmFzdC9maWxlcy9hcHBseS1ibG9iLXVybC10by1pbWctY3Jhc2gtbG9nLnR4dFVUBQAD7m7S
VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAP2DEUeoB/leaT0AABzsAAAoABgAAAAAAAEAAACk
ge5FAQBmYXN0L2ZpbGVzL2Jsb2Itc2xpY2UtdGVzdC1jcmFzaC1sb2cudHh0VVQFAAPubtJVdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgA/YMRR3rSPM3fPAAADeoAACoAGAAAAAAAAQAAAKSBuYMB
AGZhc3QvZmlsZXMvZmlsZS1yZWFkZXItYWJvcnQtY3Jhc2gtbG9nLnR4dFVUBQAD7m7SVXV4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIAP2DEUdfY7E7HT4AADn+AAA0ABgAAAAAAAEAAACkgfzAAQBm
YXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLWRpcmVjdG9yeS1jcmFzaC1jcmFzaC1sb2cudHh0VVQFAAPu
btJVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA+IMRRwAAAAAAAAAAAAAAABMAGAAAAAAAAAAQ
AO1Bh/8BAGZhc3QvZmlsZXMvd29ya2Vycy9VVAUAA+Ru0lV1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAD9gxFHc3JGd4A/AADWHQEAOwAYAAAAAAABAAAApIHU/wEAZmFzdC9maWxlcy93b3JrZXJz
L2lubGluZS13b3JrZXItdmlhLWJsb2ItdXJsLWNyYXNoLWxvZy50eHRVVAUAA+5u0lV1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAD9gxFH4R5FDfQ+AAAVHAEAPQAYAAAAAAABAAAApIHJPwIAZmFz
dC9maWxlcy93b3JrZXJzL3dvcmtlci1hcHBseS1ibG9iLXVybC10by14aHItY3Jhc2gtbG9nLnR4
dFVUBQAD7m7SVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAP2DEUfRqL2oeD4AAPIkAQA3ABgA
AAAAAAEAAACkgTR/AgBmYXN0L2ZpbGVzL3dvcmtlcnMvd29ya2VyLXJlYWQtYmxvYi1hc3luYy1j
cmFzaC1sb2cudHh0VVQFAAPubtJVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA/YMRR5CEM/oM
QAAAXicBADYAGAAAAAAAAQAAAKSBHb4CAGZhc3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1i
bG9iLXN5bmMtY3Jhc2gtbG9nLnR4dFVUBQAD7m7SVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAA
AL2DEUcAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQZn+AgBmYXN0L2Zvcm1zL1VUBQADdm7SVXV4
CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAL2DEUcAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQd7+
AgBmYXN0L2Zvcm1zL2ZpbGUvVVQFAAN2btJVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA/YMR
R0iONQClPgAAAgkBAEEAGAAAAAAAAQAAAKSBKP8CAGZhc3QvZm9ybXMvZmlsZS9yZWNvdmVyLWZp
bGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS1jcmFzaC1sb2cudHh0VVQFAAPubtJVdXgLAAEE9QEA
AARQAAAAUEsBAh4DCgAAAAAAr4MRRwAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BSD4DAGZhc3Qv
aW1hZ2VzL1VUBQADWm7SVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAK+DEUchj704MgAAADMA
AAAsABgAAAAAAAEAAACkgY4+AwBmYXN0L2ltYWdlcy9wZGYtYXMtaW1hZ2UtY3JvcC1ib3gtc3Rk
ZXJyLnR4dFVUBQADWm7SVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAALeDEUcAAAAAAAAAAAAA
AAAKABgAAAAAAAAAEADtQSY/AwBmYXN0L3RleHQvVVQFAANqbtJVdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAt4MRR5SHszU6AQAAlAMAACQAGAAAAAAAAQAAAKSBaj8DAGZhc3QvdGV4dC9mb250
LXdlaWdodHMtemgtc3RkZXJyLnR4dFVUBQADam7SVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAA
ALeDEUcAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQQJBAwBmYXN0L3hzbC9VVAUAA2lu0lV1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACAC2gxFHcv1l8oUAAADpAAAAJQAYAAAAAAABAAAApIFFQQMA
ZmFzdC94c2wvdHJhbnNmb3JtLXhoci1kb2Mtc3RkZXJyLnR4dFVUBQADaG7SVXV4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIALaDEUeJHyH+lwAAAMADAAAnABgAAAAAAAEAAACkgSlCAwBmYXN0L3hz
bC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRVVAUAA2hu0lV1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAC2gxFHz49mDlAAAACgAAAAJAAYAAAAAAABAAAApIEhQwMAZmFzdC94c2wveHNs
dC1jb250ZW50VHlwZS1zdGRlcnIudHh0VVQFAANobtJVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAt4MRR4FKd61LAAAArAAAADQAGAAAAAAAAQAAAKSBz0MDAGZhc3QveHNsL3hzbHQtdHJhbnNm
b3JtLXRvLWZyYWdtZW50LWNyYXNoLXN0ZGVyci50eHRVVAUAA2lu0lV1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAAAhBFH7gj6tHkDAAB+DQAAEQAYAAAAAAABAAAApIGIRAMAZnVsbF9yZXN1bHRz
Lmpzb25VVAUAA/Bu0lV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADOgxFHAAAAAAAAAAAAAAAA
BQAYAAAAAAAAABAA7UFMSAMAaHR0cC9VVAUAA5Ru0lV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAA
AADogxFHAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UGLSAMAaHR0cC90ZXN0cy9VVAUAA8Ru0lV1
eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADRgxFHAAAAAAAAAAAAAAAAEwAYAAAAAAAAABAA7UHQ
SAMAaHR0cC90ZXN0cy9maWxlYXBpL1VUBQADmW7SVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
AP2DEUcL4wm09D4AAL4RAQA1ABgAAAAAAAEAAACkgR1JAwBodHRwL3Rlc3RzL2ZpbGVhcGkvYmxv
Yi11cmwtaW4tc3ViZnJhbWUtY3Jhc2gtbG9nLnR4dFVUBQAD7m7SVXV4CwABBPUBAAAEUAAAAFBL
AQIeAwoAAAAAANKDEUcAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQYCIAwBodHRwL3Rlc3RzL21l
ZGlhL1VUBQADnG7SVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAP2DEUfBqZ9u1kEAAO87AQA5
ABgAAAAAAAEAAACkgcuIAwBodHRwL3Rlc3RzL21lZGlhL3RyYWNrLWluLWJhbmQtaGxzLW1ldGFk
YXRhLWNyYXNoLWxvZy50eHRVVAUAA+5u0lV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADRgxFH
AAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UEUywMAaHR0cC90ZXN0cy9taXNjL1VUBQADmW7SVXV4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANGDEUcVNTWSegAAALwAAAAqABgAAAAAAAEAAACkgV7L
AwBodHRwL3Rlc3RzL21pc2MveHNsdC1iYWQtaW1wb3J0LXN0ZGVyci50eHRVVAUAA5lu0lV1eAsA
AQT1AQAABFAAAABQSwECHgMKAAAAAAD8gxFHAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UE8zAMA
aHR0cC90ZXN0cy9zZWN1cml0eS9VVAUAA+tu0lV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAD8
gxFHAAAAAAAAAAAAAAAAKgAYAAAAAAAAABAA7UGKzAMAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvVVQFAAPrbtJVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgACAAAA/IMR
R5ZALncsAAAALAAAAEwAGAAAAAAAAQAAAKSB7swDAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2Jsb2ItdXJscy1tYXRjaC1zZWxmLWNyYXNoLWxvZy50eHRVVAUAA+tu
0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADogxFHYEtmEJEAAAD7AQAARQAYAAAAAAABAAAA
pIGgzQMAaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1cml0
eU9yaWdpbi1zdGRlcnIudHh0VVQFAAPEbtJVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAzoMR
RwAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BsM4DAGh0dHAvdGVzdHMvc3RvcmFnZS9VVAUAA5Ru
0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADOgxFHpiHUhg4BAAAXAgAARQAYAAAAAAABAAAA
pIH9zgMAaHR0cC90ZXN0cy9zdG9yYWdlL2NhbGxiYWNrcy1hcmUtY2FsbGVkLWluLWNvcnJlY3Qt
Y29udGV4dC1hY3R1YWwudHh0VVQFAAOUbtJVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAzoMR
R6Wv6VmXAQAAtgwAAEMAGAAAAAAAAQAAAKSBitADAGh0dHAvdGVzdHMvc3RvcmFnZS9jYWxsYmFj
a3MtYXJlLWNhbGxlZC1pbi1jb3JyZWN0LWNvbnRleHQtZGlmZi50eHRVVAUAA5Ru0lV1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACADOgxFHE7C2pxwBAACpCwAARwAYAAAAAAABAAAApIGe0gMAaHR0
cC90ZXN0cy9zdG9yYWdlL2NhbGxiYWNrcy1hcmUtY2FsbGVkLWluLWNvcnJlY3QtY29udGV4dC1l
eHBlY3RlZC50eHRVVAUAA5Ru0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADOgxFHWm5JwCEJ
AAC8OQAASwAYAAAAAAABAAAApIE71AMAaHR0cC90ZXN0cy9zdG9yYWdlL2NhbGxiYWNrcy1hcmUt
Y2FsbGVkLWluLWNvcnJlY3QtY29udGV4dC1wcmV0dHktZGlmZi5odG1sVVQFAAOUbtJVdXgLAAEE
9QEAAARQAAAAUEsBAh4DCgAAAAAA1YMRRwAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1B4d0DAGh0
dHAvdGVzdHMvd2Vic29ja2V0L1VUBQADom7SVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAANWD
EUcAAAAAAAAAAAAAAAAbABgAAAAAAAAAEADtQTDeAwBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9VVAUAA6Ju0lV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADVgxFHAAAAAAAAAAAAAAAAIAAY
AAAAAAAAABAA7UGF3gMAaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9VVAUAA6Ju0lV1
eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADqgxFHAAAAAAAAAAAAAAAAKAAYAAAAAAAAABAA7UHf
3gMAaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL1VUBQADyG7SVXV4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIAP2DEUfXLW15EEUAAHVgAQBCABgAAAAAAAEAAACkgUHfAwBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvcmVjZWl2ZS1ibG9iLWNyYXNo
LWxvZy50eHRVVAUAA+5u0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAD9gxFHYq1qnEQ/AAA8
IQEAPwAYAAAAAAABAAAApIHNJAQAaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3Jr
ZXJzL3NlbmQtYmxvYi1jcmFzaC1sb2cudHh0VVQFAAPubtJVdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgAloMRR+qKfEJhBQAABQ8AAAoAGAAAAAAAAQAAAKSBimQEAGh0dHBkLmNvbmZVVAUAAytu
0lV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADagxFHAAAAAAAAAAAAAAAAAwAYAAAAAAAAABAA
7UEvagQAanMvVVQFAAOsbtJVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA74MRRwAAAAAAAAAA
AAAAAAcAGAAAAAAAAAAQAO1BbGoEAGpzL2RvbS9VVAUAA9Ju0lV1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACADagxFHD82WNIsAAADTAAAANQAYAAAAAAABAAAApIGtagQAanMvZG9tL2NhbGxiYWNr
LWZ1bmN0aW9uLXdpdGgtaGFuZGxlLWV2ZW50LWFjdHVhbC50eHRVVAUAA6xu0lV1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACADagxFHysG5Wy4BAABCAgAAMwAYAAAAAAABAAAApIGnawQAanMvZG9t
L2NhbGxiYWNrLWZ1bmN0aW9uLXdpdGgtaGFuZGxlLWV2ZW50LWRpZmYudHh0VVQFAAOsbtJVdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgA2oMRR8xNH+ihAAAA/gAAADcAGAAAAAAAAQAAAKSBQm0E
AGpzL2RvbS9jYWxsYmFjay1mdW5jdGlvbi13aXRoLWhhbmRsZS1ldmVudC1leHBlY3RlZC50eHRV
VAUAA6xu0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADagxFHJ87EIC8IAADXHAAAOwAYAAAA
AAABAAAApIFUbgQAanMvZG9tL2NhbGxiYWNrLWZ1bmN0aW9uLXdpdGgtaGFuZGxlLWV2ZW50LXBy
ZXR0eS1kaWZmLmh0bWxVVAUAA6xu0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADvgxFHaKy1
ub0AAAAAAQAAMAAYAAAAAAABAAAApIH4dgQAanMvZG9tL2V4Y2VwdGlvbnMtdGhyb3duLWluLWNh
bGxiYWNrcy1hY3R1YWwudHh0VVQFAAPRbtJVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA74MR
R0oJv/xNAQAAIwMAAC4AGAAAAAAAAQAAAKSBH3gEAGpzL2RvbS9leGNlcHRpb25zLXRocm93bi1p
bi1jYWxsYmFja3MtZGlmZi50eHRVVAUAA9Fu0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADv
gxFHbUw3z8oAAADrAQAAMgAYAAAAAAABAAAApIHUeQQAanMvZG9tL2V4Y2VwdGlvbnMtdGhyb3du
LWluLWNhbGxiYWNrcy1leHBlY3RlZC50eHRVVAUAA9Fu0lV1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACADvgxFHVXYcIDIIAAD2GwAANgAYAAAAAAABAAAApIEKewQAanMvZG9tL2V4Y2VwdGlvbnMt
dGhyb3duLWluLWNhbGxiYWNrcy1wcmV0dHktZGlmZi5odG1sVVQFAAPSbtJVdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAy4MRR5n8s912AAAAsgAAACsAGAAAAAAAAQAAAKSBrIMEAHB5d2Vic29j
a2V0LndzLmxvZy0xN0F1ZzIwMTUtMTYyODQ0LWVyci50eHRVVAUAA41u0lV1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACADLgxFHcBO3WIAAAACGAAAAKwAYAAAAAAABAAAApIGHhAQAcHl3ZWJzb2Nr
ZXQud3MubG9nLTE3QXVnMjAxNS0xNjI4NDQtb3V0LnR4dFVUBQADjW7SVXV4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIAACEEUfkfEWjniYAANukAAAMABgAAAAAAAEAAACkgWyFBAByZXN1bHRzLmh0
bWxVVAUAA/Bu0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAAhBFHBYsp/fKtBgBNdiYACgAY
AAAAAAABAAAApIFQrAQAc3RhdHMuanNvblVUBQAD8G7SVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoA
AAAAAOCDEUcAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQYZaCwBzdG9yYWdlL1VUBQADs27SVXV4
CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAO+DEUcAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADtQcha
CwBzdG9yYWdlL3dlYnNxbC9VVAUAA9Fu0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADggxFH
MhrgVlsAAABrAAAALQAYAAAAAAABAAAApIERWwsAc3RvcmFnZS93ZWJzcWwvYWx0ZXItdG8taW5m
by10YWJsZS1hY3R1YWwudHh0VVQFAAOzbtJVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA4IMR
R+0GrSYzAQAAiwIAACsAGAAAAAAAAQAAAKSB01sLAHN0b3JhZ2Uvd2Vic3FsL2FsdGVyLXRvLWlu
Zm8tdGFibGUtZGlmZi50eHRVVAUAA7Nu0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADggxFH
aRUskKsAAABeAQAALwAYAAAAAAABAAAApIFrXQsAc3RvcmFnZS93ZWJzcWwvYWx0ZXItdG8taW5m
by10YWJsZS1leHBlY3RlZC50eHRVVAUAA7Nu0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADg
gxFHRuImyjIIAABUHgAAMwAYAAAAAAABAAAApIF/XgsAc3RvcmFnZS93ZWJzcWwvYWx0ZXItdG8t
aW5mby10YWJsZS1wcmV0dHktZGlmZi5odG1sVVQFAAOzbtJVdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgA74MRR3JUplWvAAAABgEAADUAGAAAAAAAAQAAAKSBHmcLAHN0b3JhZ2Uvd2Vic3FsL2No
YW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS1hY3R1YWwudHh0VVQFAAPRbtJVdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgA74MRRxAdABdqAQAAxgIAADMAGAAAAAAAAQAAAKSBPGgLAHN0b3JhZ2Uv
d2Vic3FsL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS1kaWZmLnR4dFVUBQAD0W7SVXV4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIAO+DEUdZdHpwxwAAAEoBAAA3ABgAAAAAAAEAAACkgRNqCwBz
dG9yYWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2UtZXhwZWN0ZWQudHh0VVQF
AAPRbtJVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA74MRR756u2FcCAAAIx0AADsAGAAAAAAA
AQAAAKSBS2sLAHN0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS1wcmV0
dHktZGlmZi5odG1sVVQFAAPRbtJVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA74MRRwAAAAAA
AAAAAAAAAAQAGAAAAAAAAAAQAO1BHHQLAHN2Zy9VVAUAA9Fu0lV1eAsAAQT1AQAABFAAAABQSwEC
HgMKAAAAAADvgxFHAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UFadAsAc3ZnL2N1c3RvbS9VVAUA
A9Fu0lV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADvgxFHXRQiUX4AAACMAAAAJAAYAAAAAAAB
AAAApIGfdAsAc3ZnL2N1c3RvbS96ZXJvLWRhc2hhcnJheS1zdGRlcnIudHh0VVQFAAPRbtJVdXgL
AAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA5IMRRwAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1Be3UL
AHN2Zy9zdHJva2UvVVQFAAO7btJVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA5IMRR+uI7jF+
AAAAjAAAACUAGAAAAAAAAQAAAKSBwHULAHN2Zy9zdHJva2UvemVyby13aWR0aC1oYW5nLXN0ZGVy
ci50eHRVVAUAA7tu0lV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAD5gxFHAAAAAAAAAAAAAAAA
CQAYAAAAAAAAABAA7UGddgsAd2ViYXVkaW8vVVQFAAPlbtJVdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgA/YMRR2glDjYwQQAA10kBACkAGAAAAAAAAQAAAKSB4HYLAHdlYmF1ZGlvL2F1ZGlvYnVm
ZmVyLW5ldXRlci1jcmFzaC1sb2cudHh0VVQFAAPubtJVdXgLAAEE9QEAAARQAAAAUEsFBgAAAABe
AF4AcScAAHO4CwAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>259210</attachid>
            <date>2015-08-17 16:57:41 -0700</date>
            <delta_ts>2015-08-17 20:37:24 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews106 for mac-mavericks-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>799701</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
TXV0YXRpb25PYnNlcnZlci9VVAkAA+kN0lXcDtJVdXgLAAEE9QEAAAQUAAAAUEsDBAoAAgAAAMBM
EUf+JzjgNQAAADUAAAA/ABwAZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kYXRhYmFzZS1jYWxs
YmFjay1kZWxpdmVyeS1hY3R1YWwudHh0VVQJAAPoDdJV6A3SVXV4CwABBPUBAAAEFAAAAEZBSUw6
IFRpbWVkIG91dCB3YWl0aW5nIGZvciBub3RpZnlEb25lIHRvIGJlIGNhbGxlZAoKUEsDBBQAAgAI
AMBMEUfd9JHKWQEAAJsCAAA9ABwAZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kYXRhYmFzZS1j
YWxsYmFjay1kZWxpdmVyeS1kaWZmLnR4dFVUCQAD6A3SVekN0lV1eAsAAQT1AQAABBQAAADFUEtv
2zAMvvtXEL46spr2tlO6JgWGPhIsxnoodqBtOhMqW4VILfW/H526LTbsXgiQAH1P0hgD9kfwqSe2
axS0m4e9faD6xsn8fE3Ot/Y7eUIm63EMSYwQi4nEyQvbDllsG3p7lwTFhWFbM8XfFG2rjrXKTIPe
19g8mZa8U2Q09PJMjVBbyotkRVF8Ug1sJKE/lVitwCwXywsolotzWK0yU6m9Gw7Qz4YMGAlmLbXQ
Be/DcWKs5wSQiAOrqbLhLY3LrLi+/Hb7BSrXq0ybwxHdyboLEYYgrhvXYVB5gJpOQmozyMx2AE5N
Q8wL0Inh6LwHJgLUOzpiCB3ku8v9PgfdHeOBlPnaS5PqEfJqs6/ganu3u91Um7zMzHQmxcdYpafh
IL/AMSz/xR7PfpYyPtME5igSXZ107fn/eO/wPfavgi6E/D1vnqRL3o87jKwFlSMx0UT5q6d+/AFQ
SwMEFAACAAgAwEwRR8EaepzFAAAAPAEAAEEAHABmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2Rh
dGFiYXNlLWNhbGxiYWNrLWRlbGl2ZXJ5LWV4cGVjdGVkLnR4dFVUCQAD6A3SVegN0lV1eAsAAQT1
AQAABBQAAABtz7FOxDAQBNDeXzFyjSL4BATpgIuUdIhik9sEi4198q455e9xdCcQiMbNPO2MB1YL
ccFajCykqKDMOLKET858xJxE0nkXj2Q0kjIsU1Sado2JREaaPrRx7hChZZpY9QZbKjgHESgzqL45
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
7vXi4Dde88bui7CELid4iWEe0ES7p4Q25YgL9a0m9a/pb2l6A1BLAwQKAAAAAAC6TBFHAAAAAAAA
AAAAAAAADAAcAGZhc3QvZXZlbnRzL1VUCQAD4A3SVdwO0lV1eAsAAQT1AQAABBQAAABQSwMEFAAC
AAgAtUwRR1gqZ3U5AAAAQwAAADIAHABmYXN0L2V2ZW50cy9kaXNwbGF5LW5vbmUtb24tZm9jdXMt
Y3Jhc2gtc3RkZXJyLnR4dFVUCQAD1Q3SVdUN0lV1eAsAAQT1AQAABBQAAADLzS8tTvXNL0sNyVdI
S8zMSU1RKAGyMvNSFBIVShKL0lNLFMoyU8sVEksUDA0MDPQMwEDHFM7kAgBQSwMEFAACAAgAukwR
RzC1beM5AAAAQwAAACsAHABmYXN0L2V2ZW50cy9tb3VzZS1mb2N1cy1pbWFnZW1hcC1zdGRlcnIu
dHh0VVQJAAPfDdJV3w3SVXV4CwABBPUBAAAEFAAAAMvNLy1O9c0vSw3JV0hLzMxJTVEoAbIy81IU
EhVKEovSU0sUyjJTyxUSSxTMDQz0DMBAR9cQzuYCAFBLAwQUAAIACAC6TBFH5669XzsAAABDAAAA
LwAcAGZhc3QvZXZlbnRzL21vdXNldXAtb3V0c2lkZS1kb2N1bWVudC1zdGRlcnIudHh0VVQJAAPg
DdJV4A3SVXV4CwABBPUBAAAEFAAAAMvNLy1O9c0vSw3JV0hLzMxJTVEoAbIy81IUEhVKEovSU0sU
yjJTyxUSSxRMDAwM9AzAQMfYwhTK5AIAUEsDBAoAAAAAACBNEUcAAAAAAAAAAAAAAAALABwAZmFz
dC9maWxlcy9VVAkAA5sO0lXcDtJVdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAEBNEUfscyK6LTAA
AICxAAAoABwAZmFzdC9maWxlcy9ibG9iLXNsaWNlLXRlc3QtY3Jhc2gtbG9nLnR4dFVUCQAD2A7S
VfoN0lV1eAsAAQT1AQAABBQAAADkXOtv20iS/7z6K/hhMCtNQrnfDyGXBZ+z3nESX5RkBhgMBJJq
2kL0GkpK4vvrr5qUZJKiHXvOd7eADcRW2K2qX1XXs7uly2KVmc1m5Bx+stVimKzXczP81aS/zLbD
t2b7dVV8ni2vhqH5Yuar9cIst87vmHKl/uhdJtvr23fDz9mn1Xy3MJuzT+8uPr6Jzn462xPKi2Rh
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
qerC0oSb+MWO6K5VmMsRmVrv7u1345n9UICn5xn8JMt7SMvJQNEL6AFYMvPssijojsj14UeHRza8
zkWWIciIDZxhrmetRy6tifGA2QHesW83aT7QPj6xpsHNzW1kH70wBJlND0UvFtl6tbkcLM3oxLqf
BdHEvv4Y3MXDZD2BHXa/X6Rf7RMXrDpiCoN4blgIZvpIWcbJxCrPgJ6aThkqyakSE2s+j4NZcIIB
ahiYz8fT4FqfKOtRiVRvxu8nOoYXPHwpH/t1Pp/pz7NTHQDCG4t+fD+ObuPjLIB+OrHWZtLYiCp3
pFkcqe6MRWGv8zUmsw1fQPUPJs3sdhbc2Cff7EhcF0X/smFYvewag7wY3OVoYSN/ClPc+gVQSwME
FAACAAgAQE0RRxcmyvz8LQAAMJ0AACkAHABmYXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLWZmZmQtY3Jh
c2gtbG9nLnR4dFVUCQAD2A7SVVMO0lV1eAsAAQT1AQAABBQAAADkW2mP28aW/fz4K/hhkKeOU+ra
F8HjgKvHL95g2U6AIBBIiuwmrC2UZLv//dwiJTVJse1uP8/gAW4g3QyrdOvcW3c5t0p+Xa2zfLud
uMefbL0cJ5vNIh//nqe/lbvxy3z3aV19KFdX4zD/mC/Wm2W+2rl/EqEZ/8t5neyubz8NP5fv14v9
Mt9evn/1/N2L6PLny4OgokqWuRV1+T6vtuV6tb30Lv94HUzz6mMJIC7vufT48ya7DNarHTxvL18k
2avpfT/qPJvD77Io82ryIHWdA+RbTSWmj9wR/B6TMXl04QTree6+vdnkxyl/aIkkd0cvk135Mb8A
Q1XWbq9PBv/111/Bin85b/LtBoxRpovDZ7fX7p+UmL+cd9u8cp+Ft4sKTBwnTHb55dtyeVqJYiIQ
1ogoF5sJMxOsxlhwF2GFsfNq6nbBg8VcePmHS/DYjIU7Iixm/AJwbNbVrjWZEMdbrVc3y/V+6757
VwPBTEVGKIYiGYcIx5oh4wce8mPfGK4iLxKh4zhBlWyv87n79rrKk7mVRV0XLBysK4DtbW9WWVwu
8ukOhpeOE33O8s0OVj1aMPojmPleOPOCIJpO3dH02dNp9PT9RWumNTiY8bfozcvZs5fvvefPYHoY
vrHzk52LP+POD8WO8/6F+ya/sp7nvsyTCuZQPHEQeuI61jCz2dvoj7du/+cggGApqYAH1H4BFsbu
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
ZsOnqif/rXr4UusVjIBtD2XPcl30tccQXer32nQ+T1z0r9XH9xZK3ayffroYHIdPNgu30jXeu9PN
bv50ySgYRxP3udguc9DZLymG2k7OpHp37m6/Y55bPtu87GZA28t6f+h9kV+CFscnZ5y9O3f+el7u
MMcP6sD2q5qBj67c7/BwV6wvJSjR4zMKlVYtASOJ8latnUsyPiNwq94WVnSmNTTlOrfmanTzwZ3+
/dG4A9fn0e30U3jtXL5eQ0X3j51kr+nCyoR7+OWG6LZVWKgLMnH+vHP/HE3dhxI7vcjhJ3nRU7Ua
DxQ9gwGAFbPIz8uC9IJcHX50eOTC25znOWKMuEAZpnrWBuTcGVsHmBviHfdmnRUD/RNjZxJeX9/E
7tGLUQlv81D0bJ6vluvzwdKcQa3FCtOipvMHEDp0sCiVY+duGsZj9+pTeJsMU+BLHNu73Tz76p64
gF/lBNh9ZqkNp+ZIWS7I2NmfFj2x4zdUUvkB0DqbJeE0dE+NFhIwm40m4ZU5UdZnCmu9Hn0YmwR4
YfjSOKGg6NR8mZ4YAIozFIp++jCKb5LjJIAmO3ZWdnq5iD93pFsCa91a28Ndle93+IJaf2N+TW+m
4bV78s1eyKuy6B8ucODLtjEfynlgLwwo0BNYDZx/AFBLAwQKAAAAAAC1TBFHAAAAAAAAAAAAAAAA
DAAcAGZhc3QvZnJhbWVzL1VUCQAD1Q3SVdwO0lV1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAtUwR
R9sI00I7AAAAPwAAAC8AHABmYXN0L2ZyYW1lcy9mcmFtZS1kaXNwbGF5LW5vbmUtZm9jdXMtc3Rk
ZXJyLnR4dFVUCQAD1Q3SVdUN0lV1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQo
zy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQKAAAAAADGTBFHAAAAAAAA
AAAAAAAADQAcAGZhc3QvaGlzdG9yeS9VVAkAA/QN0lXcDtJVdXgLAAEE9QEAAAQUAAAAUEsDBAoA
AgAAAMZMEUf+JzjgNQAAADUAAABCABwAZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJh
c2UtcGVuZGluZy10cmFuc2FjdGlvbi1hY3R1YWwudHh0VVQJAAPzDdJV8w3SVXV4CwABBPUBAAAE
FAAAAEZBSUw6IFRpbWVkIG91dCB3YWl0aW5nIGZvciBub3RpZnlEb25lIHRvIGJlIGNhbGxlZAoK
UEsDBBQAAgAIAMZMEUczFabJXwEAAJgCAABAABwAZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2Vi
ZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi1kaWZmLnR4dFVUCQAD8w3SVfQN0lV1eAsAAQT1
AQAABBQAAADFkUFr40AMhe/+FSJXZzKkxz0l3aSwbEtDY7Zn2ZbjgckoWDKO//3KjqHbX7DMYWB4
eu/TG+cc+D8c+yuJP6CiP36e/SeVv4Mu13MfYu0/KBIK+Ygj9+qURF1H0kcV36Cob4Mod6O/4YVc
hVVLbqCyNsvS5tyNUh3SxWmHSbDSwMnR/UaVUr3Ru2Z5nv8/Ert6jDPHbgduu95uId+un2C3y1xh
CQLaogLCZApD0BYwAZsXGNth8X6IWhRYQuCfEIGaSSCxwoUhJGWT08Nwptxk+cv+1+sPKMKVarDl
YMCgk03D3TQYmvHAyWIYymkoRqozyNx7AumrikTWYKUYX4wgRMYr1AVL5QZWp/35vAKrVyzSlA3H
yIMllSOsiuO5gJ/vb6fXY3FcbTI3nYlNWh7AzdhNx9cHauYmMzjNZeBjKfsDq93sZtnXWot2AWz6
GMcTdmLCYK12PU1J3+Lt4S9QSwMEFAACAAgAxkwRRxBVp+HIAAAANQEAAEQAHABmYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLWV4cGVjdGVkLnR4
dFVUCQAD8w3SVfMN0lV1eAsAAQT1AQAABBQAAABVkEFqxDAMRfc+xSfrae9QOtm1TCCBWSuOEhs8
1mA5hNy+mqRQutbTf18aWKuiBqogPGlhbLEGUIY8OePO45UqjaR8QoEUNphiXlALZSVfo2TFJKzI
UrEIYq5iOJ+Bnnzgd+duGbp6z6oX7LKaKCUos4mVS7R1mdF0H33f4GGU7Ro5S0qy8YRxRzO0/YDP
23f31Q5tY5nuZdAgG94O+VzkcQrdKwjdcRGdzYrdKsWiDuqv24n+dpvXlPaOihoX7TNlZef+eZ37
AVBLAwQUAAIACADGTBFHdJURg7sIAAAiIAAASAAcAGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdl
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
+l2ns4gpuwL4VJiFciMB7KiJ0fuJ6HR/Rj/d+8bVkx6ZV0triXrPoOZPQbt1wDOFW6h/C9gVGKeL
ESgW5heNVRDy/pofikis5p0LIXefLq7hCbV4uh6oj26DDoXXVXzgdSXyOkAiij3W3hCVGYIr9GsA
LHVrNW1YJcMCKZWb9cq7zZne/p0hBEo4sUiABaRBs+TAzmYQBDXbgeAAhxkEksN6NM58mULbMWoA
NwT9u0+/uYAsXreVXXTQUAeMwN9gUWMoyEqL+89//ToDE6i2HniiudcjidcBhvF6Upmp7mGvTaXp
aHuoRsq92dK0tQX0qnR7C5Ts32PayhzqG5muNoRqMNYF8DVDePQGoptpu/Z3R53I4GX7uiVfteL5
Gwx4fsCA/0+Z35lpxu/ANL8UUFbEMZQcZwjoGkoKxqBIIVCXq0qTCMRT9MNvFZfzh8+Pj6aFbNkK
e1KuHlzwyIq2dtnT3eMTuvnl54evd093Zihsa/ldxL94D6L9CGCTPyqwy3cAppKLyPgaBYp9kL5D
5/APQfzTOyBWfosedE6EVKdAQzUCBQg4rb5Pp8uPE+HqvUSwcZpWjG0f1B/mJojCy6CsPgb39I/q
xaPhOyBrsNTHwBx9gAJ/T3pqfXRxD9Wz/qsB/wNQSwMECgAAAAAAukwRRwAAAAAAAAAAAAAAAAwA
HABmYXN0L2ltYWdlcy9VVAkAA+AN0lXcDtJVdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALpMEUch
j704MgAAADMAAAAsABwAZmFzdC9pbWFnZXMvcGRmLWFzLWltYWdlLWNyb3AtYm94LXN0ZGVyci50
eHRVVAkAA+AN0lXgDdJVdXgLAAEE9QEAAAQUAAAAc8tJLEl1SU3OT0m1UkgB0Zl56QqpRUX5RVYK
mXnJ+UVFqcklCimJJYkKyRmpydl6XABQSwMECgAAAAAAu0wRRwAAAAAAAAAAAAAAAAwAHABmYXN0
L2xvYWRlci9VVAkAA+IN0lXcDtJVdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALZMEUfbCNNCOwAA
AD8AAABSABwAZmFzdC9sb2FkZXIvZGlzcGxheS1pbWFnZS11bnNldC1jYW4tYmxvY2staW1hZ2Ut
YW5kLWNhbi1yZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUCQAD1w3SVdcN0lV1eAsAAQT1AQAA
BBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNT
i4tTU/S4AFBLAwQUAAIACAC3TBFH2wjTQjsAAAA/AAAAUwAcAGZhc3QvbG9hZGVyL2ltYWdlcy1l
bmFibGVkLXVuc2V0LWNhbi1ibG9jay1pbWFnZS1hbmQtY2FuLXJlbG9hZC1pbi1wbGFjZS1zdGRl
cnIudHh0VVQJAAPZDdJV2Q3SVXV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjP
L8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBBQAAgAIALtMEUfbCNNCOwAA
AD8AAAAtABwAZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGljeS1kZWxlZ2F0ZS1zdGRlcnIudHh0VVQJ
AAPiDdJV4g3SVXV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRn
ZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAAMFMEUcAAAAAAAAAAAAAAAANABwA
ZmFzdC9yZWdpb25zL1VUCQAD6g3SVdwO0lV1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAwkwRRwAA
AAAAAAAAAAAAABcAHABmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5nL1VUCQAD6w3SVdwO0lV1eAsAAQT1
AQAABBQAAABQSwMEFAACAAgAwUwRRzkBy91AAAAAegAAADUAHABmYXN0L3JlZ2lvbnMvc2Nyb2xs
aW5nL3doZWVsLXNjcm9sbC1hYnNwb3Mtc3RkZXJyLnR4dFVUCQAD6g3SVeoN0lV1eAsAAQT1AQAA
BBQAAABzLUvNKwlOzUtJLQooyq+otLJKzs8rycwrzS8t9gXi1ODkovycHKdKhcxihbz8EoXM3IKc
1FygptQULldKNAMAUEsDBBQAAgAIAMJMEUc5AcvdQAAAAHoAAAAuABwAZmFzdC9yZWdpb25zL3Nj
cm9sbGluZy93aGVlbC1zY3JvbGwtc3RkZXJyLnR4dFVUCQAD6w3SVesN0lV1eAsAAQT1AQAABBQA
AABzLUvNKwlOzUtJLQooyq+otLJKzs8rycwrzS8t9gXi1ODkovycHKdKhcxihbz8EoXM3IKc1Fyg
ptQULldKNAMAUEsDBBQAAgAIAMJMEUfkisdDPAAAAD0AAABAABwAZmFzdC9yZWdpb25zL3Njcm9s
bGluZy93aGVlbC1zY3JvbGxhYmxlLXNpbmdsZS1yZWdpb24tc3RkZXJyLnR4dFVUCQAD6w3SVesN
0lV1eAsAAQT1AQAABBQAAABzLUvNKwlOzUtJLQooyq+otLJKzs8rycwrzS8t9gXi1ODkovycHKdK
hcxihbz8EoXM3IKc1FygptQULgBQSwMECgAAAAAAyEwRRwAAAAAAAAAAAAAAAAoAHABmYXN0L3Rl
eHQvVVQJAAP4DdJV3A7SVXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADITBFH1iNn7k0BAADKAwAA
JAAcAGZhc3QvdGV4dC9mb250LXdlaWdodHMtemgtc3RkZXJyLnR4dFVUCQAD+A3SVfgN0lV1eAsA
AQT1AQAABBQAAADlkc1rwyAYxs/LXyG99JIEjWu0YQusKWVj0EsKO5QejJpOli8SU7qV/O/Tdl+w
wnYd86Lv4+vDz+cNIJp4kHqIADiNMI1Q6KPgEvC69FnTFNJ/kNm90nZL6krLSvtzuZNF3ZTmvEZ4
EtKIcEg2IKlbuZJ7HYG7ascKJcCYlXU7BmmfaZYV0uigYqUE1yBdpXW11cpLE29WMP7kgk692BsD
AI/LBSXTrdobDe5NJWTHW9XoujXKVbJaGJz5hxaZJpIzMmV0ikIM4wPT5nXWa9kd+xcz1il+y7rH
z07KKIFgbes8J5ygMIdwEx/0c2NRyv6ELRTXromkr7QFdB3z81ZZ39i5CEBk3VOjVFvwZiUoDDA9
Z81PIVqm0TK1f1iaRG7eWUfDCfaLnSUVmGfwJ7tvmY4GZ3DiwQnODTmkf3jIlAdCoN8MmXIM8X8Y
8itQSwMECgAAAAAAyEwRRwAAAAAAAAAAAAAAAAkAHABmYXN0L3hzbC9VVAkAA/cN0lXcDtJVdXgL
AAEE9QEAAAQUAAAAUEsDBBQAAgAIAMdMEUdy/WXyhQAAAOkAAAAlABwAZmFzdC94c2wvdHJhbnNm
b3JtLXhoci1kb2Mtc3RkZXJyLnR4dFVUCQAD9g3SVfYN0lV1eAsAAQT1AQAABBQAAACtTjEOwkAM
2/uKfKBkYLsZJthAdE7bVJyUu1S5nNT+noN+gcWybMv2pGmNQh41A5upBVii8A8CIr5UauKCF3LC
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
ABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL1VUCQADBg7SVdwO0lV1eAsAAQT1AQAABBQAAABQSwME
FAACAAgAz0wRR9sI00I7AAAAPwAAADcAHABodHRwL3Rlc3RzL25hdmlnYXRpb24vZmFsbGJhY2st
YW5jaG9yLXJlbG9hZC1zdGRlcnIudHh0VVQJAAMGDtJVBg7SVXV4CwABBPUBAAAEFAAAAHMsKUnN
LShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsD
BAoAAAAAAOtMEUcAAAAAAAAAAAAAAAAUABwAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAAzkO0lXc
DtJVdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAO9MEUcAAAAAAAAAAAAAAAAqABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQJAANCDtJV3A7SVXV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACABATRFHkgbQQIQuAACDnQAATAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L2Jsb2ItdXJscy1tYXRjaC1zZWxmLWNyYXNoLWxvZy50eHRVVAkA
A9gO0lU1DtJVdXgLAAEE9QEAAAQUAAAA5Ftpb9vIlv38+Cv4YdBP7nTJtS9CTxpc8/I6ixEl6QYa
DYGkSJuItqakJP73c4uUZJKiEzuTGTygDcRWWMVb5966y7lV9lW1zvLtduIev7L1cpxsNot8/Fue
/lruxq/y3ad19aFcXY/D/GO+WG+W+Wrn/kGYMOpP5yrZ3dy9DV+X79eL/TLfXr5//eLdy+jyx8uD
oKJKlrkVdfk+r7blerW99C5/vwqmefWxBBCXD1x6/HmTXQbr1Q4+by9fJtnr6UNfdZ7P4XtZlHk1
eZS6zgHynaYS0yfuCL6PyZg8uXCC9Tx3395u8uOU37VEkrujV8mu/JhfgKEqa7erk8F/+eUXsOKf
zpt8uwFjlOni8O72xv2DEvOn826bV+7z8G5RgYnjhMkuv3xbLk8rUUwEwhoR5WIzYXrC8FgZ5iKs
MHZeT90ueLCYCw9/dwkem7FwR4TFjF8Ajs262rUmE+J4q/Xqdrneb91372ogmKnICMVQJOMQ4Vgz
ZPzAQ37sG8NV5EUidBwnqJLtTT53395UeTKvZbkuWDhYVwDb296usrhc5NMdDC8dJ/qc5ZsdrHq0
YPR7MPO9cOYFQTSduqPp82fT6Nn7i9ZMa3Aw46/Rm1ez56/eey+ew/QwfGPnJzsXf8adL4od5/1L
901+bT3PfZUnFcyheOIg9NR1rGFms7fR72/d/tdBAMGpyRl8QO0HAj64f9hp+tc/3Qp9vqw+fXan
L/87eP3bf3gsOM3muHgyccNyu0l22Y371z7fwwbcyVgm5Qrt6pkOBjUXZbq93e7y5exDXq3yxXh+
C4+OtvpHY3ZVFIVRiTSKSzDrxu73zWy53+WfPyXlzn0CvueQjrRNs0ZHXFsay0SulHGPExtps8U6
+wDimKIO7YSz9bR4vV/Nk9pbzuQRK1KCvCB+s1+9WK83cbkqa6d94grlsI60vqSeNJ1mnBGauOiP
V9ODuNHp04Vb7VcvwV0naV4ALBvAkz+tEbRy+OPWmdM0ZV9ax8pV3BEdsXeeNSw2S5XKaOHOwJ1m
dsdBCCfKkc0WwdPuNg9KMVQmNIUs2BLCjHHUw9PsP05RWwcXlwa7B0lEuqM7NV7Cw04cLJcTgy8c
3QAGsPN7ELfVznONRTF3t7ukqp3yFBPkizFhVzgMomWySq7z6vGxkUhJ3Q+gwmoHZaIdEUfZAxq0
ZWimJafEnR3nz5bX1axcfVx/yEEeZaYOiccJJEz2BDbhZoOCnsxDJ21zvJq+e/MCktAqz6znvlgn
828xiEhIArttl91ez3ZVshnKEw8QxOdEnwSBDMkfnRu4LoiAzHVKDie/y26u1o2zaNJLEg8RK5hp
i4UfVhSRpJcIHiBL5Uq4bUnTTZ4Bt8ls3GHTSwEPyGC4KJT75I/edo6a/bxwZ1W+Xe+rLLcP7JJ1
DmNc12nicSvNixTM8Gra+NOsThezmTUFI7rOGI+qDKk2rcqQrue3tSh9zAePkKQgi58knRIDU455
rKiiyIx7JugUQ2zyDfU0l4BuZjPnX/X8Kt/tq9U31tOswPpO109/nSKdMXxMHY9RNzVNJm2LainM
O0kjiKdQuvPdeFOVH6EgfoMxTGKNsc0X4Kh3JngUBeAJZnU8NmBeNskchGmpHm+Ce92QfT835N/Z
DcW3uGHCGssvLZubbcvrVbIYcsLsKxVHSS3mGXZXyWq9XeS5zfgUn5wve/IEuqvBOt5RMlFAijQ4
33wymc2gdu9uyu2hcE0mteAZEK/R3YTsplqv1pPJfF/VzvHzYr26du23n1pi6rGfyeIn0Oz4tXjq
PgUfW213P1xYqiV6ReDfycdkmlXlZmfdrwO2pjWAt5Bq7qbLZAHkdTKxJnwHTekiThbbvIVxvyqB
edQM9+fT7OkOMGUvLfd9+kMb67doZHX5yU3X60WtC+EEOq27BcY3EykueoXpIfoxU9zp96882cAm
ZAkwnev/f/2sYly5o/eQJNYVqCToRa80PkQlkvG+SuAE2b6yTf30qJxdTGp3NDt0J2myzSeQAC56
JfLrKyY4Iy0nqTvmt8m2ZSkL4if347qcu6Mesh8vRhdPJxNAVt1ercvVrgZmmDs6yQFDQKm96JHz
h+BKIc3/73AdklZ0B8/O/rHG2INIycU31PD70rD5fmmY4O+bhuXfjQ2ov5vC+u+msPm7KUzw305j
4h5OeoHb33u8i/sHQHfFxT2rMQRzovI8bxX12azYr+pe9Pj55+NakwwKzOuVXayB1OIXx5d+bmrR
xdMffriYTP5rZiaT9SYHpgCMEApSQ+Ymk38ukmU6T/45umgTirp+2an/t0s+PVZMWx87U6Emcnd0
FJwsJoQzIGXksQyGF4K5v72NLTm+r/oSZbpLMc0vemcnD1hKMFE0S33aFW/vX024o2a0XF1fNai2
42yzmRBpLr6hZ7qv7PPvV/bFd+6+IICyw1XJp3J3Yy+NDncmrmXCuTuSHKXl7mLiuG6VfJ64rUjh
smA5heiq0qEB4E1V1h7AErO50di+Me8M1K+lmNhF5mVHFhEpzTJwt2pbTs5uVbAdSDfnq0u7yHYz
hNfetVR6WJZbmeOAKnIpTIr1XFhZkFzbA5pjxnQ9QO4GikKlVPCc2UUqQs+XZ9wOsIGBWhYfgFUP
iAGj1IuUXR2P2cutikVPFsEUQxuQVXQydDvlus6L9XUJ2cUNrt41d3XSiapqXdV3XYfbu9Ob3Hlr
j0hf7Zfp8TaTcMdx/HKVVLfu82VynW8nzvES6/Pp/spFbvcht+d+D774HdU3n8g9XX26P2MWytj4
EVKMGcQizZGWPkXGj42gJgzjMHr6n30Z1rVIOmSmtCi4+wQi/VAJ3ubb3fSmXB7Cf4TBEizk1jEZ
iiPDEVOxhwz2BBLYhNgQYiI/HrLEfVK7uAo8gKuAlFu4T6Z59hxyUh9QoMMoILGPPF94iHkRRiYI
KZK+F0qpA5+FwWO35mDCw022NW/f6mdgOnokOj/XI4EKBXq03HB6u9zs1svmWjqv3BEZ25cIaBVz
ybRWFFHmg5k9gZH2/RhFAVU4MlQGxAetpnWavnxRphWExOVVc9IYH3XaXh6W2Lb0PB89AmhN6o20
tcszfL5LeUHyotDnQTYUTcb3DQ0iH2mNQ8QCJZDRQiMtpPI9ZYiK/AdtWfOgDa6QkDf74AqVzQcz
wIv8OsluhyDGmskwCDFSkmHEfBwgTXyFTKxETHSkqVH3Q2zkDvtWe0YHudGmj9we8XAblPfTkwHs
wBI49kKG/DCQYF4RI49TgWQU8iCWFL7RIexdycPou3OcNlSWnlmeEGaTihhix0N+AWUnZsT6BQWj
swBcQkuDfBVKX0oZasruMfr9iA+DTgPJVlCZFqTlwaeHnGkCTmKvVt0RZWbMAZPyQs584yMRRJ71
1Qh8lUnkYWmwiU3gCQmY9tvKprhL+3JrKZ0SqfpLwcNU9/wx2c/LdX2e79lP7oiPwSzwWv0TcPgR
sWUHo9jnAhwyoMgPYoEwIxJ8UfA4FOcJoRXrJ9nDZjoNd9Gn5hw9tTykgx74/CpbgNHGbCwMTG8+
2C2NOYu5IihgAUNM0BC21ISQxzjRIeRt4dMvwn4NooMXw5ibsQ7gVCXngFOte5nXAr4GwGYsayvX
P211E1DFosBHIXgIYhx80edMQSRFQkZU+Yr7X4X77Atwn/Xgzgfg5vOkZ9/WHc9Ijq2BCRaAWAJk
yhk3FGvEgPwiFosQGREEyGfKSCJjP4r1FyHfCR+CHbTG29AzmrIz6PZhDR1C4UN+u7yujpWaamtd
z9OhBoBBbK3rQ4ryhIdRRHVEPEY9iPBWLDU9yGVPVg+EGQCR4d52Qz2Pp9Z0uI4oSxt0BDUUG4OC
CNwRIt8gQzygDTzyDDWBhGboi2arZd5LH+JpF2dGznEyCrk97RICuxpQjaK8PtwCWFJAWO2kzQdr
R2Y86hmMQg/SOmNeDEEVCURjn2lPCR1H0RexD6wzrMnAxI5erEjP9eKUH50ge/IkScujE3BTw6fE
01jB5kvFKASZEJDhVYwUZxFkVCLDGLfcoCfG6S4lzteXhSmyTvx8rHsFd6RqB1C1A4SUk9AH+uoF
HCg9iSjShkFm8ryAEajFgcFfNKKXZfnCnmPcU3haU5v1h6c1Yx2tUiXPtUpV1ssKrd95gsx7ZI5A
rCSjoQKCLhQkhSAGxw45CoQKcUwj7MfRQ5jjnfSvtS9d7MmAp2eU9iLSlhvgmOl6Af1g4+dsjBs3
50CDx8LGKCUKtiGArgtYPSOQ5EwYCBRQwgPjK0oNfYgqZ4vdXwI705yuDuf5bl7Ts7x29RfelRf8
enR1gg2vdVCR8oyvQ0SA0CNmCEe+7VGkZL40Wgr4993cLM9AwPC0HkKnq8V5FM8NTZRR/T17Bh35
TZltbVoCJ629ThgzZqJmSwH0W4GUHGHbggFbCpHHMIE+mQGxZwTCNfgqSzmucf8uHWc4XcBDWhjV
87yT0PHz13V/Qg9+Z7Aag+9CkrUNv1Bx6HsMCRkChzZQWnWAgZlCrSXcjwk0LF9UpBY+rEE91IWe
qAHoKekFfH0SfWzJpvtN/dvMI/tLznYXmOVbPoWCaqIA+CkliFH4pGWsERY+10xFOAofFP1DS92z
HwMzO8ql5LxGz1ObEdL2UeNqvSuL21P8UDKmuC4X4Dvc53GEYuFBpY6xAdYQY8SlF8dMKMLqruCc
NQwI7gIT+QAw2XeY7SbPs5vx9na1u8m3ZcstLUtXB5aumsqsWewLyLsRFGQwPzNIU18j6GtMrLXw
Ff4y3fVgyUP2OR4OfTXspzXA6Tm+TiXvTuoaQupzQ2RC1oYAq/37it7lNc7rbkTEsZICiSgAPbUP
JdwyTz/SWMYi8ELyZdJZF73nr4exvjn8Gt72sr14B3ImB7JxJvnRqap8uf6YFyXs3wE5YzW/h3bE
EOjjqd2f0KfIozFHyvMV87lROIoHfakvrwfmnIXM59T0wjdNsg/7Tdt9yBjSZs3smvRJjAg9LTXi
ygNipyIJWQdc3UCrR4jmElr7h0Sv31upbdxmzOlCTYbwJ71AGPBNiABt3b9m9xHEJlA7KNQc4lRp
YKVMQLscBDy2HT20qt/H9wcm9vQZqARzlvf2A8TYU72kXNmzN3ZiUNCXcIohdDnD4CQGUg+029C4
xkbZ4BZcPyiHtuXfq8hpRkeDPBnwqMIGZEeDF8l+BUF92gyh6JjaDWk+2HOsQNEAa1OfV0CroIB+
aOyhCHPixYSbmPKvFuQHZ6IunuHp3TkdrQt1diyj8/OzkqD5C4PEZiNVex8Z2+COlFaMe6AcC+vj
Ix+0Br4lKfb9wPNpZORXdbWC7ycedtTpoMvPQyenxPRCJ8zT/XXDLS11wrJu4W37HhE/jEJgtoIy
D+g6JCOfhh4QXREoQmPsBeohztZeYRh/e4bThZsO6CCyng5XeVWsq2WyynJvlSxuoYrYDMbrLVC2
o/IDsL+JgCRxsH8MLNcXEegjPR3FQANV9KDsNbDQsEYDE7uKiWJAMUmPdc3u6PuXwaK0VyuHMiF0
XcgjP4DWCUIm0MaeoUJjqIW2Vz8GUxapSMj4mw+CmullU9/OQXR1GCh0OdX9zQnL5kq7ur3LBsCg
7FEctnnAA3roYaGh+bBdoYgi5HngdSH2cQRpmlAVfr88cI7mHpc8m9fV3bYmZ7obfdy/D59PfwQz
opzSMSFNHWWBVNpXAsUK2kUo80DcQz9EXAMJ9kLBIbiGD5pOEjtAJDtPx/AQgGTtTXj+erqvisT2
44Y0PQWpvSnEOIrqOwTP1kdo+ZDBAUEBFBTKtYx07H2lmzhIvq+jOAx3UOfqvKuAh9nxcGa/+lSu
TgaEDs4mUaXDIGDgKDQGgAxTKH7MCISJgBZCBb7gatB0bWk9GAO7mGt8hNH6U6bTqTuHzK5Ce4hh
gO4zX3vQxrAIKepFDHNoYsgw578T1sFQ0HOGmxfN34O0NvBZvsqbU65kMd2tq/rQ6HC0InFtH8kV
Nz5EDvRX0OF6gQZ2xg1SLJSS+tgAvIckuYGlhvd2YGJXNX5+4FJg3j+iPyPclvEcOE/D6ZkfBDHY
FwHXjKF8Ug69uyIohBrEaaCBMNBv5/SHQaeLUg9A16yX29L1EpIZb7Ca5gg0At7iCUmRDFkAZNNW
HXtLE3vQ4nIPaLwKHsSUYZVhmrxedrG27xWPD4lMj178ebkAynXyY1vaPRJ6YUgI0iayWQhKodaY
IqyIlpQKI1XcPedsC+msTgcOn4q5MeeMtrlybe4IqBRjWrfQYUCYTxVUZmIPu4HbGvg/VLMwkpII
5YfR16j5PccZwWGsA3c+/x/irqQ7khs53/tX+KgL+LAvR6xS25ItiWr56Je1sLssNtliFdsj/fqJ
QNaGTFSRb8QnX4bTzBQQQAIR3xcbXUfc1eroFh6Wn47ETPOKuSPLWgW84aB2ksfQgImAhQRTLnoP
hqp74c+GOhMBjPQc1KDl1gcR4s/l9nmzO9FDvAIFjo9RxZOoJCJ/CwjSO0OYZVrG5Ix1qf1i7TCt
BMLMJRBrecdHCR4X/7u88UfcoUZT4ZMpyVlJuGEgAi14CzUjOgAlYS4DxAqtCOfjvGvnUj0BjrQe
cHgTntFcW47eeDyeCEXhTnmK5FgHx7jSUtgLqn/ZmV4v9Xx6i+hLnJ/Zn56Hp92fY0iY3SB5AdVT
VW1I2voCoiSB3AU+AHHZcxKklwLEcfoFq3kaun/HT8/ftTKKjuAz9/uHxeZ3+PR/oNgCgZZFB1w0
hQWAwSRmCwdZSHSKSNAB8P2SU54V96rEjcPofckPT1u554YWrCfVM9f7/ePT7R8PS3RfuX1IzNWY
CEAm+NToZveJjbFEKwoYNw8wUVthTXp799VRnku0a/+4WeuglvO1DpZ1qOKvm9X68XC2GDM3qG+k
NlIIsBpcI1fEO+8coB5AkVZwQDyB8RfxcB35MlmsjxupF6KjlBYDnYQBv1tvPq+Ge/w+tAbT8dsU
OEqAMDAFxYLElgs4U4DlU9AcQIdJxb6KKO4H74u9f3guNKN38+vAGJux8k/PD5h0tp/5iJuUGvMX
rFQpGk8SwzwKDLeB/YvwT+CJUQM+E/pVjul2mgu7377ULIctaWc5S3YwDHuv8QKrtrZHG4X6qASr
dISLASDJY0wA7GkGzMGykgFUpymWX3NEnw/ZiLSYYwvHluIYRf36w2Z7VNWSA27DI0yli9QIVNcY
/XcBjLoUhRgdA8AMZqQsf1Nk6UzAZmHr1dwE4i/v7lbz5Jfnh81ue1NzUD48IIoBg0jHsDeefw0a
lDFYrlIeGLnSgBAExmaydtyblIN5YbmHkS/44g6PJyuYQVTH6WLVCWfOkzQsnn30jBjuwJglT1gB
sUU2nHgmgWPpwlkORfEQXtQ21/M0/OSd81VwJof5KtjMw1Mxehy+7J7RGI+mYW8YMg1awQIEgBDY
fDj1NgRPgoN7m6RPobzgRhyeFpcEn1KIvQRXeMT+jXaNatVZ43BKRXj+sj0BdGH46CnQGcCEokTu
8ywj2AHAPAzMnQolwcGSk1yEs3EaATidwy3O3dQkbR5+a0IAY/SOUzwn1isarIOTnTCXx3JN4Awp
gMKyZF+oLdK8yTafy9Ds7sNv7ZrgsM/WJNDMjhCyPD7sfhyetutjog9YhqrvrVDeciWI9qCYhPeB
uBgKYYZJSVOO8qW4978AJfwvt6+IKE2FftcurrNiudIT1DqqrN3j4/3i8R+j0vpl/MdMbzkgXiJb
AvsBgL5Egx54QyLTcKUMmPSSX9Zb+8GvqK79G81i5Jp1FrNezGnj7fCwqsKfwiCucJMiV0CGtMbE
6kIcT4KkWLKxAMmZTq8Mg+xHvxgE2T9vZFeL9Vx2VUu2xvv8+OWP8/geo+LGjbmSsXCXStGEVpet
chRgrIzE8gx0Eggvz30i047ZitNhM1ytjulu/xiejpX833CKBlopILPeMJKdxcB1ZmCggf8HIDBW
ZpqB4U34/2mQZnLdwY1cS3W4hvApPz8+xKc/vuwej5CFAkDAixhlodEjZHQRGT+QagBlJGueEmfW
ZJYubMZ00FYme9eRaSEOMp1aKn0D+PHG0Yq7fZA0JoCtRSrQtyVJoHNMES2CiDQpQIKyK81xuEYI
p9xcCKen9R7/ud75590nYNljwsrNWDjAWIbrB6QSU1ODkQSAlCfeqARSFMH1q5jafvCLqYD4sBVa
dwzFYukmqGi7Xj4/VX45pq0pJQ3oFDm6dGC7NIsODxeCIC/QcMVCNJhpJRMTUVy3yLf74S+kC+yf
NoIveuoEftnL7TrFJGtyiqup1BoDqJkUZuBa0gQKRRSONIaKmHN+TQrzdVtw/sa56GLoOGPEYN3x
Bp014viGcTwfsmibSlQEbLMBfO0t8VI6En1UJeW8d5q1aYq96yuGxfz6ioWbRnOXIPzzBolTjduI
0ZDCDQVq5zB2oOHGaA2c3FiOnnHBgLeKmMxrk+A+vL+8bR/eNzIv1nN9J5ZqGtg8HNK7BvyOx5Xx
0Y9DS4q2ABRgFJSwcAI20ipOVBBwSmnw/oXvfjiMLyHg+XvvWumHzpL0lPm1NY/fKAHfVI6qywEa
0yQgJBOMZgJIkZGiTY4uU5p5vEb/mnFbwTTvCIaHs8mQ2jzcHbW7xFzaMWCTJPMMxErcglgWTqjn
oNAiBViejTPJ2WtinUZtZFrJuXoXK7WYuCoQpa3LbXz8/OVpvd3W7690NcQVAuFFoqBkFVwZkgJ6
lXDPbAIuYXyJEnQYda8GEpO5LqeHtO+1K+u4jvCXUy1WoTQoA1UzdJSpUYcIex0piYGiSlDAgCgc
51g8B2uekIv+y/h8fNaKqmlHVMxQs/Vg3NdcisOZsJIfEJCX1NNoAhGcYfoicBvrazw+ieALS976
7qE4H3Eiiu2I4ujhjP5je78706B4MqMzTjqhwbhjjAZQCJhagyeAORpAJhbZBP+cDdLO7lad2Yfl
pOTs++Hh43luwmg4609EQoDABAuaMFY9aA5MP+glEh0mEztqeJJvTknORbqUEHN6o1n03TAHN+Ju
IQ8269vvD9t9KF+RwChCcYUUIbFYKSHiBOqRAtfJe+qVS2+TtXCYuxV40RX4GPb5NHoXybB9OJ4U
wU+w3WfOSikEWBEAMoAzJGD8PudQCqADziVvz8t8wIk86448d9PQ6E8JaY+qrlaHgZDICth8sLYp
F6wCAlgVhK8VptLSpCXAxjc/KD+lC0GK1K7pbn4PJaVsAh5jBe8j6D33IgsevBQacKJgSMtpQJ3A
Cc/BqFKEDiq8Dk0cxr+EKA7P3zWCru460t/pqS+54EFMm6fa0uqPo5eEGYFEAg+LCRHUiMyEhZps
FLGQAxciVMwA4FV6ITjUzPBykKK84v3JS83K5Wp+FqVi05X/vP78uFv/uln/3wlBj450V91VNQqA
FakpBaxPY5iaCHhKae8Al+SQ/Gs+33yaS36T6XvNosy6cxgthwuvm3jG+yYpCYNlUtesJJld5jZg
xRrceA2U0AIFBG4KVlYJQNolv/lFO0lzIQbyvrtWyzsf0Iop+fklxvM6bsE9BT7piDQAgASaP6dC
xG7iwHatKGAEX/PBYNi+tPCgFVOqjphKT0DusL0/OiuY2SNcDSgtCCmI4qDyROag91gNYIaivM/F
yXQNSh4HbSVSc+oll3aYIMmvm4royrBcj8FgrAfC/6z+rCXxPBSsBqIBMY1CfxRsLnEswN56+J+o
XrOVhxkuHJT902YJS0c7S1hPE1Vul8P9sLhfY1f79w+79T4X7HQaYjFSgY0hRhj074K+CiIwYrhJ
Cu6wy9L+pYj2OWnqCXOBN/VebTZgZTrfcGWmbBAIGDby+O8n+GebUw1MJHpnGeHBouLywGelSoTq
pIAcYgoSe1U/g2aGizTw7J12Ha6zjvUpI/Rruv1xFmgToRiwm5mkhGVoFhsXRFBVWWYRtSzGePN3
BdqO8jXLWt/NKQ3wNzZLEt3+5p8Wm92htJTf6IoMaraSZHD/gaXDp8bSCG5IANVAKAPSU4CvB3t9
lZPRL2V8Ni+9awXmnVUoevJygmFtfJxMjz6SIpwRaAcZIGDgFxRIeuCBUJqSKdT5EM0FH2c7ZCuP
Yj15xMRkH1wgnzaHmJkCFYy1f85ZRcECEJoz0B6jKRBfjtGdJJxWXr5UJfPKcM7B7/Hd++t+ke/e
t+tzurM+t5z6Q+6HHaZZnzJtDxgM06JFwoxWjjEeDpbD2RxJsi44j50PwtXKrHbkc9lg2+ZUQlH0
eDd7/yJMLNRqyoACFZNRTs4xtqaI9hwWL4xxsfxVmHgR9IHAurOKmcdp7CF6yoG9YaPwXgNWkFmi
zsHiDZ6JN9gTxiXBsihM1CLEi/t7Pm4rV8fhBL88ZoZ9GT6f5TLWALATMSNZTjWDmXoAnqxoUqyj
ijrFRJykpZ2NMZnbdObGABt7odjoxv9yCzZFV1CgRfV+KamzdYCvuM+GCIaAGAvuuNBaK5o4L/Tv
CzPCg3atq95a17M+QJ+AVz98RLfJ6PutP/H0OiuEAyrPgb/jBZPA1mCJxStWUtCgSF4F9/cTXNAO
48NW8E7qIPxyeRZw+rIBk/Y/T7tT/jg6IGJyDBtjscCw+Bx0H9AzQWq6Lks+MskuBZvaASfizN0/
iq3MQZzt7/eb3VoczYJCckEp19ifC0P7mMxZG0NZRbhUVgXnuIi2PbLNMI0AYphn6Ci5msaZVuvt
b7vHL9sztmNrbmD9icX5XIUcOYV7g1CigDpyCs2CgxvlQSq4TK+r9qkTHU4svnCp6Gf2YrMwxTp6
Vkl7t+KNhjqF8qQZ+44A3qaZZ0xUxfAIMHBQTtaQpKWgAThqUvKqcupss9LrjjRWd9rNbGsTovHW
3Jw8tACnQasnQxhltauDJi4hirFZO+eLMJS9hclFnX97EOGyWTi+0i7T9jbdDgezMEp3E045FQ4p
WnV70MCFgr0OMYNG0CaQ4HUk2kTuXAAlmFx7qNvBJnIsOnK4aa+sH57vd5vd4/Py06wQHNGAOvQn
OfzfWgfNNWACTqIWwCSxyYtz2AwgceCSvIBas68551emPt/q2WvNMgfeubyDolfClpUFYcv/b5iV
I6bAn6jhUsZsHEcsq8lnCVPERSSsuCidCUIY9+qeFJPZXo5pHt5s19fBqWqFBfZyur59HxR3MzbB
4fB5dI74Z86Yh89k0ENfCgGgxaXRJaWi3oqPHqe/vMppJxRYhego/tUp8WGvS1YP2+0pYMePYRBR
bNToIwC1hR/LYo85W0hyMZcohZf0KoA6G7cVq4frVsgMxqbpiz+xpxk9Iig8ODQ466NQgJuwEYjE
iC7VAgixswZzDriM7c1tRmnnN71twR/7wsZff7j98f754+bhcG0mgYJgOOBKgBO6eLCNLGAHPiYJ
KFGuGDZWifqNyhv7orTLsXP3irpji0l0J5Z9X8Z/+0YDwlfYPA5/1sCcTF6Dnk9ScgBKxoNdNQpz
OQASeuqNfCGd+zD2Jc/u/nEj99282Rj8csUn+nPS52ZvrjhwxQryjPUZc1tJKAyL/gV2c4qaGPQ7
SBpKKa9t9fhSh5tL3W1Q6rkHAc44fALXFMjhnyo8jydImR2Q7kwCxTz6DNQK3dokepex5BSQ6vWN
hxEv1L3dNlgahOlKOA3bnnwtuNOouc9+w6oKB74SAh4Rn2udC2ZU6GQJ1jgkzkws6q+15Dk9b1ew
5J0VrKbZeP+xflqsnx635+6zwqj1JQfCQIkQDOECAPCw16nErBTobHd9mw+D9gU+PG3ElfOiV/il
OWa8ffv9qM4nqkVlyoOwYEmKqKHnTKwB7Qsap9CETUwjfasY5JkArejD0BF9OBbrpc3w8eFxi3+H
Zb3dYhvhtggc7OlIZgItgLAihf0WkgP7itgWwtXaI5rCNH/v+ritiPOOcA7/rttBhS+2n08GpPYu
4dFHSj1wK6E4VuZ60BO1Vk2bJJN2zEyg39kY7dwr3pub1xgivNwg1w+7zf2JWJnapQSQv9GOUIfp
lRRT6HwJQGKMzo5mZ9REkAsDToQSPaGOpv7nYbXBSv9JJxqpmbQ8YloWRsQCnLlAuSDKmailTzJQ
+kadaFoJJsLrjvB3R0T/7z/mb2ctdGhOMgOZNwDnBaaRgBYSiL10AsoChCq8WQudw+yt0PPmfU6D
9T/sOP41vPuvN+4IrGqLGhZ5xMT0wrC5LOAEYPjZEp1plCzJ4p1qP347zLt2MtuT4LhtvwO8HB7g
0By/uqkkCLgyDxEvpgAShE0QQ/ESzI/CbOvE44VCxel4rTCdUg+t9bTO6Yf1bljtu4/sE0zgvxu7
rVCZAItnTxjDikXHC3GGcpKzyXAOreVZv12XhYMkFzjR/um7djmus0Zz3PA/Tyk8CnWO5PBZEYxE
j6A1eux7DsQawGpOKiXp+EQF/tnL34EpOkfN6GWFF/DyZvn48PXkcpQVowYpAwNIBKgZ9J01hni4
MmC1o+aCe7gnop27GeVdO9WqN/96Grx9et7u8tfh/rkiJP+xtoMf4+9c1c6b0ltsGCU9umUNw15k
WOGtsZGG4SLzV2G13kQX4rudN9ulrecpFdpqfYXd3vzX7Skgj138ZO3DTGsQWHkJhhoIgfQcPc+I
orF0Hbs/JB1NBoLwdmf4JMkFJ8ptLxgP65s7VvWCsUmv6e/eH4syapNpXGbN8OG6oPcKaHtM1W1c
4JQVSqwsIiluhE/6LdxERwEupRp0qjZgHZ0vuuB0Qnq3+6KKA8k09mZfewNQHEgmqCEdjB97VISs
MftPWoXe0GDMNdrbjNyKxllPNDU7bJj98+PwsL4fUz5qnNGh21AHCXeoJKJoAY1iogHwoDRhmkdm
sjCqxoz+8s6fi3AtRWl8Y7LIjjFfaHXKu/swBb0+U8FrWjAmTYgU4Dyhyz6DljKaaqapeivQ+6H3
XXRX5GESaNruht2xptXVIFlN1FTWZmo5SU4ChgITBuDdYYJusoCoJOVNpvv8vJyGPZfKyE76qlHL
9UGq8L2/nTVMTdkJjyU7qmAPPO6xVlJHopJJRgDH1+7vKms9ydcsS9M5uwCpxGSzjwE958xhp3VJ
6HSiRAZsvxEcIBdHI17P7BJNZmwEdHGnlz1xnOyIszpm/AzPZwFzq+omF6mi0ADbAhxOUPIWs9oD
g38aqbJRJvpJbOQ0Sjt5p0zAuNU13+o+s3rf8YEac8NM7UJT/19tE84zQKdEUs6wSUkCz0XQAVgA
MBRlXrP4dhboJM21tOxpShCsca4JzcDseWXkz+uPm+3u6aypKS7PG+Ox8w3xXuFfv8C/chA0IGhM
F4hJSZ3i/2NlZCv0u3Z57p+9XVlv2zgQftev0EuBBFgZvI8CedBBBVnHTZG63e5T4FhKYjS2g9hB
23+/M5TtSLIUt7vGCkFgSzQ5pIacgzMfu/rcdsE8lI9PHhRjUEX6+fVRK66EijKCEgkXlzjNRJTL
NIFZLZzjx5G30HQfssHjU6szRVdn2iCRT8+zumo2+Ijft4EeICjQ+egIyWOw5LIYs3ZdyiIjNY2k
AlXJpAJe7FGSoz82SWkg4eGjZvdkx6ow0aS1SDXO72uCqFmXOaOZi1hsHWgRGvjUUdC/fay8FTF5
O7GkXnWDtFvSsWbcEuNTbGtrXQOefmuVWBC4fqcZZkuaKA+UKBCMAT7lUoOYoDGGjlIu38zG6ai9
QWTB930kcHOynd+jyXr6UEt48C5+RpnFQHFBNMxsAlxudC5h2DQaDUpL3rKWGrW02r/tav9u5327
yFsOBe0kzfKUR1oQH/yP0TgxjahLQaLH8L6kPJJDYdd4k2TRIe4LQXo9tINK/qKjEx21m2/cO2lz
k5E0BZsPd01AUkoD79epiKRMCkYN08n/gptePWv203Ys/cXtzru4VZ9ph2ouiIO1giHeAFiRHEzc
yOSJjhzRhOLJTnHS8p21amtQctc1ye/kTlN9nCzuZ8XrNjKKH4shMwrz1jTGkccJ2AXALEABqK7e
8dTeQa7X0mpedTXfXkI3ANrP5XR5v5g1dyeqg27E5qAbv+yYJEm4Q9hWf9RaTiNLQFkywsUk44nJ
1FF28CtA7OsuovZxs2vFWiNw1zECag/5eVUMNqJ6NFnALJvXHQvVVmwGHC0saGQJpmlnBj4RCTq4
ssTEBqyJnB9IkmzV3xcL2CpW748hd/tv1Pj8jJY6N11OMNHTeOgKlIHo97VgS/uTpjhi/scEPmXW
kTSj1FLjDuhsUGWfoQaPWmTuKyKGsrZwW2y29HbSrcqYNAl1NEdJhufk8CRG7EDqQLClRnCuY9BU
3gSUr1fboIubfR+24bbYzsditnryK/7Or293yU/CiZgiTkDKwQbDOHejEepeME0yEHaZ67bZm3U2
ybH74TQGjLKWl6Q6lO/HGmPr9IBV4XX4wcM2kYwYsGRBrlmkDaSZwszXlMNiQZjO+WHkGqy8f9cf
nwZNCkUX2VOPtorSJ/+KMWtl0bbClUxSwUFPSXEHgBM8/AA6ECmSJ7h6JIQfaVe7RUKT/GJfDBrJ
i71Y+cnz9GFYAR1twC03YRkJHhiCVnjMNGheCpZoy5312CkKZpQlQh7PANoR0rdgbB4Hzf50sJYU
O/SH+WT6sHxNTEWNjWYMBGeWo9ceEQsMGPbARJEQOYiiROYVMt4+h9fqatIgOvhEIuAOO6jBV9bn
Bv3O++5NhnA1DvmmcuEwYHKZRlKzNLFaOHPAMfVvzLIdLW+o9W3TE7rIOvpdFu3UbAcrtJJVnISq
7P4kiRknObCSwFT8FJMawRyNiGLAXJbB3SPCQMeuZ3/cNftTdvCSErt9qPFF3tZ18ySVhpAkgvUH
/fCIkSSEi3TC4c+RhDN3JF33tfUG0cpOO4ie7kFqTeuHJTDpNxIqN4fA2BSc4HmSoeMQ/hmc9MRk
IAuoUu7XDmqqN9GD6jTtPCgB6d23gY3ey2nDbaSiXPsA99XUz5wKSIXLymeX2hyBXRAyEj02DINZ
FEkjJ3JqBE1jmf9Sdg/C62fbhvqnxV6xoEl/x/TQYpeF/HFx3+ImKmkSW5ZGymlUCJSNDGEiQnXY
sdTYLONH4qZd4w2Sp3I/1MKUpNgm18+mLzjsNbRYMCd8wLXKidVZrGFCI+kInmt5xiLNEC4kzUmW
svYmWaOuIHA/NrGOo2Uxu9uGKX16mc+hl3i8cjp5fFyFc2CB8PZnuFw/lM/hU3U0LjD1evJ8X/pA
3PXDbLV9UB3LvJ6svt3cLZ9vnmbF+5BV96qjwqfwf12+D0n95qpce2fy5n6z4UPVk/9WPXyp9QpG
wLeHsme2KDu7QyyTv9dm8GUUon+tPr7XUOpq8fgzxOA4fLK8C3e6xvtwvFxPHs8YBeNoFD6Xq1kB
OvsZFXKgRifKvjsNV98xz624Wb6sb4C2l4XP+oAWizMFGvrohNN3p8Ffz7M15vhBHdj+rmbgo/Pw
Ozxcl4szQ4kZnkDx15ZgoWPVrVo7Z2R4QuBWvS2s6MQCQUEYXLvzi6sP4fjvjy7sub5cXI8/x5fB
2evVV3TzOMg2mi6sTLiHX22IrlqFhRmQUfDnp/DPi3F4X2GnlwX8BN7y/mWGPUVPYABgxSyL06og
HZDz7Y+2j0J4m5OiQIyRECjDVM/agJwGQ+8AC2O8E14tpmVP/4CIUXx5eZWGb16Ypwtd2xQ9mRTz
2eK0tzRnUGs5x7So8eQehA7tLUrVMPg0jtNheP45vs76KZAKCfi0nky/hQcu4Fc9Ana/8dTGY/dG
WS7IMNicFj3y49dXUkgBg3Vzk8XjODw0WjBBoOjFKD53B8pK5mu9vPgwdBnwQv9l9YBjrWP3dXxg
ACiIeSz6+cNFepW9TQJossNg7qdXiPhzb3RLYK0rb3uE8+r99l9Q62/Mr/HVOL4MD77ZgTqviv4R
Age+rBrzoZoHVadgsMwIVoPgH1BLAwQUAAIACADvTBFHY6qsbIIAAACoAAAAQAAcAGh0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRV
VAkAA0IO0lVCDtJVdXgLAAEE9QEAAAQUAAAALY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+
fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDv
jPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQUAAIACADvTBFH
Y6qsbIIAAACoAAAAUgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAkAA0IO0lVCDtJVdXgL
AAEE9QEAAAQUAAAALY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kE
VdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB
+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQKAAAAAADrTBFHAAAAAAAAAAAAAAAAIQAc
AGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L1VUCQADOQ7SVdwO0lV1eAsAAQT1AQAA
BBQAAABQSwMEFAACAAgAQE0RRxE1TK2rMQAAIMMAAEEAHABodHRwL3Rlc3RzL3NlY3VyaXR5L21p
eGVkQ29udGVudC9ibG9iLXVybC1pbi1pZnJhbWUtY3Jhc2gtbG9nLnR4dFVUCQAD2A7SVTkO0lV1
eAsAAQT1AQAABBQAAADkXOtv20iS/7z8K/jhMCtNQrlfZHcLuSz4zGbj2EZkZ4IbDAQ+WjYRSdRQ
khP/91dNSrJI0Y41l1ssIAOxFXaz6lfV9Ww1eVUWqVouh+b2Jy1mg3ixmKrBbyr5kK8GF2r1rSi/
5vPbQaDu1bRYzNR8Zf6Oqc3IH8ZVvLp7vBt+zj4X0/VMLc8+X57ffAzPfj3bEJqU8UxpUmefVbnM
i/nyzD37cuWPVHmfA4izF7IefF+kZ34xX8Hn5dnHOL0cvfRW430Gv/NJrsrhUeIaG8iPkjqIvDJ7
8HuAB/hV3/CLTJnXDwu1nfJFOJbDzN5FvMrvVR8UVWq9Xe0U/o9//AO0+IfxSS0XoIw8mW7uPXYJ
bpaqNN8Hj9hshA0jiFfq7Dqf7QARhG0LCQtzE8khFUPKBjZmpoU4QsblyGzKCIo14eIXE6OBHNhm
D9OIsj7AXRTlam8yxoY7L+YPs2K9NG9uKiCI8lDanFqhEwUWigS1pOe7lhd5UjIeuqEdGIbhl/Hy
TmXm9V2p4gzuY8g0QWi/KAG2u3yYp1E+VaMVDM8MI/yeqsUKuG4VHX7xx54bjF3fD0cjszd6/24U
vvvc35up1wW0/SH8dDF+f/HZPX8P04Pgk54fr0z0HTV+CDKMzx/NT+pWG6h5oeIS5hA0NCzrrWlo
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
L2h5YmkvVVQJAAPFDtJV3A7SVXV4CwABBPUBAAAEFAAAAFBLAwQKAAIAAAAFTRFHHk7bJUYAAABG
AAAARgAcAGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZnJhZ21lbnRlZC1iaW5hcnkt
ZnJhbWVzLWNyYXNoLWxvZy50eHRVVAkAA2oO0lVqDtJVdXgLAAEE9QEAAAQUAAAATm8gY3Jhc2gg
bG9nIGZvdW5kIGZvciBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuRGV2ZWxvcG1lbnQ6MTM1
NTguClBLAwQUAAIACABATRFHTrrmXoIuAAAoqwAAOgAcAGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5YmkvcmVjZWl2ZS1ibG9iLWNyYXNoLWxvZy50eHRVVAkAA9gO0lWUDtJVdXgLAAEE9QEA
AAQUAAAA5FxZb9vIln6++hV8GPSVOl1y7YuQSYNrbm5nMaIk3UCjIZAUaRPR1pScxP9+TpGSTFJ0
ImcygwtYQGyGVTz1nVNnZ8mX5TrNttuJc/ik6+U43mwW2fj3LPmt2I1fZ7vP6/JjsboaB9mnbLHe
LLPVzvmTSEzFX4PLeHd99zR8Lj6sFzfLbHvx4c3L96/Ci58v9oTyMl5mltTFh6zcFuvV9sK9+OPS
n2blpwJAXJy59PjLJr3w16sdXG8vXsXpm+m5jw5ezOFnkRdZOXkQu4M95DtOgfsnzhB+jsmYPBkN
/PU8c97dbrLDlD+0RJI7w9fxrviUjUBQpZXb5VHgv/76K0jxr8HbbLsBYRTJYv/sQ7fg/TYrnRfB
HTaByWAQxLvs4l2xPAKimAiENSLKwWbC8YSIseTMQVhhPHgzddo8gmAduPmHQ/DYjIUzJCxifARw
N+ty15hMyMBdrVe3y/XN1nn/vgKCmQqNUAyFMgoQjjRDxvNd5EWeMVyFbiiCwWDgl/H2Ops7767L
LJ7Dc1Q6DjDtr0uA7W5vV2lULLLpDoaXg0H4Jc02O1j1IOjwD3/mucHM9f1wOnWG0xfPp+HzD6PG
TLsvIO3fwrevZy9ef3BfvoDpQfDWzo93Dv6CWx+KB4MPr5y32ZVVUOd1Fpcwh+LJAKFnzsAKZjZ7
F/7xzul+9gQIjuVcwgVq3tBw4fxpp+nf/nJK9OWi/PzFmb76b//N7//hJjOoN8fBk4kTFNtNvEuv
nb9vshvYgDsay7hYoV01c4CBzUWRbG+3u2w529R3x/NbuLeX1T9qsas8zw1LRWaMcg4TZ8ubXfZl
ll5n6cdZsSp2zhOHDMiDaUpKujQX6/QjUKN6QFtmZtUtWt+s5nGlMifkSE4FyTHsvB+9vVm9XK83
UbGav7ImD+Q4HrAH0uNqHkvnSA1+TTdZCo4ptdxiOuAtgl1iHYI6STkjMnXQn6+ne5LD49XIKW9W
FuskyXJAZh3D5C8LXLCBeNg6c5okLP7KOpau4gPZInunsf1k00SplObODNR0ZjUJiHCiBqredLjb
2mmnl4qhMqYJ7EiDCDNmoM/3qP84eoPKaJU02NlTItIZ3rHxCm627Gu5nBg8GpgaMICd34O4yXaW
aSzyubPdxWWt5QdbI1+1NbvCfhAt41V8lZUdm/uYlats0YbQFJWKZSwldT4CC6sdRCmrdAcbO9Du
4aBJQzMtubWxw/zZ8qoEg/20/lhZBTOVlT2MIGGyQ7A2YCAo6FE8dPJwfk0mYzBgu+t/V/PLbHdT
rlqcn+9d0hzrO+/y+e8jSsbwge3zqeV5YmotaJIi7Mgwe2wM88fGsJg0Lfz19P3blxCvV1lqnfHL
dTz/HhsXMYnBgVlL2l7NdmW86RPGGYT4nOgjIaAh+YMjKNc5Ec0IenSl6fXluvZ/mjw8kGrBTJMs
/LKkiCSdGHpOUM6UuC8oM2weGixTjvNcOU/+7GznsN7PkTMrs+36pkwze8MuWYVlxnUnfp6z0jxP
QAyvp7U+zaoIOJtVSkb0IZKer7CJNuZO/ZP1/LYipatw+jBKisZ3lI6xjqlDtHyIFaXGOSF0tCHZ
siE/mkK6l+3Gm7L4BCnPdzgUE1uHss0WsG93lvMQlTI8xqxSzxrMqzpcAzEt1cPdyL27wn7crvAf
vCvqsbly/T0Mx6xWteXnuNjNtsXVKl70sZt+I4lSUot5ip1VvFpvF1lmPT7FRzbTJ0/GpD81bbEZ
K8jzNbA5n0xmM0hHd9fFdp+LTSYV4RnUEsO7Cel1uV6tJ5P5TVlZw9PFenXl2B+/NMhUY0/J4hfg
7PBZPHOegVGttrufRrZ6EJ0g8O/4UzxNy2Kzs/bWAltl6llKqVRzJ1nGC6jwJhMrwverXbGI4sU2
a2C8WRWQTFdl4NPj7OkOMKWvbIH47Kcm1u/hyPLyi5Os14uKF8KJM2wsML6eSDHqBKZz+GMmv+Pv
X1m8gU1IY0jer/7/+bOMceUMP4BXXJfAkqCjTmg8hyWS8i5LoATpTWnbZNMDc3YxqZ3hbF/CJ/E2
m4DHG3VC5BkrspQ0lKRqLr2Ltw1JWRC/OJ/WxdwZdpD9PBqOnk0mgKy8vVwXq10FzDBneKQDgoBQ
O6pC7cNwJeBQ/ne49m4rvINnZ/9cYexApABR/7C4Y35c3CH4x8Yd89jiDsGPjmPy6Dh+dK0P8uh6
H+TRNT+IeHQcy0fH8aOrA4l+dBw/upyLPrqciz66nIs+upyLPrqciz66nIs+upyLSmd/3mgyuf+Q
Ee4eF7jr2zin7ZscmzjLska/bDbLb1bVa57D9dPDWpM0XizerOxiNaRG6+7w0NO6zTN69tNPo8nk
v2ZmMllvsjLercvhaDiq+6STyT8X8TKZx/8cjpq9uqo1ZKf+3y757NCMsq2n1tQnjuHO8EA4XkwI
Z2LUeWvy7ZYYUblgzu/vItt3vq+xRZRpL8U0H3VeS56xlGYir5f6vMvf3b+acIb1aLG6uqxRbcfp
ZjMh0oy+4/3LfR01/uM6auIHv8kBA0r3B/Y+F7tre8Jxf3LPsU3mzBlKjpJiN5oMHKeMv0zuTtcR
wuYqyyhYV5n0DWgYSJsDWGI2NxrbJ+atgeqxBBO7yLxo0cKUiTQFdSu3xeTkbB+2A8nmdHVpF9lu
+vDaE3+l7qfllOYwoPKUxrHGMkktLYJbA1pizOfVALkbyHOVUMEzZhcpCT1dnnE7wHoGKlq8B1Y1
IHqEUi1StHg8ei+nzBcdWvAUlmBKJZ30nZF0nMHL9VUB3sXxL9/XJ0bZICzLdVmduNyfIT0+yQfv
7OmD1zfL5HD0lvDBYOAVq7i8dV4s46tsOxkcjlJ+OZ6idJDTvqnsK/Wzj8gOq2O6yDme03WeYhbI
yHghUowZxELNkZYeRcaLjKAmCKIgfPaffSSzLZF5n5jmec6dJ2Dp+0jwLtvuptfFcm/+QwySYAHn
mDGGotBwxFTkIoNdgQQ2ATaEmNCL+iRxH9U2LlDSU1wZA7V3nkyz9AX4pC4gXwehTyIPuZ5wEXND
jIwfUCQ9N5BS+x4L/IduzV6E+2PXVrxdqZ+AafIx1/qUj3kSkzzXp2rYp2/G8wz1Qw9pjQPEfCWQ
0UIjLaTyXGWICr2zmKpvNMGBiNUJuIwL3GsjL7OrOL3tgxhpJgM/wEhJhhHzsI808RQykRIR0aGm
Rt0PsabbL/3mjBZyidNT5KlWVm3vD+A92CGOcuwGDHmBL0G8IkIupwLJMOB+JCn8oH3Y25T70bfn
NPHnmJ1InkDMyvJc9OWPfXpBiIgYsXpBQejMB5XQ0iBPBdKTUgaasnuEfj/i/eCghmRjjD3o2YB6
vGliTUBJ7FFVZ0iZGXPApNyAM894SPiha3U1BF1lErlYGmwi47tCAqabbWmdwIV9uLGUTsjpUnAz
0R19jG/mxbo6PePaK2fIxyAWeKz6DTi8kFjHjFHkcQEK6VPk+ZFAmBEJuih4FAjAMa0ym4uXRVJC
FLmIDhLZXhxp94vpONxGn5hT9BR3Iw5kvKt0AUIbs7EwML2+sFsacRZxRZDPfIaYoAFsqQlQ6HOi
A/BswqNfhf0GSPsv+zHXYy3AiYpPASdaWx/bAXwFgM1YVlKuflv/L8DPh76HAlBdxDjooseZAksK
hQyp8hT3vgn3+VfgPu/AnffAzeZxR76NE1VDObYCJlgAYgmQKWfcUKwRg/QQsUgEyAjfRx5TRhIZ
eWGkvwr5jngfbL8x3oSe0oSdQLc3K+hgCh+z2+VVeYhlVFvpuq4ONAD0IytdD1yUK1yMQqpD4jLq
goU3bKnO0i86tDogTA+IFHe2GyJeNLWiw5VF2cCqQyp9bAzyQ1BHpolBhrgQWHnoGmp8CeXCV8VW
0bw3wEbTNs6UnOJklEOF3sRZrwbBOC+u9kdQnCE4R1YpaX1h5ciMS12DUeCCW2fMjcCoQoFo5DHt
KqGjMPwq9p51+jnpmdjii+XJKV/c8qUOh6vipDgoATcVfEpcjRVsvlSMgpEJAR5eRUhxFoJHJTKI
cEMNOmQG7aXE6foyN3nasp9PVTbtDFWlAKpSgIByEniQ4Lk+h6SXhBRpw8Azua7PiDbYN/irQnTT
NFvYSv+ewNOYWq/fP60ea3GVKHnKVaLSjldofIcEPK+dX0nXDyWjgYIUVihwCn4Eih1w5AsV4IiG
2It6lOOyPhHawHxH/VsJfht73KPpKaUdi7ThZnq7TNYLqJhqPWdjXKs5J3AlrI1SomAbfKhLIO9l
BJycCXyBfEq4bzxFqaHnsHKy2P0hsDVt0Obh1N9BnQGqnlWq/tK9dP3fDqpOsOEVDypUrvF0gIhk
4KMN4cizWbyUzJNGSwH/fpiaZSkQ6J/WQThoc3FqxXNDY2VUd8+eQ816XaRb65ZASSutE8aMmaiy
JR8qEl9KjrAtUiBbCpDLMIFKkkFizwiYq//NLOWwxv27dJgxaAPu48KojuYdiY5fvKnqE7rXO4PV
GHQXnKwtiYWKAs9lSMgAcmgDoVX7GDJTiLWEexGBguWrjFTE+zmohtrQY9UDPSEdg696tfWXTbNy
erOpvnU6tF9GtbvAbL7lUQioJvQhP6UEMQpXWkYaYeFxzVSIw+As6+9b6p796JnZYi4hpzF6nliP
kDSbcav1rshvj/ZDyZjiKlyA7nCPRyGKhAuROsIGsoYIIy7dKGJCEVZVBadZQw/hNjCR9QCTXYXZ
brIsvR5vb1e762xbNNTSZulqn6WrOjJrFnkC/G4IARnEzwzS1NMI6hoTaS08hb+e7rqw5N77HNon
3zT7aQVweoqvFcnbk9qCkPpUEKmQlSBAav++pHd+jfOqGhFRpKRAIvSBT+1BCLeZpxdqLCPhuwH5
etJZBb0Xb/qxvt1/B2R70Vy8BTmVPd44lfygVGW2XH/K8gL2b4+csSq/h3LEEKjjqd2fwKPIpRFH
yvUU87hROIx6dalLrwPmNAuZz6npmG8Spx9vNk31IWNwm1VmV7tPYkTgaqkRVy4kdiqU4HVA1Q2U
eoRoLqG0P8d6vc5KTeHWY4M21LgPf9wxhB7dBAvQVv2r7D4E24TUDgI1BztVGrJSJqBc9n0e2Yoe
StUfo/s9Ezv89ESCOcs6+wFkbN8rLlZZWaUf+wwK6hJOMZguZxiUxIDrgXIbCtfIKGvcguuzfGiT
/r2MHGe0OMjiHo3KrUG2OHgZ36zAqI+bIRQdU7sh9YXtY/mK+libql8BpYKC9ENjF4WYEzci3ESU
fzMgn+2J2nj6p7fntLjOFT7hOjvtlfj1N7Zj641UpX1kbI07VFox7gJzLKjaRx5wDfmWpNjzfNej
oZHf5NUSvj/xsKODFrrs1HQySkzHdIIsubmqc0ubOmFZlfC2fA+JF4QBZLaCMhfSdXBGHg1cSHSF
rwiNsOurc5StuUI//uaMQRtu0sODSDs8XGZlvi6X8SrN3FW8uIUoYj0Yr7ZA2YrK80H+JoQkiYP8
I8hyPRECP9LVYQRpoArP8l49C/Vz1DOxzZjIexiT9BDX7I5+eOUvCvvyYR8mhK4Ceej5UDqByfja
2B4qFIZaaPtyxGDKQhUKGX13I6ieXtTx7RREm4eeQJdR3d2coKhf+pa3d94AMijbisPWD7iQHrpY
aCg+bFUowhC5LmhdgD0cgpsmVAU/zg+corlHJU/mtXnX8x7ejT7s38cvxz8qMKSc0jEhdRxlvlTa
UwJFCspFCPOQuAdegLiGJNgNBAfj6m80HSm2gEh26o7hJgBJm5vw4s30psxjW48bUtcUpNKmAOMw
rN4huDY+QsmHDPYJ8iGgUK5lqCP3G9XEnvJ9FcV+uIU6U6dVBdxMD82Zm9XnYnUUIFRw1okqHfg+
A0WhEQBkmELwY0YgTASUEMr3BFe9omtS68Do2cVM4wOMxp+GOHbdOXh2FdgmhoF0n3nahTKGhUhR
N2SYQxFD+nP+O2ItDDk9zXCznHffCj3PVlnd5YoX0926rJpG+9aKxJV8JFfceGA5UF9Bhev6GrIz
bpBigZTUwwbgnePkepbq39ueiW3W+GnDJce826I/SbhtxrPPeeqcnnm+H4F8EeSaEYRPyqF2VwQF
EIM49TUkDPT7c/r94KCNUvdA16zj25L1EpwZr7GaugUaQt7iCkmRDJgPyaaNOvYtTeRCictdSOOV
f1amDKv0p8nrZRur5qdYiUwOWvxluYCU66jHNrS7JHCDgBCkTWi9EIRCrTFFWBEtKRVGqqjd52wS
aa1Oe5pP+dyY04y2fuVavyOgUoxpVUIHPmEeVRCZiW12Q25r4P8QzYJQSiKUF4TfSs3vaWf8D2/X
0t3IzWP3/StmmQ19+H4s+Ux6JplJ4nRmOaf0cLcnbrtjyT1Jfv0ALL1YRck6X3yyiWJVNQtgkcC9
AAjF3bVG3NXKdcTFDPwuLDwsPx2ImeYVc0eWtQq4w8HsJI+pARMBCwmmXPQeHFV3w58MdSICOOk5
qEHPrfcixJ/L7cv99kgPcQsUWD5GFU+ikoj8LSBI7wxhlmkZkzPWpfaNtcO0Eggzl0Cs5R0fJXha
/O/yxh9whxpdhU+mJGcl4YaBCLTgLtSM6ACUhLkMECu0IpyO8659luoJcKD1gMOb9Izm2nKMxuPy
RCgKe8pTJMc6OMaVlsKeMf3LzuP1Us8fbxF9idM1+9PL8Lz9a0wJsxskL2B6qqkNSVtfQJQkkLvA
CyAue06C9FKAOE6/4jWPQ/f3+PH6u1ZG0RF8Fn7/sLj/HV79nyi2QKBlMQAXTWEBYDCJ2cJCFhKD
IhJsALy/5JRnxYVrDNN+9L7k+6ut3HNHC96T6lno/eHp+fbPxyWGr9wuJeZqTgQgE7xqDLP7xMZc
ohUFnJsHmKitsCa9ffjqIM852rW73Og6qOVc18GyDlX89X61ftqvLcbMDdobqY0UArwG18gVcc87
B6gHUKQVHBBPYPxVPFxHPk8W6+VG6oXoGKXFQCdpwO/W959XwwO+H1qT6fhuCiwlQBhYgmJBYssF
rCnA8iloDqDDpGKvIoq7wfti7y6eCs3o3Xw7MMZmrPzTyyOWZe2efMBNSo31C1aqFI0niWEdBabb
wP9F+BN4YtSAz4S+KjDdPubM7Lc3NeqwJe2os2R7x7CLGi+wZcDm4KPQHpVglY6wMQAkecwJgD/N
gDlYVjKA6TTF8kuB6NMhG5EWc2zh2FIcsqhff7jfHEy15IDbcAlT6SI1As01Zv9dAKcuRSFGxwAw
gxkpyz+UWToRsFFsvZq7QPzy7m41L355ebzfbm5qDcoH7HGIiW86pr1x/WuwoIyBukp5YORKA0IQ
mJvJ2nFvUg7mFXX3I5+Jxe0vTzSYQVTH6WLVSWfOizQsrn2MjBjuwJklT1gBsUU2nHgmgWPpwlkO
RfEQXrU2l+s0/OSeUy04k8NcCzaL8FSMHocv2xd0xqNr2DmGTINWoIAAEAKTD6vehuBJcLBvk/Qp
lFfCiMPz4pzgUwqxk+ACj9jd0eqoVh0dh2MpwsuXzRGgC8PHSIHOACYUJVIECXRORfADgHkYuDsV
SoKFJSe1CCfjNAJwOodbnLupS7p//K1JAYzZO05xnVivaLAOVnbCWh7LNYE1pAAKy5J9obZI8ybT
fCpDM7uPv7U6wWKf6STQzY4Qsjw9bn8cnjfrQ6EPeIZq761Q3nIliPZgmIT3gbgYCmGGSUlTjvK1
vPe/ACX8L7dXZJSmQr9rletoLFd6glpHk7V9enpYPP0xGq1fxj9mdssB8RLZEpgPAPQlGozAGxKZ
hi1lwKWX/Lrd2g1+wXTt7miUkWvWUWa9mNPG2+FxVYU/pkFc4SZFroAMaY2lx4U4ngRJsWRjAZIz
na5Mg+xGP5sE2V1vZFeL9Vx2VQ81jfv56cufp/k9RsWNG2slY+EulaIJrSFb5SjAWBmJ5RnoJBBe
nvtEph2zFafDZrhaHcrd/hieD22kvuEUHbRSQGa9YSQ7i4nrzMBBA/8PQGCszDQDw5vw/+MgzcN1
BzdyLdV+G8Kr/Pz0GJ///LJ9OkAWCgABN2KUhUaPkNFFZPxAqgGUkax5SpxZk1k6MxnTQVuZ7F1H
poXYy3RsUfsN4McbRyvu9kHSmAC2FqnA3pYkgc4xRbQIItKkAAnKrjSH4RohnHJzIZyWkwX+n+ut
f9l+ApY9FqzcjKX1jGXYfkAqsTQ1GEkASHnijUogRRFcX8XUdoOfLQXEi63QuuMoFks3QUWb9fLl
ufLLsWxNKWnApsgxpAPTpVl0uLgQBHmBjisWosFNK5mYiOKyR77dDX+mXGB3tRF80TMn8GWvtuuY
k6zFKa6WUmtMoGZSmIFtSRMYFFE40hgqYs75mhLmy77g9I5T0cXQCcaIwbrDDjrpAvcN47g+ZNE2
lagI+GYD+Npb4qV0JPqoSsp5FzRryxR721cMi/n2FQs3zeYuQfiXeyRONW8jRkcKOxSoncPcgYYd
ozVwcmM5RsYFA94qYjLXFsF9eH9+2j68b2RerOf2TizVNLG5X6R3DfgdlyvjYxyHlhRtASjAKBhh
4QRMpFWcqCBgldLg/Svvfb8YX0PA8/vetdIPHZX0lPm1pwK/UQLeqRxNlwM0pklASCYYzQSQIiNF
mxxdpjTzeIn+NeO2gmneEQwXZ1Mhdf94d7DuEmtpx4RNkswzECtxC2JZWKGeg0GLFGB5Ns4kZy+J
dRy1kWkl5+ZdrNRiEqpAlLYut/Hp85fn9WZT37/S1RFXCIQbiYKRVbBlSAoYVcI5swm4hPElSrBh
1F0NJCbPOl8e0t7XatYJHeGXUytWoTQYA1UrdJSpWYcIcx0piYGiSVDAgCgs51g8B2+ekIv+y/h8
vNaKqmlHVKxQs3VhPNRaiv2asJLvEZCX1NNoAhGcYfkicBvraz4+ieALS9767qI4HXEiiu2I4uh+
jf6xedieWFBcmdEZJ53Q4NwxRwMoBFytwRXAHA0gE4tsgn9OBmmf7ladpw/LyZGz74fHj6e1CaPj
rJ+IhACBCRY0YaxG0By4frBLJDosJnbU8CTfnJKcinSuIOZ4R6P03TAHN+JuIfc+69vv99O9P74i
gVGE4gopQuJhpYSIE6hHClwn76lXLr1N1cL+2a3Ai67Ah7TPpzG6SIbN42GlCH6E7T5zVkohwIoA
kAGcIQHz9zmHUgAdcC55u17mA07kWXfkuZumRn9KSHtUDbU6TIREVsDng7dNueApIIBVQfh6BlNa
mrQE2PjmC+WndCZJkVqd7ub7UFLKJuAxVvA+gt7TKLLgwUuhAScKhrScBrQJnPAcjCpF6KDCdWhi
P/45RLG//q4RdHXXkf5OT2PJBRdiun+u/VT/PERJmBFIJHCxmBDBjMhMWKjFRhEPcqAiQsUMAF6l
V5JDzRNeT1KUK+6f3NRoLlfztSgVm2r+8/rz03b96/36/44IegykuxquqlkAPJGaUsDzaQxLEwFP
Ke0d4JIckr/m9c0fcy5uMr2vUcqsO4vRctjwuslnvG+KkjBZJnWtSpLZZW4DnliDHa+BElqggMBN
wcsqAUi75DffaEdpzuRA3nd1tbzzAq2Ykp9fYkQl90EUwT0FPumINACABLo/p0LEX30CtmtFASd4
zQuDYfvSwoVWTKk6Yio9AbnD5uEQrGBmh3A1oLQgpCCKg8kTmYPdYzWBGYryPhcn0yUoeRi0lUjN
qZdc2mGCJL/eV0RXhuV6TAbjeSD8Z/UT0y+Sh4KngWhATKMwHgWTSxwLMLce/hPVNVO5f8KZhbK7
2qiwdLSjwnpaqHK7HB6GxcMaf33s/eN2vasFO66GWIxU4GOIEQbju2CvggiMGG6Sgj3ssrR/K6N9
Spp6wpzhTb1bmwlYmc47XJkpGwQChq0u/vsZ/mxrqoGJRO8sIzxYNFwe+KxUiVCdFJBDLEFi17y8
9glnaeDJPa0erqPH+lgR+jXd/jhLtIlQDPjNTFLCY2gWGxdEMFVZZhG1LMZ4808l2g7yNWqt7+aU
BvgbmxWJbn7zz4v77f5oKb/RFRnUaiXJYP8DS4dXjUcjuCEBTAOhDEhPAb4e7GUtJ6Ofq/hsbnrX
Csw7Wih6jHKCY21inEyPMZIinBHoBxkgYOAXFEh64IFQmpIp1PkQzZkYZztkK49iPXnExGXvQyCf
7vc5MwUmGM/+OWcVBQ9AaM5Ae4ymQHw5ZneScFp5+dopmSvTOfu4x3fvL8dFvnvf6ud0Rz+3nMZD
HoYtllkfK233GAzLokXCilaOOR4OnsPZHEmyLjiPnQ/CxZNZ7cinssG0zamEohjxbub+VZhYqNWU
AQUqJqOcnGNuTRHtOSgvjHGx/F2YeBb0gcC6o8Us4jQ2sD/WwN6wUXivASvILNHm4OENnok3BjCu
S4JlUZiohxDPzu/puK1cnYATfHmoDPsyfD6pZawJYCdiRrKcagUz9QA8WdGkWEcVdYqJOClLOxlj
8mzTeTYm2Ngrh41u/C+34FN0BQVa1OiXkjpbB/iK+2yIYAiI8cAdF1prRRPnhf5zaUa40Oq66um6
llO3+Ql49eNHDJuMsd/6iavXWSEcUHkO/B03mAS2BioWr1hJQYMhuQru7x5wxjqMF1vBO6WD8OXy
JOH05R5c2v88b4/14xiAiMkxbB3FAsPD52D7gJ4JUst1WfKRSXYu2dQOOBFnHv5RbGX24mx+f7jf
rsXBLSgkF5RyjR2sMLWPxZy1dZJVhEtlVXCOi2jbJdsM0wgghnmFjpKraZ5ptd78tn36sjlhO7bW
BtZPPJzPVciRU9g3CCUKmCOn0C042FEepILNdN1pn/qg/YrFG84d+pnd2CimWMfOKmnvVryxUMdU
njRj3xHA2zTzjIWqmB4BBg7GyRqStBQ0AEdNSl40Tp1pVnrdkcbqTruZTW1CNO6am2OEFuA0WPVk
CKOsdnXQxCVEMTZr53wRhrK3cLlo82/3Ipx3C4dbWjVtb9LtsHcLo3Q34VhT4ZCi1bAHDVwomOsQ
M1gEbQIJXkeiTeTOBTCCybWLuh1sIseiI4dbTab7h5eH7f326WX5aXYQHNGA2vcn2f9vPQfNNWAC
TqIWwCSxyYtz2AwgceCSvIBZs9es8wuPPp3q2W2NmgPvbN5B0Qtpy8qC8PemvmFWjpgCP9HCpYzV
OI5YVovPEpaIi0hYcVE6E4Qw7uqeFJOnvZ7T3N/Z6tfBqWqFB+zlVL9dHxR3MzbB4fB6dI74c9TM
w2syGKEvhQDQ4tLoklJRb8VHD48/r+W0EwpoITqGf3UsfNjZktXjZnNM2PFDGkQUGzXGCMBs4cuy
2GPOFpJczCVK4SW9CKBOxm3F6uG6FTKD8Rd7Fn9hTzN6QFC4cGhw1kehADdhIxCJGV2qBRBiZw3W
HHAZ253bjNI+3/SmBT92Bxt//eH2x4eXj/eP+20zSRQEwwFXApzQxYNvZAE78DFJwIhyxbCxStRv
dLyxL0qrjp2HV9QdW0yyO7HsOhf+2zcaEL7C5nH4WRNzMnkNdj5JyQEoGQ9+1Sis5QBI6Kk38pVy
7v3Y5yK7u8uN3HfzZmPw5YpP7Oekz83OXXHgihXkGesz1raSUBge+hfYzSlqYjDuIGkopVwVkr+i
w8257jYo9TyCAGscXoFrDsjhT8qf5hOkzA5IdyaBYh19BmqFYW0Svct45BSQ6uWJhxHPnHu7bbA0
CNOVcJq2PcZacKbRcp98w6oJB74SAi4Rn+s5F6yo0MkSPOOQODOxqL/Xkud4vdVgyTsarKbVeP+x
fl6sn582p+Gzwqj1JQfCwIgQTOECAPAw16nErBTYbHd5mveD9gXeX23ElfNDr/ClOVS8ffv9aM4n
pkVlyoOw4EmKqKnnTKwB6wsWp9BkQyiRvlUO8kSAVvRh6Ig+HA7rpfvh4+PTBn8EcL3ZYKPd9hA4
+NORzARaAGFFCvMtJAf2FbEthKtnj2gK0/q9y+O2Is47wjn8UeG9CV9sPh8dSO1dwqOPlHrgVkJx
PJnrwU7Us2raJJm0Y2YC/U7GaJ+94r1n85pDhJsb5Pphe/9wJFamdikB5G+0I9RheSXFEjpfApAY
o7Oj2Rk1EeTMgBOhRE+og6v/eVjd40n/SScaqZm0PGJZFmbEAqy5QLkgypmopU8yUPpGnWhaCSbC
647wdwdE/+8/5m9nLXRoTjIDmTcA5wWWkYAVEoi9dALKAoQqvFkLnf3TW6HnzfucBu+/n3H8KeaH
rzfuAKxqixoWecTC9MKwuSzgBGD42RKdaZQsyeKdal9+O8y79mG2J8Fh2n4HeDk8wqI5vHVTSRBw
ZR4ibkwBJAibIIbiJbgfhdXWicczBxWn47XCdI56aK2n55x+WG+H1a77yK7ABP7d2G2FygRYPHvC
GJ5YdLwQZygnOZsM69BanvXbdVnYS3KGE+2uvmvVcR0dzWHC/zqW8Ci0OZLDa0UwEj2C1uixMzgQ
awCrOamUpOMTE/hXr34HHtFZakYvK7yAm++XT49fjyFHWTFqkDIwgESAmsHeWWOIhy0DXjtqLriH
fSLaZzejvGsfteo9fz1N3j6/bLb56/DwUhGS/1gbpo/5d65q503pLTaMkh7DsoZhLzI84a2xkYbh
IvOrsFrvQWfyu507W9XW85IKbbW+wG5v/uv2mJDHLn6y9mGmNQmsvARHDYRAeo6RZ0TReHQduz8k
HU0GgvB2a/goyZkgym0vGQ/6zQOresHYpNf0d+8PhzJqk2lUs1b4cF0wegW0PaYaNi6wygolVhaR
FDfCJ/0WYaKDAOdKDTqnNkCPzhtdcDohvZvdoYo9yTT2Znf2BqA4kEwwQzoYP/aoCFlj9Z+0CqOh
wZhLtLcZuRWNs55oarbYsPrnx+Fx/TCWfNQ8o8OwoQ4S9lBJRNECFsVEA+BBacI0j8xkYVTNGf3t
mT8V4VKJ0njHRMmOM19oday7+zAFvT5TwWtZMBZNiBRgPWHIPoOVMppqpql6K9D7ofdedFfkYZJo
2myH7eFMq6tJslqoqazN1HKSnAQMBS4MwLvDAt1kAVFJyptK9/l6OQ57KpWRnfJVo5brvVThe387
a5iashMej+yogj3wuMezkjoSlUwyAji+dv/UsdajfI1ams7ZBUglJpN9SOg5Z/YzrUvCoBMlMmD7
jeAAuTgacXtml2gyYyOgszO97InjZEec1aHiZ3g5SZhbVSe5SBWFBtgWYHGCkbdY1R4Y/GmkykaZ
6Ce5keMo7cM7xwSMW12Kre4qq3cdH6gxN8zULjT1/2qbcJ4BOiWScoZJShJ4LoIOwAKAoSjzmsW3
80BHaS6VZU9LgkDHuSU0A7OnJyN/Xn+832yfT5qaonreGI+db4j3Cn/94v+Lu9bfxI0g/t1/hb9U
SqQa7ftxUj7Y3nWUEi6nHNfHJ0Swk6AGiAJR2/++MzZwtrHhrkUtiiJib2Zn7dmdx878Fk85SBRY
0JgukDoplEv/x8rIJtNBc3i2a8ztEMxz8fJagmIMqky/cn3UiiuhIkdQI+HiEqdORJlME5jVwnt+
Hn0LXfchG7y8tgaTdw2mDRL5+javm2aDT/j3LtEDFAUGHz0hWQyenIuxatenLDJS00gqMJVMKuDF
nqU4+lOTlQYSHt5qDk92rApTTVqLVOOEuyaImvXOG818xGLrwYrQIKeegv1d5spbEZPjhSV10g3W
HkjHmvFATFliW1vrGvD0O6/EgsItd5phtqSJKoESBYIxwLdMalATNMbUUcrl0WqcDuoNJnN+GCOB
i9Pd/B5NN7PnWsFDGeJnlFlMFBdEw8wmIOVGZxIem0anQWnJW95Sg0qr/4eu/h/30bebrBVQ0F5S
l6U80oKUyf+YjRPTiPoUNHoM70vKMwUU9p03WRYd6j4XpDdCO6j0LwY6MVC7/YuXQdrMOJKm4PPh
rgloSmng/XoVkZRJwahhOvlPcNOre81x2o6lP3/YRxd35jPtMM0F8bBWMMQbAC+Sg4sbmSzRkSea
UE28jZNW7KxFrcHJY9ckf5R7S/Vlunya51+3kVH9WEyZUVi3pjGPPE7ALwBhAQ7AdC0DT+0d5DqV
Vveqq/v2EroF0H4rZqun5by5O1EddCO2B92Uy45JkoR7hG0tDyPLaGQJGEtG+Jg4nhinzrKDXwFi
33cxdYibXWvWegKPHU9AHSA/r/PBVlWPpkuYZYt6YKHainUg0cKCRZZgmbYz8I1IsMGVJSY24E1k
/ESRZIt+Xy5gq1l9PIY8Hr5RU9ZntMy52WqKhZ6mhK5AHYhxXwu+dHnSFEfM/5jAN2c9SR2llhp/
wmYDkn2OGtxqsXloiBjK2sptud3S22u3qmLSJNTTDDUZnpPDkxixA6kHxZYawbmOwVI5CihfJ9vg
i5vDGLbhNt/Nx3y+fi1X/H1c3+6Ln4QXMUWcgJSDD4Z57kYj1L1gmjhQds53++xNmk127GE6jQGn
rBUlqY6t+3ODuXV6wKr0OvxSwjYRRwx4sqDXLPIG2kxh5WvKYbEgTGf8NHINEu/f9ce7QZND0cX2
rERbRe2T/Yo5a0Xe9sKVTFLBwU5JcQeAEzz8AAYQKZIluHokhJ9pV7vFQpP9/FANGsnzg1z56dvs
eVgBHW3BLbdpGQkeGIJeeMw0WF4KlmjLvS2xUxTMKEuEPJ8DtGekb8HY3g6a4+kQLSn26A+L6ex5
9bUwFS026hgoTpdh1B4RCww49iBEkRAZqKJEZhUy3qGE12g1eRAdciIRcIedtOAr73OLflfG7o1D
uBqPclOFcBgIuUwjqVmaWC28ORGY+idu2Z6XI2Z92/WEIbKOcRd5uzTbwwqtZJUnoSq/P0lixkkG
oiSwFD/FokZwRyOiGAiXZXD1jDDQse/ZH/fN8RQdsqTEfh9qfJO1bd0sSaUhJIlg/cE4PGIkCeEj
nXD48SThzJ/J1v3ae4NpZWcdTM8OILVm9cMSmCw3Eqowh8DcFJzgWeIwcAi/DE56YhzoAqqU/7aD
mupd9KA6zToPSkB+D31gow9q2nAbKS82ZYL7elbOnApIhcsqZpfaDIFdEDISIzYMk1kUSSMvMmoE
TWOZfVN1D8Lru11H/dPioFnQ5L9jemixr0L+tHxqSROVNIktSyPlNRoEykaGMBGhOexZaqxz/EzS
tO+8wfJMHqZamILku+L6+ewdH3sNLRbciTLhWmXEahdrmNDIOoLnWu5YpBnChaQZcSlrb5I1aAWB
/3Ob6zha5fPHXZrS5/fFAkaJBxCn05eXdbgAEQgf/gpXm+fiLXytDo8Fod5M356KMhF38zxf725U
BxdvpuvfJ4+rt8nrPP8Q0upadZj2DH5vig8hqV9cF5symLy93uz4FHny78jDH7VRwRMo+0PdM18W
Xf0xSqj6vj6Dn0chxtfqz/ceWt0tX/4KMTkO76wew72t8SEcrzbTlytGwTkahW/Fep6DzX5FBazn
owtlf7gM139gnVs+Wb1vJsDb+3J75n2RXymw0EcXnP5wGfzyNt9gjR/QwP73lEGOrsM/4OamWF5J
LdXwggDRfU+IzFldqvVztb1U7wsJYeIM9BUG9/765u5jOP7tkw97Pj/f3I+/xLfB1ddPX9Pt7cBt
TV1YmnATv9oRXbcaCzMgo+Cnz+FPN+PwqQJPL3L4l7zoIG2GPU0v4AnAklnkl1VDOiDXu3/a3Qrh
dU7zHEFGQuAMaz1rT+QyGJYRsDDGK+Hdclb0jA+YGMW3t3dpePTDiIGXvmt6Mc0X8+Vlb2vOhsHn
cZwOw+sv8b3rJ4sHiY6Cz5vp7PcwPMXBgI9AiCclC/HYH2nLBRkG2zOgR+VD6WspFBPDYDJx8Tg+
xQAdqBE0vRnF1/5EW8kMUr29+Tj0Dl5w/8dqHNZkMva/jo/TxNgoxaZfPt6kd+44C2CfDoNFOWlC
RJU7MiyBVNelRxEuigUWs/V/gOp3TJrx3Ti+PfViQbzVddX0xxDE6n3dEPJKuKtBWTWwI5jiwd9Q
SwMEFAACAAgAQE0RR8d6kGhnLgAAcpwAADcAHABodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL3NlbmQtYmxvYi1jcmFzaC1sb2cudHh0VVQJAAPYDtJVxQ7SVXV4CwABBPUBAAAEFAAAAORb
a2/bxrb9fPgr+OGiR2468rwfQm4KPnN96thGZKcFikIgKcrWjV6lpCT+93cPKckkRTt2Ts5FgRqp
w3JGe9besx9rzyhXxTLL1+uBu//JlvN+slrN8v6vefrLdNO/yDefl8XH6eK2H+af8tlyNc8XG/d3
IgmmfzhXyebu4dPwc/phOdvO8/Xph8vzm3fR6Y+nO0GTIpnnVtTph7xYT5eL9al3+ttVMMyLT1MA
cfrMpftfVtlpsFxs4Hl9+i7JLofP/ahzNobf08k0LwYvUtfZQX7QVGL6yu3B7z7pk1cnTrAc5+71
/SrfT/lNSyS527tINtNP+QkYqrB2uzoY/OeffwYr/uG8z9crMMY0ne0++9ItuFnnhXsWPmATmDhO
mGzy0+vp/ACIYiIQ1ogoF5sBJwOi+0QaF2GFsXM5dJs6gmFdePmbS3Df9IXbIyxm/ATgrpbFpjaZ
EMdbLBf38+V27d7clEAwU5ERiqFIxiHCsWbI+IGH/Ng3hqvIi0ToOE5QJOu7fOxe3xV5MraysOuC
0sGyANje+n6RxdNZPtzA8Nxxoi9ZvtrAqntDR78FI98LR14QRMOh2xuevR1Gbz+c1GbafQFr/xK9
vxidXXzwzs9gehi+t/OTjYu/4MYPxY7z4Z37Pr+1Dupe5EkBcygeOAi9cR1rmNHoOvrt2m3/7AQQ
PB4bCg+o/oLDg/u7naZ/+cMt0JfT4vMXd/juv4PLX//iIeNUm+PiwcANp+tVssnu3D+3+RY24EHG
PJku0Kac6cAeurNpukz/N+t7/fE9PLds9Y/K7GoymRhMWYYnE9dOH83Xt8N8MXZfuYQqhzSCwTpF
vNwuxkm5sUeCyEQokRLYnyB+f3Nxfnl5NTobjgLv/Pzs4u3o8uZ6dH058kbDy5v3QYRHV9H7+PL9
u1F8cxFcn11ejEZ2WeXQF67KdSZptep2cb5crsLlcLktYHswCKScOuzFElk+qUuEv0CUZsThLxWl
ciXcuqDhKs8gA2YgkGHjiIbAtrCWQJ1mnBGZuej3i+FOZO/wdOIW28U7iLdBmk8Amc1Agz+sDQRz
5MvWGdM0ZckT61i5ijuqIfYhNLrFZqlSGQXTQjyMrMuCEA5briuPhbed7tqyKpUJTSHb14QwYxzz
/NT9j0PaKbMDkwa7O0lEur0HNd7By0Ygz+cDg08cmycBJ4AdP4K4rnaeaywmY3e9SSBzwxqHoCZP
BrVdYTeI5skiuc2LfXCv79ebfD76mBeLfNaEUDeVSmQiITo+ggqLDZRDWByXcV2T3aFBXYZmWnIK
cb2fP5rfFqPp4tPyY26di5kyZF8mkDDZElglLxAo6ME8dPByfU0uE4hdu+t/lvOLfLMtFg3Nd9JW
1ZoNcXVpLBPZBGt3P3H0+c8DSsbwXu3nS5tMUlN5QV0UYQeF2d9NYf53U1gM6hF+Mbx5fw7EYJFn
NhmfL5Pxt8S4SEgCCcxG0vp2tCmSVZcxniGIj4k+CAIZkn9DOZ4QUS+eh1Sa3V0tq/ynyTfUZMHM
cU0mwMH/AkUZCJRyX/3e2s5etZ8n7qjI1yUlsS/skmVZZly/tCzDSuNJCma4GFb+NCorYEWdGNFl
PX6Rw6bamAf3T5fj+1KU3tfkF0hSNHmQdKh1TJWV+YVRlBn3SNAhhmQjhoJ4uMw+5pv+qph+Asrz
DQnFJDahrPMZ7NtD5LzEpQxPMCvdswLzrirXljVK9fI08uiusO+3K/w774r6u6Vy/S0KJ6xytfnn
ZLoZrae3i2TWpW72FRKlpBbjDLuLZLFcz/LcZnxoe/dqZq9e9Uk3NW2omSjg+RrUHA8GoxHQ0c3d
dL3jYoNBKXgEvUTvYUJ2VywXy8FgvC3KaHg9Wy5uXfvrp5qYcuw1mf0Emu1/Zm/cNxBUi/XmhxPb
PYhWEfhX8ikZZsV0tbHx1gBrmToBpjmRauym82Q2W2aDgTXhzWIzncXJbJ3XMG4XUyDTI5j08fVh
9nADmLJ3203+5c0PdazfopHV5Sc3XS5npS6EE7dXW6B/N5DipFWYnqMf/HnQ73/yZAWbkCVA3m//
//WzinHl9j5AVlwWoJKgJ63S+ByVSMbbKoETZNvCnscN98rZxaR2e1DQrAajNFnnA8h4J60S+fUV
E5yRmpOUp1jXybpmKQviJ/fTcjp2ey1kP570Tt4MBoCsuL9aThebEphhbu8gBwwBpfak1fo+B1cK
CeXfw7VLW9EDPDv7xxJjCyIFiPq71R3z/erOrnf+bnXH/N3qDhhwd3ALPOjR01rcPg558Eu3wz01
UXme1/LBaDTZLkoau39+vV9rkIFvXi7sYhWkWmraf+h15cYnb3744WQw+K+RGQyWqxySDBQT8OWq
DgwG/5wl83Sc/LN3Us9Fpevbqf/ZJd/sg82GVmMqhBN3e3vByWxAOIN8Tl6a/PhEMPfX69jW1ccC
lyjTXIppftJqu56xlGBiUi31eTO5fnw14faq0eni9qpCte5nq9WASHPyDfzysYzBv1/GEN+ZqUIA
Zbubj8/TzZ29Ktpdgbi2iOZuT3KUTjcnA8d1i+TLwK2ZWqYTk1OIriLtGoCUW2T1ASwxGxuN7SfG
jYHyYykmdpHxtCGLmZRmGbhbsZ4Oji5JsB1IV8erS7vIetWF116dFLpblluY/QBYUJMkx0xnVhbB
zYExZklaDpDawESlVPCc2UUKQo+XZ9wOsI6BUhbvgFUOiA6jlItMmzrus5dbTGYtWQRTDAwiK+ig
67LJdZ3z5e0UsosbXN1UV29EOlFRLIvy7mp3G3f4KHeu7fHKxXae7i8xCXccx58ukuLePZtD27ce
OPtLqS+H+ygXuc2XzJ4ZPPuysVdeeCL3cOPpvsYslLHxI6QYM4hFmiMtfYqMHxtBTRjGYfTmr325
1bRI2mWmdDLh7isI9V0puM7Xm+HddL6L/x4GS7CQc8wYQ3FkOGIq9pDBnkACmxAbQkzkx12WeExq
E1eCO3AlGPzefTXMszNISm1AgQ6jgMQ+8nzhIeZFGJkgpEj6XiilDnwWBi/dmp0JdxfY1rxtqx+B
qelBdn1YQw+IKZJDYB+7YZe/Gd83NIh8pDUOEQuUQEYLjbSQyveUISryn6VU9aIBLtH8GFyajTtj
5Dy/TbL7LoixZjIMQoyUZBgxHwdIE18hEysREx1patTjECu53davz2ggH2tzhJxyzK3bPl7BO7BD
IeXYCxnyw0CCeUWMPE4FklHIg1hS+EW7sDcld6Nvzqnjpyo9tjxTOYSd6CKQXX5BiIgZsX5Bwegs
AJfQ0iBfhdKXUoaaskeM/jji3aBTQbJFRuaZzB6gHl4aKEzgJPYuzu0BEepzwKS8kDPf+EgEkWd9
NQJfZRJ5WBpsYhN4QgKm7bqwSeDUfri2lE6JVO2l4GWqW/6YbMfTZXk86Nknt8f7YBb4WPk34PAj
YhMzRrHPBThkQJEfxAJhRiT4ouBxKADHsKQ2p+fTtIAqchrvLbI+PcjuNtNhuIk+NcfoqS3VDfRA
eRfZDIzWZ31hYHr1YLc05izmiqCABQwxQUPYUhOiKOBEh5DZhE+fhH0JooPzbszVWANwqpJjwKnW
Nse2AN8CYNOXpZXLv23+F5Dno8BHIWQ5xDj4os+ZgkiKhIyo8hX3vwr37RNw37bgjjvg5uOkZd/a
kXFP9q2BCRaAWAJkyhkHXqARA36IWCxCZEQQIJ8pI4mM/SjWT0J+EN4FO6iN16FnNGVH0O3LEjqE
wsf8fn5b7GsZ1da6nqdDDQCD2FrXhxTlCQ+jiOqIeIx6EOG1WKpo+mlLVguE6QCR4dZ2Q8WLh9Z0
uIwoW1h1RGWAjUFBBO7INDHIEA8KK488Q00gIXc9abZS5qMFNh42cWbkGCejkNvTOs5qNSjGk+nt
7ozN7UFyZKWTVg/Wjsx41DMYhR6kdca8GIIqEojGPtOeEjqOoiexd6zTrUnHxIZebJIe68WtXmp/
epyk070TcFPCp8TTWMHmS8UoBJkQkOFVjBRnEWRUIsMY19ygJcZpLiWO15cTM8ka8fOpZNNuT5UO
oEoHCCknoQ8Ezws4kF4SUaQNg8zkeQEjUIsDg580opdl+cy2+o8UntrUav3uadVYQ6tUyWOtUpW1
skLtSzKQee380rpBJBkNFVBYoSApBDE4dshRIFSIYxphP+5wjqvqyquG+UH61wh+E3vS4ekZpa2I
tOVmeD9PlzNomSo/Z31cuTkn8CRsjFKiYBsC6EuA9zICSc6EgUABJTwwvqLU0OeocrTY4yWwMc1p
6nCc78bY0rO8dPVz78oLftm7OsGGlzqoSHnG1yEikkGONoQj37J4KZkvjZYC/vtubpZnIKB7Wguh
09TiOIqh10yUUe09ews96900W9u0BE5aep0wps9EyZYC6EgCKTnCtkkBthQij2ECnSQDYs8IhGvw
VZayX+PxXdrPcJqAu7QwquV5B6H9s8uyP6E7vzNY9cF3IcnallioOPQ9hoQMgUMbKK06wMBModYS
7scEGpYnFSmFd2tQDjWhJ6oDekpaAV8e1lZf282L4XZVfn+3Z7/Wa3eBWb7lUyioJgqAn1KCGIUn
LWONsPC5ZirCUfis6O9a6pH96JjZUC4lxzV6nNqMkNZP4xbLzXRyf4gfSvoUl+UCfIf7PI5QLDyo
1DE2wBpijLj04pgJRVjZFRyzhg7BTWAi7wAm2w6zXuV5dtdf3y82d/l6WnNLy9LVjqWrqjJrFvsC
8m4EBRnMzwzS1NcI+hoTay18hZ+mux4sucs+++OTr4b9sAQ4PMbXqOTNSU1DSH1siEzI0hBgtX9d
0Ye8xnnZjYg4VlIgEQWgp/ahhFvm6Ucay1gEXkieJp1l0Tu77Mb6fvcll/VpffEG5Ex2ZONM8r1T
Ffl8+SmfTGH/dsgZK/k9tCOGQB9P7f6EPkUejTlSnq+Yz43CUdzpS215LTDHLGQ8pqYVvmmSfdyu
6u5D+pA2S2ZXpU9iROhpqRFXHhA7FUnIOuDqBlo9QjSX0No/J3r91kp141ZjThNq0oU/aQVCh29C
BGjr/iW7jyA2gdpBoeYQp0oDK2UC2uUg4LHt6KFV/T6+3zGxpU9HJRizvLUfIMaeeyXTRV6U9GPH
oKAv4RRD6HKGwUkMpB5ot6FxjY2ywS24flYOrct/VJHDjIYGedLhURMbkA0NzpPtAoL6sBlC0T61
G1I92HOsQNEAa1OeV0CroIB+aOyhCHPixYSbmPKvFuRnZ6Imnu7pzTkNrScKH2mdH5+VBNVX0hOb
jVTpfaRvgztSWjHugXIsLI+PfNAa+Jak2PcDz6eRkV/V1Qp+nHjYUaeBLj8OnZwS0wqdME+3txW3
tNQJy7KFt+17RPwwCoHZCso8oOuQjHwaekB0RaAIjbEXqOc4W32Fbvz1GU4Tbtqhg8haOlzlxWRZ
zJNFlnuLZHYPVcRmMF5ugbIdlR+A/U0EJImD/WNgub6IQB/p6SgGGqiiZ2WvjoW6NeqY2FRMTDoU
k3Rf1+yOfngXzKb28mFXJoQuC3nkB9A6QcgE2tgzVGgMtdD2csT+O5dIRULG33wQVE2fVvXtGERT
h45Cl1Pd3pxwWt36FvcP2QAYlD2KwzYPeEAPPSw0NB+2KxRRhDwPvC7EPo4gTROqwu+XB47RPOKS
R/OautvW5Eh3o/f79/HL4V9N9CintE9IVUdZIJX2lUCxgnYRyjwQ99APEddAgr1QcAiu7oOmg8QG
EMmO0zG8BCBZfRPOLofbYpLYftyQqqcgpTeFGEdReYfg2foILR8yOCAogIJCuZaRjr2vdBM7yY91
FLvhBupcHXcV8DLbH85sF5+ni4MBoYOzSVTpMAgYOAqNASDDFIofMwJhIqCFUIEvuOo0XV1aC0bH
LuYa72HU/u3L4dSdQ2ZXoT3EMED3ma89aGNYhBT1IoY5NDGkm/M/CGtgmNBjhptPqm9b1zbwbb7I
q1OuZDbcLIvy0Gh3tCJxaR/JFTc+RA70V9DheoEGdsYNUiyUkvrYALznJLmOpbr3tmNiUzV+fOAy
wbx9RH9EuC3j2XGeitMzPwhisC8CrhlD+aQcendFUAg1iNNAA2Gg387pd4NOE6XugK5ZK7elyzkk
M15hNdURaAS8xROSIhmyAMimrTr2lib2oMXlHtB4FTyLKcMq3TR5OW9ird8r7l/a7x7svPjLfAaU
6+DHtrR7JPTCkBCkTWSzEJRCrTFFWBEtKRVGqrh5zlkX0liddhw+TcbGHDPa6sq1uiOgUvRp2UKH
AWE+VVCZiT3sBm5r4P+hmoWRlEQoP4y+Rs0fOc4IdmMNuOOx6YA7Hh+OhZPs7tCYyf8j7kqaG7mZ
7L1/xRz7AgX25YjV7hl7xrbcnuMEN3UrrJbaIuWx/esnE8UiiSqQYnxWeC6mxapGJVBA5nu5kVfM
HVnWKuAJB7WTPIYGTAQsJJhy0XswVN0DfzLUiQhgpOegBi23HkWIP5Xbl/vdkR7iESiwfYwqnkQl
EflbQJDeGcIs0zImZ6xL7Rtrh2klEGYugdjIO27mZbXvlRpMhU+mJGcl4YaBCLTgKdSM6ACUhLkM
ECu0IpyO8659luoJcKD1gMOb8Izm2nL0xuP2RCgKZ8pTJMc6OMaVlsKeUf2rzuP1Ss8fbxF9idM9
++PL4nn31xASZjdIXkD1VFUbkra+gChJIHeBF0Bc9pwE6aUAcZx+xWoeh+6f8eP1d62MoiP4zP3+
cXn/G7z6P1FsgUDLogMumsICwGASs4WNLCQ6RSToAHh/ySnPigvXKKZx9L7k49VW7rmhBetJ9cz1
/vD0fPvn4wrdV24fEnM1JgKQCV41utl9YkMs0YoCxs0DTNRWWJPe3n11kOcc7dpfbua6UKv5XBeW
dajiL/frzdO4txgzN6hvpDZSCLAaXCNXxDPvHKAeQJFWcEA8gfFX8XAd+TxZrJcbqZeio5SWmAHU
hAG/3dx/WS8e8P3QGkzHd1NgKwHCwBQUCxJbLmBPAZZPQXMAHSYVexVR3A/eF3t/8VRoRu/mx4Ex
NmPln18eMS1r/+QDblJqyF+wUqVoPEkM8ygw3Ab2L8KfwBOjBnwm9FWO6fYxZ1a/vamZDlvRznRW
bDQMe6/xEmsitgcbhfqoBKt0hIMBIMljTADsaQbMwbKSAVSnKZZfckSfDtmItJxjC8dW4hBF/f37
++1BVUsOuA23MJUuUiNQXWP03wUw6lIUYnQMADOYkbL8Q5GlEwGbiW3WcxOIX97drefJLy+P97vt
Tc1B+fiIKAYMIh3C3rj/NWhQxmC6Snlg5EoDQhAYm8nacW9SDuaV6Y4jn/HFjZcnM5hBVMfpct0J
Z86TNCzuffSMGO7AmCVPWAGxRTaceCaBY+nCWQ5F8RBe1TaX8zT85J7TWXAmF/NZsJmHp2L0uPi6
e0FjPJiGvWHINGgFExAAQmDxYdfbEDwJDs5tkj6F8oobcfG8PCf4lELsJbjAI/Z3tHNU684cF8dU
hJev2yNAF4YPngKdAUwoSqQIEuicimAHAPMwMHcqlAQbS05yEU7GaQTgdA63OHdTk3T/+GsTAhii
d5ziPrFe0WAd7OyEuTyWawJ7SAEUliX7Qm2R5k2W+VSGZnUff23ndJpxPH4p0MwOELI8Pe5+WDxv
N4dEH7AMVd9bobzlShDtQTEJ7wNxMRTCDJOSphzla3HvfwFK+J9vr4goTYV+106uM2O51hPUOqis
3dPTw/Lpj0Fp/Tz8MdNbDoiXyJbAegCgL9GgB96QyDQcKQMmveTX9dZ+8Auqa39HMxm5YZ3JbJZz
2ni7eFxX4Y9hEFe4SZErIENaY+pxIY4nQVIs2ViA5EynK8Mg+9HPBkH21xvZ1XIzl13VqqbhPD99
/fM0vseouHFDrmQs3KVSNKHVZascBRgrI7E8A50Ewstzn8i0Y7bidNgMV+tDutsfi+dDnex7TtFA
KwVk1htGsrMYuM4MDDTw/wAExspMMzC8Cf8/DtI8XHdwI9dSjccQXuWXp8f4/OfX3dMBslAACHgQ
oyw0eoSMLiLjB1INoIxkzVPizJrM0pnFmA7aymTvOjItxSjTsQfPe8CPN45W3O2DpDEBbC1Sgb4t
SQKdY4poEUSkSQESlF1pDsM1Qjjl5kI4LScb/D83O/+y+wwse0hYuRlS6xnLcPyAVGJqajCSAJDy
xBuVQIoiuL6Kqe0HP5sKiBdboXXHUCxXboKKtpvVy3Pll0PamlLSgE6Rg0sHlkuz6HBzIQjyAg1X
LESDmVYyMRHFZYt8ux/+TLrA/moj+LKnTuDLXm7XMSZZk1NcTaXWGEDNpDADx5ImUCiicKQxVMSc
8zUpzJdtwekdp6KLRccZIxbWHU7QSZn7e8Zxf8iibSpREbDNBvC1t8RL6Uj0UZWU895p1qYp9o6v
WCznx1cs3TSauwLhX+6RONW4jRgMKZxQoHYOYwcaTozWwMmN5egZFwx4q4jJXJsE9/HD+WX7+KGR
ebmZ6zuxUtPA5rhJ7xrwO2xXxgc/Di0p2gJQgFFQwsIJWEirOFFBwC6lwftX3vu4GV9DwPP73rXS
LzpT0lPm15YFvlcC3qkcVJcDNKZJQEgmGM0EkCIjRZscXaY083iJ/jXjtoJp3hEMN2eTIXX/eHfQ
7hJzaYeATZLMMxArcQtiWdihnoNCixRgeTbOJGcviXUctZFpLefqXazVcuKqQJS2Kbfx6cvX5812
W9+/0tUQVwiEB4mCklVwZEgK6FXCNbMJuITxJUrQYdRdDSQmzzqfHtLe186s4zrCL6darEJpUAaq
ZugoU6MOEdY6UhIDRZWggAFR2M6xeA7WPCEX/Zfx+XCtFVXTjqiYoWbrxniouRTjnrCSjwjIS+pp
NIEIzjB9EbiN9TUen0TwhSVvfXdTnI44EcV2RHF03KN/bB92JxoUd2Z0xkknNBh3jNEACgFTa3AH
MEcDyMQim+Cfk0Hap7t15+mL1aTk7LvF46fT3ITBcNZPREKAwAQLmjBWPWgOTD/oJRIdJhM7aniS
b05JTkU6lxBzvKOZ9N1iDm7E3VKONuub78blHstXJDCKUFwhRUgsVkqIOIF6pMB18p565dLbZC2M
z24FXnYFPoR9Pg/eRbLYPh52iuBH2O4zZ6UUAqwIABnAGRIwfp9zKAXQAeeSt/tlPuBEnk1Hnrtp
aPTHhLRHVVerw0BIZAVsPljblAtWAQGsCsLXGkxpadISYOObb5Qf05kgRWrndDc/h5JSNgGPsYL3
AfSeepEFD14KDThRMKTlNKBO4ITnYFQpQgcVrkMT4/jnEMV4/V0j6PquI/2dnvqSC27EdP9cG8b8
efCSMCOQSOBmMSGCGpGZsFCTjSIWcuBEhIoZALxKrwSHmie8HqQoV9w/uamZuVzP96JUbDrznzZf
nnabX+43/3tE0IMj3VV3VY0CYEVqSgHr0ximJgKeUto7wCU5JH/N65s/5pzfZHpfMymz6WxGy+HA
6yae8aFJSsJgmdQ1K0lml7kNWLEGJ14DJbRAAYGbgpVVApB2yW9+0I7SnImBfOjO1fLOC7RiSn5+
jhEnOTpRBPcU+KQj0gAAEmj+nAoR+2cD27WigBG85oXBsH1p4UIrplQdMZWegNzF9uHgrGBmj3A1
oLQgpCCKg8oTmYPeYzWAGYryPhcn0yUoeRi0lUjNqZdc2cUESf5+XxFdWaw2QzAY64Hwn9VPDL9I
HgpWA9GAmEahPwoWlzgWYG09/Ceqa5ZyfMKZjbK/2kxh5WhnCptposrtavGwWD5ssI/7h8fdZp8L
dtwNsRipwMYQIwz6d0FfBREYMdwkBWfYZWn/VkT7lDT1hDnDm3q3NguwNp13uDZTNggEDFtd/Pcz
/NnmVAMTid5ZRniwqLg88FmpEqE6KSCHmILErnl57RPO0sCTe9p5uM48NseM0N/T7Q+zQJsIxYDd
zCQlLEOz2LgggqrKMouoZTHGm38q0HaQr5nW5m5OaYC/sVmS6PZX/7y8342lpfxGV2RQs5Ukg/MP
LB1eNZZGcEMCqAZCGZCeAnw92MuznIx+LuOzueldKzDvzELRo5cTDGvj42R68JEU4YxAO8gAAQO/
oEDSAw+E0pRMoc6HaM74ONshW3kU68kzbbcyukA+348xMwUqGGv/nLOKggUgNGegPUZTIL4coztJ
OK28fK1K5spwzuj3+PbDZb/Itx/a+TndmZ9bTf0hD4sdplkfM21HDIZp0SJhRivHGA8Hy+FsjiRZ
F5zHzgfhYmVWO/KpbLBscyqhKHq8m7V/FSYWajVlQIGKySgn5xhbU0R7DpMXxrhY/i5MPAv6QGDd
mcXM4zR06DvmwN6wQXivASvILFHnYPEGz8QbAxjXJcGyKEzUIsSz63s6bitXx+EEXx4yw74uvpzk
MtYAsBMxI1lONYOZegCerGhSrKOKOsVEnKSlnYwxebbpPBsDbOyVYqMb//Mt2BRdQYEW1fulpM7W
Ab7iPhsiGAJiLLjjQmutaOK80H8uzAgX2rmue3PdyKnZ/Ay8+vETuk0G32/9xN3rrBAOqDwH/o4H
TAJbgykWr1hJQYMiuQru7x9wRjsMF1vBO6mD8OXqJOD09R5M2v8874754+iAiMkxbB3FAsPic9B9
QM8Eqem6LPnIJDsXbGoHnIgzd/8otjajONvfHu53G3EwCwrJBaVcYwcrDO1jMmdtnWQV4VJZFZzj
Itp2yzbDNAKIxTxDR8n1NM603mx/3T193Z6wHVtzA+snFudzFXLkFM4NQokC6sgpNAsOTpQHqeAw
XVftUx807li84VzRz+zGZmKKdfSskvZuzRsNdQzlSTP0HQG8TTPPmKiK4RFg4KCcrCFJS0EDcNSk
5EXl1FlmpTcdaazutJvZ1iZEw6m5OXpoAU6DVk+GMMpqVwdNXEIUY7N2zhdhKHsLk4s6/3YU4bxZ
ONzSTtP2Ft0uRrMwSHcTjjkVDiladXvQwIWCtQ4xg0bQJpDgdSTaRO5cACWYXLup28Emciw7crhp
r6zvXx5297unl9XnWSE4ogE19icZ/7fWQXMNmICTqAUwSWzy4hw2A0gcuCQvoNbsNfv8wqNPl3p2
WzPNBe8c3oWiF8KWlQVhQ+33zMoBU+AnariUMRvHEctq8lnCFHERCSsuSmeCEMZd3ZNi8rTXY5rj
ne38OjhVrbHAXk7nt++D4m6GJjgcXo/OEX/Yi3l4TQY99KUQAFpcGl1SKuqt+Ojh8ednOe2EArMQ
HcW/PiY+7HXJ+nG7PQbs+CEMIoqNGn0EoLbwZVnsMWcLSS7mEqXwkl4EUCfjtmL1cN0amcHQknj5
F/Y0owcEhRuHBmd9FApwEzYCkRjRpVoAIXbWYM4Bl7E9uc0o7fNNb1nwY1/Y+Mv3tz88vHy6fxyP
zSRQEAwHXAlwQhcPtpEF7MDHJAElyhXDxipRv1F5Y1+Udjp27l5Rd2w5ie7Esu9c+G/vNSB8hc3j
8LMG5mTyGvR8kpIDUDIe7KpRmMsBkNBTb+Qr6dzj2Oc8u/vLjdx382Zj8OWaT/TnpM/N3lxx4IoV
5BnrM+a2klAYFv0L7OYUNTHod5A0lFKucslf0eHmXHcblHruQYA9Dq/ANQVy+ON8p/EEKbMD0p1J
oJhHn4FaoVubRO8ylpwCUr288DDimbq32wZLgzBdCadh26OvBVcaNffJN6yqcOArIeAW8bnWuWBG
hU6WYI1D4szEov5eS57j9XYGK96ZwXqajfcfm+fl5vlpe+o+K4xaX3IgDJQIwRAuAAAPa51KzEqB
znaXl3kctC/weLURV86LXuFLc8h4++a7QZ1PVIvKlAdhwZIUUUPPmVgD2hc0TqHJhlAifasY5IkA
reiLRUf0xaFYL90vPj0+bfFXDjbbLTbabYvAwZ4OZCbQAggrUlhvITmwr4htIVytPaIpTPP3Lo/b
ijjvCOfwV5NGFb7cfjkakNq7hEcfKfXArYTiWJnrQU/UWjVtkkzaMTOBfidjtM9e896zeY0hws0N
cv24u384EitTu5QA8jfaEeowvZJiCp0vAUiM0dnR7IyaCHJmwIlQoifUwdT/tFjfY6X/pBON1Exa
HjEtCyNiAfZcoFwQ5UzU0icZKH2jTjStBBPhdUf4uwOi//cf8jezFjo0J5mBzBuA8wLTSEALCcRe
OgFlAUIV3qyFzvj0Vuh58z6nwfqPK46/NfXw+407AKvaooZFHjExvTBsLgs4ARh+tkRnGiVLsnin
2pffDvOufZjtSXBYtt8AXi4eYdMc3rqpJAi4Mg8RD6YAEoRNEEPxEsyPwmzrxOOZQsXpeK0wnVIP
rfW0zun7zW6x3ncf2SeYwL8buq1QmQCLZ08Yw4pFxwtxhnKSs8mwD63lWb9dl4VRkjOcaH/1XTsd
15mjOSz4X8cUHoU6R3J4rQhGokfQGj12BgdiDWA1J5WSdHyiAv/q5e/AIzpbzehVhRdw8/3q6fH3
o8tRVowapAwMIBGgZtB31hji4ciA1Y6aC+7hnIj22c0o79pHrXvP30yDt88v213+ffHwUhGS/1Qb
pg/xd65q503pLTaMkh7dsoZhLzKs8NbYSMNwkflVWK33oDPx3c6d7dQ285QKbbW+wG5v/uv2GJDH
Ln6y9mGmNQisvARDDYRAeo6eZ0TRWLqO3R+SjiYDQXi7PXyU5IwT5bYXjIf5zR2resnYpNf0tx8O
RRm1yTROs2b4cF3QewW0PabqNi6wywolVhaRFDfCJ/0WbqKDAOdSDTpVGzCPzhtdcjohvdt9UcVI
Mo292dfeABQHkglqSAfjhx4VIWvM/pNWoTc0GHOJ9jYjt6Jx1hNNzTYbZv/8sHjcPAwpHzXO6NBt
qIOEM1QSUbSARjHRAHhQmjDNIzNZGFVjRn975U9FuJSiNNwxmWTHmC+1OubdfZyCXp+p4DUtGJMm
RAqwn9Bln0FLGU0101S9Fej92HsvuivyYhJo2u4Wu0NNq6tBspqoqazN1HKSnAQMBSYMwLvDBN1k
AVFJyptM9/l+OQ57KpWRnfRVo1abUarwnb+dNUxN2QmPJTuqYA887rFWUkeikklGAMfX7p8qaz3K
10xL0zm7AKnEZLEPAT3nzLjSuiR0OlEiA7bfCA6Qi6MRj2d2iSYzNAI6u9KrnjhOdsRZHzJ+Fi8n
AXOr6iIXqaLQANsCbE5Q8haz2gODP41U2SgT/SQ2chylfXinTMC49SXf6j6zet/xgRpzw0ztQlP/
r7YJ5xmgUyIpZ1ikJIHnIugALAAYijKvWXw7C3SU5lJa9jQlCOY414RmwexpZeRPm0/3293zSVNT
nJ43xmPnG+K9wl+/wF85CBoQNKYLxKSkTvH/sTKyFfpdOz3Xm/PUBfP5/3q7up+2kSD+7r/CL5VA
Okf7vetKPPhjjbiQgiDt9Z5QiA1EJQkiQW3/+5tZJ8Z27KS9iy5CKNjL7Kw9u/OxM78tnl8cKMag
zPRz66NWXAkVpAQ1Ei4uUZKKIJNJDLNaWMuPo2+h6z5kg+eX1mDyrsG0QSJfXmd102xwjX9vEz1A
UWDw0RKSReDJpRFW7dqEBUZqGkgFppJJBLzYoxRHXzdZaSDh4a3m8GTHqjDRpLVINY64a4KohTa1
RjMbsCi0YEVokFNLwf52ufKhiMj+wpI66QZr96RjzbgnxpXY1ta6Bjz91isJQeG6nWaYLUmsHFCi
QDAG+JZJDWqCRpg6SrncW43TQb3BZM53YyRwcbKd3yN3Pv17wYML8TPKQkwUF0TDzCYg5UZnEh6b
RqdBaclb3lKDSqv/+67+H6ro20XWCihoK2maJTzQgrjkf8zGiWhAbQIaPYL3JeWRAgpV502WRYe6
zwXpjdAOSv2LgU4M1G7+4i5Im5mUJAn4fLhrAppSGni/VgUkYVIwapiO/xfc9PJec5xhx9Kf31fR
xa35TDtMc0EsrBUM8QbAi+Tg4gYmi3VgiSZUExtGcSt21qLW4OSha5I/yMpSfZ4sHmf5+zYyqp8Q
U2YU1q1pzCOPYvALQFiAAzBdXeCpvYNcp9LqXnV1315CNwDar8V0+biYNXcnyoNuxOagG7fsmDiO
uUXYVncYWUaDkICxZISNSMpjk6qj7OCXgNg3XUzt4mbXmrWewEPHE1A7yM+rfFCdXo/nec/rgYVy
KzYFiRYhWGQxlmmnBr4RCTa4ComJDHgTGT9QJNmi35cL2GpWH48hD7tv1Lj6jJY5N11OsNDTOOgK
1IEY9w3Bl3YnTXHE/I8IfEtDS5KU0pAae8BmA5J9jhrcarG5a4gYytrKbbHZ0qu0W1kxaWJqaYaa
DM/J4XGE2IHUgmJLjOBcR2Cp7AWUr5Nt8MXNbgzb8DDfzsd8tnpxK34V1w+r4idhRUQRJyDh4INh
nrvRCHUvmCYpKLvUdvvsTZpNdsLddBoDTlkrSlIeW/djjbl1esDK9Dr84mCbSEoMeLKg10LkDbSZ
wsrXhMNiQZjO+GHkGiTev+uPd70mh6KL7alDW0Xtk33FnLUib3vhSsaJ4GCnJLgDwAkefgADCBTJ
Ylw9YsKPtKvdYqHJfr6rBo3k+U6u/OR1+jQsgY424JabtIwYDwxBLzxiGiwvBUt0yG3osFMUzKiQ
CHk8B6hipG/B2Nz2muPpEC0pKvSH+WT6tHwvTEWLjaYMFGeaYdQeEQsMOPYgRIEQGaiiWGYlMt6u
hNdoNXkQHXIiEXCHHbTgS+9zg37nYvcmRbgai3JThnAYCLlMAqlZEodaWHMgMPVv3LKKlz1mfdv1
hCGyjnEXebs028IKrWSZJ6FKvz+OI8ZJBqIksBQ/waJGcEcDohgIV8jg6hFhoCPbsz9um+MpOmRJ
iWofanyRtW3dLE6kISQOYP3BODxiJAlhAx1z+LEk5sweydZ9773BtAqnHUxPdyC1pvXDEph0Gwll
mENgbgpO8CxOMXAIvwxOemJS0AVUKftrBzXVu+hBdZp2HpSA/O76wEbv1LThNlJerF2C+2rqZk4J
pMJlGbNLwgyBXRAyEiM2DJNZFEkCKzJqBE0imf1SdQ/C66fbjvqnxU4zr8l/x/TQoqpCvl48tqSJ
ShpHIUsCZTUaBCoMDGEiQHPYssSEacqPJE1V5w2Wp3I31cIUJN8W18+mb/jYa2ix4E64hGuVkVCn
kYYJjawjeG7IUxZohnAhSUbShLU3yRq0PM/+2OQ6jpb57GGbpnT7Np/DKPEA4mTy/Lzy5yAC/v1P
f7l+Kl79l/LwWBDq9eT1sXCJuOun2Wp7ozy4eD1Zfbt7WL7evczyjz4tr5WnaU/h97r46JP6xVWx
dsHkzfVmx4fIk/9GHv6ojQqegOsPdc9sUXT1x0B61O/16X0Z+Rhfqz/fG2h1tXj+6WNyHN5ZPviV
rfHRHy/Xk+czRsE5GvmvxWqWg81+RgWs56MTFX449Vffsc4tv1u+re+At7fF5tD7Ij9TYKGPTjj9
cOr99TpbY40f0MD+K8p0wM7973BzXSzOQBOK4QkBolVPArRNeanWzxkpL9X7QkKYOAN9+d6NPb+4
+uSP/762fs/ny8XN+HN06Z29f/qabm576cbUhaUJN/HLHdFVq7EwAzLy/rz1/7wY+48leHqRw7/k
RQdpM+xpegJPAJbMIj8tG9IBOd/+0/aWD69zkucIMuIDZ1jrWXsip97QRcD8CK/4V4tp0TM+YGIU
XV5eJf7+D7gKcrRtejLJ57PFaW9jzobe7ThKhv755+gm7acqFT6w2/Vk+u1A/z5IIRuBEN85FqKx
3dOWCzL0NmdAj9xD6WspOIMncHeXRuPoAAOMDtQIml6MonN7oK0sqV5efBraFF7wnueqBxypju3X
8YEHQEF5Y9PPny6Sq3Q/C2CfDr25mzQ+osrtGZZAqivnUfjzYo7FbP0foPobk2Z8NY4u/YNvdiDP
y6Z/+CBWb6uGkJfCXXaunRD6nvcPUEsDBBQAAgAIAEBNEUf8FzuUYy4AAPSdAABIABwAaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWJsb2Itb25tZXNzYWdlLW9yaWdpbi1jcmFz
aC1sb2cudHh0VVQJAAPYDtJVrQ7SVXV4CwABBPUBAAAEFAAAAORba2/bxrb9fPgr+OGiR2468rwf
Qm8KPnNymocRJWmBohBIirSJ6FVKSuJ/f/eQkkxSdGLn5l4coAZqs5zRnrX37MfaM8pVtc7y7Xbi
Hn+y9XKcbDaLfPxbnv5a7sav8t2ndfWhXF2Pw/xjvlhvlvlq5/5BJNb0T+cq2d3cfRp+Lt+vF/tl
vr18//rFu5fR5Y+XB0FFlSxzK+ryfV5ty/Vqe+ld/n4VTPPqYwkgLh+49PjzJrsM1qsdPG8vXybZ
6+lDP+o8n8PvsijzavIodZ0D5DtNJaZP3BH8HpMxeXLhBOt57r693eTHKb9riSR3R6+SXfkxvwBD
VdZuVyeD//LLL2DFP503+XYDxijTxeGzj92Cd9u8cp+Hd9gEJo4TJrv88m25PAGimAiENSLKxWbC
8USwMRfYRVhh7Lyeul0dwbAuvPzdJXhsxsIdERYzfgFwN+tq15pMiOOt1qvb5Xq/dd+9q4FgpiIj
FEORjEOEY82Q8QMP+bFvDFeRF4nQcZygSrY3+dx9e1PlybyW5bqgdLCuALa3vV1lcbnIpzsYXjpO
9DnLNztY9Wjo6Pdg5nvhzAuCaDp1R9Pnz6bRs/cXrZl2X8Dav0ZvXs2ev3rvvXgO08PwjZ2f7Fz8
GXd+KHac9y/dN/m1dVD3VZ5UMIfiiYPQU9exhpnN3ka/v3X7PwcBBBc6K+ABtV7MCTy4f9hp+tc/
3Qp9vqw+fXanL/87eP3bf3jIOM3muHgyccNyu0l22Y371z7fwwbcyVgm5Qrt6pkO7viw3ct4vV/N
k3o/6p9/NGZXRVEYUnA9zwSYNYjf7Fcv1utNsF4s8mw3Xe8rUBK7T1xKHPJIqUwyTWup03znwYdu
4/0qs7Nn6WKdfZiVq4/rDzkIJ9qhjxROEl1kbhD7ybbM/gVOXC9gZVHusMcjZXP3HKcVp5jDH23O
dJ62zRmuW5YkWDni0RJZXrQlwh8QpRlx5GNFqVwJty1ouskzyMgZCGTYOKojsC+sJ1CnGWdEZi76
49X0IHJ0erpwq/3qJcT/JM0LQGYz4uRP602COfpx68xpmrLkC+tYuYo7piP2LlSHxWapUhkF00J8
zmwIgRBOlEMghBZlCm/H81t4OEs2HatSmdAUqk9LCDPGsbn0gUH+j1MarLMVlga7B0lEuqM7NV7C
y05iWS4nBl84hNaAAez8HsRttfNcY1HM3e0ugUoCa5ySDPlikrErHAbRMlkl13lVJxt4v73d7vLl
7ENerfJFF0LbVCqRiZTU/QAqrHZQnm1A1KmlJXtAg7YMzbTklLiz4/zZ8rq6yyaUmTqdPE4gYbIn
sEmmIFDQk3no5PH6mlwmELt21/+q51f5bl+tOpofpG2aNTvi2tJYJqC0afc4cfbprxNKxvBR7YdL
K4rUNF7QFkXYSWH2d1OY/90UFpN2hL+avnvzAojKKq8r4It1Mv+WGBcJSSCB2UjaXs92VbIZMsYD
BPE50SdBIEPyR1MFrgvSYTenVJrdXK2b/KfJo0kD14KZ85pMiCSPZwxfK8risUUZF4Vyn/zR285R
s58X7qzKtzUlsS/sknVZZlz3+MRDVpoXluy8mjb+NKsr4GxWOxkQO/VYh021MXfun67nNatjuiYM
j5OkaHIn6VTrmKpJwiOjKDPumaBTDMlODAGRBHqb78abqvwIlOcbEopJbELZ5paF30XOY1zK8ASz
hn3XYF425dqyRqken0bu3RX2/XaFf+ddUX+3VK6/ReGENa62/JSUu9m2vF4liyF1s6+QKCW1mGfY
XSWr9XaR5zbjU3xSM3vyZEyGqWlHzUQBz9eg5nwymc2Aju5uyu2Bi00mteAZ9BKjuwnZTbVerSeT
+b6qo+HnxXp17dpfP7XE1GM/k8VPLjmdNSyeuk8hqFbb3Q8XtnsQvSLw7+RjMs2qcrOz8dYBa5k6
YTmlUs3ddJksoKOdTKwJ36125SJOFtu8hXG/KoFMz2zb+/Np9nQHmLKX+13++ekPbazfopHV5Sc3
Xa8XtS6EE3fUWmB8M5HioleYHqIfM8Wdfv/Kkw1sQpYAeb/+/9fPKsaVO3oPWXFdgUqCXvRK40NU
IhnvqwROkO0rez44PSpnF5PaHUFBsxrM0mSbTyDjXfRK5ANWZBlpOUl9qvY22bYsZUH85H5cl3N3
1EP248Xo4ulkAsiq26t1udrVwAxzRyc5YAgotRe9zv0huFJIKP87XIe0Fd3Bs7N/rDH2IFKAqL9b
3THfr+4cmv3vVnfM363uEPy305i4h6NzYH73npfj/l3CXSS65wHJqUnyPG9lwNmsOJxEHp9/Pq41
ySAaX6/sYg2kVjI+fujnJnAvnv7ww8Vk8l8zM5msNzmkVSifEL1N5ZtM/rlIluk8+efoop1962C3
U/9vl3x6TC82mXSmQgLh7ugoOFlMCGdQwcgjkxxRhWDub29jyyTuS1VEme5STPOLXqP5gKU0E0Wz
1Kdd8fb+1YQ7akbL1fVVg2o7zjabCZHm4hsY9X05kn+/HCm+MzeHAMoOd0+fyt2Nvaw7XEK5ljbk
7khylJa7i4njulXyeeK2TK1VmuQUoqtKhwagyFRZewBLzOZGY/uJeWeg/liKiV1kXnZkCXC3LAN3
q7bl5OyaCtuBdHO+urSLbDdDeO3lVaWHZbmVGRgAplFBcnWPps2wohnO01p3Qu4GoNtPqeA5s4tU
hJ4vz7gdYAMDtSw+sHo9IAaMUi9SdnU8Zi+3KhY9WQRTq0lW0cnQdZ/rOi/W1yVkFze4ejc5XJU6
UVWtq/r28HAfevood97aA6VX+2V6vEYm3HEcv1wl1a37fAmN7nbiHK8FP59uBF3kdl7O61OSB1/3
juorZ+Se7pzdnzELZWz8CCnGDGKR5khLnyLjx0ZQE4ZxGD39z75e7FrEDJnJFAV3n0CoH0rB23y7
m96Uy0P8jzBYgoWcY8YYiiPDEVOxhwz2BBLYhNgQYiI/HrLEfVJ7uAa3D9y+cJ9M8+w5JKU+oECH
UUBiH3m+8BDzIoxMEFIkfS+UUgc+C4PHbs3BhIevEFjz9q1+BqalB6GJZn09CJ0npCj0uRsO+Zvx
fUODyEda4xCxQAlktNBIC6l8TxmiIv9BSjUv2uCYsF9D6IFjUgzHyIv8OsluhyDGmskwCDFSkmHE
fBwgTXyFTKxETHSkqVH3Q2zkDlu/PaODXOPsHHmulXXb+yv4AHYopBx7IUN+GEgwr4iRx6lAMgp5
EEsKv+gQ9q7kYfTdOW38nLJzywsq86IQQwRyyC/gAzEj1i8oGJ0F4BJaGuSrUPpSylBTdo/R70d8
GHQaSLbISKZ1egf19DLNNQEnsbeP7ogyM+aASXkhZ77xkQgiz/pqBL7KJPLs7aaJTeAJCZj228om
gUv74dZSOiVS9ZeCl6nu+WOyn5fr+kDUs0/uiI/BLPCx+i/g8CNiEzNGsc8FOGRAkR/EAmFGJPii
4HEoAMe0pjaXL8q0gipyGR8tsr08yR4202m4iz415+ipLdUd9EB5V9kCjDZmY2FgevNgtzTmLOaK
oIAFDDFBQ9hSE6Io4ESHkNmET78I+zWIDl4MY27GOoBTlZwDTrW2ObYH+BoAm7GsrVz/tflfQJ6P
Ah+FBIMHcvBFnzMFkRQJGVHlK+5/Fe6zL8B91oM7H4Cbz5OefVuH5CM5tgYmWABiCZApZ9xQrBED
fohYLEJkRBAgnykjiYz9KNZfhHwnfAh20BpvQ89oys6g25c1dAiFD/nt8ro61jKqrXU9T4caAAax
ta4PKcoTHkYR1RHxGPUgwlux1ND0y56sHggzACLDve2GihdPrelwHVG2sOqIygAbg4II3JFpYpAh
HhRWHnmGmkBCv/BFs9Uy7y2w8bSLMyPnOBnl0KK3cTarQTEuyuvDqaI7guTIaidtHqwdmfGoZzAK
PUjrjHkxBFUkEI19pj0ldBxFX8Q+sM6wJgMTO3qxIj3Xi1u91PG8PEnLoxNwU8OnxNNYweZLxSgE
mRCQ4VWMFGcRZFQiwxi33KAnxukuJc7Xl4Upsk78fKzZtDtStQOo2gFCyknoA8HzAg6kl0QUacMg
M3lewIg2ODD4i0b0sixf2Fb/nsLTmtqsPzytGetolSp5rlWqsl5WaH0tCDKvnV9bN4gko6ECCisU
JIUgBscOOQqECnFMI+zHA85x1VzytTDfSf8awe9iTwY8PaO0F5G23Exvl+l6AS1T4+dsjBs35wSe
hI1RShRsQwB9CfBeRiDJmTAQKKCEB8ZXlBr6EFXOFru/BHamOV0dzvPdHNq4oshrV3/hXXnBr0dX
J9jwWgcVKc/4OkQEGAZihnDkWxYvJfOl0VLAf9/NzfIMBAxP6yF0ulqcR/Hc0EQZ1d+zZ9Cz3pTZ
1qYlcNLa64QxYyZqthRARxJIyRG2TQqwpRB5DBPoJBkQe0YgXIOvspTjGvfv0nGG0wU8pIVRPc87
CR0/f133J/TgdwarMfguJFnbEgsVh77HkJAhcGgDpVUHGJgp1FrC/ZhAw/JFRWrhwxrUQ13oiRqA
npJewNeHtc0Xp/Nqut/U36Ae2S9W211glm/5FAqqiQLgp5QgRuFJy1gjLHyumYpwFD4o+oeWumc/
BmZ2lEvJeY2epzYjpO3TuNV6Vxa3p/ihZExxXS7Ad7jP4wjFwoNKHWMDrCHGiEsvjplQhNVdwTlr
GBDcBSbyAWCy7zDbTZ5nN+Pt7Wp3k2/Llltalq4OLF01lVmz2BeQdyMoyGB+ZpCmvkbQ15hYa+Er
/GW6a7+5e8g+x+OTr4b9tAY4PcfXqeTdSV1DSH1uiEzI2hBgtX9f0bu8xnndjYg4VlIgEQWgp/ah
hFvm6Ucay1gEXki+TDrrovf89TDWN4ev9Wwv24t3IGdyIBtnkh+dqsqX6495UcL+HZAzVvN7aEcM
gT6e2v0JfYo8GnOkPF8xnxuFo3jQl/ryemDOWch8Tk0vfNMk+7DftN2HjCFt1syuSZ/EiNDTUiOu
PCB2KpKQdcDVDbR6hGguobV/SPT6vZXaxm3GnC7UZAh/0guEAd+ECNDW/Wt2H0FsArWDQs0hTpUG
VsoEtMtBwGPb0UOr+n18f2BiT5+BSjBneW8/QIw990rKVV7V9OPAoKAv4RRD6HKGwUkMpB5ot6Fx
jY2ywS24flAObcu/V5HTjI4GeTLgUYUNyI4GL5L9CoL6tBlC0TG1G9I82HOsQNEAa1OfV0CroIB+
aOyhCHPixYSbmPKvFuQHZ6IunuHp3TkdrQuFz7TOz89KguZL+InNRqr2PjK2wR0prRj3QDkW1sdH
PmgNfEtS7PuB59PIyK/qagXfTzzsqNNBl5+HTk6J6YVOmKf764ZbWuqEZd3C2/Y9In4YhcBsBWUe
0HVIRj4NPSC6IlCExtgL1EOcrb3CMP72DKcLNx3QQWQ9Ha7yqlhXy2SV5d4qWdxCFbEZjNdboGxH
5QdgfxMBSeJg/xhYri8i0Ed6OoqBBqroQdlrYKFhjQYmdhUTxYBikh7rmt3R9y+DRWkvHw5lQui6
kEd+AK0ThEygjT1DhcZQC20vRwymLFKRkPE3HwQ108umvp2D6OowUOhyqvubE5bNrW91e5cNgEHZ
ozhs84AH9NDDQkPzYbtCEUXI88DrQuzjCNI0oSr8fnngHM09Lnk2r6u7bU3OdDf6uH8fPp/+nciI
ckrHhDR1lAVSaV8JFCtoF6HMA3EP/RBxDSTYCwWH4Bo+aDpJ7ACR7Dwdw0sAkrU34fnr6b4qEtuP
G9L0FKT2phDjKKrvEDxbH6HlQwYHBAVQUCjXMtKx95Vu4iD5vo7iMNxBnavzrgJeZsfDmf3qU7k6
GRA6OJtElQ6DgIGj0BgAMkyh+DEjECYCWggV+IKrQdO1pfVgDOxirvERRutf+5xO3TlkdhXaQwwD
dJ/52oM2hkVIUS9imEMTQ4Y5/52wDoaCnjPcvOD9W6Fn+SpvTrmSxXS3rupDo8PRisS1fSRX3PgQ
OdBfQYfrBRrYGTdIsVBK6mMD8B6S5AaWGt7bgYld1fj5gUuBef+I/oxwW8Zz4DwNp2d+EMRgXwRc
M4bySTn07oqgEGoQp4EGwkC/ndMfBp0uSj0AXbNebkvXS0hmvMFqmiPQCHiLJyRFMmQBkE1bdewt
TexBi8s9oPEqeBBThlWGafJ62cWq+TlWItOjF39eLoBynfzYlnaPhF4YEoK0iWwWglKoNaYIK6Il
pcJIFXfPOdtCOqvTgcOnYm7MOaNtrlybOwIqxZjWLXQYEOZTBZWZ2MNu4LYG/h+qWRhJSYTyw+hr
1Pye44zgMNaBO5+bAbjz+elY+H94u5LtSG7luu+v8FIb8GAelhiltiVbEtXy0idrYDctNtliFduS
vt4RyJqQiSrWeeLR5vE1MwUEkEDEvTFxWH46EDPNK+aOLGsV8IaD2kkeQwMmAhYSTLnoPRiq7oU/
GepEBDDSc1CDllvvRYg/l9uX++2RHuIVKHB8jCqeRCUR+VtAkN4ZwizTMiZnrEvtF2uHaSUQZi6B
WMs7PkrwtPjf5Y0/4A41mgqfTEnOSsINAxFowVuoGdEBKAlzGSBWaEU4HeddO5fqCXCg9YDDm/CM
5tpy9Mbj8UQoCnfKUyTHOjjGlZbCnlH9y870eqnn01tEX+L0zP70Mjxv/xpDwuwGyQuonqpqQ9LW
FxAlCeQu8AGIy56TIL0UII7Tr1jN49D9O358/q6VUXQEn7nfPyzuf4dP/yeKLRBoWXTARVNYABhM
YrZwkIVEp4gEHQDfLznlWXHhGsW0H70v+f5pK/fc0IL1pHrmen94er7983GJ7iu3C4m5GhMByASf
Gt3sPrExlmhFAePmASZqK6xJb+++OshzjnbtHjdrHdRyvtbBsg5V/PV+tX7any3GzA3qG6mNFAKs
BtfIFfHOOweoB1CkFRwQT2D8VTxcRz5PFuvjRuqF6CilxUAnYcDv1vefV8MDfh9ag+n4bQocJUAY
mIJiQWLLBZwpwPIpaA6gw6RiryKKu8H7Yu8engrN6N38OjDGZqz808sjpmXtZj7gJqXG/AUrVYrG
k8QwjwLDbWD/IvwTeGLUgM+Evsox3U5zZvfbl5rlsCXtLGfJ9oZh5zWuzR02BxuF+qgEq3SEiwEg
yWNMAOxpBszBspIBVKcpll9yRJ8O2Yi0mGMLx5biEEX9+sP95qCqJQfchkeYShepEaiuMfrvAhh1
KQoxOgaAGcxIWf6hyNKJgM3C1qu5CcRf3t2t5skvL4/3281NzUH58IgoBgwiHcPeeP41aFDM7yJK
eWDkSgNCEBibydpxb1IO5pXl7kc+44vbP56sYAZRHaeLVSecOU/SsHj20TNiuANjljxhBcQW2XDi
mQSOpQtnORTFQ3hV21zO0/CTd05XwZkc5qtgMw9Pxehx+LJ9QWM8moadYcg0aAULEABCYPPh1NsQ
PAkO7m2SPoXyihtxeF6cE3xKIXYSXOARuzfaNapVZ43DMRXh5cvmCNCF4aOnQGcAE4oSKYIEOqci
2AHAPAzMnQolwcGSk1yEk3EaATidwy3O3dQk3T/+1oQAxugdp3hOrFc0WAcnO2Euj+WawBlSAIVl
yb5QW6R5k20+laHZ3cff2jXBYZ+tSaCZHSFkeXrc/jg8b9aHRB+wDFXfW6G85UoQ7UExCe8DcTEU
wgyTkqYc5Wtx738BSvhfbq+IKE2FftcurrNiudIT1DqqrO3T08Pi6Y9Raf0y/mOmtxwQL5Etgf0A
QF+iQQ+8IZFpuFIGTHrJr+ut3eAXVNfujWYxcs06i1kv5rTxdnhcVeGPYRBXuEmRKyBDWmPqcSGO
J0FSLNlYgORMpyvDILvRzwZBds8b2dViPZdd1aqm8T4/ffnzNL7HqLhxY65kLNylUjSh1WWrHAUY
KyOxPAOdBMLLc5/ItGO24nTYDFerQ7rbH8PzoTL4G07RQCsFZNYbRrKzGLjODAw08P8ABMbKTDMw
vAn/Pw7STK47uJFrqfbXED7l56fH+Pznl+3TAbJQAAh4EaMsNHqEjC4i4wdSDaCMZM1T4syazNKZ
zZgO2spk7zoyLcRepmPXoW8AP944WnG3D5LGBLC1SAX6tiQJdI4pokUQkSYFSFB2pTkM1wjhlJsL
4bScHPD/XG/9y/YTsOwxYeVmTK1nLMP1A1KJqanBSAJAyhNvVAIpiuD6Kqa2G/xsKiA+bIXWHUOx
WLoJKtqsly/PlV+OaWtKSQM6RY4uHdguzaLDw4UgyAs0XLEQDWZaycREFJct8u1u+DPpArunjeCL
njqBX/Zyu44xyZqc4moqtcYAaiaFGbiWNIFCEYUjjaEi5pyvSWG+bAtO3zgVXQwdZ4wYrDvcoJPC
/m8Yx/Mhi7apREXANhvA194SL6Uj0UdVUs47p1mbpti7vmJYzK+vWLhpNHcJwr/cI3GqcRsxGlK4
oUDtHMYONNwYrYGTG8vRMy4Y8FYRk7k2Ce7D+/Pb9uF9I/NiPdd3Yqmmgc39Ib1rwO94XBkf/Ti0
pGgLQAFGQQkLJ2AjreJEBQGnlAbvX/nu+8P4GgKev/eulX7oLElPmV9bFviNEvBN5ai6HKAxTQJC
MsFoJoAUGSna5OgypZnHS/SvGbcVTPOOYHg4mwyp+8e7g3aXmEs7BmySZJ6BWIlbEMvCCfUcFFqk
AMuzcSY5e0ms46iNTCs5V+9ipRYTVwWitHW5jU+fvzyvN5v6/ZWuhrhCILxIFJSsgitDUkCvEu6Z
TcAljC9Rgg6j7mogMZnrfHpI+167so7rCH851WIVSoMyUDVDR5kadYiw15GSGCiqBAUMiMJxjsVz
sOYJuei/jM/HZ62omnZExQw1Ww/GQ82l2J8JK/keAXlJPY0mEMEZpi8Ct7G+xuOTCL6w5K3vHorT
ESei2I4oju7P6B+bh+2JBsWTGZ1x0gkNxh1jNIBCwNQaPAHM0QAyscgm+OdkkHZ2t+rMPiwnJWff
D48fT3MTRsNZfyISAgQmWNCEsepBc2D6QS+R6DCZ2FHDk3xzSnIq0rmEmOMbzaLvhjm4EXcLubdZ
336/3+59+YoERhGKK6QIicVKCREnUI8UuE7eU69cepushf3crcCLrsCHsM+n0btIhs3j4aQIfoTt
PnNWSiHAigCQAZwhAeP3OYdSAB1wLnl7XuYDTuRZd+S5m4ZGf0pIe1R1tToMhERWwOaDtU25YBUQ
wKogfK3BlJYmLQE2vvlB+SmdCVKkdk1383soKWUT8BgreB9B76kXWfDgpdCAEwVDWk4D6gROeA5G
lSJ0UOE6NLEf/xyi2D9/1wi6uutIf6envuSCBzHdP9cWOX8evCTMCCQSeFhMiKBGZCYs1GSjiIUc
uBChYgYAr9IrwaFmhteDFOWK9ycvNSuXq/lZlIpNV/7z+vPTdv3r/fr/jgh6dKS76q6qUQCsSE0p
YH0aw9REwFNKewe4JIfkr/l882nO+U2m7zWLMuvOYbQcLrxu4hnvm6QkDJZJXbOSZHaZ24AVa3Dj
NVBCCxQQuClYWSUAaZf85hftKM2ZGMj77lot73xAK6bk55cYcZF7J4rgngKfdEQaAEACzZ9TIWIH
c2C7VhQwgtd8MBi2Ly08aMWUqiOm0hOQO2weDs4KZnYIVwNKC0IKojioPJE56D1WA5ihKO9zcTJd
gpKHQVuJ1Jx6yaUdJkjy631FdGVYrsdgMNYD4X9Wf2L4RfJQsBqIBsQ0Cv1RsLnEsQB76+F/orpm
K/cznDkou6fNEpaOdpawniaq3C6Hh2HxsMZO+u8ft+tdLtjxNMRipAIbQ4ww6N8FfRVEYMRwkxTc
YZel/VsR7VPS1BPmDG/qvdpswMp0vuHKTNkgEDBsdfHfz/DPNqcamEj0zjLCg0XF5YHPSpUI1UkB
OcQUJHbNx2tnOEsDT95p1+E661gfM0K/ptsfZ4E2EYoBu5lJSliGZrFxQQRVlWUWUctijDf/VKDt
IF+zrPXdnNIAf2OzJNHNb/55cb/dl5byG12RQc1WkgzuP7B0+NRYGsENCaAaCGVAegrw9WAvr3Iy
+rmMz+ald63AvLMKRY9eTjCsjY+T6dFHUoQzAu0gAwQM/IICSQ88EEpTMoU6H6I54+Nsh2zlUawn
j5iY7L0L5NP9PmamQAVj7Z9zVlGwAITmDLTHaArEl2N0JwmnlZevVclcGc7Z+z2+e3/ZL/Ld+3Z9
TnfW55ZTf8jDsMU062Om7R6DYVq0SJjRyjHGw8FyOJsjSdYF57HzQbhYmdWOfCobbNucSiiKHu9m
71+FiYVaTRlQoGIyysk5xtYU0Z7D4oUxLpa/CxPPgj4QWHdWMfM4jT0JjzmwN2wU3mvACjJL1DlY
vMEz8cYAxnVJsCwKE7UI8ez+no7bytVxOMEvD5lhX4bPJ7mMNQDsRMxIllPNYKYegCcrmhTrqKJO
MREnaWknY0zmNp25McDGXik2uvG/3IJN0RUUaFG9X0rqbB3gK+6zIYIhIMaCOy601oomzgv958KM
8KBd66q31rWcms1PwKsfP6LbZPT91p94ep0VwgGV58Df8YJJYGuwxOIVKyloUCRXwf3dBGe0w/iw
FbyTOgi/XJ4EnL7cg0n7n+ftMX8cHRAxOYato1hgWHwOug/omSA1XZclH5lk54JN7YATcebuH8VW
Zi/O5veH++1aHMyCQnJBKdfYwQpD+5jMWVsnWUW4VFYF57iItj2yzTCNAGKYZ+gouZrGmVbrzW/b
py+bE7Zja25g/YnF+VyFHDmFe4NQooA6cgrNgoMb5UEquEzXVfvUifYnFl84V/Qze7FZmGIdPauk
vVvxRkMdQ3nSjH1HAG/TzDMmqmJ4BBg4KCdrSNJS0AAcNSl5UTl1tlnpdUcaqzvtZja1CdF4a26O
HlqA06DVkyGMstrVQROXEMXYrJ3zRRjK3sLkos6/3Ytw3iwcXmmXaXubboe9WRiluwnHnAqHFK26
PWjgQsFeh5hBI2gTSPA6Em0idy6AEkyuPdTtYBM5Fh053Gqy3T+8PGzvt08vy0+zQnBEA2rfn2T/
f2sdNNeACTiJWgCTxCYvzmEzgMSBS/ICas1ec84vTH261bPXmmUOvHN5B0UvhC0rC8IW4t8wK0dM
gT9Rw6WM2TiOWFaTzxKmiItIWHFROhOEMO7qnhST2V6Pae7fbNfXwalqhQX2crq+XR8UdzM2weHw
eXSO+KfVmIfPZNBDXwoBoMWl0SWlot6Kjx6mP7/KaScUWIXoKP7VMfFhp0tWj5vNMWDHD2EQUWzU
6CMAtYUfy2KPOVtIcjGXKIWX9CKAOhm3FauH61bIDMYmzIu/sKcZPSAoPDg0OOujUICbsBGIxIgu
1QIIsbMGcw64jO3NbUZp5ze9bTF3h8LGX3+4/fHh5eP94/7aTAIFwXDAlQAndPFgG1nADnxMElCi
XDFsrBL1G5U39kVpl2Pn7hV1xxaT6E4su86F//aNBoSvsHkc/qyBOZm8Bj2fpOQAlIwHu2oU5nIA
JPTUG/lKOvd+7HOe3d3jRu67ebMx+OWKT/TnpM/Nzlxx4IoV5BnrM+a2klAYFv0L7OYUNTHod5A0
lFKucslf0eHmXHcblHruQYAzDp/ANQVy+OcRT+MJUmYHpDuTQDGPPgO1Qrc2id5lLDkFpHp542HE
M3Vvtw2WBmG6Ek7DtkdfC+40au6T37CqwoGvhIBHxOda54IZFTpZgjUOiTMTi/p7LXmOz9sVLHln
BatpNt5/rJ8X6+enzan7rDBqfcmBMFAiBEO4AAA87HUqMSsFOttd3ub9oH2B908bceW86BV+aQ4Z
b99+P6rziWpRmfIgLFiSImroORNrQPuCxik02RBKpG8VgzwRoBV9GDqiD4divXQ/fHx82uDfdVhv
Nthoty0CB3s6kplACyCsSGG/heTAviK2hXC19oimMM3fuzxuK+K8I5zDvxO1V+GLzeejAam9S3j0
kVIP3EoojpW5HvRErVXTJsmkHTMT6HcyRjv3ivfm5jWGCC83yPXD9v7hSKxM7VICyN9oR6jD9EqK
KXS+BCAxRmdHszNqIsiZASdCiZ5QB1P/87C6x0r/SScaqZm0PGJaFkbEApy5QLkgypmopU8yUPpG
nWhaCSbC647wdwdE/+8/5m9nLXRoTjIDmTcA5wWmkYAWEoi9dALKAoQqvFkLnf3srdDz5n1Og/Xf
7zj+da2HrzfuAKxqixoWecTE9MKwuSzgBGD42RKdaZQsyeKdaj9+O8y7djLbk+Cwbb8DvBwe4dAc
vrqpJAi4Mg8RL6YAEoRNEEPxEsyPwmzrxOOZQsXpeK0wnVIPrfW0zumH9XZY7bqP7BJM4L8bu61Q
mQCLZ08Yw4pFxwtxhnKSs8lwDq3lWb9dl4W9JGc40e7pu3Y5rrNGc9jwv44pPAp1juTwWRGMRI+g
NXrsDA7EGsBqTiol6fhEBf7Vy9+BKTpHzehlhRfw8v3y6fHr0eUoK0YNUgYGkAhQM+g7awzxcGXA
akfNBfdwT0Q7dzPKu3aqVW/+9TR4+/yy2eavw8NLRUj+Y22YPsbfuaqdN6W32DBKenTLGoa9yLDC
W2MjDcNF5ldhtd5EZ+K7nTfbpa3nKRXaan2B3d781+0xII9d/GTtw0xrEFh5CYYaCIH0HD3PiKKx
dB27PyQdTQaC8HZn+CjJGSfKbS8YD+ubO1b1grFJr+nv3h+KMmqTaVxmzfDhuqD3Cmh7TNVtXOCU
FUqsLCIpboRP+i3cRAcBzqUadKo2YB2dL7rgdEJ6N7uiij3JNPZmV3sDUBxIJqghHYwfe1SErDH7
T1qF3tBgzCXa24zcisZZTzQ1O2yY/fPj8Lh+GFM+apzRodtQBwl3qCSiaAGNYqIB8KA0YZpHZrIw
qsaM/vbOn4pwKUVpfGOyyI4xX2h1zLv7MAW9PlPBa1owJk2IFOA8ocs+g5YymmqmqXor0Puh9110
V+RhEmjabIftoabV1SBZTdRU1mZqOUlOAoYCEwbg3WGCbrKAqCTlTab7/Lwchz2VyshO+qpRy/Ve
qvC9v501TE3ZCY8lO6pgDzzusVZSR6KSSUYAx9funyprPcrXLEvTObsAqcRksw8BPefMfqd1Seh0
okQGbL8RHCAXRyNez+wSTWZsBHR2p5c9cZzsiLM6ZPwMLycBc6vqJhepotAA2wIcTlDyFrPaA4N/
GqmyUSb6SWzkOEo7eadMwLjVJd/qLrN61/GBGnPDTO1CU/9fbRPOM0CnRFLOsElJAs9F0AFYADAU
ZV6z+HYW6CjNpbTsaUoQrHGuCc3A7Gll5M/rj/eb7fNJU1NcnjfGY+cb4r3Cv36Bf+UgaEDQmC4Q
k5L/X9y1/rSNBPHv/iv8pRJI52jfj0p88GONaEipaNrrfUIhNhCVJIgEtf3vb2adpLZjk/YuuosQ
CvYyO2vP7jx25rcqS//Hysgm00FzeLZrzO0QzEP5+ORBMQZVpp9fH7XiSqgoI6iRcHGJ00xEuUwT
mNXCOX4cfQtd9yEbPD61BlN0DaYNEvn0PKubZoMP+Pc20QMUBQYfHSF5DJ5cFmPVrktZZKSmkVRg
KplUwIs9SnH0hyYrDSQ8vNUcnuxYFSaatBapxhF3TRA16zJnNHMRi60DK0KDnDoK9rfPlbciJq8X
ltRJN1i7JR1rxi0xvsS2ttY14Om3XokFhet3mmG2pInyQIkCwRjgWy41qAkaY+oo5fLVapwO6g0m
C74fI4GLk+38Hk3W04dawYMP8TPKLCaKC6JhZhOQcqNzCY9No9OgtOQtb6lBpdX/bVf/d7vo20Xe
CihoJ2mWpzzSgvjkf8zGiWlEXQoaPYb3JeWRAgq7zpssiw51XwjSG6EdVPoXA50YqN38xX2QNjcZ
SVPw+XDXBDSlNPB+nYpIyqRg1DCd/Ce46dW95jhtx9Jf3O6ii1vzmXaY5oI4WCsY4g2AF8nBxY1M
nujIEU2oJs7GSSt21qLW4OSua5LfyZ2l+jhZ3M+Kn9vIqH4spsworFvTmEceJ+AXgLAAB2C6+sBT
ewe5TqXVverqvr2EbgC0n8vp8n4xa+5OVAfdiM1BN37ZMUmScIewrf4wspxGloCxZISLScYTk6mj
7OBXgNjXXUzt42bXmrWewF3HE1B7yM+rYrBR1dUJ5vN6YKHais1AooUFiyzBMu3MwDciwQZXlpjY
gDeR8wNFki36fbmArWb18Rhyt/9Gja/PaJlz0+UECz2Nh65AHYhxXwu+tD9piiPmf0zgW2YdSTNK
LTXugM0GJPscNbjVYnPfEDGUtZXbYrOlt9NuVcWkSaijOWoyPCeHJzFiB1IHii01gnMdg6XyKqB8
nWyDL272Y9iG22I7H4vZ6smv+Lu4vt0VPwknYoo4ASkHHwzz3I1GqHvBNMlA2WWu22dv0myyY/fT
aQw4Za0oSXVs3fc15tbpAavS6/CLh20iGTHgyYJes8gbaDOFla8ph8WCMJ3zw8g1SLx/1x/vBk0O
RRfbU4+2iton/4I5a2XR9sKVTFLBwU5JcQeAEzz8AAYQKZInuHokhB9pV7vFQpP9Yl8NGsmLvVz5
yfP0YVgBHW3ALTdpGQkeGIJeeMw0WF4KlmjLnfXYKQpmlCVCHs8B2jHSt2BsbgfN8XSIlhQ79If5
ZPqw/FmYihYbzRgozizHqD0iFhhw7EGIIiFyUEWJzCtkvH0Jr9Fq8iA65EQi4A47aMFX3ucG/c7H
7k2GcDUO5aYK4TAQcplGUrM0sVo4cyAw9U/csh0vr5j1bdcThsg6xl0W7dJsByu0klWehKr8/iSJ
GSc5iJLAUvwUixrBHY2IYiBclsHVI8JAx65nf9w1x1N2yJISu32o8UXetnXzJJWGkCSC9Qfj8IiR
JISLdMLhx5GEM3ckW/dn7w2mlZ12MD3dg9Sa1g9LYNJvJFRhDoG5KTjB8yTDwCH8MjjpiclAF1Cl
3K8d1FTvogfVadp5UALyu+8DG71X04bbSEW59gnuq6mfORWQCpdVzC61OQK7IGQkRmwYJrMokkZO
5NQImsYy/6XqHoTXz7Yd9U+LvWZBk/+O6aHFrgr5w+K+JU1U0iS2LI2U02gQKBsZwkSE5rBjqbFZ
xo8kTbvOGyxP5X6qhSlJsS2un01f8LHX0GLBnfAJ1yonVmexhgmNrCN4ruUZizRDuJA0J1nK2ptk
DVpB4L5vch1Hy2J2t01T+vgyn8Mo8QDidPL4uArnIALh7Y9wuX4on8On6vBYEOr15Pm+9Im464fZ
anujOrh4PVl9vblbPt88zYq3Ia2uVadpT+H3unwbkvrFVbn2weTN9WbHh8iTf0ce/qiNCp6A7w91
z2xRdvXHKOH89/oMPo9CjK/Vn+81tLpaPP4IMTkO7yzvwp2t8TYcL9eTxzNGwTkahc/lalaAzX5G
BaznoxNl35yGq29Y51bcLF/WN8Dby2Jz6H1ZnCmw0EcnnL45Df58nq2xxg9oYP87ynTAzsNvcHNd
Ls6E0mx4QoDoridMdqku1fo5I9Wlel9ICBNnoK8wuHbnF1fvw/FfH1zY8/l8cT3+FF8GZz8/fU03
t4NsY+rC0oSb+NWO6KrVWJgBGQXvPobvLsbhfQWeXhbwL0XZQdoMe5qewBOAJbMsTquGdEDOt/+0
vRXC65wUBYKMhMAZ1nrWnshpMPQRsDDGK+HVYlr2jA+YGMWXl1dp+OqHUg4vfdv0ZFLMZ4vT3tac
DYOP4zgdhuef4uusn6xU+MA+rifTr+GBD0ihHoEQ33gW4rF7pS0XZBhszoAe+YfS11KAATYMbm6y
eBwfYIDRgRpB04tRfO4OtJUV1cuL90OXwQvu/1g94Eh17L6MD70CUN7Y9NP7i/Qqe50FsE+HwdxP
mhBR5V4ZlkCqK+9RhPNyjsVs/R+g+huTZnw1ji/Dg292IM+rpn+EIFYvq4aQV8JddW49r2EQ/A1Q
SwMECgAAAAAAGU0RRwAAAAAAAAAAAAAAACgAHABodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL3dvcmtlcnMvVVQJAAORDtJV3A7SVXV4CwABBPUBAAAEFAAAAFBLAwQKAAIAAAAFTRFHzaYy
PEYAAABGAAAAQgAcAGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZWNl
aXZlLWJsb2ItY3Jhc2gtbG9nLnR4dFVUCQADaQ7SVWkO0lV1eAsAAQT1AQAABBQAAABObyBjcmFz
aCBsb2cgZm91bmQgZm9yIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5EZXZlbG9wbWVudDox
MzU2Ny4KUEsDBBQAAgAIAEBNEUcWmEGQ/i0AAB+cAAA/ABwAaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS93b3JrZXJzL3NlbmQtYmxvYi1jcmFzaC1sb2cudHh0VVQJAAPYDtJVkQ7SVXV4
CwABBPUBAAAEFAAAAOxb+2/bxpb++fKv4A+LXrnpyPN+CN1c8Jmb2zyMKEkLFIVAUqRNRK9SUhL/
93uGlGSSohM7m929QNdAbZYzOvOdM+fxnRnlqlpn+XY7cY8/2Xo5TjabRT7+NU9/KXfjV/nu07r6
UK6ux2H+MV+sN8t8tXN/JxJT+odzlexu7j4NP5fv14v9Mt9evn/94t3L6PLHy4OgokqWuRV1+T6v
tuV6tb30Ln+7CqZ59bEEEJcPXHr8eZNdBuvVDp63ly+T7PX0oR91ns/hd1mUeTV5lLrOAfKdpqD9
E3cEv8dkTJ5cOMF6nrtvbzf5ccpvWiLJ3dGrZFd+zC/AUJW129XJ4P/4xz/Ain84b/LtBoxRpovD
Z7c37u+UmD+cd9u8cp+Hd4sKTBwnTHb55dtyeVqJYiIQ1ogoF5sJxxOCx0JQF2GFsfN66nbBg8Vc
ePmbC9PMWLgjwmLGLwDHZl3tWpMJcbzVenW7XO+37rt3NRDMVGSEYiiScYhwrBkyfuAhP/aN4Sry
IhE6jhNUyfYmn7tvb6o8mVtZ2HXBwsG6Atje9naVxeUin+5geOk40ecs3+xg1aMFo9+Cme+FMy8I
ounUHU2fP5tGz95ftGZag4MZf4nevJo9f/Xee/EcpofhGzs/2bn4M+78UOw471+6b/Jr63nuqzyp
YA7FEwehp65jDTObvY1+e+v2fw4CCDbC2AfUfkHhwf3dTtO//OFW6PNl9emzO335n8HrX//NY8Fp
NsfFk4kblttNsstu3D/3+R424E7GMilXaFfPdGAP3UWZbm+3u3w5+5BXq3wxnt/Cq6Ot/taYXRVF
YVQiRUISd5lkN7Pl9nq2q5KN+wRcwSGPFcTnRJ8EgQzJHdqJXutY8Xq/mie1c5zJIAXXBRGwx0H8
Zr96sV5vDrYGo91cWccHZJo47NFiBTNtsfDHiiKSOPyxslSuhNuWNN3kGaSrDCQybBzREdgX1hOo
04wzIjMX/f5qehA5Oj1duNV+9RJiaJLmBSCzWWXyB6xDBXPk49aZ0zRlyRfWsXIVd1RH7J27D4vN
UqUyWrgz8PGZdUMQwolydOM88LbrMoNSDJUJTSE1t4QwYxzz8Nz/t1MqqSOeSIPdgyQi3dGdGi/h
ZSc4l8uJwReOzX2AE8DO70HcVjvPNRbF3N3uksYpT4FKvhiodoXDIFomq+Q6rx4fsImU1P0AKqx2
ULvasXqUPaBBW4ZmWnJK3Nlx/mx5Xc3K1cf1h9w6FzN14D5OIGGyJ7BJSCBQ0JN56OTx+ppcJhC8
dtf/rOdX+W5frYay1KZZsyOuLY1lIiuwdo8TZ5/+PKFkDB/Vfri0okhN4wVtUYSdFGZ/NYX5X01h
8VdTWE7aKe3V9N2bF8BuVnlmq8+LdTL/lqT2/yzk/5iF4KJQ7pPfe9s5avbzwp1V+Xa9r7LcvrBL
1jyEcf1YHgIrzYsUzPBq2vjTrC75s1ntZETXBORRDptqY+7cP13Pb2tR+khCHiFJ0eRO0qm4M1VT
kUdGUWbcM0GnGFKdGAri6Tr7kO/Gm6r8CBzvGxKKSWxC2eYL2Le7yHmMSxmeYFa7ZwPmZcNPQJiW
6vFp5N5dYd9vV/h33hX9Lak8YY3ll5+ScjfblterZDGUu7KvkCgltZhn2F0lq/V2kec2AULnerR8
9uTJmAxT046SiQKeryGBzyeT2Qzo6O6m3B642GRSC55BLzG6m5DdVOvVejKZ76vaOX5erFfXrv31
U0tMPfYzWfwEmh1/Fk/dp+Bjq+3uhwvbPYheTvxX8jGZZlW52Vn364Ctmfo8NYVUczddJovFOptM
rAnfrXblIk4W27yFcb8qgUzPYNKHn0+zpzvAlL3c7/LPT39oY/0WjawuP7nper2odSGcuKPWAuOb
iRQXvTz9EP2YKe70+2eebGATsgTI+/X/vn5WMa7c0XtIEusKVBL0olcpHqISyXhfJXCCbF/Zw7Pp
UTm7mNTuCPK71WCWJtt8Agngolcxvr5igjPScpL6ZOptsm1ZyoL4yf24LufuqIfsx4vRxdPJBJBV
t1frcrWrgRnmjk5ywBBQeS56re9DcKVAlf57uA5JK7qDZ2f/WGPsQaQAUX+3NGy+Xxo+9M7fLQ2b
vxqjBgMeDmOBFtx7Aov7xyF3fumeu2eOicrzvJUPZrNiv6pZ3fH55+Nakwx88/XKLtZAaqWm44d+
btz44ukPP1xMJv8xM5PJepNDkoFiAr7c1IHJ5O+LZJnOk7+PLtq5qHZ9O/V/dsmnx2CzodWZCuHE
3dFRcLKYEM4gn5PHJj9eCOb++ja2dfW+wCXKdJdiml/0upAHLCWYKJqlPu2Kt/evJtxRM1qurq8a
VNtxttlMiDQX30C37ssY/PtlDPGdiRsEUHa4zfhU7m7svc7hWsO1RTR3R5KjtNxdTBzXrZLPk7ur
B0KwSk1OIbqqdGgAUm6VtQewxGxuNLafmHcG6o+lmNhF5mVbFi5ISrMM3K3alpOziw9sB9LN+erS
LrLdDOG11yGVHpblVuY4oIo8JZm0LmVlEdwdwJiKZoDcDUArmFLBc2YXqQg9X55xO8AGBmpZfABW
PSAGjFIvUnZ0PGUvtyoWPVkEUwwMIqvoZOgCyXWdF+vrErKLG1y9a67TwFOiqlpX9X3U4Ybt9FHu
vLWnDa/2y/R440i44zh+uUqqW/f5Erqg7cQ5XjR9Pt0xucjtviS2hX7w5eyovp1E7ul60v0Zs1DG
xo+QYswgFmmOtPQpMn5sBDVhGIfR03/vC6uuRcyQmUxRcPcJhPqhFLzNt7vpTbk8xP8IgyVYyDlm
jKE4MhwxFXvIYE8ggU2IDSEm8uMhS9wntYdrPoRrDn7vPpnm2XNISn1AgQ6jgMQ+8nzhIeZFGJkg
pEj6XiilDnwWBo/dmoMJD7fN1rx9q5+BaeuRaXzuhllK8qLQ52445G/G9w0NIh9pjUPEAiWQ0UIj
LaTyPWWIivwHKdW8aIObU83PwM1ZNh+MkRf5dZLdDkGMNZNhEGKkJMOI+ThAmvgKmViJmOhIU6Pu
h9jIHbZ+e0YHudDnbguNObdue38FH8AOhZRjL2TIDwMJ5hUx8jgVSEYhD2JJ4Rcdwt6VPIy+O6eD
v0jPLZ9Dsi8KMUQgh/yCEBEzYv2CgtFZAC6hpUG+CqUvpQw1ZfcY/X7Eh0GngWSLjGQq13dQjy81
STUBJ7F3ce6IMjPmgEl5IWe+8ZEIIs/6agS+yiTysDTYxCbwhARM+21lk8Cl/XBrKZ0SqfpLwctU
9/wx2c/LdX1a5tknd8THYBb4WP0XcPgRsYkZo9jnAhwyoMgPYoEwIxJ8UfA4FIBjWlObyxdlWkEV
uYyPFtlenmQPm+k03EWfmnP01JbqDnqgvKtsAUYbs7EwML15sFsacxZzRVDAAoaYoCFsqQlRFHCi
Q8hswqdfhP0aRAcvhjE3Yx3AqUrOAada2xzbA3wNgM1Y1lau/9r8LyDPR4GPQoLBAzn4os+ZgkiK
hIyo8hX3vwr32RfgPuvBnQ/AzedJz76tE9SRHFsDEywAsQTIlDNuKNaIAT9ELBYhMiIIkM+UkUTG
fhTrL0K+Ez4EO2iNt6FnNGVn0O3LGjqEwof8dnldHWsZ1da6nqdDDQCD2FrXhxTlCQ+jiOqIeIx6
EOGtWGpo+mVPVg+EGQCR4d52Q8WLp9Z0uI4oW1h1RGWAjUFBBO4IwW+QIR4UVh55hppAQr/wRbPV
Mu8tsPG0izMj5zgZhdyetnE2q0ExLsrrwxmbO4LkyGonbR6sHZnxqGcwCj1I64x5MQRVJBCNfaY9
JXQcRV/EPrDOsCYDEzt6sSI914tbvdTx9DhJy6MTcFPDp8TTWMHmS8UoBJkQkOFVjBRnEWRUIsMY
t9ygJ8bpLiXO15eFKbJO/Hys2bQ7UrUDqNoBQspJ6APB8wIOpJdEFGnDIDN5XsAI1OLA4C8a0cuy
fGFb/XsKT2tqs/7wtGaso1Wq5LlWqcp6WaH1JRnIvHZ+bd0gkoyGCiisUJAUghgcO+QoECrEMY2w
Hw84x1VzA9TCfCf9awS/iz0Z8PSM0l5E2nIzvV2m6wW0TI2fszFu3JwTeBI2RilRsA0B9CXAexmB
JGfCQKCAEh4YX1Fq6ENUOVvs/hLYmeZ0dTjPd8DnwdXz2tVfeFde8MvR1YHZ81oHFSnP+DpEBBgG
YoZw5FsWLyXzpdFSwH/fzc3yDAQMT+shdLpanEfx3NBEGdXfs2fQs96U2damJXDS2uugtRozUbOl
ADqSQEqOsG1SgC2FyGOYQCfJgNgzAuEafJWlHNe4f5eOM5wu4CEtjOp53kno+Pnruj+hB78zWI3B
dyHJ2pZYqDj0PYaEDIFDGyitOsDATKHWEu7HBBqWLypSCx/WoB7qQk/UAPS039jXh7XNV3Hzarrf
1N/JHdmv6tpdYJZv+RQKqokC4KeUIEbhSctYIyx8rpmKcBQ+KPqHlrpnPwZmdpRLyXmNnqc2I6Tt
07jVelcWt6f4oWRMcV0uwHe4z+MIxcKDSh1jA6whxohLL46ZUITVXcE5axgQ3AUm8gFgsu8w202e
Zzfj7e1qd5Nvy5ZbWpauDixdNZVZs9gXkHcjKMhgfmaQpr5G0NeYWGvhK/xluuvBkofsczw++WrY
T2uA03N8nUrendQ1hNTnhsiErA0BVvvXFb3La5zX3YiIYyUFElEAemofSrhlnn6ksYxF4IXky6Sz
LnrPXw9jfXP4zsf2sr14B3ImB7JxJvnRqap8uf6YFyXs3wE5YzW/h3bEEOjjqd2f0KfIozFHyvMV
87lROIoHfakvrwfmnIXM59T0wjdNsg/7Tdt9yBjSZs3smvRJjAg9LTXiygNipyIJWQdc3UCrR4jm
Elr7h0Sv31upbdxmzOlCTYbwJ71AGPBNiABt3b9m9xHEJlA7KNQc4lRpYKVMQLscBDy2HT20qt/H
9wcm9vQZqARzlvf2A8TYc6+kXOVVTT8ODAr6Ek4xhC5nGJzEQOqBdhsa19goG9yC6wfl0Lb8exU5
zehokCcDHlXYgOxo8CLZryCoT5shFB1TuyHNgz3HChQNsDb1eQW0Cgroh8YeijAnXky4iSn/akF+
cCbq4hme3p3T0bpQ+Ezr/PysJGi+kp7YbKRq7yNjG9yR0opxD5RjYX185IPWwLckxb4feD6NjPyq
rlbw/cTDjjoddPl56OSUmF7ohHm6v264paVOWNYtvG3fI+KHUQjMVlDmAV2HZOTT0AOiKwJFaIy9
QD3E2dorDONvz3C6cNMBHUTW0+Eqr4p1tUxWWe6tksUtVBGbwXi9Bcp2VH4A9jcRkCQO9o+B5foi
An2kp6MYaKCKHpS9BhYa1mhgYlcxUQwoJumxrtkdff8yWJT28uFQJoSuC3nkB9A6QcgE2tgzVGgM
tdD2csRgyiIVCRl/80FQM71s6ts5iK4OA4Uup7q/OWHZ3PpWt3fZABiUPYrDNg94QA89LDQ0H7Yr
FFGEPA+8LsQ+jiBNE6rC75cHztHc45Jn87q66/mA7kYf9+/D59O/mhhRTumYkKaOskAq7SuBYgXt
IpR5IO6hHyKugQR7oeAQXMMHTSeJHSCSnadjeAlAsvYmPH893VdFYvtxQ5qegtTeFGIcRfUdgmfr
I7R8yOCAoAAKCuVaRjr2vtJNHCTf11Echjuoc3XeVcDL7Hg4s199KlcnA0IHZ5Oo0mEQMHAUGgNA
hikUP2YEwkRAC6ECX3A1aLq2tB6MgV3MNT7CaP3bl9OpO4fMrkJ7iGGA7jNfe9DGsAgp6kUMc2hi
yDDnvxPWwVDQc4abF82Xj1sb+Cxf5c0pV7KY7tZVfWh0OFqRuLaP5IobHyIH+ivocL1AAzvjBikW
Skl9bADeQ5LcwFLDezswsasaPz9wKTDvH9GfEW7LeA6cp+H0zA+CGOyLgGvGUD4ph95dERRCDeI0
0EAY6Ldz+sOg00WpB6Br1stt6XoJyYw3WE1zBBoBb/GEpEiGLACyaauOvaWJPWhxuQc0XgUPYsqw
yjBNXi+7WNv3iseXRKZHL/68XADlOvmxLe0eCb0wJARpE9ksBKVQa0wRVkRLSoWRKu6ec7aFdFan
A4dPxdyYc0bbXLk2dwRUijGtW+gwIMynCiozsYfdwG0N/D9UszCSkgjlh9HXqPk9xxnBYawDdz43
A3Dn89OxcJLdnBozSWvOHZBICt9GOKSd0LNXAyoALsSIMIHnQaEaDPiWqBYEKNLnpMZWbnmEELyJ
p/tyd9ce2hCIwX2UiD0UCG6ZvwYG6RmFiCaSB6FR2oTdHeuK6SJg6hwBy3lBGwTr9L+Iu5LuOG4k
fdevmKMu4MO+HLHamrFnZNPyHOfVRqnGFEmzipq2f31HIGtDJqpYr83nuTRbzDQQQAIR3xcb/3dx
4w+4Qw2mwidTkrOScMNABFrwFmpGdABKwlwGiBVaEU7HedfOpXoCHGg94PAmPKO5thy98Xg8EYrC
nfIUybEOjnGlpbBnVP+iM71e6On0FtGXOD2zP73Mnrd/DiFhdoPkBVRPVbUhaesLiJIEchf4AMRl
z0mQXgoQx+lXrOZx6P4dPz5/18ooOoJP3O+f5uvf4dP/gWILBFoWHXDRFBYABpOYLRxkIdEpIkEH
wPdLTnlWXLhGMe1H70u+f9rKPTW0YD2pnrje7x+fb/94WKD7yu1CYq7GRAAywadGN7tPbIglWlHA
uHmAidoKa9Lbu68O8pyjXbvHzVpnajFd68yyDlX8db1cPe7PFmPmBvWN1EYKAVaDa+SKeOedA9QD
KNIKDognMP4qHq4jnyeL9XEj9Vx0lNJ8RkdhwO9X66/L2T1+H1qD6fhtChwlQBiYgmJBYssFnCnA
8iloDqDDpGKvIoq7wfti7x6eCs3o3fQ6MMYmrPzLywOmZe1mPuAmpYb8BStVisaTxDCPAsNtYP8i
/BN4YtSAz4S+yjHdTnNm99uXmuVg7uF0OQu2Nww7r/EcayI2BxuF+qgEq3SEiwEgyWNMAOxpBszB
spIBVKcpll9yRJ8O2Yg0n2ILxxbiEEX99uN6c1DVkgNuwyNMpYvUCFTXGP13AYy6FIUYHQPADGak
LH9TZOlEwGZhq+XUBOIv7+6W0+SXl4f1dnNTc1A+PSCKAYNIh7A3nn8NGpQxWK5SHhi50oAQBMZm
snbcm5SDeWW5+5HP+OL2j0crmEBUx+l82QlnTpM0LJ599IwY7sCYJU9YAbFFNpx4JoFj6cJZDkXx
EF7VNpfzNPzondNVcCZn01WwiYenYvQ4e9q+oDEeTMPOMGQatIIFCAAhsPlw6m0IngQH9zZJn0J5
xY04e56fE3xMIXYSXOARuzfaNaplZ42zYyrCy9PmCNCF4YOnQGcAE4oSKYIEOqci2AHAPAzMnQol
wcGSo1yEk3EaATidwi3OJ9m564ffmhDAEL3jFM+J9YoG6+BkJ8zlsVwTOEMKoLAs2RdqizRvss2n
MjS7+/Bbu6ahiU27JoFmdoCQ5fFh+3H2vFkdEn3AMlR9b4XylitBtAfFJLwPxMVQCDNMSppylK/F
vf8FKOF/ub0iojQW+l27uM6K5VKPUOugsraPj/fzx38MSuuX4R8TveWAeIlsCewHAPoSDXrgDYlM
w5UyYNJLfl1v7Qa/oLp2bzSLkSvWWcxqPqWNt7OHZRX+GAZxhZsUuQIypDWmHhfieBIkxZKNBUjO
dLoyDLIb/WwQZPe8kV3NV1PZVa1qGu7z49Mfp/E9RsWNG3IlY+EulaIJrS5b5SjAWBmJ5RnoJBBe
nvtEph2zFafDZrhaHtLd/jF7PtTJvucUDbRSQGa9YSQ7i4HrzMBAA/8PQGCszDQDwxvx/+MgzeS6
gxu5lmp/DeFTfn18iM9/PG0fD5CFAkDAixhlodEjZHQRGT+QagBlJGueEmfWZJbObMZ40FYme9eR
aS72Mh178LwH/HjjaMXdPkgaE8DWIhXo25Ik0DmmiBZBRJoUIEHZleYwXCPEUBIxEsJpOTrg/7na
+pftF2DZQ8LKzZBaz1iG6wekElNTg5EEgJQn3qgEUhTB9VVMbTf42VRAfNgKrTuGYr5wI1S0WS1e
niu/HNLWlJIGdIocXDqwXZpFh4cLQZAXaLhiIRrMtJKJiSguW+Tb3fBn0gV2TxvB5z11Ar/s5XYd
Y5I1OcXVVGqNAdRMCjNwLWkChSIKRxpDRcw5X5PCfNkWnL5xKrqYdZwxYmbd4QadlLm/ZxzPhyza
phIVAdtsAF97S7yUjkQfVUk575xmbZpi7/qK2Xx6fcXcjaO5CxD+ZY3EqcZtxGBI4YYCtXMYO9Bw
Y7QGTm4sR8+4YMBbRUzm2iS4Tx/Ob9unD43M89VU34mFGgc294f0rgG/w3FlfPDj0JKiLQAFGAUl
LJyAjbSKExUEnFIavH/lu+8P42sIePreu1b6WWdJesz82rLA90rAN5WD6nKAxjQJCMkEo5kAUmSk
aJOjy5RmHi/Rv2bcVjDNO4Lh4WwypNYPdwftLjGXdgjYJMk8A7EStyCWhRPqOSi0SAGWZ+NMcvaS
WMdRG5mWcqrexVLNR64KRGmrchsfvz49rzab+v2Vroa4QiC8SBSUrIIrQ1JArxLumU3AJYwvUYIO
o+5qIDGa63x6SPteu7KO6wh/OdZiFUqDMlA1Q0eZGnWIsNeRkhgoqgQFDIjCcY7Fc7DmCbnov4zP
h2etqJp2RMUMNVsPxn3NpdifCSv5HgF5ST2NJhDBGaYvArexvsbjkwi+sOSt7x6K0xFHotiOKI7u
z+g/NvfbEw2KJzM646QTGow7xmgAhYCpNXgCmKMBZGKRjfDPySDt7G7ZmX22GJWc/TB7+HyamzAY
zvoTkRAgMMGCJoxVD5oD0w96iUSHycSOGp7km1OSU5HOJcQc32gWfTebghtxN5d7m/XdD/vt3pev
SGAUobhCipBYrJQQcQL1SIHr5D31yqW3yVrYz90KPO8KfAj7fBm8i2S2eTicFMGPsN1nzkopBFgR
ADKAMyRg/D7nUAqgA84lb8/LdMCRPKuOPHfj0OhPCWmPqq5Wh4GQyArYfLC2KResAgJYFYSvNZjS
0qQlwMY3Pyg/pTNBitSu6W56DyWlbAQeYwXvA+g99SILHrwUGnCiYEjLaUCdwAnPwahShA4qXIcm
9uOfQxT75+8aQZd3Henv9NiXXPAgpvVzbRjzx8FLwoxAIoGHxYQIakRmwkJNNopYyIELESpmAPAq
vRIcamZ4PUhRrnh/9FKzcrmcnkWp2HjlP6++Pm5Xv65X/3dE0IMj3VV3VY0CYEVqSgHr0ximJgKe
Uto7wCU5JH/N55tOc85vMn6vWVSnjtJJy+HC6yae8aFJSsJgmdQ1K0lml7kNWLEGN14DJbRAAYGb
gpVVApB2yW9+0Y7SnImBfOiu1fLOB7RiTH5+iREXuXeiCO4p8ElHpAEAJND8ORUi9sQGtmtFASN4
zQeDYfvSwoNWTKk6Yio9Armzzf3BWcHMDuFqQGlBSEEUB5UnMge9x2oAMxTlfS5OpktQ8jBoK5Ga
Ui+5sLMRkvy2roiuzBarIRiM9UD4n9WfGH6RPBSsBqIBMY1CfxRsLnEswN56+J+ortnK/QxnDsru
abOEhaOdJazGiSq3i9n9bH6/wt7sHx62q10u2PE0xGKkAhtDjDDo3wV9FURgxHCTFNxhl6X9SxHt
U9LUE+YMb+q92mzA0nS+4dKM2SAQMGx18d/P8M82pxqYSPTOMsKDRcXlgc9KlQjVSQE5xBQkds3H
a2c4SwNP3mnX4TrrWB0zQr+l24+TQJsIxYDdzCQlLEOz2LgggqrKMouoZTHGm78r0HaQr1nW6m5K
aYC/sUmS6OY3/zxfb/elpfxGV2RQs5Ukg/sPLB0+NZZGcEMCqAZCGZCeAnw92MurHI1+LuOzeeld
KzDvrELRo5cTDGvj42R68JEU4YxAO8gAAQO/oEDSAw+E0pRMoc6HaM74ONshW3kU68kjRiZ77wL5
st7HzBSoYKz9c84qChaA0JyB9hhNgfhyjO4k4bTy8rUqmSvDOXu/x/cfLvtFvv/Qrs/pzvrcYuwP
uZ9tMc36mGm7x2CYFi0SZrRyjPFwsBzO5kiSdcF57HwQLlZmtSOfygbbNqUSiqLHu9n7V2FioVZT
BhSomIxyco6xNUW057B4YYyL5a/CxLOgDwTWnVVMPE5Dh75jDuwNG4T3GrCCzBJ1DhZv8Ey8MYBx
XRIsi8JELUI8u7+n47ZydRxO8MtDZtjT7OtJLmMNADsRM5LlVDOYqQfgyYomxTqqqFNMxFFa2skY
o7lNZ24MsLFXio1u/C+3YFN0BQVaVO+XkjpbB/iK+2yIYAiIseCOC621oonzQv++MCM8aNe67K11
Jcdm8wvw6ofP6DYZfL/1J55eZ4VwQOU58He8YBLYGiyxeMVKChoUyVVwfzfBGe0wPGwF76QOwi8X
JwGnpzWYtP953h7zx9EBEZNj2DqKBYbF56D7gJ4JUtN1WfKRSXYu2NQOOBJn6v5RbGn24mx+v19v
V+JgFhSSC0q5xg5WGNrHZM7aOskqwqWyKjjHRbTtkW2GaQQQs2mGjpLLcZxpudr8tn182pywHVtz
A+tPLM7nKuTIKdwbhBIF1JFTaBYc3CgPUsFluq7ap060P7H4wrmin8mLzcIU6+hZJe3dkjca6hjK
k2boOwJ4m2aeMVEVwyPAwEE5WUOSloIG4KhJyYvKqbPNSq860ljdaTezqU2Ihltzc/TQApwGrZ4M
YZTVrg6auIQoxmbtnC/CUPYWJhd1/u1ehPNm4fBKu0zb23Q725uFQbqbcMypcEjRqtuDBi4U7HWI
GTSCNoEEryPRJnLnAijB5NpD3Q42kmPekcONe2X9+HK/XW8fXxZfJoXgiAbUvj/J/v/WOmiuARNw
ErUAJolNXpzDZgCJA5fkBdSaveacX5j6dKsnrzXLnPHO5Z0peiFsWVkQNtR+z6wcMAX+RA2XMmbj
OGJZTT5LmCIuImHFRelMEMK4q3tSjGZ7Paa5f7NdXwenqiUW2Mvx+nZ9UNzN0ASHw+fROeIf62Ie
PpNBD30pBIAWl0aXlIp6Kz56mP78KsedUGAVoqP4l8fEh50uWT5sNseAHT+EQUSxUaOPANQWfiyL
PeZsIcnFXKIUXtKLAOpk3FasHq5bIjMYWhLP/8SeZvSAoPDg0OCsj0IBbsJGIBIjulQLIMTOGsw5
4DK2N7cZpZ3f9LYFf+wKG3/98fbj/cvn9cP+2owCBcFwwJUAJ3TxYBtZwA58TBJQolwxbKwS9RuV
N/ZFaZdjp+4Vdcfmo+hOLLvOhf/2XgPCV9g8Dn/WwJxMXoOeT1JyAErGg101CnM5ABJ66o18JZ17
P/Y5z+7ucSP33bTZGPxyyUf6c9TnZmeuOHDFCvKM9RlzW0koDIv+BXZzipoY9DtIGkopV7nkr+hw
c667DUo99SDAGYdP4JoCOfyDe6fxBCmzA9KdSaCYR5+BWqFbm0TvMpacAlK9vPEw4pm6t9sGS4Mw
XQnHYdujrwV3GjX3yW9YVeHAV0LAI+JzrXPBjAqdLMEah8SZiUX9tZY8x+ftCha8s4LlOBvvP1bP
89Xz4+bUfVYYtb7kQBgoEYIhXAAAHvY6lZiVAp3tLm/zftC+wPunjbhyWvQKvzSHjLfvfhjU+Ui1
qEx5EBYsSRE19JyJNaB9QeMUmmwIJdK3ikGeCNCKPpt1RJ8divXSevb54XGDf+Vgtdlgo922CBzs
6UBmAi2AsCKF/RaSA/uK2BbC1dojmsI4f+/yuK2I045wDv+I0F6Fzzdfjwak9i7h0UdKPXAroThW
5nrQE7VWTZskk3bMjKDfyRjt3Evem5vXGCK83CDXT9v1/ZFYmdqlBJC/0Y5Qh+mVFFPofAlAYozO
jmZn1EiQMwOOhBI9oQ6m/ufZco2V/qNONFIzaXnEtCyMiAU4c4FyQZQzUUufZKD0jTrRtBKMhNcd
4e8OiP7fP+bvJi10aE4yA5k3AOcFppGAFhKIvXQCygKEKrxZC5397K3Q0+Z9ToP13+84/uml+283
7gCsaosaFnnExPTCsLks4ARg+NkSnWmULMninWo/fjvMu3Yy25PgsG2/A7ycPcChOXx1U0kQcGUe
Il5MASQImyCG4iWYH4XZ1onHM4WK4/FaYTqlHlrrcZ3Tj6vtbLnrPrJLMIH/bui2QmUCLJ49YQwr
Fh0vxBnKSc4mwzm0lmf9dl0W9pKc4US7p+/a5bjOGs1hw/88pvAo1DmSw2dFMBI9gtbosTM4EGsA
qzmplKTjIxX4Zy9/B6boHDWjFxVewMvrxePDt6PLUVaMGqQMDCARoGbQd9YY4uHKgNWOmgvu4Z6I
du5mlHftVMve/Ktx8Pb5ZbPN32b3LxUh+c+1YfoQf+eqdt6U3mLDKOnRLWsY9iLDCm+NjTQMF5lf
hdV6E52J73bebJe2mqZUaKv1BXZ781+3x4A8dvGTtQ8zrUFg5SUYaiAE0nP0PCOKxtJ17P6QdDQZ
CMLbneGjJGecKLe9YDysb+pY1XPGRr2mv/9wKMqoTaZxmTXDh+uC3iug7TFVt3GBU1YosbKIpLgR
Pum3cBMdBDiXatCp2oB1dL7onNMR6d3siir2JNPYm13tDUBxIJmghnQwfuhREbLG7D9pFXpDgzGX
aG8zcisaZz3R1OSwYfbPx9nD6n5I+ahxRoduQx0k3KGSiKIFNIqJBsCD0oRpHpnJwqgaM/rLO38q
wqUUpeGN0SI7xnyu1THv7tMY9PpMBa9pwZg0IVKA84Qu+wxaymiqmabqrUDvp9530V2RZ6NA02Y7
2x5qWl0NktVETWVtppaT5CRgKDBhAN4dJugmC4hKUt5kuk/Py3HYU6mM7KSvGrVY7aUKP/jbScPU
lJ3wWLKjCvbA4x5rJXUkKplkBHB87f6ustajfM2yNJ2yC5BKjDb7ENBzzux3WpeETidKZMD2G8EB
cnE04vXMLtFkhkZAZ3d60RPHyY44y0PGz+zlJGBuVd3kIlUUGmBbgMMJSt5iVntg8E8jVTbKRD+K
jRxHaSfvlAkYt7zkW91lVu86PlBjbpipXWjq/6ttwnkG6JRIyhk2KUnguQg6AAsAhqLMaxbfzgId
pbmUlj1OCYI1TjWhmTF7Whn58+rzerN9PmlqisvzxnjsfEO8V/jXL/CvHAQNCBrTBWJSUqf4/1gZ
2Qr9rl2e66157IL5srp/qk0xboZMv6ofjRZaapIoWiRULj4mSYqKAW61zFm8jb2Fqc91Nrh/Gi1m
2VvMuEnk0/P6FJrdfMR/7xM9wFCg8zFTWjwwueSxajdHTqwyjCgNUMlGCR/2TYqjP7aiNJ3w8FG7
PPXP3o5st20c+K6v0EuBBFgZvCSSBfKggwq8jpsicbvdp8CR5MRobBexg7Z/vzOUrei0291ghSCw
JXo4pIacg3P07ApzSVqbVKPEXTOJmjaJUZIZj4XagBQhgU4NBfnb+sprEZLjgSV10A3U7knPnnFP
lA2xre11jfT0B61EA8O1J82wWuIosIkSBSZjgE+pL4FN0BBdRyn3j0bj9EBvIJnzro0Ebs4P63tq
69O/BjxYEz+jTKOjuCASVjYBKlcy9WHaJCoNgfR5S1tqQGn1f9/X/6Kyvo3TlkFBGp8macw9KYh1
/kdvnJB61MTA0UN4X77/RgaFqvMmyqKH3eeCDFpoRyX/RUMnGmr337g10qYqIXEMOh+emgCn9BW8
XxN4JGa+YFQxGf0vedPLZ81x6p6tP7+vrIsH8Zn2iOaCGNgrGOYbAC2Sg4rrqTSSniGSUEmMDqOW
7awFrYHJom+RL/xKUn2arx+W+esxMrIfjS4zAcatSfQjDyPQC4BYAAMQXa3hqX2CXIfS6j7o6769
he4TaD8X2eZhvWyeTpSFbsS+0I3ddlQURdxg2lZbjCylniYgLClhQpLwSCXBm5zglwmxb/qQ6ubN
rjVrzcCiZwaCTubnbT6qirljeetV3bBQHsUmQNFCg0QWYZh2ouAT8UEGDzRRoQJtIuUngiRb8Id8
AVvN6uNRZNF9o8rGZ7TEuWwzx0BPZVNXIA9Eu68GXdpWmuKY8z8k8CnRhsQJpZoqc0JmA5BDiho8
aqHZFUQUZW3mtt4f6VXcrYyYVBE1NEVOhnVyeBRi7kBqgLHFSnAuQ5BUjiaUr4Nt4MVV14ateFnh
zaa6XG6/2R2/suvrKvhJGBFSzBMQc9DB0M9dSUx1L5gkCTC7xPTr7E2YTXR0151GgVLWspKUZet+
7NC3To5Y6V6HH2zaJpIQBZos8DWNuAE3CzDyNeawWRAmU346cw0CHz71x6dOE0PRh3Zms60i90m/
oM9akbe18MCPYsFBTonxBIATLH4AA/ACkka4e0SEv9GpdguFJvp5lw0qn+cdX/n5c/Y4KRMd7ZNb
7t0yIiwYglp4yCRIXgFs0ZobbXOnBLCiNBH+2ylAFSJDG8b+sdMcTw9p+aLK/rCaZ4+b18BUlNho
woBxJila7TFjgQLFHojIEyIFVhT5aZkZr0vhNVhNHEQPndhymOykBF9qn/vsd9Z2rxJMV2OQbkoT
DgMi92PPlyyOtBRGnTBM/Ru1rMLliFjfVj1hiKxn3EXeDs02sEMHfuknEZR6fxSFjJMUSElgKH6M
QY2gjnokYEBcmsHdN0wDHZqB83HTHE/RQ0uBqM6hZuO0LeumUewrQiIP9h+0w2OOJCGMJyMOf4ZE
nJk3knVfe28gHeisB+msk1IrqxdLYL49SCjNHAJ9U3CBp1GChkP4p3DRE5UAL6BBYH6tUFO9i4Gs
TllvoQTEt6sDK9mJacNjpLzYWQf3bWZXTplIhfulzS7WKSZ2wZSRaLFh6MwSkNgzIqVK0Dj001+K
7sH0+smho+Fl0WnmNPHvWR5SVFHIH9cPLWqiPo1CzWIvMBIFgkB7ijDhoThsWKx0kvA3oqaq8wbK
md91tVAFyQ/B9cvsBae9li0W1AnrcB2kRMsklLCgEXVMnqt5wjzJMF1InJIkZu1DsgYsxzE/9r6O
002+XBzclG5fVisYJRYgjudPT1t3BSTg3v90N7vH4tn9VhaPBaLezZ8fCuuIu3tcbg8PysLFu/n2
691i83z3bZm/d2l5r6ymncH/XfHeJfWb22Jnjcn7+82OT4En/w08fKmNCmbA9oe8Z7ku+vpjlFD2
e306n6cu2tfq83sDra7XTz9ddI7DJ5uFW8ka793ZZjd/umAUlKOp+1xslznI7BdUwH4+PQv0u3N3
+x3j3PK7zcvuDnB7We+L3hf5RQAS+vSM03fnzl/Pyx3G+AEM7L+CTEfs0v0OD3fF+kIoIiZnBIBW
PflUkPJWrZ+L/a16XwgIHWegL9e5MZfj6w/u7O+Pxh24Po9vZp/CK+fi9Rpqun/sJHtRF7YmPMQv
T0S3rcZCjcjU+fPW/XM8cx/K5OlFDj/Jix7QajLQ9AxmALbMIj8vG9IRuTz86PDIhdc5z3NMMuIC
ZhjrWZuRc2diLWBuiHfc63VWDIwPkJiGV1fXsXv0ojKAl35oejbPV8v1+WBrzibO7SyMJ+7lp/Am
GQbrBzhht7t59tU9cQEVsikQ8Z1FIZyZI2050I2zrwE9tZMy1FJwBU3v7pJwFp5AgNFRMIWm42l4
aU609ZlCqFfjDxOTwAsevrQccYQ6M19mJyaAAvPGpp8+jOPr5DgKIJ9OnJVdNC5mlTsyLIFQt1aj
cFfFCoPZhi+A+huLZnY9C6/ck2925F+WTf9wgaxetg0iL4m7HJRvidB1nH8AUEsDBBQAAgAIAJNM
EUfqinxCYQUAAAUPAAAKABwAaHR0cGQuY29uZlVUCQADlQ3SVdUO0lV1eAsAAQT1AQAABBQAAACt
V21v2zYQ/q5fQbgwsBWTnLhx5w2BAddxmixJnVlOAyxJDVqiJNYSyZFUEmfrfvuOtOUXyREKbA5g
k8fnuTsej8eLT+QjkWPONWq0ciUbjnPJg/kpTQkIdCZat2R2QXUr0VqEXgprDeeahq8BBA0bjh9w
ST5wLF+FKYOYGQQYnNCM8FyjdwcHzgUhop/SR4JGzLnCz+v5mPyZE6UVOtxGFdTDjuNcUeYLLIlv
twRAw9+RdBxfY6l3AIOUEmbUdg7MtDBzTeQgoWlozMHHRAWHVzzMYT8418nLNOFKT7OlJKUz8kyC
FhY4SEi7BeLpBuUpvk2nLEjzkNRxV5ASMeXxNOAsonEdd4Mq0ROCQ9h2HXcFKRGVSutIsFwiZHAq
dQyzXqJgRWs9M+slShDTOgYslwiMxFxTrClndcQtWPnkMhyTDIvao1thyvsLjL76LS4hZWJKcT3N
AEokSZ4k1bVnsIKUiCIRnYK1+pTJMDcoQ3SWN+kTzgg6bP/sHcDfoeMcn1BJAs3lArV6jtExEnZr
6JyFoEuhU56m/MlfZJeUzRW6ylNNP1PypNAQTA0+ngPS3gBl6X2DHoElSUNiZkulEnIV4gNrP4WE
LTZQFEmemRXnuLX2pec4/SAgSpmaZF32Eo2tBFw2QoX+QY0v994Pd2fJw91EP/x9dxI+3PnqYWq+
fmz0Xrd7AoONWSPxIYNUtLDuHresfnDhRpEBZpzRAKfWCShzJyTCEIHJQhCkybNuiRRT5pxB6WAA
ueR8nguFRlFkylB8SR5Jip6wZGZ2ymWGoXg3E9RMUTNHTY3uG01530DNnkLNmZn9NSYRkUR+oyA2
c3BDuv0YKp8RNVDAsxllJPwujRae8V3zGxPI7aHmTQOS0Ap2UdYwXhpuIDso0sinMcM6lzYmzvF5
VFSTdZIHPYhkIe+VMbaqBMsz6ofhJWZxDgZQiJEXzitiliKPpRUxYcgjrCrWICYVcSSRF8mqSUiu
sIqGY/NI1WRiUnGNHiRYKjB37o/cbrfzi9tFHlV8OaxwKfhFdUX8Ffb8Fe9T2T5ot93frmGZqgpt
DtuZy1dpF2Prijuv7phB2Fg1bIyDmFfEAgIh+Ks7bi/NiGqoBGxX6D1idybNCvxUFlP9grw0r8gD
iFGAq4ek4JCqoVGPyFOPVSWADkB/UGXIHHmyavYlcSe3yIMf/VSOwAcad4q6i7xi5s1gUIbenn86
Gd367mG7cwjmhR2UQYPr7vv3a32BgNmrQTembNg3PheYi9F51x0Xauacdt1KktwMfDi3ApMHqr0P
cbSNOKogJqeQ7WuEjrqOheze8+33eXXdzacI8LWkHF62hbnJcPXhmoNmuKehvX9wX+BuQJ5DZkIW
Qj4tcwcOy+QJ5AScP5z16mx2ys3KW1unsRAp1HDjROvZha4SeTp+WWOGLOAhZTF6dqFWCgmPDPL+
2LMav1CBvPhll36GWZjCIwM9jKsCSU3awxgyPN11wz4Xic7gPinzU1agbGV1hYlvWGCqIBa6WLlU
2Tasrsbal39TY/eEwvb3LuDA2UR8H3CG9fcAXcVzGRCrWO3LjJDK7YxYP/227YC+G749G6zlsPCv
csiwMI1SHNuOG7oODv8scLa7pBIu9ZQLwqYaprBcE7ai2Vo5N15OhyyGN9e8dlvCAWchgtd0+PvN
0J9Mr4aTs9HJN/RlMu4PhtvAsVHuvUUuujt9KBn/TKXOcWo6CPT21+7R0bul4b39ml3wLzfeHLe2
+KDujfMG9eFIiKsECWhEAxSZdmahNMmQkFwT27p6gFw1Ug2pZPB/9EtbvaTpzry39969Z7qiMOJy
/l8sbDWG/wJQSwMECgAAAAAA9EwRRwAAAAAAAAAAAAAAAAMAHABqcy9VVAkAA0wO0lXcDtJVdXgL
AAEE9QEAAAQUAAAAUEsDBAoAAAAAAAtNEUcAAAAAAAAAAAAAAAAHABwAanMvZG9tL1VUCQADdQ7S
VdwO0lV1eAsAAQT1AQAABBQAAABQSwMECgACAAAA9EwRR/4nOOA1AAAANQAAADUAHABqcy9kb20v
Y2FsbGJhY2stZnVuY3Rpb24td2l0aC1oYW5kbGUtZXZlbnQtYWN0dWFsLnR4dFVUCQADTA7SVUwO
0lV1eAsAAQT1AQAABBQAAABGQUlMOiBUaW1lZCBvdXQgd2FpdGluZyBmb3Igbm90aWZ5RG9uZSB0
byBiZSBjYWxsZWQKClBLAwQUAAIACAD0TBFH7buDOC4BAABCAgAAMwAcAGpzL2RvbS9jYWxsYmFj
ay1mdW5jdGlvbi13aXRoLWhhbmRsZS1ldmVudC1kaWZmLnR4dFVUCQADTA7SVUwO0lV1eAsAAQT1
AQAABBQAAAC9kc1OwzAQhO95ir0nW6tckDil0CAViqhIRM+usyEG167sNW3eHveP8AScLI2+mdld
IyKId2filoKYS5aiWtdiTZtnzZfnPmrTijcyJAMJIwcXGZkCo6cQDQfxGUTrtkJJYzZSfWEXrWLt
LO4199hL2xpC+ibLSIcdKaZ2wgfO8jz/13KpOEpzqi5LwGlxC/m0uIGyzHDdkwUJTzVck0CHJFzj
CtAMoXfRtLChE5S2gEUH3NMvBb1MJuuS5kcxaZoDnGepjqPAzrsdeR6KZJc8opeGlPCnJcsfZ4vl
HTR6Sy2kC8Beatb2Azrnj6zuhrmzBOxGVwYZrmZ1DU1P406/Rfs01BmEVvv0J2aYXAwhKkUhdNGY
YSV9SEg6BftIGWbYVHUDD68vq2XVVEn4AVBLAwQUAAIACAD0TBFHzE0f6KEAAAD+AAAANwAcAGpz
L2RvbS9jYWxsYmFjay1mdW5jdGlvbi13aXRoLWhhbmRsZS1ldmVudC1leHBlY3RlZC50eHRVVAkA
A0wO0lVMDtJVdXgLAAEE9QEAAAQUAAAATY9BCsMgEEX3nmIOEHKHUly0tDSgkLXRCUpFg44tuX2H
piTdvnn/z8zoMYGBqwJrYpyMfUKoDOaWLIWcOggE1ecWHUz4ldD1cJmBPO4WeMOhlJmVAzILVHmW
XET5wkSwlLxgobXjuKFD/W3ghr8tQgwnpUB7PI7bE29u3zxwoaCluPabX5u1WOvcYlwHUyob/BKV
hkJoqTScH/fhJrUU4gNQSwMEFAACAAgA9EwRR1sVr3BfCAAAMR0AADsAHABqcy9kb20vY2FsbGJh
Y2stZnVuY3Rpb24td2l0aC1oYW5kbGUtZXZlbnQtcHJldHR5LWRpZmYuaHRtbFVUCQADTA7SVUwO
0lV1eAsAAQT1AQAABBQAAAC9WW1v47gR/p5fQSRoAxwi2Y7jXOxkXewmDnrtXruog+7HgpIoixtK
9IlUbG/b/97hm0zJkpMDss0iK5Ecct6fGSp3mczZ/OQuIziBR04kRnGGS0Hkh/NKpsHNOUwLuWNk
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
AABGQUlMOiBUaW1lZCBvdXQgd2FpdGluZyBmb3Igbm90aWZ5RG9uZSB0byBiZSBjYWxsZWQKClBL
AwQUAAIACAAMTRFH/WrzNsUBAABuAwAAKAAcAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5
bGUtZGlmZi50eHRVVAkAA3gO0lV4DtJVdXgLAAEE9QEAAAQUAAAAtVJNb5tAEL3zK+ZmCF4IkXJo
JUtuDZGqVE4V06RS1cMCE1h52UXs0Nj/vgN2LCepequEdqWdN+9jBiEExA9WDy26OJUk4+xxEz9i
cavoeH0elK7ie9QoHcZa7u1AgtCR6NENmlzcYqVkTL0st4dTKCMKaSrhaK9R4K7DkrCKaEdeGIb/
X1GWNEg96S2XIJJ58gHCZH4Fy6UX3nz68vUj5IpJgJnhWSpSpoYn24OxpJ72qTUIZKFAKKXWWHng
iZwNADWSYNIY61yDckAHyoHsOq2YsbR9z2n1PvJE9pCtc7+UpuMQ1PR2qJvAE564uIBVg+UWlGFt
qeFoH6YwLCA5rifuv699ZcZCPr4nsIDfqkIbEe5oenI/L38xY/bjW7bKsxT8t/VIo6mpgcUCZsks
gLvbc/Q5eaSlqQdZ44RF82/wVrHbEVjKjpQ17gh/azlqbcWMMHONfeYpz4LTWBrWw+DQcrA9jskP
TgiHuMXqZWDT/MuBp2vGm1djte3ducMaaWXbbuB/bTPuyGdYqtxIm2lsuTGIpq7JeV8X/tX19Rxe
juBd5L8RrjlQEBUcruaFmmr1ivByDuN3olqncHcDebbJOcYfUEsDBBQAAgAIAAxNEUcM+uTqNgEA
ADMCAAAsABwAbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS1leHBlY3RlZC50eHRVVAkA
A3gO0lV4DtJVdXgLAAEE9QEAAAQUAAAAfVFBasMwELzrFXuzFVKTFHLMyXEvBac0bimUHmRrkUQU
yVjrtvl9JQdDGkpBSDA7O5qdZQ0GAtKCINDZIpAHYS10IwYwAUTfW4MSOj8M2JE9F6x6reom74Tr
rTiTHvyoNGdssYBSY3cE4wwZYeN71wongQYR0UCCMLDnlzo3LuFNgtewhU8j0ReE3zRB4X31wVn1
9lSVTbWD/LZcWHSKNGy3kK0zDvvHK/K1dGGFU6NQOFHR/cs9mug08TrRk/EuXNi3douTl1EPsqD9
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
poaB3TIgSEWGJJqjCMRIAIoDJViggBA1nQsSfVOaPJi0GL7BOeN+5/wZo1sfWg6CCNP/mPw/UEsD
BAoAAgAAAAtNEUf+JzjgNQAAADUAAAA1ABwAc3RvcmFnZS93ZWJzcWwvY2hhbmdlLXZlcnNpb24t
aGFuZGxlLXJldXNlLWFjdHVhbC50eHRVVAkAA3UO0lV1DtJVdXgLAAEE9QEAAAQUAAAARkFJTDog
VGltZWQgb3V0IHdhaXRpbmcgZm9yIG5vdGlmeURvbmUgdG8gYmUgY2FsbGVkCgpQSwMEFAACAAgA
C00RR65Mv9tYAQAAjQIAADMAHABzdG9yYWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUt
cmV1c2UtZGlmZi50eHRVVAkAA3UO0lV1DtJVdXgLAAEE9QEAAAQUAAAAvVBNb9swDL37V/C4wlGE
9LBDTlmbBCjaYsUStNiRlplYqCylItU0/3504gEBdt9FAsnH90FjDNjXFEpPbJcoaFdvG/tGzaOX
8bsrPrT2FwVCJhvwlIoYIRaTiUsQtiwp457skRr+CNZ1GPdkPimzT9Fo1QZScGEy9HUgJ9RO5Uuq
uq7/qzg6KRjO0osFmNnkO9SzyS0sFpXZdp5hINa3QwGEVg01qgoOIzQE6BwxUwu4E8pwFvJxD15X
Rrkp/E4FuEsltMCkOxEo55QBGzUO65TuMIPyBlLKkI4TiEnGae+5R3HdQDoS8rQyl0Svl8YcJGNk
TaKFOguhQff+D4jL2ewV4GpNx4JCPUUZ3f2FzcGdrQ+eDpkOmOkK+22mg4G6uySYj3lu9HqrzRbu
fz6/PK22q2lVr388PM1h63s91xDtiF6GWDsVU3K/Oy1TJJA0HHZQp7aC6g9QSwMEFAACAAgAC00R
R1l0enDHAAAASgEAADcAHABzdG9yYWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1
c2UtZXhwZWN0ZWQudHh0VVQJAAN1DtJVdQ7SVXV4CwABBPUBAAAEFAAAAF2PTUvEQAyG7/0V79EF
KXjtUaknRcEieEyncWdwOrMk6fr3TbsVFy+B8H7kyRCTwljNZyQDYSKjkZQRqGBkUAisyhPo01gQ
IpVjKkckj5xZNNXS4qMu0FiXPEHZMwUsUgU01sXwWOs9Cbw3s1fm+n2LUm1X56QzWYhr6V6obbPd
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
AQAABBQAAABQSwMEFAACAAgACU0RRxJAb/BbAAAAhAIAADYAHAB0cmFuc2Zvcm1zLzNkL2hpdC10
ZXN0aW5nL2JhY2tmYWNlLWhpdC10ZXN0LXN0ZGVyci50eHRVVAkAA3EO0lVxDtJVdXgLAAEE9QEA
AAQUAAAAy80vLU4NTi7Kz8lxqgzPLMkIz0hNzXHMS/HNz03NKynNDchILE4tVkhLzMxJTVEoyVdI
y8wD0hmpCiWJRempJQplmanlCoklCgZ6BmCgA2Nw5Y6aPWo2EWYDAFBLAwQKAAAAAAA9TRFHAAAA
AAAAAAAAAAAACQAcAHdlYmF1ZGlvL1VUCQAD1Q7SVdwO0lV1eAsAAQT1AQAABBQAAABQSwMEFAAC
AAgAQE0RR/Qr1e4zLgAAzJ0AACkAHAB3ZWJhdWRpby9hdWRpb2J1ZmZlci1uZXV0ZXItY3Jhc2gt
bG9nLnR4dFVUCQAD2A7SVZYO0lV1eAsAAQT1AQAABBQAAADkW2tv28iS/Xz1K/hhMVeeTMv9fgjZ
DMgmmZs7eSFKMgMMBgJJkbYQvYaSkvjfbzUpySRFJ3Y2u7hADMRm2K3qU9X1ONVtvy7XWb7djr3j
V7ZejpLNZpGPfs/T3+a70ct892ldfpivrkZh/jFfrDfLfLXz/iRMKPHX4HWyu779NHxdvl8v9st8
e/n+1fN3L6LLny8PgooyWeZO1OX7vNzO16vtpX/5x2s7ycuPcwBxec+lR5832aVdr3bwvL18kWSv
Jvf96ODZDL7Pi3lejh+k7uAA+VZTiekjbwjfR2REHl0M7HqWe29vNvlxyh9aIsm94ctkN/+YX4Ch
Sme31yeD//rrr2DFvwZv8u0GjDFPF4fPPnQL3m3z0nsW3mITmAwGYbLLL9/OlydAFBOBsEZEediM
OR4TPcKYeQgrjAevJl5bRzCsBy//8AgemZHwhoTFjF8A3M263DUmEzLwV+vVzXK933rv3lVAMFOR
EYqhSMYhwrFmyATWR0EcGMNV5EciHAwGtky21/nMe3td5snMyaKeB0rbdQmw/e3NKovni3yyg+Hl
YBB9zvLNDlY9Gjr6w04DP5z61kaTiTecPHs6iZ6+v2jMdPsC1v4tevNy+uzle//5M5gehm/c/GTn
4c+49UXxYPD+hfcmv3IO6r3MkxLmUDweIPTEGzjDTKdvoz/eet2vgwCCCWcFPKDGC07gwfvTTdO/
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
StMbZzgRgov/l9nTtzLbhS+DlNx81b9nTnWGKlGRd9F7PPqztonxW5DCFgy8j5on7+DAP4L/nQ9z
8QDCb/7bwn8BUEsDBAoAAgAAAD1NEUf+JzjgNQAAADUAAAAvABwAd2ViYXVkaW8vZGVjb2RlLWF1
ZGlvLWRhdGEtdG9vLXNob3J0LWFjdHVhbC50eHRVVAkAA9UO0lXVDtJVdXgLAAEE9QEAAAQUAAAA
RkFJTDogVGltZWQgb3V0IHdhaXRpbmcgZm9yIG5vdGlmeURvbmUgdG8gYmUgY2FsbGVkCgpQSwME
FAACAAgAPU0RR7Gr2sooAQAADAIAAC0AHAB3ZWJhdWRpby9kZWNvZGUtYXVkaW8tZGF0YS10b28t
c2hvcnQtZGlmZi50eHRVVAkAA9UO0lXVDtJVdXgLAAEE9QEAAAQUAAAAvZDBTsMwEETv+YpVrqlr
lRucUmiQEEWtSARnx940lrYxyq6V5u9xIjjwA8gHy6uZNztWSoH+CBSvyPpgxOjqs9af2L56+bke
oyen35HQMGoyc4iiBFnUiBxJWE/Ymuh80A5tcKjWh3KJpiQExX0YReHtC62g28pNsqIo/inWWImG
1tCyBLXb3EOx29xBWWaqSTSQ3gisBD9cwAywYqDzhDD13vbgGRIPVh64gAxDELAmMoIBOxrut1nx
vH85PkDjr+ggrQqT8bIQuzAuet/NhzBgIkGLyUyELoNMnQbgaC0ybyBVhMkTAeNCZhx9Cgsd5Od9
XeeQPovNBZOyC0RhSkntDHlT1Q08nd7Ox6qp8m2mlrM4fsldJJrPZuRkWMqMERfJH18afANQSwME
FAACAAgAPU0RR8bAhaWXAAAA0gAAADEAHAB3ZWJhdWRpby9kZWNvZGUtYXVkaW8tZGF0YS10b28t
c2hvcnQtZXhwZWN0ZWQudHh0VVQJAAPVDtJV1Q7SVXV4CwABBPUBAAAEFAAAAFXOQQrDIBCF4b2n
eGRdeodSsmtpIF5gqmMUrAOOEnL7mkUX3X//41nWhhapwbMTn8oGKqDukyCkzNhjchFJ0USgUeqQ
wooiDY66MgiuksarMa8C7c6x6gWHdOwpZyifRLmmUUnAtNzWdcJnKNp4yCA5y84e7wOTnVeL++u5
PGY7T2PTnPw3G3rOx0JVhz4v1c7G/CXGfAFQSwMEFAACAAgAPU0RR5lIvSZkCAAALR4AADUAHAB3
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
VAUAA/oN0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACxTBFHAAAAAAAAAAAAAAAADAAYAAAA
AAAAABAA7UFXTAEAZmFzdC9jYW52YXMvVVQFAAPODdJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAsUwRRx/Yk8aYAAAATAEAACYAGAAAAAAAAQAAAKSBnUwBAGZhc3QvY2FudmFzL2NhbnZhcy1s
aW5lRGFzaC1zdGRlcnIudHh0VVQFAAPODdJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAr0wR
RwAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BlU0BAGZhc3QvY3NzL1VUBQADyQ3SVXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAK9MEUfbCNNCOwAAAD8AAAApABgAAAAAAAEAAACkgdhNAQBmYXN0
L2Nzcy9jb21wYXJlLWNvbnRlbnQtc3R5bGUtc3RkZXJyLnR4dFVUBQADyQ3SVXV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAMBMEUcAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQXZOAQBmYXN0L2Rv
bS9VVAUAA+gN0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADBTBFHAAAAAAAAAAAAAAAAGgAY
AAAAAAAAABAA7UG5TgEAZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9VVAUAA+kN0lV1eAsAAQT1
AQAABBQAAABQSwECHgMKAAIAAADATBFH/ic44DUAAAA1AAAAPwAYAAAAAAABAAAApIENTwEAZmFz
dC9kb20vTXV0YXRpb25PYnNlcnZlci9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVyeS1hY3R1YWwu
dHh0VVQFAAPoDdJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwEwRR930kcpZAQAAmwIAAD0A
GAAAAAAAAQAAAKSBu08BAGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvZGF0YWJhc2UtY2FsbGJh
Y2stZGVsaXZlcnktZGlmZi50eHRVVAUAA+gN0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADA
TBFHwRp6nMUAAAA8AQAAQQAYAAAAAAABAAAApIGLUQEAZmFzdC9kb20vTXV0YXRpb25PYnNlcnZl
ci9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVyeS1leHBlY3RlZC50eHRVVAUAA+gN0lV1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADBTBFHWcSC0K4IAAD+IAAARQAYAAAAAAABAAAApIHLUgEAZmFz
dC9kb20vTXV0YXRpb25PYnNlcnZlci9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVyeS1wcmV0dHkt
ZGlmZi5odG1sVVQFAAPpDdJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtUwRR7j8aBjhAAAA
TgMAADIAGAAAAAAAAQAAAKSB+FsBAGZhc3QvZG9tL29iamVjdC1wbHVnaW4taGlkZXMtcHJvcGVy
dGllcy1zdGRlcnIudHh0VVQFAAPWDdJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAukwRRwAA
AAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BRV0BAGZhc3QvZXZlbnRzL1VUBQAD4A3SVXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIALVMEUdYKmd1OQAAAEMAAAAyABgAAAAAAAEAAACkgYtdAQBmYXN0
L2V2ZW50cy9kaXNwbGF5LW5vbmUtb24tZm9jdXMtY3Jhc2gtc3RkZXJyLnR4dFVUBQAD1Q3SVXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALpMEUcwtW3jOQAAAEMAAAArABgAAAAAAAEAAACkgTBe
AQBmYXN0L2V2ZW50cy9tb3VzZS1mb2N1cy1pbWFnZW1hcC1zdGRlcnIudHh0VVQFAAPfDdJVdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAukwRR+euvV87AAAAQwAAAC8AGAAAAAAAAQAAAKSBzl4B
AGZhc3QvZXZlbnRzL21vdXNldXAtb3V0c2lkZS1kb2N1bWVudC1zdGRlcnIudHh0VVQFAAPgDdJV
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAIE0RRwAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1B
cl8BAGZhc3QvZmlsZXMvVVQFAAObDtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQE0RR+xz
IrotMAAAgLEAACgAGAAAAAAAAQAAAKSBt18BAGZhc3QvZmlsZXMvYmxvYi1zbGljZS10ZXN0LWNy
YXNoLWxvZy50eHRVVAUAA9gO0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABATRFH4Pvxs7It
AACUmQAANwAYAAAAAAABAAAApIFGkAEAZmFzdC9maWxlcy9maWxlLXJlYWRlci1kb25lLXJlYWRp
bmctYWJvcnQtY3Jhc2gtbG9nLnR4dFVUBQAD2A7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AEBNEUcXJsr8/C0AADCdAAApABgAAAAAAAEAAACkgWm+AQBmYXN0L2ZpbGVzL2ZpbGUtcmVhZGVy
LWZmZmQtY3Jhc2gtbG9nLnR4dFVUBQAD2A7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEBN
EUe456CzMy4AAEOaAAAtABgAAAAAAAEAAACkgcjsAQBmYXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLWZp
bGUtdXJsLWNyYXNoLWxvZy50eHRVVAUAA9gO0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABA
TRFHuURUvw0uAADrmQAAMwAYAAAAAAABAAAApIFiGwIAZmFzdC9maWxlcy9maWxlLXJlYWRlci1z
YW5kYm94LWlmcmFtZS1jcmFzaC1sb2cudHh0VVQFAAPYDtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAykwRRwAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1B3EkCAGZhc3QvZmlsZXMvd29ya2Vy
cy9VVAUAA/sN0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABATRFHBK1K+9ktAADLmwAAOwAY
AAAAAAABAAAApIEpSgIAZmFzdC9maWxlcy93b3JrZXJzL2lubGluZS13b3JrZXItdmlhLWJsb2It
dXJsLWNyYXNoLWxvZy50eHRVVAUAA9gO0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC1TBFH
AAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UF3eAIAZmFzdC9mcmFtZXMvVVQFAAPVDdJVdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAtUwRR9sI00I7AAAAPwAAAC8AGAAAAAAAAQAAAKSBvXgCAGZh
c3QvZnJhbWVzL2ZyYW1lLWRpc3BsYXktbm9uZS1mb2N1cy1zdGRlcnIudHh0VVQFAAPVDdJVdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAxkwRRwAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BYXkC
AGZhc3QvaGlzdG9yeS9VVAUAA/QN0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAADGTBFH/ic4
4DUAAAA1AAAAQgAYAAAAAAABAAAApIGoeQIAZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0
YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi1hY3R1YWwudHh0VVQFAAPzDdJVdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAxkwRRzMVpslfAQAAmAIAAEAAGAAAAAAAAQAAAKSBWXoCAGZhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rpb24tZGlmZi50eHRV
VAUAA/MN0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADGTBFHEFWn4cgAAAA1AQAARAAYAAAA
AAABAAAApIEyfAIAZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGluZy10
cmFuc2FjdGlvbi1leHBlY3RlZC50eHRVVAUAA/MN0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADGTBFHdJURg7sIAAAiIAAASAAYAAAAAAABAAAApIF4fQIAZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtd2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi1wcmV0dHktZGlmZi5odG1sVVQFAAP0
DdJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAukwRRwAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQ
AO1BtYYCAGZhc3QvaW1hZ2VzL1VUBQAD4A3SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALpM
EUchj704MgAAADMAAAAsABgAAAAAAAEAAACkgfuGAgBmYXN0L2ltYWdlcy9wZGYtYXMtaW1hZ2Ut
Y3JvcC1ib3gtc3RkZXJyLnR4dFVUBQAD4A3SVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALtM
EUcAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQZOHAgBmYXN0L2xvYWRlci9VVAUAA+IN0lV1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAC2TBFH2wjTQjsAAAA/AAAAUgAYAAAAAAABAAAApIHZhwIA
ZmFzdC9sb2FkZXIvZGlzcGxheS1pbWFnZS11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1y
ZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUBQAD1w3SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIALdMEUfbCNNCOwAAAD8AAABTABgAAAAAAAEAAACkgaCIAgBmYXN0L2xvYWRlci9pbWFnZXMt
ZW5hYmxlZC11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxhY2Utc3Rk
ZXJyLnR4dFVUBQAD2Q3SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALtMEUfbCNNCOwAAAD8A
AAAtABgAAAAAAAEAAACkgWiJAgBmYXN0L2xvYWRlci9yZWxvYWQtcG9saWN5LWRlbGVnYXRlLXN0
ZGVyci50eHRVVAUAA+IN0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADBTBFHAAAAAAAAAAAA
AAAADQAYAAAAAAAAABAA7UEKigIAZmFzdC9yZWdpb25zL1VUBQAD6g3SVXV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAMJMEUcAAAAAAAAAAAAAAAAXABgAAAAAAAAAEADtQVGKAgBmYXN0L3JlZ2lv
bnMvc2Nyb2xsaW5nL1VUBQAD6w3SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMFMEUc5Acvd
QAAAAHoAAAA1ABgAAAAAAAEAAACkgaKKAgBmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5nL3doZWVsLXNj
cm9sbC1hYnNwb3Mtc3RkZXJyLnR4dFVUBQAD6g3SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AMJMEUc5AcvdQAAAAHoAAAAuABgAAAAAAAEAAACkgVGLAgBmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5n
L3doZWVsLXNjcm9sbC1zdGRlcnIudHh0VVQFAAPrDdJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAwkwRR+SKx0M8AAAAPQAAAEAAGAAAAAAAAQAAAKSB+YsCAGZhc3QvcmVnaW9ucy9zY3JvbGxp
bmcvd2hlZWwtc2Nyb2xsYWJsZS1zaW5nbGUtcmVnaW9uLXN0ZGVyci50eHRVVAUAA+sN0lV1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAADITBFHAAAAAAAAAAAAAAAACgAYAAAAAAAAABAA7UGvjAIA
ZmFzdC90ZXh0L1VUBQAD+A3SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMhMEUfWI2fuTQEA
AMoDAAAkABgAAAAAAAEAAACkgfOMAgBmYXN0L3RleHQvZm9udC13ZWlnaHRzLXpoLXN0ZGVyci50
eHRVVAUAA/gN0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADITBFHAAAAAAAAAAAAAAAACQAY
AAAAAAAAABAA7UGejgIAZmFzdC94c2wvVVQFAAP3DdJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAx0wRR3L9ZfKFAAAA6QAAACUAGAAAAAAAAQAAAKSB4Y4CAGZhc3QveHNsL3RyYW5zZm9ybS14
aHItZG9jLXN0ZGVyci50eHRVVAUAA/YN0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADHTBFH
BY9VjpMAAADQAgAAJwAYAAAAAAABAAAApIHFjwIAZmFzdC94c2wveHNsdC1iYWQtaW1wb3J0LXVy
aS1zdGRlcnIudHh0VVQFAAP2DdJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAx0wRR8+PZg5Q
AAAAoAAAACQAGAAAAAAAAQAAAKSBuZACAGZhc3QveHNsL3hzbHQtY29udGVudFR5cGUtc3RkZXJy
LnR4dFVUBQAD9g3SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMhMEUeBSnetSwAAAKwAAAA0
ABgAAAAAAAEAAACkgWeRAgBmYXN0L3hzbC94c2x0LXRyYW5zZm9ybS10by1mcmFnbWVudC1jcmFz
aC1zdGRlcnIudHh0VVQFAAP3DdJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQU0RR05AgP4S
AwAA3AwAABEAGAAAAAAAAQAAAKSBIJICAGZ1bGxfcmVzdWx0cy5qc29uVVQFAAPaDtJVdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAz0wRRwAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BfZUCAGh0
dHAvVVQFAAMGDtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAABU0RRwAAAAAAAAAAAAAAAAsA
GAAAAAAAAAAQAO1BvJUCAGh0dHAvdGVzdHMvVVQFAANpDtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAA5EwRRwAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BAZYCAGh0dHAvdGVzdHMvZmlsZWFw
aS9VVAUAAysO0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABATRFHeMrJ6oUvAAAE2wAANQAY
AAAAAAABAAAApIFOlgIAaHR0cC90ZXN0cy9maWxlYXBpL2Jsb2ItdXJsLWluLXN1YmZyYW1lLWNy
YXNoLWxvZy50eHRVVAUAA9gO0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADoTBFHAAAAAAAA
AAAAAAAAEQAYAAAAAAAAABAA7UFCxgIAaHR0cC90ZXN0cy9tZWRpYS9VVAUAAzMO0lV1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABATRFHU2Jkmo0uAACkpwAAOQAYAAAAAAABAAAApIGNxgIAaHR0
cC90ZXN0cy9tZWRpYS90cmFjay1pbi1iYW5kLWhscy1tZXRhZGF0YS1jcmFzaC1sb2cudHh0VVQF
AAPYDtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA6kwRRwAAAAAAAAAAAAAAABAAGAAAAAAA
AAAQAO1BjfUCAGh0dHAvdGVzdHMvbWlzYy9VVAUAAzcO0lV1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADqTBFHFTU1knoAAAC8AAAAKgAYAAAAAAABAAAApIHX9QIAaHR0cC90ZXN0cy9taXNjL3hz
bHQtYmFkLWltcG9ydC1zdGRlcnIudHh0VVQFAAM3DtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAz0wRRwAAAAAAAAAAAAAAABYAGAAAAAAAAAAQAO1BtfYCAGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9VVAUAAwYO0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPTBFH2wjTQjsAAAA/AAAANwAY
AAAAAAABAAAApIEF9wIAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZhbGxiYWNrLWFuY2hvci1yZWxv
YWQtc3RkZXJyLnR4dFVUBQADBg7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOtMEUcAAAAA
AAAAAAAAAAAUABgAAAAAAAAAEADtQbH3AgBodHRwL3Rlc3RzL3NlY3VyaXR5L1VUBQADOQ7SVXV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAO9MEUcAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQf/3
AgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAUAA0IO0lV1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABATRFHkgbQQIQuAACDnQAATAAYAAAAAAABAAAApIFj+AIA
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYmxvYi11cmxzLW1hdGNo
LXNlbGYtY3Jhc2gtbG9nLnR4dFVUBQAD2A7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO9M
EUdjqqxsggAAAKgAAABAABgAAAAAAAEAAACkgW0nAwBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQFAANCDtJVdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA70wRR2OqrGyCAAAAqAAAAFIAGAAAAAAAAQAAAKSBaSgDAGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0
eWxlLXNyYy0yLXN0ZGVyci50eHRVVAUAA0IO0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADr
TBFHAAAAAAAAAAAAAAAAIQAYAAAAAAAAABAA7UF3KQMAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhl
ZENvbnRlbnQvVVQFAAM5DtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQE0RRxE1TK2rMQAA
IMMAAEEAGAAAAAAAAQAAAKSB0ikDAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2Js
b2ItdXJsLWluLWlmcmFtZS1jcmFzaC1sb2cudHh0VVQFAAPYDtJVdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA2EwRR2BLZhCRAAAA+wEAAEUAGAAAAAAAAQAAAKSB+FsDAGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzLURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVU
BQADGA7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAONMEUcAAAAAAAAAAAAAAAATABgAAAAA
AAAAEADtQQhdAwBodHRwL3Rlc3RzL3N0b3JhZ2UvVVQFAAMqDtJVdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgACAAAA40wRR/4nOOA1AAAANQAAAEUAGAAAAAAAAQAAAKSBVV0DAGh0dHAvdGVzdHMvc3Rv
cmFnZS9jYWxsYmFja3MtYXJlLWNhbGxlZC1pbi1jb3JyZWN0LWNvbnRleHQtYWN0dWFsLnR4dFVU
BQADKQ7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAONMEUeFXihvnwEAADsNAABDABgAAAAA
AAEAAACkgQleAwBodHRwL3Rlc3RzL3N0b3JhZ2UvY2FsbGJhY2tzLWFyZS1jYWxsZWQtaW4tY29y
cmVjdC1jb250ZXh0LWRpZmYudHh0VVQFAAMpDtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
40wRRxOwtqccAQAAqQsAAEcAGAAAAAAAAQAAAKSBJWADAGh0dHAvdGVzdHMvc3RvcmFnZS9jYWxs
YmFja3MtYXJlLWNhbGxlZC1pbi1jb3JyZWN0LWNvbnRleHQtZXhwZWN0ZWQudHh0VVQFAAMpDtJV
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA40wRR6Y0WWY9CQAA30EAAEsAGAAAAAAAAQAAAKSB
wmEDAGh0dHAvdGVzdHMvc3RvcmFnZS9jYWxsYmFja3MtYXJlLWNhbGxlZC1pbi1jb3JyZWN0LWNv
bnRleHQtcHJldHR5LWRpZmYuaHRtbFVUBQADKg7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AAVNEUcAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQYRrAwBodHRwL3Rlc3RzL3dlYnNvY2tldC9V
VAUAA2kO0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAFTRFHAAAAAAAAAAAAAAAAGwAYAAAA
AAAAABAA7UHTawMAaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvVVQFAANpDtJVdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAANU0RRwAAAAAAAAAAAAAAACAAGAAAAAAAAAAQAO1BKGwDAGh0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvVVQFAAPFDtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgACAAAABU0RRx5O2yVGAAAARgAAAEYAGAAAAAAAAQAAAKSBgmwDAGh0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvZnJhZ21lbnRlZC1iaW5hcnktZnJhbWVzLWNyYXNoLWxvZy50eHRVVAUA
A2oO0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABATRFHTrrmXoIuAAAoqwAAOgAYAAAAAAAB
AAAApIFIbQMAaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9yZWNlaXZlLWJsb2ItY3Jh
c2gtbG9nLnR4dFVUBQAD2A7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEBNEUfHepBoZy4A
AHKcAAA3ABgAAAAAAAEAAACkgT6cAwBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3Nl
bmQtYmxvYi1jcmFzaC1sb2cudHh0VVQFAAPYDtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
QE0RR/wXO5RjLgAA9J0AAEgAGAAAAAAAAQAAAKSBFssDAGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5Ymkvc2VuZC1ibG9iLW9ubWVzc2FnZS1vcmlnaW4tY3Jhc2gtbG9nLnR4dFVUBQAD2A7S
VXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABlNEUcAAAAAAAAAAAAAAAAoABgAAAAAAAAAEADt
Qfv5AwBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvVVQFAAORDtJVdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgACAAAABU0RR82mMjxGAAAARgAAAEIAGAAAAAAAAQAAAKSBXfoD
AGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZWNlaXZlLWJsb2ItY3Jh
c2gtbG9nLnR4dFVUBQADaQ7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEBNEUcWmEGQ/i0A
AB+cAAA/ABgAAAAAAAEAAACkgR/7AwBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dv
cmtlcnMvc2VuZC1ibG9iLWNyYXNoLWxvZy50eHRVVAUAA9gO0lV1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACTTBFH6op8QmEFAAAFDwAACgAYAAAAAAABAAAApIGWKQQAaHR0cGQuY29uZlVUBQAD
lQ3SVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPRMEUcAAAAAAAAAAAAAAAADABgAAAAAAAAA
EADtQTsvBABqcy9VVAUAA0wO0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAALTRFHAAAAAAAA
AAAAAAAABwAYAAAAAAAAABAA7UF4LwQAanMvZG9tL1VUBQADdQ7SVXV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAgAAAPRMEUf+JzjgNQAAADUAAAA1ABgAAAAAAAEAAACkgbkvBABqcy9kb20vY2FsbGJh
Y2stZnVuY3Rpb24td2l0aC1oYW5kbGUtZXZlbnQtYWN0dWFsLnR4dFVUBQADTA7SVXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAPRMEUftu4M4LgEAAEICAAAzABgAAAAAAAEAAACkgV0wBABqcy9k
b20vY2FsbGJhY2stZnVuY3Rpb24td2l0aC1oYW5kbGUtZXZlbnQtZGlmZi50eHRVVAUAA0wO0lV1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD0TBFHzE0f6KEAAAD+AAAANwAYAAAAAAABAAAApIH4
MQQAanMvZG9tL2NhbGxiYWNrLWZ1bmN0aW9uLXdpdGgtaGFuZGxlLWV2ZW50LWV4cGVjdGVkLnR4
dFVUBQADTA7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPRMEUdbFa9wXwgAADEdAAA7ABgA
AAAAAAEAAACkgQozBABqcy9kb20vY2FsbGJhY2stZnVuY3Rpb24td2l0aC1oYW5kbGUtZXZlbnQt
cHJldHR5LWRpZmYuaHRtbFVUBQADTA7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAApNEUeQ
EgUBfAAAAJIAAAAwABgAAAAAAAEAAACkgd47BABqcy9kb20vZXhjZXB0aW9ucy10aHJvd24taW4t
Y2FsbGJhY2tzLWFjdHVhbC50eHRVVAUAA3QO0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAK
TRFHuSq7104BAAAlAwAALgAYAAAAAAABAAAApIHEPAQAanMvZG9tL2V4Y2VwdGlvbnMtdGhyb3du
LWluLWNhbGxiYWNrcy1kaWZmLnR4dFVUBQADdA7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AApNEUdtTDfPygAAAOsBAAAyABgAAAAAAAEAAACkgXo+BABqcy9kb20vZXhjZXB0aW9ucy10aHJv
d24taW4tY2FsbGJhY2tzLWV4cGVjdGVkLnR4dFVUBQADdA7SVXV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAAtNEUdjwPqcOAgAADEcAAA2ABgAAAAAAAEAAACkgbA/BABqcy9kb20vZXhjZXB0aW9u
cy10aHJvd24taW4tY2FsbGJhY2tzLXByZXR0eS1kaWZmLmh0bWxVVAUAA3UO0lV1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAAAMTRFHAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UFYSAQAbWVkaWEv
VVQFAAN4DtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAADE0RRwAAAAAAAAAAAAAAAAwAGAAA
AAAAAAAQAO1BmEgEAG1lZGlhL3RyYWNrL1VUBQADeA7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AgAAAAxNEUf+JzjgNQAAADUAAAAqABgAAAAAAAEAAACkgd5IBABtZWRpYS90cmFjay90cmFjay1p
bi1iYW5kLXN0eWxlLWFjdHVhbC50eHRVVAUAA3gO0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAMTRFH/WrzNsUBAABuAwAAKAAYAAAAAAABAAAApIF3SQQAbWVkaWEvdHJhY2svdHJhY2staW4t
YmFuZC1zdHlsZS1kaWZmLnR4dFVUBQADeA7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAxN
EUcM+uTqNgEAADMCAAAsABgAAAAAAAEAAACkgZ5LBABtZWRpYS90cmFjay90cmFjay1pbi1iYW5k
LXN0eWxlLWV4cGVjdGVkLnR4dFVUBQADeA7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAxN
EUfXnJN37QgAAKUkAAAwABgAAAAAAAEAAACkgTpNBABtZWRpYS90cmFjay90cmFjay1pbi1iYW5k
LXN0eWxlLXByZXR0eS1kaWZmLmh0bWxVVAUAA3gO0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AADwTBFHAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UGRVgQAcGx1Z2lucy9VVAUAA0MO0lV1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADwTBFH7l1yRYYAAAD2AAAAOwAYAAAAAAABAAAApIHTVgQA
cGx1Z2lucy9ucHAtc2V0LXdpbmRvdy1jYWxsZWQtZHVyaW5nLWRlc3RydWN0aW9uLXN0ZGVyci50
eHRVVAUAA0MO0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA9TRFHn4alYZUCAAC5GgAAKwAY
AAAAAAABAAAApIHOVwQAcHl3ZWJzb2NrZXQud3MubG9nLTE3QXVnMjAxNS0wOTM2MzgtZXJyLnR4
dFVUBQAD1g7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABVNEUciTgshCQEAAI8CAAArABgA
AAAAAAEAAACkgchaBABweXdlYnNvY2tldC53cy5sb2ctMTdBdWcyMDE1LTA5MzYzOC1vdXQudHh0
VVQFAAOKDtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQU0RR+R8RaOeJgAA26QAAAwAGAAA
AAAAAQAAAKSBNlwEAHJlc3VsdHMuaHRtbFVUBQAD2g7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAPFMEUcAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQRqDBABzY3JvbGxiYXJzL1VUBQADRQ7S
VXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPFMEUduvSNhOQAAAEIAAAA7ABgAAAAAAAEAAACk
gV+DBABzY3JvbGxiYXJzL3Njcm9sbGV2ZW50LWlmcmFtZS1uby1zY3JvbGxpbmctd2hlZWwtc3Rk
ZXJyLnR4dFVUBQADRQ7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEFNEUfH7zoqffEGAAtB
JwAKABgAAAAAAAEAAACkgQ2EBABzdGF0cy5qc29uVVQFAAPaDtJVdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAA+kwRRwAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BznULAHN0b3JhZ2UvVVQFAANX
DtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAALk0RRwAAAAAAAAAAAAAAAA8AGAAAAAAAAAAQ
AO1BEHYLAHN0b3JhZ2Uvd2Vic3FsL1VUBQADuA7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
APpMEUcyGuBWWwAAAGsAAAAtABgAAAAAAAEAAACkgVl2CwBzdG9yYWdlL3dlYnNxbC9hbHRlci10
by1pbmZvLXRhYmxlLWFjdHVhbC50eHRVVAUAA1cO0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAD6TBFH7QatJjMBAACLAgAAKwAYAAAAAAABAAAApIEbdwsAc3RvcmFnZS93ZWJzcWwvYWx0ZXIt
dG8taW5mby10YWJsZS1kaWZmLnR4dFVUBQADVw7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
APpMEUdpFSyQqwAAAF4BAAAvABgAAAAAAAEAAACkgbN4CwBzdG9yYWdlL3dlYnNxbC9hbHRlci10
by1pbmZvLXRhYmxlLWV4cGVjdGVkLnR4dFVUBQADVw7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAPpMEUdG4ibKMggAAFQeAAAzABgAAAAAAAEAAACkgcd5CwBzdG9yYWdlL3dlYnNxbC9hbHRl
ci10by1pbmZvLXRhYmxlLXByZXR0eS1kaWZmLmh0bWxVVAUAA1cO0lV1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAIAAAALTRFH/ic44DUAAAA1AAAANQAYAAAAAAABAAAApIFmggsAc3RvcmFnZS93ZWJz
cWwvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLWFjdHVhbC50eHRVVAUAA3UO0lV1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAALTRFHrky/21gBAACNAgAAMwAYAAAAAAABAAAApIEKgwsAc3Rv
cmFnZS93ZWJzcWwvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLWRpZmYudHh0VVQFAAN1DtJV
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAC00RR1l0enDHAAAASgEAADcAGAAAAAAAAQAAAKSB
z4QLAHN0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS1leHBlY3RlZC50
eHRVVAUAA3UO0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAALTRFH9I8YZD8IAACXGwAAOwAY
AAAAAAABAAAApIEHhgsAc3RvcmFnZS93ZWJzcWwvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNl
LXByZXR0eS1kaWZmLmh0bWxVVAUAA3UO0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAAAdTRFH
Si/GfT0AAAA9AAAANAAYAAAAAAABAAAApIG7jgsAc3RvcmFnZS93ZWJzcWwvZGF0YWJhc2UtbG9j
ay1hZnRlci1yZWxvYWQtYWN0dWFsLnR4dFVUBQADmg7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAB1NEUesbTxsvgAAAHEBAAAyABgAAAAAAAEAAACkgWaPCwBzdG9yYWdlL3dlYnNxbC9kYXRh
YmFzZS1sb2NrLWFmdGVyLXJlbG9hZC1kaWZmLnR4dFVUBQADmg7SVXV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAgAAAB1NEUfXt1LbKgAAACoAAAA2ABgAAAAAAAEAAACkgZCQCwBzdG9yYWdlL3dlYnNx
bC9kYXRhYmFzZS1sb2NrLWFmdGVyLXJlbG9hZC1leHBlY3RlZC50eHRVVAUAA5oO0lV1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAdTRFHTQD4asUHAADEGQAAOgAYAAAAAAABAAAApIEqkQsAc3Rv
cmFnZS93ZWJzcWwvZGF0YWJhc2UtbG9jay1hZnRlci1yZWxvYWQtcHJldHR5LWRpZmYuaHRtbFVU
BQADmg7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAC5NEUf+JzjgNQAAADUAAAApABgAAAAA
AAEAAACkgWOZCwBzdG9yYWdlL3dlYnNxbC9lbXB0eS1zdGF0ZW1lbnQtYWN0dWFsLnR4dFVUBQAD
uA7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC5NEUfyb+xR2AAAAH4BAAAnABgAAAAAAAEA
AACkgfuZCwBzdG9yYWdlL3dlYnNxbC9lbXB0eS1zdGF0ZW1lbnQtZGlmZi50eHRVVAUAA7gO0lV1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAuTRFHaXE900wAAABXAAAAKwAYAAAAAAABAAAApIE0
mwsAc3RvcmFnZS93ZWJzcWwvZW1wdHktc3RhdGVtZW50LWV4cGVjdGVkLnR4dFVUBQADuA7SVXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC5NEUcjoDe47AcAAEQZAAAvABgAAAAAAAEAAACkgeWb
CwBzdG9yYWdlL3dlYnNxbC9lbXB0eS1zdGF0ZW1lbnQtcHJldHR5LWRpZmYuaHRtbFVUBQADuA7S
VXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAA9NEUcAAAAAAAAAAAAAAAAEABgAAAAAAAAAEADt
QTqkCwBzdmcvVVQFAAN+DtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAAE0RRwAAAAAAAAAA
AAAAAA0AGAAAAAAAAAAQAO1BeKQLAHN2Zy9hcy1pbWFnZS9VVAUAA18O0lV1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAATRFH2wjTQjsAAAA/AAAAPwAYAAAAAAABAAAApIG/pAsAc3ZnL2FzLWlt
YWdlL3N2Zy1pbWFnZS13aXRoLWRhdGEtdXJpLWltYWdlcy1kaXNhYmxlZC1zdGRlcnIudHh0VVQF
AANfDtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAEU0RRwAAAAAAAAAAAAAAAAsAGAAAAAAA
AAAQAO1Bc6ULAHN2Zy9jdXN0b20vVVQFAAOCDtJVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
D00RRyH09vA6AAAAQgAAADAAGAAAAAAAAQAAAKSBuKULAHN2Zy9jdXN0b20vdXNlLWludmFsaWRh
dGUtY2xpY2stY3Jhc2gtc3RkZXJyLnR4dFVUBQADfg7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIABFNEUcKq/xAmAAAAEwBAAAkABgAAAAAAAEAAACkgVymCwBzdmcvY3VzdG9tL3plcm8tZGFz
aGFycmF5LXN0ZGVyci50eHRVVAUAA4IO0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAADTRFH
AAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UFSpwsAc3ZnL3N0cm9rZS9VVAUAA2UO0lV1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAADTRFHNUZgvpEAAACmAAAAJQAYAAAAAAABAAAApIGXpwsAc3Zn
L3N0cm9rZS96ZXJvLXdpZHRoLWhhbmctc3RkZXJyLnR4dFVUBQADZQ7SVXV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAAlNEUcAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQYeoCwB0cmFuc2Zvcm1z
L1VUBQADcQ7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAAlNEUcAAAAAAAAAAAAAAAAOABgA
AAAAAAAAEADtQcyoCwB0cmFuc2Zvcm1zLzNkL1VUBQADcQ7SVXV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAAlNEUcAAAAAAAAAAAAAAAAaABgAAAAAAAAAEADtQRSpCwB0cmFuc2Zvcm1zLzNkL2hp
dC10ZXN0aW5nL1VUBQADcQ7SVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAlNEUcSQG/wWwAA
AIQCAAA2ABgAAAAAAAEAAACkgWipCwB0cmFuc2Zvcm1zLzNkL2hpdC10ZXN0aW5nL2JhY2tmYWNl
LWhpdC10ZXN0LXN0ZGVyci50eHRVVAUAA3EO0lV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAA9
TRFHAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UEzqgsAd2ViYXVkaW8vVVQFAAPVDtJVdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAQE0RR/Qr1e4zLgAAzJ0AACkAGAAAAAAAAQAAAKSBdqoLAHdl
YmF1ZGlvL2F1ZGlvYnVmZmVyLW5ldXRlci1jcmFzaC1sb2cudHh0VVQFAAPYDtJVdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgACAAAALk0RR/4nOOA1AAAANQAAACsAGAAAAAAAAQAAAKSBDNkLAHdlYmF1
ZGlvL2RlY29kZS1hdWRpby1kYXRhLWJhc2ljLWFjdHVhbC50eHRVVAUAA7cO0lV1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAuTRFHOBlLgoYBAADzAgAAKQAYAAAAAAABAAAApIGm2QsAd2ViYXVk
aW8vZGVjb2RlLWF1ZGlvLWRhdGEtYmFzaWMtZGlmZi50eHRVVAUAA7cO0lV1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAuTRFHkSwGfwIBAAC9AQAALQAYAAAAAAABAAAApIGP2wsAd2ViYXVkaW8v
ZGVjb2RlLWF1ZGlvLWRhdGEtYmFzaWMtZXhwZWN0ZWQudHh0VVQFAAO3DtJVdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgALk0RR8Ypc1zPCAAAviAAADEAGAAAAAAAAQAAAKSB+NwLAHdlYmF1ZGlv
L2RlY29kZS1hdWRpby1kYXRhLWJhc2ljLXByZXR0eS1kaWZmLmh0bWxVVAUAA7cO0lV1eAsAAQT1
AQAABBQAAABQSwECHgMKAAIAAAA9TRFH/ic44DUAAAA1AAAALwAYAAAAAAABAAAApIEy5gsAd2Vi
YXVkaW8vZGVjb2RlLWF1ZGlvLWRhdGEtdG9vLXNob3J0LWFjdHVhbC50eHRVVAUAA9UO0lV1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAA9TRFHsavayigBAAAMAgAALQAYAAAAAAABAAAApIHQ5gsA
d2ViYXVkaW8vZGVjb2RlLWF1ZGlvLWRhdGEtdG9vLXNob3J0LWRpZmYudHh0VVQFAAPVDtJVdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAPU0RR8bAhaWXAAAA0gAAADEAGAAAAAAAAQAAAKSBX+gL
AHdlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLXRvby1zaG9ydC1leHBlY3RlZC50eHRVVAUAA9UO
0lV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA9TRFHmUi9JmQIAAAtHgAANQAYAAAAAAABAAAA
pIFh6QsAd2ViYXVkaW8vZGVjb2RlLWF1ZGlvLWRhdGEtdG9vLXNob3J0LXByZXR0eS1kaWZmLmh0
bWxVVAUAA9UO0lV1eAsAAQT1AQAABBQAAABQSwUGAAAAAJkAmQCLQQAANPILAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259232</attachid>
            <date>2015-08-17 20:37:24 -0700</date>
            <delta_ts>2015-08-17 21:18:08 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>215160</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxODg1NDgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RG
OjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBhbHNvIGJlZWZzIHVwIGFuZCByYXRpb25hbGl6ZXMgdGhlIENv
bmRpdGlvbiBBUEksIHNvIHRoYXQgaXQgY2FuIGRlYWwgd2l0aCB1bml0cyBvZiB0aW1lCisgICAg
ICAgIG90aGVyIHRoYW4ganVzdCBzdGVhZHlfY2xvY2suIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRv
IHBvcnQgVGhyZWFkQ29uZGl0aW9uIGFuZAorICAgICAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJs
ZSBjb2RlIG92ZXIgdG8gQ29uZGl0aW9uLiBUaGlzIHBhdGNoIGRvZXMgbm90IHRha2UgYSBwb3Np
dGlvbiBvbiB3aGF0CisgICAgICAgIGtpbmQgb2YgdGltZSBpcyBiZXN0OyBmcm9tIHJlYWRpbmcg
YSBsb3Qgb2YgdGhlIHVzZXMgaW4gV2ViQ29yZSwgaXQgc2VlbXMgbGlrZSBvdXIgdXNlIG9mCisg
ICAgICAgIGRvdWJsZSB0byBtZWFzdXJlIHNlY29uZHMgaXMgb2Z0ZW4gbmljZXIgdGhhbiB0aGUg
bWFueSBkaWZmZXJlbnQgY2xhc3NlcyBpbiBzdGQ6OmNocm9uby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgQ29uZGl0aW9uIHNwZWVkIHRlc3QsIHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBvZiB0aGlz
IGlzIGEgZ29vZCBpZGVhLiBBbmQgaW5kZWVkIGl0CisgICAgICAgIGlzLiBUaGUgMS1wcm9kdWNl
ci8xLWNvbnN1bWVyIHNjZW5hcmlvIHdpdGggYSAxMDAtZWxlbWVudCBxdWV1ZSBydW5zIDM2eCBm
YXN0ZXIgdXNpbmcKKyAgICAgICAgTG9jay9Db25kaXRpb24gdGhhbiBNdXRleC9UaHJlYWRDb25k
aXRpb24gd2hlbiB5b3UgdXNlIHRoZSBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBzdHlsZS4gSXQK
KyAgICAgICAgcnVucyA1OHggZmFzdGVyIHdpdGggTG9jay9Db25kaXRpb24gd2hlbiB5b3UgdXNl
IHRoZSBub3RpZnlBbGwoKS1hdC1ib3VuZGFyeSBzdHlsZS4gTm90ZSB0aGF0CisgICAgICAgIEkg
aGF2ZSBhIGJ1ZyBvcGVuIGZvciBtYWtpbmcgdGhlIG5vdGlmeU9uZSgpLXBlci1lbnF1ZXVlIHN0
eWxlIGV2ZW4gZmFzdGVyOgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MDkwLiBBbHNvLCB0aGUgMTAtY29uc3VtZXIvMTAtcHJvZHVjZXIgc2NlbmFy
aW8gd2l0aAorICAgICAgICBhIDEwMC1lbGVtZW50IHF1ZXVlIHJ1bnMgMjB4IGZhc3RlciB3aXRo
IExvY2svQ29uZGl0aW9uIGZvciBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBhbmQgMzB4CisgICAg
ICAgIGZhc3RlciB3aXRoIG5vdGlmeUFsbCgpLWF0LWJvdW5kYXJ5LiBTbywgaXQgc2VlbXMgdGhh
dCByZXBsYWNpbmcgYWxsIHVzZXMgb2Ygc3lzdGVtIG11dGV4ZXMgYW5kCisgICAgICAgIGNvbmRp
dGlvbiB2YXJpYWJsZXMgd2l0aCBvdXIgb3duIHRoaW5nIGlzIGEgZ3JlYXQgaWRlYS4KKworICAg
ICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJr
cy9Db25kaXRpb25TcGVlZFRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvQ29uZGl0aW9u
Lmg6CisgICAgICAgIChXVEY6OkNvbmRpdGlvbjo6Q29uZGl0aW9uKToKKyAgICAgICAgKFdURjo6
Q29uZGl0aW9uOjp3YWl0VW50aWwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3Ip
OgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXQpOgorICAgICAgICAoV1RGOjpDb25kaXRp
b246OndhaXRVbnRpbFdhbGxDbG9ja1NlY29uZHMpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246
OndhaXRVbnRpbE1vbm90b25pY0Nsb2NrU2Vjb25kcyk6CisgICAgICAgIChXVEY6OkNvbmRpdGlv
bjo6bm90aWZ5T25lKToKKyAgICAgICAgKFdURjo6Q29uZGl0aW9uOjpub3RpZnlBbGwpOgorICAg
ICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3JTZWNvbmRzSW1wbCk6CisgICAgICAgIChXVEY6
OkNvbmRpdGlvbjo6d2FpdEZvckltcGwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OmFic29s
dXRlRnJvbVJlbGF0aXZlKToKKyAgICAgICAgKiB3dGYvTWVzc2FnZVF1ZXVlLmg6CisgICAgICAg
IChXVEY6Ok1lc3NhZ2VRdWV1ZTo6aW5maW5pdGVUaW1lKToKKyAgICAgICAgKFdURjo6TWVzc2Fn
ZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6YXBwZW5kQW5kS2lsbCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRh
VHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHkpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8
RGF0YVR5cGU+OjpwcmVwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBl
Pjo6cmVtb3ZlSWYpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojppc0Vt
cHR5KToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbCk6CisgICAg
ICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmtpbGxlZCk6CisgICAgICAgICogd3Rm
L1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25t
ZW50OjpUaHJlYWRQcml2YXRlOjpleGVjdXRlKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZp
cm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZpbmlzaCk6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCk6CisgICAgICAg
ICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaDoKKyAgICAgICAgKiB3dGYvUGFya2luZ0xvdC5j
cHA6CisgICAgICAgIChXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KToKKyAgICAg
ICAgKiB3dGYvUGFya2luZ0xvdC5oOgorICAgICAgICAoV1RGOjpQYXJraW5nTG90Ojpjb21wYXJl
QW5kUGFyayk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAg
KFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZyk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5j
cHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHd0Zi9k
dG9hLmNwcDoKKyAgICAgICAgKFdURjo6cG93NW11bHQpOgorICAgICAgICAqIHd0Zi9kdG9hLmg6
CisKIDIwMTUtMDgtMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBNb3ZlIHNvbWUgY29tbWFuZHMgZnJvbSAuL0NNYWtlTGlzdHMudHh0IHRv
IFNvdXJjZS9jbWFrZQpJbmRleDogU291cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVk
VGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRpdGlvblNw
ZWVkVGVzdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0
aW9uU3BlZWRUZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI0NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisvLyBPbiBNYWMsIHlvdSBj
YW4gYnVpbGQgdGhpcyBsaWtlIHNvOgorLy8gY2xhbmcrKyAtbyBDb25kaXRpb25TcGVlZFRlc3Qg
U291cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVkVGVzdC5jcHAgLU8zIC1XIC1JU291
cmNlL1dURiAtTFdlYktpdEJ1aWxkL1JlbGVhc2UgLWxXVEYgLWZyYW1ld29yayBGb3VuZGF0aW9u
IC1saWN1Y29yZSAtc3RkPWMrKzExCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
PG11dGV4PgorI2luY2x1ZGUgPHRocmVhZD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRl
IDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVk
ZSA8d3RmL0RhdGFMb2cuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYv
TG9jay5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8
d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25h
bWVzcGFjZSB7CisKK2NvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworCit1bnNpZ25lZCBudW1Q
cm9kdWNlcnM7Cit1bnNpZ25lZCBudW1Db25zdW1lcnM7Cit1bnNpZ25lZCBtYXhRdWV1ZVNpemU7
Cit1bnNpZ25lZCBudW1NZXNzYWdlc1BlclByb2R1Y2VyOworICAgIAorTk9fUkVUVVJOIHZvaWQg
dXNhZ2UoKQoreworICAgIHByaW50ZigiVXNhZ2U6IENvbmRpdGlvblNwZWVkVGVzdCBsb2NrfG11
dGV4fGFsbCA8bnVtIHByb2R1Y2Vycz4gPG51bSBjb25zdW1lcnM+IDxtYXggcXVldWUgc2l6ZT4g
PG51bSBtZXNzYWdlcyBwZXIgcHJvZHVjZXI+XG4iKTsKKyAgICBleGl0KDEpOworfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jdG9yLCB0eXBlbmFtZSBDb25kaXRpb25UeXBlLCB0eXBlbmFtZSBM
b2NrVHlwZT4KK3ZvaWQgd2FpdChDb25kaXRpb25UeXBlJiBjb25kaXRpb24sIExvY2tUeXBlJiBs
b2NrLCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCit7CisgICAgd2hpbGUgKCFwcmVkaWNhdGUo
KSkKKyAgICAgICAgY29uZGl0aW9uLndhaXQobG9jayk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IExvY2tUeXBlLCB0eXBlbmFtZSBDb25kaXRpb25UeXBlLCB0eXBlbmFtZSBOb3RpZnlGdW5jdG9y
LCB0eXBlbmFtZSBOb3RpZnlBbGxGdW5jdG9yPgordm9pZCBydW5UZXN0KAorICAgIHVuc2lnbmVk
IG51bVByb2R1Y2VycywKKyAgICB1bnNpZ25lZCBudW1Db25zdW1lcnMsCisgICAgdW5zaWduZWQg
bWF4UXVldWVTaXplLAorICAgIHVuc2lnbmVkIG51bU1lc3NhZ2VzUGVyUHJvZHVjZXIsCisgICAg
Y29uc3QgTm90aWZ5RnVuY3RvciYgbm90aWZ5LAorICAgIGNvbnN0IE5vdGlmeUFsbEZ1bmN0b3Im
IG5vdGlmeUFsbCkKK3sKKyAgICBEZXF1ZTx1bnNpZ25lZD4gcXVldWU7CisgICAgYm9vbCBzaG91
bGRDb250aW51ZSA9IHRydWU7CisgICAgTG9ja1R5cGUgbG9jazsKKyAgICBDb25kaXRpb25UeXBl
IGVtcHR5Q29uZGl0aW9uOworICAgIENvbmRpdGlvblR5cGUgZnVsbENvbmRpdGlvbjsKKworICAg
IFZlY3RvcjxUaHJlYWRJZGVudGlmaWVyPiBjb25zdW1lclRocmVhZHM7CisgICAgVmVjdG9yPFRo
cmVhZElkZW50aWZpZXI+IHByb2R1Y2VyVGhyZWFkczsKKworICAgIFZlY3Rvcjx1bnNpZ25lZD4g
cmVjZWl2ZWQ7CisgICAgTG9ja1R5cGUgcmVjZWl2ZWRMb2NrOworICAgIAorICAgIGZvciAodW5z
aWduZWQgaSA9IG51bUNvbnN1bWVyczsgaS0tOykgeworICAgICAgICBUaHJlYWRJZGVudGlmaWVy
IHRocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoCisgICAgICAgICAgICAiQ29uc3VtZXIg
dGhyZWFkIiwKKyAgICAgICAgICAgIFsmXSAoKSB7CisgICAgICAgICAgICAgICAgZm9yICg7Oykg
eworICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCByZXN1bHQ7CisgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIG11c3ROb3RpZnkgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrVHlwZT4gbG9ja2Vy
KGxvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgd2FpdCgKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbXB0eUNvbmRpdGlvbiwgbG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbJl0gKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9z
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2codG9TdHJpbmco
Y3VycmVudFRocmVhZCgpLCAiOiBDaGVja2luZyBjb25zdW1wdGlvbiBwcmVkaWNhdGUgd2l0aCBz
aG91bGRDb250aW51ZSA9ICIsIHNob3VsZENvbnRpbnVlLCAiLCBxdWV1ZS5zaXplKCkgPT0gIiwg
cXVldWUuc2l6ZSgpLCAiXG4iKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAhc2hvdWxkQ29udGludWUgfHwgIXF1ZXVlLmlzRW1wdHkoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc2hvdWxkQ29u
dGludWUgJiYgcXVldWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgIG11c3ROb3RpZnkgPSBxdWV1ZS5zaXplKCkg
PT0gbWF4UXVldWVTaXplOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcXVldWUu
dGFrZUZpcnN0KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
bm90aWZ5KGZ1bGxDb25kaXRpb24sIG11c3ROb3RpZnkpOworCisgICAgICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrVHlwZT4gbG9j
a2VyKHJlY2VpdmVkTG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICByZWNlaXZlZC5hcHBl
bmQocmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0pOworICAgICAgICBjb25zdW1lclRocmVhZHMuYXBwZW5kKHRocmVhZElkZW50
aWZpZXIpOworICAgIH0KKworICAgIGZvciAodW5zaWduZWQgaSA9IG51bVByb2R1Y2VyczsgaS0t
OykgeworICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBjcmVhdGVU
aHJlYWQoCisgICAgICAgICAgICAiUHJvZHVjZXIgVGhyZWFkIiwKKyAgICAgICAgICAgIFsmXSAo
KSB7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bU1lc3NhZ2Vz
UGVyUHJvZHVjZXI7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBib29sIG11c3ROb3RpZnkg
PSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAg
c3RkOjp1bmlxdWVfbG9jazxMb2NrVHlwZT4gbG9ja2VyKGxvY2spOworICAgICAgICAgICAgICAg
ICAgICAgICAgd2FpdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsQ29uZGl0aW9u
LCBsb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGF0YUxvZyh0b1N0cmluZyhjdXJyZW50VGhyZWFkKCksICI6IENoZWNr
aW5nIHByb2R1Y3Rpb24gcHJlZGljYXRlIHdpdGggc2hvdWxkQ29udGludWUgPSAiLCBzaG91bGRD
b250aW51ZSwgIiwgcXVldWUuc2l6ZSgpID09ICIsIHF1ZXVlLnNpemUoKSwgIlxuIikpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcXVldWUuc2l6ZSgpIDwgbWF4UXVl
dWVTaXplOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
ICAgICAgICAgbXVzdE5vdGlmeSA9IHF1ZXVlLmlzRW1wdHkoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHF1ZXVlLmFwcGVuZChpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBub3RpZnkoZW1wdHlDb25kaXRpb24sIG11c3ROb3RpZnkpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICBwcm9kdWNlclRocmVhZHMuYXBwZW5k
KHRocmVhZElkZW50aWZpZXIpOworICAgIH0KKworICAgIGZvciAoVGhyZWFkSWRlbnRpZmllciB0
aHJlYWRJZGVudGlmaWVyIDogcHJvZHVjZXJUaHJlYWRzKQorICAgICAgICB3YWl0Rm9yVGhyZWFk
Q29tcGxldGlvbih0aHJlYWRJZGVudGlmaWVyKTsKKworICAgIHsKKyAgICAgICAgc3RkOjpsb2Nr
X2d1YXJkPExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAgIHNob3VsZENvbnRpbnVlID0g
ZmFsc2U7CisgICAgfQorICAgIG5vdGlmeUFsbChlbXB0eUNvbmRpdGlvbik7CisKKyAgICBmb3Ig
KFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA6IGNvbnN1bWVyVGhyZWFkcykKKyAg
ICAgICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24odGhyZWFkSWRlbnRpZmllcik7CisKKyAgICBS
RUxFQVNFX0FTU0VSVChudW1Qcm9kdWNlcnMgKiBudW1NZXNzYWdlc1BlclByb2R1Y2VyID09IHJl
Y2VpdmVkLnNpemUoKSk7CisgICAgc3RkOjpzb3J0KHJlY2VpdmVkLmJlZ2luKCksIHJlY2VpdmVk
LmVuZCgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIG1lc3NhZ2VJbmRleCA9IDA7IG1lc3NhZ2VJbmRl
eCA8IG51bU1lc3NhZ2VzUGVyUHJvZHVjZXI7ICsrbWVzc2FnZUluZGV4KSB7CisgICAgICAgIGZv
ciAodW5zaWduZWQgcHJvZHVjZXJJbmRleCA9IDA7IHByb2R1Y2VySW5kZXggPCBudW1Qcm9kdWNl
cnM7ICsrcHJvZHVjZXJJbmRleCkKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1lc3NhZ2VJ
bmRleCA9PSByZWNlaXZlZFttZXNzYWdlSW5kZXggKiBudW1Qcm9kdWNlcnMgKyBwcm9kdWNlcklu
ZGV4XSk7CisgICAgfQorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUg
Q29uZGl0aW9uVHlwZSwgdHlwZW5hbWUgTm90aWZ5RnVuY3RvciwgdHlwZW5hbWUgTm90aWZ5QWxs
RnVuY3Rvcj4KK3ZvaWQgcnVuQmVuY2htYXJrKAorICAgIGNvbnN0IGNoYXIqIG5hbWUsCisgICAg
Y29uc3QgTm90aWZ5RnVuY3RvciYgbm90aWZ5LAorICAgIGNvbnN0IE5vdGlmeUFsbEZ1bmN0b3Im
IG5vdGlmeUFsbCkKK3sKKyAgICBkb3VibGUgYmVmb3JlID0gbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lTVMoKTsKKyAgICAKKyAgICBydW5UZXN0PExvY2tUeXBlLCBDb25kaXRpb25UeXBlPigK
KyAgICAgICAgbnVtUHJvZHVjZXJzLAorICAgICAgICBudW1Db25zdW1lcnMsCisgICAgICAgIG1h
eFF1ZXVlU2l6ZSwKKyAgICAgICAgbnVtTWVzc2FnZXNQZXJQcm9kdWNlciwKKyAgICAgICAgbm90
aWZ5LAorICAgICAgICBub3RpZnlBbGwpOworCisgICAgZG91YmxlIGFmdGVyID0gbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lTVMoKTsKKworICAgIHByaW50ZigiJXM6ICUuM2xmIG1zLlxuIiwg
bmFtZSwgYWZ0ZXIgLSBiZWZvcmUpOworfQorCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKwor
aW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIFdURjo6aW5pdGlhbGl6ZVRo
cmVhZGluZygpOworCisgICAgaWYgKGFyZ2MgIT0gNgorICAgICAgICB8fCBzc2NhbmYoYXJndlsy
XSwgIiV1IiwgJm51bVByb2R1Y2VycykgIT0gMQorICAgICAgICB8fCBzc2NhbmYoYXJndlszXSwg
IiV1IiwgJm51bUNvbnN1bWVycykgIT0gMQorICAgICAgICB8fCBzc2NhbmYoYXJndls0XSwgIiV1
IiwgJm1heFF1ZXVlU2l6ZSkgIT0gMQorICAgICAgICB8fCBzc2NhbmYoYXJndls1XSwgIiV1Iiwg
Jm51bU1lc3NhZ2VzUGVyUHJvZHVjZXIpICE9IDEpCisgICAgICAgIHVzYWdlKCk7CisKKyAgICBi
b29sIGRpZFJ1biA9IGZhbHNlOworICAgIGlmICghc3RyY21wKGFyZ3ZbMV0sICJsb2NrIikgfHwg
IXN0cmNtcChhcmd2WzFdLCAiYWxsIikpIHsKKyAgICAgICAgcnVuQmVuY2htYXJrPExvY2ssIENv
bmRpdGlvbj4oCisgICAgICAgICAgICAiV1RGIExvY2sgTm90aWZ5T25lIiwKKyAgICAgICAgICAg
IFsmXSAoQ29uZGl0aW9uJiBjb25kaXRpb24sIGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAg
ICAgICAgIGNvbmRpdGlvbi5ub3RpZnlPbmUoKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICBbJl0gKENvbmRpdGlvbiYgY29uZGl0aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9u
Lm5vdGlmeUFsbCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIHJ1bkJlbmNobWFyazxMb2Nr
LCBDb25kaXRpb24+KAorICAgICAgICAgICAgIldURiBMb2NrIE5vdGlmeUFsbCIsCisgICAgICAg
ICAgICBbJl0gKENvbmRpdGlvbiYgY29uZGl0aW9uLCBib29sIG11c3ROb3RpZnkpIHsKKyAgICAg
ICAgICAgICAgICBpZiAobXVzdE5vdGlmeSkKKyAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9u
Lm5vdGlmeUFsbCgpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0aW9u
JiBjb25kaXRpb24pIHsKKyAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgZGlkUnVuID0gdHJ1ZTsKKyAgICB9CisgICAgaWYgKCFz
dHJjbXAoYXJndlsxXSwgIm11dGV4IikgfHwgIXN0cmNtcChhcmd2WzFdLCAiYWxsIikpIHsKKyAg
ICAgICAgcnVuQmVuY2htYXJrPE11dGV4LCBUaHJlYWRDb25kaXRpb24+KAorICAgICAgICAgICAg
IlBsYXRmb3JtIE11dGV4IE5vdGlmeU9uZSIsCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRp
dGlvbiYgY29uZGl0aW9uLCBib29sIG11c3ROb3RpZnkpIHsKKyAgICAgICAgICAgICAgICBjb25k
aXRpb24uc2lnbmFsKCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChUaHJlYWRD
b25kaXRpb24mIGNvbmRpdGlvbikgeworICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5icm9hZGNh
c3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBydW5CZW5jaG1hcms8TXV0ZXgsIFRocmVh
ZENvbmRpdGlvbj4oCisgICAgICAgICAgICAiUGxhdGZvcm0gTXV0ZXggTm90aWZ5QWxsIiwKKyAg
ICAgICAgICAgIFsmXSAoVGhyZWFkQ29uZGl0aW9uJiBjb25kaXRpb24sIGJvb2wgbXVzdE5vdGlm
eSkgeworICAgICAgICAgICAgICAgIGlmIChtdXN0Tm90aWZ5KQorICAgICAgICAgICAgICAgICAg
ICBjb25kaXRpb24uYnJvYWRjYXN0KCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZd
IChUaHJlYWRDb25kaXRpb24mIGNvbmRpdGlvbikgeworICAgICAgICAgICAgICAgIGNvbmRpdGlv
bi5icm9hZGNhc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBkaWRSdW4gPSB0cnVlOwor
ICAgIH0KKworICAgIGlmICghZGlkUnVuKQorICAgICAgICB1c2FnZSgpOworCisgICAgcmV0dXJu
IDA7Cit9CisKSW5kZXg6IFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAJKHJl
dmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
IAorLy8gT24gTWFjLCB5b3UgY2FuIGJ1aWxkIHRoaXMgbGlrZSBzbzoKKy8vIGNsYW5nKysgLW8g
TG9ja1NwZWVkVGVzdCBTb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAgLU8z
IC1XIC1JU291cmNlL1dURiAtTFdlYktpdEJ1aWxkL1JlbGVhc2UgLWxXVEYgLWZyYW1ld29yayBG
b3VuZGF0aW9uIC1saWN1Y29yZSAtc3RkPWMrKzExCisKICNpbmNsdWRlICJjb25maWcuaCIKIAog
I2luY2x1ZGUgPHVuaXN0ZC5oPgpJbmRleDogU291cmNlL1dURi93dGYvQ29uZGl0aW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQ29uZGl0aW9uLmgJKHJldmlzaW9uIDE4ODUxMCkK
KysrIFNvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwyNiAr
MjksNTkgQEAKICNpbmNsdWRlIDxjaHJvbm8+CiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNs
dWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
UGFya2luZ0xvdC5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgQ29uZGl0aW9uIHsKIHB1
YmxpYzoKKyAgICB0eXBlZGVmIFBhcmtpbmdMb3Q6OkNsb2NrIENsb2NrOworICAgIAogICAgIENv
bmRpdGlvbigpIHsgfQogCiAgICAgLy8gV2FpdCBvbiBhIHBhcmtpbmcgcXVldWUgd2hpbGUgcmVs
ZWFzaW5nIHRoZSBnaXZlbiBsb2NrLiBJdCB3aWxsIHVubG9jayB0aGUgbG9jayBqdXN0IGJlZm9y
ZQogICAgIC8vIHBhcmtpbmcsIGFuZCByZWxvY2sgaXQgdXBvbiB3YWtldXAuIFJldHVybnMgdHJ1
ZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0byBzb21lIGNhbGwgdG8KLSAgICAvLyBub3RpZnlPbmUoKSBv
ciBub3RpZnlBbGwoKS4gUmV0dXJucyBmYWxzZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0byBhIHRpbWVv
dXQuCisgICAgLy8gbm90aWZ5T25lKCkgb3Igbm90aWZ5QWxsKCkuIFJldHVybnMgZmFsc2UgaWYg
d2Ugd29rZSB1cCBkdWUgdG8gYSB0aW1lb3V0LiBOb3RlIHRoYXQgdGhpcyBmb3JtCisgICAgLy8g
b2Ygd2FpdFVudGlsKCkgaGFzIHNvbWUgcXVpcmtzOgorICAgIC8vCisgICAgLy8gTm8gc3B1cmlv
dXMgd2FrZS11cDogaW4gb3JkZXIgZm9yIHRoaXMgdG8gcmV0dXJuIGJlZm9yZSB0aGUgdGltZW91
dCwgc29tZSBub3RpZnlPbmUoKSBvcgorICAgIC8vIG5vdGlmeUFsbCgpIGNhbGwgbXVzdCBoYXZl
IGhhcHBlbmVkLiBObyBzY2VuYXJpbyBvdGhlciB0aGFuIHRpbWVvdXQgb3Igbm90aWZ5IGNhbiBs
ZWFkIHRvIHRoaXMKKyAgICAvLyBtZXRob2QgcmV0dXJuaW5nLiBUaGlzIG1lYW5zLCBmb3IgZXhh
bXBsZSwgdGhhdCB5b3UgY2FuJ3QgdXNlIHB0aHJlYWQgY2FuY2VsYXRpb24gb3Igc2lnbmFscyB0
bworICAgIC8vIGNhdXNlIGVhcmx5IHJldHVybi4KKyAgICAvLworICAgIC8vIFBhc3QgdGltZW91
dDogaXQncyBwb3NzaWJsZSBmb3Igd2FpdFVudGlsKCkgdG8gYmUgY2FsbGVkIHdpdGggYSB0aW1l
b3V0IGluIHRoZSBwYXN0LiBJbiB0aGF0CisgICAgLy8gY2FzZSwgd2FpdFVudGlsKCkgd2lsbCBz
dGlsbCByZWxlYXNlIHRoZSBsb2NrIGFuZCByZWFjcXVpcmUgaXQuIHdhaXRVbnRpbCgpIHdpbGwg
YWx3YXlzIHJldHVybgorICAgIC8vIGZhbHNlIGluIHRoYXQgY2FzZS4gVGhpcyBpcyBzdWJ0bHkg
ZGlmZmVyZW50IGZyb20gc29tZSBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgaW1wbGVtZW50YXRp
b25zLAorICAgIC8vIHdoaWNoIG1heSBub3QgcmVsZWFzZSB0aGUgbG9jayBmb3IgcGFzdCB0aW1l
b3V0LiBCdXQsIHRoaXMgYmVoYXZpb3IgaXMgY29uc2lzdGVudCB3aXRoIE9wZW5Hcm91cAorICAg
IC8vIGRvY3VtZW50YXRpb24gZm9yIHRpbWVkd2FpdCgpLgorICAgIC8vCisgICAgLy8gTWF5IHdh
aXQgdG9vIGxvbmcgb24gc29tZSBPU2VzOiB0aGUgQysrIHN0YW5kYXJkIGxpYnJhcnkgaW1wbGVt
ZW50YXRpb24gb2YKKyAgICAvLyBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZTo6d2FpdF91bnRpbCgp
LCB3aGljaCB0aGlzIHVzZXMgaW50ZXJuYWxseSwgbWF5IGNvbnZlcnQgdGhlIGFic29sdXRlCisg
ICAgLy8gdGltZSB0byBhbiBhYnNvbHV0ZSB0aW1lIGFjY29yZGluZyB0byB0aGUgc3lzdGVtIGNs
b2NrLCB3aGljaCBpc24ndCBtb25vdG9uaWMuIEl0IHdpbGwgZG8gdGhpcworICAgIC8vIHNvIHRo
YXQgaXQgY2FuIHVzZSBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkuIERlcGVuZGluZyBvbiB0aGUg
T1MgYW5kIGlmIGFuIHVuZm9ydHVuYXRlCisgICAgLy8gY29tYmluYXRpb24gb2YgdGhyZWFkIGlu
dGVybGVhdmluZ3MgYW5kIHN5c3RlbSB0aW1lIGNoYW5nZXMgaGFwcGVucywgdGhpcyBtYXkgY2F1
c2Ugd2FpdFVudGlsKCkKKyAgICAvLyB0byB3YWl0IGxvbmdlciB0aGFuIGl0J3Mgc3VwcG9zZWQg
dG8uIEhvd2V2ZXIsIGl0J3MgdHlwaWNhbCBmb3IgT1NlcyB0byB0dXJuIHRoZSBhYnNvbHV0ZQor
ICAgIC8vIHRpbWVvdXQgaW4gcHRocmVhZF9jb25kX3RpbWVkd2FpdCgpIHRvIGEgcmVsYXRpdmUg
dGltZW91dCBiZWZvcmUgY2FsbGluZyBpbnRvIHRoZSBrZXJuZWwuIFRoaXMKKyAgICAvLyBpcyB3
aGF0IGdsaWJjIGRvZXMsIGZvciBleGFtcGxlLgorICAgIC8vCisgICAgLy8gVGhlc2UgcXVpcmtz
IGFyZSBnZW5lcmFsbHkgbm90IHdvcnRoIHdvcnJ5aW5nIHRvbyBtdWNoIGFib3V0LiBUaGUgZmFj
dCB0aGF0IHNvbWUgT1NlcyBwZXJmb3JtCisgICAgLy8gY29udmVyc2lvbnMgdG8gYW4gYWJzb2x1
dGUgbm9uLW1vbm90b25pYyB0aW1lIGlzIHVubGlrZWx5IHRvIGNhdXNlIGlzc3VlcyBiZWNhdXNl
IHRoZXkgdXN1YWxseQorICAgIC8vIGp1c3QgZG8gdGhhdCBhcyBwYXJ0IG9mIGEgY29udmVyc2lv
biB0byBhIHJlbGF0aXZlIHNsZWVwIGFtb3VudCBpbiB0aGUga2VybmVsLgogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIExvY2tUeXBlPgotICAgIGJvb2wgd2FpdFVudGlsKAotICAgICAgICBMb2NrVHlw
ZSYgbG9jaywgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCB0aW1lb3V0KQor
ICAgIGJvb2wgd2FpdFVudGlsKExvY2tUeXBlJiBsb2NrLCBDbG9jazo6dGltZV9wb2ludCB0aW1l
b3V0KQogICAgIHsKLSAgICAgICAgYm9vbCByZXN1bHQgPSBQYXJraW5nTG90OjpwYXJrQ29uZGl0
aW9uYWxseSgKLSAgICAgICAgICAgICZtX2R1bW15LAotICAgICAgICAgICAgW10gKCkgLT4gYm9v
bCB7IHJldHVybiB0cnVlOyB9LAotICAgICAgICAgICAgWyZsb2NrXSAoKSB7IGxvY2sudW5sb2Nr
KCk7IH0sCi0gICAgICAgICAgICB0aW1lb3V0KTsKKyAgICAgICAgYm9vbCByZXN1bHQ7CisgICAg
ICAgIGlmICh0aW1lb3V0IDwgQ2xvY2s6Om5vdygpKSB7CisgICAgICAgICAgICBsb2NrLnVubG9j
aygpOworICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICByZXN1bHQgPSBQYXJraW5nTG90OjpwYXJrQ29uZGl0aW9uYWxseSgKKyAgICAgICAg
ICAgICAgICAmbV9kdW1teSwKKyAgICAgICAgICAgICAgICBbXSAoKSAtPiBib29sIHsgcmV0dXJu
IHRydWU7IH0sCisgICAgICAgICAgICAgICAgWyZsb2NrXSAoKSB7IGxvY2sudW5sb2NrKCk7IH0s
CisgICAgICAgICAgICAgICAgdGltZW91dCk7CisgICAgICAgIH0KICAgICAgICAgbG9jay5sb2Nr
KCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpAQCAtNTYsOCArODksNyBAQCBwdWJs
aWM6CiAgICAgLy8gV2FpdCB1bnRpbCB0aGUgZ2l2ZW4gcHJlZGljYXRlIGlzIHNhdGlzZmllZC4g
UmV0dXJucyB0cnVlIGlmIGl0IGlzIHNhdGlzZmllZCBpbiB0aGUgZW5kLgogICAgIC8vIE1heSBy
ZXR1cm4gZWFybHkgZHVlIHRvIHRpbWVvdXQuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5
cGUsIHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgYm9vbCB3YWl0VW50aWwoCi0gICAgICAgIExvY2tU
eXBlJiBsb2NrLCBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQs
IGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkKKyAgICBib29sIHdhaXRVbnRpbChMb2NrVHlwZSYg
bG9jaywgQ2xvY2s6OnRpbWVfcG9pbnQgdGltZW91dCwgY29uc3QgRnVuY3RvciYgcHJlZGljYXRl
KQogICAgIHsKICAgICAgICAgd2hpbGUgKCFwcmVkaWNhdGUoKSkgewogICAgICAgICAgICAgaWYg
KCF3YWl0VW50aWwobG9jaywgdGltZW91dCkpCkBAIC03MiwxNyArMTA0LDEzIEBAIHB1YmxpYzoK
ICAgICBib29sIHdhaXRGb3IoCiAgICAgICAgIExvY2tUeXBlJiBsb2NrLCBjb25zdCBEdXJhdGlv
blR5cGUmIHJlbGF0aXZlVGltZW91dCwgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKQogICAgIHsK
LSAgICAgICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCBhYnNvbHV0ZVRp
bWVvdXQgPQotICAgICAgICAgICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgKwot
ICAgICAgICAgICAgc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86OnN0ZWFk
eV9jbG9jazo6ZHVyYXRpb24+KHJlbGF0aXZlVGltZW91dCk7Ci0KLSAgICAgICAgcmV0dXJuIHdh
aXRVbnRpbChsb2NrLCBhYnNvbHV0ZVRpbWVvdXQsIHByZWRpY2F0ZSk7CisgICAgICAgIHJldHVy
biB3YWl0VW50aWwobG9jaywgYWJzb2x1dGVGcm9tUmVsYXRpdmUocmVsYXRpdmVUaW1lb3V0KSwg
cHJlZGljYXRlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KICAg
ICB2b2lkIHdhaXQoTG9ja1R5cGUmIGxvY2spCiAgICAgewotICAgICAgICB3YWl0VW50aWwobG9j
aywgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOworICAgICAg
ICB3YWl0VW50aWwobG9jaywgQ2xvY2s6OnRpbWVfcG9pbnQ6Om1heCgpKTsKICAgICB9CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRnVuY3Rvcj4KQEAgLTkyLDYg
KzEyMCwzMiBAQCBwdWJsaWM6CiAgICAgICAgICAgICB3YWl0KGxvY2spOwogICAgIH0KIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlLCB0eXBlbmFtZSBUaW1lVHlwZT4KKyAgICBib29s
IHdhaXRVbnRpbChMb2NrVHlwZSYgbG9jaywgY29uc3QgVGltZVR5cGUmIHRpbWVvdXQpCisgICAg
eworICAgICAgICBpZiAodGltZW91dCA9PSBUaW1lVHlwZTo6bWF4KCkpIHsKKyAgICAgICAgICAg
IHdhaXQobG9jayk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gd2FpdEZvckltcGwobG9jaywgdGltZW91dCAtIFRpbWVUeXBlOjpjbG9jazo6bm93
KCkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgorICAgIGJvb2wg
d2FpdFVudGlsV2FsbENsb2NrU2Vjb25kcyhMb2NrVHlwZSYgbG9jaywgZG91YmxlIGFic29sdXRl
VGltZW91dFNlY29uZHMpCisgICAgeworICAgICAgICByZXR1cm4gd2FpdEZvclNlY29uZHNJbXBs
KGxvY2ssIGFic29sdXRlVGltZW91dFNlY29uZHMgLSBjdXJyZW50VGltZSgpKTsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KKyAgICBib29sIHdhaXRVbnRpbE1vbm90
b25pY0Nsb2NrU2Vjb25kcyhMb2NrVHlwZSYgbG9jaywgZG91YmxlIGFic29sdXRlVGltZW91dFNl
Y29uZHMpCisgICAgeworICAgICAgICByZXR1cm4gd2FpdEZvclNlY29uZHNJbXBsKGxvY2ssIGFi
c29sdXRlVGltZW91dFNlY29uZHMgLSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7Cisg
ICAgfQorCisgICAgLy8gRklYTUU6IFdlIGNvdWxkIHJlcGxhY2UgdGhlIGR1bW15IGJ5dGUgd2l0
aCBhIGJvb2xlYW4gdG8gdGVsbCB1cyBpZiB0aGVyZSBpcyBhbnlvbmUgd2FpdGluZworICAgIC8v
IHJpZ2h0IG5vdy4gVGhpcyBjb3VsZCBiZSB1c2VkIHRvIGltcGxlbWVudCBhIGZhc3QgcGF0aCBm
b3Igbm90aWZ5T25lKCkgYW5kIG5vdGlmeUFsbCgpLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwOTAKKwogICAgIHZvaWQgbm90aWZ5T25lKCkKICAg
ICB7CiAgICAgICAgIFBhcmtpbmdMb3Q6OnVucGFya09uZSgmbV9kdW1teSk7CkBAIC0xMDMsNyAr
MTU3LDU2IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRlOgorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIExvY2tUeXBlPgorICAgIGJvb2wgd2FpdEZvclNlY29uZHNJbXBsKExvY2tUeXBlJiBs
b2NrLCBkb3VibGUgcmVsYXRpdmVUaW1lb3V0U2Vjb25kcykKKyAgICB7CisgICAgICAgIGRvdWJs
ZSByZWxhdGl2ZVRpbWVvdXROYW5vc2Vjb25kcyA9IHJlbGF0aXZlVGltZW91dFNlY29uZHMgKiAo
MTAwMC4wICogMTAwMC4wICogMTAwMC4wKTsKKyAgICAgICAgCisgICAgICAgIGlmICghKHJlbGF0
aXZlVGltZW91dE5hbm9zZWNvbmRzID4gMCkpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaGFuZGxl
cyBpbnN0YS10aW1lb3V0cyBhcyB3ZWxsIGFzIE5hTi4KKyAgICAgICAgICAgIGxvY2sudW5sb2Nr
KCk7CisgICAgICAgICAgICBsb2NrLmxvY2soKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmIChyZWxhdGl2ZVRpbWVvdXROYW5vc2Vjb25kcyA+IHN0
YXRpY19jYXN0PGRvdWJsZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2NF90Pjo6bWF4KCkpKSB7
CisgICAgICAgICAgICAvLyBJZiB0aGUgdGltZW91dCBpbiBuYW5vc2Vjb25kcyBjYW5ub3QgYmUg
ZXhwcmVzc2VkIHVzaW5nIGEgNjQtYml0IGludGVnZXIsIHRoZW4gd2UKKyAgICAgICAgICAgIC8v
IG1pZ2h0IGFzIHdlbGwgd2FpdCBmb3JldmVyLgorICAgICAgICAgICAgd2FpdChsb2NrKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBhdXRv
IHJlbGF0aXZlVGltZW91dCA9CisgICAgICAgICAgICBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMo
c3RhdGljX2Nhc3Q8aW50NjRfdD4ocmVsYXRpdmVUaW1lb3V0TmFub3NlY29uZHMpKTsKKworICAg
ICAgICByZXR1cm4gd2FpdEZvckltcGwobG9jaywgcmVsYXRpdmVUaW1lb3V0KTsKKyAgICB9CiAg
ICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVuYW1lIER1cmF0aW9uVHlw
ZT4KKyAgICBib29sIHdhaXRGb3JJbXBsKExvY2tUeXBlJiBsb2NrLCBjb25zdCBEdXJhdGlvblR5
cGUmIHJlbGF0aXZlVGltZW91dCkKKyAgICB7CisgICAgICAgIHJldHVybiB3YWl0VW50aWwobG9j
aywgYWJzb2x1dGVGcm9tUmVsYXRpdmUocmVsYXRpdmVUaW1lb3V0KSk7CisgICAgfQorCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRHVyYXRpb25UeXBlPgorICAgIENsb2NrOjp0aW1lX3BvaW50IGFi
c29sdXRlRnJvbVJlbGF0aXZlKGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVUaW1lb3V0KQor
ICAgIHsKKyAgICAgICAgaWYgKHJlbGF0aXZlVGltZW91dCA8IER1cmF0aW9uVHlwZTo6emVybygp
KQorICAgICAgICAgICAgcmV0dXJuIENsb2NrOjp0aW1lX3BvaW50OjptaW4oKTsKKworICAgICAg
ICBpZiAocmVsYXRpdmVUaW1lb3V0ID4gQ2xvY2s6OmR1cmF0aW9uOjptYXgoKSkgeworICAgICAg
ICAgICAgLy8gVGhpcyBpcyBoaWdobHkgdW5saWtlbHkuIEJ1dCBpZiBpdCBoYXBwZW5zLCB3ZSB3
YW50IHRvIG5vdCBkbyBhbnl0aGluZyBkdW1iLiBTbGVlcGluZworICAgICAgICAgICAgLy8gd2l0
aG91dCBhIHRpbWVvdXQgc2VlbXMgc2Vuc2libGUgd2hlbiB0aGUgdGltZW91dCBkdXJhdGlvbiBp
cyBncmVhdGVyIHRoYW4gd2hhdCBjYW4gYmUKKyAgICAgICAgICAgIC8vIGV4cHJlc3NlZCB1c2lu
ZyBzdGVhZHlfY2xvY2suCisgICAgICAgICAgICByZXR1cm4gQ2xvY2s6OnRpbWVfcG9pbnQ6Om1h
eCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBDbG9jazo6ZHVyYXRpb24gbXlSZWxh
dGl2ZVRpbWVvdXQgPQorICAgICAgICAgICAgc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8Q2xv
Y2s6OmR1cmF0aW9uPihyZWxhdGl2ZVRpbWVvdXQpOworCisgICAgICAgIHJldHVybiBDbG9jazo6
bm93KCkgKyBteVJlbGF0aXZlVGltZW91dDsKKyAgICB9CisKICAgICB1aW50OF90IG1fZHVtbXk7
CiB9OwogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291
cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMyLDcgKzMyLDkgQEAKIAogI2luY2x1ZGUgPGxp
bWl0cz4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9Db25kaXRp
b24uaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApA
QCAtNzcsOCArNzksOCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgc3RhdGljIGRvdWJsZSBp
bmZpbml0ZVRpbWUoKSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Om1heCgp
OyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBtdXRhYmxlIE11dGV4IG1fbXV0ZXg7Ci0gICAg
ICAgIFRocmVhZENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKKyAgICAgICAgbXV0YWJsZSBMb2NrIG1f
bXV0ZXg7CisgICAgICAgIENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKICAgICAgICAgRGVxdWU8c3Rk
Ojp1bmlxdWVfcHRyPERhdGFUeXBlPj4gbV9xdWV1ZTsKICAgICAgICAgYm9vbCBtX2tpbGxlZDsK
ICAgICB9OwpAQCAtOTEsMzcgKzkzLDM3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlw
ZT46OmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+IG1lc3NhZ2UpCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV9tdXRleCk7CiAgICAgICAgIG1fcXVldWUuYXBwZW5kKFdURjo6bW92ZShtZXNzYWdlKSk7Ci0g
ICAgICAgIG1fY29uZGl0aW9uLnNpZ25hbCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlP
bmUoKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4KICAgICBpbmxp
bmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjphcHBlbmRBbmRLaWxsKHN0ZDo6dW5pcXVl
X3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2so
bV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9x
dWV1ZS5hcHBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgbV9raWxsZWQgPSB0cnVl
OwotICAgICAgICBtX2NvbmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICAgICAgbV9jb25kaXRpb24u
bm90aWZ5QWxsKCk7CiAgICAgfQogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBxdWV1ZSB3
YXMgZW1wdHkgYmVmb3JlIHRoZSBpdGVtIHdhcyBhZGRlZC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEYXRhVHlwZT4KICAgICBpbmxpbmUgYm9vbCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjphcHBl
bmRBbmRDaGVja0VtcHR5KHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9jayhtX211dGV4KTsKICAgICAgICAgYm9vbCB3YXNFbXB0eSA9IG1fcXVldWUuaXNFbXB0eSgp
OwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEY6Om1vdmUobWVzc2FnZSkpOwotICAgICAgICBt
X2NvbmRpdGlvbi5zaWduYWwoKTsKKyAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CiAg
ICAgICAgIHJldHVybiB3YXNFbXB0eTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
YXRhVHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpwcmVwZW5k
KHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsK
ICAgICAgICAgbV9xdWV1ZS5wcmVwZW5kKFdURjo6bW92ZShtZXNzYWdlKSk7Ci0gICAgICAgIG1f
Y29uZGl0aW9uLnNpZ25hbCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAg
ICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4KQEAgLTEzNyw3ICsxMzksNyBA
QCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcmVkaWNhdGU+CiAgICAg
aW5saW5lIGF1dG8gTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6d2FpdEZvck1lc3NhZ2VGaWx0ZXJl
ZFdpdGhUaW1lb3V0KE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQmIHJlc3VsdCwgUHJlZGljYXRlJiYg
cHJlZGljYXRlLCBkb3VibGUgYWJzb2x1dGVUaW1lKSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5
cGU+CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGJvb2wgdGltZWRPdXQgPSBmYWxzZTsK
IAogICAgICAgICBhdXRvIGZvdW5kID0gbV9xdWV1ZS5lbmQoKTsKQEAgLTE0OSw3ICsxNTEsNyBA
QCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgICAgIGlmIChmb3VuZCAhPSBtX3F1ZXVlLmVuZCgp
KQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICB0aW1lZE91dCA9ICFtX2Nv
bmRpdGlvbi50aW1lZFdhaXQobV9tdXRleCwgYWJzb2x1dGVUaW1lKTsKKyAgICAgICAgICAgIHRp
bWVkT3V0ID0gIW1fY29uZGl0aW9uLndhaXRVbnRpbFdhbGxDbG9ja1NlY29uZHMobV9tdXRleCwg
YWJzb2x1dGVUaW1lKTsKICAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVCghdGltZWRPdXQgfHwg
YWJzb2x1dGVUaW1lICE9IGluZmluaXRlVGltZSgpKTsKQEAgLTE3NCw3ICsxNzYsNyBAQCBuYW1l
c3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4KICAgICBpbmxpbmUg
YXV0byBNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojp0cnlHZXRNZXNzYWdlKCkgLT4gc3RkOjp1bmlx
dWVfcHRyPERhdGFUeXBlPgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBpZiAobV9raWxs
ZWQpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgaWYgKG1fcXVldWUuaXNF
bXB0eSgpKQpAQCAtMTg2LDcgKzE4OCw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBhdXRvIE1lc3NhZ2VRdWV1ZTxEYXRhVHlw
ZT46OnRyeUdldE1lc3NhZ2VJZ25vcmluZ0tpbGxlZCgpIC0+IHN0ZDo6dW5pcXVlX3B0cjxEYXRh
VHlwZT4KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgaWYgKG1fcXVldWUuaXNFbXB0eSgp
KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTE5Nyw3ICsxOTksNyBAQCBuYW1l
c3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcmVkaWNhdGU+CiAgICAgaW5saW5l
IHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6cmVtb3ZlSWYoUHJlZGljYXRlJiYgcHJlZGlj
YXRlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAg
ICAgICAgYXV0byBmb3VuZCA9IG1fcXVldWUuZmluZElmKFsmcHJlZGljYXRlXShjb25zdCBzdGQ6
OnVuaXF1ZV9wdHI8RGF0YVR5cGU+JiBwdHIpIC0+IGJvb2wgewogICAgICAgICAgICAgICAgIEFT
U0VSVChwdHIpOwpAQCAtMjE0LDcgKzIxNiw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRh
VHlwZT46OmlzRW1wdHkoKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBpZiAobV9raWxs
ZWQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgcmV0dXJuIG1fcXVldWUuaXNF
bXB0eSgpOwpAQCAtMjIzLDE1ICsyMjUsMTUgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFU
eXBlPjo6a2lsbCgpCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIG1fa2lsbGVkID0gdHJ1
ZTsKLSAgICAgICAgbV9jb25kaXRpb24uYnJvYWRjYXN0KCk7CisgICAgICAgIG1fY29uZGl0aW9u
Lm5vdGlmeUFsbCgpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgog
ICAgIGlubGluZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmtpbGxlZCgpIGNvbnN0CiAg
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9s
ZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIHJldHVybiBtX2tpbGxlZDsKICAgICB9CiB9IC8v
IG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3Bw
CShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmlj
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDE3ICsxMDUsMTcgQEAgYm9vbCBQYXJhbGxlbEVu
dmlyb25tZW50OjpUaHJlYWRQcml2YXRlOgogCiB2b2lkIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRo
cmVhZFByaXZhdGU6OmV4ZWN1dGUoVGhyZWFkRnVuY3Rpb24gdGhyZWFkRnVuY3Rpb24sIHZvaWQq
IHBhcmFtZXRlcnMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAKICAgICBtX3RocmVhZEZ1bmN0aW9uID0gdGhyZWFkRnVu
Y3Rpb247CiAgICAgbV9wYXJhbWV0ZXJzID0gcGFyYW1ldGVyczsKICAgICBtX3J1bm5pbmcgPSB0
cnVlOwotICAgIG1fdGhyZWFkQ29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1fdGhyZWFkQ29uZGl0
aW9uLm5vdGlmeU9uZSgpOwogfQogCiB2b2lkIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFBy
aXZhdGU6OndhaXRGb3JGaW5pc2goKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogCiAgICAgd2hpbGUgKG1fcnVubmluZykK
ICAgICAgICAgbV90aHJlYWRDb25kaXRpb24ud2FpdChtX211dGV4KTsKQEAgLTEyNCwxNCArMTI0
LDE0IEBAIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZToKIHZvaWQgUGFy
YWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d29ya2VyVGhyZWFkKHZvaWQqIHRocmVh
ZERhdGEpCiB7CiAgICAgVGhyZWFkUHJpdmF0ZSogc2hhcmVkVGhyZWFkID0gcmVpbnRlcnByZXRf
Y2FzdDxUaHJlYWRQcml2YXRlKj4odGhyZWFkRGF0YSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhz
aGFyZWRUaHJlYWQtPm1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhzaGFyZWRUaHJlYWQt
Pm1fbXV0ZXgpOwogCiAgICAgd2hpbGUgKHNoYXJlZFRocmVhZC0+bV90aHJlYWRJRCkgewogICAg
ICAgICBpZiAoc2hhcmVkVGhyZWFkLT5tX3J1bm5pbmcpIHsKICAgICAgICAgICAgICgqc2hhcmVk
VGhyZWFkLT5tX3RocmVhZEZ1bmN0aW9uKShzaGFyZWRUaHJlYWQtPm1fcGFyYW1ldGVycyk7CiAg
ICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1fcnVubmluZyA9IGZhbHNlOwogICAgICAgICAgICAg
c2hhcmVkVGhyZWFkLT5tX3BhcmVudCA9IDA7Ci0gICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1f
dGhyZWFkQ29uZGl0aW9uLnNpZ25hbCgpOworICAgICAgICAgICAgc2hhcmVkVGhyZWFkLT5tX3Ro
cmVhZENvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICAgICAgfQogCiAgICAgICAgIHNoYXJlZFRo
cmVhZC0+bV90aHJlYWRDb25kaXRpb24ud2FpdChzaGFyZWRUaHJlYWQtPm1fbXV0ZXgpOwpJbmRl
eDogU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaAkocmV2aXNpb24gMTg4NTEwKQorKysg
U291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oCSh3b3JraW5nIGNvcHkpCkBAIC03
Niw4ICs3Niw4IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBtX3J1bm5pbmc7CiAgICAgICAgIFBh
cmFsbGVsRW52aXJvbm1lbnQqIG1fcGFyZW50OwogCi0gICAgICAgIG11dGFibGUgTXV0ZXggbV9t
dXRleDsKLSAgICAgICAgVGhyZWFkQ29uZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOworICAgICAg
ICBtdXRhYmxlIExvY2sgbV9tdXRleDsKKyAgICAgICAgQ29uZGl0aW9uIG1fdGhyZWFkQ29uZGl0
aW9uOwogCiAgICAgICAgIFRocmVhZEZ1bmN0aW9uIG1fdGhyZWFkRnVuY3Rpb247CiAgICAgICAg
IHZvaWQqIG1fcGFyYW1ldGVyczsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCShyZXZpc2lvbiAx
ODg1MTApCisrKyBTb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTExLDcgKzUxMSw3IEBAIGJvb2wgUGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHkoCiAg
ICAgY29uc3Qgdm9pZCogYWRkcmVzcywKICAgICBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4gdmFsaWRh
dGlvbiwKICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gYmVmb3JlU2xlZXAsCi0gICAgc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCB0aW1lb3V0KQorICAgIENsb2NrOjp0aW1l
X3BvaW50IHRpbWVvdXQpCiB7CiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2codG9T
dHJpbmcoY3VycmVudFRocmVhZCgpLCAiOiBwYXJraW5nLlxuIikpOwpAQCAtNTM5LDExICs1Mzks
MTEgQEAgYm9vbCBQYXJraW5nTG90OjpwYXJrQ29uZGl0aW9uYWxseSgKICAgICBib29sIGRpZEdl
dERlcXVldWVkOwogICAgIHsKICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBs
b2NrZXIobWUtPnBhcmtpbmdMb2NrKTsKLSAgICAgICAgd2hpbGUgKG1lLT5hZGRyZXNzICYmIHN0
ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpIDwgdGltZW91dCkgeworICAgICAgICB3aGls
ZSAobWUtPmFkZHJlc3MgJiYgQ2xvY2s6Om5vdygpIDwgdGltZW91dCkgewogICAgICAgICAgICAg
Ly8gVGhpcyBpcyBwcmV0dHkgZnVubnkuIE9uIExpbnV4LCBpZiB5b3Ugd2FpdCB1bnRpbCB0aGUg
bWF4IHRpbWUsIGl0IGltbWVkaWF0ZWx5IHJlcG9ydHMgdGhhdCB5b3UgdGltZWQKICAgICAgICAg
ICAgIC8vIG91dC4gV2hhdCdzIHBhcnRpY3VsYXJseSBiYWQgYWJvdXQgdGhpcyBpcyB0aGF0IGl0
IG5ldmVyIHJlbGVhc2VzIHRoZSBsb2NrIGluIHRoYXQgY2FzZS4gU28sIHlvdSBsb29wCiAgICAg
ICAgICAgICAvLyBmb3JldmVyIHdpdGhvdXQgeWllbGRpbmcgdG8gdGhlIHRocmVhZCB0aGF0IHdv
dWxkIHdha2UgeW91IHVwLgotICAgICAgICAgICAgaWYgKHRpbWVvdXQgPT0gc3RkOjpjaHJvbm86
OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludDo6bWF4KCkpCisgICAgICAgICAgICBpZiAodGltZW91
dCA9PSBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpCiAgICAgICAgICAgICAgICAgbWUtPnBhcmtp
bmdDb25kaXRpb24ud2FpdChsb2NrZXIpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIG1lLT5wYXJraW5nQ29uZGl0aW9uLndhaXRfdW50aWwobG9ja2VyLCB0aW1lb3V0KTsKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9QYXJraW5nTG90LmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XVEYvd3RmL1Bh
cmtpbmdMb3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOCBAQCBjbGFzcyBQYXJraW5n
TG90IHsKICAgICBQYXJraW5nTG90KGNvbnN0IFBhcmtpbmdMb3QmKSA9IGRlbGV0ZTsKIAogcHVi
bGljOgorICAgIHR5cGVkZWYgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jayBDbG9jazsKKyAgICAK
ICAgICAvLyBQYXJrcyB0aGUgdGhyZWFkIGluIGEgcXVldWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBn
aXZlbiBhZGRyZXNzLCB3aGljaCBjYW5ub3QgYmUgbnVsbC4gVGhlCiAgICAgLy8gcGFya2luZyBv
bmx5IHN1Y2NlZWRzIGlmIHRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSB3aGls
ZSB0aGUgcXVldWUgbG9jayBpcyBoZWxkLgogICAgIC8vIElmIHZhbGlkYXRpb24gcmV0dXJucyBm
YWxzZSwgaXQgd2lsbCB1bmxvY2sgdGhlIGludGVybmFsIHBhcmtpbmcgcXVldWUgYW5kIHRoZW4g
aXQgd2lsbApAQCAtNTMsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IHZvaWQqIGFk
ZHJlc3MsCiAgICAgICAgIHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiB2YWxpZGF0aW9uLAogICAgICAg
ICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gYmVmb3JlU2xlZXAsCi0gICAgICAgIHN0ZDo6Y2hyb25v
OjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgdGltZW91dCk7CisgICAgICAgIENsb2NrOjp0aW1l
X3BvaW50IHRpbWVvdXQpOwogCiAgICAgLy8gU2ltcGxlIHZlcnNpb24gb2YgcGFya0NvbmRpdGlv
bmFsbHkoKSB0aGF0IGNvdmVycyB0aGUgbW9zdCBjb21tb24gY2FzZTogeW91IHdhbnQgdG8gcGFy
awogICAgIC8vIGluZGVmaW5pdGVseSBzbyBsb25nIGFzIHRoZSB2YWx1ZSBhdCB0aGUgZ2l2ZW4g
YWRkcmVzcyBoYXNuJ3QgY2hhbmdlZC4KQEAgLTY3LDcgKzY5LDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBleHBlY3RlZDsKICAgICAgICAgICAgIH0sCiAgICAg
ICAgICAgICBbXSAoKSB7IH0sCi0gICAgICAgICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2Nr
Ojp0aW1lX3BvaW50OjptYXgoKSk7CisgICAgICAgICAgICBDbG9jazo6dGltZV9wb2ludDo6bWF4
KCkpOwogICAgIH0KIAogICAgIC8vIFVucGFya3Mgb25lIHRocmVhZCBmcm9tIHRoZSBxdWV1ZSBh
c3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGFkZHJlc3MsIHdoaWNoIGNhbm5vdCBiZSBudWxsLgpJ
bmRleDogU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAkocmV2aXNpb24gMTg4NTEwKQor
KysgU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjYsNyArMTI2LDYgQEAgdm9pZCBpbml0aWFsaXplVGhyZWFkaW5nKCkKICAgICBUaHJlYWRJ
ZGVudGlmaWVyRGF0YTo6aW5pdGlhbGl6ZU9uY2UoKTsKICAgICBTdGFja1N0YXRzOjppbml0aWFs
aXplKCk7CiAgICAgd3RmVGhyZWFkRGF0YSgpOwotICAgIHNfZHRvYVA1TXV0ZXggPSBuZXcgTXV0
ZXg7CiAgICAgaW5pdGlhbGl6ZURhdGVzKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1Ro
cmVhZGluZ1dpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2lu
LmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTY1LDcgKzE2NSw2IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVh
ZGluZygpCiAgICAgdGhyZWFkTWFwTXV0ZXgoKTsKICAgICBpbml0aWFsaXplUmFuZG9tTnVtYmVy
R2VuZXJhdG9yKCk7CiAgICAgd3RmVGhyZWFkRGF0YSgpOwotICAgIHNfZHRvYVA1TXV0ZXggPSBu
ZXcgTXV0ZXg7CiAgICAgaW5pdGlhbGl6ZURhdGVzKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL2R0b2EuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCShyZXZp
c2lvbiAxODg1MTApCisrKyBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMyw3ICszLDcgQEAKICAqIFRoZSBhdXRob3Igb2YgdGhpcyBzb2Z0d2FyZSBpcyBEYXZpZCBN
LiBHYXkuCiAgKgogICogQ29weXJpZ2h0IChjKSAxOTkxLCAyMDAwLCAyMDAxIGJ5IEx1Y2VudCBU
ZWNobm9sb2dpZXMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwLCAyMDEyLCAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBQZXJtaXNzaW9uIHRvIHVzZSwg
Y29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKICAqIHB1
cnBvc2Ugd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhpcyBl
bnRpcmUgbm90aWNlCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiZHRvYS5oIgogCiAjaW5j
bHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9NYXRo
RXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KQEAgLTU0LDcgKzU1LDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLU11dGV4KiBzX2R0
b2FQNU11dGV4Oworc3RhdGljIFN0YXRpY0xvY2sgc19kdG9hUDVNdXRleDsKIAogdHlwZWRlZiB1
bmlvbiB7CiAgICAgZG91YmxlIGQ7CkBAIC0zNzUsNyArMzc2LDcgQEAgc3RhdGljIEFMV0FZU19J
TkxJTkUgdm9pZCBwb3c1bXVsdChCaWdJbgogICAgIGlmICghKGsgPj49IDIpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBzX2R0b2FQNU11dGV4LT5sb2NrKCk7CisgICAgc19kdG9hUDVNdXRleC5s
b2NrKCk7CiAgICAgUDVOb2RlKiBwNSA9IHA1czsKIAogICAgIGlmICghcDUpIHsKQEAgLTM4OCw3
ICszODksNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSB2b2lkIHBvdzVtdWx0KEJpZ0luCiAgICAg
fQogCiAgICAgaW50IHA1c0NvdW50TG9jYWwgPSBwNXNDb3VudDsKLSAgICBzX2R0b2FQNU11dGV4
LT51bmxvY2soKTsKKyAgICBzX2R0b2FQNU11dGV4LnVubG9jaygpOwogICAgIGludCBwNXNVc2Vk
ID0gMDsKIAogICAgIGZvciAoOzspIHsKQEAgLTM5OSw3ICs0MDAsNyBAQCBzdGF0aWMgQUxXQVlT
X0lOTElORSB2b2lkIHBvdzVtdWx0KEJpZ0luCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAg
ICBpZiAoKytwNXNVc2VkID09IHA1c0NvdW50TG9jYWwpIHsKLSAgICAgICAgICAgIHNfZHRvYVA1
TXV0ZXgtPmxvY2soKTsKKyAgICAgICAgICAgIHNfZHRvYVA1TXV0ZXgubG9jaygpOwogICAgICAg
ICAgICAgaWYgKHA1c1VzZWQgPT0gcDVzQ291bnQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQo
IXA1LT5uZXh0KTsKICAgICAgICAgICAgICAgICBwNS0+bmV4dCA9IG5ldyBQNU5vZGU7CkBAIC00
MTAsNyArNDExLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBwb3c1bXVsdChCaWdJbgog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBwNXNDb3VudExvY2FsID0gcDVzQ291bnQ7Ci0g
ICAgICAgICAgICBzX2R0b2FQNU11dGV4LT51bmxvY2soKTsKKyAgICAgICAgICAgIHNfZHRvYVA1
TXV0ZXgudW5sb2NrKCk7CiAgICAgICAgIH0KICAgICAgICAgcDUgPSBwNS0+bmV4dDsKICAgICB9
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9kdG9hLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvZHRvYS5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV1RGL3d0Zi9kdG9hLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCw2IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1jbGFz
cyBNdXRleDsKLQotZXh0ZXJuIE11dGV4KiBzX2R0b2FQNU11dGV4OwotCiB0eXBlZGVmIGNoYXIg
RHRvYUJ1ZmZlcls4MF07CiAKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGR0b2EoRHRvYUJ1ZmZl
ciByZXN1bHQsIGRvdWJsZSBkZCwgYm9vbCYgc2lnbiwgaW50JiBleHBvbmVudCwgdW5zaWduZWQm
IHByZWNpc2lvbik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODg1NDgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNzQgQEAKKzIwMTUt
MDgtMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNl
IGFsbCByZW1haW5pbmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVj
YXVzZSBubyBuZXcgYmVoYXZpb3IuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0FzeW5j
QXVkaW9EZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jQXVkaW9EZWNvZGVyOjpB
c3luY0F1ZGlvRGVjb2Rlcik6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0F1ZGlvRGVjb2Rlcjo6
cnVuTG9vcCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmFkZEF1ZGlvQ29uc3VtZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6cmVtb3ZlQXVkaW9Db25zdW1lcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpzZXRBdWRpb0Zvcm1h
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjb25zdW1lQXVk
aW8pOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YWJhc2U6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpy
dW5UcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6aW5Qcm9ncmVzc1Ry
YW5zYWN0aW9uQ29tcGxldGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpoYXNQZW5k
aW5nVHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2Uu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6OnRhc2tDb21wbGV0ZWQpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhYmFzZVRocmVhZDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJl
YWQ6OmRhdGFiYXNlVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVGhyZWFkLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNr
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpzZXREYXRhYmFzZURp
cmVjdG9yeVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpjYW5Fc3Rh
Ymxpc2hEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnJldHJ5
Q2FuRXN0YWJsaXNoRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2Vy
OjpoYXNFbnRyeUZvck9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6
OmdldE1heFNpemVGb3JEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNr
ZXI6OmNsb3NlQWxsRGF0YWJhc2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tl
cjo6ZnVsbFBhdGhGb3JEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNr
ZXI6Om9yaWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpkYXRhYmFz
ZU5hbWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZGV0
YWlsc0Zvck5hbWVBbmRPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2Vy
OjpzZXREYXRhYmFzZURldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2Vy
Ojpkb25lQ3JlYXRpbmdEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNr
ZXI6OmFkZE9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6
OnJlbW92ZU9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6
OmdldE9wZW5EYXRhYmFzZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpv
cmlnaW5Mb2NrRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6cXVvdGFG
b3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpzZXRRdW90YSk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbik6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlRGF0YWJhc2VGaWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlRGVsZXRlZE9wZW5lZERhdGFiYXNlcyk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZUlm
RW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VN
dXRleCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnNldENsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpub3RpZmljYXRpb25NdXRleCk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhYmFzZVRyYWNrZXI6OnNjaGVkdWxlTm90aWZ5RGF0YWJhc2VDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6bm90aWZ5RGF0YWJhc2VzQ2hhbmdlZCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJh
Y2tXcmFwcGVyOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpTUUxDYWxsYmFja1dyYXBwZXI6
OnVud3JhcCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxDYWxsYmFja1dyYXBwZXI6Omhhc0NhbGxi
YWNrKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2Vu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmRvQ2xlYW51
cCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmVucXVldWVTdGF0
ZW1lbnRCYWNrZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6
Z2V0TmV4dFN0YXRlbWVudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6OnNj
aGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2Ny
aXB0Q29udHJvbGxlcjo6aXNFeGVjdXRpb25UZXJtaW5hdGluZyk6CisgICAgICAgICogYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAqIGRvbS9kZWZhdWx0L1Bs
YXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQ
b3J0Q2hhbm5lbDo6cG9zdE1lc3NhZ2VUb1JlbW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNz
YWdlUG9ydENoYW5uZWw6OnRyeUdldE1lc3NhZ2VGcm9tUmVtb3RlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbDo6aXNDb25uZWN0ZWRUbyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZXNzYWdlUG9ydENoYW5uZWw6Omhhc1BlbmRpbmdBY3Rpdml0eSk6CisgICAgICAgIChXZWJD
b3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OmxvY2FsbHlFbnRhbmdsZWRQb3J0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpzZXRSZW1vdGVQb3J0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjplbnRhbmdsZWRDaGFu
bmVsKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpjbG9z
ZUludGVybmFsKToKKyAgICAgICAgKiBkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hh
bm5lbC5oOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnJlbW92ZUFsbEljb25zKToKKyAgICAgICAgKFdlYkNv
cmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChX
ZWJDb3JlOjpJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzTmF0aXZlSWNvbkZvclBhZ2VVUkwpOgor
ICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25VUkxGb3JQYWdl
VVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cmV0YWluSWNvbkZvclBhZ2VV
UkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpwZXJmb3JtUmV0YWluSWNvbkZv
clBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpyZWxlYXNlSWNvbkZv
clBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpwZXJmb3JtUmVsZWFz
ZUljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c2V0SWNv
bkRhdGFGb3JJY29uVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c2V0SWNv
blVSTEZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpzeW5jaHJv
bm91c0xvYWREZWNpc2lvbkZvckljb25VUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFi
YXNlOjpzeW5jaHJvbm91c0ljb25EYXRhS25vd25Gb3JJY29uVVJMKToKKyAgICAgICAgKFdlYkNv
cmU6Okljb25EYXRhYmFzZTo6cGFnZVVSTE1hcHBpbmdDb3VudCk6CisgICAgICAgIChXZWJDb3Jl
OjpJY29uRGF0YWJhc2U6OnJldGFpbmVkUGFnZVVSTENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6
Okljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25E
YXRhYmFzZTo6aWNvblJlY29yZENvdW50V2l0aERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SWNv
bkRhdGFiYXNlOjp3YWtlU3luY1RocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnNjaGVkdWxlT3JEZWZlclN5bmNUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0
YWJhc2U6OmlzT3BlbkJlc2lkZXNNYWluVGhyZWFkQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNv
cmU6Okljb25EYXRhYmFzZTo6ZGF0YWJhc2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25E
YXRhYmFzZTo6Z2V0T3JDcmVhdGVQYWdlVVJMUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6Oklj
b25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3luY1RocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
Y29uRGF0YWJhc2U6OnBlcmZvcm1PcGVuSW5pdGlhbGl6YXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6SWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KToKKyAgICAgICAgKFdlYkNvcmU6Oklj
b25EYXRhYmFzZTo6c3luY1RocmVhZE1haW5Mb29wKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25E
YXRhYmFzZTo6cGVyZm9ybVBlbmRpbmdSZXRhaW5BbmRSZWxlYXNlT3BlcmF0aW9ucyk6CisgICAg
ICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnJlYWRGcm9tRGF0YWJhc2UpOgorICAgICAgICAo
V2ViQ29yZTo6SWNvbkRhdGFiYXNlOjp3cml0ZVRvRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SWNvbkRhdGFiYXNlOjpwcnVuZVVucmV0YWluZWRJY29ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpJY29uRGF0YWJhc2U6OmNsZWFudXBTeW5jVGhyZWFkKToKKyAgICAgICAgKiBsb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVs
RXZlbnRTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmNv
bW1pdE5ld1RyZWVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRN
YWluRnJhbWVQaW5TdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjptYWlu
RnJhbWVTY3JvbGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpz
ZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjppc1BvaW50SW5Ob25GYXN0U2Nyb2xsYWJsZVJlZ2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjppc1J1YmJlckJhbmRJblByb2dyZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZUlzUnViYmVyQmFuZGluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjppc1Njcm9sbFNuYXBJblByb2dyZXNzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0Q2FuUnViYmVyQmFuZFN0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRMZWZ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRSaWdodCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0Qm90dG9tKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRUb3ApOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNjcm9sbFBpbm5pbmdCZWhhdmlvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjp3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVH
ZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmxhdGNoZWROb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldExhdGNoZWROb2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmNsZWFyTGF0Y2hlZE5vZGUpOgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1v
cnlQcmVzc3VyZUhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJh
c2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFJURkRhdGFiYXNlTG9hZGVyOjpsb2Fk
QXN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6SFJURkRhdGFiYXNlTG9hZGVyOjp3
YWl0Rm9yTG9hZGVyVGhyZWFkQ29tcGxldGlvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
SFJURkRhdGFiYXNlTG9hZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OnNldFJlY2VpdmVkTWVtb3J5UHJlc3N1cmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVt
b3J5UHJlc3N1cmVIYW5kbGVyOjpjbGVhck1lbW9yeVByZXNzdXJlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2hvdWxkV2FpdEZvck1lbW9yeUNsZWFyTWVzc2Fn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01l
bW9yeVByZXNzdXJlSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1v
bml0b3I6OmRpc3BsYXlEaWRSZWZyZXNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9E
aXNwbGF5UmVmcmVzaE1vbml0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6c2V0TW9ub3RvbmljQW5pbWF0aW9uU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6bXV0ZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXREZWxh
eUNhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb246OmNsZWFyTWFpblRocmVhZFBlbmRpbmdGbGFnKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6ZGlzcGF0Y2hOb3RpZmljYXRpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Y2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QVZGV3JhcHBlcjo6Y2FsbGJhY2tDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldy
YXBwZXI6On5BVkZXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6Om1hcExv
Y2spOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6YWRkVG9NYXApOgorICAgICAgICAo
V2ViQ29yZTo6QVZGV3JhcHBlcjo6cmVtb3ZlRnJvbU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpB
VkZXcmFwcGVyOjpwZXJpb2RpY1RpbWVPYnNlcnZlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OkFWRldyYXBwZXI6OnByb2Nlc3NOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVZGV3JhcHBlcjo6bG9hZFBsYXlhYmxlQ29tcGxldGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkFWRldyYXBwZXI6OmxvYWRNZXRhZGF0YUNvbXBsZXRpb25DYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjpzZWVrQ29tcGxldGVkQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cHJvY2Vzc0N1ZSk6CisgICAgICAgIChXZWJDb3JlOjpB
VkZXcmFwcGVyOjpsZWdpYmxlT3V0cHV0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QVZG
V3JhcHBlcjo6cHJvY2Vzc1Nob3VsZFdhaXRGb3JMb2FkaW5nT2ZSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpBVkZXcmFwcGVyOjpyZXNvdXJjZUxvYWRlclNob3VsZFdhaXRGb3JMb2FkaW5n
T2ZSZXF1ZXN0ZWRSZXNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlU2FtcGxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNr
T2ZTYW1wbGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6dGFnc0NoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6bm90aWZ5VHJhY2tPZlRhZ3NDaGFuZ2Vk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFz
ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjOjpyZXF1ZXN0UmVmcmVzaENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGxheUxpbmtGaXJlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmFkZExp
c3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbjo6cmVtb3ZlTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFGb3VuZGF0aW9uOjpub3RpZnlEZWxldGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6QXN5bmNDYWxsYmFjazo6SW52b2tlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6QXN5
bmNDYWxsYmFjazo6b25NZWRpYVBsYXllckRlbGV0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L0xlZ2FjeVRpbGVDYWNoZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6
c2V0VGlsZXNPcGFxdWUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpkb0xh
eW91dFRpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0Q3VycmVu
dFNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6Y29tbWl0U2NhbGVD
aGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpsYXlvdXRUaWxlc05v
dyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmxheW91dFRpbGVzTm93Rm9y
UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUFsbE5vblZp
c2libGVUaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUFs
bFRpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6cmVtb3ZlRm9yZWdy
b3VuZFRpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0Q29udGVu
dFJlcGxhY2VtZW50SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpj
b250ZW50UmVwbGFjZW1lbnRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2Fj
aGU6OnRpbGVDcmVhdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGls
ZUNhY2hlOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5
VGlsZUNhY2hlOjp1cGRhdGVUaWxpbmdNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRp
bGVDYWNoZTo6c2V0VGlsaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2Fj
aGU6OmRvUGVuZGluZ1JlcGFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNo
ZTo6Zmx1c2hTYXZlZERpc3BsYXlSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxl
Q2FjaGU6OnByZXBhcmVUb0RyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxl
TGF5ZXJQb29sLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wu
bW06CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjphZGRMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjp0YWtlTGF5ZXJXaXRoU2l6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjpzZXRDYXBhY2l0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjpwcnVuZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjpkcmFpbik6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93
bmxvYWRNYW5hZ2VyOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdl
cjo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OmdldEFj
dGl2ZURvd25sb2FkQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdl
cjo6Z2V0UGVuZGluZ0Rvd25sb2FkQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25s
b2FkTWFuYWdlcjo6c3RvcFRocmVhZElmSWRsZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93
bmxvYWRNYW5hZ2VyOjp1cGRhdGVIYW5kbGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxE
b3dubG9hZDo6fkN1cmxEb3dubG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6
OmluaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpnZXRUZW1wUGF0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmdldFVybCk6CisgICAgICAgIChXZWJDb3Jl
OjpDdXJsRG93bmxvYWQ6OmdldFJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3du
bG9hZDo6Y2xvc2VGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6ZGlkUmVj
ZWl2ZUhlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6ZGlkRmFpbCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29va2llSmFyUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpzaGFyZWRSZXNvdXJjZU11
dGV4KToKKyAgICAgICAgKFdlYkNvcmU6OmN1cmxfbG9ja19jYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpjdXJsX3VubG9ja19jYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9pb3MvUXVpY2tMb29rLm1tOgorICAgICAgICAoV2ViQ29yZTo6UUxEaXJlY3RvcnlBdHRyaWJ1
dGVzKToKKyAgICAgICAgKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCk6CisgICAg
ICAgIChXZWJDb3JlOjphZGRRTFByZXZpZXdDb252ZXJ0ZXJXaXRoRmlsZUZvclVSTCk6CisgICAg
ICAgIChXZWJDb3JlOjpxbFByZXZpZXdDb252ZXJ0ZXJVVElGb3JVUkwpOgorICAgICAgICAoV2Vi
Q29yZTo6cmVtb3ZlUUxQcmV2aWV3Q29udmVydGVyRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6
OnNhZmVRTFVSTEZvckRvY3VtZW50VVJMQW5kUmVzb3VyY2VVUkwpOgorICAgICAgICAqIHBsYXRm
b3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRh
YmFzZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6Om1heGltdW1T
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpzZXRNYXhpbXVtU2l6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6cGFnZVNpemUpOgorICAgICAgICAo
V2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmZyZWVTcGFjZVNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1FMaXRlRGF0YWJhc2U6OnRvdGFsU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVE
YXRhYmFzZTo6cnVuSW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlNRTGl0ZURhdGFiYXNlOjpzZXRBdXRob3JpemVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwv
U1FMaXRlRGF0YWJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpkYXRh
YmFzZU11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudDo6cHJlcGFyZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ6OnN0ZXApOgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6c3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWQpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkOjpzdG9wKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVh
ZC5oOgorCiAyMDE1LTA4LTE3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgTW92ZSBzb21lIGNvbW1hbmRzIGZyb20gLi9DTWFrZUxpc3RzLnR4
dCB0byBTb3VyY2UvY21ha2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXN5bmNBdWRpb0RlY29kZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBBc3luY0F1
ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29kZXIoKQogewogICAgIC8vIFN0YXJ0IHdvcmtlciB0
aHJlYWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwogICAgIG1fdGhyZWFkSUQg
PSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6OnRocmVhZEVudHJ5LCB0aGlzLCAiQXVk
aW8gRGVjb2RlciIpOwogfQogCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgQXN5bmNBdWRpb0RlY29k
ZXI6OnJ1bkxvb3AoKQogCiAgICAgewogICAgICAgICAvLyBXYWl0IGZvciB1bnRpbCB3ZSBoYXZl
IG1fdGhyZWFkSUQgZXN0YWJsaXNoZWQgYmVmb3JlIHN0YXJ0aW5nIHRoZSBydW4gbG9vcC4KLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKICAgICB9CiAKICAgICAvLyBL
ZWVwIHJ1bm5pbmcgZGVjb2RpbmcgdGFza3MgdW50aWwgd2UncmUga2lsbGVkLgpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIu
aAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
c3luY0F1ZGlvRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04MSw3ICs4MSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBydW5Mb29wKCk7CiAKICAgICBXVEY6OlRocmVhZElkZW50aWZpZXIgbV90
aHJlYWRJRDsKLSAgICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CisgICAgTG9jayBtX3Ro
cmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgTWVzc2FnZVF1ZXVlPERlY29kaW5nVGFzaz4gbV9xdWV1
ZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0NvbnRleHQuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgwLDcgKzM4MCw3IEBA
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb25uZWN0aW9uQ291bnQgeyAwIH07CiAKICAgICAv
LyBHcmFwaCBsb2NraW5nLgotICAgIE11dGV4IG1fY29udGV4dEdyYXBoTXV0ZXg7CisgICAgTG9j
ayBtX2NvbnRleHRHcmFwaE11dGV4OwogICAgIHZvbGF0aWxlIFRocmVhZElkZW50aWZpZXIgbV9h
dWRpb1RocmVhZCB7IDAgfTsKICAgICB2b2xhdGlsZSBUaHJlYWRJZGVudGlmaWVyIG1fZ3JhcGhP
d25lclRocmVhZDsgLy8gaWYgdGhlIGxvY2sgaXMgaGVsZCB0aGVuIHRoaXMgaXMgdGhlIHRocmVh
ZCB3aGljaCBvd25zIGl0LCBvdGhlcndpc2UgPT0gVW5kZWZpbmVkVGhyZWFkSWRlbnRpZmllcgog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYzLDEzICs2MywxMyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3Rh
dGVzJiBNZWRpYVN0CiAKIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6YWRkQXVkaW9Db25z
dW1lcihQYXNzUmVmUHRyPEF1ZGlvRGVzdGluYXRpb25Db25zdW1lcj4gY29uc3VtZXIpCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CiAgICAgbV9hdWRpb0NvbnN1bWVycy5h
cHBlbmQoY29uc3VtZXIpOwogfQogCiBib29sIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92
ZUF1ZGlvQ29uc3VtZXIoQXVkaW9EZXN0aW5hdGlvbkNvbnN1bWVyKiBjb25zdW1lcikKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9hdWRpb0NvbnN1bWVyc0xvY2spOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsKICAgICBzaXplX3QgcG9zID0gbV9hdWRp
b0NvbnN1bWVycy5maW5kKGNvbnN1bWVyKTsKICAgICBpZiAocG9zICE9IG5vdEZvdW5kKSB7CiAg
ICAgICAgIG1fYXVkaW9Db25zdW1lcnMucmVtb3ZlKHBvcyk7CkBAIC04MCwxNCArODAsMTQgQEAg
Ym9vbCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpyZW1vdmVBdWRpbwogCiB2b2lkIE1lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2U6OnNldEF1ZGlvRm9ybWF0KHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBm
bG9hdCBzYW1wbGVSYXRlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1ZGlvQ29uc3Vt
ZXJzTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdWRpb0NvbnN1bWVyc0xvY2spOwog
ICAgIGZvciAoYXV0byYgY29uc3VtZXIgOiBtX2F1ZGlvQ29uc3VtZXJzKQogICAgICAgICBjb25z
dW1lci0+c2V0Rm9ybWF0KG51bWJlck9mQ2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogfQogCiB2b2lk
IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVBdWRpbyhBdWRpb0J1cyogYnVzLCBzaXpl
X3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXVkaW9Db25z
dW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7
CiAgICAgZm9yIChhdXRvJiBjb25zdW1lciA6IG1fYXVkaW9Db25zdW1lcnMpCiAgICAgICAgIGNv
bnN1bWVyLT5jb25zdW1lQXVkaW8oYnVzLCBudW1iZXJPZkZyYW1lcyk7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2UuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYg
KzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvRGVzdGluYXRpb25Db25zdW1lci5oIgogI2luY2x1
ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02NSw3ICs2Niw3IEBAIHByaXZhdGU6CiAg
ICAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpOwogCiAgICAgU3RyaW5nIG1fZGV2aWNlSWQ7Ci0g
ICAgTXV0ZXggbV9hdWRpb0NvbnN1bWVyc0xvY2s7CisgICAgTG9jayBtX2F1ZGlvQ29uc3VtZXJz
TG9jazsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvRGVzdGluYXRpb25Db25zdW1lcj4+IG1fYXVk
aW9Db25zdW1lcnM7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyBtX2N1cnJlbnRTdGF0
ZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsNyArMjk0LDcg
QEAgdm9pZCBEYXRhYmFzZTo6Y2xvc2UoKQogICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0g
ZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFkKCktPmdldFRocmVhZElEKCkpOwogCiAg
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NN
dXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dyZXNz
TXV0ZXgpOwogCiAgICAgICAgIC8vIENsZWFuIHVwIHRyYW5zYWN0aW9ucyB0aGF0IGhhdmUgbm90
IGJlZW4gc2NoZWR1bGVkIHlldDoKICAgICAgICAgLy8gVHJhbnNhY3Rpb24gcGhhc2UgMSBjbGVh
bnVwLiBTZWUgY29tbWVudCBvbiAiV2hhdCBoYXBwZW5zIGlmIGEKQEAgLTU2NSw3ICs1NjUsNyBA
QCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRyYW5zYWN0aW9uKCkKIAogUGFzc1JlZlB0cjxTUUxU
cmFuc2FjdGlvbkJhY2tlbmQ+IERhdGFiYXNlOjpydW5UcmFuc2FjdGlvbihQYXNzUmVmUHRyPFNR
TFRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbiwgYm9vbCByZWFkT25seSwgY29uc3QgQ2hhbmdlVmVy
c2lvbkRhdGEqIGRhdGEpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25J
blByb2dyZXNzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblBy
b2dyZXNzTXV0ZXgpOwogICAgIGlmICghbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFibGVkKQogICAg
ICAgICByZXR1cm4gMDsKIApAQCAtNTkzLDE0ICs1OTMsMTQgQEAgdm9pZCBEYXRhYmFzZTo6c2No
ZWR1bGVUcmFuc2FjdGlvblN0ZXAoUwogCiB2b2lkIERhdGFiYXNlOjppblByb2dyZXNzVHJhbnNh
Y3Rpb25Db21wbGV0ZWQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RyYW5zYWN0aW9u
SW5Qcm9ncmVzc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Q
cm9ncmVzc011dGV4KTsKICAgICBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlOwogICAg
IHNjaGVkdWxlVHJhbnNhY3Rpb24oKTsKIH0KIAogYm9vbCBEYXRhYmFzZTo6aGFzUGVuZGluZ1Ry
YW5zYWN0aW9uKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJv
Z3Jlc3NNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jl
c3NNdXRleCk7CiAgICAgcmV0dXJuIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzIHx8ICFtX3RyYW5z
YWN0aW9uUXVldWUuaXNFbXB0eSgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwg
MjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJEYXRhYmFzZUVy
cm9yLmgiCiAjaW5jbHVkZSAiU1FMaXRlRGF0YWJhc2UuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNjIsNyArMTYzLDcgQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8RGF0YWJhc2VBdXRob3JpemVyPiBtX2RhdGFiYXNlQXV0aG9yaXplcjsKIAogICAg
IERlcXVlPFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+PiBtX3RyYW5zYWN0aW9uUXVldWU7
Ci0gICAgTXV0ZXggbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleDsKKyAgICBMb2NrIG1fdHJh
bnNhY3Rpb25JblByb2dyZXNzTXV0ZXg7CiAgICAgYm9vbCBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVz
czsKICAgICBib29sIG1faXNUcmFuc2FjdGlvblF1ZXVlRW5hYmxlZDsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcAko
cmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRhc2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01
Myw3ICs1Myw3IEBAIHZvaWQgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjp0YXNrQ29tcGwKIHsK
ICAgICBtX3N5bmNocm9ub3VzTXV0ZXgubG9jaygpOwogICAgIG1fdGFza0NvbXBsZXRlZCA9IHRy
dWU7Ci0gICAgbV9zeW5jaHJvbm91c0NvbmRpdGlvbi5zaWduYWwoKTsKKyAgICBtX3N5bmNocm9u
b3VzQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIG1fc3luY2hyb25vdXNNdXRleC51bmxvY2so
KTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZVRhc2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlVGFzay5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTMsIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMSw4ICszMSw5IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VCYXNpY1R5cGVz
LmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIlNRTFRyYW5zYWN0aW9u
QmFja2VuZC5oIgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIApAQCAtNTgsOCArNTksOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgYm9vbCBt
X3Rhc2tDb21wbGV0ZWQ7Ci0gICAgTXV0ZXggbV9zeW5jaHJvbm91c011dGV4OwotICAgIFRocmVh
ZENvbmRpdGlvbiBtX3N5bmNocm9ub3VzQ29uZGl0aW9uOworICAgIExvY2sgbV9zeW5jaHJvbm91
c011dGV4OworICAgIENvbmRpdGlvbiBtX3N5bmNocm9ub3VzQ29uZGl0aW9uOwogI2lmbmRlZiBO
REVCVUcKICAgICBib29sIG1faGFzQ2hlY2tlZEZvclRlcm1pbmF0aW9uOwogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VGhyZWFkLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYx
LDcgQEAgRGF0YWJhc2VUaHJlYWQ6On5EYXRhYmFzZVRocmVhZCgpCiAKIGJvb2wgRGF0YWJhc2VU
aHJlYWQ6OnN0YXJ0KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25N
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CiAKICAg
ICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xMDAsNyArMTAwLDcg
QEAgdm9pZCBEYXRhYmFzZVRocmVhZDo6ZGF0YWJhc2VUaHJlYWQoKQogewogICAgIHsKICAgICAg
ICAgLy8gV2FpdCBmb3IgRGF0YWJhc2VUaHJlYWQ6OnN0YXJ0KCkgdG8gY29tcGxldGUuCi0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CiAgICAgICAgIExPRyhTdG9yYWdl
QVBJLCAiU3RhcnRlZCBEYXRhYmFzZVRocmVhZCAlcCIsIHRoaXMpOwogICAgIH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJl
YWQuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRocmVhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Miw3ICs3Miw3IEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGF0YWJhc2VUaHJlYWRTdGFydCh2b2lkKik7CiAgICAg
dm9pZCBkYXRhYmFzZVRocmVhZCgpOwogCi0gICAgTXV0ZXggbV90aHJlYWRDcmVhdGlvbk11dGV4
OworICAgIExvY2sgbV90aHJlYWRDcmVhdGlvbk11dGV4OwogICAgIFRocmVhZElkZW50aWZpZXIg
bV90aHJlYWRJRDsKICAgICBSZWZQdHI8RGF0YWJhc2VUaHJlYWQ+IG1fc2VsZlJlZjsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUcmFja2VyLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3
ICs4OSw3IEBAIERhdGFiYXNlVHJhY2tlcjo6RGF0YWJhc2VUcmFja2VyKGNvbnN0IFMKIAogdm9p
ZCBEYXRhYmFzZVRyYWNrZXI6OnNldERhdGFiYXNlRGlyZWN0b3J5UGF0aChjb25zdCBTdHJpbmcm
IHBhdGgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7
CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICBBU1NF
UlQoIW1fZGF0YWJhc2UuaXNPcGVuKCkpOwogICAgIG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoID0g
cGF0aC5pc29sYXRlZENvcHkoKTsKIH0KQEAgLTE2Niw3ICsxNjYsNyBAQCBib29sIERhdGFiYXNl
VHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhCiB7CiAgICAgZXJyb3IgPSBEYXRhYmFzZUVycm9y
OjpOb25lOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7
CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICBTZWN1
cml0eU9yaWdpbiogb3JpZ2luID0gY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKTsKIAogICAgIGlm
IChpc0RlbGV0aW5nRGF0YWJhc2VPck9yaWdpbkZvcihvcmlnaW4sIG5hbWUpKSB7CkBAIC0yMTgs
NyArMjE4LDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OnJldHJ5Q2FuRXN0YWJsaXNoRAogewog
ICAgIGVycm9yID0gRGF0YWJhc2VFcnJvcjo6Tm9uZTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tE
YXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1f
ZGF0YWJhc2VHdWFyZCk7CiAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGNvbnRleHQtPnNl
Y3VyaXR5T3JpZ2luKCk7CiAKICAgICAvLyBXZSBoYXZlIGFscmVhZHkgZWxpbWluYXRlZCBvdGhl
ciB0eXBlcyBvZiBlcnJvcnMgaW4gY2FuRXN0YWJsaXNoRGF0YWJhc2UoKS4KQEAgLTI1Nyw3ICsy
NTcsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6aGFzRW50cnlGb3JPcmlnaW5OCiAKIGJvb2wg
RGF0YWJhc2VUcmFja2VyOjpoYXNFbnRyeUZvck9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2lu
KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAg
IExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgcmV0dXJuIGhh
c0VudHJ5Rm9yT3JpZ2luTm9Mb2NrKG9yaWdpbik7CiB9CiAKQEAgLTI4Niw3ICsyODYsNyBAQCB1
bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFja2VyOjpnZXRNCiB7CiAgICAgLy8gVGhlIG1h
eGltdW0gc2l6ZSBmb3IgYSBkYXRhYmFzZSBpcyB0aGUgZnVsbCBxdW90YSBmb3IgaXRzIG9yaWdp
biwgbWludXMgdGhlIGN1cnJlbnQgdXNhZ2Ugd2l0aGluIHRoZSBvcmlnaW4sCiAgICAgLy8gcGx1
cyB0aGUgY3VycmVudCB1c2FnZSBvZiB0aGUgZ2l2ZW4gZGF0YWJhc2UKLSAgICBNdXRleExvY2tl
ciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRh
YmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBkYXRh
YmFzZS0+c2VjdXJpdHlPcmlnaW4oKTsKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSA9
IHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbik7CkBAIC0zMTEsNyArMzExLDcgQEAgdm9pZCBE
YXRhYmFzZVRyYWNrZXI6OmNsb3NlQWxsRGF0YWJhc2VzKAogewogICAgIFZlY3RvcjxSZWY8RGF0
YWJhc2U+PiBvcGVuRGF0YWJhc2VzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRh
dGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRl
ciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogICAgICAgICBp
ZiAoIW1fb3BlbkRhdGFiYXNlTWFwKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBmb3Ig
KGF1dG8mIG5hbWVNYXAgOiBtX29wZW5EYXRhYmFzZU1hcC0+dmFsdWVzKCkpIHsKQEAgLTM4OSwx
MyArMzg5LDEzIEBAIFN0cmluZyBEYXRhYmFzZVRyYWNrZXI6OmZ1bGxQYXRoRm9yRGF0YWIKIAog
U3RyaW5nIERhdGFiYXNlVHJhY2tlcjo6ZnVsbFBhdGhGb3JEYXRhYmFzZShTZWN1cml0eU9yaWdp
biogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOb3RFeGlzdHMpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9j
a0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICByZXR1cm4gZnVsbFBh
dGhGb3JEYXRhYmFzZU5vTG9jayhvcmlnaW4sIG5hbWUsIGNyZWF0ZUlmTm90RXhpc3RzKS5pc29s
YXRlZENvcHkoKTsKIH0KIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6Om9yaWdpbnMoVmVjdG9yPFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4+JiBvcmlnaW5zUmVzdWx0KQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFi
YXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAKICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVh
dGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNDQ4
LDcgKzQ0OCw3IEBAIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpkYXRhYmFzZU5hbWVzRm9yT3IKIHsK
ICAgICBWZWN0b3I8U3RyaW5nPiB0ZW1wOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
a0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFi
YXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgICAgIGlmICghZGF0YWJhc2VOYW1lc0Zvck9yaWdp
bk5vTG9jayhvcmlnaW4sIHRlbXApKQogICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBA
IC00NjUsNyArNDY1LDcgQEAgRGF0YWJhc2VEZXRhaWxzIERhdGFiYXNlVHJhY2tlcjo6ZGV0YWls
cwogICAgIGludDY0X3QgZXhwZWN0ZWRVc2FnZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAKICAgICAgICAgb3BlblRyYWNrZXJEYXRhYmFz
ZShEb250Q3JlYXRlSWZEb2VzTm90RXhpc3QpOwogICAgICAgICBpZiAoIW1fZGF0YWJhc2UuaXNP
cGVuKCkpCkBAIC01MDAsNyArNTAwLDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnNldERhdGFi
YXNlRGV0YWlscwogICAgIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyID0gb3JpZ2luLT5kYXRhYmFz
ZUlkZW50aWZpZXIoKTsKICAgICBpbnQ2NF90IGd1aWQgPSAwOwogCi0gICAgTXV0ZXhMb2NrZXIg
bG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJh
c2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoQ3JlYXRlSWZE
b2VzTm90RXhpc3QpOwogICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKQEAgLTU0OSw3ICs1
NDksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEZXRhaWxzCiAKIHZvaWQg
RGF0YWJhc2VUcmFja2VyOjpkb25lQ3JlYXRpbmdEYXRhYmFzZShEYXRhYmFzZSogZGF0YWJhc2Up
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAg
TG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICBkb25lQ3JlYXRp
bmdEYXRhYmFzZShkYXRhYmFzZS0+c2VjdXJpdHlPcmlnaW4oKSwgZGF0YWJhc2UtPnN0cmluZ0lk
ZW50aWZpZXIoKSk7CiB9CiAKQEAgLTU1OSw3ICs1NTksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tl
cjo6YWRkT3BlbkRhdGFiYXNlKERhCiAgICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAg
TXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsK
KyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFw
R3VhcmQpOwogCiAgICAgICAgIGlmICghbV9vcGVuRGF0YWJhc2VNYXApCiAgICAgICAgICAgICBt
X29wZW5EYXRhYmFzZU1hcCA9IHN0ZDo6bWFrZV91bmlxdWU8RGF0YWJhc2VPcmlnaW5NYXA+KCk7
CkBAIC01ODksNyArNTg5LDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnJlbW92ZU9wZW5EYXRh
YmFzZQogICAgICAgICByZXR1cm47CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIG9wZW5E
YXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CisgICAgICAgIExvY2tIb2xk
ZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKIAogICAgICAg
ICBpZiAoIW1fb3BlbkRhdGFiYXNlTWFwKSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTYyOSw3ICs2MjksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlT3Bl
bkRhdGFiYXNlCiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpnZXRPcGVuRGF0YWJhc2VzKFNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgSGFzaFNldDxSZWZQdHI8RGF0
YWJhc2U+PiogZGF0YWJhc2VzKQogewotICAgIE11dGV4TG9ja2VyIG9wZW5EYXRhYmFzZU1hcExv
Y2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CisgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VN
YXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogICAgIGlmICghbV9vcGVuRGF0YWJhc2VN
YXApCiAgICAgICAgIHJldHVybjsKIApAQCAtNjQ3LDcgKzY0Nyw3IEBAIHZvaWQgRGF0YWJhc2VU
cmFja2VyOjpnZXRPcGVuRGF0YWJhc2VzKFMKIAogUmVmUHRyPE9yaWdpbkxvY2s+IERhdGFiYXNl
VHJhY2tlcjo6b3JpZ2luTG9ja0ZvcihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIg
bG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgU3RyaW5nIGRhdGFiYXNlSWRlbnRp
ZmllciA9IG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCk7CiAKICAgICAvLyBUaGUgb3JpZ2lu
TG9ja01hcCBpcyBhY2Nlc3NlZCBmcm9tIG11bHRpcGxlIERhdGFiYXNlVGhyZWFkcyBzaW5jZQpA
QCAtNzI3LDEzICs3MjcsMTMgQEAgdW5zaWduZWQgbG9uZyBsb25nIERhdGFiYXNlVHJhY2tlcjo6
cXVvdAogCiB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFja2VyOjpxdW90YUZvck9yaWdp
bihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFz
ZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJh
c2VHdWFyZCk7CiAgICAgcmV0dXJuIHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbik7CiB9CiAK
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXRRdW90YShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCB1
bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNl
KG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFz
ZUd1YXJkKTsKIAogICAgIGlmIChxdW90YUZvck9yaWdpbk5vTG9jayhvcmlnaW4pID09IHF1b3Rh
KQogICAgICAgICByZXR1cm47CkBAIC04NjQsNyArODY0LDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNr
ZXI6OmRlbGV0ZU9yaWdpbihTZWN1cgogewogICAgIFZlY3RvcjxTdHJpbmc+IGRhdGFiYXNlTmFt
ZXM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1
YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsK
ICAgICAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShEb250Q3JlYXRlSWZEb2VzTm90RXhpc3QpOwog
ICAgICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC04OTAsNyArODkwLDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZU9yaWdp
bihTZWN1cgogICAgIH0KIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNl
KG1fZGF0YWJhc2VHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0
YWJhc2VHdWFyZCk7CiAgICAgICAgIGRlbGV0ZU9yaWdpbkxvY2tGb3Iob3JpZ2luKTsKICAgICAg
ICAgZG9uZURlbGV0aW5nT3JpZ2luKG9yaWdpbik7CiAKQEAgLTEwNzEsNyArMTA3MSw3IEBAIHZv
aWQgRGF0YWJhc2VUcmFja2VyOjpkb25lRGVsZXRpbmdPcmlnaW4KIGJvb2wgRGF0YWJhc2VUcmFj
a2VyOjpkZWxldGVEYXRhYmFzZShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcm
IG5hbWUpCiB7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1
YXJkKTsKICAgICAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShEb250Q3JlYXRlSWZEb2VzTm90RXhp
c3QpOwogICAgICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0xMDg2LDEyICsxMDg2LDEyIEBAIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpk
ZWxldGVEYXRhYmFzZShTZWMKICAgICAvLyBXZSBkcm9wIHRoZSBsb2NrIGhlcmUgYmVjYXVzZSBo
b2xkaW5nIGxvY2tzIGR1cmluZyBhIGNhbGwgdG8gZGVsZXRlRGF0YWJhc2VGaWxlIHdpbGwgZGVh
ZGxvY2suCiAgICAgaWYgKCFkZWxldGVEYXRhYmFzZUZpbGUob3JpZ2luLCBuYW1lKSkgewogICAg
ICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBkZWxldGUgZmlsZSBmb3IgZGF0YWJhc2UgJXMgaW4g
b3JpZ2luICVzIiwgbmFtZS5hc2NpaSgpLmRhdGEoKSwgb3JpZ2luLT5kYXRhYmFzZUlkZW50aWZp
ZXIoKS5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZSht
X2RhdGFiYXNlR3VhcmQpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFi
YXNlR3VhcmQpOwogICAgICAgICBkb25lRGVsZXRpbmdEYXRhYmFzZShvcmlnaW4sIG5hbWUpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFi
YXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKIAogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwg
IkRFTEVURSBGUk9NIERhdGFiYXNlcyBXSEVSRSBvcmlnaW49PyBBTkQgbmFtZT0/Iik7CiAgICAg
aWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKSB7CkBAIC0xMTMxLDcgKzExMzEs
NyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlRGF0YWJhc2VGaWxlCiAKICNpZm5kZWYg
TkRFQlVHCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFz
ZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJk
KTsKICAgICAgICAgQVNTRVJUKGlzRGVsZXRpbmdEYXRhYmFzZU9yT3JpZ2luRm9yKG9yaWdpbiwg
bmFtZSkpOwogICAgIH0KICNlbmRpZgpAQCAtMTE0Miw3ICsxMTQyLDcgQEAgYm9vbCBEYXRhYmFz
ZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZQogICAgIC8vIERhdGFiYXNlOjptYXJrQXNEZWxl
dGVkQW5kQ2xvc2UoKSwgc2luY2UgdGhhdCBjYW4gY2F1c2UgYSBkZWFkbG9jawogICAgIC8vIGR1
cmluZyB0aGUgc3luY2hyb25vdXMgRGF0YWJhc2VUaHJlYWQgY2FsbCBpdCB0cmlnZ2Vycy4KICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJh
c2VNYXBHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29w
ZW5EYXRhYmFzZU1hcEd1YXJkKTsKICAgICAgICAgaWYgKG1fb3BlbkRhdGFiYXNlTWFwKSB7CiAg
ICAgICAgICAgICAvLyBUaGVyZSBhcmUgc29tZSBvcGVuIGRhdGFiYXNlcywgbGV0cyBjaGVjayBp
ZiB0aGV5IGFyZSBmb3IgdGhpcyBvcmlnaW4uCiAgICAgICAgICAgICBEYXRhYmFzZU5hbWVNYXAq
IG5hbWVNYXAgPSBtX29wZW5EYXRhYmFzZU1hcC0+Z2V0KG9yaWdpbik7CkBAIC0xMTg1LDcgKzEx
ODUsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlRGVsZXRlZE9wZW5lCiAgICAgCiAg
ICAgewogICAgICAgICAvLyBBY3F1aXJlIHRoZSBsb2NrIGJlZm9yZSBjYWxsaW5nIG9wZW5UcmFj
a2VyRGF0YWJhc2UuCi0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNl
R3VhcmQpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OwogICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7
CiAgICAgfQogCkBAIC0xMjAxLDcgKzEyMDEsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVt
b3ZlRGVsZXRlZE9wZW5lCiAgICAgLy8gRGF0YWJhc2U6Om1hcmtBc0RlbGV0ZWRBbmRDbG9zZSgp
LCBzaW5jZSB0aGF0IGNhbiBjYXVzZSBhIGRlYWRsb2NrCiAgICAgLy8gZHVyaW5nIHRoZSBzeW5j
aHJvbm91cyBEYXRhYmFzZVRocmVhZCBjYWxsIGl0IHRyaWdnZXJzLgogICAgIHsKLSAgICAgICAg
TXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsK
KyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFw
R3VhcmQpOwogICAgICAgICBpZiAobV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAgICAgIGZv
ciAoYXV0byYgb3BlbkRhdGFiYXNlIDogKm1fb3BlbkRhdGFiYXNlTWFwKSB7CiAgICAgICAgICAg
ICAgICAgYXV0byYgb3JpZ2luID0gb3BlbkRhdGFiYXNlLmtleTsKQEAgLTEzMDUsOSArMTMwNSw5
IEBAIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGUKICAgICByZXR1cm4g
U1FMaXRlRmlsZVN5c3RlbTo6ZGVsZXRlRGF0YWJhc2VGaWxlKHBhdGgpOwogfQogCi1NdXRleCYg
RGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRleCgpCitMb2NrJiBEYXRhYmFzZVRyYWNr
ZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0
ZXg+IG11dGV4OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2NrPiBtdXRleDsKICAgICBy
ZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTEzMzAsOSArMTMzMCw5IEBAIHZvaWQgRGF0YWJhc2VUcmFj
a2VyOjpzZXRDbGllbnQoRGF0YWJhc2UKICAgICBtX2NsaWVudCA9IGNsaWVudDsKIH0KIAotc3Rh
dGljIE11dGV4JiBub3RpZmljYXRpb25NdXRleCgpCitzdGF0aWMgTG9jayYgbm90aWZpY2F0aW9u
TXV0ZXgoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0ZXg7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4OwogICAgIHJldHVybiBtdXRleDsKIH0K
IApAQCAtMTM0Niw3ICsxMzQ2LDcgQEAgc3RhdGljIE5vdGlmaWNhdGlvblF1ZXVlJiBub3RpZmlj
YXRpb25RdQogCiB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2NoZWR1bGVOb3RpZnlEYXRhYmFzZUNo
YW5nZWQoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKIAogICAgIG5vdGlmaWNhdGlvblF1ZXVlKCku
YXBwZW5kKHN0ZDo6cGFpcjxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTdHJpbmc+KG9yaWdpbi0+
aXNvbGF0ZWRDb3B5KCksIG5hbWUuaXNvbGF0ZWRDb3B5KCkpKTsKICAgICBzY2hlZHVsZUZvck5v
dGlmaWNhdGlvbigpOwpAQCAtMTM3Miw3ICsxMzcyLDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6
Om5vdGlmeURhdGFiYXNlc0NoYQogCiAgICAgTm90aWZpY2F0aW9uUXVldWUgbm90aWZpY2F0aW9u
czsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihub3RpZmljYXRpb25NdXRleCgp
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobm90aWZpY2F0aW9uTXV0ZXgoKSk7CiAKICAg
ICAgICAgbm90aWZpY2F0aW9ucy5zd2FwKG5vdGlmaWNhdGlvblF1ZXVlKCkpOwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFj
a2VyLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw3ICsxMDcsNyBA
QCBwdWJsaWM6CiAgICAgLy8gTW9iaWxlU2FmYXJpIHdpbGwgZ3JhYiB0aGlzIG11dGV4IG9uIHRo
ZSBtYWluIHRocmVhZCBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIHRhc2sgdG8gCiAgICAgLy8gY2xl
YW4gdXAgemVybyBieXRlIGRhdGFiYXNlIGZpbGVzLiAgQW55IG9wZXJhdGlvbnMgdG8gb3BlbiBu
ZXcgZGF0YWJhc2Ugd2lsbCBoYXZlIHRvCiAgICAgLy8gd2FpdCBmb3IgdGhhdCB0YXNrIHRvIGZp
bmlzaCBieSB3YWl0aW5nIG9uIHRoaXMgbXV0ZXguCi0gICAgc3RhdGljIE11dGV4JiBvcGVuRGF0
YWJhc2VNdXRleCgpOworICAgIHN0YXRpYyBMb2NrJiBvcGVuRGF0YWJhc2VNdXRleCgpOwogICAg
IAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVtcHR5RGF0YWJhc2VGaWxlc1JlbW92
YWxUYXNrV2lsbEJlU2NoZWR1bGVkKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQg
ZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tEaWRGaW5pc2goKTsKQEAgLTE1MCwxMSArMTUw
LDExIEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgRGF0YWJhc2VTZXQq
PiBEYXRhYmFzZU5hbWVNYXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4sIERhdGFiYXNlTmFtZU1hcCo+IERhdGFiYXNlT3JpZ2luTWFwOwogCi0gICAgTXV0ZXgg
bV9vcGVuRGF0YWJhc2VNYXBHdWFyZDsKKyAgICBMb2NrIG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQ7
CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VPcmlnaW5NYXA+IG1fb3BlbkRh
dGFiYXNlTWFwOwogCiAgICAgLy8gVGhpcyBsb2NrIHByb3RlY3RzIG1fZGF0YWJhc2UsIG1fb3Jp
Z2luTG9ja01hcCwgbV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsIG1fb3JpZ2luc0JlaW5nRGVsZXRl
ZCwgbV9iZWluZ0NyZWF0ZWQsIGFuZCBtX2JlaW5nRGVsZXRlZC4KLSAgICBNdXRleCBtX2RhdGFi
YXNlR3VhcmQ7CisgICAgTG9jayBtX2RhdGFiYXNlR3VhcmQ7CiAgICAgU1FMaXRlRGF0YWJhc2Ug
bV9kYXRhYmFzZTsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxPcmlnaW5M
b2NrPj4gT3JpZ2luTG9ja01hcDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvT3JpZ2luTG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvT3JpZ2luTG9jay5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suaAkod29ya2luZyBjb3B5KQpAQCAt
MjcsOCArMjcsOCBAQAogI2RlZmluZSBPcmlnaW5Mb2NrX2gKIAogI2luY2x1ZGUgIkZpbGVTeXN0
ZW0uaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDcg
KzQ4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgU3RyaW5nIGxvY2tGaWxlTmFtZUZvclBhdGgo
U3RyaW5nIG9yaWdpblBhdGgpOwogCiAgICAgU3RyaW5nIG1fbG9ja0ZpbGVOYW1lOwotICAgIE11
dGV4IG1fbXV0ZXg7CisgICAgTG9jayBtX211dGV4OwogI2lmIFVTRShGSUxFX0xPQ0spCiAgICAg
UGxhdGZvcm1GaWxlSGFuZGxlIG1fbG9ja0hhbmRsZTsKICNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxsYmFja1dyYXBwZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBl
ci5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBA
CiAjZGVmaW5lIFNRTENhbGxiYWNrV3JhcHBlcl9oCiAKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCi0jaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KKyNpbmNs
dWRlIDx3dGYvTG9jay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU4LDcgKzU4LDcg
QEAgcHVibGljOgogICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0UHRyOwogICAgICAgICBUKiBjYWxsYmFjazsKICAgICAgICAgewotICAgICAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9tdXRleCk7CiAgICAgICAgICAgICBpZiAoIW1fY2FsbGJhY2spIHsKICAgICAgICAg
ICAgICAgICBBU1NFUlQoIW1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtODMsNyArODMsNyBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPFQ+
IHVud3JhcCgpCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgICAgICBBU1NFUlQoIW1fY2Fs
bGJhY2sgfHwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSk7CiAg
ICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVy
biBtX2NhbGxiYWNrLnJlbGVhc2UoKTsKQEAgLTkzLDcgKzkzLDcgQEAgcHVibGljOgogICAgIGJv
b2wgaGFzQ2FsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrOyB9CiAKIHByaXZhdGU6
Ci0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAgICAgUmVmUHRyPFQ+IG1f
Y2FsbGJhY2s7CiAgICAgUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCShyZXZpc2lv
biAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5z
YWN0aW9uQmFja2VuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4MSw3ICszODEsNyBAQCB2b2lk
IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZG9DbGVhbnVwKCkKIAogICAgIHJlbGVhc2VPcmlnaW5M
b2NrSWZOZWVkZWQoKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsKICAgICBtX3N0YXRl
bWVudFF1ZXVlLmNsZWFyKCk7CiAKICAgICBpZiAobV9zcWxpdGVUcmFuc2FjdGlvbikgewpAQCAt
NDY1LDcgKzQ2NSw3IEBAIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6U3RhdGVGdW5jdGlvbiBTUUwK
IAogdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmVucXVldWVTdGF0ZW1lbnRCYWNrZW5kKHN0
ZDo6dW5pcXVlX3B0cjxTUUxTdGF0ZW1lbnQ+IHN0YXRlbWVudEJhY2tlbmQpCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fc3RhdGVtZW50TXV0ZXgpOwogICAgIG1fc3RhdGVtZW50UXVldWUuYXBwZW5kKFdURjo6bW92
ZShzdGF0ZW1lbnRCYWNrZW5kKSk7CiB9CiAKQEAgLTY4MSw3ICs2ODEsNyBAQCB2b2lkIFNRTFRy
YW5zYWN0aW9uQmFja2VuZDo6Z2V0TmV4dFN0YXRlCiB7CiAgICAgbV9jdXJyZW50U3RhdGVtZW50
QmFja2VuZCA9IG51bGxwdHI7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zdGF0ZW1lbnRN
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zdGF0ZW1lbnRNdXRleCk7CiAgICAgaWYg
KCFtX3N0YXRlbWVudFF1ZXVlLmlzRW1wdHkoKSkKICAgICAgICAgbV9jdXJyZW50U3RhdGVtZW50
QmFja2VuZCA9IG1fc3RhdGVtZW50UXVldWUudGFrZUZpcnN0KCk7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rp
b25CYWNrZW5kLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxMywgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5n
UHJpbWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEyNSw3ICsxMjUsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9yZWFkT25seTsKICAgICBib29sIG1faGFzVmVyc2lvbk1pc21h
dGNoOwogCi0gICAgTXV0ZXggbV9zdGF0ZW1lbnRNdXRleDsKKyAgICBMb2NrIG1fc3RhdGVtZW50
TXV0ZXg7CiAgICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPFNRTFN0YXRlbWVudD4+IG1fc3RhdGVt
ZW50UXVldWU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1FMaXRlVHJhbnNhY3Rpb24+IG1fc3Fs
aXRlVHJhbnNhY3Rpb247CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6
OnNjaGVkdWxlRXhlCiAgICAgLy8gVGhlIG11dGV4IHByb3ZpZGVzIGEgbWVtb3J5IGJhcnJpZXIg
dG8gZW5zdXJlIHRoYXQgb25jZQogICAgIC8vIHRlcm1pbmF0aW9uIGlzIHNjaGVkdWxlZCwgaXNF
eGVjdXRpb25UZXJtaW5hdGluZyB3aWxsCiAgICAgLy8gYWNjdXJhdGVseSByZWZsZWN0IHRoYXQg
c3RhdGUgd2hlbiBjYWxsZWQgZnJvbSBhbm90aGVyIHRocmVhZC4KLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9zY2hlZHVsZWRUZXJtaW5hdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOwogICAgIGlmIChtX3ZtLT53YXRjaGRvZykK
ICAgICAgICAgbV92bS0+d2F0Y2hkb2ctPmZpcmUoKTsKIH0KQEAgLTE1OSw3ICsxNTksNyBAQCB2
b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OnNjaGVkdWxlRXhlCiBib29sIFdvcmtlclNjcmlw
dENvbnRyb2xsZXI6OmlzRXhlY3V0aW9uVGVybWluYXRpbmcoKSBjb25zdAogewogICAgIC8vIFNl
ZSBjb21tZW50cyBpbiBzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uIHJlZ2FyZGluZyBtdXRl
eCB1c2FnZS4KLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zY2hlZHVsZWRUZXJtaW5hdGlvbk11
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgp
OwogICAgIGlmIChtX3ZtLT53YXRjaGRvZykKICAgICAgICAgcmV0dXJuIG1fdm0tPndhdGNoZG9n
LT5kaWRGaXJlKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAkocmV2aXNpb24gMTg4
NTEwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSA8ZGVidWdnZXIvRGVidWdnZXIuaD4KICNpbmNs
dWRlIDxoZWFwL1N0cm9uZy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8
d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmFrZWRQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBEZXByZWNhdGVkIHsKIGNsYXNzIFNjcmlwdFZhbHVlOwpA
QCAtOTcsNyArOTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFdvcmtlckdsb2Jh
bFNjb3BlKiBtX3dvcmtlckdsb2JhbFNjb3BlOwogICAgICAgICBKU0M6OlN0cm9uZzxKU1dvcmtl
ckdsb2JhbFNjb3BlPiBtX3dvcmtlckdsb2JhbFNjb3BlV3JhcHBlcjsKICAgICAgICAgYm9vbCBt
X2V4ZWN1dGlvbkZvcmJpZGRlbjsKLSAgICAgICAgbXV0YWJsZSBNdXRleCBtX3NjaGVkdWxlZFRl
cm1pbmF0aW9uTXV0ZXg7CisgICAgICAgIG11dGFibGUgTG9jayBtX3NjaGVkdWxlZFRlcm1pbmF0
aW9uTXV0ZXg7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1
bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OCw3
ICs4OCw3IEBAIHZvaWQgTWVzc2FnZVBvcnRDaGFubmVsOjpkaXNlbnRhbmdsZSgpCiAKIHZvaWQg
TWVzc2FnZVBvcnRDaGFubmVsOjpwb3N0TWVzc2FnZVRvUmVtb3RlKFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFu
bmVsQXJyYXk+IGNoYW5uZWxzKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5t
X211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICBp
ZiAoIW1fY2hhbm5lbC0+bV9vdXRnb2luZ1F1ZXVlKQogICAgICAgICByZXR1cm47CiAgICAgYm9v
bCB3YXNFbXB0eSA9IG1fY2hhbm5lbC0+bV9vdXRnb2luZ1F1ZXVlLT5hcHBlbmRBbmRDaGVja0Vt
cHR5KHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OkV2ZW50RGF0
YT4obWVzc2FnZSwgV1RGOjptb3ZlKGNoYW5uZWxzKSkpOwpAQCAtOTgsNyArOTgsNyBAQCB2b2lk
IE1lc3NhZ2VQb3J0Q2hhbm5lbDo6cG9zdE1lc3NhZ2VUb1JlCiAKIGJvb2wgTWVzc2FnZVBvcnRD
aGFubmVsOjp0cnlHZXRNZXNzYWdlRnJvbVJlbW90ZShSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYg
Y2hhbm5lbHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIGF1dG8gcmVzdWx0
ID0gbV9jaGFubmVsLT5tX2luY29taW5nUXVldWUtPnRyeUdldE1lc3NhZ2UoKTsKICAgICBpZiAo
IXJlc3VsdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTIxLDIwICsxMjEsMjAgQEAgdm9p
ZCBNZXNzYWdlUG9ydENoYW5uZWw6OmNsb3NlKCkKIGJvb2wgTWVzc2FnZVBvcnRDaGFubmVsOjpp
c0Nvbm5lY3RlZFRvKE1lc3NhZ2VQb3J0KiBwb3J0KQogewogICAgIC8vIEZJWE1FOiBXaGF0IGd1
YXJhbnRlZXMgdGhhdCB0aGUgcmVzdWx0IHJlbWFpbnMgdGhlIHNhbWUgYWZ0ZXIgd2UgcmVsZWFz
ZSB0aGUgbG9jaz8KLSAgICBNdXRleExvY2tlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CiAgICAgcmV0dXJuIG1fY2hh
bm5lbC0+bV9yZW1vdGVQb3J0ID09IHBvcnQ7CiB9CiAKIGJvb2wgTWVzc2FnZVBvcnRDaGFubmVs
OjpoYXNQZW5kaW5nQWN0aXZpdHkoKQogewogICAgIC8vIEZJWE1FOiBXaGF0IGd1YXJhbnRlZXMg
dGhhdCB0aGUgcmVzdWx0IHJlbWFpbnMgdGhlIHNhbWUgYWZ0ZXIgd2UgcmVsZWFzZSB0aGUgbG9j
az8KLSAgICBNdXRleExvY2tlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CiAgICAgcmV0dXJuICFtX2NoYW5uZWwtPm1f
aW5jb21pbmdRdWV1ZS0+aXNFbXB0eSgpOwogfQogCiBNZXNzYWdlUG9ydCogTWVzc2FnZVBvcnRD
aGFubmVsOjpsb2NhbGx5RW50YW5nbGVkUG9ydChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICAvLyBTZWUgaWYg
Ym90aCBjb250ZXh0cyBhcmUgcnVuIGJ5IHRoZSBzYW1lIHRocmVhZCAoYXJlIHRoZSBzYW1lIGNv
bnRleHQsIG9yIGFyZSBib3RoIGRvY3VtZW50cykuCiAgICAgaWYgKG1fY2hhbm5lbC0+bV9yZW1v
dGVQb3J0KSB7CiAgICAgICAgIC8vIFRoZSByZW1vdGUgcG9ydCdzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgaXMgZ3VhcmFudGVlZCBub3QgdG8gY2hhbmdlIGhlcmUgLSBNZXNzYWdlUG9ydDo6Y29u
dGV4dERlc3Ryb3llZCgpCkBAIC0xNjQsNyArMTY0LDcgQEAgUGxhdGZvcm1NZXNzYWdlUG9ydENo
YW5uZWw6On5QbGF0Zm9ybU1lcwogCiB2b2lkIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpz
ZXRSZW1vdGVQb3J0KE1lc3NhZ2VQb3J0KiBwb3J0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2so
bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIC8vIFNob3VsZCBu
ZXZlciBzZXQgcG9ydCBpZiBpdCBpcyBhbHJlYWR5IHNldC4KICAgICBBU1NFUlQoIXBvcnQgfHwg
IW1fcmVtb3RlUG9ydCk7CiAgICAgbV9yZW1vdGVQb3J0ID0gcG9ydDsKQEAgLTE3NSwxMyArMTc1
LDEzIEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IFAKICAgICAvLyBG
SVhNRTogV2hhdCBndWFyYW50ZWVzIHRoYXQgdGhlIHJlc3VsdCByZW1haW5zIHRoZSBzYW1lIGFm
dGVyIHdlIHJlbGVhc2UgdGhlIGxvY2s/CiAgICAgLy8gVGhpcyBsb2NrIG9ubHkgZ3VhcmFudGVl
cyB0aGF0IHRoZSByZXR1cm5lZCBwb2ludGVyIHdpbGwgbm90IGJlIHBvaW50aW5nIHRvIHJlbGVh
c2VkIG1lbW9yeSwKICAgICAvLyBidXQgbm90IHRoYXQgaXQgd2lsbCBzdGlsbCBiZSBwb2ludGlu
ZyB0byB0aGlzIG9iamVjdCdzIGVudGFuZ2xlZCBwb3J0IGNoYW5uZWwuCi0gICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgcmV0
dXJuIG1fZW50YW5nbGVkQ2hhbm5lbDsKIH0KIAogdm9pZCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hh
bm5lbDo6Y2xvc2VJbnRlcm5hbCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgLy8gRGlzZW50YW5nbGUgb3Vyc2Vs
dmVzIGZyb20gdGhlIG90aGVyIGVuZC4gV2Ugc3RpbGwgbWFpbnRhaW4gYSByZWZlcmVuY2UgdG8g
b3VyIGluY29taW5nIHF1ZXVlLCBzaW5jZSBwcmV2aW91c2x5LWV4aXN0aW5nIG1lc3NhZ2VzIHNo
b3VsZCBzdGlsbCBiZSBkZWxpdmVyZWQuCiAgICAgbV9yZW1vdGVQb3J0ID0gbnVsbHB0cjsKICAg
ICBtX2VudGFuZ2xlZENoYW5uZWwgPSBudWxscHRyOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCShyZXZp
c2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3Nh
Z2VQb3J0Q2hhbm5lbC5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw4ICs5NSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRSZW1vdGVQb3J0KE1lc3NhZ2VQb3J0Kik7CiAg
ICAgICAgIHZvaWQgY2xvc2VJbnRlcm5hbCgpOwogCi0gICAgICAgIC8vIE11dGV4IHVzZWQgdG8g
ZW5zdXJlIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gdGhlIG9iamVjdCBpbnRlcm5hbHMuCi0gICAgICAg
IE11dGV4IG1fbXV0ZXg7CisgICAgICAgIC8vIExvY2sgdXNlZCB0byBlbnN1cmUgZXhjbHVzaXZl
IGFjY2VzcyB0byB0aGUgb2JqZWN0IGludGVybmFscy4KKyAgICAgICAgTG9jayBtX211dGV4Owog
CiAgICAgICAgIC8vIFBvaW50ZXIgdG8gb3VyIGVudGFuZ2xlZCBwYWlyIC0gY2xlYXJlZCB3aGVu
IGNsb3NlKCkgaXMgY2FsbGVkLgogICAgICAgICBSZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9ydENo
YW5uZWw+IG1fZW50YW5nbGVkQ2hhbm5lbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkRhdGFiYXNlLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg2LDcg
KzE4Niw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpyZW1vdmVBbGxJY29ucygpCiAgICAgCiAgICAg
Ly8gQ2xlYXIgdGhlIGluLW1lbW9yeSByZWNvcmQgb2YgZXZlcnkgSWNvblJlY29yZCwgYW55dGhp
bmcgd2FpdGluZyB0byBiZSByZWFkIGZyb20gZGlzaywgYW5kIGFueXRoaW5nIHdhaXRpbmcgdG8g
YmUgd3JpdHRlbiB0byBkaXNrCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91
cmxBbmRJY29uTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxv
Y2spOwogICAgICAgICAKICAgICAgICAgLy8gQ2xlYXIgdGhlIEljb25SZWNvcmRzIGZvciBldmVy
eSBwYWdlIFVSTCAtIFJlZkNvdW50aW5nIHdpbGwgY2F1c2UgdGhlIEljb25SZWNvcmRzIHRoZW1z
ZWx2ZXMgdG8gYmUgZGVsZXRlZAogICAgICAgICAvLyBXZSBkb24ndCBkZWxldGUgdGhlIGFjdHVh
bCBQYWdlUmVjb3JkcyBiZWNhdXNlIHdlIGhhdmUgdGhlICJyZXRhaW4gaWNvbiBmb3IgdXJsIiBj
b3VudCB0byBrZWVwIHRyYWNrIG9mCkBAIC0yMDAsMTQgKzIwMCwxNCBAQCB2b2lkIEljb25EYXRh
YmFzZTo6cmVtb3ZlQWxsSWNvbnMoKQogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgLy8g
Q2xlYXIgYWxsIGluLW1lbW9yeSByZWNvcmRzIG9mIHRoaW5ncyB0aGF0IG5lZWQgdG8gYmUgc3lu
Y2VkIG91dCB0byBkaXNrCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Bl
bmRpbmdTeW5jTG9jayk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxzUGVuZGluZ1N5bmMuY2xlYXIo
KTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nU3luYy5jbGVhcigpOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICAvLyBDbGVhciBhbGwgaW4tbWVtb3J5IHJlY29yZHMgb2YgdGhpbmdz
IHRoYXQgbmVlZCB0byBiZSByZWFkIGluIGZyb20gZGlzawogICAgICAgICB7Ci0gICAgICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAgbV9w
YWdlVVJMc1BlbmRpbmdJbXBvcnQuY2xlYXIoKTsKICAgICAgICAgICAgIG1fcGFnZVVSTHNJbnRl
cmVzdGVkSW5JY29ucy5jbGVhcigpOwogICAgICAgICAgICAgbV9pY29uc1BlbmRpbmdSZWFkaW5n
LmNsZWFyKCk7CkBAIC0yMjksNyArMjI5LDcgQEAgSW1hZ2UqIEljb25EYXRhYmFzZTo6c3luY2hy
b25vdXNJY29uRm9yUAogICAgIGlmICghaXNPcGVuKCkgfHwgIWRvY3VtZW50Q2FuSGF2ZUljb24o
cGFnZVVSTE9yaWdpbmFsKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJ
Y29uTG9jayk7CiAKICAgICBwZXJmb3JtUGVuZGluZ1JldGFpbkFuZFJlbGVhc2VPcGVyYXRpb25z
KCk7CiAgICAgCkBAIC0yNDUsNyArMjQ1LDcgQEAgSW1hZ2UqIEljb25EYXRhYmFzZTo6c3luY2hy
b25vdXNJY29uRm9yUAogICAgIC8vIDEgLSBUaGUgaW5pdGlhbCB1cmwgaW1wb3J0IGlzIGluY29t
cGxldGUgYW5kIHRoaXMgcGFnZVVSTCB3YXMgbWFya2VkIHRvIGJlIG5vdGlmaWVkIG9uY2UgaXQg
aXMgY29tcGxldGUgaWYgYW4gaWNvblVSTCBleGlzdHMKICAgICAvLyAyIC0gVGhlIGluaXRpYWwg
dXJsIGltcG9ydCBJUyBjb21wbGV0ZSBhbmQgdGhpcyBwYWdlVVJMIGhhcyBubyBpY29uCiAgICAg
aWYgKCFwYWdlUmVjb3JkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdS
ZWFkaW5nTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdM
b2NrKTsKICAgICAgICAgCiAgICAgICAgIC8vIEltcG9ydCBpcyBvbmdvaW5nLCB0aGVyZSBtaWdo
dCBiZSBhbiBpY29uLiAgSW4gdGhpcyBjYXNlLCByZWdpc3RlciB0byBiZSBub3RpZmllZCB3aGVu
IHRoZSBpY29uIGNvbWVzIGluCiAgICAgICAgIC8vIElmIHdlIGV2ZXIgcmVhY2ggdGhpcyBjb25k
aXRpb24sIHdlIGtub3cgd2UndmUgYWxyZWFkeSBtYWRlIHRoZSBwYWdlVVJMIGNvcHkKQEAgLTI3
Niw3ICsyNzYsNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25Gb3JQCiAg
ICAgICAgIGlmIChwYWdlVVJMQ29weS5pc051bGwoKSkKICAgICAgICAgICAgIHBhZ2VVUkxDb3B5
ID0gcGFnZVVSTE9yaWdpbmFsLmlzb2xhdGVkQ29weSgpOwogICAgIAotICAgICAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgIG1fcGFnZVVSTHNJbnRlcmVzdGVk
SW5JY29ucy5hZGQocGFnZVVSTENvcHkpOwogICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcu
YWRkKGljb25SZWNvcmQpOwogICAgICAgICB3YWtlU3luY1RocmVhZCgpOwpAQCAtMzA3LDcgKzMw
Nyw3IEBAIFBhc3NOYXRpdmVJbWFnZVB0ciBJY29uRGF0YWJhc2U6OnN5bmNocm8KICAgICBpZiAo
IWljb24pCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJs
QW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwog
ICAgIHJldHVybiBpY29uLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwogfQogCkBAIC0z
MjksNyArMzI5LDcgQEAgU3RyaW5nIEljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uVVJMRgog
ICAgIGlmICghaXNPcGVuKCkgfHwgIWRvY3VtZW50Q2FuSGF2ZUljb24ocGFnZVVSTE9yaWdpbmFs
KSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJ
Y29uTG9jayk7CiAgICAgCiAgICAgUGFnZVVSTFJlY29yZCogcGFnZVJlY29yZCA9IG1fcGFnZVVS
TFRvUmVjb3JkTWFwLmdldChwYWdlVVJMT3JpZ2luYWwpOwogICAgIGlmICghcGFnZVJlY29yZCkK
QEAgLTQxNyw3ICs0MTcsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cmV0YWluSWNvbkZvclBhZ2VV
UkwoCiAgICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fdXJsc1RvUmV0YWluT3JSZWxlYXNlTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdXJsc1RvUmV0YWluT3JSZWxlYXNlTG9jayk7CiAgICAgICAgIG1fdXJsc1RvUmV0YWluLmFk
ZChwYWdlVVJMLmlzb2xhdGVkQ29weSgpKTsKICAgICAgICAgbV9yZXRhaW5PclJlbGVhc2VJY29u
UmVxdWVzdGVkID0gdHJ1ZTsKICAgICB9CkBAIC00NTAsNyArNDUwLDcgQEAgdm9pZCBJY29uRGF0
YWJhc2U6OnBlcmZvcm1SZXRhaW5JY29uRm9yUAogICAgICAgICBpZiAoIW1faWNvblVSTEltcG9y
dENvbXBsZXRlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVu
ZGluZ1N5bmNMb2NrKTsKICAgICAgICAgLy8gSWYgdGhpcyBwYWdlVVJMIHdhaXRpbmcgdG8gYmUg
c3luYydlZCwgdXBkYXRlIHRoZSBzeW5jIHJlY29yZAogICAgICAgICAvLyBUaGlzIHNhdmVzIHVz
IGluIHRoZSBjYXNlIHdoZXJlIGEgcGFnZSB3YXMgcmVhZHkgdG8gYmUgZGVsZXRlZCBmcm9tIHRo
ZSBkYXRhYmFzZSBidXQgd2FzIGp1c3QgcmV0YWluZWQgLSBzbyB0aGVyZXMgbm8gbmVlZCB0byBk
ZWxldGUgaXQhCiAgICAgICAgIGlmICghbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkICYmIG1fcGFn
ZVVSTHNQZW5kaW5nU3luYy5jb250YWlucyhwYWdlVVJMKSkgewpAQCAtNDcwLDcgKzQ3MCw3IEBA
IHZvaWQgSWNvbkRhdGFiYXNlOjpyZWxlYXNlSWNvbkZvclBhZ2VVUkwKICAgICAgICAgcmV0dXJu
OwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxzVG9SZXRhaW5PclJl
bGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxzVG9SZXRhaW5PclJl
bGVhc2VMb2NrKTsKICAgICAgICAgbV91cmxzVG9SZWxlYXNlLmFkZChwYWdlVVJMLmlzb2xhdGVk
Q29weSgpKTsKICAgICAgICAgbV9yZXRhaW5PclJlbGVhc2VJY29uUmVxdWVzdGVkID0gdHJ1ZTsK
ICAgICB9CkBAIC01MDYsNyArNTA2LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnBlcmZvcm1SZWxl
YXNlSWNvbkZvcgogICAgIEFTU0VSVCghaWNvblJlY29yZCB8fCAoaWNvblJlY29yZCAmJiBtX2lj
b25VUkxUb1JlY29yZE1hcC5nZXQoaWNvblJlY29yZC0+aWNvblVSTCgpKSA9PSBpY29uUmVjb3Jk
KSk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5n
TG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsK
ICAgICAgICAgCiAgICAgICAgIC8vIFNpbmNlIHRoaXMgcGFnZVVSTCBpcyBnb2luZyBhd2F5LCB0
aGVyZSdzIG5vIHJlYXNvbiBhbnlvbmUgd291bGQgZXZlciBiZSBpbnRlcmVzdGVkIGluIGl0cyBy
ZWFkIHJlc3VsdHMgICAgCiAgICAgICAgIGlmICghbV9pY29uVVJMSW1wb3J0Q29tcGxldGUpCkBA
IC01MjIsNyArNTIyLDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnBlcmZvcm1SZWxlYXNlSWNvbkZv
cgogICAgIAogICAgIC8vIE1hcmsgc3R1ZmYgZm9yIGRlbGV0aW9uIGZyb20gdGhlIGRhdGFiYXNl
IG9ubHkgaWYgd2UncmUgbm90IGluIHByaXZhdGUgYnJvd3NpbmcKICAgICBpZiAoIW1fcHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZCkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5n
U3luY0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9jayk7
CiAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nU3luYy5zZXQocGFnZVVSTE9yaWdpbmFsLmlzb2xh
dGVkQ29weSgpLCBwYWdlUmVjb3JkLT5zbmFwc2hvdCh0cnVlKSk7CiAgICAgCiAgICAgICAgIC8v
IElmIHRoaXMgcGFnZSBpcyB0aGUgbGFzdCBwYWdlIHRvIHJlZmVyIHRvIGEgcGFydGljdWxhciBJ
Y29uUmVjb3JkLCB0aGF0IEljb25SZWNvcmQgbmVlZHMgdG8KQEAgLTU0OCwxMiArNTQ4LDEyIEBA
IHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvckljb25VUkwKICAgICAKICAgICBWZWN0
b3I8U3RyaW5nPiBwYWdlVVJMczsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29u
TG9jayk7CiAgICAgCiAgICAgICAgIC8vIElmIHRoaXMgaWNvbiB3YXMgcGVuZGluZyBhIHJlYWQs
IHJlbW92ZSBpdCBmcm9tIHRoYXQgc2V0IGJlY2F1c2UgdGhpcyBuZXcgZGF0YSBzaG91bGQgb3Zl
cnJpZGUgd2hhdCBpcyBvbiBkaXNrCiAgICAgICAgIFJlZlB0cjxJY29uUmVjb3JkPiBpY29uID0g
bV9pY29uVVJMVG9SZWNvcmRNYXAuZ2V0KGljb25VUkwpOwogICAgICAgICBpZiAoaWNvbikgewot
ICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAg
ICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAg
ICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5yZW1vdmUoaWNvbi5nZXQoKSk7CiAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgaWNvbiA9IGdldE9yQ3JlYXRlSWNvblJlY29yZChpY29uVVJM
KTsKQEAgLTU2Nyw3ICs1NjcsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6c2V0SWNvbkRhdGFGb3JJ
Y29uVVJMCiAgICAgICAgIAogICAgICAgICAvLyBNYXJrIHRoZSBJY29uUmVjb3JkIGFzIHJlcXVp
cmluZyBhbiB1cGRhdGUgdG8gdGhlIGRhdGFiYXNlIG9ubHkgaWYgcHJpdmF0ZSBicm93c2luZyBp
cyBkaXNhYmxlZAogICAgICAgICBpZiAoIW1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkgewotICAg
ICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKKyAgICAgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKICAgICAgICAgICAgIG1f
aWNvbnNQZW5kaW5nU3luYy5zZXQoaWNvblVSTCwgaWNvbi0+c25hcHNob3QoKSk7CiAgICAgICAg
IH0KIApAQCAtNjA4LDcgKzYwOCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uVVJMRm9y
UGFnZVVSTCgKICAgICBTdHJpbmcgaWNvblVSTCwgcGFnZVVSTDsKICAgICAKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAKICAgICAgICAgUGFnZVVSTFJlY29yZCog
cGFnZVJlY29yZCA9IG1fcGFnZVVSTFRvUmVjb3JkTWFwLmdldChwYWdlVVJMT3JpZ2luYWwpOwog
ICAgICAgICAKQEAgLTYzNiwxMyArNjM2LDEzIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29u
VVJMRm9yUGFnZVVSTCgKICAgICAgICAgICAgIEFTU0VSVChpY29uUmVjb3JkLT5yZXRhaW5pbmdQ
YWdlVVJMcygpLnNpemUoKSA9PSAwKTsKICAgICAgICAgICAgIExPRyhJY29uRGF0YWJhc2UsICJJ
Y29uIGZvciBpY29uIHVybCAlcyBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQgLSByZW1vdmluZyBt
YXBwaW5nIGZvciBpdCIsIHVybEZvckxvZ2dpbmcoaWNvblJlY29yZC0+aWNvblVSTCgpKS5hc2Np
aSgpLmRhdGEoKSk7CiAgICAgICAgICAgICBtX2ljb25VUkxUb1JlY29yZE1hcC5yZW1vdmUoaWNv
blJlY29yZC0+aWNvblVSTCgpKTsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Bl
bmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRp
bmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcucmVtb3Zl
KGljb25SZWNvcmQuZ2V0KCkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBBbmQg
bWFyayB0aGlzIG1hcHBpbmcgdG8gYmUgYWRkZWQgdG8gdGhlIGRhdGFiYXNlCiAgICAgICAgIGlm
ICghbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKSB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgbV9wYWdlVVJMc1BlbmRpbmdTeW5jLnNl
dChwYWdlVVJMLCBwYWdlUmVjb3JkLT5zbmFwc2hvdCgpKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgLy8gSWYgdGhlIGljb24gaXMgb24gaXRzIGxhc3QgcmVmLCBtYXJrIGl0IGZvciBkZWxl
dGlvbgpAQCAtNjc0LDcgKzY3NCw3IEBAIEljb25Mb2FkRGVjaXNpb24gSWNvbkRhdGFiYXNlOjpz
eW5jaHJvbm8KICAgICAvLyAxIC0gV2hlbiB3ZSByZWFkIHRoZSBpY29uIHVybHMgZnJvbSBkaXNr
LCBnZXR0aW5nIHRoZSB0aW1lU3RhbXAgYXQgdGhlIHNhbWUgdGltZQogICAgIC8vIDIgLSBXaGVu
IHdlIGdldCBhIG5ldyBpY29uIGZyb20gdGhlIGxvYWRlciwgaW4gd2hpY2ggY2FzZSB0aGUgdGlt
ZXN0YW1wIGlzIHNldCBhdCB0aGF0IHRpbWUKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxB
bmRJY29uTG9jayk7CiAgICAgICAgIGlmIChJY29uUmVjb3JkKiBpY29uID0gbV9pY29uVVJMVG9S
ZWNvcmRNYXAuZ2V0KGljb25VUkwpKSB7CiAgICAgICAgICAgICBMT0coSWNvbkRhdGFiYXNlLCAi
Rm91bmQgZXhwaXJhdGlvbiB0aW1lIG9uIGEgcHJlc2VudCBpY29uIGJhc2VkIG9uIGV4aXN0aW5n
IEljb25SZWNvcmQiKTsKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KGN1cnJl
bnRUaW1lKCkpIC0gc3RhdGljX2Nhc3Q8aW50PihpY29uLT5nZXRUaW1lc3RhbXAoKSkgPiBpY29u
RXhwaXJhdGlvblRpbWUgPyBJY29uTG9hZFllcyA6IEljb25Mb2FkTm87CkBAIC02ODIsNyArNjgy
LDcgQEAgSWNvbkxvYWREZWNpc2lvbiBJY29uRGF0YWJhc2U6OnN5bmNocm9ubwogICAgIH0KICAg
ICAKICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgcmVjb3JkIGZvciBpdCwgYnV0IHdlICpoYXZl
KiBpbXBvcnRlZCBhbGwgaWNvblVSTHMgZnJvbSBkaXNrLCB0aGVuIHdlIHNob3VsZCBsb2FkIGl0
IG5vdwotICAgIE11dGV4TG9ja2VyIHJlYWRpbmdMb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2sp
OworICAgIExvY2tIb2xkZXIgcmVhZGluZ0xvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAg
ICAgaWYgKG1faWNvblVSTEltcG9ydENvbXBsZXRlKQogICAgICAgICByZXR1cm4gSWNvbkxvYWRZ
ZXM7CiAgICAgICAgIApAQCAtNjk5LDcgKzY5OSw3IEBAIGJvb2wgSWNvbkRhdGFiYXNlOjpzeW5j
aHJvbm91c0ljb25EYXRhS24KIHsKICAgICBBU1NFUlRfTk9UX1NZTkNfVEhSRUFEKCk7CiAgICAg
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgIGlmIChJY29uUmVjb3JkKiBpY29uID0g
bV9pY29uVVJMVG9SZWNvcmRNYXAuZ2V0KGljb25VUkwpKQogICAgICAgICByZXR1cm4gaWNvbi0+
aW1hZ2VEYXRhU3RhdHVzKCkgIT0gSW1hZ2VEYXRhU3RhdHVzVW5rbm93bjsKIApAQCAtNzU0LDI2
ICs3NTQsMjYgQEAgdm9pZCBJY29uRGF0YWJhc2U6OmNoZWNrSW50ZWdyaXR5QmVmb3JlTwogCiBz
aXplX3QgSWNvbkRhdGFiYXNlOjpwYWdlVVJMTWFwcGluZ0NvdW50KCkKIHsKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91
cmxBbmRJY29uTG9jayk7CiAgICAgcmV0dXJuIG1fcGFnZVVSTFRvUmVjb3JkTWFwLnNpemUoKTsK
IH0KIAogc2l6ZV90IEljb25EYXRhYmFzZTo6cmV0YWluZWRQYWdlVVJMQ291bnQoKQogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKICAgICBwZXJmb3JtUGVuZGluZ1JldGFpbkFuZFJlbGVh
c2VPcGVyYXRpb25zKCk7CiAgICAgcmV0dXJuIG1fcmV0YWluZWRQYWdlVVJMcy5zaXplKCk7CiB9
CiAKIHNpemVfdCBJY29uRGF0YWJhc2U6Omljb25SZWNvcmRDb3VudCgpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOwogICAgIHJldHVybiBtX2ljb25VUkxUb1JlY29yZE1hcC5zaXplKCk7
CiB9CiAKIHNpemVfdCBJY29uRGF0YWJhc2U6Omljb25SZWNvcmRDb3VudFdpdGhEYXRhKCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgc2l6ZV90IHJlc3VsdCA9IDA7CiAgICAg
CiAgICAgSGFzaE1hcDxTdHJpbmcsIEljb25SZWNvcmQqPjo6aXRlcmF0b3IgaSA9IG1faWNvblVS
TFRvUmVjb3JkTWFwLmJlZ2luKCk7CkBAIC04MjksMTMgKzgyOSwxMyBAQCB2b2lkIEljb25EYXRh
YmFzZTo6bm90aWZ5UGVuZGluZ0xvYWREZWNpCiAKIHZvaWQgSWNvbkRhdGFiYXNlOjp3YWtlU3lu
Y1RocmVhZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY0xvY2spOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogCiAgICAgaWYgKCFtX2Rpc2FibGVTdWRkZW5U
ZXJtaW5hdGlvbldoaWxlU3luY1RocmVhZEhhc1dvcmtUb0RvKQogICAgICAgICBtX2Rpc2FibGVT
dWRkZW5UZXJtaW5hdGlvbldoaWxlU3luY1RocmVhZEhhc1dvcmtUb0RvID0gc3RkOjptYWtlX3Vu
aXF1ZTxTdWRkZW5UZXJtaW5hdGlvbkRpc2FibGVyPigpOwogCiAgICAgbV9zeW5jVGhyZWFkSGFz
V29ya1RvRG8gPSB0cnVlOwotICAgIG1fc3luY0NvbmRpdGlvbi5zaWduYWwoKTsKKyAgICBtX3N5
bmNDb25kaXRpb24ubm90aWZ5T25lKCk7CiB9CiAKIHZvaWQgSWNvbkRhdGFiYXNlOjpzY2hlZHVs
ZU9yRGVmZXJTeW5jVGltZXIoKQpAQCAtODc0LDEzICs4NzQsMTMgQEAgYm9vbCBJY29uRGF0YWJh
c2U6OmlzT3BlbigpIGNvbnN0CiAKIGJvb2wgSWNvbkRhdGFiYXNlOjppc09wZW5CZXNpZGVzTWFp
blRocmVhZENhbGxiYWNrcygpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3lu
Y0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgIHJldHVybiBt
X3N5bmNUaHJlYWRSdW5uaW5nIHx8IG1fc3luY0RCLmlzT3BlbigpOwogfQogCiBTdHJpbmcgSWNv
bkRhdGFiYXNlOjpkYXRhYmFzZVBhdGgoKSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3N5bmNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNMb2NrKTsKICAgICBy
ZXR1cm4gbV9jb21wbGV0ZURhdGFiYXNlUGF0aC5pc29sYXRlZENvcHkoKTsKIH0KIApAQCAtOTE2
LDcgKzkxNiw3IEBAIFBhZ2VVUkxSZWNvcmQqIEljb25EYXRhYmFzZTo6Z2V0T3JDcmVhdGUKIAog
ICAgIFBhZ2VVUkxSZWNvcmQqIHBhZ2VSZWNvcmQgPSBtX3BhZ2VVUkxUb1JlY29yZE1hcC5nZXQo
cGFnZVVSTCk7CiAgICAgCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdM
b2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAg
aWYgKCFtX2ljb25VUkxJbXBvcnRDb21wbGV0ZSkgewogICAgICAgICAvLyBJZiB0aGUgaW5pdGlh
bCBpbXBvcnQgb2YgYWxsIFVSTHMgaGFzbid0IGNvbXBsZXRlZCBhbmQgd2UgaGF2ZSBubyBwYWdl
IHJlY29yZCwgd2UgYXNzdW1lIHdlICptaWdodCoga25vdyBhYm91dCB0aGlzIGxhdGVyIGFuZCBj
cmVhdGUgYSByZWNvcmQgZm9yIGl0CiAgICAgICAgIGlmICghcGFnZVJlY29yZCkgewpAQCAtOTg1
LDcgKzk4NSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjppY29uRGF0YWJhc2VTeW5jVGhyZWEKICAg
ICB9CiAgICAgCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgICAgICBpZiAoIW1f
c3luY0RCLm9wZW4obV9jb21wbGV0ZURhdGFiYXNlUGF0aCkpIHsKICAgICAgICAgICAgIExPR19F
UlJPUigiVW5hYmxlIHRvIG9wZW4gaWNvbiBkYXRhYmFzZSBhdCBwYXRoICVzIC0gJXMiLCBtX2Nv
bXBsZXRlRGF0YWJhc2VQYXRoLmFzY2lpKCkuZGF0YSgpLCBtX3N5bmNEQi5sYXN0RXJyb3JNc2co
KSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMTEzLDcgKzExMTMsNyBAQCB2b2lkIEljb25E
YXRhYmFzZTo6cGVyZm9ybU9wZW5Jbml0aWFsaXphCiAgICAgICAgICAgICBtX3N5bmNEQi5jbG9z
ZSgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fc3luY0xvY2spOworICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fc3luY0xvY2spOwogICAgICAgICAgICAgICAgIC8vIFNob3VsZCd2ZSBiZWVuIGNvbnN1
bWVkIGJ5IFNRTGl0ZSwgZGVsZXRlIGp1c3QgdG8gbWFrZSBzdXJlIHdlIGRvbid0IHNlZSBpdCBh
Z2FpbiBpbiB0aGUgZnV0dXJlOwogICAgICAgICAgICAgICAgIGRlbGV0ZUZpbGUobV9jb21wbGV0
ZURhdGFiYXNlUGF0aCArICItam91cm5hbCIpOwogICAgICAgICAgICAgICAgIGRlbGV0ZUZpbGUo
bV9jb21wbGV0ZURhdGFiYXNlUGF0aCk7CkBAIC0xMjE1LDcgKzEyMTUsNyBAQCB2b2lkIEljb25E
YXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAgICAgIFN0cmluZyBpY29uVVJMID0gcXVl
cnkuZ2V0Q29sdW1uVGV4dCgxKTsKIAogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKIAogICAgICAgICAgICAgUGFnZVVSTFJlY29yZCogcGFnZVJl
Y29yZCA9IG1fcGFnZVVSTFRvUmVjb3JkTWFwLmdldChwYWdlVVJMKTsKICAgICAgICAgICAgIApA
QCAtMTI0OCw3ICsxMjQ4LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnBlcmZvcm1VUkxJbXBvcnQo
KQogICAgICAgICAvLyBvbmUgZm9yIHRoZSBVUkwgYW5kIG9uZSBmb3IgdGhlIEltYWdlIGl0c2Vs
ZgogICAgICAgICAvLyBOb3RlIHRoYXQgV2ViSWNvbkRhdGFiYXNlIGlzIG5vdCBuZWNjZXNzYXJp
bHkgQVBJIHNvIHdlIG1pZ2h0IGJlIGFibGUgdG8gbWFrZSB0aGlzIGNoYW5nZQogICAgICAgICB7
Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwor
ICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAg
ICAgICAgICAgaWYgKG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LmNvbnRhaW5zKHBhZ2VVUkwpKSB7
CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hEaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTE9uTWFp
blRocmVhZChwYWdlVVJMKTsKICAgICAgICAgICAgICAgICBtX3BhZ2VVUkxzUGVuZGluZ0ltcG9y
dC5yZW1vdmUocGFnZVVSTCk7CkBAIC0xMjcxLDcgKzEyNzEsNyBAQCB2b2lkIEljb25EYXRhYmFz
ZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAgLy8gYnV0IGFmdGVyIG1faWNvblVSTEltcG9ydENv
bXBsZXRlIGlzIHNldCB0byB0cnVlLCB3ZSBkb24ndCBjYXJlIGFib3V0IHRoaXMgc2V0IGFueW1v
cmUKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9wZW5kaW5nUmVhZGluZ0xvY2spOwogCiAgICAgICAgIHVybHMuYXBwZW5kUmFuZ2UobV9wYWdl
VVJMc1BlbmRpbmdJbXBvcnQuYmVnaW4oKSwgbV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQuZW5kKCkp
OwogICAgICAgICBtX3BhZ2VVUkxzUGVuZGluZ0ltcG9ydC5jbGVhcigpOyAgICAgICAgCkBAIC0x
Mjg0LDcgKzEyODQsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAg
ICAgLy8gUmVtb3ZlIHVucmV0YWluZWQgb25lcyBpZiBkYXRhYmFzZSBjbGVhbnVwIGlzIGFsbG93
ZWQKICAgICAvLyBLZWVwIGEgc2V0IG9mIG9uZXMgdGhhdCBhcmUgcmV0YWluZWQgYW5kIHBlbmRp
bmcgbm90aWZpY2F0aW9uCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxB
bmRJY29uTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2sp
OwogCiAgICAgICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMoKTsK
IApAQCAtMTMwMSwxMiArMTMwMSwxMiBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTElt
cG9ydCgpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2ljb25VUkxUb1JlY29yZE1hcC5yZW1v
dmUoaWNvblJlY29yZC0+aWNvblVSTCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcGFnZVVSTHNJbnRlcmVzdGVkSW5JY29ucy5yZW1vdmUo
dXJsc1tpXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9pY29uc1BlbmRpbmdSZWFk
aW5nLnJlbW92ZShpY29uUmVjb3JkKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1N5bmMuc2V0KGljb25SZWNvcmQtPmljb25VUkwo
KSwgaWNvblJlY29yZC0+c25hcHNob3QodHJ1ZSkpOyAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTEzNzEsNyAr
MTM3MSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzeW5jVGhyZWFkTWFpbkxvb3AoKQogICAgICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fdXJsQW5kSWNvbkxvY2spOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxB
bmRJY29uTG9jayk7CiAgICAgICAgICAgICBwZXJmb3JtUGVuZGluZ1JldGFpbkFuZFJlbGVhc2VP
cGVyYXRpb25zKCk7CiAgICAgICAgIH0KICAgICAgICAgCkBAIC0xNDUxLDcgKzE0NTEsNyBAQCB2
b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVBlbmRpbmdSZXRhaW5BCiAgICAgSGFzaENvdW50ZWRT
ZXQ8U3RyaW5nPiB0b1JlbGVhc2U7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIHBlbmRp
bmdXb3JrTG9ja2VyKG1fdXJsc1RvUmV0YWluT3JSZWxlYXNlTG9jayk7CisgICAgICAgIExvY2tI
b2xkZXIgcGVuZGluZ1dvcmtMb2NrZXIobV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKICAg
ICAgICAgaWYgKCFtX3JldGFpbk9yUmVsZWFzZUljb25SZXF1ZXN0ZWQpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKQEAgLTE0ODgsNyArMTQ4OCw3IEBAIGJvb2wgSWNvbkRhdGFiYXNlOjpyZWFkRnJv
bURhdGFiYXNlKCkKICAgICAvLyBUaGlzIHdheSB3ZSB3b24ndCBob2xkIHRoZSBsb2NrIGZvciBh
IGxvbmcgcGVyaW9kIG9mIHRpbWUKICAgICBWZWN0b3I8SWNvblJlY29yZCo+IGljb25zOwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICBp
Y29ucy5hcHBlbmRSYW5nZShtX2ljb25zUGVuZGluZ1JlYWRpbmcuYmVnaW4oKSwgbV9pY29uc1Bl
bmRpbmdSZWFkaW5nLmVuZCgpKTsKICAgICB9CiAgICAgCkBAIC0xNTAxLDkgKzE1MDEsOSBAQCBi
b29sIEljb25EYXRhYmFzZTo6cmVhZEZyb21EYXRhYmFzZSgpCiAKICAgICAgICAgLy8gVmVyaWZ5
IHRoaXMgaWNvbiBzdGlsbCB3YW50cyB0byBiZSByZWFkIGZyb20gZGlzawogICAgICAgICB7Ci0g
ICAgICAgICAgICBNdXRleExvY2tlciB1cmxMb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAg
ICAgICAgICBMb2NrSG9sZGVyIHVybExvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBNdXRleExvY2tlciByZWFkTG9ja2VyKG1fcGVuZGluZ1Jl
YWRpbmdMb2NrKTsKKyAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIHJlYWRMb2NrZXIobV9wZW5k
aW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmICht
X2ljb25zUGVuZGluZ1JlYWRpbmcuY29udGFpbnMoaWNvbnNbaV0pKSB7CiAgICAgICAgICAgICAg
ICAgICAgIC8vIFNldCB0aGUgbmV3IGRhdGEKQEAgLTE1OTEsMTEgKzE1OTEsMTEgQEAgYm9vbCBJ
Y29uRGF0YWJhc2U6OndyaXRlVG9EYXRhYmFzZSgpCiAgICAgLy8gd2UnbGwgcGljayBpdCB1cCBv
biB0aGUgbmV4dCBwYXNzLiAgVGhpcyBncmVhdGx5IHNpbXBsaWZpZXMgdGhlIGxvY2tpbmcgc3Ry
YXRlZ3kgZm9yIHRoaXMgbWV0aG9kIGFuZCByZW1haW5zIGNvaGVzaXZlIHdpdGggY2hhbmdlcwog
ICAgIC8vIGFza2VkIGZvciBieSB0aGUgZGF0YWJhc2Ugb24gdGhlIG1haW4gdGhyZWFkCiAgICAg
ewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgICAgICBWZWN0b3I8SWNv
blNuYXBzaG90PiBpY29uU25hcHNob3RzOwogICAgICAgICBWZWN0b3I8UGFnZVVSTFNuYXBzaG90
PiBwYWdlU25hcHNob3RzOwogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9w
ZW5kaW5nU3luY0xvY2spOwogCiAgICAgICAgICAgICBpY29uU25hcHNob3RzLmFwcGVuZFJhbmdl
KG1faWNvbnNQZW5kaW5nU3luYy5iZWdpbigpLnZhbHVlcygpLCBtX2ljb25zUGVuZGluZ1N5bmMu
ZW5kKCkudmFsdWVzKCkpOwogICAgICAgICAgICAgbV9pY29uc1BlbmRpbmdTeW5jLmNsZWFyKCk7
CkBAIC0xNjU4LDcgKzE2NTgsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cHJ1bmVVbnJldGFpbmVk
SWNvbnMoCiAgICAgCiAgICAgaW50IHJlc3VsdDsKICAgICB3aGlsZSAoKHJlc3VsdCA9IHBhZ2VT
UUwuc3RlcCgpKSA9PSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29u
TG9jayk7CiAgICAgICAgIGlmICghbV9wYWdlVVJMVG9SZWNvcmRNYXAuY29udGFpbnMocGFnZVNR
TC5nZXRDb2x1bW5UZXh0KDEpKSkKICAgICAgICAgICAgIHBhZ2VJRHNUb0RlbGV0ZS5hcHBlbmQo
cGFnZVNRTC5nZXRDb2x1bW5JbnQ2NCgwKSk7CiAgICAgfQpAQCAtMTc5MSw3ICsxNzkxLDcgQEAg
dm9pZCogSWNvbkRhdGFiYXNlOjpjbGVhbnVwU3luY1RocmVhZCgpCiAgICAgd3JpdGVUb0RhdGFi
YXNlKCk7CiAgICAgCiAgICAgLy8gQ2xvc2UgdGhlIGRhdGFiYXNlCi0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fc3luY0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwog
ICAgIAogICAgIG1fZGF0YWJhc2VEaXJlY3RvcnkgPSBTdHJpbmcoKTsKICAgICBtX2NvbXBsZXRl
RGF0YWJhc2VQYXRoID0gU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpZiBFTkFCTEUoSUNPTkRBVEFCQVNFKQogI2luY2x1ZGUgIlNRTGl0ZURhdGFiYXNlLmgiCiAj
aW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgpAQCAtMTQxLDggKzE0Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2lzRW5hYmxlZDsKICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsKIAotICAgIG11
dGFibGUgTXV0ZXggbV9zeW5jTG9jazsKLSAgICBUaHJlYWRDb25kaXRpb24gbV9zeW5jQ29uZGl0
aW9uOworICAgIG11dGFibGUgTG9jayBtX3N5bmNMb2NrOworICAgIENvbmRpdGlvbiBtX3N5bmND
b25kaXRpb247CiAgICAgU3RyaW5nIG1fZGF0YWJhc2VEaXJlY3Rvcnk7CiAgICAgLy8gSG9sZGlu
ZyBtX3N5bmNMb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIG1fY29tcGxldGVEYXRhYmFz
ZVBhdGgKICAgICBTdHJpbmcgbV9jb21wbGV0ZURhdGFiYXNlUGF0aDsKQEAgLTE1MywyNCArMTU0
LDI0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3N5bmNUaHJlYWRIYXNXb3JrVG9EbzsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8U3VkZGVuVGVybWluYXRpb25EaXNhYmxlcj4gbV9kaXNhYmxlU3VkZGVu
VGVybWluYXRpb25XaGlsZVN5bmNUaHJlYWRIYXNXb3JrVG9EbzsKIAotICAgIE11dGV4IG1fdXJs
QW5kSWNvbkxvY2s7CisgICAgTG9jayBtX3VybEFuZEljb25Mb2NrOwogICAgIC8vIEhvbGRpbmcg
bV91cmxBbmRJY29uTG9jayBpcyByZXF1aXJlZCB3aGVuIGFjY2Vzc2luZyBhbnkgb2YgdGhlIGZv
bGxvd2luZyBkYXRhIHN0cnVjdHVyZXMgb3IgdGhlIG9iamVjdHMgdGhleSBjb250YWluCiAgICAg
SGFzaE1hcDxTdHJpbmcsIEljb25SZWNvcmQqPiBtX2ljb25VUkxUb1JlY29yZE1hcDsKICAgICBI
YXNoTWFwPFN0cmluZywgUGFnZVVSTFJlY29yZCo+IG1fcGFnZVVSTFRvUmVjb3JkTWFwOwogICAg
IEhhc2hTZXQ8U3RyaW5nPiBtX3JldGFpbmVkUGFnZVVSTHM7CiAKLSAgICBNdXRleCBtX3BlbmRp
bmdTeW5jTG9jazsKKyAgICBMb2NrIG1fcGVuZGluZ1N5bmNMb2NrOwogICAgIC8vIEhvbGRpbmcg
bV9wZW5kaW5nU3luY0xvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgYW55IG9mIHRoZSBm
b2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzCiAgICAgSGFzaE1hcDxTdHJpbmcsIFBhZ2VVUkxTbmFw
c2hvdD4gbV9wYWdlVVJMc1BlbmRpbmdTeW5jOwogICAgIEhhc2hNYXA8U3RyaW5nLCBJY29uU25h
cHNob3Q+IG1faWNvbnNQZW5kaW5nU3luYzsKICAgICAKLSAgICBNdXRleCBtX3BlbmRpbmdSZWFk
aW5nTG9jazsgICAgCisgICAgTG9jayBtX3BlbmRpbmdSZWFkaW5nTG9jazsgICAgCiAgICAgLy8g
SG9sZGluZyBtX3BlbmRpbmdTeW5jTG9jayBpcyByZXF1aXJlZCB3aGVuIGFjY2Vzc2luZyBhbnkg
b2YgdGhlIGZvbGxvd2luZyBkYXRhIHN0cnVjdHVyZXMgLSB3aGVuIGRlYWxpbmcgd2l0aCBJY29u
UmVjb3JkKnMsIGhvbGRpbmcgbV91cmxBbmRJY29uTG9jayBpcyBhbHNvIHJlcXVpcmVkCiAgICAg
SGFzaFNldDxTdHJpbmc+IG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0OwogICAgIEhhc2hTZXQ8U3Ry
aW5nPiBtX3BhZ2VVUkxzSW50ZXJlc3RlZEluSWNvbnM7CiAgICAgSGFzaFNldDxJY29uUmVjb3Jk
Kj4gbV9pY29uc1BlbmRpbmdSZWFkaW5nOwogCi0gICAgTXV0ZXggbV91cmxzVG9SZXRhaW5PclJl
bGVhc2VMb2NrOworICAgIExvY2sgbV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrOwogICAgIC8v
IEhvbGRpbmcgbV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNj
ZXNzaW5nIGFueSBvZiB0aGUgZm9sbG93aW5nIGRhdGEgc3RydWN0dXJlcy4KICAgICBIYXNoQ291
bnRlZFNldDxTdHJpbmc+IG1fdXJsc1RvUmV0YWluOwogICAgIEhhc2hDb3VudGVkU2V0PFN0cmlu
Zz4gbV91cmxzVG9SZWxlYXNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
OSw3ICs0OSw3IEBAIFNjcm9sbGluZ1RyZWU6On5TY3JvbGxpbmdUcmVlKCkKIGJvb2wgU2Nyb2xs
aW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewogICAgIC8vIFRoaXMgbWV0aG9kIGlzIGludm9r
ZWQgYnkgdGhlIGV2ZW50IGhhbmRsaW5nIHRocmVhZAotICAgIE11dGV4TG9ja2VyIGxvY2sobV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogCiAgICAgYm9vbCBzaG91bGRT
ZXRMYXRjaCA9IHdoZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpOwogICAgIApAQCAt
MTE1LDcgKzExNSw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6Y29tbWl0TmV3VHJlZVN0YXRlKHMK
ICAgICAgICAgJiYgKHJvb3RTdGF0ZU5vZGVDaGFuZ2VkCiAgICAgICAgICAgICB8fCByb290Tm9k
ZS0+aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpO
b25GYXN0U2Nyb2xsYWJsZVJlZ2lvbikKICAgICAgICAgICAgIHx8IHJvb3ROb2RlLT5oYXNDaGFu
Z2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpTY3JvbGxMYXllcikpKSB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211
dGV4KTsKIAogICAgICAgICBpZiAocm9vdFN0YXRlTm9kZUNoYW5nZWQgfHwgcm9vdE5vZGUtPmhh
c0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlNjcm9sbExheWVyKSkKICAgICAg
ICAgICAgIG1fbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24gPSBGbG9hdFBvaW50KCk7CkBAIC0yMDgs
NyArMjA4LDcgQEAgU2Nyb2xsaW5nVHJlZU5vZGUqIFNjcm9sbGluZ1RyZWU6Om5vZGVGbwogCiB2
b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVM
ZWZ0LCBib29sIHBpbm5lZFRvVGhlUmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlu
bmVkVG9UaGVCb3R0b20pCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CiAKICAgICBt
X21haW5GcmFtZVBpbm5lZFRvVGhlTGVmdCA9IHBpbm5lZFRvVGhlTGVmdDsKICAgICBtX21haW5G
cmFtZVBpbm5lZFRvVGhlUmlnaHQgPSBwaW5uZWRUb1RoZVJpZ2h0OwpAQCAtMjE4LDU0ICsyMTgs
NTQgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVQaW5TdGF0ZQogCiBGbG9hdFBv
aW50IFNjcm9sbGluZ1RyZWU6Om1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAg
ICByZXR1cm4gbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbjsKIH0KIAogdm9pZCBTY3JvbGxpbmdU
cmVlOjpzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihGbG9hdFBvaW50IHBvc2l0aW9uKQogewot
ICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0
ZXgpOwogICAgIG1fbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24gPSBwb3NpdGlvbjsKIH0KIAogYm9v
bCBTY3JvbGxpbmdUcmVlOjppc1BvaW50SW5Ob25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihJbnRQb2lu
dCBwKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrKG1fbXV0ZXgpOwogICAgIAogICAgIHJldHVybiBtX25vbkZhc3RTY3JvbGxhYmxlUmVnaW9u
LmNvbnRhaW5zKHApOwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OmlzUnViYmVyQmFuZEluUHJv
Z3Jlc3MoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7ICAgIAorICAgIExvY2tI
b2xkZXIgbG9jayhtX211dGV4KTsgICAgCiAKICAgICByZXR1cm4gbV9tYWluRnJhbWVJc1J1YmJl
ckJhbmRpbmc7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lSXNSdWJiZXJC
YW5kaW5nKGJvb2wgaXNSdWJiZXJCYW5kaW5nKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIG1fbWFpbkZy
YW1lSXNSdWJiZXJCYW5kaW5nID0gaXNSdWJiZXJCYW5kaW5nOwogfQogCiBib29sIFNjcm9sbGlu
Z1RyZWU6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2so
bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIAogICAgIHJldHVy
biBtX21haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmc7CiB9CiAgICAgCiB2b2lkIFNjcm9sbGluZ1Ry
ZWU6OnNldE1haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmcoYm9vbCBpc1Njcm9sbFNuYXBwaW5nKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX211dGV4KTsKICAgICAKICAgICBtX21haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmcgPSBpc1Nj
cm9sbFNuYXBwaW5nOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldENhblJ1YmJlckJhbmRT
dGF0ZShib29sIGNhblJ1YmJlckJhbmRBdExlZnQsIGJvb2wgY2FuUnViYmVyQmFuZEF0UmlnaHQs
IGJvb2wgY2FuUnViYmVyQmFuZEF0VG9wLCBib29sIGNhblJ1YmJlckJhbmRBdEJvdHRvbSkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0YXRlTXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIG1fcnViYmVyQmFuZHNBdExlZnQg
PSBjYW5SdWJiZXJCYW5kQXRMZWZ0OwogICAgIG1fcnViYmVyQmFuZHNBdFJpZ2h0ID0gY2FuUnVi
YmVyQmFuZEF0UmlnaHQ7CkBAIC0yNzUsMjggKzI3NSwyOCBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6
OnNldENhblJ1YmJlckJhbmRTdGF0CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNB
dExlZnQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CiAKICAgICByZXR1cm4gbV9ydWJi
ZXJCYW5kc0F0TGVmdDsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0Umln
aHQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CiAKICAgICByZXR1cm4gbV9ydWJiZXJC
YW5kc0F0UmlnaHQ7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdEJvdHRv
bSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJh
bmRzQXRCb3R0b207CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdFRvcCgp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRz
QXRUb3A7CiB9CkBAIC0zMDgsMTQgKzMwOCwxNCBAQCBib29sIFNjcm9sbGluZ1RyZWU6OmlzSGFu
ZGxpbmdQcm9ncmFtbWF0CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0U2Nyb2xsUGlubmluZ0Jl
aGF2aW9yKFNjcm9sbFBpbm5pbmdCZWhhdmlvciBwaW5uaW5nKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zd2lw
ZVN0YXRlTXV0ZXgpOwogICAgIAogICAgIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yID0gcGlubmlu
ZzsKIH0KIAogU2Nyb2xsUGlubmluZ0JlaGF2aW9yIFNjcm9sbGluZ1RyZWU6OnNjcm9sbFBpbm5p
bmdCZWhhdmlvcigpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKICAgICAKICAgICByZXR1
cm4gbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7CiB9CkBAIC0zMjUsNyArMzI1LDcgQEAgYm9vbCBT
Y3JvbGxpbmdUcmVlOjp3aWxsV2hlZWxFdmVudFN0YXJ0UwogICAgIGlmICh3aGVlbEV2ZW50LnBo
YXNlKCkgIT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIGlmICh3aGVlbEV2ZW50LmRl
bHRhWCgpID4gMCAmJiBtX21haW5GcmFtZVBpbm5lZFRvVGhlTGVmdCAmJiAhbV9ydWJiZXJCYW5k
c0F0TGVmdCkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zNTEsMTkgKzM1MSwxOSBAQCBib29s
IFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1BlcmZvcm1hbmNlCiAKIFNjcm9sbGluZ05vZGVJRCBT
Y3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
bXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIHJldHVybiBtX2xh
dGNoZWROb2RlOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldExhdGNoZWROb2RlKFNjcm9s
bGluZ05vZGVJRCBub2RlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICBtX2xhdGNoZWROb2RlID0gbm9kZTsK
IH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpjbGVhckxhdGNoZWROb2RlKCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7
CiAgICAgbV9sYXRjaGVkTm9kZSA9IDA7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAkod29ya2luZyBjb3B5KQpA
QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5j
bHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
KyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIApAQCAtMTYwLDExICsxNjEsMTEgQEAg
cHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8U2Nyb2xsaW5nTm9kZUlELCBTY3JvbGxpbmdU
cmVlTm9kZSo+IFNjcm9sbGluZ1RyZWVOb2RlTWFwOwogICAgIFNjcm9sbGluZ1RyZWVOb2RlTWFw
IG1fbm9kZU1hcDsKIAotICAgIE11dGV4IG1fbXV0ZXg7CisgICAgTG9jayBtX211dGV4OwogICAg
IFJlZ2lvbiBtX25vbkZhc3RTY3JvbGxhYmxlUmVnaW9uOwogICAgIEZsb2F0UG9pbnQgbV9tYWlu
RnJhbWVTY3JvbGxQb3NpdGlvbjsKIAotICAgIE11dGV4IG1fc3dpcGVTdGF0ZU11dGV4OworICAg
IExvY2sgbV9zd2lwZVN0YXRlTXV0ZXg7CiAgICAgU2Nyb2xsUGlubmluZ0JlaGF2aW9yIG1fc2Ny
b2xsUGlubmluZ0JlaGF2aW9yIHsgRG9Ob3RQaW4gfTsKICAgICBTY3JvbGxpbmdOb2RlSUQgbV9s
YXRjaGVkTm9kZSB7IDAgfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzcsNyArMTM3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2xlYXJQcmVzc3VyZU9uTWVtb3J5
UmVsZWFzZTsKICAgICB2b2lkIChebV9yZWxlYXNlTWVtb3J5QmxvY2spKCk7CiAgICAgQ0ZSdW5M
b29wT2JzZXJ2ZXJSZWYgbV9vYnNlcnZlcjsKLSAgICBNdXRleCBtX29ic2VydmVyTXV0ZXg7Cisg
ICAgTG9jayBtX29ic2VydmVyTXV0ZXg7CiAjZWxpZiBPUyhMSU5VWCkKICAgICBpbnQgbV9ldmVu
dEZEOwogICAgIGludCBtX3ByZXNzdXJlTGV2ZWxGRDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkocmV2aXNpb24g
MTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9h
ZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgSFJURkRhdGFi
YXNlTG9hZGVyOjpsb2FkQXN5bmNocm9ub3UKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGhyZWFkTG9jayk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV90aHJlYWRMb2NrKTsKICAgICAKICAgICBpZiAoIW1faHJ0ZkRhdGFiYXNlLmdl
dCgpICYmICFtX2RhdGFiYXNlTG9hZGVyVGhyZWFkKSB7CiAgICAgICAgIC8vIFN0YXJ0IHRoZSBh
c3luY2hyb25vdXMgZGF0YWJhc2UgbG9hZGluZyBwcm9jZXNzLgpAQCAtMTE3LDcgKzExNyw3IEBA
IGJvb2wgSFJURkRhdGFiYXNlTG9hZGVyOjppc0xvYWRlZCgpIGNvbnMKIAogdm9pZCBIUlRGRGF0
YWJhc2VMb2FkZXI6OndhaXRGb3JMb2FkZXJUaHJlYWRDb21wbGV0aW9uKCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV90aHJlYWRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Ro
cmVhZExvY2spOwogICAgIAogICAgIC8vIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKCkgc2hvdWxk
IG5vdCBiZSBjYWxsZWQgdHdpY2UgZm9yIHRoZSBzYW1lIHRocmVhZC4KICAgICBpZiAobV9kYXRh
YmFzZUxvYWRlclRocmVhZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZEYXRhYmFzZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZS5oIgogI2luY2x1ZGUg
PG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTc2LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SFJURkRhdGFiYXNlPiBtX2hydGZEYXRhYmFzZTsKIAogICAgIC8v
IEhvbGRpbmcgYSBtX3RocmVhZExvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9kYXRh
YmFzZUxvYWRlclRocmVhZC4KLSAgICBNdXRleCBtX3RocmVhZExvY2s7CisgICAgTG9jayBtX3Ro
cmVhZExvY2s7CiAgICAgVGhyZWFkSWRlbnRpZmllciBtX2RhdGFiYXNlTG9hZGVyVGhyZWFkOwog
CiAgICAgZmxvYXQgbV9kYXRhYmFzZVNhbXBsZVJhdGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2Nv
YS5tbQkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
TWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1Niw3ICsy
NTYsNyBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0UmVjZWl2ZWRNCiAgICAgbV91
bmRlck1lbW9yeVByZXNzdXJlID0gdHJ1ZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2Jz
ZXJ2ZXJNdXRleCk7CiAgICAgICAgIGlmICghbV9vYnNlcnZlcikgewogICAgICAgICAgICAgbV9v
YnNlcnZlciA9IENGUnVuTG9vcE9ic2VydmVyQ3JlYXRlKE5VTEwsIGtDRlJ1bkxvb3BCZWZvcmVX
YWl0aW5nIHwga0NGUnVuTG9vcEV4aXQsIE5PIC8qIGRvbid0IHJlcGVhdCAqLywKICAgICAgICAg
ICAgICAgICAwLCBXZWJDb3JlOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUNhbGxiYWNrLCBOVUxM
KTsKQEAgLTI3MiwxNCArMjcyLDE0IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpjbGVh
ck1lbW9yeVAKICAgICBtX3VuZGVyTWVtb3J5UHJlc3N1cmUgPSBmYWxzZTsKIAogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CiAgICAgICAgIG1fbWVtb3J5UHJlc3N1cmVS
ZWFzb24gPSBNZW1vcnlQcmVzc3VyZVJlYXNvbk5vbmU7CiAgICAgfQogfQogCiBib29sIE1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6c2hvdWxkV2FpdEZvck1lbW9yeUNsZWFyTWVzc2FnZSgpCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9vYnNlcnZlck11dGV4KTsKICAgICByZXR1cm4gbV9tZW1vcnlQcmVzc3VyZVJlYXNv
biAmIE1lbW9yeVByZXNzdXJlUmVhc29uVk1TdGF0dXM7CiB9CiAKQEAgLTI4OCw3ICsyODgsNyBA
QCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtCiAgICAgQVNTRVJUKFdl
YlRocmVhZElzTG9ja2VkT3JEaXNhYmxlZCgpKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
b2JzZXJ2ZXJNdXRleCk7CiAgICAgICAgIG1fb2JzZXJ2ZXIgPSAwOwogICAgIH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5
UmVmcmVzaE1vbml0b3IuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlk
UmUKICAgICBkb3VibGUgbW9ub3RvbmljQW5pbWF0aW9uU3RhcnRUaW1lOwogCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV9tdXRleCk7CiAgICAgICAgIGlmICghbV9zY2hlZHVsZWQpCiAgICAgICAgICAgICArK21fdW5z
Y2hlZHVsZWRGaXJlQ291bnQ7CiAgICAgICAgIGVsc2UKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lk
IERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGxheURpZFJlCiAgICAgICAgIG1fY2xpZW50c1Rv
QmVOb3RpZmllZCA9IG51bGxwdHI7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2so
bV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9w
cmV2aW91c0ZyYW1lRG9uZSA9IHRydWU7CiAgICAgfQogICAgIApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9y
LmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw5
ICszMCw5IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNldE1vbm90b25pY0FuaW1hdGlvblN0YXJ0VGltZShkb3VibGUgc3RhcnRUaW1lKSB7
IG1fbW9ub3RvbmljQW5pbWF0aW9uU3RhcnRUaW1lID0gc3RhcnRUaW1lOyB9CiAKLSAgICBNdXRl
eCYgbXV0ZXgoKSB7IHJldHVybiBtX211dGV4OyB9CisgICAgTG9jayYgbXV0ZXgoKSB7IHJldHVy
biBtX211dGV4OyB9CiAKICAgICBzdGF0aWMgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4g
Y3JlYXRlRGVmYXVsdERpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCk7CiAK
QEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcHJldmlvdXNGcmFtZURvbmU7
CiAgICAgaW50IG1fdW5zY2hlZHVsZWRGaXJlQ291bnQ7IC8vIE51bWJlciBvZiB0aW1lcyB0aGUg
ZGlzcGxheSBsaW5rIGhhcyBmaXJlZCB3aXRoIG5vIGNsaWVudHMuCiAgICAgUGxhdGZvcm1EaXNw
bGF5SUQgbV9kaXNwbGF5SUQ7Ci0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7
CiAKICAgICBIYXNoU2V0PERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+IG1fY2xpZW50czsK
ICAgICBIYXNoU2V0PERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+KiBtX2NsaWVudHNUb0Jl
Tm90aWZpZWQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczNSw3ICs3MzUsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjpzZXREZWxheUNhbGxiYWNrcyhib29sIGRlbGF5KSBjb25zdAogewotICAg
IE11dGV4TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9x
dWV1ZU11dGV4KTsKICAgICBpZiAoZGVsYXkpCiAgICAgICAgICsrbV9kZWxheUNhbGxiYWNrczsK
ICAgICBlbHNlIHsKQEAgLTc1NCw3ICs3NTQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6bWFpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpj
bGVhck1haW5UaHJlYWRQZW5kaW5nRmxhZygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1
ZXVlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgIG1fbWFp
blRocmVhZENhbGxQZW5kaW5nID0gZmFsc2U7CiB9CiAKQEAgLTgyMCw3ICs4MjAsNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6ZGlzCiAKICAgICBOb3RpZmljYXRpb24g
bm90aWZpY2F0aW9uID0gTm90aWZpY2F0aW9uKCk7CiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrKG1fcXVldWVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0
ZXgpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fcXVldWVkTm90aWZpY2F0aW9ucy5pc0VtcHR5
KCkpCiAgICAgICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCShyZXZpc2lvbiAxODg1MTApCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxNyw3ICszMTcsNyBAQCBw
cml2YXRlOgogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX3BlbmRpbmdTZWVrOwogCiAgICAg
VmVjdG9yPE5vdGlmaWNhdGlvbj4gbV9xdWV1ZWROb3RpZmljYXRpb25zOwotICAgIG11dGFibGUg
TXV0ZXggbV9xdWV1ZU11dGV4OworICAgIG11dGFibGUgTG9jayBtX3F1ZXVlTXV0ZXg7CiAKICAg
ICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IG1fY2FjaGVkTG9h
ZGVkVGltZVJhbmdlczsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Y2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCShyZXZpc2lvbiAxODg1MTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgs
NyArMTU4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBpbmxpbmUgdm9pZCogY2FsbGJhY2tD
b250ZXh0KCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obV9vYmplY3RJ
RCk7IH0KIAotICAgIHN0YXRpYyBNdXRleCYgbWFwTG9jaygpOworICAgIHN0YXRpYyBMb2NrJiBt
YXBMb2NrKCk7CiAgICAgc3RhdGljIEhhc2hNYXA8dWludHB0cl90LCBBVkZXcmFwcGVyKj4mIG1h
cCgpOwogICAgIHN0YXRpYyBBVkZXcmFwcGVyKiBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0
KHZvaWQqKTsKICAgICB2b2lkIGFkZFRvTWFwKCk7CkBAIC0xNDA0LDkgKzE0MDQsOSBAQCBBVkZX
cmFwcGVyOjp+QVZGV3JhcHBlcigpCiAgICAgbV9hdlBsYXllciA9IDA7CiB9CiAKLU11dGV4JiBB
VkZXcmFwcGVyOjptYXBMb2NrKCkKK0xvY2smIEFWRldyYXBwZXI6Om1hcExvY2soKQogewotICAg
IHN0YXRpYyBNdXRleCBtYXBMb2NrOworICAgIHN0YXRpYyBMb2NrIG1hcExvY2s7CiAgICAgcmV0
dXJuIG1hcExvY2s7CiB9CiAKQEAgLTE0MTgsNyArMTQxOCw3IEBAIEhhc2hNYXA8dWludHB0cl90
LCBBVkZXcmFwcGVyKj4mIEFWRldyYXAKIAogdm9pZCBBVkZXcmFwcGVyOjphZGRUb01hcCgpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobWFwTG9jaygpKTsKICAgICAKICAgICAvLyBIYXNoTWFwIGRvZXNuJ3QgbGlrZSBhIGtleSBv
ZiAwLCBhbmQgYWxzbyBtYWtlIHN1cmUgd2UgYXJlbid0CiAgICAgLy8gdXNpbmcgYW4gb2JqZWN0
IElEIHRoYXQncyBhbHJlYWR5IGluIHVzZS4KQEAgLTE0MzQsNyArMTQzNCw3IEBAIHZvaWQgQVZG
V3JhcHBlcjo6cmVtb3ZlRnJvbU1hcCgpIGNvbnN0CiB7CiAgICAgTE9HKE1lZGlhLCAiQVZGV3Jh
cHBlcjo6cmVtb3ZlRnJvbU1hcCglcCAlZCkiLCB0aGlzLCBtX29iamVjdElEKTsKIAotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExv
Y2soKSk7CiAgICAgbWFwKCkucmVtb3ZlKG1fb2JqZWN0SUQpOwogfQogCkBAIC0xNjM1LDcgKzE2
MzUsNyBAQCB2b2lkIEFWRldyYXBwZXI6OmNyZWF0ZVBsYXllckl0ZW0oKQogCiB2b2lkIEFWRldy
YXBwZXI6OnBlcmlvZGljVGltZU9ic2VydmVyQ2FsbGJhY2soQVZDRlBsYXllclJlZiwgQ01UaW1l
IGNtVGltZSwgdm9pZCogY29udGV4dCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9j
aygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldyYXBwZXIq
IHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRleHQpOwogICAgIGlmICgh
c2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpwZXJpb2RpY1RpbWVPYnNl
cnZlckNhbGxiYWNrIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xNjY2LDcgKzE2NjYsNyBAQCB2b2lk
IEFWRldyYXBwZXI6OnByb2Nlc3NOb3RpZmljYXRpb24odm9pCiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8Tm90aWZpY2F0aW9uQ2FsbGJhY2tEYXRhPiBub3RpZmljYXRpb25EYXRhIHsgc3RhdGljX2Nh
c3Q8Tm90aWZpY2F0aW9uQ2FsbGJhY2tEYXRhKj4oY29udGV4dCkgfTsKIAotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7
CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQobm90
aWZpY2F0aW9uRGF0YS0+bV9jb250ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9H
KE1lZGlhLCAiQVZGV3JhcHBlcjo6cHJvY2Vzc05vdGlmaWNhdGlvbiBpbnZva2VkIGZvciBkZWxl
dGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCkp
OwpAQCAtMTcyMSw3ICsxNzIxLDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpub3RpZmljYXRpb25DYWxs
YmFjayhDRgogCiB2b2lkIEFWRldyYXBwZXI6OmxvYWRQbGF5YWJsZUNvbXBsZXRpb25DYWxsYmFj
ayhBVkNGQXNzZXRSZWYsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1hcExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZX
cmFwcGVyKiBzZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChjb250ZXh0KTsKICAg
ICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6bG9hZFBsYXlh
YmxlQ29tcGxldGlvbkNhbGxiYWNrIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xNzQ5LDcgKzE3NDks
NyBAQCB2b2lkIEFWRldyYXBwZXI6OmNoZWNrUGxheWFiaWxpdHkoKQogCiB2b2lkIEFWRldyYXBw
ZXI6OmxvYWRNZXRhZGF0YUNvbXBsZXRpb25DYWxsYmFjayhBVkNGQXNzZXRSZWYsIHZvaWQqIGNv
bnRleHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBl
ckZvckNhbGxiYWNrQ29udGV4dChjb250ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAg
TE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6bG9hZE1ldGFkYXRhQ29tcGxldGlvbkNhbGxiYWNrIGlu
dm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihjb250ZXh0KSk7CkBAIC0xNzY5LDcgKzE3NjksNyBAQCB2b2lkIEFWRldyYXBwZXI6OmJl
Z2luTG9hZGluZ01ldGFkYXRhKCkKIAogdm9pZCBBVkZXcmFwcGVyOjpzZWVrQ29tcGxldGVkQ2Fs
bGJhY2soQVZDRlBsYXllckl0ZW1SZWYsIEJvb2xlYW4gZmluaXNoZWQsIHZvaWQqIGNvbnRleHQp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBlckZvckNh
bGxiYWNrQ29udGV4dChjb250ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1l
ZGlhLCAiQVZGV3JhcHBlcjo6c2Vla0NvbXBsZXRlZENhbGxiYWNrIGludm9rZWQgZm9yIGRlbGV0
ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7
CkBAIC0xODEyLDcgKzE4MTIsNyBAQCB2b2lkIEFWRldyYXBwZXI6OnByb2Nlc3NDdWUodm9pZCog
Y29udGV4CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGVnaWJsZU91dHB1dERhdGE+IGxlZ2libGVP
dXRwdXREYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8TGVnaWJsZU91dHB1dERhdGEqPihjb250ZXh0KSk7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2Fs
bGJhY2tDb250ZXh0KGxlZ2libGVPdXRwdXREYXRhLT5tX2NvbnRleHQpOwogICAgIGlmICghc2Vs
ZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpwcm9jZXNzQ3VlIGludm9rZWQg
Zm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihj
b250ZXh0KSk7CkBAIC0xODI4LDcgKzE4MjgsNyBAQCB2b2lkIEFWRldyYXBwZXI6OnByb2Nlc3ND
dWUodm9pZCogY29udGV4CiB2b2lkIEFWRldyYXBwZXI6OmxlZ2libGVPdXRwdXRDYWxsYmFjayh2
b2lkKiBjb250ZXh0LCBBVkNGUGxheWVySXRlbUxlZ2libGVPdXRwdXRSZWYgbGVnaWJsZU91dHB1
dCwgQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3RyaW5ncywgQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVC
dWZmZXJzLCBDTVRpbWUgaXRlbVRpbWUpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBlckZvckNhbGxi
YWNrQ29udGV4dChjb250ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlh
LCAiQVZGV3JhcHBlcjo6bGVnaWJsZU91dHB1dENhbGxiYWNrIGludm9rZWQgZm9yIGRlbGV0ZWQg
QVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBA
IC0xODY2LDcgKzE4NjYsNyBAQCB2b2lkIEFWRldyYXBwZXI6OnByb2Nlc3NTaG91bGRXYWl0Rm9y
TG9hCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TG9hZFJlcXVlc3REYXRhPiBsb2FkUmVxdWVzdERh
dGEocmVpbnRlcnByZXRfY2FzdDxMb2FkUmVxdWVzdERhdGEqPihjb250ZXh0KSk7CiAKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBM
b2NrKCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250
ZXh0KGxvYWRSZXF1ZXN0RGF0YS0+bV9jb250ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAg
ICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6cHJvY2Vzc1Nob3VsZFdhaXRGb3JMb2FkaW5nT2ZS
ZXNvdXJjZSBpbnZva2VkIGZvciBkZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVycHJldF9j
YXN0PHVpbnRwdHJfdD4oY29udGV4dCkpOwpAQCAtMTkyMiw3ICsxOTIyLDcgQEAgYm9vbCBBVkZX
cmFwcGVyOjpzaG91bGRXYWl0Rm9yTG9hZGluZ09mUgogQm9vbGVhbiBBVkZXcmFwcGVyOjpyZXNv
dXJjZUxvYWRlclNob3VsZFdhaXRGb3JMb2FkaW5nT2ZSZXF1ZXN0ZWRSZXNvdXJjZShBVkNGQXNz
ZXRSZXNvdXJjZUxvYWRlclJlZiByZXNvdXJjZUxvYWRlciwgQVZDRkFzc2V0UmVzb3VyY2VMb2Fk
aW5nUmVxdWVzdFJlZiBsb2FkaW5nUmVxdWVzdCwgdm9pZCAqY29udGV4dCkKIHsKICAgICBBU1NF
UlQoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSAhPSBkaXNwYXRjaF9nZXRfY3VycmVudF9xdWV1
ZSgpKTsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9y
Q2FsbGJhY2tDb250ZXh0KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0co
TWVkaWEsICJBVkZXcmFwcGVyOjpyZXNvdXJjZUxvYWRlclNob3VsZFdhaXRGb3JMb2FkaW5nT2ZS
ZXF1ZXN0ZWRSZXNvdXJjZSBpbnZva2VkIGZvciBkZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFt
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAkocmV2aXNpb24gMTg4
NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFu
ZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw3ICs3
Nyw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6aGEKIHsKICAgICBt
X3NhbXBsZVRpbWVySGFuZGxlci5jYW5jZWwoKTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9zYW1wbGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3NhbXBsZU11
dGV4KTsKICAgICAgICAgbV9wZW5kaW5nU2FtcGxlcy5hcHBlbmQoc2FtcGxlKTsKICAgICB9CiAg
ICAgbV9zYW1wbGVUaW1lckhhbmRsZXIuc2NoZWR1bGUoIltXZWJLaXRdIEluYmFuZFRleHRUcmFj
a1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTYW1wbGUiLCBzdGQ6OmZ1bmN0aW9uPHZv
aWQoKT4oc3RkOjpiaW5kKCZJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlU
cmFja09mU2FtcGxlLCB0aGlzKSkpOwpAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEluYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vCiB7CiAgICAgVmVjdG9yPEdSZWZQdHI8R3N0U2FtcGxl
PiA+IHNhbXBsZXM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fc2FtcGxlTXV0
ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9zYW1wbGVNdXRleCk7CiAgICAgICAgIG1f
cGVuZGluZ1NhbXBsZXMuc3dhcChzYW1wbGVzKTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0
cmVhbWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAkocmV2aXNpb24gMTg4
NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFu
ZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcs
NyBAQCBwcml2YXRlOgogICAgIGd1bG9uZyBtX2V2ZW50UHJvYmU7CiAgICAgVmVjdG9yPEdSZWZQ
dHI8R3N0U2FtcGxlPiA+IG1fcGVuZGluZ1NhbXBsZXM7CiAgICAgU3RyaW5nIG1fc3RyZWFtSWQ7
Ci0gICAgTXV0ZXggbV9zYW1wbGVNdXRleDsKKyAgICBMb2NrIG1fc2FtcGxlTXV0ZXg7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIFRyYWNrUHJpdmF0ZUJh
c2VHU3RyZWFtZXI6OnRhZ3NDaGFuCiAgICAgR1JlZlB0cjxHc3RUYWdMaXN0PiB0YWdzOwogICAg
IGdfb2JqZWN0X2dldChtX3BhZC5nZXQoKSwgInRhZ3MiLCAmdGFncy5vdXRQdHIoKSwgTlVMTCk7
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fdGFnTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2sobV90YWdNdXRleCk7CiAgICAgICAgIG1fdGFncy5zd2FwKHRhZ3MpOwog
ICAgIH0KIApAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
cjo6bm90aWZ5VHIKIAogICAgIEdSZWZQdHI8R3N0VGFnTGlzdD4gdGFnczsKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2sobV90YWdNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
ayhtX3RhZ011dGV4KTsKICAgICAgICAgdGFncy5zd2FwKG1fdGFncyk7CiAgICAgfQogICAgIGlm
ICghdGFncykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIu
aAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
NzMsNyArNzMsNyBAQCBwcml2YXRlOgogICAgIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UgbV9h
Y3RpdmVUaW1lckhhbmRsZXI7CiAgICAgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSBtX3RhZ1Rp
bWVySGFuZGxlcjsKIAotICAgIE11dGV4IG1fdGFnTXV0ZXg7CisgICAgTG9jayBtX3RhZ011dGV4
OwogICAgIEdSZWZQdHI8R3N0VGFnTGlzdD4gbV90YWdzOwogfTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYy5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NCwxNCArODQsMTQgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OnJlcXVlc3RSZQogICAgICAgICBzZXRJc0FjdGl2ZSh0cnVlKTsKICAgICB9CiAKLSAg
ICBNdXRleExvY2tlciBsb2NrKG11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgp
KTsKICAgICBzZXRJc1NjaGVkdWxlZCh0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9p
ZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQoZG91YmxlIG5vd1Nl
Y29uZHMsIGRvdWJsZSBvdXRwdXRUaW1lU2Vjb25kcykKIHsKLSAgICBNdXRleExvY2tlciBsb2Nr
KG11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgpKTsKICAgICBpZiAoIWlzUHJl
dmlvdXNGcmFtZURvbmUoKSkKICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAkocmV2aXNpb24gMTg4NTEwKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxMiwyMSArNTEyLDIxIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjoKIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmFkZExpc3RlbmVyKE1lZGlhUGxheWVyTGlzdGVu
ZXIqIGxpc3RlbmVyKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4TGlzdGVuZXJz
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4TGlzdGVuZXJzKTsKIAogICAgIG1fbGlz
dGVuZXJzLmFkZChsaXN0ZW5lcik7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uOjpyZW1vdmVMaXN0ZW5lcihNZWRpYVBsYXllckxpc3RlbmVyKiBsaXN0ZW5lcikK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7CiAKICAgICBtX2xpc3RlbmVycy5yZW1vdmUo
bGlzdGVuZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6
bm90aWZ5RGVsZXRlZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5l
cnMpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5lcnMpOwogCiAgICAgZm9y
IChIYXNoU2V0PE1lZGlhUGxheWVyTGlzdGVuZXIqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2xp
c3RlbmVycy5iZWdpbigpOyBpdCAhPSBtX2xpc3RlbmVycy5lbmQoKTsgKytpdCkKICAgICAgICAg
KCppdCktPm9uTWVkaWFQbGF5ZXJEZWxldGVkKCk7CkBAIC03MDQsNyArNzA0LDcgQEAgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBNZWRpYVBsYXllclByaQogCiBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6QXN5bmNDYWxsYmFjazo6
SW52b2tlKF9fUlBDX19pbl9vcHQgSU1GQXN5bmNSZXN1bHQgKnBBc3luY1Jlc3VsdCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9t
dXRleCk7CiAKICAgICBpZiAoIW1fbWVkaWFQbGF5ZXIpCiAgICAgICAgIHJldHVybiBTX09LOwpA
QCAtNzE5LDcgKzcxOSw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgTWVkaWFQbGF5ZXJQ
cmkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJh
Y2s6Om9uTWVkaWFQbGF5ZXJEZWxldGVkKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBtX21lZGlhUGxh
eWVyID0gbnVsbHB0cjsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgTWVkaWFQ
bGF5ZXJMaXN0ZW5lcjsKICAgICBIYXNoU2V0PE1lZGlhUGxheWVyTGlzdGVuZXIqPiBtX2xpc3Rl
bmVyczsKLSAgICBNdXRleCBtX211dGV4TGlzdGVuZXJzOworICAgIExvY2sgbV9tdXRleExpc3Rl
bmVyczsKIAogICAgIENPTVB0cjxJTUZNZWRpYVNlc3Npb24+IG1fbWVkaWFTZXNzaW9uOwogICAg
IENPTVB0cjxJTUZTb3VyY2VSZXNvbHZlcj4gbV9zb3VyY2VSZXNvbHZlcjsKQEAgLTE0OSw3ICsx
NDksNyBAQCBwcml2YXRlOgogICAgICAgICBVTE9ORyBtX3JlZkNvdW50OwogICAgICAgICBNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24qIG1fbWVkaWFQbGF5ZXI7CiAgICAgICAgIGJv
b2wgbV9ldmVudDsKLSAgICAgICAgTXV0ZXggbV9tdXRleDsKKyAgICAgICAgTG9jayBtX211dGV4
OwogICAgIH07CiAKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5
VGlsZUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xl
Z2FjeVRpbGVDYWNoZS5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMSw5ICsyMTEs
OSBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fcGVuZGluZ1NjYWxlOwogICAgIGZsb2F0IG1fcGVu
ZGluZ1pvb21lZE91dFNjYWxlOwogCi0gICAgbXV0YWJsZSBNdXRleCBtX3RpbGVNdXRleDsKLSAg
ICBtdXRhYmxlIE11dGV4IG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4OwotICAgIG11dGFibGUgTXV0
ZXggbV9jb250ZW50UmVwbGFjZW1lbnRJbWFnZU11dGV4OworICAgIG11dGFibGUgTG9jayBtX3Rp
bGVNdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9zYXZlZERpc3BsYXlSZWN0TXV0ZXg7CisgICAg
bXV0YWJsZSBMb2NrIG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRleDsKIAogICAgIGJvb2wg
bV90aWxlQ29udHJvbGxlclNob3VsZFVzZUxvd1NjYWxlVGlsZXM7CiB9OwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tCShyZXZpc2lvbiAx
ODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6
OnNldFRpbGVzT3BhcXVlKGJvbwogICAgIGlmIChtX3RpbGVzT3BhcXVlID09IG9wYXF1ZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAKICAgICBtX3RpbGVzT3BhcXVlID0g
b3BhcXVlOwogICAgIG1fem9vbWVkT3V0VGlsZUdyaWQtPnVwZGF0ZVRpbGVPcGFjaXR5KCk7CkBA
IC0xNjAsNyArMTYwLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmRvTGF5b3V0VGlsZXMoKQog
ICAgIGlmIChpc1RpbGVDcmVhdGlvblN1c3BlbmRlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdGlsZU11dGV4KTsKICAgICBMZWdhY3lUaWxlR3JpZCogYWN0aXZlR3JpZCA9IGFjdGl2ZVRp
bGVHcmlkKCk7CiAgICAgLy8gRXZlbiB0aG91Z2ggd2UgYXJlbid0IGFjdHVhbGx5IGNyZWF0aW5n
IHRpbGVzIGluIHRoZSBpbmFjdGl2ZSBncmlkLCB3ZQogICAgIC8vIHN0aWxsIG5lZWQgdG8gZHJv
cCBpbnZhbGlkIHRpbGVzIGluIHJlc3BvbnNlIHRvIGEgbGF5b3V0LgpAQCAtMjAwLDcgKzIwMCw3
IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzZXRDdXJyZW50U2NhbGUoZmwKICAgICBpZiAoIWtl
ZXBzWm9vbWVkT3V0VGlsZXMoKSAmJiAhaXNUaWxlSW52YWxpZGF0aW9uU3VzcGVuZGVkKCkpIHsK
ICAgICAgICAgLy8gVGlsZSBpbnZhbGlkYXRpb24gaXMgbm9ybWFsbHkgc3VzcGVuZGVkIGR1cmlu
ZyB6b29taW5nIGJ5IFVJS2l0IGJ1dCBzb21lIGFwcGxpY2F0aW9ucwogICAgICAgICAvLyB1c2lu
ZyBjdXN0b20gc2Nyb2xsdmlld3MgbWF5IHpvb20gd2l0aG91dCB0cmlnZ2VyaW5nIHRoZSBjYWxs
YmFja3MuIEludmFsaWRhdGUgdGhlIHRpbGVzIGV4cGxpY2l0bHkuCi0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGls
ZU11dGV4KTsKICAgICAgICAgYWN0aXZlVGlsZUdyaWQoKS0+ZHJvcEFsbFRpbGVzKCk7CiAgICAg
ICAgIGFjdGl2ZVRpbGVHcmlkKCktPmNyZWF0ZVRpbGVzKENvdmVyVmlzaWJsZU9ubHkpOwogICAg
IH0KQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6Y29tbWl0U2NhbGVD
aGFuZ2UoCiAgICAgQVNTRVJUKG1fcGVuZGluZ1pvb21lZE91dFNjYWxlIHx8IG1fcGVuZGluZ1Nj
YWxlKTsKICAgICBBU1NFUlQobV90aWxpbmdNb2RlICE9IERpc2FibGVkKTsKICAgICAKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
dGlsZU11dGV4KTsKIAogICAgIGlmIChtX3BlbmRpbmdab29tZWRPdXRTY2FsZSkgewogICAgICAg
ICBtX3pvb21lZE91dFRpbGVHcmlkLT5zZXRTY2FsZShtX3BlbmRpbmdab29tZWRPdXRTY2FsZSk7
CkBAIC0zMTQsNyArMzE0LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmxheW91dFRpbGVzTm93
KCkKICAgICBpZiAobV90aWxpbmdNb2RlID09IFpvb21pbmcpCiAgICAgICAgIG1fdGlsaW5nTW9k
ZSA9IE1pbmltYWw7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICBMZWdhY3lUaWxlR3JpZCogYWN0
aXZlR3JpZCA9IGFjdGl2ZVRpbGVHcmlkKCk7CiAgICAgaWYgKGFjdGl2ZUdyaWQtPmNoZWNrRG9T
aW5nbGVUaWxlTGF5b3V0KCkpIHsKICAgICAgICAgbV90aWxpbmdNb2RlID0gc2F2ZWRUaWxpbmdN
b2RlOwpAQCAtMzI3LDE0ICszMjcsMTQgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmxheW91dFRp
bGVzTm93KCkKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpsYXlvdXRUaWxlc05vd0ZvclJlY3QoY29u
c3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBBU1NFUlQoV2ViVGhyZWFkSXNMb2NrZWRPckRpc2Fi
bGVkKCkpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogCiAgICAgYWN0aXZlVGlsZUdyaWQoKS0+YWRkVGls
ZXNDb3ZlcmluZ1JlY3QocmVjdCk7CiB9CiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVB
bGxOb25WaXNpYmxlVGlsZXMoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRl
eCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIHJlbW92ZUFsbE5v
blZpc2libGVUaWxlc0ludGVybmFsKCk7CiB9CiAKQEAgLTM1Niw3ICszNTYsNyBAQCB2b2lkIExl
Z2FjeVRpbGVDYWNoZTo6cmVtb3ZlQWxsTm9uVmlzaWJsCiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hl
OjpyZW1vdmVBbGxUaWxlcygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgbV96b29tZWRPdXRU
aWxlR3JpZC0+ZHJvcEFsbFRpbGVzKCk7CiAgICAgaWYgKG1fem9vbWVkSW5UaWxlR3JpZCkKICAg
ICAgICAgbV96b29tZWRJblRpbGVHcmlkLT5kcm9wQWxsVGlsZXMoKTsKQEAgLTM2NCw3ICszNjQs
NyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6cmVtb3ZlQWxsVGlsZXMoKQogCiB2b2lkIExlZ2Fj
eVRpbGVDYWNoZTo6cmVtb3ZlRm9yZWdyb3VuZFRpbGVzKCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsK
ICAgICBpZiAoIWtlZXBzWm9vbWVkT3V0VGlsZXMoKSkKICAgICAgICAgbV96b29tZWRPdXRUaWxl
R3JpZC0+ZHJvcEFsbFRpbGVzKCk7CiAgICAgaWYgKG1fem9vbWVkSW5UaWxlR3JpZCkKQEAgLTM3
MywxMyArMzczLDEzIEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVGb3JlZ3JvdW5kVGkK
IAogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldENvbnRlbnRSZXBsYWNlbWVudEltYWdlKFJldGFp
blB0cjxDR0ltYWdlUmVmPiBjb250ZW50UmVwbGFjZW1lbnRJbWFnZSkKIHsKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9jb250ZW50UmVwbGFjZW1lbnRJbWFnZU11dGV4KTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdlTXV0ZXgpOwogICAgIG1fY29udGVu
dFJlcGxhY2VtZW50SW1hZ2UgPSBjb250ZW50UmVwbGFjZW1lbnRJbWFnZTsKIH0KIAogUmV0YWlu
UHRyPENHSW1hZ2VSZWY+IExlZ2FjeVRpbGVDYWNoZTo6Y29udGVudFJlcGxhY2VtZW50SW1hZ2Uo
KSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2NvbnRlbnRSZXBsYWNlbWVudElt
YWdlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY29udGVudFJlcGxhY2VtZW50SW1h
Z2VNdXRleCk7CiAgICAgcmV0dXJuIG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2U7CiB9CiAKQEAg
LTQyNiw3ICs0MjYsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6dGlsZUNyZWF0aW9uVGltZXJG
CiB7CiAgICAgaWYgKGlzVGlsZUNyZWF0aW9uU3VzcGVuZGVkKCkpCiAgICAgICAgIHJldHVybjsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fdGlsZU11dGV4KTsKICAgICBjcmVhdGVUaWxlc0luQWN0aXZlR3JpZChDb3ZlclNwZWN1
bGF0aXZlKTsKIH0KIApAQCAtNjIwLDcgKzYyMCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpz
Y2hlZHVsZUxheWVyRmx1c2gKIAogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldE5lZWRzRGlzcGxh
eUluUmVjdChjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Nh
dmVkRGlzcGxheVJlY3RNdXRleCk7CiAgICAgYm9vbCBhZGRlZEZpcnN0UmVjdCA9IG1fc2F2ZWRE
aXNwbGF5UmVjdHMuaXNFbXB0eSgpOwogICAgIG1fc2F2ZWREaXNwbGF5UmVjdHMuYXBwZW5kKGRp
cnR5UmVjdCk7CiAgICAgaWYgKCFhZGRlZEZpcnN0UmVjdCkKQEAgLTY5Miw3ICs2OTIsNyBAQCB2
b2lkIExlZ2FjeVRpbGVDYWNoZTo6dXBkYXRlVGlsaW5nTW9kZSgpCiAgICAgICAgIGlmIChtX3Rp
bGluZ01vZGUgPT0gRGlzYWJsZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV90aWxlTXV0ZXgpOwogICAgICAgICBjcmVhdGVUaWxlc0luQWN0aXZlR3JpZChDb3ZlclZpc2li
bGVPbmx5KTsKIAogICAgICAgICBpZiAoIW1fc2F2ZWREaXNwbGF5UmVjdHMuaXNFbXB0eSgpKQpA
QCAtNzEwLDcgKzcxMCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzZXRUaWxpbmdNb2RlKFRp
bGkKICAgICBpZiAoKG1fcGVuZGluZ1pvb21lZE91dFNjYWxlIHx8IG1fcGVuZGluZ1NjYWxlKSAm
JiBtX3RpbGluZ01vZGUgIT0gRGlzYWJsZWQpCiAgICAgICAgIGNvbW1pdFNjYWxlQ2hhbmdlKCk7
CiAgICAgZWxzZSBpZiAod2FzWm9vbWluZykgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90aWxlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAg
ICAgICAgIGJyaW5nQWN0aXZlVGlsZUdyaWRUb0Zyb250KCk7CiAgICAgfQogCkBAIC03NTMsNyAr
NzUzLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmRvUGVuZGluZ1JlcGFpbnRzKAogICAgICAg
ICByZXR1cm47CiAgICAgaWYgKGlzVGlsZUludmFsaWRhdGlvblN1c3BlbmRlZCgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgZmx1c2hTYXZlZERpc3BsYXlSZWN0cygp
OwogfQogCkBAIC03NjQsNyArNzY0LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmZsdXNoU2F2
ZWREaXNwbGF5UgogCiAgICAgVmVjdG9yPEludFJlY3Q+IHJlY3RzOwogICAgIHsKLSAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4KTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9zYXZlZERpc3BsYXlSZWN0TXV0ZXgpOwogICAgICAgICBtX3NhdmVk
RGlzcGxheVJlY3RzLnN3YXAocmVjdHMpOwogICAgIH0KICAgICBzaXplX3Qgc2l6ZSA9IHJlY3Rz
LnNpemUoKTsKQEAgLTc5Miw3ICs3OTIsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6cHJlcGFy
ZVRvRHJhdygpCiAgICAgW1ttX3dpbmRvdyBjb250ZW50Vmlld10gdmlld1dpbGxEcmF3XTsKIAog
ICAgIGlmICghbV9zYXZlZERpc3BsYXlSZWN0cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90
aWxlTXV0ZXgpOwogICAgICAgICBmbHVzaFNhdmVkRGlzcGxheVJlY3RzKCk7CiAgICAgfQogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVy
UG9vbC5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
TGVnYWN5VGlsZUxheWVyUG9vbC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3IEBAIHBy
aXZhdGU6CiAgICAgVmVjdG9yPEludFNpemU+IG1fc2l6ZXNJblBydW5lT3JkZXI7CiAgICAgdW5z
aWduZWQgbV90b3RhbEJ5dGVzOwogICAgIHVuc2lnbmVkIG1fY2FwYWNpdHk7Ci0gICAgTXV0ZXgg
bV9sYXllclBvb2xNdXRleDsKKyAgICBMb2NrIG1fbGF5ZXJQb29sTXV0ZXg7CiAKICAgICBkb3Vi
bGUgbV9sYXN0QWRkVGltZTsKICAgICBib29sIG1fbmVlZHNQcnVuZTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tCShyZXZp
c2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxh
eWVyUG9vbC5tbQkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCB2b2lkIExlZ2FjeVRp
bGVMYXllclBvb2w6OmFkZExheWVyKGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9sYXllclBvb2xNdXRleCk7CiAgICAgbGlzdE9mTGF5ZXJzV2l0aFNpemUobGF5ZXJT
aXplKS5wcmVwZW5kKGxheWVyKTsKICAgICBtX3RvdGFsQnl0ZXMgKz0gYnl0ZXNCYWNraW5nTGF5
ZXJXaXRoUGl4ZWxTaXplKGxheWVyU2l6ZSk7CiAKQEAgLTk2LDcgKzk2LDcgQEAgUmV0YWluUHRy
PExlZ2FjeVRpbGVMYXllcj4gTGVnYWN5VGlsZUxheQogewogICAgIGlmICghY2FuUmV1c2VMYXll
cldpdGhTaXplKHNpemUpKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX2xheWVyUG9vbE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xheWVyUG9v
bE11dGV4KTsKICAgICBMYXllckxpc3QmIHJldXNlTGlzdCA9IGxpc3RPZkxheWVyc1dpdGhTaXpl
KHNpemUsIE1hcmtBc1VzZWQpOwogICAgIGlmIChyZXVzZUxpc3QuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gbmlsOwpAQCAtMTA2LDcgKzEwNiw3IEBAIFJldGFpblB0cjxMZWdhY3lUaWxlTGF5
ZXI+IExlZ2FjeVRpbGVMYXkKIAogdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpzZXRDYXBhY2l0
eSh1bnNpZ25lZCBjYXBhY2l0eSkKIHsKLSAgICBNdXRleExvY2tlciByZXVzZUxvY2tlcihtX2xh
eWVyUG9vbE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIHJldXNlTG9ja2VyKG1fbGF5ZXJQb29sTXV0
ZXgpOwogICAgIGlmIChjYXBhY2l0eSA8IG1fY2FwYWNpdHkpCiAgICAgICAgIHNjaGVkdWxlUHJ1
bmUoKTsKICAgICBtX2NhcGFjaXR5ID0gY2FwYWNpdHk7CkBAIC0xMzYsNyArMTM2LDcgQEAgdm9p
ZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpzY2hlZHVsZVBydW5lKAogCiB2b2lkIExlZ2FjeVRpbGVM
YXllclBvb2w6OnBydW5lKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sYXllclBvb2xN
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7CiAgICAgQVNT
RVJUKG1fbmVlZHNQcnVuZSk7CiAgICAgbV9uZWVkc1BydW5lID0gZmFsc2U7CiAgICAgdW5zaWdu
ZWQgc2hyaW5rVG8gPSBkZWNheWVkQ2FwYWNpdHkoKTsKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lk
IExlZ2FjeVRpbGVMYXllclBvb2w6OnBydW5lKCkKIAogdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29s
OjpkcmFpbigpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgcmV1c2VMb2NrZXIobV9sYXllclBvb2xNdXRl
eCk7CisgICAgTG9ja0hvbGRlciByZXVzZUxvY2tlcihtX2xheWVyUG9vbE11dGV4KTsKICAgICBt
X3JldXNlTGlzdHMuY2xlYXIoKTsKICAgICBtX3NpemVzSW5QcnVuZU9yZGVyLmNsZWFyKCk7CiAg
ICAgbV90b3RhbEJ5dGVzID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCShyZXZpc2lvbiAxODg1MTApCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBDdXJsRG93bmxvYWRNYW5hZ2VyOjp+Q3Vy
bERvd25sb2FkTWFuYWdlCiAKIGJvb2wgQ3VybERvd25sb2FkTWFuYWdlcjo6YWRkKENVUkwqIGN1
cmxIYW5kbGUpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgbV9wZW5kaW5nSGFuZGxlTGlzdC5hcHBlbmQo
Y3VybEhhbmRsZSk7CiAgICAgc3RhcnRUaHJlYWRJZk5lZWRlZCgpOwpAQCAtNzAsNyArNzAsNyBA
QCBib29sIEN1cmxEb3dubG9hZE1hbmFnZXI6OmFkZChDVVJMKiBjdXJsCiAKIGJvb2wgQ3VybERv
d25sb2FkTWFuYWdlcjo6cmVtb3ZlKENVUkwqIGN1cmxIYW5kbGUpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAg
ICAgbV9yZW1vdmVkSGFuZGxlTGlzdC5hcHBlbmQoY3VybEhhbmRsZSk7CiAKQEAgLTc5LDEzICs3
OSwxMyBAQCBib29sIEN1cmxEb3dubG9hZE1hbmFnZXI6OnJlbW92ZShDVVJMKiBjCiAKIGludCBD
dXJsRG93bmxvYWRNYW5hZ2VyOjpnZXRBY3RpdmVEb3dubG9hZENvdW50KCkgY29uc3QKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9t
dXRleCk7CiAgICAgcmV0dXJuIG1fYWN0aXZlSGFuZGxlTGlzdC5zaXplKCk7CiB9CiAKIGludCBD
dXJsRG93bmxvYWRNYW5hZ2VyOjpnZXRQZW5kaW5nRG93bmxvYWRDb3VudCgpIGNvbnN0CiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bXV0ZXgpOwogICAgIHJldHVybiBtX3BlbmRpbmdIYW5kbGVMaXN0LnNpemUoKTsKIH0KIApAQCAt
MTExLDcgKzExMSw3IEBAIHZvaWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RvcFRocmVhZCgpCiAK
IHZvaWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RvcFRocmVhZElmSWRsZSgpCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgp
OwogCiAgICAgaWYgKCFnZXRBY3RpdmVEb3dubG9hZENvdW50KCkgJiYgIWdldFBlbmRpbmdEb3du
bG9hZENvdW50KCkpCiAgICAgICAgIHNldFJ1blRocmVhZChmYWxzZSk7CkBAIC0xMTksNyArMTE5
LDcgQEAgdm9pZCBDdXJsRG93bmxvYWRNYW5hZ2VyOjpzdG9wVGhyZWFkSWZJZAogCiB2b2lkIEN1
cmxEb3dubG9hZE1hbmFnZXI6OnVwZGF0ZUhhbmRsZUxpc3QoKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAg
IC8vIFJlbW92ZSBjdXJsIGVhc3kgaGFuZGxlcyBmcm9tIG11bHRpIGxpc3QgCiAgICAgaW50IHNp
emUgPSBtX3JlbW92ZWRIYW5kbGVMaXN0LnNpemUoKTsKQEAgLTI0NSw3ICsyNDUsNyBAQCBDdXJs
RG93bmxvYWQ6OkN1cmxEb3dubG9hZCgpCiAKIEN1cmxEb3dubG9hZDo6fkN1cmxEb3dubG9hZCgp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKG1fdXJsKQogICAgICAgICBmYXN0RnJlZShtX3VybCk7
CkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmluaXQoQ3VybERvd25sb2Fk
TGlzdAogICAgIGlmICghbGlzdGVuZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAog
ICAgIG1fY3VybEhhbmRsZSA9IGN1cmxfZWFzeV9pbml0KCk7CiAKQEAgLTI5NSw3ICsyOTUsNyBA
QCB2b2lkIEN1cmxEb3dubG9hZDo6aW5pdChDdXJsRG93bmxvYWRMaXN0CiAgICAgaWYgKCFsaXN0
ZW5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgVVJMIHVybChQYXJzZWRV
UkxTdHJpbmcsIHJlcXVlc3QudXJsKCkpOwogCkBAIC0zMTcsMjUgKzMxNywyNSBAQCBib29sIEN1
cmxEb3dubG9hZDo6Y2FuY2VsKCkKIAogU3RyaW5nIEN1cmxEb3dubG9hZDo6Z2V0VGVtcFBhdGgo
KSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX211dGV4KTsKICAgICByZXR1cm4gbV90ZW1wUGF0aDsKIH0KIAogU3RyaW5n
IEN1cmxEb3dubG9hZDo6Z2V0VXJsKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIFN0
cmluZyhtX3VybCk7CiB9CiAKIFJlc291cmNlUmVzcG9uc2UgQ3VybERvd25sb2FkOjpnZXRSZXNw
b25zZSgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIHJldHVybiBtX3Jlc3BvbnNlOwogfQogCiB2
b2lkIEN1cmxEb3dubG9hZDo6Y2xvc2VGaWxlKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBpZiAobV90
ZW1wSGFuZGxlICE9IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpIHsKICAgICAgICAgV2ViQ29y
ZTo6Y2xvc2VGaWxlKG1fdGVtcEhhbmRsZSk7CkBAIC0zOTAsNyArMzkwLDcgQEAgdm9pZCBDdXJs
RG93bmxvYWQ6OmFkZEhlYWRlcnMoY29uc3QgUmVzbwogCiB2b2lkIEN1cmxEb3dubG9hZDo6ZGlk
UmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRlcikKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBp
ZiAoaGVhZGVyID09ICJcclxuIiB8fCBoZWFkZXIgPT0gIlxuIikgewogCkBAIC00MzAsNyArNDMw
LDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVIZWFkZXIoY29ucwogCiB2b2lkIEN1
cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEodm9pZCogZGF0YSwgaW50IHNpemUpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0
ZXgpOwogCiAgICAgUmVmUHRyPEN1cmxEb3dubG9hZD4gcHJvdGVjdGVkRG93bmxvYWQodGhpcyk7
CiAKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIEN1cmxEb3dubG9hZDo6ZGlkRmluaXNoKCkKIAog
dm9pZCBDdXJsRG93bmxvYWQ6OmRpZEZhaWwoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIGNsb3NlRmls
ZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERv
d25sb2FkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0N1cmxEb3dubG9hZC5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTcz
LDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8Q1VSTCo+IG1fcGVuZGluZ0hhbmRsZUxp
c3Q7CiAgICAgVmVjdG9yPENVUkwqPiBtX2FjdGl2ZUhhbmRsZUxpc3Q7CiAgICAgVmVjdG9yPENV
UkwqPiBtX3JlbW92ZWRIYW5kbGVMaXN0OwotICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKKyAg
ICBtdXRhYmxlIExvY2sgbV9tdXRleDsKICAgICBib29sIG1fcnVuVGhyZWFkOwogfTsKIApAQCAt
MTQwLDcgKzE0MCw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UGxhdGZvcm1GaWxlSGFuZGxl
IG1fdGVtcEhhbmRsZTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7
CiAgICAgYm9vbCBtX2RlbGV0ZXNGaWxlVXBvbkZhaWx1cmU7Ci0gICAgbXV0YWJsZSBNdXRleCBt
X211dGV4OworICAgIG11dGFibGUgTG9jayBtX211dGV4OwogICAgIEN1cmxEb3dubG9hZExpc3Rl
bmVyICptX2xpc3RlbmVyOwogCiAgICAgc3RhdGljIEN1cmxEb3dubG9hZE1hbmFnZXIgbV9kb3du
bG9hZE1hbmFnZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
UmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAkocmV2aXNpb24g
MTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMywxMCArMTMzLDExIEBAIHN0
YXRpYyBjaGFyKiBjb29raWVKYXJQYXRoKCkKICNlbmRpZgogfQogCi1zdGF0aWMgTXV0ZXgqIHNo
YXJlZFJlc291cmNlTXV0ZXgoY3VybF9sb2NrX2RhdGEgZGF0YSkgewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgY29va2llTXV0ZXgsICgpKTsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIGRuc011dGV4LCAoKSk7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBzaGFyZU11dGV4LCAoKSk7CitzdGF0aWMg
TG9jayogc2hhcmVkUmVzb3VyY2VNdXRleChjdXJsX2xvY2tfZGF0YSBkYXRhKQoreworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NrLCBjb29raWVNdXRleCwgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NrLCBkbnNNdXRleCwgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NrLCBzaGFyZU11dGV4LCAoKSk7CiAK
ICAgICBzd2l0Y2ggKGRhdGEpIHsKICAgICAgICAgY2FzZSBDVVJMX0xPQ0tfREFUQV9DT09LSUU6
CkBAIC0xOTAsMTMgKzE5MSwxMyBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVXZWJUaW1pbmdJbmZv
cm1hdGlvCiAvLyBjYWNoZS4KIHN0YXRpYyB2b2lkIGN1cmxfbG9ja19jYWxsYmFjayhDVVJMKiAv
KiBoYW5kbGUgKi8sIGN1cmxfbG9ja19kYXRhIGRhdGEsIGN1cmxfbG9ja19hY2Nlc3MgLyogYWNj
ZXNzICovLCB2b2lkKiAvKiB1c2VyUHRyICovKQogewotICAgIGlmIChNdXRleCogbXV0ZXggPSBz
aGFyZWRSZXNvdXJjZU11dGV4KGRhdGEpKQorICAgIGlmIChMb2NrKiBtdXRleCA9IHNoYXJlZFJl
c291cmNlTXV0ZXgoZGF0YSkpCiAgICAgICAgIG11dGV4LT5sb2NrKCk7CiB9CiAKIHN0YXRpYyB2
b2lkIGN1cmxfdW5sb2NrX2NhbGxiYWNrKENVUkwqIC8qIGhhbmRsZSAqLywgY3VybF9sb2NrX2Rh
dGEgZGF0YSwgdm9pZCogLyogdXNlclB0ciAqLykKIHsKLSAgICBpZiAoTXV0ZXgqIG11dGV4ID0g
c2hhcmVkUmVzb3VyY2VNdXRleChkYXRhKSkKKyAgICBpZiAoTG9jayogbXV0ZXggPSBzaGFyZWRS
ZXNvdXJjZU11dGV4KGRhdGEpKQogICAgICAgICBtdXRleC0+dW5sb2NrKCk7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0J
KHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9z
L1F1aWNrTG9vay5tbQkod29ya2luZyBjb3B5KQpAQCAtODUsOSArODUsOSBAQCBOU0RpY3Rpb25h
cnkgKldlYkNvcmU6OlFMRGlyZWN0b3J5QXR0cmliCiAgICAgcmV0dXJuIGRpY3Rpb25hcnk7CiB9
CiAKLXN0YXRpYyBNdXRleCYgcWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkKK3N0
YXRpYyBMb2NrJiBxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0ZXg7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPExvY2s+IG11dGV4OwogICAgIHJldHVybiBtdXRleDsKIH0KIApAQCAtMTA3LDcgKzEwNyw3
IEBAIHZvaWQgV2ViQ29yZTo6YWRkUUxQcmV2aWV3Q29udmVydGVyV2l0aEYKIHsKICAgICBBU1NF
UlQodXJsKTsKICAgICBBU1NFUlQoY29udmVydGVyKTsKLSAgICBNdXRleExvY2tlciBsb2NrKHFs
UHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2so
cWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOwogICAgIFtRTFByZXZpZXdDb252
ZXJ0ZXJEaWN0aW9uYXJ5KCkgc2V0T2JqZWN0OmNvbnZlcnRlciBmb3JLZXk6dXJsXTsKICAgICBb
UUxDb250ZW50RGljdGlvbmFyeSgpIHNldE9iamVjdDooZmlsZU5hbWUgPyBmaWxlTmFtZSA6IEAi
IikgZm9yS2V5OnVybF07CiB9CkBAIC0xMjEsNyArMTIxLDcgQEAgTlNTdHJpbmcgKldlYkNvcmU6
OnFsUHJldmlld0NvbnZlcnRlclVUSQogewogICAgIGlkIGNvbnZlcnRlciA9IG5pbDsKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11
dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlv
bmFyeU11dGV4KCkpOwogICAgICAgICBjb252ZXJ0ZXIgPSBbUUxQcmV2aWV3Q29udmVydGVyRGlj
dGlvbmFyeSgpIG9iamVjdEZvcktleTp1cmxdOwogICAgIH0KICAgICBpZiAoIWNvbnZlcnRlcikK
QEAgLTEzMSw3ICsxMzEsNyBAQCBOU1N0cmluZyAqV2ViQ29yZTo6cWxQcmV2aWV3Q29udmVydGVy
VVRJCiAKIHZvaWQgV2ViQ29yZTo6cmVtb3ZlUUxQcmV2aWV3Q29udmVydGVyRm9yVVJMKE5TVVJM
ICp1cmwpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9u
YXJ5TXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rp
b25hcnlNdXRleCgpKTsKICAgICBbUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgpIHJlbW92
ZU9iamVjdEZvcktleTp1cmxdOwogCiAgICAgLy8gRGVsZXRlIHRoZSBmaWxlIHdoZW4gd2UgcmVt
b3ZlIHRoZSBwcmV2aWV3IGNvbnZlcnRlcgpAQCAtMTY2LDcgKzE2Niw3IEBAIGNvbnN0IFVSTCBX
ZWJDb3JlOjpzYWZlUUxVUkxGb3JEb2N1bWVudFUKICAgICBpZCBjb252ZXJ0ZXIgPSBuaWw7CiAg
ICAgTlNVUkwgKm5zRG9jdW1lbnRVUkwgPSBkb2N1bWVudFVSTDsKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkp
OwogICAgICAgICBjb252ZXJ0ZXIgPSBbUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgpIG9i
amVjdEZvcktleTpuc0RvY3VtZW50VVJMXTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAkocmV2aXNpb24gMTg4NTEwKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OmNsb3NlKCkK
ICAgICAgICAgLy8gQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX29wZW5pbmdUaHJlYWQpOwog
ICAgICAgICBzcWxpdGUzKiBkYiA9IG1fZGI7CiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlQ2xvc2luZ011dGV4KTsKKyAgICAgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VDbG9zaW5nTXV0ZXgpOwogICAgICAgICAgICAgbV9kYiA9
IDA7CiAgICAgICAgIH0KICAgICAgICAgc3FsaXRlM19jbG9zZShkYik7CkBAIC0xNjAsNyArMTYw
LDcgQEAgaW50NjRfdCBTUUxpdGVEYXRhYmFzZTo6bWF4aW11bVNpemUoKQogICAgIGludDY0X3Qg
bWF4UGFnZUNvdW50ID0gMDsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
YXV0aG9yaXplckxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJM
b2NrKTsKICAgICAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CiAgICAgICAgIFNRTGl0ZVN0
YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsIEFTQ0lJTGl0ZXJhbCgiUFJBR01BIG1heF9wYWdlX2Nv
dW50IikpOwogICAgICAgICBtYXhQYWdlQ291bnQgPSBzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50NjQo
MCk7CkBAIC0xODAsNyArMTgwLDcgQEAgdm9pZCBTUUxpdGVEYXRhYmFzZTo6c2V0TWF4aW11bVNp
emUoaW50NgogICAgIEFTU0VSVChjdXJyZW50UGFnZVNpemUgfHwgIW1fZGIpOwogICAgIGludDY0
X3QgbmV3TWF4UGFnZUNvdW50ID0gY3VycmVudFBhZ2VTaXplID8gc2l6ZSAvIGN1cnJlbnRQYWdl
U2l6ZSA6IDA7CiAgICAgCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2sp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwogICAgIGVuYWJsZUF1
dGhvcml6ZXIoZmFsc2UpOwogCiAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudCgqdGhpcywg
IlBSQUdNQSBtYXhfcGFnZV9jb3VudCA9ICIgKyBTdHJpbmc6Om51bWJlcihuZXdNYXhQYWdlQ291
bnQpKTsKQEAgLTE5Nyw3ICsxOTcsNyBAQCBpbnQgU1FMaXRlRGF0YWJhc2U6OnBhZ2VTaXplKCkK
ICAgICAvLyBTaW5jZSB0aGUgcGFnZSBzaXplIG9mIGEgZGF0YWJhc2UgaXMgbG9ja2VkIGluIGF0
IGNyZWF0aW9uIGFuZCB0aGVyZWZvcmUgY2Fubm90IGJlIGR5bmFtaWMsIAogICAgIC8vIHdlIGNh
biBjYWNoZSB0aGUgdmFsdWUgZm9yIGZ1dHVyZSB1c2UKICAgICBpZiAobV9wYWdlU2l6ZSA9PSAt
MSkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwogICAgICAgICBlbmFibGVB
dXRob3JpemVyKGZhbHNlKTsKICAgICAgICAgCiAgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0
ZW1lbnQoKnRoaXMsIEFTQ0lJTGl0ZXJhbCgiUFJBR01BIHBhZ2Vfc2l6ZSIpKTsKQEAgLTIxNCw3
ICsyMTQsNyBAQCBpbnQ2NF90IFNRTGl0ZURhdGFiYXNlOjpmcmVlU3BhY2VTaXplKCkKICAgICBp
bnQ2NF90IGZyZWVsaXN0Q291bnQgPSAwOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXV0
aG9yaXplckxvY2spOwogICAgICAgICBlbmFibGVBdXRob3JpemVyKGZhbHNlKTsKICAgICAgICAg
Ly8gTm90ZTogZnJlZWxpc3RfY291bnQgd2FzIGFkZGVkIGluIFNRTGl0ZSAzLjQuMS4KICAgICAg
ICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudCgqdGhpcywgQVNDSUlMaXRlcmFsKCJQUkFHTUEg
ZnJlZWxpc3RfY291bnQiKSk7CkBAIC0yMzAsNyArMjMwLDcgQEAgaW50NjRfdCBTUUxpdGVEYXRh
YmFzZTo6dG90YWxTaXplKCkKICAgICBpbnQ2NF90IHBhZ2VDb3VudCA9IDA7CiAKICAgICB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAgICAgICAgIGVuYWJsZUF1dGhvcml6
ZXIoZmFsc2UpOwogICAgICAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KCp0aGlzLCBBU0NJ
SUxpdGVyYWwoIlBSQUdNQSBwYWdlX2NvdW50IikpOwogICAgICAgICBwYWdlQ291bnQgPSBzdGF0
ZW1lbnQuZ2V0Q29sdW1uSW50NjQoMCk7CkBAIC0zMDksNyArMzA5LDcgQEAgaW50IFNRTGl0ZURh
dGFiYXNlOjpydW5WYWN1dW1Db21tYW5kKCkKIAogaW50IFNRTGl0ZURhdGFiYXNlOjpydW5JbmNy
ZW1lbnRhbFZhY3V1bUNvbW1hbmQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhv
cml6ZXJMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAg
ICBlbmFibGVBdXRob3JpemVyKGZhbHNlKTsKIAogICAgIGlmICghZXhlY3V0ZUNvbW1hbmQoQVND
SUlMaXRlcmFsKCJQUkFHTUEgaW5jcmVtZW50YWxfdmFjdXVtIikpKQpAQCAtNDUwLDcgKzQ1MCw3
IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OnNldEF1dGhvcml6ZXIoUGFzc1IKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKIAogICAgIG1fYXV0aG9y
aXplciA9IGF1dGg7CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FM
aXRlRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwv
U1FMaXRlRGF0YWJhc2UuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8c3FsaXRlMy5oPgorI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTEw
Niw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzZXRBdXRob3JpemVyKFBhc3NS
ZWZQdHI8RGF0YWJhc2VBdXRob3JpemVyPik7CiAKLSAgICBNdXRleCYgZGF0YWJhc2VNdXRleCgp
IHsgcmV0dXJuIG1fbG9ja2luZ011dGV4OyB9CisgICAgTG9jayYgZGF0YWJhc2VNdXRleCgpIHsg
cmV0dXJuIG1fbG9ja2luZ011dGV4OyB9CiAgICAgYm9vbCBpc0F1dG9Db21taXRPbigpIGNvbnN0
OwogCiAgICAgLy8gVGhlIFNRTGl0ZSBBVVRPX1ZBQ1VVTSBwcmFnbWEgY2FuIGJlIGVpdGhlciBO
T05FLCBGVUxMLCBvciBJTkNSRU1FTlRBTC4KQEAgLTE0NywxMyArMTQ4LDEzIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzczsKICAgICBib29sIG1fc2hhcmFibGU7
CiAgICAgCi0gICAgTXV0ZXggbV9hdXRob3JpemVyTG9jazsKKyAgICBMb2NrIG1fYXV0aG9yaXpl
ckxvY2s7CiAgICAgUmVmUHRyPERhdGFiYXNlQXV0aG9yaXplcj4gbV9hdXRob3JpemVyOwogCi0g
ICAgTXV0ZXggbV9sb2NraW5nTXV0ZXg7CisgICAgTG9jayBtX2xvY2tpbmdNdXRleDsKICAgICBU
aHJlYWRJZGVudGlmaWVyIG1fb3BlbmluZ1RocmVhZDsKIAotICAgIE11dGV4IG1fZGF0YWJhc2VD
bG9zaW5nTXV0ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlQ2xvc2luZ011dGV4OwogCiAgICAgaW50
IG1fb3BlbkVycm9yOwogICAgIENTdHJpbmcgbV9vcGVuRXJyb3JNZXNzYWdlOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHAJKHJldmlz
aW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIGludCBTUUxpdGVTdGF0ZW1l
bnQ6OnByZXBhcmUoKQogewogICAgIEFTU0VSVCghbV9pc1ByZXBhcmVkKTsKIAotICAgIE11dGV4
TG9ja2VyIGRhdGFiYXNlTG9jayhtX2RhdGFiYXNlLmRhdGFiYXNlTXV0ZXgoKSk7CisgICAgTG9j
a0hvbGRlciBkYXRhYmFzZUxvY2sobV9kYXRhYmFzZS5kYXRhYmFzZU11dGV4KCkpOwogCiAgICAg
Q1N0cmluZyBxdWVyeSA9IG1fcXVlcnkuc3RyaXBXaGl0ZVNwYWNlKCkudXRmOCgpOwogICAgIApA
QCAtODYsNyArODYsNyBAQCBpbnQgU1FMaXRlU3RhdGVtZW50OjpwcmVwYXJlKCkKIAogaW50IFNR
TGl0ZVN0YXRlbWVudDo6c3RlcCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgZGF0YWJhc2VMb2NrKG1f
ZGF0YWJhc2UuZGF0YWJhc2VNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGRhdGFiYXNlTG9jayht
X2RhdGFiYXNlLmRhdGFiYXNlTXV0ZXgoKSk7CiAKICAgICBpZiAoIW1fc3RhdGVtZW50KQogICAg
ICAgICByZXR1cm4gU1FMSVRFX09LOwpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIsNyArMTIyLDcgQEAgV29ya2Vy
VGhyZWFkOjp+V29ya2VyVGhyZWFkKCkKIGJvb2wgV29ya2VyVGhyZWFkOjpzdGFydCgpCiB7CiAg
ICAgLy8gTXV0ZXggcHJvdGVjdGlvbiBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoYXQgbV90aHJl
YWRJRCBpcyBpbml0aWFsaXplZCB3aGVuIHRoZSB0aHJlYWQgc3RhcnRzLgotICAgIE11dGV4TG9j
a2VyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV90
aHJlYWRDcmVhdGlvbk11dGV4KTsKIAogICAgIGlmIChtX3RocmVhZElEKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFdvcmtlclRocmVhZDo6d29ya2VyVGhy
ZWFkKCkKICNlbmRpZgogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fdGhyZWFk
Q3JlYXRpb25NdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOwogICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlID0gY3JlYXRlV29ya2VyR2xvYmFs
U2NvcGUobV9zdGFydHVwRGF0YS0+bV9zY3JpcHRVUkwsIG1fc3RhcnR1cERhdGEtPm1fdXNlckFn
ZW50LCBtX3N0YXJ0dXBEYXRhLT5tX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9zdGFydHVwRGF0
YS0+bV9jb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBtX3N0YXJ0dXBEYXRhLT5tX3RvcE9yaWdp
bi5yZWxlYXNlKCkpOwogCiAgICAgICAgIGlmIChtX3J1bkxvb3AudGVybWluYXRlZCgpKSB7CkBA
IC0xODksNyArMTg5LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCiB2b2lk
IFdvcmtlclRocmVhZDo6c3RvcCgpCiB7CiAgICAgLy8gTXV0ZXggcHJvdGVjdGlvbiBpcyBuZWNl
c3NhcnkgYmVjYXVzZSBzdG9wKCkgY2FuIGJlIGNhbGxlZCBiZWZvcmUgdGhlIGNvbnRleHQgaXMg
ZnVsbHkgY3JlYXRlZC4KLSAgICBNdXRleExvY2tlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRl
eCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CiAKICAgICAv
LyBFbnN1cmUgdGhhdCB0YXNrcyBhcmUgYmVpbmcgaGFuZGxlZCBieSB0aHJlYWQgZXZlbnQgbG9v
cC4gSWYgc2NyaXB0IGV4ZWN1dGlvbiB3ZXJlbid0IGZvcmJpZGRlbiwgYSB3aGlsZSgxKSBsb29w
IGluIEpTIGNvdWxkIGtlZXAgdGhlIHRocmVhZCBhbGl2ZSBmb3JldmVyLgogICAgIGlmIChtX3dv
cmtlckdsb2JhbFNjb3BlKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBXb3JrZXJSZXBvcnRpbmdQcm94eSYgbV93b3JrZXJSZXBvcnRpbmdQcm94eTsK
IAogICAgICAgICBSZWZQdHI8V29ya2VyR2xvYmFsU2NvcGU+IG1fd29ya2VyR2xvYmFsU2NvcGU7
Ci0gICAgICAgIE11dGV4IG1fdGhyZWFkQ3JlYXRpb25NdXRleDsKKyAgICAgICAgTG9jayBtX3Ro
cmVhZENyZWF0aW9uTXV0ZXg7CiAKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlclRocmVh
ZFN0YXJ0dXBEYXRhPiBtX3N0YXJ0dXBEYXRhOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
ODg1NDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSw1OSBAQAorMjAxNS0wOC0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgor
CisgICAgICAgIFJlcGxhY2UgYWxsIHJlbWFpbmluZyB1c2VzIG9mIFdURjo6TXV0ZXggd2l0aCBX
VEY6OkxvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0ODA4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkRhdGFiYXNlUHJvY2Vzczo6cG9zdERhdGFiYXNlVGFzayk6CisgICAgICAgIChXZWJLaXQ6OkRh
dGFiYXNlUHJvY2Vzczo6cGVyZm9ybU5leHREYXRhYmFzZVRhc2spOgorICAgICAgICAqIERhdGFi
YXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VW5pcXVl
SURCRGF0YWJhc2U6OnNodXRkb3duKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJh
c2U6OnBvc3RNYWluVGhyZWFkVGFzayk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpwZXJmb3JtTmV4dE1haW5UaHJlYWRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVl
SURCRGF0YWJhc2U6OnBvc3REYXRhYmFzZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJ
REJEYXRhYmFzZTo6cGVyZm9ybU5leHREYXRhYmFzZVRhc2spOgorICAgICAgICAqIERhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaDoKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRTeW5j
TWVzc2FnZSk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZUZyb21T
ZWNvbmRhcnlUaHJlYWQpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1Jl
cGx5KToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nU3luY1JlcGx5
KToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAg
ICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6YXBwZW5kVXBkYXRlKToKKyAgICAgICAgKiBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAg
ICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhy
ZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9y
OjpjcmVhdGVDb21wb3NpdGluZ1RocmVhZCk6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29t
cG9zaXRvcjo6cnVuQ29tcG9zaXRpbmdUaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRl
ZENvbXBvc2l0b3I6OnRlcm1pbmF0ZUNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAgKiBTaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3Np
dG9yLmg6CisgICAgICAgICogU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1
c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Qcm90
b2NvbE1hbmFnZXI6OmFkZEN1c3RvbVByb3RvY29sKToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyOjpyZW1vdmVDdXN0b21Qcm90b2NvbCk6CisgICAgICAgIChXZWJLaXQ6
OkN1c3RvbVByb3RvY29sTWFuYWdlcjo6cmVnaXN0ZXJTY2hlbWUpOgorICAgICAgICAoV2ViS2l0
OjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnVucmVnaXN0ZXJTY2hlbWUpOgorICAgICAgICAoV2Vi
S2l0OjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnN1cHBvcnRzU2NoZW1lKToKKyAgICAgICAgKFdl
YktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpwcm90b2NvbEZvcklEKToKKyAgICAgICAgKiBT
aGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmg6Cisg
ICAgICAgICogU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6
OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpyZW1vdmVQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6cGx1Z2luUHJv
Y2Vzc0NyYXNoZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjphZGRTY3Jv
bGxpbmdUcmVlRm9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6cmVt
b3ZlU2Nyb2xsaW5nVHJlZUZvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNo
ZXI6OndoZWVsRXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbS5jcHA6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFz
eW5jKToKKyAgICAgICAgKHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1BZGREYXRhKToKKwog
MjAxNS0wOC0xNyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFQSTo6
UGFnZUNvbmZpZ3VyYXRpb24ncyBzZXNzaW9uSUQgbmVlZHMgdG8gYmUgc2V0IHdoZW5ldmVyIHRo
ZSBBUEk6OldlYnNpdGVEYXRhU3RvcmUgaXMgc2V0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcAkocmV2aXNpb24gMTg4NTEw
KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6
cG9zdERhdGFiYXNlVGFzayhzCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKIAogICAgIG1fZGF0YWJhc2VUYXNrcy5h
cHBlbmQoV1RGOjptb3ZlKHRhc2spKTsKIApAQCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQgRGF0YWJh
c2VQcm9jZXNzOjpwZXJmb3JtTmV4dERhdGFiYXMKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBc3lu
Y1Rhc2s+IHRhc2s7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFz
ZVRhc2tNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0
ZXgpOwogICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2VUYXNrcy5pc0VtcHR5KCkpOwogICAgICAg
ICB0YXNrID0gbV9kYXRhYmFzZVRhc2tzLnRha2VGaXJzdCgpOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgJKHJldmlz
aW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVBy
b2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDcgKzEwNiw3IEBAIHByaXZhdGU6CiAgICAg
SGFzaE1hcDxVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZpZXIsIFJlZlB0cjxVbmlxdWVJREJEYXRh
YmFzZT4+IG1faWRiRGF0YWJhc2VzOwogCiAgICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPEFzeW5j
VGFzaz4+IG1fZGF0YWJhc2VUYXNrczsKLSAgICBNdXRleCBtX2RhdGFiYXNlVGFza011dGV4Owor
ICAgIExvY2sgbV9kYXRhYmFzZVRhc2tNdXRleDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApJbmRleDogU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJ
REJEYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysr
IFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6c2h1dGRvd24oVW5pcXVlSQogICAgIHJlZigpOwogCiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwogICAgICAgICBtX2RhdGFiYXNlVGFza3Mu
Y2xlYXIoKTsKICAgICB9CiAKQEAgLTExMjUsNyArMTEyNSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6OnBvc3RNYWluVGhyZWFkVGEKICAgICBpZiAoIW1fYWNjZXB0aW5nTmV3UmVxdWVzdHMg
JiYgdGFza1R5cGUgPT0gRGF0YWJhc2VUYXNrVHlwZTo6Tm9ybWFsKQogICAgICAgICByZXR1cm47
CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tYWluVGhyZWFkVGFza011dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0ZXgpOwogCiAgICAgbV9tYWluVGhy
ZWFkVGFza3MuYXBwZW5kKFdURjo6bW92ZSh0YXNrKSk7CiAKQEAgLTExNDMsNyArMTE0Myw3IEBA
IGJvb2wgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1OZXh0TWFpblQKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxBc3luY1Rhc2s+IHRhc2s7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9tYWluVGhyZWFkVGFza011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9t
YWluVGhyZWFkVGFza011dGV4KTsKIAogICAgICAgICAvLyBUaGlzIGRhdGFiYXNlIG1pZ2h0IGJl
IHNodXR0aW5nIGRvd24sIGluIHdoaWNoIGNhc2UgdGhlIHRhc2sgcXVldWUgbWlnaHQgYmUgZW1w
dHkuCiAgICAgICAgIGlmIChtX21haW5UaHJlYWRUYXNrcy5pc0VtcHR5KCkpCkBAIC0xMTY1LDcg
KzExNjUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0RGF0YWJhc2VUYXNrCiAgICAg
aWYgKCFtX2FjY2VwdGluZ05ld1JlcXVlc3RzICYmIHRhc2tUeXBlID09IERhdGFiYXNlVGFza1R5
cGU6Ok5vcm1hbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
ZGF0YWJhc2VUYXNrTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNr
TXV0ZXgpOwogCiAgICAgbV9kYXRhYmFzZVRhc2tzLmFwcGVuZChXVEY6Om1vdmUodGFzaykpOwog
CkBAIC0xMTg2LDcgKzExODYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtTmV4
dERhdGFiCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNUYXNrPiB0YXNrOwogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKIAogICAgICAgICAvLyBUaGlz
IGRhdGFiYXNlIG1pZ2h0IGJlIHNodXR0aW5nIGRvd24gb24gdGhlIG1haW4gdGhyZWFkLCBpbiB3
aGljaCBjYXNlIHRoZSB0YXNrIHF1ZXVlIG1pZ2h0IGJlIGVtcHR5LgogICAgICAgICBpZiAobV9k
YXRhYmFzZVRhc2tzLmlzRW1wdHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgJKHJl
dmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVk
REIvVW5pcXVlSURCRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjEwLDEwICsyMTAsMTAg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmU+IG1f
YmFja2luZ1N0b3JlOwogCiAgICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4+IG1f
ZGF0YWJhc2VUYXNrczsKLSAgICBNdXRleCBtX2RhdGFiYXNlVGFza011dGV4OworICAgIExvY2sg
bV9kYXRhYmFzZVRhc2tNdXRleDsKIAogICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxBc3luY1Rh
c2s+PiBtX21haW5UaHJlYWRUYXNrczsKLSAgICBNdXRleCBtX21haW5UaHJlYWRUYXNrTXV0ZXg7
CisgICAgTG9jayBtX21haW5UaHJlYWRUYXNrTXV0ZXg7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAJ
KHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0
aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU5LDcgKzQ1OSw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAogICAgIC8vIFB1c2ggdGhlIHBlbmRpbmcgc3lu
YyByZXBseSBpbmZvcm1hdGlvbiBvbiBvdXIgc3RhY2suCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKICAgICAgICAgaWYgKCFtX3Nob3VsZFdhaXRG
b3JTeW5jUmVwbGllcykgewogICAgICAgICAgICAgZGlkRmFpbFRvU2VuZFN5bmNNZXNzYWdlKCk7
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQ4Niw3ICs0ODYsNyBAQCBzdGQ6OnVu
aXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3RpCiAKICAgICAvLyBGaW5hbGx5LCBwb3Ag
dGhlIHBlbmRpbmcgc3luYyByZXBseSBpbmZvcm1hdGlvbi4KICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogICAgICAgICBBU1NFUlQobV9wZW5kaW5n
U3luY1JlcGxpZXMubGFzdCgpLnN5bmNSZXF1ZXN0SUQgPT0gc3luY1JlcXVlc3RJRCk7CiAgICAg
ICAgIG1fcGVuZGluZ1N5bmNSZXBsaWVzLnJlbW92ZUxhc3QoKTsKICAgICB9CkBAIC01MDgsNyAr
NTA4LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aQogCiAgICAg
Ly8gUHVzaCB0aGUgcGVuZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uIG9uIG91ciBzdGFjay4K
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogICAg
ICAgICBpZiAoIW1fc2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKQEAgLTUyNiw3ICs1MjYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURl
Y29kZXI+IENvbm5lY3RpCiAKICAgICAvLyBGaW5hbGx5LCBwb3AgdGhlIHBlbmRpbmcgc3luYyBy
ZXBseSBpbmZvcm1hdGlvbi4KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5
bmNSZXBseVN0YXRlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBs
eVN0YXRlTXV0ZXgpOwogICAgICAgICBBU1NFUlQobV9zZWNvbmRhcnlUaHJlYWRQZW5kaW5nU3lu
Y1JlcGx5TWFwLmNvbnRhaW5zKHN5bmNSZXF1ZXN0SUQpKTsKICAgICAgICAgbV9zZWNvbmRhcnlU
aHJlYWRQZW5kaW5nU3luY1JlcGx5TWFwLnJlbW92ZShzeW5jUmVxdWVzdElEKTsKICAgICB9CkBA
IC01NDYsNyArNTQ2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0
aQogICAgICAgICBTeW5jTWVzc2FnZVN0YXRlOjpzaW5nbGV0b24oKS5kaXNwYXRjaE1lc3NhZ2Vz
KG51bGxwdHIpOwogICAgICAgICAKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogCiAgICAgICAgICAgICAvLyBTZWNvbmQsIGNo
ZWNrIGlmIHRoZXJlIGlzIGEgc3luYyByZXBseSBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay4KICAg
ICAgICAgICAgIEFTU0VSVCghbV9wZW5kaW5nU3luY1JlcGxpZXMuaXNFbXB0eSgpKTsKQEAgLTU5
Miw3ICs1OTIsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3RpCiAK
IHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nU3luY1JlcGx5KHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRGVjb2Rlcj4gZGVjb2RlcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9z
eW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0
YXRlTXV0ZXgpOwogCiAgICAgLy8gR28gdGhyb3VnaCB0aGUgc3RhY2sgb2Ygc3luYyByZXF1ZXN0
cyB0aGF0IGhhdmUgcGVuZGluZyByZXBsaWVzIGFuZCBzZWUgd2hpY2ggb25lCiAgICAgLy8gdGhp
cyByZXBseSBpcyBmb3IuCkBAIC03NTAsNyArNzUwLDcgQEAgdm9pZCBDb25uZWN0aW9uOjpjb25u
ZWN0aW9uRGlkQ2xvc2UoKQogICAgIHBsYXRmb3JtSW52YWxpZGF0ZSgpOwogCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKIAogICAgICAgICBBU1NF
UlQobV9zaG91bGRXYWl0Rm9yU3luY1JlcGxpZXMpOwogICAgICAgICBtX3Nob3VsZFdhaXRGb3JT
eW5jUmVwbGllcyA9IGZhbHNlOwpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVk
ZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1
ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMjk4LDcgKzI5OSw3IEBA
IHByaXZhdGU6CiAgICAgY2xhc3MgU3luY01lc3NhZ2VTdGF0ZTsKICAgICBmcmllbmQgY2xhc3Mg
U3luY01lc3NhZ2VTdGF0ZTsKIAotICAgIE11dGV4IG1fc3luY1JlcGx5U3RhdGVNdXRleDsKKyAg
ICBMb2NrIG1fc3luY1JlcGx5U3RhdGVNdXRleDsKICAgICBib29sIG1fc2hvdWxkV2FpdEZvclN5
bmNSZXBsaWVzOwogICAgIFZlY3RvcjxQZW5kaW5nU3luY1JlcGx5PiBtX3BlbmRpbmdTeW5jUmVw
bGllczsKIApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3Bw
CShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
OTAsNyArNjkwLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmFwcGVuZFVwZAog
ICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3JlbmRlclF1ZXVlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fcmVuZGVyUXVldWVNdXRleCk7CiAgICAgbV9yZW5kZXJRdWV1ZS5hcHBlbmQoV1RGOjptb3Zl
KGZ1bmN0aW9uKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZS5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAkod29ya2luZyBjb3B5KQpA
QCAtMTQ1LDcgKzE0NSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBSZW5kZXIgcXVldWUgY2FuIGJl
IGFjY2Vzc2VkIG9ueSBmcm9tIG1haW4gdGhyZWFkIG9yIHVwZGF0ZVBhaW50Tm9kZSBjYWxsIHN0
YWNrIQogICAgIFZlY3RvcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+IG1fcmVuZGVyUXVldWU7Ci0g
ICAgTXV0ZXggbV9yZW5kZXJRdWV1ZU11dGV4OworICAgIExvY2sgbV9yZW5kZXJRdWV1ZU11dGV4
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXI+IG1fdGV4dHVy
ZU1hcHBlcjsKIApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZENvbXBvc2l0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTUsNyArMjk1LDcgQEAg
dm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUNvbXBvc2l0aQogICAgIGlmIChtX3RocmVh
ZElkZW50aWZpZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgbV90aHJlYWRJZGVudGlm
aWVyID0gY3JlYXRlVGhyZWFkKGNvbXBvc2l0aW5nVGhyZWFkRW50cnksIHRoaXMsICJXZWJDb3Jl
OiBUaHJlYWRlZENvbXBvc2l0b3IiKTsKIAogICAgIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRp
b24ud2FpdChtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwpAQCAtMzA0LDcgKzMw
NCw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVDb21wb3NpdGkKIHZvaWQgVGhy
ZWFkZWRDb21wb3NpdG9yOjpydW5Db21wb3NpdGluZ1RocmVhZCgpCiB7CiAgICAgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11
dGV4KTsKIAogICAgICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcCA9IHN0ZDo6bWFrZV91bmlxdWU8
Q29tcG9zaXRpbmdSdW5Mb29wPihbJl0gewogICAgICAgICAgICAgcmVuZGVyTGF5ZXJUcmVlKCk7
CkBAIC0zMjEsNyArMzIxLDcgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnJ1bkNvbXBvc2l0
aW5nVAogICAgIG1fc2NlbmUtPnB1cmdlR0xSZXNvdXJjZXMoKTsKIAogICAgIHsKLSAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgp
OwogICAgICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcCA9IG51bGxwdHI7CiAgICAgICAgIG1fY29u
dGV4dCA9IG51bGxwdHI7CiAgICAgICAgIG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbi5zaWdu
YWwoKTsKQEAgLTMzMiw3ICszMzIsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cnVuQ29t
cG9zaXRpbmdUCiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjp0ZXJtaW5hdGVDb21wb3NpdGlu
Z1RocmVhZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGVybWluYXRlUnVuTG9vcENv
bmRpdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rlcm1pbmF0ZVJ1bkxvb3BD
b25kaXRpb25NdXRleCk7CiAKICAgICBtX3NjZW5lLT5kZXRhY2goKTsKICAgICBtX2NvbXBvc2l0
aW5nUnVuTG9vcC0+cnVuTG9vcCgpLnN0b3AoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgJKHJldmlzaW9uIDE4
ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMTEx
LDkgKzExMSw5IEBAIHByaXZhdGU6CiAKICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkSWRl
bnRpZmllcjsKICAgICBUaHJlYWRDb25kaXRpb24gbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlv
bjsKLSAgICBNdXRleCBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXg7CisgICAgTG9j
ayBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXg7CiAgICAgVGhyZWFkQ29uZGl0aW9u
IG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbjsKLSAgICBNdXRleCBtX3Rlcm1pbmF0ZVJ1bkxv
b3BDb25kaXRpb25NdXRleDsKKyAgICBMb2NrIG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11
dGV4OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xz
L0N1c3RvbVByb3RvY29sTWFuYWdlci5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCwxMSArMTAwLDExIEBAIHByaXZhdGU6CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBIYXNoU2V0PFN0cmluZz4gbV9yZWdpc3RlcmVkU2NoZW1lczsK
LSAgICBNdXRleCBtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXg7CisgICAgTG9jayBtX3JlZ2lzdGVy
ZWRTY2hlbWVzTXV0ZXg7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJldGFpblB0
cjxXS0N1c3RvbVByb3RvY29sPj4gQ3VzdG9tUHJvdG9jb2xNYXA7CiAgICAgQ3VzdG9tUHJvdG9j
b2xNYXAgbV9jdXN0b21Qcm90b2NvbE1hcDsKLSAgICBNdXRleCBtX2N1c3RvbVByb3RvY29sTWFw
TXV0ZXg7CisgICAgTG9jayBtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXg7CiAgICAgCiAgICAgLy8g
V0tDdXN0b21Qcm90b2NvbCBvYmplY3RzIGNhbiBiZSByZW1vdmVkIGZyb20gdGhlIG1fY3VzdG9t
UHJvdG9jb2xNYXAgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLgogICAgIC8vIFdlIHJldHVybiBhIFJl
dGFpblB0ciBoZXJlIGJlY2F1c2UgaXQgaXMgdW5zYWZlIHRvIHJldHVybiBhIHJhdyBwb2ludGVy
IHNpbmNlIHRoZSBvYmplY3QgbWlnaHQgaW1tZWRpYXRlbHkgYmUgZGVzdHJveWVkIGZyb20gYSBk
aWZmZXJlbnQgdGhyZWFkLgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3Vz
dG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2Nv
YS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQkocmV2aXNpb24gMTg4NTEwKQorKysgU291
cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVBy
b3RvY29sTWFuYWdlckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsMjggKzE2NSwyOCBA
QCB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6aW5pdGlhbGl6ZShjCiB2b2lkIEN1c3RvbVBy
b3RvY29sTWFuYWdlcjo6YWRkQ3VzdG9tUHJvdG9jb2woV0tDdXN0b21Qcm90b2NvbCAqY3VzdG9t
UHJvdG9jb2wpCiB7CiAgICAgQVNTRVJUKGN1c3RvbVByb3RvY29sKTsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOwogICAgIG1fY3VzdG9tUHJvdG9jb2xNYXAuYWRk
KGN1c3RvbVByb3RvY29sLmN1c3RvbVByb3RvY29sSUQsIGN1c3RvbVByb3RvY29sKTsKIH0KIAog
dm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnJlbW92ZUN1c3RvbVByb3RvY29sKFdLQ3VzdG9t
UHJvdG9jb2wgKmN1c3RvbVByb3RvY29sKQogewogICAgIEFTU0VSVChjdXN0b21Qcm90b2NvbCk7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKICAgICBtX2N1c3Rv
bVByb3RvY29sTWFwLnJlbW92ZShjdXN0b21Qcm90b2NvbC5jdXN0b21Qcm90b2NvbElEKTsKIH0K
ICAgICAKIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpyZWdpc3RlclNjaGVtZShjb25zdCBT
dHJpbmcmIHNjaGVtZSkKIHsKICAgICBBU1NFUlQoIXNjaGVtZS5pc051bGwoKSk7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKICAgICBtX3JlZ2lzdGVyZWRTY2hl
bWVzLmFkZChzY2hlbWUpOwogfQogICAgIAogdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnVu
cmVnaXN0ZXJTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCiB7CiAgICAgQVNTRVJUKCFzY2hl
bWUuaXNOdWxsKCkpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3JlZ2lzdGVyZWRTY2hlbWVz
TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7
CiAgICAgbV9yZWdpc3RlcmVkU2NoZW1lcy5yZW1vdmUoc2NoZW1lKTsKIH0KIApAQCAtMTk1LDcg
KzE5NSw3IEBAIGJvb2wgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpzdXBwb3J0c1NjaGUKICAgICBp
ZiAoc2NoZW1lLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgpOwogICAgIHJldHVybiBtX3JlZ2lzdGVyZWRT
Y2hlbWVzLmNvbnRhaW5zKHNjaGVtZSk7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCAgICAgaWYg
KCFwcm90b2NvbCkKIAogUmV0YWluUHRyPFdLQ3VzdG9tUHJvdG9jb2w+IEN1c3RvbVByb3RvY29s
TWFuYWdlcjo6cHJvdG9jb2xGb3JJRCh1aW50NjRfdCBjdXN0b21Qcm90b2NvbElEKQogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleCk7CiAKICAgICBDdXN0b21Qcm90
b2NvbE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2N1c3RvbVByb3RvY29sTWFwLmZpbmQoY3Vz
dG9tUHJvdG9jb2xJRCk7CiAgICAgaWYgKGl0ID09IG1fY3VzdG9tUHJvdG9jb2xNYXAuZW5kKCkp
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRlcnMvU2VjY29t
cEJyb2tlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1Nl
Y2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRlcnMvU2VjY29tcEJyb2tlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKIAogICAgIGludCBtX3Nv
Y2tldDsKIAotICAgIG11dGFibGUgTXV0ZXggbV9zb2NrZXRMb2NrOworICAgIG11dGFibGUgTG9j
ayBtX3NvY2tldExvY2s7CiAKICAgICAvLyBNYXBzIGZpbGVzIHRoYXQgbWF5IGJlIHJlYWQgYnkg
bWFsbG9jKCkgdG8gb3BlbiBmaWxlIGRlc2NyaXB0b3JzLgogICAgIEhhc2hNYXA8U3RyaW5nLCBp
bnQ+IG1fZmlsZURlc2NyaXB0b3JDYWNoZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODYsNyArODYsNyBAQCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiogUGx1Z2lu
UHJvY2Vzc0NvCiAgICAgbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKHBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
dG9rZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
dG9rZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7CiAgICAgICAgIEFTU0VSVCghbV90b2tlbnNBbmRD
b25uZWN0aW9ucy5jb250YWlucyhwbHVnaW5Qcm9jZXNzVG9rZW4pKTsKIAogICAgICAgICBtX3Rv
a2Vuc0FuZENvbm5lY3Rpb25zLnNldChwbHVnaW5Qcm9jZXNzVG9rZW4sIHBsdWdpblByb2Nlc3ND
b25uZWN0aW9uLT5jb25uZWN0aW9uKCkpOwpAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpyZW0KICAgICBBU1NFUlQodmVjdG9ySW5kZXggIT0g
bm90Rm91bmQpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90b2tlbnNB
bmRDb25uZWN0aW9uc011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90b2tlbnNB
bmRDb25uZWN0aW9uc011dGV4KTsKICAgICAgICAgQVNTRVJUKG1fdG9rZW5zQW5kQ29ubmVjdGlv
bnMuY29udGFpbnMocGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24tPnBsdWdpblByb2Nlc3NUb2tlbigp
KSk7CiAgICAgICAgIAogICAgICAgICBtX3Rva2Vuc0FuZENvbm5lY3Rpb25zLnJlbW92ZShwbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbi0+cGx1Z2luUHJvY2Vzc1Rva2VuKCkpOwpAQCAtMTEyLDcgKzEx
Miw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpyZW0KIAogdm9pZCBQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OnBsdWdpblByb2Nlc3NDcmFzaGVkKHVpbnQ2
NF90IHBsdWdpblByb2Nlc3NUb2tlbikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90b2tl
bnNBbmRDb25uZWN0aW9uc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rva2Vuc0Fu
ZENvbm5lY3Rpb25zTXV0ZXgpOwogICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiA9IG1f
dG9rZW5zQW5kQ29ubmVjdGlvbnMuZ2V0KHBsdWdpblByb2Nlc3NUb2tlbik7CiAKICAgICAvLyBJ
dCdzIE9LIGZvciBjb25uZWN0aW9uIHRvIGJlIG51bGwgaGVyZTsgaXQgd2lsbCBoYXBwZW4gaWYg
dGhpcyB3ZWIgcHJvY2VzcyBkb2Vzbid0IGtub3cKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPFJlZlB0cjxQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbj4+IG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25zOwogCi0gICAg
TXV0ZXggbV90b2tlbnNBbmRDb25uZWN0aW9uc011dGV4OworICAgIExvY2sgbV90b2tlbnNBbmRD
b25uZWN0aW9uc011dGV4OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJUEM6OkNvbm5l
Y3Rpb24+PiBtX3Rva2Vuc0FuZENvbm5lY3Rpb25zOwogfTsKIApJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAJKHJl
dmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIEV2ZW50RGlz
cGF0Y2hlcjo6fkV2ZW50RGlzcGF0Y2hlcigpCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
IHZvaWQgRXZlbnREaXNwYXRjaGVyOjphZGRTY3JvbGxpbmdUcmVlRm9yUGFnZShXZWJQYWdlKiB3
ZWJQYWdlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CiAKICAgICBB
U1NFUlQod2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSk7CiAgICAg
QVNTRVJUKCFtX3Njcm9sbGluZ1RyZWVzLmNvbnRhaW5zKHdlYlBhZ2UtPnBhZ2VJRCgpKSk7CkBA
IC03Niw3ICs3Niw3IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjphZGRTY3JvbGxpbmdUcmVlRm8K
IAogdm9pZCBFdmVudERpc3BhdGNoZXI6OnJlbW92ZVNjcm9sbGluZ1RyZWVGb3JQYWdlKFdlYlBh
Z2UqIHdlYlBhZ2UpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNN
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKICAg
ICBBU1NFUlQobV9zY3JvbGxpbmdUcmVlcy5jb250YWlucyh3ZWJQYWdlLT5wYWdlSUQoKSkpOwog
CiAgICAgbV9zY3JvbGxpbmdUcmVlcy5yZW1vdmUod2ViUGFnZS0+cGFnZUlEKCkpOwpAQCAtMTMy
LDcgKzEzMiw3IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KHVpbnQ2NF8KICNl
bmRpZgogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Njcm9s
bGluZ1RyZWVzTXV0ZXgpOwogICAgIGlmIChSZWZQdHI8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPiBz
Y3JvbGxpbmdUcmVlID0gbV9zY3JvbGxpbmdUcmVlcy5nZXQocGFnZUlEKSkgewogICAgICAgICAv
LyBGSVhNRTogSXQncyBwcmV0dHkgaG9ycmlibGUgdGhhdCB3ZSdyZSB1cGRhdGluZyB0aGUgYmFj
ay9mb3J3YXJkIHN0YXRlIGhlcmUuCiAgICAgICAgIC8vIFdlYkNvcmUgc2hvdWxkIGFsd2F5cyBr
bm93IHRoZSBjdXJyZW50IHN0YXRlIGFuZCBrbm93IHdoZW4gaXQgY2hhbmdlcyBzbyB0aGUKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmgJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTIsNyArOTIsNyBA
QCBwcml2YXRlOgogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CiAKICNpZiBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKQotICAgIE11dGV4IG1fc2Nyb2xsaW5nVHJlZXNNdXRleDsKKyAgICBMb2Nr
IG1fc2Nyb2xsaW5nVHJlZXNNdXRleDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2Vi
Q29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlPj4gbV9zY3JvbGxpbmdUcmVlczsKICNlbmRpZgog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpXaGVlbEV2ZW50RGVsdGFUcmFja2VyPiBtX3Jl
Y2VudFdoZWVsRXZlbnREZWx0YVRyYWNrZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJl
YW0uY3BwCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3Nv
dXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQx
LDcgKzQxLDcgQEAgc3RydWN0IF9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUHJpdgogICAg
IHVpbnQ2NF90IGJ5dGVzUmVjZWl2ZWQ7CiAgICAgdWludDY0X3QgYnl0ZXNSZWFkOwogCi0gICAg
TXV0ZXggcmVhZExvY2s7CisgICAgTG9jayByZWFkTG9jazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
QXN5bmNSZWFkRGF0YT4gcGVuZGluZ0FzeW5jUmVhZDsKIH07CiAKQEAgLTg0LDcgKzg0LDcgQEAg
c3RhdGljIHZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbQogICAgIFdlYktpdFNvdXBS
ZXF1ZXN0SW5wdXRTdHJlYW0qIHN0cmVhbSA9IFdFQktJVF9TT1VQX1JFUVVFU1RfSU5QVVRfU1RS
RUFNKGlucHV0U3RyZWFtKTsKICAgICBHUmVmUHRyPEdUYXNrPiB0YXNrID0gYWRvcHRHUmVmKGdf
dGFza19uZXcoc3RyZWFtLCBjYW5jZWxsYWJsZSwgY2FsbGJhY2ssIHVzZXJEYXRhKSk7CiAKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIoc3RyZWFtLT5wcml2LT5yZWFkTG9jayk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIoc3RyZWFtLT5wcml2LT5yZWFkTG9jayk7CiAKICAgICBpZiAoIXdlYmtpdFNv
dXBSZXF1ZXN0SW5wdXRTdHJlYW1IYXNEYXRhVG9SZWFkKHN0cmVhbSkgJiYgIXdlYmtpdFNvdXBS
ZXF1ZXN0SW5wdXRTdHJlYW1Jc1dhaXRpbmdGb3JEYXRhKHN0cmVhbSkpIHsKICAgICAgICAgZ190
YXNrX3JldHVybl9pbnQodGFzay5nZXQoKSwgMCk7CkBAIC0xNDMsNyArMTQzLDcgQEAgdm9pZCB3
ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtQWRkRGF0YQogICAgIGlmICh3ZWJraXRTb3VwUmVx
dWVzdElucHV0U3RyZWFtRmluaXNoZWQoc3RyZWFtKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKHN0cmVhbS0+cHJpdi0+cmVhZExvY2spOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKHN0cmVhbS0+cHJpdi0+cmVhZExvY2spOwogCiAgICAgaWYgKGRhdGFMZW5ndGgp
IHsKICAgICAgICAgLy8gVHJ1bmNhdGUgdGhlIGRhdGFMZW5ndGggdG8gdGhlIGNvbnRlbnRMZW5n
dGggaWYgaXQncyBrbm93bi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODg1NDcpCisrKyBTb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE1
LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFj
ZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9yYWdlL1N0b3Jh
Z2VBcmVhU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVN5bmM6OnN5bmNU
aW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6bWFya0ltcG9y
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6YmxvY2tVbnRpbEltcG9y
dENvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5
bmMpOgorICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmg6CisgICAgICAgICogU3Rv
cmFnZS9TdG9yYWdlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tl
cjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VU
cmFja2VyOjpmaW5pc2hlZEltcG9ydGluZ09yaWdpbklkZW50aWZpZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3JpZ2luSWRlbnRpZmllcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVtQW5kVHJhY2tlckRh
dGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzZXRPcmlnaW5EZXRh
aWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzeW5jU2V0T3JpZ2luRGV0
YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6b3JpZ2lucyk6CisgICAg
ICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6ZGVsZXRlQWxsT3JpZ2lucyk6CisgICAgICAg
IChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9yaWdpbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbik6CisgICAgICAgIChXZWJD
b3JlOjpTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZU9yaWdpbik6CisgICAgICAgIChXZWJDb3Jl
OjpTdG9yYWdlVHJhY2tlcjo6Y2FuRGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
b3JhZ2VUcmFja2VyOjpjYW5jZWxEZWxldGluZ09yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpT
dG9yYWdlVHJhY2tlcjo6ZGlza1VzYWdlRm9yT3JpZ2luKToKKyAgICAgICAgKiBTdG9yYWdlL1N0
b3JhZ2VUcmFja2VyLmg6CisKIDIwMTUtMDgtMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIHNvbWUgY29tbWFuZHMgZnJvbSAuL0NN
YWtlTGlzdHMudHh0IHRvIFNvdXJjZS9jbWFrZQpJbmRleDogU291cmNlL1dlYktpdC9TdG9yYWdl
L1N0b3JhZ2VBcmVhU3luYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TdG9yYWdl
L1N0b3JhZ2VBcmVhU3luYy5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQv
U3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQsNyArMTY0
LDcgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnN5bmNUaW1lckZpcmVkKCkKIAogICAgIGJvb2wg
cGFydGlhbFN5bmMgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAKICAg
ICAgICAgLy8gRG8gbm90IHNjaGVkdWxlIGFub3RoZXIgc3luYyBpZiB3ZSdyZSBzdGlsbCB0cnlp
bmcgdG8gY29tcGxldGUgdGhlCiAgICAgICAgIC8vIHByZXZpb3VzIG9uZS4gQnV0LCBpZiB3ZSdy
ZSBzaHV0dGluZyBkb3duLCBzY2hlZHVsZSBpdCBhbnl3YXkuCkBAIC0zNTIsOSArMzUyLDkgQEAg
dm9pZCBTdG9yYWdlQXJlYVN5bmM6OnBlcmZvcm1JbXBvcnQoKQogCiB2b2lkIFN0b3JhZ2VBcmVh
U3luYzo6bWFya0ltcG9ydGVkKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9pbXBvcnRM
b2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2ltcG9ydExvY2spOwogICAgIG1faW1wb3J0
Q29tcGxldGUgPSB0cnVlOwotICAgIG1faW1wb3J0Q29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1f
aW1wb3J0Q29uZGl0aW9uLm5vdGlmeU9uZSgpOwogfQogCiAvLyBGSVhNRTogSW4gdGhlIGZ1dHVy
ZSwgd2Ugc2hvdWxkIGFsbG93IHVzZSBvZiBTdG9yYWdlQXJlYXMgd2hpbGUgaXQncyBpbXBvcnRp
bmcgKHdoZW4gc2FmZSB0byBkbyBzbykuCkBAIC0zNzIsNyArMzcyLDcgQEAgdm9pZCBTdG9yYWdl
QXJlYVN5bmM6OmJsb2NrVW50aWxJbXBvcnRDbwogICAgIGlmICghbV9zdG9yYWdlQXJlYSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW1wb3J0TG9jayk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbXBvcnRMb2NrKTsKICAgICB3aGlsZSAoIW1faW1wb3J0
Q29tcGxldGUpCiAgICAgICAgIG1faW1wb3J0Q29uZGl0aW9uLndhaXQobV9pbXBvcnRMb2NrKTsK
ICAgICBtX3N0b3JhZ2VBcmVhID0gbnVsbHB0cjsKQEAgLTQ2Nyw3ICs0NjcsNyBAQCB2b2lkIFN0
b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMoKQogICAgIGJvb2wgY2xlYXJJdGVtczsKICAgICBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiBpdGVtczsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9j
ayk7CiAKICAgICAgICAgQVNTRVJUKG1fc3luY1NjaGVkdWxlZCk7CiAKQEAgLTQ4Miw3ICs0ODIs
NyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMoKQogICAgIHN5bmMoY2xlYXJJ
dGVtcywgaXRlbXMpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5j
TG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgICAgICBt
X3N5bmNJblByb2dyZXNzID0gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1N0
b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TdG9y
YWdlL1N0b3JhZ2VBcmVhU3luYy5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0
L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlRGF0YWJhc2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC04NSw3ICs4
Niw3IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBTdHJpbmcgbV9kYXRhYmFzZUlkZW50aWZpZXI7
CiAKLSAgICBNdXRleCBtX3N5bmNMb2NrOworICAgIExvY2sgbV9zeW5jTG9jazsKICAgICBIYXNo
TWFwPFN0cmluZywgU3RyaW5nPiBtX2l0ZW1zUGVuZGluZ1N5bmM7CiAgICAgYm9vbCBtX2NsZWFy
SXRlbXNXaGlsZVN5bmNpbmc7CiAgICAgYm9vbCBtX3N5bmNTY2hlZHVsZWQ7CkBAIC05NCw4ICs5
NSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fc3luY0Nsb3NlRGF0YWJhc2U7CiAKLSAgICBt
dXRhYmxlIE11dGV4IG1faW1wb3J0TG9jazsKLSAgICBUaHJlYWRDb25kaXRpb24gbV9pbXBvcnRD
b25kaXRpb247CisgICAgbXV0YWJsZSBMb2NrIG1faW1wb3J0TG9jazsKKyAgICBDb25kaXRpb24g
bV9pbXBvcnRDb25kaXRpb247CiAgICAgYm9vbCBtX2ltcG9ydENvbXBsZXRlOwogICAgIHZvaWQg
bWFya0ltcG9ydGVkKCk7CiAgICAgdm9pZCBtaWdyYXRlSXRlbVRhYmxlSWZOZWVkZWQoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAkocmV2aXNpb24gMTg4
NTEwKQorKysgU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIFN0b3JhZ2VUcmFja2VyOjpTdG9yYWdlVHJhY2tl
cihjb25zdCBTdHIKIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRh
YmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOwogCiAg
ICAgaWYgKG1fZGF0YWJhc2UuaXNPcGVuKCkpCiAgICAgICAgIG1fZGF0YWJhc2UuY2xvc2UoKTsK
QEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzZXREYXRhYmFzZURpcmVj
dG9yCiAgICAgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aCA9IHBhdGguaXNvbGF0ZWRDb3B5KCk7CiAK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgIG1fb3Jp
Z2luU2V0LmNsZWFyKCk7CiAgICAgfQogCkBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBTdG9yYWdl
VHJhY2tlcjo6aW1wb3J0T3JpZ2luSWRlbnRpZgogCiB2b2lkIFN0b3JhZ2VUcmFja2VyOjpmaW5p
c2hlZEltcG9ydGluZ09yaWdpbklkZW50aWZpZXJzKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0
ZXgpOwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPmRpZEZpbmlzaExvYWRp
bmdPcmlnaW5zKCk7CiB9CkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6
c3luY0ltcG9ydE9yaWdpbklkZQogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCiAgICAg
ewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKIAogICAgICAgICAvLyBEb24ndCBm
b3JjZSBjcmVhdGlvbiBvZiBTdG9yYWdlVHJhY2tlcidzIGRiIGp1c3QgYmVjYXVzZSBhIHRyYWNr
ZXIKICAgICAgICAgLy8gd2FzIGluaXRpYWxpemVkLiBJdCB3aWxsIGJlIGNyZWF0ZWQgaWYgbG9j
YWwgc3RvcmFnZSBkYnMgYXJlIGZvdW5kCkBAIC0yMTcsNyArMjE3LDcgQEAgdm9pZCBTdG9yYWdl
VHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgICAgICAgICAgaW50IHJlc3VsdDsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tPcmlnaW5zKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICAgICAgICAgIExvY2tIb2xkZXIg
bG9ja09yaWdpbnMobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgICAgICAgICAgd2hpbGUgKChy
ZXN1bHQgPSBzdGF0ZW1lbnQuc3RlcCgpKSA9PSBTUUxJVEVfUk9XKQogICAgICAgICAgICAgICAg
ICAgICBtX29yaWdpblNldC5hZGQoc3RhdGVtZW50LmdldENvbHVtblRleHQoMCkuaXNvbGF0ZWRD
b3B5KCkpOwogICAgICAgICAgICAgfQpAQCAtMjMyLDEwICsyMzIsMTAgQEAgdm9pZCBTdG9yYWdl
VHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgIHN5bmNGaWxlU3lzdGVtQW5kVHJhY2tl
ckRhdGFiYXNlKCk7CiAgICAgCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9j
bGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgpOwog
CiAgICAgICAgIGlmIChtX2NsaWVudCkgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmln
aW5TZXRNdXRleCk7CiAgICAgICAgICAgICBPcmlnaW5TZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9
IG1fb3JpZ2luU2V0LmVuZCgpOwogICAgICAgICAgICAgZm9yIChPcmlnaW5TZXQ6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gbV9vcmlnaW5TZXQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAg
ICAgICAgICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZE1vZGlmeU9yaWdpbigqaXQpOwpAQCAtMjU3
LDcgKzI1Nyw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVtQW5kVHIKIAog
ICAgIFZlY3RvcjxTdHJpbmc+IHBhdGhzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fZGF0YWJhc2VNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJh
c2VNdXRleCk7CiAgICAgICAgIHBhdGhzID0gbGlzdERpcmVjdG9yeShtX3N0b3JhZ2VEaXJlY3Rv
cnlQYXRoLCAiKi5sb2NhbHN0b3JhZ2UiKTsKICAgICB9CiAKQEAgLTI2NSw3ICsyNjUsNyBAQCB2
b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRmlsZVN5c3RlbUFuZFRyCiAgICAgLy8gZGVsZXRpb25z
IGZyb20gZGlzayBhbmQgZnJvbSBtX29yaWdpblNldC4KICAgICBPcmlnaW5TZXQgb3JpZ2luU2V0
Q29weTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAg
IGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fb3JpZ2luU2V0LmJlZ2luKCks
IGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICBv
cmlnaW5TZXRDb3B5LmFkZCgoKml0KS5pc29sYXRlZENvcHkoKSk7CiAgICAgfQpAQCAtMzA2LDcg
KzMwNiw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnNldE9yaWdpbkRldGFpbHMoY28KICAgICAg
ICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5T
ZXRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwog
CiAgICAgICAgIGlmIChtX29yaWdpblNldC5jb250YWlucyhvcmlnaW5JZGVudGlmaWVyKSkKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTMzNyw3ICszMzcsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2Vy
OjpzeW5jU2V0T3JpZ2luRGV0YWlsCiAKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NB
dXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgp
OwogCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZSh0cnVlKTsKICAgICAKQEAgLTM1NywxMyArMzU3
LDEzIEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWwKICAgICAgICAg
TE9HX0VSUk9SKCJVbmFibGUgdG8gZXN0YWJsaXNoIG9yaWdpbiAnJXMnIGluIHRoZSB0cmFja2Vy
Iiwgb3JpZ2luSWRlbnRpZmllci5hc2NpaSgpLmRhdGEoKSk7CiAKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgIGlmICghbV9vcmlnaW5TZXQuY29udGFp
bnMob3JpZ2luSWRlbnRpZmllcikpCiAgICAgICAgICAgICBtX29yaWdpblNldC5hZGQob3JpZ2lu
SWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgp
OwogICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hE
aWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpAQCAtMzc2LDcgKzM3Niw3
IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6Om9yaWdpbnMoVmVjdG9yPFJlZlAKICAgICBpZiAoIW1f
aXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29y
aWdpblNldE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsK
IAogICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fb3JpZ2luU2V0LmJl
Z2luKCksIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAg
IHJlc3VsdC5hcHBlbmQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZp
ZXIoKml0KSk7CkBAIC0zOTIsNyArMzkyLDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6ZGVsZXRl
QWxsT3JpZ2lucygpCiAgICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X29yaWdpblNldE11dGV4KTsKICAgICAgICAgd2lsbERlbGV0ZUFsbE9yaWdpbnMoKTsKICAgICAg
ICAgbV9vcmlnaW5TZXQuY2xlYXIoKTsKICAgICB9CkBAIC00MTcsNyArNDE3LDcgQEAgdm9pZCBT
dG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9yaWdpbgogCiAgICAgU1FMaXRlVHJhbnNhY3Rp
b25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogICAgIAotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fZGF0YWJhc2VNdXRleCk7CiAgICAgCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShmYWxzZSk7
CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQg
U3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVBbGxPcmlnaW4KICAgICAgICAgZGVsZXRlRmlsZShz
dGF0ZW1lbnQuZ2V0Q29sdW1uVGV4dCgxKSk7CiAKICAgICAgICAgewotICAgICAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9jbGllbnRNdXRleCk7CiAgICAgICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAg
ICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkTW9kaWZ5T3JpZ2luKHN0YXRlbWVudC5nZXRD
b2x1bW5UZXh0KDApKTsKICAgICAgICAgfQpAQCAtNDk5LDcgKzQ5OSw3IEBAIHZvaWQgU3RvcmFn
ZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cmkKICAgICBTdHJpbmcgb3JpZ2luSWQgPSBvcmln
aW4tPmRhdGFiYXNlSWRlbnRpZmllcigpOwogICAgIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X29yaWdpblNldE11dGV4KTsKICAgICAgICAgd2lsbERlbGV0ZU9yaWdpbihvcmlnaW5JZCk7CiAg
ICAgICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5JZCk7CiAgICAgfQpAQCAtNTE2LDcgKzUx
Niw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4oY28KIAogICAgIFNR
TGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291bnRlcjsK
IAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgCiAgICAgaWYgKCFjYW5EZWxldGVPcmln
aW4ob3JpZ2luSWRlbnRpZmllcikpIHsKICAgICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0ZWQgdG8g
ZGVsZXRlIG9yaWdpbiAnJXMnIHdoaWxlIGl0IHdhcyBiZWluZyBjcmVhdGVkXG4iLCBvcmlnaW5J
ZGVudGlmaWVyLmFzY2lpKCkuZGF0YSgpKTsKQEAgLTU0OSw3ICs1NDksNyBAQCB2b2lkIFN0b3Jh
Z2VUcmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKGNvCiAgICAgCiAgICAgYm9vbCBzaG91bGREZWxl
dGVUcmFja2VyRmlsZXMgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5T
ZXRNdXRleCk7CiAgICAgICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5JZGVudGlmaWVyKTsK
ICAgICAgICAgc2hvdWxkRGVsZXRlVHJhY2tlckZpbGVzID0gbV9vcmlnaW5TZXQuaXNFbXB0eSgp
OwogICAgIH0KQEAgLTU2Niw3ICs1NjYsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRGVs
ZXRlT3JpZ2luKGNvCiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgp
OwogICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hE
aWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpAQCAtNTkyLDcgKzU5Miw3
IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OndpbGxEZWxldGVPcmlnaW4oY28KIGJvb2wgU3RvcmFn
ZVRyYWNrZXI6OmNhbkRlbGV0ZU9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIp
CiB7CiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlTXV0ZXgudHJ5TG9jaygpKTsKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9v
cmlnaW5TZXRNdXRleCk7CiAgICAgcmV0dXJuIG1fb3JpZ2luc0JlaW5nRGVsZXRlZC5jb250YWlu
cyhvcmlnaW5JZGVudGlmaWVyKTsKIH0KIApAQCAtNjAxLDkgKzYwMSw5IEBAIHZvaWQgU3RvcmFn
ZVRyYWNrZXI6OmNhbmNlbERlbGV0aW5nT3JpZ2kKICAgICBpZiAoIW1faXNBY3RpdmUpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICBpZiAoIW1fb3JpZ2luc0JlaW5nRGVs
ZXRlZC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBtX29yaWdpbnNCZWluZ0RlbGV0ZWQucmVtb3Zl
KG9yaWdpbklkZW50aWZpZXIpOwogICAgIH0KQEAgLTY0Nyw3ICs2NDcsNyBAQCBsb25nIGxvbmcg
U3RvcmFnZVRyYWNrZXI6OmRpc2tVc2FnZUZvck9yCiAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAg
ICAgICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAKICAgICBTdHJpbmcg
cGF0aCA9IGRhdGFiYXNlUGF0aEZvck9yaWdpbihvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigp
KTsKICAgICBpZiAocGF0aC5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1N0b3JhZ2Uv
U3RvcmFnZVRyYWNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3Rv
cmFnZVRyYWNrZXIuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktpdC9TdG9yYWdl
L1N0b3JhZ2VUcmFja2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDE1ICs5NSwxNSBAQCBwcml2
YXRlOgogICAgIHZvaWQgc3luY0ltcG9ydE9yaWdpbklkZW50aWZpZXJzKCk7CiAKICAgICAvLyBN
dXRleCBmb3IgbV9kYXRhYmFzZSBhbmQgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC4KLSAgICBNdXRl
eCBtX2RhdGFiYXNlTXV0ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlTXV0ZXg7CiAgICAgU1FMaXRl
RGF0YWJhc2UgbV9kYXRhYmFzZTsKICAgICBTdHJpbmcgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aDsK
IAotICAgIE11dGV4IG1fY2xpZW50TXV0ZXg7CisgICAgTG9jayBtX2NsaWVudE11dGV4OwogICAg
IFN0b3JhZ2VUcmFja2VyQ2xpZW50KiBtX2NsaWVudDsKIAogICAgIC8vIEd1YXJkIGZvciBtX29y
aWdpblNldCBhbmQgbV9vcmlnaW5zQmVpbmdEZWxldGVkLgotICAgIE11dGV4IG1fb3JpZ2luU2V0
TXV0ZXg7CisgICAgTG9jayBtX29yaWdpblNldE11dGV4OwogICAgIHR5cGVkZWYgSGFzaFNldDxT
dHJpbmc+IE9yaWdpblNldDsKICAgICBPcmlnaW5TZXQgbV9vcmlnaW5TZXQ7CiAgICAgT3JpZ2lu
U2V0IG1fb3JpZ2luc0JlaW5nRGVsZXRlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDE4ODU0NykKKysrIFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE4IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5j
b20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3
aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbToKKyAgICAg
ICAgKFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2spOgorICAgICAgICAoLVtXZWJGaXhl
ZFBvc2l0aW9uQ29udGVudCBzY3JvbGxPclpvb21DaGFuZ2VkOl0pOgorICAgICAgICAoLVtXZWJG
aXhlZFBvc2l0aW9uQ29udGVudCBvdmVyZmxvd1Njcm9sbFBvc2l0aW9uRm9yTGF5ZXI6Y2hhbmdl
ZFRvOl0pOgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBzZXRWaWV3cG9ydENv
bnN0cmFpbmVkTGF5ZXJzOnN0aWNreUNvbnRhaW5lck1hcDpdKToKKyAgICAgICAgKC1bV2ViRml4
ZWRQb3NpdGlvbkNvbnRlbnQgaGFzRml4ZWRPclN0aWNreVBvc2l0aW9uTGF5ZXJzXSk6CisgICAg
ICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IG1pbmltdW1PZmZzZXRGcm9tRml4ZWRQb3Np
dGlvbkxheWVyc1RvQW5jaG9yRWRnZTpvZlJlY3Q6aW5MYXllcjpdKToKKwogMjAxNS0wOC0xMyAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3Rv
ciBhbmQgaW1wcm92ZSBUZXh0SW5kaWNhdG9yIHRvIHByZXBhcmUgZm9yIHRlc3RzCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhl
ZFBvc2l0aW9uQ29udGVudC5tbQkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktpdC9p
b3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTQ4LDkgKzQ4LDkgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKIAotc3RhdGljIE11dGV4JiBXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFM
b2NrKCkKK3N0YXRpYyBMb2NrJiBXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIG11dGV4LCAoKSk7CiAgICAg
cmV0dXJuIG11dGV4OwogfQogCkBAIC0xMDEsNyArMTAxLDcgQEAgLSAodm9pZClkZWFsbG9jCiAK
IC0gKHZvaWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dSZWN0KXBvc2l0aW9uZWRPYmplY3RzUmVj
dAogewotICAgIE11dGV4TG9ja2VyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9j
aygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9j
aygpKTsKIAogICAgIExheWVySW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gX3ByaXZhdGUt
Pm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5lbmQoKTsKICAgICBmb3IgKExheWVySW5mb01h
cDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5
ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewpAQCAtMTQwLDcgKzE0MCw3IEBAIC0gKHZv
aWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dSZWN0KXBvc2kKIAogLSAodm9pZClvdmVyZmxvd1Nj
cm9sbFBvc2l0aW9uRm9yTGF5ZXI6KENBTGF5ZXIgKilzY3JvbGxMYXllciBjaGFuZ2VkVG86KENH
UG9pbnQpc2Nyb2xsUG9zaXRpb24KIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZpeGVkUG9z
aXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZpeGVkUG9z
aXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAKICAgICBMYXllckluZm9NYXA6OmNvbnN0X2l0ZXJh
dG9yIGVuZCA9IF9wcml2YXRlLT5tX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuZW5kKCk7CiAg
ICAgZm9yIChMYXllckluZm9NYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gX3ByaXZhdGUtPm1fdmll
d3BvcnRDb25zdHJhaW5lZExheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKQEAgLTE3
Myw3ICsxNzMsNyBAQCAtICh2b2lkKWRpZEZpbmlzaFNjcm9sbGluZ09yWm9vbWluZwogCiAtICh2
b2lkKXNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6KFdURjo6SGFzaE1hcDxDQUxheWVyICos
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpWaWV3cG9ydENvbnN0cmFpbnRzPj4mKWxheWVyTWFw
IHN0aWNreUNvbnRhaW5lck1hcDooV1RGOjpIYXNoTWFwPENBTGF5ZXIqLCBDQUxheWVyKj4mKXN0
aWNreUNvbnRhaW5lcnMKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZpeGVkUG9zaXRpb25D
b250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZpeGVkUG9zaXRpb25D
b250ZW50RGF0YUxvY2soKSk7CiAKICAgICBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVk
TGF5ZXJzLmNsZWFyKCk7CiAKQEAgLTE5MCw3ICsxOTAsNyBAQCAtICh2b2lkKXNldFZpZXdwb3J0
Q29uc3RyYWluZWRMYXllcnM6KFdUCiAKIC0gKEJPT0wpaGFzRml4ZWRPclN0aWNreVBvc2l0aW9u
TGF5ZXJzCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERh
dGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERh
dGFMb2NrKCkpOwogICAgIHJldHVybiAhX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExh
eWVycy5pc0VtcHR5KCk7CiB9CiAKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgVmlld3BvcnRD
b25zdHJhaW50czo6QW5jaG9yRWRnZUZsCiAKIC0gKENHRmxvYXQpbWluaW11bU9mZnNldEZyb21G
aXhlZFBvc2l0aW9uTGF5ZXJzVG9BbmNob3JFZGdlOihXZWJGaXhlZFBvc2l0aW9uQW5jaG9yRWRn
ZSlhbmNob3JFZGdlIG9mUmVjdDooQ0dSZWN0KXJlY3QgaW5MYXllcjooQ0FMYXllciAqKWxheWVy
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2Nr
KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2Nr
KCkpOwogICAgIFZpZXdwb3J0Q29uc3RyYWludHM6OkFuY2hvckVkZ2VGbGFncyBhbmNob3JFZGdl
RmxhZ3MgPSBhbmNob3JFZGdlRmxhZ3NGb3JBbmNob3JFZGdlKGFuY2hvckVkZ2UpOwogICAgIENH
RmxvYXQgbWluaW11bU9mZnNldCA9IENHRkxPQVRfTUFYOwogICAgIExheWVySW5mb01hcDo6Y29u
c3RfaXRlcmF0b3IgZW5kID0gX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5l
bmQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU0NykKKysrIFNvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1
LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFj
ZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRh
dGFiYXNlTWFuYWdlci5tbToKKyAgICAgICAgKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVu
dGlmaWVyTG9jayk6CisgICAgICAgICgrW1dlYkRhdGFiYXNlTWFuYWdlciBzdGFydEJhY2tncm91
bmRUYXNrXSk6CisgICAgICAgICgrW1dlYkRhdGFiYXNlTWFuYWdlciBlbmRCYWNrZ3JvdW5kVGFz
a10pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBf
c3luY2hyb25pemVDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdF0pOgorICAgICAgICAoLVtX
ZWJWaWV3IF9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdEluV2ViVGhyZWFkOnN5bmNo
cm9uaXplOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5
b3V0UmVjdDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZmV0Y2hDdXN0b21GaXhlZFBvc2l0aW9u
TGF5b3V0UmVjdDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisKIDIwMTUt
MDgtMTMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0g
RG93bmxvYWRzIGRvIG5vdCBzdGFydCBpZiBwb2xpY3kgZGVjaXNpb24gaXMgbWFkZSBhc3luY2hy
b25vdXNseQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFn
ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFz
ZU1hbmFnZXIubW0JKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1N0b3Jh
Z2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYsOSArMjI2LDkg
QEAgKyAodm9pZClzY2hlZHVsZUVtcHR5RGF0YWJhc2VSZW1vdmFsCiAjaWYgUExBVEZPUk0oSU9T
KQogQGltcGxlbWVudGF0aW9uIFdlYkRhdGFiYXNlTWFuYWdlciAoV2ViRGF0YWJhc2VNYW5hZ2Vy
SW50ZXJuYWwpCiAKLXN0YXRpYyBNdXRleCYgdHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50
aWZpZXJMb2NrKCkKK3N0YXRpYyBMb2NrJiB0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRp
ZmllckxvY2soKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwg
bXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgbXV0
ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCArICh2
b2lkKWRpZEZpbmlzaExhc3RUcmFuc2FjdGlvbgogCiArICh2b2lkKXN0YXJ0QmFja2dyb3VuZFRh
c2sKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVu
dGlmaWVyTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rpb25CYWNrZ3JvdW5k
VGFza0lkZW50aWZpZXJMb2NrKCkpOwogCiAgICAgLy8gSWYgdGhlcmUncyBhbHJlYWR5IGFuIGV4
aXN0aW5nIGJhY2tncm91bmQgdGFzayBnb2luZyBvbiwgdGhlcmUncyBubyBuZWVkIHRvIHN0YXJ0
IGEgbmV3IG9uZS4KICAgICBpZiAoZ2V0VHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZp
ZXIoKSAhPSBpbnZhbGlkV2ViQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyKCkpCkBAIC0yNzUsNyAr
Mjc1LDcgQEAgKyAodm9pZClzdGFydEJhY2tncm91bmRUYXNrCiAKICsgKHZvaWQpZW5kQmFja2dy
b3VuZFRhc2sKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRh
c2tJZGVudGlmaWVyTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rpb25CYWNr
Z3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOwogCiAgICAgLy8gSXQgaXMgcG9zc2libGUgdGhh
dCB3ZSB3ZXJlIHVuYWJsZSB0byBzdGFydCB0aGUgYmFja2dyb3VuZCB0YXNrIHdoZW4gdGhlIGZp
cnN0IHRyYW5zYWN0aW9uIGJlZ2FuLgogICAgIC8vIERvbid0IHRyeSB0byBlbmQgdGhlIHRhc2sg
aW4gdGhhdCBjYXNlLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2
aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0zNjMyLDcgKzM2MzIsNyBAQCAtICh2b2lkKV9zeW5jaHJvbml6ZUN1
c3RvbUZpeGVkUG9zaXRpb25MCiAKICAgICBJbnRSZWN0IG5ld1JlY3Q7CiAgICAgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0
UmVjdE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdG
aXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKICAgICAgICAgaWYgKENHUmVjdElzTnVsbChf
cHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KSkKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgbmV3UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoX3ByaXZhdGUtPnBlbmRp
bmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCk7CkBAIC0zNjQ2LDcgKzM2NDYsNyBAQCAtICh2b2lk
KV9zeW5jaHJvbml6ZUN1c3RvbUZpeGVkUG9zaXRpb25MCiAtICh2b2lkKV9zZXRDdXN0b21GaXhl
ZFBvc2l0aW9uTGF5b3V0UmVjdEluV2ViVGhyZWFkOihDR1JlY3QpcmVjdCBzeW5jaHJvbml6ZToo
Qk9PTClzeW5jaHJvbml6ZQogewogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKF9w
cml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleCk7CisgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RN
dXRleCk7CiAgICAgICAgIF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3Qg
PSByZWN0OwogICAgIH0KICAgICBpZiAoIXN5bmNocm9uaXplKQpAQCAtMzY2MCw3ICszNjYwLDcg
QEAgLSAodm9pZClfc2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlYwogewogICAgIEFTU0VS
VChXZWJUaHJlYWRJc0xvY2tlZCgpKTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRS
ZWN0TXV0ZXgpOwogICAgICAgICBfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRS
ZWN0ID0gcmVjdDsKICAgICB9CiAgICAgW3NlbGYgX3N5bmNocm9uaXplQ3VzdG9tRml4ZWRQb3Np
dGlvbkxheW91dFJlY3RdOwpAQCAtMzY2OCw3ICszNjY4LDcgQEAgLSAodm9pZClfc2V0Q3VzdG9t
Rml4ZWRQb3NpdGlvbkxheW91dFJlYwogCiAtIChCT09MKV9mZXRjaEN1c3RvbUZpeGVkUG9zaXRp
b25MYXlvdXRSZWN0OihOU1JlY3QqKXJlY3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIoX3By
aXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgp
OwogICAgIGlmIChDR1JlY3RJc051bGwoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5
b3V0UmVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlld0RhdGEuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksNyArMjQ5
LDcgQEAgQGludGVyZmFjZSBXZWJWaWV3UHJpdmF0ZSA6IE5TT2JqZWN0IHsKICAgICBDR1NpemUg
Zml4ZWRMYXlvdXRTaXplOwogICAgIEJPT0wgbWFpblZpZXdJc1Njcm9sbGluZ09yWm9vbWluZzsK
ICAgICBpbnQzMl90IGRpZERyYXdUaWxlczsKLSAgICBXVEY6Ok11dGV4IHBlbmRpbmdGaXhlZFBv
c2l0aW9uTGF5b3V0UmVjdE11dGV4OworICAgIFdURjo6TG9jayBwZW5kaW5nRml4ZWRQb3NpdGlv
bkxheW91dFJlY3RNdXRleDsKICAgICBDR1JlY3QgcGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRS
ZWN0OwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU0NykKKysr
IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3
IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9j
aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbHVn
aW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6c2NoZWR1bGVDYWxsKToKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnJlZ2lzdGVyUGx1Z2luKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnVucmVnaXN0ZXJQbHVnaW4pOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6ZGlzcGF0Y2hDYWxsc0Zv
clBsdWdpbik6CisgICAgICAgICogUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmg6
CisgICAgICAgICogV2ViSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkljb25EYXRhYmFz
ZTo6ZGlkUmVtb3ZlQWxsSWNvbnMpOgorICAgICAgICAoV2ViSWNvbkRhdGFiYXNlOjpkaWRJbXBv
cnRJY29uVVJMRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJJY29uRGF0YWJhc2U6OmRlbGl2ZXJO
b3RpZmljYXRpb25zKToKKyAgICAgICAgKiBXZWJJY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKiBX
ZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwOgorICAgICAgICAobWFpbkJ1bmRsZUxvY1N0cmluZ3Mp
OgorICAgICAgICAoZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KToKKyAgICAgICAgKGZpbmRDYWNo
ZWRTdHJpbmcpOgorICAgICAgICAoY2FjaGVTdHJpbmcpOgorCiAyMDE1LTA4LTE3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIEFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nIGRvZXMgbm90IHJlc3BlY3QgZGV2aWNlIHNjYWxlIGZhY3Rvci4K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmNwcAkocmV2aXNpb24gMTg4NTEw
KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzIwLDE0ICszMjAsMTQgQEAgSEJJVE1BUCBXZWJJY29uRGF0YWJhc2U6OmdldE9yQ3Jl
YXRlRGVmYQogdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJlbW92ZUFsbEljb25zKCkKIHsKICAg
ICAvLyBRdWV1ZWluZyB0aGUgZW1wdHkgc3RyaW5nIGlzIGEgc3BlY2lhbCB3YXkgb2Ygc2F5aW5n
ICJ0aGlzIHF1ZXVlZCBub3RpZmljYXRpb24gaXMgdGhlIGRpZFJlbW92ZUFsbEljb25zIG5vdGlm
aWNhdGlvbiIKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9ub3RpZmljYXRpb25NdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9ub3RpZmljYXRpb25NdXRleCk7CiAgICAgbV9ub3RpZmlj
YXRpb25RdWV1ZS5hcHBlbmQoU3RyaW5nKCkpOwogICAgIHNjaGVkdWxlTm90aWZpY2F0aW9uRGVs
aXZlcnkoKTsKIH0KIAogdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZEltcG9ydEljb25VUkxGb3JQ
YWdlVVJMKGNvbnN0IFdURjo6U3RyaW5nJiBwYWdlVVJMKQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX25vdGlmaWNhdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25vdGlm
aWNhdGlvbk11dGV4KTsKICAgICBtX25vdGlmaWNhdGlvblF1ZXVlLmFwcGVuZChwYWdlVVJMLmlz
b2xhdGVkQ29weSgpKTsKICAgICBzY2hlZHVsZU5vdGlmaWNhdGlvbkRlbGl2ZXJ5KCk7CiB9CkBA
IC00MDMsNyArNDAzLDcgQEAgdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRlbGl2ZXJOb3RpZmljYXRp
bwogCiAgICAgVmVjdG9yPFN0cmluZz4gcXVldWU7CiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9zaGFyZWRXZWJJY29uRGF0YWJhc2UtPm1fbm90aWZpY2F0aW9uTXV0ZXgpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NoYXJlZFdlYkljb25EYXRhYmFzZS0+bV9ub3Rp
ZmljYXRpb25NdXRleCk7CiAgICAgICAgIHF1ZXVlLnN3YXAobV9zaGFyZWRXZWJJY29uRGF0YWJh
c2UtPm1fbm90aWZpY2F0aW9uUXVldWUpOwogICAgICAgICBtX3NoYXJlZFdlYkljb25EYXRhYmFz
ZS0+bV9kZWxpdmVyeVJlcXVlc3RlZCA9IGZhbHNlOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvd2luL1dlYkljb25EYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2lu
L1dlYkljb25EYXRhYmFzZS5oCShyZXZpc2lvbiAxODg1MTApCisrKyBTb3VyY2UvV2ViS2l0L3dp
bi9XZWJJY29uRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDcgKzExNiw3IEBAIHBy
b3RlY3RlZDoKICAgICBIYXNoTWFwPEludFNpemUsIEhCSVRNQVA+IG1fZGVmYXVsdEljb25NYXA7
CiAgICAgSGFzaE1hcDxJbnRTaXplLCBIQklUTUFQPiBtX3NoYXJlZEljb25NYXA7CiAKLSAgICBN
dXRleCBtX25vdGlmaWNhdGlvbk11dGV4OworICAgIExvY2sgbV9ub3RpZmljYXRpb25NdXRleDsK
ICAgICBWZWN0b3I8U3RyaW5nPiBtX25vdGlmaWNhdGlvblF1ZXVlOwogICAgIHZvaWQgc2NoZWR1
bGVOb3RpZmljYXRpb25EZWxpdmVyeSgpOwogICAgIGJvb2wgbV9kZWxpdmVyeVJlcXVlc3RlZDsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcAkocmV2
aXNpb24gMTg4NTEwKQorKysgU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsOSArNDQsOSBAQCBXZWJMb2NhbGl6YWJsZVN0cmlu
Z3NCdW5kbGUgV2ViS2l0TG9jYWxpCiAKIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIExvY2FsaXpl
ZFN0cmluZyo+IExvY2FsaXplZFN0cmluZ01hcDsKIAotc3RhdGljIE11dGV4JiBtYWluQnVuZGxl
TG9jU3RyaW5nc011dGV4KCkKK3N0YXRpYyBMb2NrJiBtYWluQnVuZGxlTG9jU3RyaW5nc011dGV4
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIG11dGV4LCAoKSk7
CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC01Niw5ICs1Niw5IEBAIHN0YXRpYyBMb2NhbGl6
ZWRTdHJpbmdNYXAmIG1haW5CdW5kbGVMb2MKICAgICByZXR1cm4gbWFwOwogfQogCi1zdGF0aWMg
TXV0ZXgmIGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpCitzdGF0aWMgTG9jayYgZnJhbWV3b3Jr
TG9jU3RyaW5nc011dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
TXV0ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExv
Y2ssIG11dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xNzUsMTIgKzE3NSwx
MiBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29weUxvY2FsaXplZFN0cmluZ0ZyCiBzdGF0aWMgTG9j
YWxpemVkU3RyaW5nKiBmaW5kQ2FjaGVkU3RyaW5nKFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRs
ZSogc3RyaW5nc0J1bmRsZSwgY29uc3QgU3RyaW5nJiBrZXkpCiB7CiAgICAgaWYgKCFzdHJpbmdz
QnVuZGxlKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobWFpbkJ1bmRsZUxvY1N0cmluZ3NN
dXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0
ZXgoKSk7CiAgICAgICAgIHJldHVybiBtYWluQnVuZGxlTG9jU3RyaW5ncygpLmdldChrZXkpOwog
ICAgIH0KIAogICAgIGlmIChzdHJpbmdzQnVuZGxlLT5idW5kbGUgPT0gV2ViS2l0TG9jYWxpemFi
bGVTdHJpbmdzQnVuZGxlLmJ1bmRsZSkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKGZyYW1l
d29ya0xvY1N0cmluZ3NNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKGZyYW1ld29y
a0xvY1N0cmluZ3NNdXRleCgpKTsKICAgICAgICAgcmV0dXJuIGZyYW1ld29ya0xvY1N0cmluZ3Mo
KS5nZXQoa2V5KTsKICAgICB9CiAKQEAgLTE5MCwxMiArMTkwLDEyIEBAIHN0YXRpYyBMb2NhbGl6
ZWRTdHJpbmcqIGZpbmRDYWNoZWRTdHJpbmcKIHN0YXRpYyB2b2lkIGNhY2hlU3RyaW5nKFdlYkxv
Y2FsaXphYmxlU3RyaW5nc0J1bmRsZSogc3RyaW5nc0J1bmRsZSwgY29uc3QgU3RyaW5nJiBrZXks
IExvY2FsaXplZFN0cmluZyogdmFsdWUpCiB7CiAgICAgaWYgKCFzdHJpbmdzQnVuZGxlKSB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2sobWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgpKTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrKG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgoKSk7CiAgICAg
ICAgIG1haW5CdW5kbGVMb2NTdHJpbmdzKCkuc2V0KGtleSwgdmFsdWUpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhmcmFtZXdvcmtMb2NTdHJpbmdzTXV0
ZXgoKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsK
ICAgICBmcmFtZXdvcmtMb2NTdHJpbmdzKCkuc2V0KGtleSwgdmFsdWUpOwogfQogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNj
aGVkdWxlci5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1BsdWdp
bnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcg
KzQyLDcgQEAgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6UGx1Z2luTWFpblRocgogCiB2b2lk
IFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlQ2FsbChOUFAgbnBwLCBNYWluVGhy
ZWFkRnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQqIHVzZXJEYXRhKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsK
IAogICAgIENhbGxRdWV1ZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2NhbGxRdWV1ZU1hcC5maW5kKG5w
cCk7CiAgICAgaWYgKGl0ID09IG1fY2FsbFF1ZXVlTWFwLmVuZCgpKQpAQCAtNTgsNyArNTgsNyBA
QCB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlCiAKIHZvaWQgUGx1Z2lu
TWFpblRocmVhZFNjaGVkdWxlcjo6cmVnaXN0ZXJQbHVnaW4oTlBQIG5wcCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrKG1fcXVldWVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fcXVldWVN
dXRleCk7CiAKICAgICBBU1NFUlQoIW1fY2FsbFF1ZXVlTWFwLmNvbnRhaW5zKG5wcCkpOwogICAg
IG1fY2FsbFF1ZXVlTWFwLnNldChucHAsIERlcXVlPENhbGw+KCkpOwpAQCAtNjYsNyArNjYsNyBA
QCB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnJlZ2lzdGVyCiAKIHZvaWQgUGx1Z2lu
TWFpblRocmVhZFNjaGVkdWxlcjo6dW5yZWdpc3RlclBsdWdpbihOUFAgbnBwKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1
ZU11dGV4KTsKIAogICAgIEFTU0VSVChtX2NhbGxRdWV1ZU1hcC5jb250YWlucyhucHApKTsKICAg
ICBtX2NhbGxRdWV1ZU1hcC5yZW1vdmUobnBwKTsKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBQbHVn
aW5NYWluVGhyZWFkU2NoZWR1bGVyOjpkaXNwYXRjaAogICAgIGZvciAoYXV0byYgY2FsbCA6IGNh
bGxzKSB7CiAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBwbHVnLWluIGhhcyBiZWVuIGRlc3Ryb3ll
ZC4KICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgp
OworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fcXVldWVNdXRleCk7CiAgICAgICAgICAg
ICBpZiAoIW1fY2FsbFF1ZXVlTWFwLmNvbnRhaW5zKG5wcCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbk1h
aW5UaHJlYWRTY2hlZHVsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9QbHVn
aW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaAkocmV2aXNpb24gMTg4NTEwKQorKysgU291
cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9jYWxsUGVu
ZGluZzsKICAgICBDYWxsUXVldWVNYXAgbV9jYWxsUXVldWVNYXA7Ci0gICAgTXV0ZXggbV9xdWV1
ZU11dGV4OworICAgIExvY2sgbV9xdWV1ZU11dGV4OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTg4NTQ3KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdp
dGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwOgorICAgICAgICAo
amF2YVNjcmlwdFRocmVhZHNNdXRleCk6CisgICAgICAgIChydW5KYXZhU2NyaXB0VGhyZWFkKToK
KyAgICAgICAgKHN0YXJ0SmF2YVNjcmlwdFRocmVhZHMpOgorICAgICAgICAoc3RvcEphdmFTY3Jp
cHRUaHJlYWRzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24u
Y3BwOiBGaXhlZCBhIGJ1ZyBpbiB0aGUgdGVzdCB0aGF0IEkgZm91bmQgZnJvbSB0dXJuaW5nIHRo
ZSB0ZXN0IGludG8gYSBiZW5jaG1hcmsuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvV29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNS0wOC0xNyAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24ncyBzZXNzaW9u
SUQgbmVlZHMgdG8gYmUgc2V0IHdoZW5ldmVyIHRoZSBBUEk6OldlYnNpdGVEYXRhU3RvcmUgaXMg
c2V0CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNw
cAkocmV2aXNpb24gMTg4NTEwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRo
cmVhZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxz
dGRsaWIuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CkBAIC00NCw5ICs0NSw5IEBAIHN0YXRpYyBjb25zdCBzaXplX3QgamF2YVNjcmlwdFRo
cmVhZHNDb3UKIHN0YXRpYyBib29sIGphdmFTY3JpcHRUaHJlYWRzU2hvdWxkVGVybWluYXRlOwog
c3RhdGljIEpTQ29udGV4dEdyb3VwUmVmIGphdmFTY3JpcHRUaHJlYWRzR3JvdXA7CiAKLXN0YXRp
YyBNdXRleCYgamF2YVNjcmlwdFRocmVhZHNNdXRleCgpCitzdGF0aWMgTG9jayYgamF2YVNjcmlw
dFRocmVhZHNNdXRleCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11
dGV4LCBzdGF0aWNNdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChMb2NrLCBzdGF0aWNNdXRleCwgKCkpOwogICAgIHJldHVybiBzdGF0aWNNdXRleDsKIH0KIApA
QCAtNzAsMjYgKzcxLDI2IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikKIAogICAg
IEpTR2xvYmFsQ29udGV4dFJlZiBjdHg7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
amF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgY3R4ID0gSlNHbG9iYWxDb250ZXh0
Q3JlYXRlSW5Hcm91cChqYXZhU2NyaXB0VGhyZWFkc0dyb3VwLCAwKTsKICAgICB9CiAKICAgICBK
U1N0cmluZ1JlZiBzY3JpcHRSZWY7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
amF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2
YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgc2NyaXB0UmVmID0gSlNTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0KTsKICAgICB9CiAKICAgICB3aGlsZSAodHJ1ZSkgewog
ICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVh
ZHNNdXRleCgpKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJl
YWRzTXV0ZXgoKSk7CiAgICAgICAgICAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CiAgICAg
ICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGN0eCwgc2NyaXB0UmVmLCAwLCAwLCAxLCAmZXhjZXB0
aW9uKTsKICAgICAgICAgICAgIEFTU0VSVCghZXhjZXB0aW9uKTsKICAgICAgICAgfQogCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011
dGV4KCkpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNN
dXRleCgpKTsKICAgICAgICAgICAgIGNvbnN0IHNpemVfdCB2YWx1ZXNDb3VudCA9IDEwMjQ7CiAg
ICAgICAgICAgICBKU1ZhbHVlUmVmIHZhbHVlc1t2YWx1ZXNDb3VudF07CiAgICAgICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVlc0NvdW50OyArK2kpCkBAIC05Nyw3ICs5OCw3IEBA
IHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikKICAgICAgICAgfQogCiAgICAgICAgIHsK
LSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkp
OworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgp
KTsKICAgICAgICAgICAgIGlmIChqYXZhU2NyaXB0VGhyZWFkc1Nob3VsZFRlcm1pbmF0ZSkKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTA2LDcgKzEwNyw3IEBAIHZvaWQg
cnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikKICAgICAgICAgaWYgKHJhbmQoKSAlIDUpCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlw
dFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRo
cmVhZHNNdXRleCgpKTsKICAgICAgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWQgPSBjdXJyZW50
VGhyZWFkKCk7CiAgICAgICAgIGRldGFjaFRocmVhZCh0aHJlYWQpOwogICAgICAgICBqYXZhU2Ny
aXB0VGhyZWFkcygpLnJlbW92ZSh0aHJlYWQpOwpAQCAtMTE0LDcgKzExNSw3IEBAIHZvaWQgcnVu
SmF2YVNjcmlwdFRocmVhZCh2b2lkKikKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICBKU1N0cmluZ1JlbGVhc2Uo
c2NyaXB0UmVmKTsKICAgICBKU0dhcmJhZ2VDb2xsZWN0KGN0eCk7CiAgICAgSlNHbG9iYWxDb250
ZXh0UmVsZWFzZShjdHgpOwpAQCAtMTI0LDcgKzEyNSw3IEBAIHZvaWQgc3RhcnRKYXZhU2NyaXB0
VGhyZWFkcygpCiB7CiAgICAgamF2YVNjcmlwdFRocmVhZHNHcm91cCA9IEpTQ29udGV4dEdyb3Vw
Q3JlYXRlKCk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRl
eCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwog
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBqYXZhU2NyaXB0VGhyZWFkc0NvdW50OyArK2kp
CiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkuYWRkKGNyZWF0ZVRocmVhZCgmcnVuSmF2YVNj
cmlwdFRocmVhZCwgMCwgMCkpOwpAQCAtMTMzLDEzICsxMzQsMTMgQEAgdm9pZCBzdGFydEphdmFT
Y3JpcHRUaHJlYWRzKCkKIHZvaWQgc3RvcEphdmFTY3JpcHRUaHJlYWRzKCkKIHsKICAgICB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAg
ICBqYXZhU2NyaXB0VGhyZWFkc1Nob3VsZFRlcm1pbmF0ZSA9IHRydWU7CiAgICAgfQogCiAgICAg
VmVjdG9yPFRocmVhZElkZW50aWZpZXIsIGphdmFTY3JpcHRUaHJlYWRzQ291bnQ+IHRocmVhZHM7
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRl
eCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgp
KTsKICAgICAgICAgY29weVRvVmVjdG9yKGphdmFTY3JpcHRUaHJlYWRzKCksIHRocmVhZHMpOwog
ICAgICAgICBBU1NFUlQodGhyZWFkcy5zaXplKCkgPT0gamF2YVNjcmlwdFRocmVhZHNDb3VudCk7
CiAgICAgfQpAQCAtMTQ4LDcgKzE0OSw3IEBAIHZvaWQgc3RvcEphdmFTY3JpcHRUaHJlYWRzKCkK
ICAgICAgICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24odGhyZWFkc1tpXSk7CiAKICAgICB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAg
ICBqYXZhU2NyaXB0VGhyZWFkcygpLmNsZWFyKCk7CiAgICAgfQogCkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAJKHJldmlzaW9uIDE4ODUxMCkKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIHJ1blRlc3QoCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAhc2hvdWxkQ29udGludWUgfHwgIXF1ZXVlLmlzRW1wdHkoKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRpbWVvdXQpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRDb250aW51
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc2hvdWxkQ29udGludWUgJiYgcXVldWUu
aXNFbXB0eSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHNob3VsZE5vdGlmeSA9IHF1ZXVlLnNpemUoKSA9PSBtYXhRdWV1ZVNp
emU7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBxdWV1ZS50YWtlRmlyc3QoKTsK
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAkocmV2
aXNpb24gMTg4NTEwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogCiAjaW5jbHVkZSAiVGVzdC5oIgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYv
V29ya1F1ZXVlLmg+CiAjaW5jbHVkZSA8c3RyaW5nPgpAQCAtNDAsOCArNDIsOCBAQCBzdGF0aWMg
Y29uc3QgY2hhciogZGlzcGF0Y2hBZnRlckxhYmVsID0gCiAgICAgCiBURVNUKFdURl9Xb3JrUXVl
dWUsIFNpbXBsZSkKIHsKLSAgICBNdXRleCBtX2xvY2s7Ci0gICAgVGhyZWFkQ29uZGl0aW9uIG1f
dGVzdENvbXBsZXRlZDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBDb25kaXRpb24gbV90ZXN0Q29t
cGxldGVkOwogICAgIFZlY3RvcjxzdGQ6OnN0cmluZz4gbV9mdW5jdGlvbkNhbGxPcmRlcjsKIAog
ICAgIGJvb2wgY2FsbGVkU2ltcGxlVGVzdCA9IGZhbHNlOwpAQCAtNTYsNyArNTgsNyBAQCBURVNU
KFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICBpbnQgaW5pdGlhbFJlZkNvdW50ID0gcXVldWUt
PnJlZkNvdW50KCk7CiAgICAgRVhQRUNUX0VRKDEsIGluaXRpYWxSZWZDb3VudCk7CiAKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2sp
OwogICAgIHF1ZXVlLT5kaXNwYXRjaChbJl0odm9pZCkgewogICAgICAgICBtX2Z1bmN0aW9uQ2Fs
bE9yZGVyLmFwcGVuZChzaW1wbGVUZXN0TGFiZWwpOwogICAgICAgICBjYWxsZWRTaW1wbGVUZXN0
ID0gdHJ1ZTsKQEAgLTY5LDcgKzcxLDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBTaW1wbGUpCiAg
ICAgfSk7CiAKICAgICBxdWV1ZS0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7
CiAgICAgICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIuYXBwZW5kKHRoaXJkVGVzdExhYmVsKTsKICAg
ICAgICAgY2FsbGVkVGhpcmRUZXN0ID0gdHJ1ZTsKIApAQCAtNzcsNyArNzksNyBAQCBURVNUKFdU
Rl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICAgICAgRVhQRUNUX1RSVUUoY2FsbGVkTG9uZ1Rlc3Qp
OwogICAgICAgICBFWFBFQ1RfVFJVRShjYWxsZWRUaGlyZFRlc3QpOwogICAgICAgICAKLSAgICAg
ICAgbV90ZXN0Q29tcGxldGVkLnNpZ25hbCgpOworICAgICAgICBtX3Rlc3RDb21wbGV0ZWQubm90
aWZ5T25lKCk7CiAgICAgfSk7CiAKICAgICBFWFBFQ1RfR1QocXVldWUtPnJlZkNvdW50KCksIDEp
OwpAQCAtOTYsOCArOTgsOCBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKIAogVEVTVChX
VEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMpCiB7Ci0gICAgTXV0ZXggbV9sb2NrOwotICAgIFRocmVh
ZENvbmRpdGlvbiBtX3Rlc3RRdWV1ZTFDb21wbGV0ZWQsIG1fdGVzdFF1ZXVlMkNvbXBsZXRlZDsK
KyAgICBMb2NrIG1fbG9jazsKKyAgICBDb25kaXRpb24gbV90ZXN0UXVldWUxQ29tcGxldGVkLCBt
X3Rlc3RRdWV1ZTJDb21wbGV0ZWQ7CiAgICAgVmVjdG9yPHN0ZDo6c3RyaW5nPiBtX2Z1bmN0aW9u
Q2FsbE9yZGVyOwogCiAgICAgYm9vbCBjYWxsZWRTaW1wbGVUZXN0ID0gZmFsc2U7CkBAIC0xMTAs
NyArMTEyLDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMpCiAgICAgRVhQRUNUX0VR
KDEsIHF1ZXVlMS0+cmVmQ291bnQoKSk7CiAgICAgRVhQRUNUX0VRKDEsIHF1ZXVlMi0+cmVmQ291
bnQoKSk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX2xvY2spOwogICAgIAogICAgIHF1ZXVlMS0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsK
ICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQoc2ltcGxlVGVzdExhYmVsKTsKQEAg
LTEyMCwyMiArMTIyLDIyIEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgVHdvUXVldWVzKQogICAgIHF1
ZXVlMi0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKICAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xl
ZXBfZm9yKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTApKTsKIAotICAgICAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsK
IAogICAgICAgICAvLyBXaWxsIGZhaWwgaWYgcXVldWUyIHRvb2sgdGhlIG11dGV4IGJlZm9yZSBx
dWV1ZTEuCiAgICAgICAgIEVYUEVDVF9UUlVFKGNhbGxlZFRoaXJkVGVzdCk7CiAKICAgICAgICAg
bV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQobG9uZ1Rlc3RMYWJlbCk7CiAgICAgICAgIGNhbGxl
ZExvbmdUZXN0ID0gdHJ1ZTsKLSAgICAgICAgbV90ZXN0UXVldWUyQ29tcGxldGVkLnNpZ25hbCgp
OworICAgICAgICBtX3Rlc3RRdWV1ZTJDb21wbGV0ZWQubm90aWZ5T25lKCk7CiAgICAgfSk7CiAK
ICAgICBxdWV1ZTEtPmRpc3BhdGNoKFsmXSh2b2lkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX2xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgICAg
ICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZCh0aGlyZFRlc3RMYWJlbCk7CiAgICAgICAgIGNh
bGxlZFRoaXJkVGVzdCA9IHRydWU7CiAgICAgICAgIAotICAgICAgICBtX3Rlc3RRdWV1ZTFDb21w
bGV0ZWQuc2lnbmFsKCk7CisgICAgICAgIG1fdGVzdFF1ZXVlMUNvbXBsZXRlZC5ub3RpZnlPbmUo
KTsKICAgICB9KTsKIAogICAgIG1fdGVzdFF1ZXVlMUNvbXBsZXRlZC53YWl0KG1fbG9jayk7CkBA
IC0xNTgsOCArMTYwLDggQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMpCiAKIFRFU1Qo
V1RGX1dvcmtRdWV1ZSwgRGlzcGF0Y2hBZnRlcikKIHsKLSAgICBNdXRleCBtX2xvY2s7Ci0gICAg
VGhyZWFkQ29uZGl0aW9uIG1fdGVzdENvbXBsZXRlZCwgbV9kaXNwYXRjaEFmdGVyVGVzdENvbXBs
ZXRlZDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBDb25kaXRpb24gbV90ZXN0Q29tcGxldGVkLCBt
X2Rpc3BhdGNoQWZ0ZXJUZXN0Q29tcGxldGVkOwogICAgIFZlY3RvcjxzdGQ6OnN0cmluZz4gbV9m
dW5jdGlvbkNhbGxPcmRlcjsKIAogICAgIGJvb2wgY2FsbGVkU2ltcGxlVGVzdCA9IGZhbHNlOwpA
QCAtMTY3LDIwICsxNjksMjAgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBEaXNwYXRjaEFmdGVyKQog
CiAgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRl
c3QuZGlzcGF0Y2hBZnRlciIpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKIAogICAgIHF1ZXVlLT5kaXNwYXRjaChbJl0o
dm9pZCkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBl
bmQoc2ltcGxlVGVzdExhYmVsKTsKICAgICAgICAgY2FsbGVkU2ltcGxlVGVzdCA9IHRydWU7Ci0g
ICAgICAgIG1fdGVzdENvbXBsZXRlZC5zaWduYWwoKTsKKyAgICAgICAgbV90ZXN0Q29tcGxldGVk
Lm5vdGlmeU9uZSgpOwogICAgIH0pOwogCiAgICAgcXVldWUtPmRpc3BhdGNoQWZ0ZXIoc3RkOjpj
aHJvbm86Om1pbGxpc2Vjb25kcyg1MDApLCBbJl0odm9pZCkgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAg
ICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQoZGlzcGF0Y2hBZnRlckxhYmVsKTsKICAg
ICAgICAgY2FsbGVkRGlzcGF0Y2hBZnRlclRlc3QgPSB0cnVlOwotICAgICAgICBtX2Rpc3BhdGNo
QWZ0ZXJUZXN0Q29tcGxldGVkLnNpZ25hbCgpOworICAgICAgICBtX2Rpc3BhdGNoQWZ0ZXJUZXN0
Q29tcGxldGVkLm5vdGlmeU9uZSgpOwogICAgIH0pOwogCiAgICAgbV90ZXN0Q29tcGxldGVkLndh
aXQobV9sb2NrKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29y
a1F1ZXVlR0xpYi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAkocmV2aXNpb24gMTg4NTEwKQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBURVNUKFdURl9X
b3JrUXVldWUsIEFzeW5jSU8pCiB7CiAgICAgc3RydWN0IFRlc3RpbmdDb250ZXh0IHsKLSAgICAg
ICAgTXV0ZXggbV9sb2NrOworICAgICAgICBMb2NrIG1fbG9jazsKICAgICAgICAgVGhyZWFkQ29u
ZGl0aW9uIG1fdGVzdENvbXBsZXRlZDsKICAgICAgICAgR01haW5Db250ZXh0KiBtX21haW5Db250
ZXh0OwogICAgIH0gY29udGV4dDsKQEAgLTQ5LDcgKzQ5LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVl
LCBBc3luY0lPKQogICAgIEdVbmlxdWVQdHI8Y2hhcj4gY3VycmVudERpcmVjdG9yeShnX2dldF9j
dXJyZW50X2RpcigpKTsKICAgICBHUmVmUHRyPEdGaWxlPiBmaWxlID0gYWRvcHRHUmVmKGdfZmls
ZV9uZXdfZm9yX3BhdGgoY3VycmVudERpcmVjdG9yeS5nZXQoKSkpOwogCi0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKGNvbnRleHQubV9sb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihjb250ZXh0
Lm1fbG9jayk7CiAgICAgcXVldWUtPmRpc3BhdGNoKFsmXSh2b2lkKSB7CiAgICAgICAgIEVYUEVD
VF9UUlVFKGdfbWFpbl9jb250ZXh0X2dldF90aHJlYWRfZGVmYXVsdCgpKTsKICAgICAgICAgRVhQ
RUNUX1RSVUUoZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCkgIT0gY29udGV4dC5t
X21haW5Db250ZXh0KTsKQEAgLTU3LDcgKzU3LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBBc3lu
Y0lPKQogICAgICAgICBnX2ZpbGVfcXVlcnlfaW5mb19hc3luYyhmaWxlLmdldCgpLCBHX0ZJTEVf
QVRUUklCVVRFX1NUQU5EQVJEX1NJWkUsIEdfRklMRV9RVUVSWV9JTkZPX05PTkUsIEdfUFJJT1JJ
VFlfREVGQVVMVCwgbnVsbHB0ciwKICAgICAgICAgICAgIFtdKEdPYmplY3QqLCBHQXN5bmNSZXN1
bHQqLCBncG9pbnRlciB1c2VyRGF0YSkgewogICAgICAgICAgICAgICAgIFRlc3RpbmdDb250ZXh0
KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8VGVzdGluZ0NvbnRleHQqPih1c2VyRGF0YSk7Ci0gICAg
ICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGNvbnRleHQtPm1fbG9jayk7CisgICAgICAg
ICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoY29udGV4dC0+bV9sb2NrKTsKICAgICAgICAgICAg
ICAgICBFWFBFQ1RfRVEoZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCksIGNvbnRl
eHQtPm1fbWFpbkNvbnRleHQpOwogICAgICAgICAgICAgICAgIGNvbnRleHQtPm1fdGVzdENvbXBs
ZXRlZC5zaWduYWwoKTsKICAgICAgICAgICAgIH0sICZjb250ZXh0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259236</attachid>
            <date>2015-08-17 21:18:08 -0700</date>
            <delta_ts>2015-08-17 21:33:25 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>215916</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RG
OjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBhbHNvIGJlZWZzIHVwIGFuZCByYXRpb25hbGl6ZXMgdGhlIENv
bmRpdGlvbiBBUEksIHNvIHRoYXQgaXQgY2FuIGRlYWwgd2l0aCB1bml0cyBvZiB0aW1lCisgICAg
ICAgIG90aGVyIHRoYW4ganVzdCBzdGVhZHlfY2xvY2suIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRv
IHBvcnQgVGhyZWFkQ29uZGl0aW9uIGFuZAorICAgICAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJs
ZSBjb2RlIG92ZXIgdG8gQ29uZGl0aW9uLiBUaGlzIHBhdGNoIGRvZXMgbm90IHRha2UgYSBwb3Np
dGlvbiBvbiB3aGF0CisgICAgICAgIGtpbmQgb2YgdGltZSBpcyBiZXN0OyBmcm9tIHJlYWRpbmcg
YSBsb3Qgb2YgdGhlIHVzZXMgaW4gV2ViQ29yZSwgaXQgc2VlbXMgbGlrZSBvdXIgdXNlIG9mCisg
ICAgICAgIGRvdWJsZSB0byBtZWFzdXJlIHNlY29uZHMgaXMgb2Z0ZW4gbmljZXIgdGhhbiB0aGUg
bWFueSBkaWZmZXJlbnQgY2xhc3NlcyBpbiBzdGQ6OmNocm9uby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgQ29uZGl0aW9uIHNwZWVkIHRlc3QsIHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBvZiB0aGlz
IGlzIGEgZ29vZCBpZGVhLiBBbmQgaW5kZWVkIGl0CisgICAgICAgIGlzLiBUaGUgMS1wcm9kdWNl
ci8xLWNvbnN1bWVyIHNjZW5hcmlvIHdpdGggYSAxMDAtZWxlbWVudCBxdWV1ZSBydW5zIDM2eCBm
YXN0ZXIgdXNpbmcKKyAgICAgICAgTG9jay9Db25kaXRpb24gdGhhbiBNdXRleC9UaHJlYWRDb25k
aXRpb24gd2hlbiB5b3UgdXNlIHRoZSBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBzdHlsZS4gSXQK
KyAgICAgICAgcnVucyA1OHggZmFzdGVyIHdpdGggTG9jay9Db25kaXRpb24gd2hlbiB5b3UgdXNl
IHRoZSBub3RpZnlBbGwoKS1hdC1ib3VuZGFyeSBzdHlsZS4gTm90ZSB0aGF0CisgICAgICAgIEkg
aGF2ZSBhIGJ1ZyBvcGVuIGZvciBtYWtpbmcgdGhlIG5vdGlmeU9uZSgpLXBlci1lbnF1ZXVlIHN0
eWxlIGV2ZW4gZmFzdGVyOgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MDkwLiBBbHNvLCB0aGUgMTAtY29uc3VtZXIvMTAtcHJvZHVjZXIgc2NlbmFy
aW8gd2l0aAorICAgICAgICBhIDEwMC1lbGVtZW50IHF1ZXVlIHJ1bnMgMjB4IGZhc3RlciB3aXRo
IExvY2svQ29uZGl0aW9uIGZvciBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBhbmQgMzB4CisgICAg
ICAgIGZhc3RlciB3aXRoIG5vdGlmeUFsbCgpLWF0LWJvdW5kYXJ5LiBTbywgaXQgc2VlbXMgdGhh
dCByZXBsYWNpbmcgYWxsIHVzZXMgb2Ygc3lzdGVtIG11dGV4ZXMgYW5kCisgICAgICAgIGNvbmRp
dGlvbiB2YXJpYWJsZXMgd2l0aCBvdXIgb3duIHRoaW5nIGlzIGEgZ3JlYXQgaWRlYS4KKworICAg
ICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJr
cy9Db25kaXRpb25TcGVlZFRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvQ29uZGl0aW9u
Lmg6CisgICAgICAgIChXVEY6OkNvbmRpdGlvbjo6Q29uZGl0aW9uKToKKyAgICAgICAgKFdURjo6
Q29uZGl0aW9uOjp3YWl0VW50aWwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3Ip
OgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXQpOgorICAgICAgICAoV1RGOjpDb25kaXRp
b246OndhaXRVbnRpbFdhbGxDbG9ja1NlY29uZHMpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246
OndhaXRVbnRpbE1vbm90b25pY0Nsb2NrU2Vjb25kcyk6CisgICAgICAgIChXVEY6OkNvbmRpdGlv
bjo6bm90aWZ5T25lKToKKyAgICAgICAgKFdURjo6Q29uZGl0aW9uOjpub3RpZnlBbGwpOgorICAg
ICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3JTZWNvbmRzSW1wbCk6CisgICAgICAgIChXVEY6
OkNvbmRpdGlvbjo6d2FpdEZvckltcGwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OmFic29s
dXRlRnJvbVJlbGF0aXZlKToKKyAgICAgICAgKiB3dGYvTWVzc2FnZVF1ZXVlLmg6CisgICAgICAg
IChXVEY6Ok1lc3NhZ2VRdWV1ZTo6aW5maW5pdGVUaW1lKToKKyAgICAgICAgKFdURjo6TWVzc2Fn
ZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6YXBwZW5kQW5kS2lsbCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRh
VHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHkpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8
RGF0YVR5cGU+OjpwcmVwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBl
Pjo6cmVtb3ZlSWYpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojppc0Vt
cHR5KToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbCk6CisgICAg
ICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmtpbGxlZCk6CisgICAgICAgICogd3Rm
L1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25t
ZW50OjpUaHJlYWRQcml2YXRlOjpleGVjdXRlKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZp
cm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZpbmlzaCk6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCk6CisgICAgICAg
ICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaDoKKyAgICAgICAgKiB3dGYvUGFya2luZ0xvdC5j
cHA6CisgICAgICAgIChXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KToKKyAgICAg
ICAgKiB3dGYvUGFya2luZ0xvdC5oOgorICAgICAgICAoV1RGOjpQYXJraW5nTG90Ojpjb21wYXJl
QW5kUGFyayk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAg
KFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZyk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5j
cHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHd0Zi9k
dG9hLmNwcDoKKyAgICAgICAgKFdURjo6cG93NW11bHQpOgorICAgICAgICAqIHd0Zi9kdG9hLmg6
CisKIDIwMTUtMDgtMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBCdWlsZCBEZWJ1ZyBTdWZmaXggb24gV2luZG93cyB3aXRoIENNYWtlCklu
ZGV4OiBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKy8vIE9uIE1hYywgeW91IGNhbiBidWlsZCB0aGlzIGxp
a2Ugc286CisvLyBjbGFuZysrIC1vIENvbmRpdGlvblNwZWVkVGVzdCBTb3VyY2UvV1RGL2JlbmNo
bWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RGIC1MV2ViS2l0
QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vjb3JlIC1zdGQ9
YysrMTEKKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVk
ZSA8dGhyZWFkPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvRGF0YUxvZy5o
PgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJp
bWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIHsKKworY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisKK3Vuc2lnbmVkIG51bVByb2R1Y2VyczsKK3Vuc2ln
bmVkIG51bUNvbnN1bWVyczsKK3Vuc2lnbmVkIG1heFF1ZXVlU2l6ZTsKK3Vuc2lnbmVkIG51bU1l
c3NhZ2VzUGVyUHJvZHVjZXI7CisgICAgCitOT19SRVRVUk4gdm9pZCB1c2FnZSgpCit7CisgICAg
cHJpbnRmKCJVc2FnZTogQ29uZGl0aW9uU3BlZWRUZXN0IGxvY2t8bXV0ZXh8YWxsIDxudW0gcHJv
ZHVjZXJzPiA8bnVtIGNvbnN1bWVycz4gPG1heCBxdWV1ZSBzaXplPiA8bnVtIG1lc3NhZ2VzIHBl
ciBwcm9kdWNlcj5cbiIpOworICAgIGV4aXQoMSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0b3IsIHR5cGVuYW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIExvY2tUeXBlPgordm9pZCB3
YWl0KENvbmRpdGlvblR5cGUmIGNvbmRpdGlvbiwgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IEZ1bmN0
b3ImIHByZWRpY2F0ZSkKK3sKKyAgICB3aGlsZSAoIXByZWRpY2F0ZSgpKQorICAgICAgICBjb25k
aXRpb24ud2FpdChsb2NrKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVu
YW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIE5vdGlmeUZ1bmN0b3IsIHR5cGVuYW1lIE5vdGlm
eUFsbEZ1bmN0b3I+Cit2b2lkIHJ1blRlc3QoCisgICAgdW5zaWduZWQgbnVtUHJvZHVjZXJzLAor
ICAgIHVuc2lnbmVkIG51bUNvbnN1bWVycywKKyAgICB1bnNpZ25lZCBtYXhRdWV1ZVNpemUsCisg
ICAgdW5zaWduZWQgbnVtTWVzc2FnZXNQZXJQcm9kdWNlciwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIERlcXVlPHVuc2lnbmVkPiBxdWV1ZTsKKyAgICBib29sIHNob3VsZENvbnRpbnVlID0gdHJ1
ZTsKKyAgICBMb2NrVHlwZSBsb2NrOworICAgIENvbmRpdGlvblR5cGUgZW1wdHlDb25kaXRpb247
CisgICAgQ29uZGl0aW9uVHlwZSBmdWxsQ29uZGl0aW9uOworCisgICAgVmVjdG9yPFRocmVhZElk
ZW50aWZpZXI+IGNvbnN1bWVyVGhyZWFkczsKKyAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4g
cHJvZHVjZXJUaHJlYWRzOworCisgICAgVmVjdG9yPHVuc2lnbmVkPiByZWNlaXZlZDsKKyAgICBM
b2NrVHlwZSByZWNlaXZlZExvY2s7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29u
c3VtZXJzOyBpLS07KSB7CisgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmll
ciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAg
ICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbXVz
dE5vdGlmeSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB3YWl0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5
Q29uZGl0aW9uLCBsb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZyh0b1N0cmluZyhjdXJyZW50VGhyZWFkKCks
ICI6IENoZWNraW5nIGNvbnN1bXB0aW9uIHByZWRpY2F0ZSB3aXRoIHNob3VsZENvbnRpbnVlID0g
Iiwgc2hvdWxkQ29udGludWUsICIsIHF1ZXVlLnNpemUoKSA9PSAiLCBxdWV1ZS5zaXplKCksICJc
biIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFzaG91bGRDb250
aW51ZSB8fCAhcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSAmJiBxdWV1ZS5p
c0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgICAgICAgICAgbXVzdE5vdGlmeSA9IHF1ZXVlLnNpemUoKSA9PSBtYXhRdWV1ZVNpemU7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBxdWV1ZS50YWtlRmlyc3QoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBub3RpZnkoZnVsbENvbmRp
dGlvbiwgbXVzdE5vdGlmeSk7CisKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2tUeXBlPiBsb2NrZXIocmVjZWl2ZWRMb2Nr
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkLmFwcGVuZChyZXN1bHQpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7Cisg
ICAgICAgIGNvbnN1bWVyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmllcik7CisgICAgfQor
CisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtUHJvZHVjZXJzOyBpLS07KSB7CisgICAgICAgIFRo
cmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAg
ICAgICJQcm9kdWNlciBUaHJlYWQiLAorICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQZXJQcm9kdWNlcjsgKytp
KSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgbXVzdE5vdGlmeSA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2Nr
PExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxDb25kaXRpb24sIGxvY2ssCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKHRvU3RyaW5nKGN1cnJlbnRUaHJlYWQoKSwgIjogQ2hlY2tpbmcgcHJvZHVjdGlvbiBw
cmVkaWNhdGUgd2l0aCBzaG91bGRDb250aW51ZSA9ICIsIHNob3VsZENvbnRpbnVlLCAiLCBxdWV1
ZS5zaXplKCkgPT0gIiwgcXVldWUuc2l6ZSgpLCAiXG4iKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBxdWV1ZS5zaXplKCkgPCBtYXhRdWV1ZVNpemU7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtdXN0Tm90
aWZ5ID0gcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgcXVldWUuYXBw
ZW5kKGkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5vdGlm
eShlbXB0eUNvbmRpdGlvbiwgbXVzdE5vdGlmeSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSk7CisgICAgICAgIHByb2R1Y2VyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmll
cik7CisgICAgfQorCisgICAgZm9yIChUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIg
OiBwcm9kdWNlclRocmVhZHMpCisgICAgICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVh
ZElkZW50aWZpZXIpOworCisgICAgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9ja1R5cGU+
IGxvY2tlcihsb2NrKTsKKyAgICAgICAgc2hvdWxkQ29udGludWUgPSBmYWxzZTsKKyAgICB9Cisg
ICAgbm90aWZ5QWxsKGVtcHR5Q29uZGl0aW9uKTsKKworICAgIGZvciAoVGhyZWFkSWRlbnRpZmll
ciB0aHJlYWRJZGVudGlmaWVyIDogY29uc3VtZXJUaHJlYWRzKQorICAgICAgICB3YWl0Rm9yVGhy
ZWFkQ29tcGxldGlvbih0aHJlYWRJZGVudGlmaWVyKTsKKworICAgIFJFTEVBU0VfQVNTRVJUKG51
bVByb2R1Y2VycyAqIG51bU1lc3NhZ2VzUGVyUHJvZHVjZXIgPT0gcmVjZWl2ZWQuc2l6ZSgpKTsK
KyAgICBzdGQ6OnNvcnQocmVjZWl2ZWQuYmVnaW4oKSwgcmVjZWl2ZWQuZW5kKCkpOworICAgIGZv
ciAodW5zaWduZWQgbWVzc2FnZUluZGV4ID0gMDsgbWVzc2FnZUluZGV4IDwgbnVtTWVzc2FnZXNQ
ZXJQcm9kdWNlcjsgKyttZXNzYWdlSW5kZXgpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBwcm9k
dWNlckluZGV4ID0gMDsgcHJvZHVjZXJJbmRleCA8IG51bVByb2R1Y2VyczsgKytwcm9kdWNlcklu
ZGV4KQorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobWVzc2FnZUluZGV4ID09IHJlY2VpdmVk
W21lc3NhZ2VJbmRleCAqIG51bVByb2R1Y2VycyArIHByb2R1Y2VySW5kZXhdKTsKKyAgICB9Cit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlLCB0eXBlbmFtZSBDb25kaXRpb25UeXBlLCB0
eXBlbmFtZSBOb3RpZnlGdW5jdG9yLCB0eXBlbmFtZSBOb3RpZnlBbGxGdW5jdG9yPgordm9pZCBy
dW5CZW5jaG1hcmsoCisgICAgY29uc3QgY2hhciogbmFtZSwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIGRvdWJsZSBiZWZvcmUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWVNUygpOworICAg
IAorICAgIHJ1blRlc3Q8TG9ja1R5cGUsIENvbmRpdGlvblR5cGU+KAorICAgICAgICBudW1Qcm9k
dWNlcnMsCisgICAgICAgIG51bUNvbnN1bWVycywKKyAgICAgICAgbWF4UXVldWVTaXplLAorICAg
ICAgICBudW1NZXNzYWdlc1BlclByb2R1Y2VyLAorICAgICAgICBub3RpZnksCisgICAgICAgIG5v
dGlmeUFsbCk7CisKKyAgICBkb3VibGUgYWZ0ZXIgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWVNUygpOworCisgICAgcHJpbnRmKCIlczogJS4zbGYgbXMuXG4iLCBuYW1lLCBhZnRlciAtIGJl
Zm9yZSk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitpbnQgbWFpbihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCit7CisgICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisKKyAg
ICBpZiAoYXJnYyAhPSA2CisgICAgICAgIHx8IHNzY2FuZihhcmd2WzJdLCAiJXUiLCAmbnVtUHJv
ZHVjZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzNdLCAiJXUiLCAmbnVtQ29uc3Vt
ZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzRdLCAiJXUiLCAmbWF4UXVldWVTaXpl
KSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzVdLCAiJXUiLCAmbnVtTWVzc2FnZXNQZXJQ
cm9kdWNlcikgIT0gMSkKKyAgICAgICAgdXNhZ2UoKTsKKworICAgIGJvb2wgZGlkUnVuID0gZmFs
c2U7CisgICAgaWYgKCFzdHJjbXAoYXJndlsxXSwgImxvY2siKSB8fCAhc3RyY21wKGFyZ3ZbMV0s
ICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1hcms8TG9jaywgQ29uZGl0aW9uPigKKyAgICAg
ICAgICAgICJXVEYgTG9jayBOb3RpZnlPbmUiLAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24m
IGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9u
Lm5vdGlmeU9uZSgpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0aW9u
JiBjb25kaXRpb24pIHsKKyAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgcnVuQmVuY2htYXJrPExvY2ssIENvbmRpdGlvbj4oCisg
ICAgICAgICAgICAiV1RGIExvY2sgTm90aWZ5QWxsIiwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0
aW9uJiBjb25kaXRpb24sIGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGlmICht
dXN0Tm90aWZ5KQorICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24mIGNvbmRpdGlvbikgewor
ICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICBkaWRSdW4gPSB0cnVlOworICAgIH0KKyAgICBpZiAoIXN0cmNtcChhcmd2WzFdLCAi
bXV0ZXgiKSB8fCAhc3RyY21wKGFyZ3ZbMV0sICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1h
cms8TXV0ZXgsIFRocmVhZENvbmRpdGlvbj4oCisgICAgICAgICAgICAiUGxhdGZvcm0gTXV0ZXgg
Tm90aWZ5T25lIiwKKyAgICAgICAgICAgIFsmXSAoVGhyZWFkQ29uZGl0aW9uJiBjb25kaXRpb24s
IGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5zaWduYWwoKTsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlvbiYgY29uZGl0
aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIHJ1bkJlbmNobWFyazxNdXRleCwgVGhyZWFkQ29uZGl0aW9uPigKKyAg
ICAgICAgICAgICJQbGF0Zm9ybSBNdXRleCBOb3RpZnlBbGwiLAorICAgICAgICAgICAgWyZdIChU
aHJlYWRDb25kaXRpb24mIGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAg
ICAgICAgaWYgKG11c3ROb3RpZnkpCisgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5icm9h
ZGNhc3QoKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlv
biYgY29uZGl0aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIGRpZFJ1biA9IHRydWU7CisgICAgfQorCisgICAgaWYg
KCFkaWRSdW4pCisgICAgICAgIHVzYWdlKCk7CisKKyAgICByZXR1cm4gMDsKK30KKwpJbmRleDog
U291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw2ICsyMyw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisvLyBPbiBNYWMsIHlv
dSBjYW4gYnVpbGQgdGhpcyBsaWtlIHNvOgorLy8gY2xhbmcrKyAtbyBMb2NrU3BlZWRUZXN0IFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RG
IC1MV2ViS2l0QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vj
b3JlIC1zdGQ9YysrMTEKKwogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9Db25kaXRpb24uaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93
dGYvQ29uZGl0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDI2ICsyOSw1OSBAQAogI2luY2x1
ZGUgPGNocm9ubz4KICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPG11dGV4PgorI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXJraW5nTG90Lmg+CiAK
IG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBDb25kaXRpb24gewogcHVibGljOgorICAgIHR5cGVk
ZWYgUGFya2luZ0xvdDo6Q2xvY2sgQ2xvY2s7CisgICAgCiAgICAgQ29uZGl0aW9uKCkgeyB9CiAK
ICAgICAvLyBXYWl0IG9uIGEgcGFya2luZyBxdWV1ZSB3aGlsZSByZWxlYXNpbmcgdGhlIGdpdmVu
IGxvY2suIEl0IHdpbGwgdW5sb2NrIHRoZSBsb2NrIGp1c3QgYmVmb3JlCiAgICAgLy8gcGFya2lu
ZywgYW5kIHJlbG9jayBpdCB1cG9uIHdha2V1cC4gUmV0dXJucyB0cnVlIGlmIHdlIHdva2UgdXAg
ZHVlIHRvIHNvbWUgY2FsbCB0bwotICAgIC8vIG5vdGlmeU9uZSgpIG9yIG5vdGlmeUFsbCgpLiBS
ZXR1cm5zIGZhbHNlIGlmIHdlIHdva2UgdXAgZHVlIHRvIGEgdGltZW91dC4KKyAgICAvLyBub3Rp
ZnlPbmUoKSBvciBub3RpZnlBbGwoKS4gUmV0dXJucyBmYWxzZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0
byBhIHRpbWVvdXQuIE5vdGUgdGhhdCB0aGlzIGZvcm0KKyAgICAvLyBvZiB3YWl0VW50aWwoKSBo
YXMgc29tZSBxdWlya3M6CisgICAgLy8KKyAgICAvLyBObyBzcHVyaW91cyB3YWtlLXVwOiBpbiBv
cmRlciBmb3IgdGhpcyB0byByZXR1cm4gYmVmb3JlIHRoZSB0aW1lb3V0LCBzb21lIG5vdGlmeU9u
ZSgpIG9yCisgICAgLy8gbm90aWZ5QWxsKCkgY2FsbCBtdXN0IGhhdmUgaGFwcGVuZWQuIE5vIHNj
ZW5hcmlvIG90aGVyIHRoYW4gdGltZW91dCBvciBub3RpZnkgY2FuIGxlYWQgdG8gdGhpcworICAg
IC8vIG1ldGhvZCByZXR1cm5pbmcuIFRoaXMgbWVhbnMsIGZvciBleGFtcGxlLCB0aGF0IHlvdSBj
YW4ndCB1c2UgcHRocmVhZCBjYW5jZWxhdGlvbiBvciBzaWduYWxzIHRvCisgICAgLy8gY2F1c2Ug
ZWFybHkgcmV0dXJuLgorICAgIC8vCisgICAgLy8gUGFzdCB0aW1lb3V0OiBpdCdzIHBvc3NpYmxl
IGZvciB3YWl0VW50aWwoKSB0byBiZSBjYWxsZWQgd2l0aCBhIHRpbWVvdXQgaW4gdGhlIHBhc3Qu
IEluIHRoYXQKKyAgICAvLyBjYXNlLCB3YWl0VW50aWwoKSB3aWxsIHN0aWxsIHJlbGVhc2UgdGhl
IGxvY2sgYW5kIHJlYWNxdWlyZSBpdC4gd2FpdFVudGlsKCkgd2lsbCBhbHdheXMgcmV0dXJuCisg
ICAgLy8gZmFsc2UgaW4gdGhhdCBjYXNlLiBUaGlzIGlzIHN1YnRseSBkaWZmZXJlbnQgZnJvbSBz
b21lIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSBpbXBsZW1lbnRhdGlvbnMsCisgICAgLy8gd2hp
Y2ggbWF5IG5vdCByZWxlYXNlIHRoZSBsb2NrIGZvciBwYXN0IHRpbWVvdXQuIEJ1dCwgdGhpcyBi
ZWhhdmlvciBpcyBjb25zaXN0ZW50IHdpdGggT3Blbkdyb3VwCisgICAgLy8gZG9jdW1lbnRhdGlv
biBmb3IgdGltZWR3YWl0KCkuCisgICAgLy8KKyAgICAvLyBNYXkgd2FpdCB0b28gbG9uZyBvbiBz
b21lIE9TZXM6IHRoZSBDKysgc3RhbmRhcmQgbGlicmFyeSBpbXBsZW1lbnRhdGlvbiBvZgorICAg
IC8vIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlOjp3YWl0X3VudGlsKCksIHdoaWNoIHRoaXMgdXNl
cyBpbnRlcm5hbGx5LCBtYXkgY29udmVydCB0aGUgYWJzb2x1dGUKKyAgICAvLyB0aW1lIHRvIGFu
IGFic29sdXRlIHRpbWUgYWNjb3JkaW5nIHRvIHRoZSBzeXN0ZW0gY2xvY2ssIHdoaWNoIGlzbid0
IG1vbm90b25pYy4gSXQgd2lsbCBkbyB0aGlzCisgICAgLy8gc28gdGhhdCBpdCBjYW4gdXNlIHB0
aHJlYWRfY29uZF90aW1lZHdhaXQoKS4gRGVwZW5kaW5nIG9uIHRoZSBPUyBhbmQgaWYgYW4gdW5m
b3J0dW5hdGUKKyAgICAvLyBjb21iaW5hdGlvbiBvZiB0aHJlYWQgaW50ZXJsZWF2aW5ncyBhbmQg
c3lzdGVtIHRpbWUgY2hhbmdlcyBoYXBwZW5zLCB0aGlzIG1heSBjYXVzZSB3YWl0VW50aWwoKQor
ICAgIC8vIHRvIHdhaXQgbG9uZ2VyIHRoYW4gaXQncyBzdXBwb3NlZCB0by4gSG93ZXZlciwgaXQn
cyB0eXBpY2FsIGZvciBPU2VzIHRvIHR1cm4gdGhlIGFic29sdXRlCisgICAgLy8gdGltZW91dCBp
biBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gYSByZWxhdGl2ZSB0aW1lb3V0IGJlZm9yZSBj
YWxsaW5nIGludG8gdGhlIGtlcm5lbC4gVGhpcworICAgIC8vIGlzIHdoYXQgZ2xpYmMgZG9lcywg
Zm9yIGV4YW1wbGUuCisgICAgLy8KKyAgICAvLyBUaGVzZSBxdWlya3MgYXJlIGdlbmVyYWxseSBu
b3Qgd29ydGggd29ycnlpbmcgdG9vIG11Y2ggYWJvdXQuIFRoZSBmYWN0IHRoYXQgc29tZSBPU2Vz
IHBlcmZvcm0KKyAgICAvLyBjb252ZXJzaW9ucyB0byBhbiBhYnNvbHV0ZSBub24tbW9ub3Rvbmlj
IHRpbWUgaXMgdW5saWtlbHkgdG8gY2F1c2UgaXNzdWVzIGJlY2F1c2UgdGhleSB1c3VhbGx5Cisg
ICAgLy8ganVzdCBkbyB0aGF0IGFzIHBhcnQgb2YgYSBjb252ZXJzaW9uIHRvIGEgcmVsYXRpdmUg
c2xlZXAgYW1vdW50IGluIHRoZSBrZXJuZWwuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5
cGU+Ci0gICAgYm9vbCB3YWl0VW50aWwoCi0gICAgICAgIExvY2tUeXBlJiBsb2NrLCBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCisgICAgYm9vbCB3YWl0VW50
aWwoTG9ja1R5cGUmIGxvY2ssIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiAgICAgewotICAg
ICAgICBib29sIHJlc3VsdCA9IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAotICAgICAg
ICAgICAgJm1fZHVtbXksCi0gICAgICAgICAgICBbXSAoKSAtPiBib29sIHsgcmV0dXJuIHRydWU7
IH0sCi0gICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKLSAgICAgICAg
ICAgIHRpbWVvdXQpOworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgaWYgKHRpbWVvdXQg
PCBDbG9jazo6bm93KCkpIHsKKyAgICAgICAgICAgIGxvY2sudW5sb2NrKCk7CisgICAgICAgICAg
ICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9
IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAorICAgICAgICAgICAgICAgICZtX2R1bW15
LAorICAgICAgICAgICAgICAgIFtdICgpIC0+IGJvb2wgeyByZXR1cm4gdHJ1ZTsgfSwKKyAgICAg
ICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKKyAgICAgICAgICAgICAg
ICB0aW1lb3V0KTsKKyAgICAgICAgfQogICAgICAgICBsb2NrLmxvY2soKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CkBAIC01Niw4ICs4OSw3IEBAIHB1YmxpYzoKICAgICAvLyBXYWl0
IHVudGlsIHRoZSBnaXZlbiBwcmVkaWNhdGUgaXMgc2F0aXNmaWVkLiBSZXR1cm5zIHRydWUgaWYg
aXQgaXMgc2F0aXNmaWVkIGluIHRoZSBlbmQuCiAgICAgLy8gTWF5IHJldHVybiBlYXJseSBkdWUg
dG8gdGltZW91dC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRnVu
Y3Rvcj4KLSAgICBib29sIHdhaXRVbnRpbCgKLSAgICAgICAgTG9ja1R5cGUmIGxvY2ssIHN0ZDo6
Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgdGltZW91dCwgY29uc3QgRnVuY3RvciYg
cHJlZGljYXRlKQorICAgIGJvb2wgd2FpdFVudGlsKExvY2tUeXBlJiBsb2NrLCBDbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewogICAgICAg
ICB3aGlsZSAoIXByZWRpY2F0ZSgpKSB7CiAgICAgICAgICAgICBpZiAoIXdhaXRVbnRpbChsb2Nr
LCB0aW1lb3V0KSkKQEAgLTcyLDE3ICsxMDQsMTMgQEAgcHVibGljOgogICAgIGJvb2wgd2FpdEZv
cigKICAgICAgICAgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVU
aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewotICAgICAgICBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IGFic29sdXRlVGltZW91dCA9Ci0gICAgICAg
ICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSArCi0gICAgICAgICAgICBzdGQ6
OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlv
bj4ocmVsYXRpdmVUaW1lb3V0KTsKLQotICAgICAgICByZXR1cm4gd2FpdFVudGlsKGxvY2ssIGFi
c29sdXRlVGltZW91dCwgcHJlZGljYXRlKTsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2Nr
LCBhYnNvbHV0ZUZyb21SZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpLCBwcmVkaWNhdGUpOwogICAg
IH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgogICAgIHZvaWQgd2FpdChMb2Nr
VHlwZSYgbG9jaykKICAgICB7Ci0gICAgICAgIHdhaXRVbnRpbChsb2NrLCBzdGQ6OmNocm9ubzo6
c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7CisgICAgICAgIHdhaXRVbnRpbChsb2Nr
LCBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIExvY2tUeXBlLCB0eXBlbmFtZSBGdW5jdG9yPgpAQCAtOTIsNiArMTIwLDMyIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHdhaXQobG9jayk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgTG9ja1R5cGUsIHR5cGVuYW1lIFRpbWVUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsKExvY2tU
eXBlJiBsb2NrLCBjb25zdCBUaW1lVHlwZSYgdGltZW91dCkKKyAgICB7CisgICAgICAgIGlmICh0
aW1lb3V0ID09IFRpbWVUeXBlOjptYXgoKSkgeworICAgICAgICAgICAgd2FpdChsb2NrKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB3YWl0Rm9y
SW1wbChsb2NrLCB0aW1lb3V0IC0gVGltZVR5cGU6OmNsb2NrOjpub3coKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+CisgICAgYm9vbCB3YWl0VW50aWxXYWxsQ2xv
Y2tTZWNvbmRzKExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykK
KyAgICB7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVU
aW1lb3V0U2Vjb25kcyAtIGN1cnJlbnRUaW1lKCkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIExvY2tUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsTW9ub3RvbmljQ2xvY2tTZWNvbmRz
KExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykKKyAgICB7Cisg
ICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVUaW1lb3V0U2Vj
b25kcyAtIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKKyAgICB9CisKKyAgICAvLyBG
SVhNRTogV2UgY291bGQgcmVwbGFjZSB0aGUgZHVtbXkgYnl0ZSB3aXRoIGEgYm9vbGVhbiB0byB0
ZWxsIHVzIGlmIHRoZXJlIGlzIGFueW9uZSB3YWl0aW5nCisgICAgLy8gcmlnaHQgbm93LiBUaGlz
IGNvdWxkIGJlIHVzZWQgdG8gaW1wbGVtZW50IGEgZmFzdCBwYXRoIGZvciBub3RpZnlPbmUoKSBh
bmQgbm90aWZ5QWxsKCkuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODA5MAorCiAgICAgdm9pZCBub3RpZnlPbmUoKQogICAgIHsKICAgICAgICAgUGFy
a2luZ0xvdDo6dW5wYXJrT25lKCZtX2R1bW15KTsKQEAgLTEwMyw3ICsxNTcsNTYgQEAgcHVibGlj
OgogICAgIH0KICAgICAKIHByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+
CisgICAgYm9vbCB3YWl0Rm9yU2Vjb25kc0ltcGwoTG9ja1R5cGUmIGxvY2ssIGRvdWJsZSByZWxh
dGl2ZVRpbWVvdXRTZWNvbmRzKQorICAgIHsKKyAgICAgICAgZG91YmxlIHJlbGF0aXZlVGltZW91
dE5hbm9zZWNvbmRzID0gcmVsYXRpdmVUaW1lb3V0U2Vjb25kcyAqICgxMDAwLjAgKiAxMDAwLjAg
KiAxMDAwLjApOworICAgICAgICAKKyAgICAgICAgaWYgKCEocmVsYXRpdmVUaW1lb3V0TmFub3Nl
Y29uZHMgPiAwKSkgeworICAgICAgICAgICAgLy8gVGhpcyBoYW5kbGVzIGluc3RhLXRpbWVvdXRz
IGFzIHdlbGwgYXMgTmFOLgorICAgICAgICAgICAgbG9jay51bmxvY2soKTsKKyAgICAgICAgICAg
IGxvY2subG9jaygpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHJlbGF0aXZlVGltZW91dE5hbm9zZWNvbmRzID4gc3RhdGljX2Nhc3Q8ZG91Ymxl
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptYXgoKSkpIHsKKyAgICAgICAgICAgIC8v
IElmIHRoZSB0aW1lb3V0IGluIG5hbm9zZWNvbmRzIGNhbm5vdCBiZSBleHByZXNzZWQgdXNpbmcg
YSA2NC1iaXQgaW50ZWdlciwgdGhlbiB3ZQorICAgICAgICAgICAgLy8gbWlnaHQgYXMgd2VsbCB3
YWl0IGZvcmV2ZXIuCisgICAgICAgICAgICB3YWl0KGxvY2spOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGF1dG8gcmVsYXRpdmVUaW1lb3V0
ID0KKyAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyhzdGF0aWNfY2FzdDxpbnQ2
NF90PihyZWxhdGl2ZVRpbWVvdXROYW5vc2Vjb25kcykpOworCisgICAgICAgIHJldHVybiB3YWl0
Rm9ySW1wbChsb2NrLCByZWxhdGl2ZVRpbWVvdXQpOworICAgIH0KICAgICAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRHVyYXRpb25UeXBlPgorICAgIGJvb2wgd2Fp
dEZvckltcGwoTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVUaW1l
b3V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2NrLCBhYnNvbHV0ZUZyb21S
ZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEdXJhdGlvblR5cGU+CisgICAgQ2xvY2s6OnRpbWVfcG9pbnQgYWJzb2x1dGVGcm9tUmVsYXRp
dmUoY29uc3QgRHVyYXRpb25UeXBlJiByZWxhdGl2ZVRpbWVvdXQpCisgICAgeworICAgICAgICBp
ZiAocmVsYXRpdmVUaW1lb3V0IDwgRHVyYXRpb25UeXBlOjp6ZXJvKCkpCisgICAgICAgICAgICBy
ZXR1cm4gQ2xvY2s6OnRpbWVfcG9pbnQ6Om1pbigpOworCisgICAgICAgIGlmIChyZWxhdGl2ZVRp
bWVvdXQgPiBDbG9jazo6ZHVyYXRpb246Om1heCgpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGlz
IGhpZ2hseSB1bmxpa2VseS4gQnV0IGlmIGl0IGhhcHBlbnMsIHdlIHdhbnQgdG8gbm90IGRvIGFu
eXRoaW5nIGR1bWIuIFNsZWVwaW5nCisgICAgICAgICAgICAvLyB3aXRob3V0IGEgdGltZW91dCBz
ZWVtcyBzZW5zaWJsZSB3aGVuIHRoZSB0aW1lb3V0IGR1cmF0aW9uIGlzIGdyZWF0ZXIgdGhhbiB3
aGF0IGNhbiBiZQorICAgICAgICAgICAgLy8gZXhwcmVzc2VkIHVzaW5nIHN0ZWFkeV9jbG9jay4K
KyAgICAgICAgICAgIHJldHVybiBDbG9jazo6dGltZV9wb2ludDo6bWF4KCk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIENsb2NrOjpkdXJhdGlvbiBteVJlbGF0aXZlVGltZW91dCA9Cisg
ICAgICAgICAgICBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxDbG9jazo6ZHVyYXRpb24+KHJl
bGF0aXZlVGltZW91dCk7CisKKyAgICAgICAgcmV0dXJuIENsb2NrOjpub3coKSArIG15UmVsYXRp
dmVUaW1lb3V0OworICAgIH0KKwogICAgIHVpbnQ4X3QgbV9kdW1teTsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L01lc3NhZ2VRdWV1ZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9NZXNz
YWdlUXVldWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMzIsNyArMzIsOSBAQAogCiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Nyw4ICs3OSw4IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgICAgICBzdGF0aWMgZG91YmxlIGluZmluaXRlVGltZSgpIHsg
cmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCk7IH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKKyAgICAgICAg
Q29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8RGF0
YVR5cGU+PiBtX3F1ZXVlOwogICAgICAgICBib29sIG1fa2lsbGVkOwogICAgIH07CkBAIC05MSwz
NyArOTMsMzcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKHN0ZDo6
dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAg
ICAgbV9xdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRp
b24uc2lnbmFsKCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSB2b2lkIE1lc3NhZ2VR
dWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwoc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBt
ZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEY6
Om1vdmUobWVzc2FnZSkpOwogICAgICAgICBtX2tpbGxlZCA9IHRydWU7Ci0gICAgICAgIG1fY29u
ZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsKICAg
ICB9CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHF1ZXVlIHdhcyBlbXB0eSBiZWZvcmUg
dGhlIGl0ZW0gd2FzIGFkZGVkLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAg
IGlubGluZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHko
c3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwog
ICAgICAgICBib29sIHdhc0VtcHR5ID0gbV9xdWV1ZS5pc0VtcHR5KCk7CiAgICAgICAgIG1fcXVl
dWUuYXBwZW5kKFdURjo6bW92ZShtZXNzYWdlKSk7Ci0gICAgICAgIG1fY29uZGl0aW9uLnNpZ25h
bCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICAgICAgcmV0dXJuIHdh
c0VtcHR5OwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlu
bGluZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OnByZXBlbmQoc3RkOjp1bmlxdWVfcHRy
PERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVl
LnByZXBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRpb24uc2lnbmFs
KCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERhdGFUeXBlPgpAQCAtMTM3LDcgKzEzOSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgYXV0byBNZXNz
YWdlUXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQoTWVz
c2FnZVF1ZXVlV2FpdFJlc3VsdCYgcmVzdWx0LCBQcmVkaWNhdGUmJiBwcmVkaWNhdGUsIGRvdWJs
ZSBhYnNvbHV0ZVRpbWUpIC0+IHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4KICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayht
X211dGV4KTsKICAgICAgICAgYm9vbCB0aW1lZE91dCA9IGZhbHNlOwogCiAgICAgICAgIGF1dG8g
Zm91bmQgPSBtX3F1ZXVlLmVuZCgpOwpAQCAtMTQ5LDcgKzE1MSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgICAgICAgICAgaWYgKGZvdW5kICE9IG1fcXVldWUuZW5kKCkpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHRpbWVkT3V0ID0gIW1fY29uZGl0aW9uLnRpbWVkV2Fp
dChtX211dGV4LCBhYnNvbHV0ZVRpbWUpOworICAgICAgICAgICAgdGltZWRPdXQgPSAhbV9jb25k
aXRpb24ud2FpdFVudGlsV2FsbENsb2NrU2Vjb25kcyhtX211dGV4LCBhYnNvbHV0ZVRpbWUpOwog
ICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCF0aW1lZE91dCB8fCBhYnNvbHV0ZVRpbWUgIT0g
aW5maW5pdGVUaW1lKCkpOwpAQCAtMTc0LDcgKzE3Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBhdXRvIE1lc3NhZ2VRdWV1
ZTxEYXRhVHlwZT46OnRyeUdldE1lc3NhZ2UoKSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCkBAIC0xODYs
NyArMTg4LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIGF1dG8gTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6dHJ5R2V0TWVzc2Fn
ZUlnbm9yaW5nS2lsbGVkKCkgLT4gc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbXV0ZXgpOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIApAQCAtMTk3LDcgKzE5OSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVl
dWU8RGF0YVR5cGU+OjpyZW1vdmVJZihQcmVkaWNhdGUmJiBwcmVkaWNhdGUpCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV9tdXRleCk7CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBhdXRvIGZvdW5k
ID0gbV9xdWV1ZS5maW5kSWYoWyZwcmVkaWNhdGVdKGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxEYXRh
VHlwZT4mIHB0cikgLT4gYm9vbCB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHB0cik7CkBAIC0y
MTQsNyArMjE2LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0
YVR5cGU+CiAgICAgaW5saW5lIGJvb2wgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6aXNFbXB0eSgp
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gbV9xdWV1ZS5pc0VtcHR5KCk7CkBAIC0yMjMs
MTUgKzIyNSwxNSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRh
VHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpraWxsKCkKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9raWxsZWQgPSB0cnVlOwotICAgICAgICBtX2Nv
bmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGJvb2wg
TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbGVkKCkgY29uc3QKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4
KTsKICAgICAgICAgcmV0dXJuIG1fa2lsbGVkOwogICAgIH0KIH0gLy8gbmFtZXNwYWNlIFdURgpJ
bmRleDogU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDUsMTcgKzEwNSwxNyBAQCBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVh
ZFByaXZhdGU6CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6ZXhl
Y3V0ZShUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgdm9pZCogcGFyYW1ldGVycykKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211
dGV4KTsKIAogICAgIG1fdGhyZWFkRnVuY3Rpb24gPSB0aHJlYWRGdW5jdGlvbjsKICAgICBtX3Bh
cmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgIG1fcnVubmluZyA9IHRydWU7Ci0gICAgbV90aHJl
YWRDb25kaXRpb24uc2lnbmFsKCk7CisgICAgbV90aHJlYWRDb25kaXRpb24ubm90aWZ5T25lKCk7
CiB9CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZp
bmlzaCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CiAKICAgICB3aGlsZSAobV9ydW5uaW5nKQogICAgICAgICBtX3RocmVh
ZENvbmRpdGlvbi53YWl0KG1fbXV0ZXgpOwpAQCAtMTI0LDE0ICsxMjQsMTQgQEAgdm9pZCBQYXJh
bGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOgogdm9pZCBQYXJhbGxlbEVudmlyb25tZW50
OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJUaHJlYWQodm9pZCogdGhyZWFkRGF0YSkKIHsKICAgICBU
aHJlYWRQcml2YXRlKiBzaGFyZWRUaHJlYWQgPSByZWludGVycHJldF9jYXN0PFRocmVhZFByaXZh
dGUqPih0aHJlYWREYXRhKTsKLSAgICBNdXRleExvY2tlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CiAKICAg
ICB3aGlsZSAoc2hhcmVkVGhyZWFkLT5tX3RocmVhZElEKSB7CiAgICAgICAgIGlmIChzaGFyZWRU
aHJlYWQtPm1fcnVubmluZykgewogICAgICAgICAgICAgKCpzaGFyZWRUaHJlYWQtPm1fdGhyZWFk
RnVuY3Rpb24pKHNoYXJlZFRocmVhZC0+bV9wYXJhbWV0ZXJzKTsKICAgICAgICAgICAgIHNoYXJl
ZFRocmVhZC0+bV9ydW5uaW5nID0gZmFsc2U7CiAgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1f
cGFyZW50ID0gMDsKLSAgICAgICAgICAgIHNoYXJlZFRocmVhZC0+bV90aHJlYWRDb25kaXRpb24u
c2lnbmFsKCk7CisgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1fdGhyZWFkQ29uZGl0aW9uLm5v
dGlmeU9uZSgpOwogICAgICAgICB9CiAKICAgICAgICAgc2hhcmVkVGhyZWFkLT5tX3RocmVhZENv
bmRpdGlvbi53YWl0KHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAKIAog
I2lmIEVOQUJMRShUSFJFQURJTkdfR0VORVJJQykKIAorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Niw4ICs3OCw4IEBAIHB1YmxpYzoKICAg
ICAgICAgYm9vbCBtX3J1bm5pbmc7CiAgICAgICAgIFBhcmFsbGVsRW52aXJvbm1lbnQqIG1fcGFy
ZW50OwogCi0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29u
ZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsK
KyAgICAgICAgQ29uZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOwogCiAgICAgICAgIFRocmVhZEZ1
bmN0aW9uIG1fdGhyZWFkRnVuY3Rpb247CiAgICAgICAgIHZvaWQqIG1fcGFyYW1ldGVyczsKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1BhcmtpbmdMb3QuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0
Zi9QYXJraW5nTG90LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTExLDcgKzUxMSw3IEBAIGJvb2wg
UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHkoCiAgICAgY29uc3Qgdm9pZCogYWRkcmVzcywK
ICAgICBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4gdmFsaWRhdGlvbiwKICAgICBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gYmVmb3JlU2xlZXAsCi0gICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0KQorICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiB7CiAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2codG9TdHJpbmcoY3VycmVudFRocmVhZCgpLCAi
OiBwYXJraW5nLlxuIikpOwpAQCAtNTM5LDExICs1MzksMTEgQEAgYm9vbCBQYXJraW5nTG90Ojpw
YXJrQ29uZGl0aW9uYWxseSgKICAgICBib29sIGRpZEdldERlcXVldWVkOwogICAgIHsKICAgICAg
ICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrZXIobWUtPnBhcmtpbmdMb2NrKTsK
LSAgICAgICAgd2hpbGUgKG1lLT5hZGRyZXNzICYmIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
Om5vdygpIDwgdGltZW91dCkgeworICAgICAgICB3aGlsZSAobWUtPmFkZHJlc3MgJiYgQ2xvY2s6
Om5vdygpIDwgdGltZW91dCkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyBwcmV0dHkgZnVubnku
IE9uIExpbnV4LCBpZiB5b3Ugd2FpdCB1bnRpbCB0aGUgbWF4IHRpbWUsIGl0IGltbWVkaWF0ZWx5
IHJlcG9ydHMgdGhhdCB5b3UgdGltZWQKICAgICAgICAgICAgIC8vIG91dC4gV2hhdCdzIHBhcnRp
Y3VsYXJseSBiYWQgYWJvdXQgdGhpcyBpcyB0aGF0IGl0IG5ldmVyIHJlbGVhc2VzIHRoZSBsb2Nr
IGluIHRoYXQgY2FzZS4gU28sIHlvdSBsb29wCiAgICAgICAgICAgICAvLyBmb3JldmVyIHdpdGhv
dXQgeWllbGRpbmcgdG8gdGhlIHRocmVhZCB0aGF0IHdvdWxkIHdha2UgeW91IHVwLgotICAgICAg
ICAgICAgaWYgKHRpbWVvdXQgPT0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2lu
dDo6bWF4KCkpCisgICAgICAgICAgICBpZiAodGltZW91dCA9PSBDbG9jazo6dGltZV9wb2ludDo6
bWF4KCkpCiAgICAgICAgICAgICAgICAgbWUtPnBhcmtpbmdDb25kaXRpb24ud2FpdChsb2NrZXIp
OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1lLT5wYXJraW5nQ29uZGl0aW9u
LndhaXRfdW50aWwobG9ja2VyLCB0aW1lb3V0KTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1Bhcmtp
bmdMb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmgJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNiArMzgsOCBAQCBjbGFzcyBQYXJraW5nTG90IHsKICAgICBQYXJraW5nTG90KGNv
bnN0IFBhcmtpbmdMb3QmKSA9IGRlbGV0ZTsKIAogcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jayBDbG9jazsKKyAgICAKICAgICAvLyBQYXJrcyB0aGUgdGhyZWFk
IGluIGEgcXVldWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBhZGRyZXNzLCB3aGljaCBjYW5u
b3QgYmUgbnVsbC4gVGhlCiAgICAgLy8gcGFya2luZyBvbmx5IHN1Y2NlZWRzIGlmIHRoZSB2YWxp
ZGF0aW9uIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSB3aGlsZSB0aGUgcXVldWUgbG9jayBpcyBoZWxk
LgogICAgIC8vIElmIHZhbGlkYXRpb24gcmV0dXJucyBmYWxzZSwgaXQgd2lsbCB1bmxvY2sgdGhl
IGludGVybmFsIHBhcmtpbmcgcXVldWUgYW5kIHRoZW4gaXQgd2lsbApAQCAtNTMsNyArNTUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IHZvaWQqIGFkZHJlc3MsCiAgICAgICAgIHN0ZDo6ZnVu
Y3Rpb248Ym9vbCgpPiB2YWxpZGF0aW9uLAogICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4g
YmVmb3JlU2xlZXAsCi0gICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9p
bnQgdGltZW91dCk7CisgICAgICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpOwogCiAgICAg
Ly8gU2ltcGxlIHZlcnNpb24gb2YgcGFya0NvbmRpdGlvbmFsbHkoKSB0aGF0IGNvdmVycyB0aGUg
bW9zdCBjb21tb24gY2FzZTogeW91IHdhbnQgdG8gcGFyawogICAgIC8vIGluZGVmaW5pdGVseSBz
byBsb25nIGFzIHRoZSB2YWx1ZSBhdCB0aGUgZ2l2ZW4gYWRkcmVzcyBoYXNuJ3QgY2hhbmdlZC4K
QEAgLTY3LDcgKzY5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9
PSBleHBlY3RlZDsKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICBbXSAoKSB7IH0sCi0gICAg
ICAgICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7Cisg
ICAgICAgICAgICBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIC8vIFVu
cGFya3Mgb25lIHRocmVhZCBmcm9tIHRoZSBxdWV1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVu
IGFkZHJlc3MsIHdoaWNoIGNhbm5vdCBiZSBudWxsLgpAQCAtMTAzLDcgKzEwNSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBBMSxUMSBBMixUMyBBMSxUMiBBMixUNAogICAgIC8vIEExLFQxIEEyLFQzIEEy
LFQ0IEExLFQyCiAgICAgLy8KLSAgICAvLyBBcyB3ZWxsIGFzIG1hbnkgb3RoZXIgcG9zc2libGUg
aW50ZXJsZWF2ZXMgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBi
dXQgYXJlCisgICAgLy8gQXMgd2VsbCBhcyBtYW55IG90aGVyIHBvc3NpYmxlIGludGVybGVhdmlu
Z3MgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBidXQgYXJlCiAg
ICAgLy8gb3RoZXJ3aXNlIHVuY29uc3RyYWluZWQuIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBwcmlt
YXJpbHkgZm9yIGRlYnVnZ2luZy4gSXQncyBhbHNvIHVzZWQgYnkgdW5pdAogICAgIC8vIHRlc3Rz
LgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBmb3JFYWNoKHN0ZDo6ZnVuY3Rp
b248dm9pZChUaHJlYWRJZGVudGlmaWVyLCBjb25zdCB2b2lkKik+KTsKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDcgKzEyNiw2
IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgVGhyZWFkSWRlbnRpZmllckRhdGE6
OmluaXRpYWxpemVPbmNlKCk7CiAgICAgU3RhY2tTdGF0czo6aW5pdGlhbGl6ZSgpOwogICAgIHd0
ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAgIGluaXRp
YWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHJldmlzaW9u
IDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2NSw3ICsxNjUsNiBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogICAgIHRo
cmVhZE1hcE11dGV4KCk7CiAgICAgaW5pdGlhbGl6ZVJhbmRvbU51bWJlckdlbmVyYXRvcigpOwog
ICAgIHd0ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAg
IGluaXRpYWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi93dGYvZHRvYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBA
CiAgKiBUaGUgYXV0aG9yIG9mIHRoaXMgc29mdHdhcmUgaXMgRGF2aWQgTS4gR2F5LgogICoKICAq
IENvcHlyaWdodCAoYykgMTk5MSwgMjAwMCwgMjAwMSBieSBMdWNlbnQgVGVjaG5vbG9naWVzLgot
ICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMiwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCwgMjAxMiwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwg
YW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CiAgKiBwdXJwb3NlIHdpdGhvdXQg
ZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoaXMgZW50aXJlIG5vdGljZQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImR0b2EuaCIKIAogI2luY2x1ZGUgPHN0ZGlvLmg+
CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01NCw3
ICs1NSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1NdXRleCogc19kdG9hUDVNdXRleDsKK3N0
YXRpYyBTdGF0aWNMb2NrIHNfZHRvYVA1TXV0ZXg7CiAKIHR5cGVkZWYgdW5pb24gewogICAgIGRv
dWJsZSBkOwpAQCAtMzc1LDcgKzM3Niw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93
NW11bHQoQmlnSW4KICAgICBpZiAoIShrID4+PSAyKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
c19kdG9hUDVNdXRleC0+bG9jaygpOworICAgIHNfZHRvYVA1TXV0ZXgubG9jaygpOwogICAgIFA1
Tm9kZSogcDUgPSBwNXM7CiAKICAgICBpZiAoIXA1KSB7CkBAIC0zODgsNyArMzg5LDcgQEAgc3Rh
dGljIEFMV0FZU19JTkxJTkUgdm9pZCBwb3c1bXVsdChCaWdJbgogICAgIH0KIAogICAgIGludCBw
NXNDb3VudExvY2FsID0gcDVzQ291bnQ7Ci0gICAgc19kdG9hUDVNdXRleC0+dW5sb2NrKCk7Cisg
ICAgc19kdG9hUDVNdXRleC51bmxvY2soKTsKICAgICBpbnQgcDVzVXNlZCA9IDA7CiAKICAgICBm
b3IgKDs7KSB7CkBAIC0zOTksNyArNDAwLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBw
b3c1bXVsdChCaWdJbgogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKCsrcDVzVXNl
ZCA9PSBwNXNDb3VudExvY2FsKSB7Ci0gICAgICAgICAgICBzX2R0b2FQNU11dGV4LT5sb2NrKCk7
CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LmxvY2soKTsKICAgICAgICAgICAgIGlmIChwNXNV
c2VkID09IHA1c0NvdW50KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFwNS0+bmV4dCk7CiAg
ICAgICAgICAgICAgICAgcDUtPm5leHQgPSBuZXcgUDVOb2RlOwpAQCAtNDEwLDcgKzQxMSw3IEBA
IHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93NW11bHQoQmlnSW4KICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgcDVzQ291bnRMb2NhbCA9IHA1c0NvdW50OwotICAgICAgICAgICAgc19k
dG9hUDVNdXRleC0+dW5sb2NrKCk7CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LnVubG9jaygp
OwogICAgICAgICB9CiAgICAgICAgIHA1ID0gcDUtPm5leHQ7CiAgICAgfQpJbmRleDogU291cmNl
L1dURi93dGYvZHRvYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2R0b2EuaAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93dGYvZHRvYS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCwxMCArMjgsNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotY2xhc3MgTXV0ZXg7Ci0KLWV4
dGVybiBNdXRleCogc19kdG9hUDVNdXRleDsKLQogdHlwZWRlZiBjaGFyIER0b2FCdWZmZXJbODBd
OwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdG9hKER0b2FCdWZmZXIgcmVzdWx0LCBkb3Vi
bGUgZGQsIGJvb2wmIHNpZ24sIGludCYgZXhwb25lbnQsIHVuc2lnbmVkJiBwcmVjaXNpb24pOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjc0IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5n
IHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugbm8gbmV3IGJl
aGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29k
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3ApOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbUF1ZGlvU291cmNlOjphZGRBdWRpb0NvbnN1bWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6c2V0QXVkaW9Gb3JtYXQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBs
ZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6aGFzUGVuZGluZ1RyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjp0YXNrQ29tcGxldGVkKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJl
YWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRo
cmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZXRyeUNhbkVzdGFibGlzaERh
dGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6aGFzRW50cnlGb3JP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRNYXhTaXplRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpjbG9zZUFsbERh
dGFiYXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmZ1bGxQYXRoRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpvcmlnaW5zKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZGF0YWJhc2VOYW1lc0Zvck9yaWdp
bik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmRldGFpbHNGb3JOYW1lQW5k
T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VE
ZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZG9uZUNyZWF0aW5n
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZW1vdmVPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRPcGVuRGF0YWJh
c2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3JpZ2luTG9ja0Zvcik6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnF1b3RhRm9yT3JpZ2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0UXVvdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OnJlbW92ZURlbGV0ZWRPcGVuZWREYXRhYmFzZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGVJZkVtcHR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNlTXV0ZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bm90aWZpY2F0aW9uTXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2Vy
OjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6Om5vdGlmeURhdGFiYXNlc0NoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxs
YmFja1dyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTENhbGxiYWNrV3JhcHBlcjo6Y2xl
YXIpOgorICAgICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjp1bndyYXApOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjpoYXNDYWxsYmFjayk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXApOgorICAgICAgICAo
V2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjplbnF1ZXVlU3RhdGVtZW50QmFja2VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmdldE5leHRTdGF0ZW1l
bnQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5k
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpzY2hlZHVsZUV4ZWN1dGlv
blRlcm1pbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6
OmlzRXhlY3V0aW9uVGVybWluYXRpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OnBv
c3RNZXNzYWdlVG9SZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVs
Ojp0cnlHZXRNZXNzYWdlRnJvbVJlbW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWw6OmlzQ29ubmVjdGVkVG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRD
aGFubmVsOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBv
cnRDaGFubmVsOjpsb2NhbGx5RW50YW5nbGVkUG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6c2V0UmVtb3RlUG9ydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6ZW50YW5nbGVkQ2hhbm5lbCk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y2xvc2VJbnRlcm5hbCk6Cisg
ICAgICAgICogZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaDoKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNv
bkRhdGFiYXNlOjpyZW1vdmVBbGxJY29ucyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRh
dGFiYXNlOjpzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYkNv
cmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTCk6CisgICAgICAg
IChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAgICAgICAg
KFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29uRm9yUGFnZVVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJM
KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNMb2FkRGVjaXNp
b25Gb3JJY29uVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25v
dXNJY29uRGF0YUtub3duRm9ySWNvblVSTCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnBhZ2VVUkxNYXBwaW5nQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpyZXRhaW5lZFBhZ2VVUkxDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6
Omljb25SZWNvcmRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omljb25S
ZWNvcmRDb3VudFdpdGhEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6d2Fr
ZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpzY2hlZHVsZU9y
RGVmZXJTeW5jVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjppc09wZW5C
ZXNpZGVzTWFpblRocmVhZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OmdldE9y
Q3JlYXRlUGFnZVVSTFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omlj
b25EYXRhYmFzZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpw
ZXJmb3JtT3BlbkluaXRpYWxpemF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cGVyZm9ybVVSTEltcG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnN5
bmNUaHJlYWRNYWluTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnBlcmZv
cm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SWNvbkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25E
YXRhYmFzZTo6d3JpdGVUb0RhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cHJ1bmVVbnJldGFpbmVkSWNvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpjbGVhbnVwU3luY1RocmVhZCk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25v
dXNseSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Ny
b2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aXNQb2ludElu
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjpzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZTo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1Njcm9sbFNuYXBwaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldENhblJ1YmJlckJhbmRTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVmdCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0UmlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxQaW5uaW5nQmVoYXZpb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpjbGVhckxhdGNoZWROb2RlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6d2FpdEZvckxvYWRlclRo
cmVhZENvbXBsZXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxv
YWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXRSZWNl
aXZlZE1lbW9yeVByZXNzdXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6Y2xlYXJNZW1vcnlQcmVzc3VyZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OnNob3VsZFdhaXRGb3JNZW1vcnlDbGVhck1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUlm
TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5
RGlkUmVmcmVzaCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnNldE1v
bm90b25pY0FuaW1hdGlvblN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3I6Om11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0RGVsYXlDYWxsYmFja3MpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1h
aW5UaHJlYWRQZW5kaW5nRmxhZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246OmRpc3BhdGNoTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6
OmNhbGxiYWNrQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjp+QVZGV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjptYXBMb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6OkFWRldyYXBwZXI6OmFkZFRvTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldy
YXBwZXI6OnJlbW92ZUZyb21NYXApOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cGVy
aW9kaWNUaW1lT2JzZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVy
Ojpwcm9jZXNzTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6Omxv
YWRQbGF5YWJsZUNvbXBsZXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFw
cGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
QVZGV3JhcHBlcjo6c2Vla0NvbXBsZXRlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFW
RldyYXBwZXI6OnByb2Nlc3NDdWUpOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6bGVn
aWJsZU91dHB1dENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OnByb2Nl
c3NTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6QVZG
V3JhcHBlcjo6cmVzb3VyY2VMb2FkZXJTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVxdWVzdGVkUmVz
b3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFj
a1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXI6OnRhZ3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6cmVxdWVz
dFJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjphZGRMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OnJlbW92ZUxp
c3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbjo6bm90aWZ5RGVsZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Okludm9rZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Om9u
TWVkaWFQbGF5ZXJEZWxldGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L0xlZ2FjeVRpbGVDYWNoZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2Fj
aGUubW06CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRpbGVzT3BhcXVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6ZG9MYXlvdXRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldEN1cnJlbnRTY2FsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmNvbW1pdFNjYWxlQ2hhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6bGF5b3V0VGlsZXNOb3cpOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpsYXlvdXRUaWxlc05vd0ZvclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxUaWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUZvcmVncm91bmRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldENvbnRlbnRSZXBsYWNlbWVudElt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6Y29udGVudFJlcGxhY2Vt
ZW50SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjp0aWxlQ3JlYXRp
b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0TmVl
ZHNEaXNwbGF5SW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dXBk
YXRlVGlsaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRp
bGluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpkb1BlbmRpbmdS
ZXBhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmZsdXNoU2F2ZWRE
aXNwbGF5UmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpwcmVwYXJl
VG9EcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6YWRkTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6dGFrZUxheWVyV2l0aFNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6cHJ1bmUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5
VGlsZUxheWVyUG9vbDo6ZHJhaW4pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsRG93bmxvYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnJlbW92ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjpnZXRBY3RpdmVEb3dubG9hZENv
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OmdldFBlbmRpbmdE
b3dubG9hZENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnN0
b3BUaHJlYWRJZklkbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
dXBkYXRlSGFuZGxlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6On5DdXJs
RG93bmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjppbml0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Z2V0VGVtcFBhdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybERvd25sb2FkOjpnZXRVcmwpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2Fk
OjpnZXRSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmNsb3NlRmls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVIZWFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZEZhaWwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZUph
clBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkUmVzb3VyY2VNdXRleCk6CisgICAgICAg
IChXZWJDb3JlOjpjdXJsX2xvY2tfY2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Y3VybF91
bmxvY2tfY2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9v
ay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlFMRGlyZWN0b3J5QXR0cmlidXRlcyk6CisgICAgICAg
IChxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6
YWRkUUxQcmV2aWV3Q29udmVydGVyV2l0aEZpbGVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
cWxQcmV2aWV3Q29udmVydGVyVVRJRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVFM
UHJldmlld0NvbnZlcnRlckZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpzYWZlUUxVUkxGb3JE
b2N1bWVudFVSTEFuZFJlc291cmNlVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmNsb3NlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjptYXhpbXVtU2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6c2V0TWF4aW11bVNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6OnBhZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0
ZURhdGFiYXNlOjpmcmVlU3BhY2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFi
YXNlOjp0b3RhbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnJ1bklu
Y3JlbWVudGFsVmFjdXVtQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFz
ZTo6c2V0QXV0aG9yaXplcik6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6ZGF0YWJhc2VNdXRleCk6Cisg
ICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTUUxpdGVTdGF0ZW1lbnQ6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRl
U3RhdGVtZW50OjpzdGVwKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZDo6c3RvcCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKwogMjAxNS0w
OC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCBjb25zdCB0byBjb250ZW50IGV4dGVuc2lvbiBwYXJzZXIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3Bw
CShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Fz
eW5jQXVkaW9EZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29kZXIoKQog
ewogICAgIC8vIFN0YXJ0IHdvcmtlciB0aHJlYWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3Ro
cmVhZENyZWF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOwogICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6
OnRocmVhZEVudHJ5LCB0aGlzLCAiQXVkaW8gRGVjb2RlciIpOwogfQogCkBAIC03Niw3ICs3Niw3
IEBAIHZvaWQgQXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3AoKQogCiAgICAgewogICAgICAgICAv
LyBXYWl0IGZvciB1bnRpbCB3ZSBoYXZlIG1fdGhyZWFkSUQgZXN0YWJsaXNoZWQgYmVmb3JlIHN0
YXJ0aW5nIHRoZSBydW4gbG9vcC4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENy
ZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11
dGV4KTsKICAgICB9CiAKICAgICAvLyBLZWVwIHJ1bm5pbmcgZGVjb2RpbmcgdGFza3MgdW50aWwg
d2UncmUga2lsbGVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3lu
Y0F1ZGlvRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5Mb29wKCk7CiAKICAgICBX
VEY6OlRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJRDsKLSAgICBNdXRleCBtX3RocmVhZENyZWF0
aW9uTXV0ZXg7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgTWVzc2FnZVF1
ZXVlPERlY29kaW5nVGFzaz4gbV9xdWV1ZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzgwLDcgKzM4MCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb25uZWN0
aW9uQ291bnQgeyAwIH07CiAKICAgICAvLyBHcmFwaCBsb2NraW5nLgotICAgIE11dGV4IG1fY29u
dGV4dEdyYXBoTXV0ZXg7CisgICAgTG9jayBtX2NvbnRleHRHcmFwaE11dGV4OwogICAgIHZvbGF0
aWxlIFRocmVhZElkZW50aWZpZXIgbV9hdWRpb1RocmVhZCB7IDAgfTsKICAgICB2b2xhdGlsZSBU
aHJlYWRJZGVudGlmaWVyIG1fZ3JhcGhPd25lclRocmVhZDsgLy8gaWYgdGhlIGxvY2sgaXMgaGVs
ZCB0aGVuIHRoaXMgaXMgdGhlIHRocmVhZCB3aGljaCBvd25zIGl0LCBvdGhlcndpc2UgPT0gVW5k
ZWZpbmVkVGhyZWFkSWRlbnRpZmllcgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDEzICs2MywxMyBAQCBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBNZWRpYVN0CiAKIHZvaWQgTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZTo6YWRkQXVkaW9Db25zdW1lcihQYXNzUmVmUHRyPEF1ZGlvRGVzdGluYXRpb25D
b25zdW1lcj4gY29uc3VtZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXVkaW9Db25z
dW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7
CiAgICAgbV9hdWRpb0NvbnN1bWVycy5hcHBlbmQoY29uc3VtZXIpOwogfQogCiBib29sIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIoQXVkaW9EZXN0aW5hdGlvbkNv
bnN1bWVyKiBjb25zdW1lcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdWRpb0NvbnN1
bWVyc0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsK
ICAgICBzaXplX3QgcG9zID0gbV9hdWRpb0NvbnN1bWVycy5maW5kKGNvbnN1bWVyKTsKICAgICBp
ZiAocG9zICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIG1fYXVkaW9Db25zdW1lcnMucmVtb3ZlKHBv
cyk7CkBAIC04MCwxNCArODAsMTQgQEAgYm9vbCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpyZW1v
dmVBdWRpbwogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnNldEF1ZGlvRm9ybWF0KHNp
emVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9hdWRpb0NvbnN1bWVyc0xvY2spOwogICAgIGZvciAoYXV0byYgY29uc3VtZXIgOiBtX2F1ZGlv
Q29uc3VtZXJzKQogICAgICAgICBjb25zdW1lci0+c2V0Rm9ybWF0KG51bWJlck9mQ2hhbm5lbHMs
IHNhbXBsZVJhdGUpOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVB
dWRpbyhBdWRpb0J1cyogYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CiAgICAgZm9yIChhdXRvJiBjb25zdW1lciA6IG1fYXVk
aW9Db25zdW1lcnMpCiAgICAgICAgIGNvbnN1bWVyLT5jb25zdW1lQXVkaW8oYnVzLCBudW1iZXJP
ZkZyYW1lcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvRGVzdGlu
YXRpb25Db25zdW1lci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02
NSw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpOwogCiAg
ICAgU3RyaW5nIG1fZGV2aWNlSWQ7Ci0gICAgTXV0ZXggbV9hdWRpb0NvbnN1bWVyc0xvY2s7Cisg
ICAgTG9jayBtX2F1ZGlvQ29uc3VtZXJzTG9jazsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvRGVz
dGluYXRpb25Db25zdW1lcj4+IG1fYXVkaW9Db25zdW1lcnM7CiAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlcyBtX2N1cnJlbnRTdGF0ZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysr
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xvc2UoKQogICAgIEFT
U0VSVChjdXJyZW50VGhyZWFkKCkgPT0gZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFk
KCktPmdldFRocmVhZElEKCkpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOwogCiAgICAgICAgIC8vIENsZWFuIHVwIHRy
YW5zYWN0aW9ucyB0aGF0IGhhdmUgbm90IGJlZW4gc2NoZWR1bGVkIHlldDoKICAgICAgICAgLy8g
VHJhbnNhY3Rpb24gcGhhc2UgMSBjbGVhbnVwLiBTZWUgY29tbWVudCBvbiAiV2hhdCBoYXBwZW5z
IGlmIGEKQEAgLTU2NSw3ICs1NjUsNyBAQCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRyYW5zYWN0
aW9uKCkKIAogUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IERhdGFiYXNlOjpydW5U
cmFuc2FjdGlvbihQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbiwgYm9vbCBy
ZWFkT25seSwgY29uc3QgQ2hhbmdlVmVyc2lvbkRhdGEqIGRhdGEpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOworICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOwogICAgIGlmICghbV9pc1RyYW5z
YWN0aW9uUXVldWVFbmFibGVkKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtNTkzLDE0ICs1OTMs
MTQgQEAgdm9pZCBEYXRhYmFzZTo6c2NoZWR1bGVUcmFuc2FjdGlvblN0ZXAoUwogCiB2b2lkIERh
dGFiYXNlOjppblByb2dyZXNzVHJhbnNhY3Rpb25Db21wbGV0ZWQoKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4KTsKICAgICBtX3RyYW5zYWN0aW9u
SW5Qcm9ncmVzcyA9IGZhbHNlOwogICAgIHNjaGVkdWxlVHJhbnNhY3Rpb24oKTsKIH0KIAogYm9v
bCBEYXRhYmFzZTo6aGFzUGVuZGluZ1RyYW5zYWN0aW9uKCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CiAgICAgcmV0dXJuIG1fdHJhbnNhY3Rp
b25JblByb2dyZXNzIHx8ICFtX3RyYW5zYWN0aW9uUXVldWUuaXNFbXB0eSgpOwogfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCShyZXZp
c2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiU1FMaXRlRGF0YWJhc2Uu
aCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNjIs
NyArMTYzLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RGF0YWJhc2VBdXRob3JpemVyPiBtX2Rh
dGFiYXNlQXV0aG9yaXplcjsKIAogICAgIERlcXVlPFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tl
bmQ+PiBtX3RyYW5zYWN0aW9uUXVldWU7Ci0gICAgTXV0ZXggbV90cmFuc2FjdGlvbkluUHJvZ3Jl
c3NNdXRleDsKKyAgICBMb2NrIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXg7CiAgICAgYm9v
bCBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzczsKICAgICBib29sIG1faXNUcmFuc2FjdGlvblF1ZXVl
RW5hYmxlZDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRhc2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUYXNrLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgs
IDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgRGF0YWJhc2VUYXNrU3lu
Y2hyb25pemVyOjp0YXNrQ29tcGwKIHsKICAgICBtX3N5bmNocm9ub3VzTXV0ZXgubG9jaygpOwog
ICAgIG1fdGFza0NvbXBsZXRlZCA9IHRydWU7Ci0gICAgbV9zeW5jaHJvbm91c0NvbmRpdGlvbi5z
aWduYWwoKTsKKyAgICBtX3N5bmNocm9ub3VzQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIG1f
c3luY2hyb25vdXNNdXRleC51bmxvY2soKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oCShyZXZpc2lvbiAxODg1Njkp
CisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywg
MjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMDgsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw4ICszMSw5IEBACiAjaW5j
bHVkZSAiRGF0YWJhc2VCYXNpY1R5cGVzLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VFcnJvci5oIgog
I2luY2x1ZGUgIlNRTFRyYW5zYWN0aW9uQmFja2VuZC5oIgorI2luY2x1ZGUgPHd0Zi9Db25kaXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsOCArNTksOCBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgYm9vbCBtX3Rhc2tDb21wbGV0ZWQ7Ci0gICAgTXV0ZXggbV9zeW5j
aHJvbm91c011dGV4OwotICAgIFRocmVhZENvbmRpdGlvbiBtX3N5bmNocm9ub3VzQ29uZGl0aW9u
OworICAgIExvY2sgbV9zeW5jaHJvbm91c011dGV4OworICAgIENvbmRpdGlvbiBtX3N5bmNocm9u
b3VzQ29uZGl0aW9uOwogI2lmbmRlZiBOREVCVUcKICAgICBib29sIG1faGFzQ2hlY2tlZEZvclRl
cm1pbmF0aW9uOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgRGF0YWJhc2VUaHJlYWQ6On5EYXRhYmFzZVRo
cmVhZCgpCiAKIGJvb2wgRGF0YWJhc2VUaHJlYWQ6OnN0YXJ0KCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdGhy
ZWFkQ3JlYXRpb25NdXRleCk7CiAKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0dXJu
IHRydWU7CkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBEYXRhYmFzZVRocmVhZDo6ZGF0YWJhc2VU
aHJlYWQoKQogewogICAgIHsKICAgICAgICAgLy8gV2FpdCBmb3IgRGF0YWJhc2VUaHJlYWQ6OnN0
YXJ0KCkgdG8gY29tcGxldGUuCi0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJlYWRDcmVh
dGlvbk11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRl
eCk7CiAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiU3RhcnRlZCBEYXRhYmFzZVRocmVhZCAlcCIs
IHRoaXMpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRocmVhZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCSh3b3JraW5nIGNv
cHkpCkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGF0YWJhc2VU
aHJlYWRTdGFydCh2b2lkKik7CiAgICAgdm9pZCBkYXRhYmFzZVRocmVhZCgpOwogCi0gICAgTXV0
ZXggbV90aHJlYWRDcmVhdGlvbk11dGV4OworICAgIExvY2sgbV90aHJlYWRDcmVhdGlvbk11dGV4
OwogICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJRDsKICAgICBSZWZQdHI8RGF0YWJhc2VU
aHJlYWQ+IG1fc2VsZlJlZjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIERhdGFiYXNlVHJhY2tlcjo6RGF0YWJh
c2VUcmFja2VyKGNvbnN0IFMKIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnNldERhdGFiYXNlRGly
ZWN0b3J5UGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0Rh
dGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKICAgICBBU1NFUlQoIW1fZGF0YWJhc2UuaXNPcGVuKCkpOwogICAgIG1f
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoID0gcGF0aC5pc29sYXRlZENvcHkoKTsKIH0KQEAgLTE2Niw3
ICsxNjYsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhCiB7CiAg
ICAgZXJyb3IgPSBEYXRhYmFzZUVycm9yOjpOb25lOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja0Rh
dGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKICAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gY29udGV4dC0+c2Vj
dXJpdHlPcmlnaW4oKTsKIAogICAgIGlmIChpc0RlbGV0aW5nRGF0YWJhc2VPck9yaWdpbkZvcihv
cmlnaW4sIG5hbWUpKSB7CkBAIC0yMTgsNyArMjE4LDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6
OnJldHJ5Q2FuRXN0YWJsaXNoRAogewogICAgIGVycm9yID0gRGF0YWJhc2VFcnJvcjo6Tm9uZTsK
IAotICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExv
Y2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgU2VjdXJpdHlPcmln
aW4qIG9yaWdpbiA9IGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCk7CiAKICAgICAvLyBXZSBoYXZl
IGFscmVhZHkgZWxpbWluYXRlZCBvdGhlciB0eXBlcyBvZiBlcnJvcnMgaW4gY2FuRXN0YWJsaXNo
RGF0YWJhc2UoKS4KQEAgLTI1Nyw3ICsyNTcsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6aGFz
RW50cnlGb3JPcmlnaW5OCiAKIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpoYXNFbnRyeUZvck9yaWdp
bihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFz
ZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJh
c2VHdWFyZCk7CiAgICAgcmV0dXJuIGhhc0VudHJ5Rm9yT3JpZ2luTm9Mb2NrKG9yaWdpbik7CiB9
CiAKQEAgLTI4Niw3ICsyODYsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFja2Vy
OjpnZXRNCiB7CiAgICAgLy8gVGhlIG1heGltdW0gc2l6ZSBmb3IgYSBkYXRhYmFzZSBpcyB0aGUg
ZnVsbCBxdW90YSBmb3IgaXRzIG9yaWdpbiwgbWludXMgdGhlIGN1cnJlbnQgdXNhZ2Ugd2l0aGlu
IHRoZSBvcmlnaW4sCiAgICAgLy8gcGx1cyB0aGUgY3VycmVudCB1c2FnZSBvZiB0aGUgZ2l2ZW4g
ZGF0YWJhc2UKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIFNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4gPSBkYXRhYmFzZS0+c2VjdXJpdHlPcmlnaW4oKTsKIAogICAgIHVu
c2lnbmVkIGxvbmcgbG9uZyBxdW90YSA9IHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbik7CkBA
IC0zMTEsNyArMzExLDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6OmNsb3NlQWxsRGF0YWJhc2Vz
KAogewogICAgIFZlY3RvcjxSZWY8RGF0YWJhc2U+PiBvcGVuRGF0YWJhc2VzOwogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1
YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFi
YXNlTWFwR3VhcmQpOwogICAgICAgICBpZiAoIW1fb3BlbkRhdGFiYXNlTWFwKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBmb3IgKGF1dG8mIG5hbWVNYXAgOiBtX29wZW5EYXRhYmFzZU1h
cC0+dmFsdWVzKCkpIHsKQEAgLTM4OSwxMyArMzg5LDEzIEBAIFN0cmluZyBEYXRhYmFzZVRyYWNr
ZXI6OmZ1bGxQYXRoRm9yRGF0YWIKIAogU3RyaW5nIERhdGFiYXNlVHJhY2tlcjo6ZnVsbFBhdGhG
b3JEYXRhYmFzZShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJv
b2wgY3JlYXRlSWZOb3RFeGlzdHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1f
ZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1
YXJkKTsKICAgICByZXR1cm4gZnVsbFBhdGhGb3JEYXRhYmFzZU5vTG9jayhvcmlnaW4sIG5hbWUs
IGNyZWF0ZUlmTm90RXhpc3RzKS5pc29sYXRlZENvcHkoKTsKIH0KIAogdm9pZCBEYXRhYmFzZVRy
YWNrZXI6Om9yaWdpbnMoVmVjdG9yPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+JiBvcmlnaW5zUmVz
dWx0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwor
ICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAKICAgICBvcGVu
VHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgaWYgKCFtX2Rh
dGFiYXNlLmlzT3BlbigpKQpAQCAtNDQ4LDcgKzQ0OCw3IEBAIGJvb2wgRGF0YWJhc2VUcmFja2Vy
OjpkYXRhYmFzZU5hbWVzRm9yT3IKIHsKICAgICBWZWN0b3I8U3RyaW5nPiB0ZW1wOwogICAgIHsK
LSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgICAgIGlm
ICghZGF0YWJhc2VOYW1lc0Zvck9yaWdpbk5vTG9jayhvcmlnaW4sIHRlbXApKQogICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CkBAIC00NjUsNyArNDY1LDcgQEAgRGF0YWJhc2VEZXRhaWxz
IERhdGFiYXNlVHJhY2tlcjo6ZGV0YWlscwogICAgIGludDY0X3QgZXhwZWN0ZWRVc2FnZTsKIAog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAKICAg
ICAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShEb250Q3JlYXRlSWZEb2VzTm90RXhpc3QpOwogICAg
ICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCkBAIC01MDAsNyArNTAwLDcgQEAgdm9pZCBE
YXRhYmFzZVRyYWNrZXI6OnNldERhdGFiYXNlRGV0YWlscwogICAgIFN0cmluZyBvcmlnaW5JZGVu
dGlmaWVyID0gb3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKTsKICAgICBpbnQ2NF90IGd1aWQg
PSAwOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgIG9wZW5U
cmFja2VyRGF0YWJhc2UoQ3JlYXRlSWZEb2VzTm90RXhpc3QpOwogICAgIGlmICghbV9kYXRhYmFz
ZS5pc09wZW4oKSkKQEAgLTU0OSw3ICs1NDksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0
RGF0YWJhc2VEZXRhaWxzCiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpkb25lQ3JlYXRpbmdEYXRh
YmFzZShEYXRhYmFzZSogZGF0YWJhc2UpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNl
KG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFz
ZUd1YXJkKTsKICAgICBkb25lQ3JlYXRpbmdEYXRhYmFzZShkYXRhYmFzZS0+c2VjdXJpdHlPcmln
aW4oKSwgZGF0YWJhc2UtPnN0cmluZ0lkZW50aWZpZXIoKSk7CiB9CiAKQEAgLTU1OSw3ICs1NTks
NyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6YWRkT3BlbkRhdGFiYXNlKERhCiAgICAgICAgIHJl
dHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayht
X29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VN
YXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogCiAgICAgICAgIGlmICghbV9vcGVuRGF0
YWJhc2VNYXApCiAgICAgICAgICAgICBtX29wZW5EYXRhYmFzZU1hcCA9IHN0ZDo6bWFrZV91bmlx
dWU8RGF0YWJhc2VPcmlnaW5NYXA+KCk7CkBAIC01ODksNyArNTg5LDcgQEAgdm9pZCBEYXRhYmFz
ZVRyYWNrZXI6OnJlbW92ZU9wZW5EYXRhYmFzZQogICAgICAgICByZXR1cm47CiAKICAgICB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBH
dWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRh
YmFzZU1hcEd1YXJkKTsKIAogICAgICAgICBpZiAoIW1fb3BlbkRhdGFiYXNlTWFwKSB7CiAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTYyOSw3ICs2MjksNyBAQCB2b2lkIERh
dGFiYXNlVHJhY2tlcjo6cmVtb3ZlT3BlbkRhdGFiYXNlCiAKIHZvaWQgRGF0YWJhc2VUcmFja2Vy
OjpnZXRPcGVuRGF0YWJhc2VzKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0cmluZyYg
bmFtZSwgSGFzaFNldDxSZWZQdHI8RGF0YWJhc2U+PiogZGF0YWJhc2VzKQogewotICAgIE11dGV4
TG9ja2VyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CisgICAg
TG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwog
ICAgIGlmICghbV9vcGVuRGF0YWJhc2VNYXApCiAgICAgICAgIHJldHVybjsKIApAQCAtNjQ3LDcg
KzY0Nyw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpnZXRPcGVuRGF0YWJhc2VzKFMKIAogUmVm
UHRyPE9yaWdpbkxvY2s+IERhdGFiYXNlVHJhY2tlcjo6b3JpZ2luTG9ja0ZvcihTZWN1cml0eU9y
aWdpbiogb3JpZ2luKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNl
R3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAg
ICAgU3RyaW5nIGRhdGFiYXNlSWRlbnRpZmllciA9IG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVy
KCk7CiAKICAgICAvLyBUaGUgb3JpZ2luTG9ja01hcCBpcyBhY2Nlc3NlZCBmcm9tIG11bHRpcGxl
IERhdGFiYXNlVGhyZWFkcyBzaW5jZQpAQCAtNzI3LDEzICs3MjcsMTMgQEAgdW5zaWduZWQgbG9u
ZyBsb25nIERhdGFiYXNlVHJhY2tlcjo6cXVvdAogCiB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJh
c2VUcmFja2VyOjpxdW90YUZvck9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewotICAg
IE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xk
ZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgcmV0dXJuIHF1b3RhRm9yT3Jp
Z2luTm9Mb2NrKG9yaWdpbik7CiB9CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXRRdW90YShT
ZWN1cml0eU9yaWdpbiogb3JpZ2luLCB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRl
ciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgIGlmIChxdW90YUZvck9yaWdp
bk5vTG9jayhvcmlnaW4pID09IHF1b3RhKQogICAgICAgICByZXR1cm47CkBAIC04NjQsNyArODY0
LDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cgogewogICAgIFZl
Y3RvcjxTdHJpbmc+IGRhdGFiYXNlTmFtZXM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0
YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShEb250
Q3JlYXRlSWZEb2VzTm90RXhpc3QpOwogICAgICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC04OTAsNyArODkwLDcgQEAgYm9vbCBEYXRh
YmFzZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cgogICAgIH0KIAogICAgIHsKLSAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgICAgIGRlbGV0ZU9yaWdp
bkxvY2tGb3Iob3JpZ2luKTsKICAgICAgICAgZG9uZURlbGV0aW5nT3JpZ2luKG9yaWdpbik7CiAK
QEAgLTEwNzEsNyArMTA3MSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpkb25lRGVsZXRpbmdP
cmlnaW4KIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZShTZWN1cml0eU9yaWdp
biogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBs
b2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICAgICAgb3BlblRyYWNrZXJEYXRhYmFz
ZShEb250Q3JlYXRlSWZEb2VzTm90RXhpc3QpOwogICAgICAgICBpZiAoIW1fZGF0YWJhc2UuaXNP
cGVuKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDg2LDEyICsxMDg2LDEyIEBA
IGJvb2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZShTZWMKICAgICAvLyBXZSBkcm9w
IHRoZSBsb2NrIGhlcmUgYmVjYXVzZSBob2xkaW5nIGxvY2tzIGR1cmluZyBhIGNhbGwgdG8gZGVs
ZXRlRGF0YWJhc2VGaWxlIHdpbGwgZGVhZGxvY2suCiAgICAgaWYgKCFkZWxldGVEYXRhYmFzZUZp
bGUob3JpZ2luLCBuYW1lKSkgewogICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBkZWxldGUg
ZmlsZSBmb3IgZGF0YWJhc2UgJXMgaW4gb3JpZ2luICVzIiwgbmFtZS5hc2NpaSgpLmRhdGEoKSwg
b3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKS5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgICAgICBkb25lRGVsZXRpbmdE
YXRhYmFzZShvcmlnaW4sIG5hbWUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0g
ICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hv
bGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgIFNRTGl0ZVN0YXRlbWVu
dCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwgIkRFTEVURSBGUk9NIERhdGFiYXNlcyBXSEVSRSBvcmln
aW49PyBBTkQgbmFtZT0/Iik7CiAgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRF
X09LKSB7CkBAIC0xMTMxLDcgKzExMzEsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRl
RGF0YWJhc2VGaWxlCiAKICNpZm5kZWYgTkRFQlVHCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
RGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICAgICAgQVNTRVJUKGlzRGVsZXRpbmdEYXRh
YmFzZU9yT3JpZ2luRm9yKG9yaWdpbiwgbmFtZSkpOwogICAgIH0KICNlbmRpZgpAQCAtMTE0Miw3
ICsxMTQyLDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZQogICAg
IC8vIERhdGFiYXNlOjptYXJrQXNEZWxldGVkQW5kQ2xvc2UoKSwgc2luY2UgdGhhdCBjYW4gY2F1
c2UgYSBkZWFkbG9jawogICAgIC8vIGR1cmluZyB0aGUgc3luY2hyb25vdXMgRGF0YWJhc2VUaHJl
YWQgY2FsbCBpdCB0cmlnZ2Vycy4KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIG9wZW5EYXRh
YmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIg
b3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKICAgICAgICAgaWYg
KG1fb3BlbkRhdGFiYXNlTWFwKSB7CiAgICAgICAgICAgICAvLyBUaGVyZSBhcmUgc29tZSBvcGVu
IGRhdGFiYXNlcywgbGV0cyBjaGVjayBpZiB0aGV5IGFyZSBmb3IgdGhpcyBvcmlnaW4uCiAgICAg
ICAgICAgICBEYXRhYmFzZU5hbWVNYXAqIG5hbWVNYXAgPSBtX29wZW5EYXRhYmFzZU1hcC0+Z2V0
KG9yaWdpbik7CkBAIC0xMTg1LDcgKzExODUsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVt
b3ZlRGVsZXRlZE9wZW5lCiAgICAgCiAgICAgewogICAgICAgICAvLyBBY3F1aXJlIHRoZSBsb2Nr
IGJlZm9yZSBjYWxsaW5nIG9wZW5UcmFja2VyRGF0YWJhc2UuCi0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tE
YXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERv
bnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgfQogCkBAIC0xMjAxLDcgKzEyMDEsNyBAQCB2
b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlRGVsZXRlZE9wZW5lCiAgICAgLy8gRGF0YWJhc2U6
Om1hcmtBc0RlbGV0ZWRBbmRDbG9zZSgpLCBzaW5jZSB0aGF0IGNhbiBjYXVzZSBhIGRlYWRsb2Nr
CiAgICAgLy8gZHVyaW5nIHRoZSBzeW5jaHJvbm91cyBEYXRhYmFzZVRocmVhZCBjYWxsIGl0IHRy
aWdnZXJzLgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayht
X29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VN
YXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogICAgICAgICBpZiAobV9vcGVuRGF0YWJh
c2VNYXApIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgb3BlbkRhdGFiYXNlIDogKm1fb3BlbkRh
dGFiYXNlTWFwKSB7CiAgICAgICAgICAgICAgICAgYXV0byYgb3JpZ2luID0gb3BlbkRhdGFiYXNl
LmtleTsKQEAgLTEzMDUsOSArMTMwNSw5IEBAIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVE
YXRhYmFzZUZpbGUKICAgICByZXR1cm4gU1FMaXRlRmlsZVN5c3RlbTo6ZGVsZXRlRGF0YWJhc2VG
aWxlKHBhdGgpOwogfQogCi1NdXRleCYgRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRl
eCgpCitMb2NrJiBEYXRhYmFzZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+IG11dGV4OworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxMb2NrPiBtdXRleDsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTEzMzAsOSArMTMz
MCw5IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXRDbGllbnQoRGF0YWJhc2UKICAgICBtX2Ns
aWVudCA9IGNsaWVudDsKIH0KIAotc3RhdGljIE11dGV4JiBub3RpZmljYXRpb25NdXRleCgpCitz
dGF0aWMgTG9jayYgbm90aWZpY2F0aW9uTXV0ZXgoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxNdXRleD4gbXV0ZXg7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4
OwogICAgIHJldHVybiBtdXRleDsKIH0KIApAQCAtMTM0Niw3ICsxMzQ2LDcgQEAgc3RhdGljIE5v
dGlmaWNhdGlvblF1ZXVlJiBub3RpZmljYXRpb25RdQogCiB2b2lkIERhdGFiYXNlVHJhY2tlcjo6
c2NoZWR1bGVOb3RpZnlEYXRhYmFzZUNoYW5nZWQoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgY29u
c3QgU3RyaW5nJiBuYW1lKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihub3RpZmljYXRpb25N
dXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKIAog
ICAgIG5vdGlmaWNhdGlvblF1ZXVlKCkuYXBwZW5kKHN0ZDo6cGFpcjxSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+LCBTdHJpbmc+KG9yaWdpbi0+aXNvbGF0ZWRDb3B5KCksIG5hbWUuaXNvbGF0ZWRDb3B5
KCkpKTsKICAgICBzY2hlZHVsZUZvck5vdGlmaWNhdGlvbigpOwpAQCAtMTM3Miw3ICsxMzcyLDcg
QEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6Om5vdGlmeURhdGFiYXNlc0NoYQogCiAgICAgTm90aWZp
Y2F0aW9uUXVldWUgbm90aWZpY2F0aW9uczsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobm90
aWZpY2F0aW9uTXV0ZXgoKSk7CiAKICAgICAgICAgbm90aWZpY2F0aW9ucy5zd2FwKG5vdGlmaWNh
dGlvblF1ZXVlKCkpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlVHJhY2tlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgLy8gTW9iaWxlU2FmYXJpIHdp
bGwgZ3JhYiB0aGlzIG11dGV4IG9uIHRoZSBtYWluIHRocmVhZCBiZWZvcmUgZGlzcGF0Y2hpbmcg
dGhlIHRhc2sgdG8gCiAgICAgLy8gY2xlYW4gdXAgemVybyBieXRlIGRhdGFiYXNlIGZpbGVzLiAg
QW55IG9wZXJhdGlvbnMgdG8gb3BlbiBuZXcgZGF0YWJhc2Ugd2lsbCBoYXZlIHRvCiAgICAgLy8g
d2FpdCBmb3IgdGhhdCB0YXNrIHRvIGZpbmlzaCBieSB3YWl0aW5nIG9uIHRoaXMgbXV0ZXguCi0g
ICAgc3RhdGljIE11dGV4JiBvcGVuRGF0YWJhc2VNdXRleCgpOworICAgIHN0YXRpYyBMb2NrJiBv
cGVuRGF0YWJhc2VNdXRleCgpOwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lk
IGVtcHR5RGF0YWJhc2VGaWxlc1JlbW92YWxUYXNrV2lsbEJlU2NoZWR1bGVkKCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tEaWRG
aW5pc2goKTsKQEAgLTE1MCwxMSArMTUwLDExIEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNo
TWFwPFN0cmluZywgRGF0YWJhc2VTZXQqPiBEYXRhYmFzZU5hbWVNYXA7CiAgICAgdHlwZWRlZiBI
YXNoTWFwPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIERhdGFiYXNlTmFtZU1hcCo+IERhdGFiYXNl
T3JpZ2luTWFwOwogCi0gICAgTXV0ZXggbV9vcGVuRGF0YWJhc2VNYXBHdWFyZDsKKyAgICBMb2Nr
IG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQ7CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8RGF0
YWJhc2VPcmlnaW5NYXA+IG1fb3BlbkRhdGFiYXNlTWFwOwogCiAgICAgLy8gVGhpcyBsb2NrIHBy
b3RlY3RzIG1fZGF0YWJhc2UsIG1fb3JpZ2luTG9ja01hcCwgbV9kYXRhYmFzZURpcmVjdG9yeVBh
dGgsIG1fb3JpZ2luc0JlaW5nRGVsZXRlZCwgbV9iZWluZ0NyZWF0ZWQsIGFuZCBtX2JlaW5nRGVs
ZXRlZC4KLSAgICBNdXRleCBtX2RhdGFiYXNlR3VhcmQ7CisgICAgTG9jayBtX2RhdGFiYXNlR3Vh
cmQ7CiAgICAgU1FMaXRlRGF0YWJhc2UgbV9kYXRhYmFzZTsKIAogICAgIHR5cGVkZWYgSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxPcmlnaW5Mb2NrPj4gT3JpZ2luTG9ja01hcDsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5oCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxv
Y2suaAkod29ya2luZyBjb3B5KQpAQCAtMjcsOCArMjcsOCBAQAogI2RlZmluZSBPcmlnaW5Mb2Nr
X2gKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRp
bmdQcmltaXRpdmVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgU3Ry
aW5nIGxvY2tGaWxlTmFtZUZvclBhdGgoU3RyaW5nIG9yaWdpblBhdGgpOwogCiAgICAgU3RyaW5n
IG1fbG9ja0ZpbGVOYW1lOwotICAgIE11dGV4IG1fbXV0ZXg7CisgICAgTG9jayBtX211dGV4Owog
I2lmIFVTRShGSUxFX0xPQ0spCiAgICAgUGxhdGZvcm1GaWxlSGFuZGxlIG1fbG9ja0hhbmRsZTsK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxs
YmFja1dyYXBwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAjZGVmaW5lIFNRTENhbGxiYWNrV3JhcHBlcl9oCiAK
ICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSA8d3RmL1RocmVh
ZGluZ1ByaW1pdGl2ZXMuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgICAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0UHRyOwogICAgICAgICBUKiBjYWxsYmFj
azsKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwor
ICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgICAgICAgICBpZiAo
IW1fY2FsbGJhY2spIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoIW1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtODMsNyArODMsNyBAQCBwdWJs
aWM6CiAKICAgICBQYXNzUmVmUHRyPFQ+IHVud3JhcCgpCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgp
OwogICAgICAgICBBU1NFUlQoIW1fY2FsbGJhY2sgfHwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5pc0NvbnRleHRUaHJlYWQoKSk7CiAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9
IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBtX2NhbGxiYWNrLnJlbGVhc2UoKTsKQEAgLTkzLDcg
KzkzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ2FsbGJhY2soKSBjb25zdCB7IHJldHVybiBt
X2NhbGxiYWNrOyB9CiAKIHByaXZhdGU6Ci0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1f
bXV0ZXg7CiAgICAgUmVmUHRyPFQ+IG1fY2FsbGJhY2s7CiAgICAgUmVmUHRyPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ+IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIH07CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2Fj
dGlvbkJhY2tlbmQuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM4MSw3ICszODEsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZG9DbGVhbnVw
KCkKIAogICAgIHJlbGVhc2VPcmlnaW5Mb2NrSWZOZWVkZWQoKTsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N0YXRl
bWVudE11dGV4KTsKICAgICBtX3N0YXRlbWVudFF1ZXVlLmNsZWFyKCk7CiAKICAgICBpZiAobV9z
cWxpdGVUcmFuc2FjdGlvbikgewpAQCAtNDY1LDcgKzQ2NSw3IEBAIFNRTFRyYW5zYWN0aW9uQmFj
a2VuZDo6U3RhdGVGdW5jdGlvbiBTUUwKIAogdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmVu
cXVldWVTdGF0ZW1lbnRCYWNrZW5kKHN0ZDo6dW5pcXVlX3B0cjxTUUxTdGF0ZW1lbnQ+IHN0YXRl
bWVudEJhY2tlbmQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOwogICAgIG1fc3RhdGVt
ZW50UXVldWUuYXBwZW5kKFdURjo6bW92ZShzdGF0ZW1lbnRCYWNrZW5kKSk7CiB9CiAKQEAgLTY4
MSw3ICs2ODEsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Z2V0TmV4dFN0YXRlCiB7
CiAgICAgbV9jdXJyZW50U3RhdGVtZW50QmFja2VuZCA9IG51bGxwdHI7CiAKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9zdGF0ZW1lbnRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9z
dGF0ZW1lbnRNdXRleCk7CiAgICAgaWYgKCFtX3N0YXRlbWVudFF1ZXVlLmlzRW1wdHkoKSkKICAg
ICAgICAgbV9jdXJyZW50U3RhdGVtZW50QmFja2VuZCA9IG1fc3RhdGVtZW50UXVldWUudGFrZUZp
cnN0KCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRy
YW5zYWN0aW9uQmFja2VuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgJKHJldmlzaW9uIDE4ODU2OSkKKysr
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5k
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA3LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNywgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlIDxt
ZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
LSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTEyNSw3ICsxMjUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9yZWFkT25seTsKICAg
ICBib29sIG1faGFzVmVyc2lvbk1pc21hdGNoOwogCi0gICAgTXV0ZXggbV9zdGF0ZW1lbnRNdXRl
eDsKKyAgICBMb2NrIG1fc3RhdGVtZW50TXV0ZXg7CiAgICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRy
PFNRTFN0YXRlbWVudD4+IG1fc3RhdGVtZW50UXVldWU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
U1FMaXRlVHJhbnNhY3Rpb24+IG1fc3FsaXRlVHJhbnNhY3Rpb247CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAko
cmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lk
IFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OnNjaGVkdWxlRXhlCiAgICAgLy8gVGhlIG11dGV4IHBy
b3ZpZGVzIGEgbWVtb3J5IGJhcnJpZXIgdG8gZW5zdXJlIHRoYXQgb25jZQogICAgIC8vIHRlcm1p
bmF0aW9uIGlzIHNjaGVkdWxlZCwgaXNFeGVjdXRpb25UZXJtaW5hdGluZyB3aWxsCiAgICAgLy8g
YWNjdXJhdGVseSByZWZsZWN0IHRoYXQgc3RhdGUgd2hlbiBjYWxsZWQgZnJvbSBhbm90aGVyIHRo
cmVhZC4KLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zY2hlZHVsZWRUZXJtaW5hdGlvbk11dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOwog
ICAgIGlmIChtX3ZtLT53YXRjaGRvZykKICAgICAgICAgbV92bS0+d2F0Y2hkb2ctPmZpcmUoKTsK
IH0KQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OnNjaGVk
dWxlRXhlCiBib29sIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmlzRXhlY3V0aW9uVGVybWluYXRp
bmcoKSBjb25zdAogewogICAgIC8vIFNlZSBjb21tZW50cyBpbiBzY2hlZHVsZUV4ZWN1dGlvblRl
cm1pbmF0aW9uIHJlZ2FyZGluZyBtdXRleCB1c2FnZS4KLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zY2hlZHVsZWRUZXJtaW5hdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Nj
aGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOwogICAgIGlmIChtX3ZtLT53YXRjaGRvZykKICAgICAg
ICAgcmV0dXJuIG1fdm0tPndhdGNoZG9nLT5kaWRGaXJlKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSA8ZGVi
dWdnZXIvRGVidWdnZXIuaD4KICNpbmNsdWRlIDxoZWFwL1N0cm9uZy5oPgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmFrZWRQ
dHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBEZXByZWNhdGVk
IHsKIGNsYXNzIFNjcmlwdFZhbHVlOwpAQCAtOTcsNyArOTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIFdvcmtlckdsb2JhbFNjb3BlKiBtX3dvcmtlckdsb2JhbFNjb3BlOwogICAg
ICAgICBKU0M6OlN0cm9uZzxKU1dvcmtlckdsb2JhbFNjb3BlPiBtX3dvcmtlckdsb2JhbFNjb3Bl
V3JhcHBlcjsKICAgICAgICAgYm9vbCBtX2V4ZWN1dGlvbkZvcmJpZGRlbjsKLSAgICAgICAgbXV0
YWJsZSBNdXRleCBtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXg7CisgICAgICAgIG11dGFibGUg
TG9jayBtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXg7CiAgICAgfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9kZWZh
dWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQgTWVzc2FnZVBvcnRDaGFubmVs
OjpkaXNlbnRhbmdsZSgpCiAKIHZvaWQgTWVzc2FnZVBvcnRDaGFubmVsOjpwb3N0TWVzc2FnZVRv
UmVtb3RlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBzdGQ6OnVu
aXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzKQogewotICAgIE11dGV4
TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9j
aGFubmVsLT5tX211dGV4KTsKICAgICBpZiAoIW1fY2hhbm5lbC0+bV9vdXRnb2luZ1F1ZXVlKQog
ICAgICAgICByZXR1cm47CiAgICAgYm9vbCB3YXNFbXB0eSA9IG1fY2hhbm5lbC0+bV9vdXRnb2lu
Z1F1ZXVlLT5hcHBlbmRBbmRDaGVja0VtcHR5KHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWw6OkV2ZW50RGF0YT4obWVzc2FnZSwgV1RGOjptb3ZlKGNoYW5uZWxzKSkp
OwpAQCAtOTgsNyArOTgsNyBAQCB2b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbDo6cG9zdE1lc3NhZ2VU
b1JlCiAKIGJvb2wgTWVzc2FnZVBvcnRDaGFubmVsOjp0cnlHZXRNZXNzYWdlRnJvbVJlbW90ZShS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1l
c3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYgY2hhbm5lbHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
ayhtX2NoYW5uZWwtPm1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1f
bXV0ZXgpOwogICAgIGF1dG8gcmVzdWx0ID0gbV9jaGFubmVsLT5tX2luY29taW5nUXVldWUtPnRy
eUdldE1lc3NhZ2UoKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtMTIxLDIwICsxMjEsMjAgQEAgdm9pZCBNZXNzYWdlUG9ydENoYW5uZWw6OmNsb3NlKCkKIGJv
b2wgTWVzc2FnZVBvcnRDaGFubmVsOjppc0Nvbm5lY3RlZFRvKE1lc3NhZ2VQb3J0KiBwb3J0KQog
ewogICAgIC8vIEZJWE1FOiBXaGF0IGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVzdWx0IHJlbWFpbnMg
dGhlIHNhbWUgYWZ0ZXIgd2UgcmVsZWFzZSB0aGUgbG9jaz8KLSAgICBNdXRleExvY2tlciBsb2Nr
KG1fY2hhbm5lbC0+bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+bV9t
dXRleCk7CiAgICAgcmV0dXJuIG1fY2hhbm5lbC0+bV9yZW1vdGVQb3J0ID09IHBvcnQ7CiB9CiAK
IGJvb2wgTWVzc2FnZVBvcnRDaGFubmVsOjpoYXNQZW5kaW5nQWN0aXZpdHkoKQogewogICAgIC8v
IEZJWE1FOiBXaGF0IGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVzdWx0IHJlbWFpbnMgdGhlIHNhbWUg
YWZ0ZXIgd2UgcmVsZWFzZSB0aGUgbG9jaz8KLSAgICBNdXRleExvY2tlciBsb2NrKG1fY2hhbm5l
bC0+bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CiAg
ICAgcmV0dXJuICFtX2NoYW5uZWwtPm1faW5jb21pbmdRdWV1ZS0+aXNFbXB0eSgpOwogfQogCiBN
ZXNzYWdlUG9ydCogTWVzc2FnZVBvcnRDaGFubmVsOjpsb2NhbGx5RW50YW5nbGVkUG9ydChjb25z
dCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9jaGFubmVsLT5t
X211dGV4KTsKICAgICAvLyBTZWUgaWYgYm90aCBjb250ZXh0cyBhcmUgcnVuIGJ5IHRoZSBzYW1l
IHRocmVhZCAoYXJlIHRoZSBzYW1lIGNvbnRleHQsIG9yIGFyZSBib3RoIGRvY3VtZW50cykuCiAg
ICAgaWYgKG1fY2hhbm5lbC0+bV9yZW1vdGVQb3J0KSB7CiAgICAgICAgIC8vIFRoZSByZW1vdGUg
cG9ydCdzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgaXMgZ3VhcmFudGVlZCBub3QgdG8gY2hhbmdl
IGhlcmUgLSBNZXNzYWdlUG9ydDo6Y29udGV4dERlc3Ryb3llZCgpCkBAIC0xNjQsNyArMTY0LDcg
QEAgUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6On5QbGF0Zm9ybU1lcwogCiB2b2lkIFBsYXRm
b3JtTWVzc2FnZVBvcnRDaGFubmVsOjpzZXRSZW1vdGVQb3J0KE1lc3NhZ2VQb3J0KiBwb3J0KQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1f
bXV0ZXgpOwogICAgIC8vIFNob3VsZCBuZXZlciBzZXQgcG9ydCBpZiBpdCBpcyBhbHJlYWR5IHNl
dC4KICAgICBBU1NFUlQoIXBvcnQgfHwgIW1fcmVtb3RlUG9ydCk7CiAgICAgbV9yZW1vdGVQb3J0
ID0gcG9ydDsKQEAgLTE3NSwxMyArMTc1LDEzIEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1NZXNzYWdl
UG9ydENoYW5uZWw+IFAKICAgICAvLyBGSVhNRTogV2hhdCBndWFyYW50ZWVzIHRoYXQgdGhlIHJl
c3VsdCByZW1haW5zIHRoZSBzYW1lIGFmdGVyIHdlIHJlbGVhc2UgdGhlIGxvY2s/CiAgICAgLy8g
VGhpcyBsb2NrIG9ubHkgZ3VhcmFudGVlcyB0aGF0IHRoZSByZXR1cm5lZCBwb2ludGVyIHdpbGwg
bm90IGJlIHBvaW50aW5nIHRvIHJlbGVhc2VkIG1lbW9yeSwKICAgICAvLyBidXQgbm90IHRoYXQg
aXQgd2lsbCBzdGlsbCBiZSBwb2ludGluZyB0byB0aGlzIG9iamVjdCdzIGVudGFuZ2xlZCBwb3J0
IGNoYW5uZWwuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fZW50YW5nbGVkQ2hhbm5lbDsKIH0KIAogdm9p
ZCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y2xvc2VJbnRlcm5hbCgpCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAg
ICAgLy8gRGlzZW50YW5nbGUgb3Vyc2VsdmVzIGZyb20gdGhlIG90aGVyIGVuZC4gV2Ugc3RpbGwg
bWFpbnRhaW4gYSByZWZlcmVuY2UgdG8gb3VyIGluY29taW5nIHF1ZXVlLCBzaW5jZSBwcmV2aW91
c2x5LWV4aXN0aW5nIG1lc3NhZ2VzIHNob3VsZCBzdGlsbCBiZSBkZWxpdmVyZWQuCiAgICAgbV9y
ZW1vdGVQb3J0ID0gbnVsbHB0cjsKICAgICBtX2VudGFuZ2xlZENoYW5uZWwgPSBudWxscHRyOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1l
c3NhZ2VQb3J0Q2hhbm5lbC5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC05NSw4ICs5NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRSZW1v
dGVQb3J0KE1lc3NhZ2VQb3J0Kik7CiAgICAgICAgIHZvaWQgY2xvc2VJbnRlcm5hbCgpOwogCi0g
ICAgICAgIC8vIE11dGV4IHVzZWQgdG8gZW5zdXJlIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gdGhlIG9i
amVjdCBpbnRlcm5hbHMuCi0gICAgICAgIE11dGV4IG1fbXV0ZXg7CisgICAgICAgIC8vIExvY2sg
dXNlZCB0byBlbnN1cmUgZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgb2JqZWN0IGludGVybmFscy4K
KyAgICAgICAgTG9jayBtX211dGV4OwogCiAgICAgICAgIC8vIFBvaW50ZXIgdG8gb3VyIGVudGFu
Z2xlZCBwYWlyIC0gY2xlYXJlZCB3aGVuIGNsb3NlKCkgaXMgY2FsbGVkLgogICAgICAgICBSZWZQ
dHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IG1fZW50YW5nbGVkQ2hhbm5lbDsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAkocmV2aXNpb24g
MTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpyZW1v
dmVBbGxJY29ucygpCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhlIGluLW1lbW9yeSByZWNvcmQgb2Yg
ZXZlcnkgSWNvblJlY29yZCwgYW55dGhpbmcgd2FpdGluZyB0byBiZSByZWFkIGZyb20gZGlzaywg
YW5kIGFueXRoaW5nIHdhaXRpbmcgdG8gYmUgd3JpdHRlbiB0byBkaXNrCiAgICAgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgICAgICAKICAgICAgICAgLy8gQ2xlYXIg
dGhlIEljb25SZWNvcmRzIGZvciBldmVyeSBwYWdlIFVSTCAtIFJlZkNvdW50aW5nIHdpbGwgY2F1
c2UgdGhlIEljb25SZWNvcmRzIHRoZW1zZWx2ZXMgdG8gYmUgZGVsZXRlZAogICAgICAgICAvLyBX
ZSBkb24ndCBkZWxldGUgdGhlIGFjdHVhbCBQYWdlUmVjb3JkcyBiZWNhdXNlIHdlIGhhdmUgdGhl
ICJyZXRhaW4gaWNvbiBmb3IgdXJsIiBjb3VudCB0byBrZWVwIHRyYWNrIG9mCkBAIC0yMDAsMTQg
KzIwMCwxNCBAQCB2b2lkIEljb25EYXRhYmFzZTo6cmVtb3ZlQWxsSWNvbnMoKQogICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgLy8gQ2xlYXIgYWxsIGluLW1lbW9yeSByZWNvcmRzIG9mIHRo
aW5ncyB0aGF0IG5lZWQgdG8gYmUgc3luY2VkIG91dCB0byBkaXNrCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CiAgICAgICAgICAgICBtX3Bh
Z2VVUkxzUGVuZGluZ1N5bmMuY2xlYXIoKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nU3lu
Yy5jbGVhcigpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBDbGVhciBhbGwgaW4t
bWVtb3J5IHJlY29yZHMgb2YgdGhpbmdzIHRoYXQgbmVlZCB0byBiZSByZWFkIGluIGZyb20gZGlz
awogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVh
ZGluZ0xvY2spOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGlu
Z0xvY2spOwogICAgICAgICAgICAgbV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQuY2xlYXIoKTsKICAg
ICAgICAgICAgIG1fcGFnZVVSTHNJbnRlcmVzdGVkSW5JY29ucy5jbGVhcigpOwogICAgICAgICAg
ICAgbV9pY29uc1BlbmRpbmdSZWFkaW5nLmNsZWFyKCk7CkBAIC0yMjksNyArMjI5LDcgQEAgSW1h
Z2UqIEljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uRm9yUAogICAgIGlmICghaXNPcGVuKCkg
fHwgIWRvY3VtZW50Q2FuSGF2ZUljb24ocGFnZVVSTE9yaWdpbmFsKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAKICAgICBwZXJmb3JtUGVuZGluZ1Jl
dGFpbkFuZFJlbGVhc2VPcGVyYXRpb25zKCk7CiAgICAgCkBAIC0yNDUsNyArMjQ1LDcgQEAgSW1h
Z2UqIEljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uRm9yUAogICAgIC8vIDEgLSBUaGUgaW5p
dGlhbCB1cmwgaW1wb3J0IGlzIGluY29tcGxldGUgYW5kIHRoaXMgcGFnZVVSTCB3YXMgbWFya2Vk
IHRvIGJlIG5vdGlmaWVkIG9uY2UgaXQgaXMgY29tcGxldGUgaWYgYW4gaWNvblVSTCBleGlzdHMK
ICAgICAvLyAyIC0gVGhlIGluaXRpYWwgdXJsIGltcG9ydCBJUyBjb21wbGV0ZSBhbmQgdGhpcyBw
YWdlVVJMIGhhcyBubyBpY29uCiAgICAgaWYgKCFwYWdlUmVjb3JkKSB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgCiAgICAgICAgIC8vIEltcG9y
dCBpcyBvbmdvaW5nLCB0aGVyZSBtaWdodCBiZSBhbiBpY29uLiAgSW4gdGhpcyBjYXNlLCByZWdp
c3RlciB0byBiZSBub3RpZmllZCB3aGVuIHRoZSBpY29uIGNvbWVzIGluCiAgICAgICAgIC8vIElm
IHdlIGV2ZXIgcmVhY2ggdGhpcyBjb25kaXRpb24sIHdlIGtub3cgd2UndmUgYWxyZWFkeSBtYWRl
IHRoZSBwYWdlVVJMIGNvcHkKQEAgLTI3Niw3ICsyNzYsNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNl
OjpzeW5jaHJvbm91c0ljb25Gb3JQCiAgICAgICAgIGlmIChwYWdlVVJMQ29weS5pc051bGwoKSkK
ICAgICAgICAgICAgIHBhZ2VVUkxDb3B5ID0gcGFnZVVSTE9yaWdpbmFsLmlzb2xhdGVkQ29weSgp
OwogICAgIAotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2sp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAg
ICAgIG1fcGFnZVVSTHNJbnRlcmVzdGVkSW5JY29ucy5hZGQocGFnZVVSTENvcHkpOwogICAgICAg
ICBtX2ljb25zUGVuZGluZ1JlYWRpbmcuYWRkKGljb25SZWNvcmQpOwogICAgICAgICB3YWtlU3lu
Y1RocmVhZCgpOwpAQCAtMzA3LDcgKzMwNyw3IEBAIFBhc3NOYXRpdmVJbWFnZVB0ciBJY29uRGF0
YWJhc2U6OnN5bmNocm8KICAgICBpZiAoIWljb24pCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgIHJldHVybiBpY29uLT5uYXRpdmVJbWFnZUZvckN1
cnJlbnRGcmFtZSgpOwogfQogCkBAIC0zMjksNyArMzI5LDcgQEAgU3RyaW5nIEljb25EYXRhYmFz
ZTo6c3luY2hyb25vdXNJY29uVVJMRgogICAgIGlmICghaXNPcGVuKCkgfHwgIWRvY3VtZW50Q2Fu
SGF2ZUljb24ocGFnZVVSTE9yaWdpbmFsKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAg
ICAgICAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgCiAgICAgUGFnZVVSTFJlY29y
ZCogcGFnZVJlY29yZCA9IG1fcGFnZVVSTFRvUmVjb3JkTWFwLmdldChwYWdlVVJMT3JpZ2luYWwp
OwogICAgIGlmICghcGFnZVJlY29yZCkKQEAgLTQxNyw3ICs0MTcsNyBAQCB2b2lkIEljb25EYXRh
YmFzZTo6cmV0YWluSWNvbkZvclBhZ2VVUkwoCiAgICAgICAgIHJldHVybjsKIAogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsc1RvUmV0YWluT3JSZWxlYXNlTG9jayk7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsc1RvUmV0YWluT3JSZWxlYXNlTG9jayk7CiAg
ICAgICAgIG1fdXJsc1RvUmV0YWluLmFkZChwYWdlVVJMLmlzb2xhdGVkQ29weSgpKTsKICAgICAg
ICAgbV9yZXRhaW5PclJlbGVhc2VJY29uUmVxdWVzdGVkID0gdHJ1ZTsKICAgICB9CkBAIC00NTAs
NyArNDUwLDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnBlcmZvcm1SZXRhaW5JY29uRm9yUAogICAg
ICAgICBpZiAoIW1faWNvblVSTEltcG9ydENvbXBsZXRlKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKICAgICAgICAgLy8gSWYgdGhp
cyBwYWdlVVJMIHdhaXRpbmcgdG8gYmUgc3luYydlZCwgdXBkYXRlIHRoZSBzeW5jIHJlY29yZAog
ICAgICAgICAvLyBUaGlzIHNhdmVzIHVzIGluIHRoZSBjYXNlIHdoZXJlIGEgcGFnZSB3YXMgcmVh
ZHkgdG8gYmUgZGVsZXRlZCBmcm9tIHRoZSBkYXRhYmFzZSBidXQgd2FzIGp1c3QgcmV0YWluZWQg
LSBzbyB0aGVyZXMgbm8gbmVlZCB0byBkZWxldGUgaXQhCiAgICAgICAgIGlmICghbV9wcml2YXRl
QnJvd3NpbmdFbmFibGVkICYmIG1fcGFnZVVSTHNQZW5kaW5nU3luYy5jb250YWlucyhwYWdlVVJM
KSkgewpAQCAtNDcwLDcgKzQ3MCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpyZWxlYXNlSWNvbkZv
clBhZ2VVUkwKICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKICAgICAgICAgbV91cmxzVG9SZWxl
YXNlLmFkZChwYWdlVVJMLmlzb2xhdGVkQ29weSgpKTsKICAgICAgICAgbV9yZXRhaW5PclJlbGVh
c2VJY29uUmVxdWVzdGVkID0gdHJ1ZTsKICAgICB9CkBAIC01MDYsNyArNTA2LDcgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnBlcmZvcm1SZWxlYXNlSWNvbkZvcgogICAgIEFTU0VSVCghaWNvblJlY29y
ZCB8fCAoaWNvblJlY29yZCAmJiBtX2ljb25VUkxUb1JlY29yZE1hcC5nZXQoaWNvblJlY29yZC0+
aWNvblVSTCgpKSA9PSBpY29uUmVjb3JkKSk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgCiAgICAgICAgIC8vIFNpbmNlIHRoaXMg
cGFnZVVSTCBpcyBnb2luZyBhd2F5LCB0aGVyZSdzIG5vIHJlYXNvbiBhbnlvbmUgd291bGQgZXZl
ciBiZSBpbnRlcmVzdGVkIGluIGl0cyByZWFkIHJlc3VsdHMgICAgCiAgICAgICAgIGlmICghbV9p
Y29uVVJMSW1wb3J0Q29tcGxldGUpCkBAIC01MjIsNyArNTIyLDcgQEAgdm9pZCBJY29uRGF0YWJh
c2U6OnBlcmZvcm1SZWxlYXNlSWNvbkZvcgogICAgIAogICAgIC8vIE1hcmsgc3R1ZmYgZm9yIGRl
bGV0aW9uIGZyb20gdGhlIGRhdGFiYXNlIG9ubHkgaWYgd2UncmUgbm90IGluIHByaXZhdGUgYnJv
d3NpbmcKICAgICBpZiAoIW1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkgewotICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CiAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nU3luYy5z
ZXQocGFnZVVSTE9yaWdpbmFsLmlzb2xhdGVkQ29weSgpLCBwYWdlUmVjb3JkLT5zbmFwc2hvdCh0
cnVlKSk7CiAgICAgCiAgICAgICAgIC8vIElmIHRoaXMgcGFnZSBpcyB0aGUgbGFzdCBwYWdlIHRv
IHJlZmVyIHRvIGEgcGFydGljdWxhciBJY29uUmVjb3JkLCB0aGF0IEljb25SZWNvcmQgbmVlZHMg
dG8KQEAgLTU0OCwxMiArNTQ4LDEyIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZv
ckljb25VUkwKICAgICAKICAgICBWZWN0b3I8U3RyaW5nPiBwYWdlVVJMczsKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgCiAgICAgICAgIC8vIElmIHRoaXMg
aWNvbiB3YXMgcGVuZGluZyBhIHJlYWQsIHJlbW92ZSBpdCBmcm9tIHRoYXQgc2V0IGJlY2F1c2Ug
dGhpcyBuZXcgZGF0YSBzaG91bGQgb3ZlcnJpZGUgd2hhdCBpcyBvbiBkaXNrCiAgICAgICAgIFJl
ZlB0cjxJY29uUmVjb3JkPiBpY29uID0gbV9pY29uVVJMVG9SZWNvcmRNYXAuZ2V0KGljb25VUkwp
OwogICAgICAgICBpZiAoaWNvbikgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
cGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVu
ZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5yZW1v
dmUoaWNvbi5nZXQoKSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgaWNvbiA9IGdldE9y
Q3JlYXRlSWNvblJlY29yZChpY29uVVJMKTsKQEAgLTU2Nyw3ICs1NjcsNyBAQCB2b2lkIEljb25E
YXRhYmFzZTo6c2V0SWNvbkRhdGFGb3JJY29uVVJMCiAgICAgICAgIAogICAgICAgICAvLyBNYXJr
IHRoZSBJY29uUmVjb3JkIGFzIHJlcXVpcmluZyBhbiB1cGRhdGUgdG8gdGhlIGRhdGFiYXNlIG9u
bHkgaWYgcHJpdmF0ZSBicm93c2luZyBpcyBkaXNhYmxlZAogICAgICAgICBpZiAoIW1fcHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZCkgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVu
ZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5
bmNMb2NrKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nU3luYy5zZXQoaWNvblVSTCwgaWNv
bi0+c25hcHNob3QoKSk7CiAgICAgICAgIH0KIApAQCAtNjA4LDcgKzYwOCw3IEBAIHZvaWQgSWNv
bkRhdGFiYXNlOjpzZXRJY29uVVJMRm9yUGFnZVVSTCgKICAgICBTdHJpbmcgaWNvblVSTCwgcGFn
ZVVSTDsKICAgICAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAK
ICAgICAgICAgUGFnZVVSTFJlY29yZCogcGFnZVJlY29yZCA9IG1fcGFnZVVSTFRvUmVjb3JkTWFw
LmdldChwYWdlVVJMT3JpZ2luYWwpOwogICAgICAgICAKQEAgLTYzNiwxMyArNjM2LDEzIEBAIHZv
aWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uVVJMRm9yUGFnZVVSTCgKICAgICAgICAgICAgIEFTU0VS
VChpY29uUmVjb3JkLT5yZXRhaW5pbmdQYWdlVVJMcygpLnNpemUoKSA9PSAwKTsKICAgICAgICAg
ICAgIExPRyhJY29uRGF0YWJhc2UsICJJY29uIGZvciBpY29uIHVybCAlcyBpcyBhYm91dCB0byBi
ZSBkZXN0cm95ZWQgLSByZW1vdmluZyBtYXBwaW5nIGZvciBpdCIsIHVybEZvckxvZ2dpbmcoaWNv
blJlY29yZC0+aWNvblVSTCgpKS5hc2NpaSgpLmRhdGEoKSk7CiAgICAgICAgICAgICBtX2ljb25V
UkxUb1JlY29yZE1hcC5yZW1vdmUoaWNvblJlY29yZC0+aWNvblVSTCgpKTsKLSAgICAgICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICBtX2lj
b25zUGVuZGluZ1JlYWRpbmcucmVtb3ZlKGljb25SZWNvcmQuZ2V0KCkpOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICAvLyBBbmQgbWFyayB0aGlzIG1hcHBpbmcgdG8gYmUgYWRkZWQgdG8g
dGhlIGRhdGFiYXNlCiAgICAgICAgIGlmICghbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKSB7Ci0g
ICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAg
bV9wYWdlVVJMc1BlbmRpbmdTeW5jLnNldChwYWdlVVJMLCBwYWdlUmVjb3JkLT5zbmFwc2hvdCgp
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gSWYgdGhlIGljb24gaXMgb24gaXRzIGxh
c3QgcmVmLCBtYXJrIGl0IGZvciBkZWxldGlvbgpAQCAtNjc0LDcgKzY3NCw3IEBAIEljb25Mb2Fk
RGVjaXNpb24gSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm8KICAgICAvLyAxIC0gV2hlbiB3ZSByZWFk
IHRoZSBpY29uIHVybHMgZnJvbSBkaXNrLCBnZXR0aW5nIHRoZSB0aW1lU3RhbXAgYXQgdGhlIHNh
bWUgdGltZQogICAgIC8vIDIgLSBXaGVuIHdlIGdldCBhIG5ldyBpY29uIGZyb20gdGhlIGxvYWRl
ciwgaW4gd2hpY2ggY2FzZSB0aGUgdGltZXN0YW1wIGlzIHNldCBhdCB0aGF0IHRpbWUKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgICAgIGlmIChJY29uUmVj
b3JkKiBpY29uID0gbV9pY29uVVJMVG9SZWNvcmRNYXAuZ2V0KGljb25VUkwpKSB7CiAgICAgICAg
ICAgICBMT0coSWNvbkRhdGFiYXNlLCAiRm91bmQgZXhwaXJhdGlvbiB0aW1lIG9uIGEgcHJlc2Vu
dCBpY29uIGJhc2VkIG9uIGV4aXN0aW5nIEljb25SZWNvcmQiKTsKICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxpbnQ+KGN1cnJlbnRUaW1lKCkpIC0gc3RhdGljX2Nhc3Q8aW50PihpY29u
LT5nZXRUaW1lc3RhbXAoKSkgPiBpY29uRXhwaXJhdGlvblRpbWUgPyBJY29uTG9hZFllcyA6IElj
b25Mb2FkTm87CkBAIC02ODIsNyArNjgyLDcgQEAgSWNvbkxvYWREZWNpc2lvbiBJY29uRGF0YWJh
c2U6OnN5bmNocm9ubwogICAgIH0KICAgICAKICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgcmVj
b3JkIGZvciBpdCwgYnV0IHdlICpoYXZlKiBpbXBvcnRlZCBhbGwgaWNvblVSTHMgZnJvbSBkaXNr
LCB0aGVuIHdlIHNob3VsZCBsb2FkIGl0IG5vdwotICAgIE11dGV4TG9ja2VyIHJlYWRpbmdMb2Nr
ZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgIExvY2tIb2xkZXIgcmVhZGluZ0xvY2tlciht
X3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgaWYgKG1faWNvblVSTEltcG9ydENvbXBsZXRlKQog
ICAgICAgICByZXR1cm4gSWNvbkxvYWRZZXM7CiAgICAgICAgIApAQCAtNjk5LDcgKzY5OSw3IEBA
IGJvb2wgSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25EYXRhS24KIHsKICAgICBBU1NFUlRf
Tk9UX1NZTkNfVEhSRUFEKCk7CiAgICAgCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAg
IGlmIChJY29uUmVjb3JkKiBpY29uID0gbV9pY29uVVJMVG9SZWNvcmRNYXAuZ2V0KGljb25VUkwp
KQogICAgICAgICByZXR1cm4gaWNvbi0+aW1hZ2VEYXRhU3RhdHVzKCkgIT0gSW1hZ2VEYXRhU3Rh
dHVzVW5rbm93bjsKIApAQCAtNzU0LDI2ICs3NTQsMjYgQEAgdm9pZCBJY29uRGF0YWJhc2U6OmNo
ZWNrSW50ZWdyaXR5QmVmb3JlTwogCiBzaXplX3QgSWNvbkRhdGFiYXNlOjpwYWdlVVJMTWFwcGlu
Z0NvdW50KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgcmV0dXJuIG1fcGFn
ZVVSTFRvUmVjb3JkTWFwLnNpemUoKTsKIH0KIAogc2l6ZV90IEljb25EYXRhYmFzZTo6cmV0YWlu
ZWRQYWdlVVJMQ291bnQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKICAgICBwZXJm
b3JtUGVuZGluZ1JldGFpbkFuZFJlbGVhc2VPcGVyYXRpb25zKCk7CiAgICAgcmV0dXJuIG1fcmV0
YWluZWRQYWdlVVJMcy5zaXplKCk7CiB9CiAKIHNpemVfdCBJY29uRGF0YWJhc2U6Omljb25SZWNv
cmRDb3VudCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgIHJldHVybiBtX2lj
b25VUkxUb1JlY29yZE1hcC5zaXplKCk7CiB9CiAKIHNpemVfdCBJY29uRGF0YWJhc2U6Omljb25S
ZWNvcmRDb3VudFdpdGhEYXRhKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJ
Y29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAg
c2l6ZV90IHJlc3VsdCA9IDA7CiAgICAgCiAgICAgSGFzaE1hcDxTdHJpbmcsIEljb25SZWNvcmQq
Pjo6aXRlcmF0b3IgaSA9IG1faWNvblVSTFRvUmVjb3JkTWFwLmJlZ2luKCk7CkBAIC04MjksMTMg
KzgyOSwxMyBAQCB2b2lkIEljb25EYXRhYmFzZTo6bm90aWZ5UGVuZGluZ0xvYWREZWNpCiAKIHZv
aWQgSWNvbkRhdGFiYXNlOjp3YWtlU3luY1RocmVhZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fc3luY0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogCiAg
ICAgaWYgKCFtX2Rpc2FibGVTdWRkZW5UZXJtaW5hdGlvbldoaWxlU3luY1RocmVhZEhhc1dvcmtU
b0RvKQogICAgICAgICBtX2Rpc2FibGVTdWRkZW5UZXJtaW5hdGlvbldoaWxlU3luY1RocmVhZEhh
c1dvcmtUb0RvID0gc3RkOjptYWtlX3VuaXF1ZTxTdWRkZW5UZXJtaW5hdGlvbkRpc2FibGVyPigp
OwogCiAgICAgbV9zeW5jVGhyZWFkSGFzV29ya1RvRG8gPSB0cnVlOwotICAgIG1fc3luY0NvbmRp
dGlvbi5zaWduYWwoKTsKKyAgICBtX3N5bmNDb25kaXRpb24ubm90aWZ5T25lKCk7CiB9CiAKIHZv
aWQgSWNvbkRhdGFiYXNlOjpzY2hlZHVsZU9yRGVmZXJTeW5jVGltZXIoKQpAQCAtODc0LDEzICs4
NzQsMTMgQEAgYm9vbCBJY29uRGF0YWJhc2U6OmlzT3BlbigpIGNvbnN0CiAKIGJvb2wgSWNvbkRh
dGFiYXNlOjppc09wZW5CZXNpZGVzTWFpblRocmVhZENhbGxiYWNrcygpIGNvbnN0CiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
c3luY0xvY2spOwogICAgIHJldHVybiBtX3N5bmNUaHJlYWRSdW5uaW5nIHx8IG1fc3luY0RCLmlz
T3BlbigpOwogfQogCiBTdHJpbmcgSWNvbkRhdGFiYXNlOjpkYXRhYmFzZVBhdGgoKSBjb25zdAog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3N5bmNMb2NrKTsKICAgICByZXR1cm4gbV9jb21wbGV0ZURhdGFiYXNlUGF0aC5pc29s
YXRlZENvcHkoKTsKIH0KIApAQCAtOTE2LDcgKzkxNiw3IEBAIFBhZ2VVUkxSZWNvcmQqIEljb25E
YXRhYmFzZTo6Z2V0T3JDcmVhdGUKIAogICAgIFBhZ2VVUkxSZWNvcmQqIHBhZ2VSZWNvcmQgPSBt
X3BhZ2VVUkxUb1JlY29yZE1hcC5nZXQocGFnZVVSTCk7CiAgICAgCi0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Bl
bmRpbmdSZWFkaW5nTG9jayk7CiAgICAgaWYgKCFtX2ljb25VUkxJbXBvcnRDb21wbGV0ZSkgewog
ICAgICAgICAvLyBJZiB0aGUgaW5pdGlhbCBpbXBvcnQgb2YgYWxsIFVSTHMgaGFzbid0IGNvbXBs
ZXRlZCBhbmQgd2UgaGF2ZSBubyBwYWdlIHJlY29yZCwgd2UgYXNzdW1lIHdlICptaWdodCoga25v
dyBhYm91dCB0aGlzIGxhdGVyIGFuZCBjcmVhdGUgYSByZWNvcmQgZm9yIGl0CiAgICAgICAgIGlm
ICghcGFnZVJlY29yZCkgewpAQCAtOTg1LDcgKzk4NSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpp
Y29uRGF0YWJhc2VTeW5jVGhyZWEKICAgICB9CiAgICAgCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9zeW5jTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3lu
Y0xvY2spOwogICAgICAgICBpZiAoIW1fc3luY0RCLm9wZW4obV9jb21wbGV0ZURhdGFiYXNlUGF0
aCkpIHsKICAgICAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIG9wZW4gaWNvbiBkYXRhYmFz
ZSBhdCBwYXRoICVzIC0gJXMiLCBtX2NvbXBsZXRlRGF0YWJhc2VQYXRoLmFzY2lpKCkuZGF0YSgp
LCBtX3N5bmNEQi5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMTEz
LDcgKzExMTMsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybU9wZW5Jbml0aWFsaXphCiAg
ICAgICAgICAgICBtX3N5bmNEQi5jbG9zZSgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY0xvY2spOworICAgICAg
ICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgICAgICAgICAgICAg
IC8vIFNob3VsZCd2ZSBiZWVuIGNvbnN1bWVkIGJ5IFNRTGl0ZSwgZGVsZXRlIGp1c3QgdG8gbWFr
ZSBzdXJlIHdlIGRvbid0IHNlZSBpdCBhZ2FpbiBpbiB0aGUgZnV0dXJlOwogICAgICAgICAgICAg
ICAgIGRlbGV0ZUZpbGUobV9jb21wbGV0ZURhdGFiYXNlUGF0aCArICItam91cm5hbCIpOwogICAg
ICAgICAgICAgICAgIGRlbGV0ZUZpbGUobV9jb21wbGV0ZURhdGFiYXNlUGF0aCk7CkBAIC0xMjE1
LDcgKzEyMTUsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAg
ICAgIFN0cmluZyBpY29uVVJMID0gcXVlcnkuZ2V0Q29sdW1uVGV4dCgxKTsKIAogICAgICAgICB7
Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAg
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKIAogICAgICAgICAg
ICAgUGFnZVVSTFJlY29yZCogcGFnZVJlY29yZCA9IG1fcGFnZVVSTFRvUmVjb3JkTWFwLmdldChw
YWdlVVJMKTsKICAgICAgICAgICAgIApAQCAtMTI0OCw3ICsxMjQ4LDcgQEAgdm9pZCBJY29uRGF0
YWJhc2U6OnBlcmZvcm1VUkxJbXBvcnQoKQogICAgICAgICAvLyBvbmUgZm9yIHRoZSBVUkwgYW5k
IG9uZSBmb3IgdGhlIEltYWdlIGl0c2VsZgogICAgICAgICAvLyBOb3RlIHRoYXQgV2ViSWNvbkRh
dGFiYXNlIGlzIG5vdCBuZWNjZXNzYXJpbHkgQVBJIHNvIHdlIG1pZ2h0IGJlIGFibGUgdG8gbWFr
ZSB0aGlzIGNoYW5nZQogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9w
ZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAgaWYgKG1fcGFnZVVSTHNQZW5kaW5nSW1w
b3J0LmNvbnRhaW5zKHBhZ2VVUkwpKSB7CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hEaWRJbXBv
cnRJY29uVVJMRm9yUGFnZVVSTE9uTWFpblRocmVhZChwYWdlVVJMKTsKICAgICAgICAgICAgICAg
ICBtX3BhZ2VVUkxzUGVuZGluZ0ltcG9ydC5yZW1vdmUocGFnZVVSTCk7CkBAIC0xMjcxLDcgKzEy
NzEsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAgLy8gYnV0
IGFmdGVyIG1faWNvblVSTEltcG9ydENvbXBsZXRlIGlzIHNldCB0byB0cnVlLCB3ZSBkb24ndCBj
YXJlIGFib3V0IHRoaXMgc2V0IGFueW1vcmUKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxzOwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogCiAgICAgICAg
IHVybHMuYXBwZW5kUmFuZ2UobV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQuYmVnaW4oKSwgbV9wYWdl
VVJMc1BlbmRpbmdJbXBvcnQuZW5kKCkpOwogICAgICAgICBtX3BhZ2VVUkxzUGVuZGluZ0ltcG9y
dC5jbGVhcigpOyAgICAgICAgCkBAIC0xMjg0LDcgKzEyODQsNyBAQCB2b2lkIEljb25EYXRhYmFz
ZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAgLy8gUmVtb3ZlIHVucmV0YWluZWQgb25lcyBpZiBk
YXRhYmFzZSBjbGVhbnVwIGlzIGFsbG93ZWQKICAgICAvLyBLZWVwIGEgc2V0IG9mIG9uZXMgdGhh
dCBhcmUgcmV0YWluZWQgYW5kIHBlbmRpbmcgbm90aWZpY2F0aW9uCiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogCiAgICAgICAgIHBlcmZvcm1QZW5kaW5nUmV0YWlu
QW5kUmVsZWFzZU9wZXJhdGlvbnMoKTsKIApAQCAtMTMwMSwxMiArMTMwMSwxMiBAQCB2b2lkIElj
b25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAgICAgICAgICAgICAgICAgICAgICBt
X2ljb25VUkxUb1JlY29yZE1hcC5yZW1vdmUoaWNvblJlY29yZC0+aWNvblVSTCgpKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9j
ayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5k
aW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFnZVVSTHNJ
bnRlcmVzdGVkSW5JY29ucy5yZW1vdmUodXJsc1tpXSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV9pY29uc1BlbmRpbmdSZWFkaW5nLnJlbW92ZShpY29uUmVjb3JkKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5
bmNMb2NrKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1N5bmMu
c2V0KGljb25SZWNvcmQtPmljb25VUkwoKSwgaWNvblJlY29yZC0+c25hcHNob3QodHJ1ZSkpOyAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgIH0KQEAgLTEzNzEsNyArMTM3MSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzeW5j
VGhyZWFkTWFpbkxvb3AoKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgewotICAgICAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgICAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgICAgICAgICBwZXJmb3Jt
UGVuZGluZ1JldGFpbkFuZFJlbGVhc2VPcGVyYXRpb25zKCk7CiAgICAgICAgIH0KICAgICAgICAg
CkBAIC0xNDUxLDcgKzE0NTEsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVBlbmRpbmdS
ZXRhaW5BCiAgICAgSGFzaENvdW50ZWRTZXQ8U3RyaW5nPiB0b1JlbGVhc2U7CiAKICAgICB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIHBlbmRpbmdXb3JrTG9ja2VyKG1fdXJsc1RvUmV0YWluT3JSZWxl
YXNlTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgcGVuZGluZ1dvcmtMb2NrZXIobV91cmxzVG9S
ZXRhaW5PclJlbGVhc2VMb2NrKTsKICAgICAgICAgaWYgKCFtX3JldGFpbk9yUmVsZWFzZUljb25S
ZXF1ZXN0ZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTE0ODgsNyArMTQ4OCw3IEBAIGJv
b2wgSWNvbkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKCkKICAgICAvLyBUaGlzIHdheSB3ZSB3
b24ndCBob2xkIHRoZSBsb2NrIGZvciBhIGxvbmcgcGVyaW9kIG9mIHRpbWUKICAgICBWZWN0b3I8
SWNvblJlY29yZCo+IGljb25zOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
cGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5n
UmVhZGluZ0xvY2spOwogICAgICAgICBpY29ucy5hcHBlbmRSYW5nZShtX2ljb25zUGVuZGluZ1Jl
YWRpbmcuYmVnaW4oKSwgbV9pY29uc1BlbmRpbmdSZWFkaW5nLmVuZCgpKTsKICAgICB9CiAgICAg
CkBAIC0xNTAxLDkgKzE1MDEsOSBAQCBib29sIEljb25EYXRhYmFzZTo6cmVhZEZyb21EYXRhYmFz
ZSgpCiAKICAgICAgICAgLy8gVmVyaWZ5IHRoaXMgaWNvbiBzdGlsbCB3YW50cyB0byBiZSByZWFk
IGZyb20gZGlzawogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciB1cmxMb2NrZXIo
bV91cmxBbmRJY29uTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIHVybExvY2tlcihtX3Vy
bEFuZEljb25Mb2NrKTsKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBNdXRleExvY2tl
ciByZWFkTG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgICAgICAgICBMb2Nr
SG9sZGVyIHJlYWRMb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgIGlmIChtX2ljb25zUGVuZGluZ1JlYWRpbmcuY29udGFpbnMoaWNv
bnNbaV0pKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgbmV3IGRhdGEKQEAgLTE1
OTEsMTEgKzE1OTEsMTEgQEAgYm9vbCBJY29uRGF0YWJhc2U6OndyaXRlVG9EYXRhYmFzZSgpCiAg
ICAgLy8gd2UnbGwgcGljayBpdCB1cCBvbiB0aGUgbmV4dCBwYXNzLiAgVGhpcyBncmVhdGx5IHNp
bXBsaWZpZXMgdGhlIGxvY2tpbmcgc3RyYXRlZ3kgZm9yIHRoaXMgbWV0aG9kIGFuZCByZW1haW5z
IGNvaGVzaXZlIHdpdGggY2hhbmdlcwogICAgIC8vIGFza2VkIGZvciBieSB0aGUgZGF0YWJhc2Ug
b24gdGhlIG1haW4gdGhyZWFkCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91
cmxBbmRJY29uTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxv
Y2spOwogICAgICAgICBWZWN0b3I8SWNvblNuYXBzaG90PiBpY29uU25hcHNob3RzOwogICAgICAg
ICBWZWN0b3I8UGFnZVVSTFNuYXBzaG90PiBwYWdlU25hcHNob3RzOwogICAgICAgICB7Ci0gICAg
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogCiAgICAgICAgICAgICBp
Y29uU25hcHNob3RzLmFwcGVuZFJhbmdlKG1faWNvbnNQZW5kaW5nU3luYy5iZWdpbigpLnZhbHVl
cygpLCBtX2ljb25zUGVuZGluZ1N5bmMuZW5kKCkudmFsdWVzKCkpOwogICAgICAgICAgICAgbV9p
Y29uc1BlbmRpbmdTeW5jLmNsZWFyKCk7CkBAIC0xNjU4LDcgKzE2NTgsNyBAQCB2b2lkIEljb25E
YXRhYmFzZTo6cHJ1bmVVbnJldGFpbmVkSWNvbnMoCiAgICAgCiAgICAgaW50IHJlc3VsdDsKICAg
ICB3aGlsZSAoKHJlc3VsdCA9IHBhZ2VTUUwuc3RlcCgpKSA9PSBTUUxJVEVfUk9XKSB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgICAgIGlmICghbV9wYWdlVVJMVG9S
ZWNvcmRNYXAuY29udGFpbnMocGFnZVNRTC5nZXRDb2x1bW5UZXh0KDEpKSkKICAgICAgICAgICAg
IHBhZ2VJRHNUb0RlbGV0ZS5hcHBlbmQocGFnZVNRTC5nZXRDb2x1bW5JbnQ2NCgwKSk7CiAgICAg
fQpAQCAtMTc5MSw3ICsxNzkxLDcgQEAgdm9pZCogSWNvbkRhdGFiYXNlOjpjbGVhbnVwU3luY1Ro
cmVhZCgpCiAgICAgd3JpdGVUb0RhdGFiYXNlKCk7CiAgICAgCiAgICAgLy8gQ2xvc2UgdGhlIGRh
dGFiYXNlCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY0xvY2spOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgIAogICAgIG1fZGF0YWJhc2VEaXJlY3RvcnkgPSBT
dHJpbmcoKTsKICAgICBtX2NvbXBsZXRlRGF0YWJhc2VQYXRoID0gU3RyaW5nKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaAkocmV2aXNpb24gMTg4NTY5
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpZiBFTkFCTEUoSUNPTkRBVEFCQVNFKQogI2luY2x1
ZGUgIlNRTGl0ZURhdGFiYXNlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYv
Q29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtMTQxLDggKzE0Miw4
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRW5hYmxlZDsKICAgICBib29sIG1fcHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZDsKIAotICAgIG11dGFibGUgTXV0ZXggbV9zeW5jTG9jazsKLSAgICBUaHJl
YWRDb25kaXRpb24gbV9zeW5jQ29uZGl0aW9uOworICAgIG11dGFibGUgTG9jayBtX3N5bmNMb2Nr
OworICAgIENvbmRpdGlvbiBtX3N5bmNDb25kaXRpb247CiAgICAgU3RyaW5nIG1fZGF0YWJhc2VE
aXJlY3Rvcnk7CiAgICAgLy8gSG9sZGluZyBtX3N5bmNMb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNj
ZXNzaW5nIG1fY29tcGxldGVEYXRhYmFzZVBhdGgKICAgICBTdHJpbmcgbV9jb21wbGV0ZURhdGFi
YXNlUGF0aDsKQEAgLTE1MywyNCArMTU0LDI0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3N5bmNU
aHJlYWRIYXNXb3JrVG9EbzsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3VkZGVuVGVybWluYXRpb25E
aXNhYmxlcj4gbV9kaXNhYmxlU3VkZGVuVGVybWluYXRpb25XaGlsZVN5bmNUaHJlYWRIYXNXb3Jr
VG9EbzsKIAotICAgIE11dGV4IG1fdXJsQW5kSWNvbkxvY2s7CisgICAgTG9jayBtX3VybEFuZElj
b25Mb2NrOwogICAgIC8vIEhvbGRpbmcgbV91cmxBbmRJY29uTG9jayBpcyByZXF1aXJlZCB3aGVu
IGFjY2Vzc2luZyBhbnkgb2YgdGhlIGZvbGxvd2luZyBkYXRhIHN0cnVjdHVyZXMgb3IgdGhlIG9i
amVjdHMgdGhleSBjb250YWluCiAgICAgSGFzaE1hcDxTdHJpbmcsIEljb25SZWNvcmQqPiBtX2lj
b25VUkxUb1JlY29yZE1hcDsKICAgICBIYXNoTWFwPFN0cmluZywgUGFnZVVSTFJlY29yZCo+IG1f
cGFnZVVSTFRvUmVjb3JkTWFwOwogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3JldGFpbmVkUGFnZVVS
THM7CiAKLSAgICBNdXRleCBtX3BlbmRpbmdTeW5jTG9jazsKKyAgICBMb2NrIG1fcGVuZGluZ1N5
bmNMb2NrOwogICAgIC8vIEhvbGRpbmcgbV9wZW5kaW5nU3luY0xvY2sgaXMgcmVxdWlyZWQgd2hl
biBhY2Nlc3NpbmcgYW55IG9mIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzCiAgICAgSGFz
aE1hcDxTdHJpbmcsIFBhZ2VVUkxTbmFwc2hvdD4gbV9wYWdlVVJMc1BlbmRpbmdTeW5jOwogICAg
IEhhc2hNYXA8U3RyaW5nLCBJY29uU25hcHNob3Q+IG1faWNvbnNQZW5kaW5nU3luYzsKICAgICAK
LSAgICBNdXRleCBtX3BlbmRpbmdSZWFkaW5nTG9jazsgICAgCisgICAgTG9jayBtX3BlbmRpbmdS
ZWFkaW5nTG9jazsgICAgCiAgICAgLy8gSG9sZGluZyBtX3BlbmRpbmdTeW5jTG9jayBpcyByZXF1
aXJlZCB3aGVuIGFjY2Vzc2luZyBhbnkgb2YgdGhlIGZvbGxvd2luZyBkYXRhIHN0cnVjdHVyZXMg
LSB3aGVuIGRlYWxpbmcgd2l0aCBJY29uUmVjb3JkKnMsIGhvbGRpbmcgbV91cmxBbmRJY29uTG9j
ayBpcyBhbHNvIHJlcXVpcmVkCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fcGFnZVVSTHNQZW5kaW5n
SW1wb3J0OwogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3BhZ2VVUkxzSW50ZXJlc3RlZEluSWNvbnM7
CiAgICAgSGFzaFNldDxJY29uUmVjb3JkKj4gbV9pY29uc1BlbmRpbmdSZWFkaW5nOwogCi0gICAg
TXV0ZXggbV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrOworICAgIExvY2sgbV91cmxzVG9SZXRh
aW5PclJlbGVhc2VMb2NrOwogICAgIC8vIEhvbGRpbmcgbV91cmxzVG9SZXRhaW5PclJlbGVhc2VM
b2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUgZm9sbG93aW5nIGRhdGEg
c3RydWN0dXJlcy4KICAgICBIYXNoQ291bnRlZFNldDxTdHJpbmc+IG1fdXJsc1RvUmV0YWluOwog
ICAgIEhhc2hDb3VudGVkU2V0PFN0cmluZz4gbV91cmxzVG9SZWxlYXNlOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHJldmlzaW9u
IDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIFNjcm9sbGluZ1RyZWU6On5TY3Jv
bGxpbmdUcmVlKCkKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5
bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewogICAg
IC8vIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYnkgdGhlIGV2ZW50IGhhbmRsaW5nIHRocmVhZAot
ICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0
ZXgpOwogCiAgICAgYm9vbCBzaG91bGRTZXRMYXRjaCA9IHdoZWVsRXZlbnQuc2hvdWxkQ29uc2lk
ZXJMYXRjaGluZygpOwogICAgIApAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZTo6Y29tbWl0TmV3VHJlZVN0YXRlKHMKICAgICAgICAgJiYgKHJvb3RTdGF0ZU5vZGVDaGFuZ2Vk
CiAgICAgICAgICAgICB8fCByb290Tm9kZS0+aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbikKICAgICAgICAg
ICAgIHx8IHJvb3ROb2RlLT5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpT
Y3JvbGxMYXllcikpKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKIAogICAgICAgICBpZiAocm9vdFN0YXRlTm9k
ZUNoYW5nZWQgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5v
ZGU6OlNjcm9sbExheWVyKSkKICAgICAgICAgICAgIG1fbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24g
PSBGbG9hdFBvaW50KCk7CkBAIC0yMDgsNyArMjA4LDcgQEAgU2Nyb2xsaW5nVHJlZU5vZGUqIFNj
cm9sbGluZ1RyZWU6Om5vZGVGbwogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBp
blN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBpbm5lZFRvVGhlUmlnaHQsIGJvb2wg
cGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9UaGVCb3R0b20pCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N3
aXBlU3RhdGVNdXRleCk7CiAKICAgICBtX21haW5GcmFtZVBpbm5lZFRvVGhlTGVmdCA9IHBpbm5l
ZFRvVGhlTGVmdDsKICAgICBtX21haW5GcmFtZVBpbm5lZFRvVGhlUmlnaHQgPSBwaW5uZWRUb1Ro
ZVJpZ2h0OwpAQCAtMjE4LDU0ICsyMTgsNTQgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWlu
RnJhbWVQaW5TdGF0ZQogCiBGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWU6Om1haW5GcmFtZVNjcm9s
bFBvc2l0aW9uKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9jayhtX211dGV4KTsKICAgICByZXR1cm4gbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlv
bjsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihG
bG9hdFBvaW50IHBvc2l0aW9uKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIG1fbWFpbkZyYW1lU2Nyb2xsUG9zaXRp
b24gPSBwb3NpdGlvbjsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjppc1BvaW50SW5Ob25GYXN0
U2Nyb2xsYWJsZVJlZ2lvbihJbnRQb2ludCBwKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIAogICAgIHJldHVybiBt
X25vbkZhc3RTY3JvbGxhYmxlUmVnaW9uLmNvbnRhaW5zKHApOwogfQogCiBib29sIFNjcm9sbGlu
Z1RyZWU6OmlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2so
bV9tdXRleCk7ICAgIAorICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsgICAgCiAKICAgICBy
ZXR1cm4gbV9tYWluRnJhbWVJc1J1YmJlckJhbmRpbmc7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJl
ZTo6c2V0TWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nKGJvb2wgaXNSdWJiZXJCYW5kaW5nKQogewot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X211dGV4KTsKIAogICAgIG1fbWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nID0gaXNSdWJiZXJCYW5k
aW5nOwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1f
bXV0ZXgpOwogICAgIAogICAgIHJldHVybiBtX21haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmc7CiB9
CiAgICAgCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmco
Ym9vbCBpc1Njcm9sbFNuYXBwaW5nKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICAKICAgICBtX21haW5GcmFt
ZUlzU2Nyb2xsU25hcHBpbmcgPSBpc1Njcm9sbFNuYXBwaW5nOwogfQogCiB2b2lkIFNjcm9sbGlu
Z1RyZWU6OnNldENhblJ1YmJlckJhbmRTdGF0ZShib29sIGNhblJ1YmJlckJhbmRBdExlZnQsIGJv
b2wgY2FuUnViYmVyQmFuZEF0UmlnaHQsIGJvb2wgY2FuUnViYmVyQmFuZEF0VG9wLCBib29sIGNh
blJ1YmJlckJhbmRBdEJvdHRvbSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0
YXRlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAog
ICAgIG1fcnViYmVyQmFuZHNBdExlZnQgPSBjYW5SdWJiZXJCYW5kQXRMZWZ0OwogICAgIG1fcnVi
YmVyQmFuZHNBdFJpZ2h0ID0gY2FuUnViYmVyQmFuZEF0UmlnaHQ7CkBAIC0yNzUsMjggKzI3NSwy
OCBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldENhblJ1YmJlckJhbmRTdGF0CiAKIGJvb2wgU2Ny
b2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdExlZnQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2so
bV9zd2lwZVN0YXRlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRl
eCk7CiAKICAgICByZXR1cm4gbV9ydWJiZXJCYW5kc0F0TGVmdDsKIH0KIAogYm9vbCBTY3JvbGxp
bmdUcmVlOjpydWJiZXJCYW5kc0F0UmlnaHQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9z
d2lwZVN0YXRlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7
CiAKICAgICByZXR1cm4gbV9ydWJiZXJCYW5kc0F0UmlnaHQ7CiB9CiAKIGJvb2wgU2Nyb2xsaW5n
VHJlZTo6cnViYmVyQmFuZHNBdEJvdHRvbSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3
aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsK
IAogICAgIHJldHVybiBtX3J1YmJlckJhbmRzQXRCb3R0b207CiB9CiAKIGJvb2wgU2Nyb2xsaW5n
VHJlZTo6cnViYmVyQmFuZHNBdFRvcCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBl
U3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAog
ICAgIHJldHVybiBtX3J1YmJlckJhbmRzQXRUb3A7CiB9CkBAIC0zMDgsMTQgKzMwOCwxNCBAQCBi
b29sIFNjcm9sbGluZ1RyZWU6OmlzSGFuZGxpbmdQcm9ncmFtbWF0CiAKIHZvaWQgU2Nyb2xsaW5n
VHJlZTo6c2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKFNjcm9sbFBpbm5pbmdCZWhhdmlvciBwaW5u
aW5nKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwogICAgIAogICAgIG1fc2Nyb2xs
UGlubmluZ0JlaGF2aW9yID0gcGlubmluZzsKIH0KIAogU2Nyb2xsUGlubmluZ0JlaGF2aW9yIFNj
cm9sbGluZ1RyZWU6OnNjcm9sbFBpbm5pbmdCZWhhdmlvcigpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fc3dpcGVTdGF0
ZU11dGV4KTsKICAgICAKICAgICByZXR1cm4gbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7CiB9CkBA
IC0zMjUsNyArMzI1LDcgQEAgYm9vbCBTY3JvbGxpbmdUcmVlOjp3aWxsV2hlZWxFdmVudFN0YXJ0
UwogICAgIGlmICh3aGVlbEV2ZW50LnBoYXNlKCkgIT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VC
ZWdhbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3
aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsK
IAogICAgIGlmICh3aGVlbEV2ZW50LmRlbHRhWCgpID4gMCAmJiBtX21haW5GcmFtZVBpbm5lZFRv
VGhlTGVmdCAmJiAhbV9ydWJiZXJCYW5kc0F0TGVmdCkKICAgICAgICAgcmV0dXJuIHRydWU7CkBA
IC0zNTEsMTkgKzM1MSwxOSBAQCBib29sIFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1BlcmZvcm1h
bmNlCiAKIFNjcm9sbGluZ05vZGVJRCBTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSgpCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bXV0ZXgpOwogICAgIHJldHVybiBtX2xhdGNoZWROb2RlOwogfQogCiB2b2lkIFNjcm9sbGluZ1Ry
ZWU6OnNldExhdGNoZWROb2RlKFNjcm9sbGluZ05vZGVJRCBub2RlKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAg
ICBtX2xhdGNoZWROb2RlID0gbm9kZTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpjbGVhckxh
dGNoZWROb2RlKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgbV9sYXRjaGVkTm9kZSA9IDA7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlNjcm9s
bGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4K
IApAQCAtMTYwLDExICsxNjEsMTEgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8U2Ny
b2xsaW5nTm9kZUlELCBTY3JvbGxpbmdUcmVlTm9kZSo+IFNjcm9sbGluZ1RyZWVOb2RlTWFwOwog
ICAgIFNjcm9sbGluZ1RyZWVOb2RlTWFwIG1fbm9kZU1hcDsKIAotICAgIE11dGV4IG1fbXV0ZXg7
CisgICAgTG9jayBtX211dGV4OwogICAgIFJlZ2lvbiBtX25vbkZhc3RTY3JvbGxhYmxlUmVnaW9u
OwogICAgIEZsb2F0UG9pbnQgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbjsKIAotICAgIE11dGV4
IG1fc3dpcGVTdGF0ZU11dGV4OworICAgIExvY2sgbV9zd2lwZVN0YXRlTXV0ZXg7CiAgICAgU2Ny
b2xsUGlubmluZ0JlaGF2aW9yIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yIHsgRG9Ob3RQaW4gfTsK
ICAgICBTY3JvbGxpbmdOb2RlSUQgbV9sYXRjaGVkTm9kZSB7IDAgfTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHJldmlzaW9u
IDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1
ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAjZWxpZiBPUyhMSU5VWCkKICNpbmNsdWRl
ICJUaW1lci5oIgpAQCAtMTM3LDcgKzEzOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NsZWFy
UHJlc3N1cmVPbk1lbW9yeVJlbGVhc2U7CiAgICAgdm9pZCAoXm1fcmVsZWFzZU1lbW9yeUJsb2Nr
KSgpOwogICAgIENGUnVuTG9vcE9ic2VydmVyUmVmIG1fb2JzZXJ2ZXI7Ci0gICAgTXV0ZXggbV9v
YnNlcnZlck11dGV4OworICAgIExvY2sgbV9vYnNlcnZlck11dGV4OwogI2VsaWYgT1MoTElOVVgp
CiAgICAgaW50IG1fZXZlbnRGRDsKICAgICBpbnQgbV9wcmVzc3VyZUxldmVsRkQ7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRl
ci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0hSVEZEYXRhYmFzZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw3ICsxMDIsNyBA
QCB2b2lkIEhSVEZEYXRhYmFzZUxvYWRlcjo6bG9hZEFzeW5jaHJvbm91CiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RocmVhZExvY2sp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGhyZWFkTG9jayk7CiAgICAgCiAgICAgaWYgKCFt
X2hydGZEYXRhYmFzZS5nZXQoKSAmJiAhbV9kYXRhYmFzZUxvYWRlclRocmVhZCkgewogICAgICAg
ICAvLyBTdGFydCB0aGUgYXN5bmNocm9ub3VzIGRhdGFiYXNlIGxvYWRpbmcgcHJvY2Vzcy4KQEAg
LTExNyw3ICsxMTcsNyBAQCBib29sIEhSVEZEYXRhYmFzZUxvYWRlcjo6aXNMb2FkZWQoKSBjb25z
CiAKIHZvaWQgSFJURkRhdGFiYXNlTG9hZGVyOjp3YWl0Rm9yTG9hZGVyVGhyZWFkQ29tcGxldGlv
bigpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGhyZWFkTG9jayk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV90aHJlYWRMb2NrKTsKICAgICAKICAgICAvLyB3YWl0Rm9yVGhyZWFkQ29t
cGxldGlvbigpIHNob3VsZCBub3QgYmUgY2FsbGVkIHR3aWNlIGZvciB0aGUgc2FtZSB0aHJlYWQu
CiAgICAgaWYgKG1fZGF0YWJhc2VMb2FkZXJUaHJlYWQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuaAkocmV2aXNpb24gMTg4
NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJIUlRGRGF0YWJh
c2UuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC03Niw3ICs3Nyw3
IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEhSVEZEYXRhYmFzZT4gbV9ocnRmRGF0
YWJhc2U7CiAKICAgICAvLyBIb2xkaW5nIGEgbV90aHJlYWRMb2NrIGlzIHJlcXVpcmVkIHdoZW4g
YWNjZXNzaW5nIG1fZGF0YWJhc2VMb2FkZXJUaHJlYWQuCi0gICAgTXV0ZXggbV90aHJlYWRMb2Nr
OworICAgIExvY2sgbV90aHJlYWRMb2NrOwogICAgIFRocmVhZElkZW50aWZpZXIgbV9kYXRhYmFz
ZUxvYWRlclRocmVhZDsKIAogICAgIGZsb2F0IG1fZGF0YWJhc2VTYW1wbGVSYXRlOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2Eu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyQ29jb2EubW0JKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0yNTYsNyArMjU2LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNldFJl
Y2VpdmVkTQogICAgIG1fdW5kZXJNZW1vcnlQcmVzc3VyZSA9IHRydWU7CiAKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29ic2VydmVyTXV0ZXgpOworICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX29ic2VydmVyTXV0ZXgpOwogICAgICAgICBpZiAoIW1fb2JzZXJ2ZXIpIHsK
ICAgICAgICAgICAgIG1fb2JzZXJ2ZXIgPSBDRlJ1bkxvb3BPYnNlcnZlckNyZWF0ZShOVUxMLCBr
Q0ZSdW5Mb29wQmVmb3JlV2FpdGluZyB8IGtDRlJ1bkxvb3BFeGl0LCBOTyAvKiBkb24ndCByZXBl
YXQgKi8sCiAgICAgICAgICAgICAgICAgMCwgV2ViQ29yZTo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1
cmVDYWxsYmFjaywgTlVMTCk7CkBAIC0yNzIsMTQgKzI3MiwxNCBAQCB2b2lkIE1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6Y2xlYXJNZW1vcnlQCiAgICAgbV91bmRlck1lbW9yeVByZXNzdXJlID0gZmFs
c2U7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29ic2VydmVyTXV0ZXgp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29ic2VydmVyTXV0ZXgpOwogICAgICAgICBt
X21lbW9yeVByZXNzdXJlUmVhc29uID0gTWVtb3J5UHJlc3N1cmVSZWFzb25Ob25lOwogICAgIH0K
IH0KIAogYm9vbCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNob3VsZFdhaXRGb3JNZW1vcnlDbGVh
ck1lc3NhZ2UoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29ic2VydmVyTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CiAgICAgcmV0dXJuIG1fbWVt
b3J5UHJlc3N1cmVSZWFzb24gJiBNZW1vcnlQcmVzc3VyZVJlYXNvblZNU3RhdHVzOwogfQogCkBA
IC0yODgsNyArMjg4LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01l
bQogICAgIEFTU0VSVChXZWJUaHJlYWRJc0xvY2tlZE9yRGlzYWJsZWQoKSk7CiAKICAgICB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29ic2VydmVyTXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX29ic2VydmVyTXV0ZXgpOwogICAgICAgICBtX29ic2VydmVyID0gMDsK
ICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCB2b2lkIERpc3BsYXlSZWZyZXNoTW9u
aXRvcjo6ZGlzcGxheURpZFJlCiAgICAgZG91YmxlIG1vbm90b25pY0FuaW1hdGlvblN0YXJ0VGlt
ZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBpZiAoIW1fc2NoZWR1bGVkKQogICAg
ICAgICAgICAgKyttX3Vuc2NoZWR1bGVkRmlyZUNvdW50OwogICAgICAgICBlbHNlCkBAIC0xMjEs
NyArMTIxLDcgQEAgdm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlEaWRSZQogICAg
ICAgICBtX2NsaWVudHNUb0JlTm90aWZpZWQgPSBudWxscHRyOwogCiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRl
eCk7CiAgICAgICAgIG1fcHJldmlvdXNGcmFtZURvbmUgPSB0cnVlOwogICAgIH0KICAgICAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRv
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDE0LCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzAsOSArMzAsOSBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcyLDcgKzcyLDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRNb25vdG9uaWNBbmltYXRpb25TdGFydFRpbWUoZG91
YmxlIHN0YXJ0VGltZSkgeyBtX21vbm90b25pY0FuaW1hdGlvblN0YXJ0VGltZSA9IHN0YXJ0VGlt
ZTsgfQogCi0gICAgTXV0ZXgmIG11dGV4KCkgeyByZXR1cm4gbV9tdXRleDsgfQorICAgIExvY2sm
IG11dGV4KCkgeyByZXR1cm4gbV9tdXRleDsgfQogCiAgICAgc3RhdGljIFJlZlB0cjxEaXNwbGF5
UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURlZmF1bHREaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZv
cm1EaXNwbGF5SUQpOwogCkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3By
ZXZpb3VzRnJhbWVEb25lOwogICAgIGludCBtX3Vuc2NoZWR1bGVkRmlyZUNvdW50OyAvLyBOdW1i
ZXIgb2YgdGltZXMgdGhlIGRpc3BsYXkgbGluayBoYXMgZmlyZWQgd2l0aCBubyBjbGllbnRzLgog
ICAgIFBsYXRmb3JtRGlzcGxheUlEIG1fZGlzcGxheUlEOwotICAgIE11dGV4IG1fbXV0ZXg7Cisg
ICAgTG9jayBtX211dGV4OwogCiAgICAgSGFzaFNldDxEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGll
bnQqPiBtX2NsaWVudHM7CiAgICAgSGFzaFNldDxEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQq
PiogbV9jbGllbnRzVG9CZU5vdGlmaWVkOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAJKHJldmlzaW9uIDE4ODU2OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzUsNyArNzM1
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldAogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0RGVsYXlDYWxsYmFja3MoYm9vbCBkZWxh
eSkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVNdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrKG1fcXVldWVNdXRleCk7CiAgICAgaWYgKGRlbGF5KQogICAgICAgICArK21f
ZGVsYXlDYWxsYmFja3M7CiAgICAgZWxzZSB7CkBAIC03NTQsNyArNzU0LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Om1haQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbjo6Y2xlYXJNYWluVGhyZWFkUGVuZGluZ0ZsYWcoKQogewotICAgIE11dGV4
TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11
dGV4KTsKICAgICBtX21haW5UaHJlYWRDYWxsUGVuZGluZyA9IGZhbHNlOwogfQogCkBAIC04MjAs
NyArODIwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmRpcwogCiAg
ICAgTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiA9IE5vdGlmaWNhdGlvbigpOwogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobV9xdWV1ZU11dGV4KTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX3F1ZXVlZE5vdGlm
aWNhdGlvbnMuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAkocmV2aXNp
b24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MTcsNyArMzE3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gbV9wZW5k
aW5nU2VlazsKIAogICAgIFZlY3RvcjxOb3RpZmljYXRpb24+IG1fcXVldWVkTm90aWZpY2F0aW9u
czsKLSAgICBtdXRhYmxlIE11dGV4IG1fcXVldWVNdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9x
dWV1ZU11dGV4OwogCiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFu
Z2VzPiBtX2NhY2hlZExvYWRlZFRpbWVSYW5nZXM7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAko
cmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgaW5saW5l
IHZvaWQqIGNhbGxiYWNrQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KG1fb2JqZWN0SUQpOyB9CiAKLSAgICBzdGF0aWMgTXV0ZXgmIG1hcExvY2soKTsKKyAg
ICBzdGF0aWMgTG9jayYgbWFwTG9jaygpOwogICAgIHN0YXRpYyBIYXNoTWFwPHVpbnRwdHJfdCwg
QVZGV3JhcHBlcio+JiBtYXAoKTsKICAgICBzdGF0aWMgQVZGV3JhcHBlciogYXZmV3JhcHBlckZv
ckNhbGxiYWNrQ29udGV4dCh2b2lkKik7CiAgICAgdm9pZCBhZGRUb01hcCgpOwpAQCAtMTQwNCw5
ICsxNDA0LDkgQEAgQVZGV3JhcHBlcjo6fkFWRldyYXBwZXIoKQogICAgIG1fYXZQbGF5ZXIgPSAw
OwogfQogCi1NdXRleCYgQVZGV3JhcHBlcjo6bWFwTG9jaygpCitMb2NrJiBBVkZXcmFwcGVyOjpt
YXBMb2NrKCkKIHsKLSAgICBzdGF0aWMgTXV0ZXggbWFwTG9jazsKKyAgICBzdGF0aWMgTG9jayBt
YXBMb2NrOwogICAgIHJldHVybiBtYXBMb2NrOwogfQogCkBAIC0xNDE4LDcgKzE0MTgsNyBAQCBI
YXNoTWFwPHVpbnRwdHJfdCwgQVZGV3JhcHBlcio+JiBBVkZXcmFwCiAKIHZvaWQgQVZGV3JhcHBl
cjo6YWRkVG9NYXAoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgCiAgICAgLy8gSGFzaE1hcCBkb2Vz
bid0IGxpa2UgYSBrZXkgb2YgMCwgYW5kIGFsc28gbWFrZSBzdXJlIHdlIGFyZW4ndAogICAgIC8v
IHVzaW5nIGFuIG9iamVjdCBJRCB0aGF0J3MgYWxyZWFkeSBpbiB1c2UuCkBAIC0xNDM0LDcgKzE0
MzQsNyBAQCB2b2lkIEFWRldyYXBwZXI6OnJlbW92ZUZyb21NYXAoKSBjb25zdAogewogICAgIExP
RyhNZWRpYSwgIkFWRldyYXBwZXI6OnJlbW92ZUZyb21NYXAoJXAgJWQpIiwgdGhpcywgbV9vYmpl
Y3RJRCk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIG1hcCgpLnJlbW92ZShtX29iamVjdElEKTsKIH0K
IApAQCAtMTYzNSw3ICsxNjM1LDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpjcmVhdGVQbGF5ZXJJdGVt
KCkKIAogdm9pZCBBVkZXcmFwcGVyOjpwZXJpb2RpY1RpbWVPYnNlcnZlckNhbGxiYWNrKEFWQ0ZQ
bGF5ZXJSZWYsIENNVGltZSBjbVRpbWUsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsK
ICAgICBBVkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChjb250
ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6
cGVyaW9kaWNUaW1lT2JzZXJ2ZXJDYWxsYmFjayBpbnZva2VkIGZvciBkZWxldGVkIEFWRldyYXBw
ZXIgJWQiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCkpOwpAQCAtMTY2Niw3
ICsxNjY2LDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpwcm9jZXNzTm90aWZpY2F0aW9uKHZvaQogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YT4gbm90aWZpY2F0aW9u
RGF0YSB7IHN0YXRpY19jYXN0PE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YSo+KGNvbnRleHQpIH07
CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2Fs
bGJhY2tDb250ZXh0KG5vdGlmaWNhdGlvbkRhdGEtPm1fY29udGV4dCk7CiAgICAgaWYgKCFzZWxm
KSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6OnByb2Nlc3NOb3RpZmljYXRpb24g
aW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE3MjEsNyArMTcyMSw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6
bm90aWZpY2F0aW9uQ2FsbGJhY2soQ0YKIAogdm9pZCBBVkZXcmFwcGVyOjpsb2FkUGxheWFibGVD
b21wbGV0aW9uQ2FsbGJhY2soQVZDRkFzc2V0UmVmLCB2b2lkKiBjb250ZXh0KQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExv
Y2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRl
eHQoY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkFWRldy
YXBwZXI6OmxvYWRQbGF5YWJsZUNvbXBsZXRpb25DYWxsYmFjayBpbnZva2VkIGZvciBkZWxldGVk
IEFWRldyYXBwZXIgJWQiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCkpOwpA
QCAtMTc0OSw3ICsxNzQ5LDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpjaGVja1BsYXlhYmlsaXR5KCkK
IAogdm9pZCBBVkZXcmFwcGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2soQVZDRkFz
c2V0UmVmLCB2b2lkKiBjb250ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2Nr
KCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciog
c2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQoY29udGV4dCk7CiAgICAgaWYgKCFz
ZWxmKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6OmxvYWRNZXRhZGF0YUNvbXBs
ZXRpb25DYWxsYmFjayBpbnZva2VkIGZvciBkZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCkpOwpAQCAtMTc2OSw3ICsxNzY5LDcgQEAgdm9p
ZCBBVkZXcmFwcGVyOjpiZWdpbkxvYWRpbmdNZXRhZGF0YSgpCiAKIHZvaWQgQVZGV3JhcHBlcjo6
c2Vla0NvbXBsZXRlZENhbGxiYWNrKEFWQ0ZQbGF5ZXJJdGVtUmVmLCBCb29sZWFuIGZpbmlzaGVk
LCB2b2lkKiBjb250ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9
IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQoY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7
CiAgICAgICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6OnNlZWtDb21wbGV0ZWRDYWxsYmFjayBp
bnZva2VkIGZvciBkZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVycHJldF9jYXN0PHVpbnRw
dHJfdD4oY29udGV4dCkpOwpAQCAtMTgxMiw3ICsxODEyLDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpw
cm9jZXNzQ3VlKHZvaWQqIGNvbnRleAogCiAgICAgc3RkOjp1bmlxdWVfcHRyPExlZ2libGVPdXRw
dXREYXRhPiBsZWdpYmxlT3V0cHV0RGF0YShyZWludGVycHJldF9jYXN0PExlZ2libGVPdXRwdXRE
YXRhKj4oY29udGV4dCkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2soKSk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBzZWxmID0g
YXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChsZWdpYmxlT3V0cHV0RGF0YS0+bV9jb250ZXh0
KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6cHJv
Y2Vzc0N1ZSBpbnZva2VkIGZvciBkZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVycHJldF9j
YXN0PHVpbnRwdHJfdD4oY29udGV4dCkpOwpAQCAtMTgyOCw3ICsxODI4LDcgQEAgdm9pZCBBVkZX
cmFwcGVyOjpwcm9jZXNzQ3VlKHZvaWQqIGNvbnRleAogdm9pZCBBVkZXcmFwcGVyOjpsZWdpYmxl
T3V0cHV0Q2FsbGJhY2sodm9pZCogY29udGV4dCwgQVZDRlBsYXllckl0ZW1MZWdpYmxlT3V0cHV0
UmVmIGxlZ2libGVPdXRwdXQsIENGQXJyYXlSZWYgYXR0cmlidXRlZFN0cmluZ3MsIENGQXJyYXlS
ZWYgbmF0aXZlU2FtcGxlQnVmZmVycywgQ01UaW1lIGl0ZW1UaW1lKQogewogICAgIEFTU0VSVCgh
aXNNYWluVGhyZWFkKCkpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2
ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQoY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAg
ICAgICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6OmxlZ2libGVPdXRwdXRDYWxsYmFjayBpbnZv
a2VkIGZvciBkZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4oY29udGV4dCkpOwpAQCAtMTg2Niw3ICsxODY2LDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpwcm9j
ZXNzU2hvdWxkV2FpdEZvckxvYQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPExvYWRSZXF1ZXN0RGF0
YT4gbG9hZFJlcXVlc3REYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8TG9hZFJlcXVlc3REYXRhKj4oY29u
dGV4dCkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBl
ckZvckNhbGxiYWNrQ29udGV4dChsb2FkUmVxdWVzdERhdGEtPm1fY29udGV4dCk7CiAgICAgaWYg
KCFzZWxmKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6OnByb2Nlc3NTaG91bGRX
YWl0Rm9yTG9hZGluZ09mUmVzb3VyY2UgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVk
IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE5MjIsNyArMTky
Miw3IEBAIGJvb2wgQVZGV3JhcHBlcjo6c2hvdWxkV2FpdEZvckxvYWRpbmdPZlIKIEJvb2xlYW4g
QVZGV3JhcHBlcjo6cmVzb3VyY2VMb2FkZXJTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVxdWVzdGVk
UmVzb3VyY2UoQVZDRkFzc2V0UmVzb3VyY2VMb2FkZXJSZWYgcmVzb3VyY2VMb2FkZXIsIEFWQ0ZB
c3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3RSZWYgbG9hZGluZ1JlcXVlc3QsIHZvaWQgKmNvbnRl
eHQpCiB7CiAgICAgQVNTRVJUKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgIT0gZGlzcGF0Y2hf
Z2V0X2N1cnJlbnRfcXVldWUoKSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2soKSk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBzZWxm
ID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChjb250ZXh0KTsKICAgICBpZiAoIXNlbGYp
IHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6cmVzb3VyY2VMb2FkZXJTaG91bGRX
YWl0Rm9yTG9hZGluZ09mUmVxdWVzdGVkUmVzb3VyY2UgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZX
cmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJh
Y2tQcml2YXRlR1N0cmVhbWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5j
cHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzcsNyArNzcsNyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFt
ZXI6OmhhCiB7CiAgICAgbV9zYW1wbGVUaW1lckhhbmRsZXIuY2FuY2VsKCk7CiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrKG1fc2FtcGxlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobV9zYW1wbGVNdXRleCk7CiAgICAgICAgIG1fcGVuZGluZ1NhbXBsZXMuYXBwZW5kKHNh
bXBsZSk7CiAgICAgfQogICAgIG1fc2FtcGxlVGltZXJIYW5kbGVyLnNjaGVkdWxlKCJbV2ViS2l0
XSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlIiwg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+KHN0ZDo6YmluZCgmSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lcjo6bm90aWZ5VHJhY2tPZlNhbXBsZSwgdGhpcykpKTsKQEAgLTkyLDcgKzkyLDcgQEAg
dm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpubwogewogICAgIFZlY3RvcjxH
UmVmUHRyPEdzdFNhbXBsZT4gPiBzYW1wbGVzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9jayhtX3NhbXBsZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fc2FtcGxlTXV0
ZXgpOwogICAgICAgICBtX3BlbmRpbmdTYW1wbGVzLnN3YXAoc2FtcGxlcyk7CiAgICAgfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVy
LmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTY3LDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBndWxvbmcgbV9ldmVudFByb2JlOwog
ICAgIFZlY3RvcjxHUmVmUHRyPEdzdFNhbXBsZT4gPiBtX3BlbmRpbmdTYW1wbGVzOwogICAgIFN0
cmluZyBtX3N0cmVhbUlkOwotICAgIE11dGV4IG1fc2FtcGxlTXV0ZXg7CisgICAgTG9jayBtX3Nh
bXBsZU11dGV4OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFt
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNyArMTAyLDcgQEAgdm9p
ZCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjp0YWdzQ2hhbgogICAgIEdSZWZQdHI8R3N0VGFn
TGlzdD4gdGFnczsKICAgICBnX29iamVjdF9nZXQobV9wYWQuZ2V0KCksICJ0YWdzIiwgJnRhZ3Mu
b3V0UHRyKCksIE5VTEwpOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RhZ011
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fdGFnTXV0ZXgpOwogICAgICAgICBtX3Rh
Z3Muc3dhcCh0YWdzKTsKICAgICB9CiAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFRyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyCiAKICAgICBHUmVmUHRyPEdzdFRhZ0xpc3Q+IHRh
Z3M7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fdGFnTXV0ZXgpOworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2sobV90YWdNdXRleCk7CiAgICAgICAgIHRhZ3Muc3dhcChtX3RhZ3Mp
OwogICAgIH0KICAgICBpZiAoIXRhZ3MpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZh
dGVCYXNlR1N0cmVhbWVyLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICBHVGhyZWFkU2FmZU1h
aW5Mb29wU291cmNlIG1fYWN0aXZlVGltZXJIYW5kbGVyOwogICAgIEdUaHJlYWRTYWZlTWFpbkxv
b3BTb3VyY2UgbV90YWdUaW1lckhhbmRsZXI7CiAKLSAgICBNdXRleCBtX3RhZ011dGV4OworICAg
IExvY2sgbV90YWdNdXRleDsKICAgICBHUmVmUHRyPEdzdFRhZ0xpc3Q+IG1fdGFnczsKIH07CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCShyZXZpc2lvbiAxODg1Njkp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsMTQgKzg0LDE0IEBAIGJvb2wgRGlz
cGxheVJlZnJlc2hNb25pdG9yTWFjOjpyZXF1ZXN0UmUKICAgICAgICAgc2V0SXNBY3RpdmUodHJ1
ZSk7CiAgICAgfQogCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtdXRleCgpKTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2sobXV0ZXgoKSk7CiAgICAgc2V0SXNTY2hlZHVsZWQodHJ1ZSk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0Zp
cmVkKGRvdWJsZSBub3dTZWNvbmRzLCBkb3VibGUgb3V0cHV0VGltZVNlY29uZHMpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9jayhtdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobXV0ZXgoKSk7
CiAgICAgaWYgKCFpc1ByZXZpb3VzRnJhbWVEb25lKCkpCiAgICAgICAgIHJldHVybjsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MTIsMjEgKzUxMiwyMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjphZGRMaXN0ZW5lcihN
ZWRpYVBsYXllckxpc3RlbmVyKiBsaXN0ZW5lcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9tdXRleExpc3RlbmVycyk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleExpc3RlbmVy
cyk7CiAKICAgICBtX2xpc3RlbmVycy5hZGQobGlzdGVuZXIpOwogfQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVtb3ZlTGlzdGVuZXIoTWVkaWFQbGF5ZXJMaXN0
ZW5lciogbGlzdGVuZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5l
cnMpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5lcnMpOwogCiAgICAgbV9s
aXN0ZW5lcnMucmVtb3ZlKGxpc3RlbmVyKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYUZvdW5kYXRpb246Om5vdGlmeURlbGV0ZWQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX211dGV4TGlzdGVuZXJzKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4TGlzdGVu
ZXJzKTsKIAogICAgIGZvciAoSGFzaFNldDxNZWRpYVBsYXllckxpc3RlbmVyKj46OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gbV9saXN0ZW5lcnMuYmVnaW4oKTsgaXQgIT0gbV9saXN0ZW5lcnMuZW5kKCk7
ICsraXQpCiAgICAgICAgICgqaXQpLT5vbk1lZGlhUGxheWVyRGVsZXRlZCgpOwpAQCAtNzA0LDcg
KzcwNCw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgTWVkaWFQbGF5ZXJQcmkKIAogSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246
OkFzeW5jQ2FsbGJhY2s6Okludm9rZShfX1JQQ19faW5fb3B0IElNRkFzeW5jUmVzdWx0ICpwQXN5
bmNSZXN1bHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKCFtX21lZGlhUGxheWVyKQogICAgICAg
ICByZXR1cm4gU19PSzsKQEAgLTcxOSw3ICs3MTksNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIE1lZGlhUGxheWVyUHJpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uOjpBc3luY0NhbGxiYWNrOjpvbk1lZGlhUGxheWVyRGVsZXRlZCgpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwog
CiAgICAgbV9tZWRpYVBsYXllciA9IG51bGxwdHI7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKIAog
ICAgIGNsYXNzIE1lZGlhUGxheWVyTGlzdGVuZXI7CiAgICAgSGFzaFNldDxNZWRpYVBsYXllckxp
c3RlbmVyKj4gbV9saXN0ZW5lcnM7Ci0gICAgTXV0ZXggbV9tdXRleExpc3RlbmVyczsKKyAgICBM
b2NrIG1fbXV0ZXhMaXN0ZW5lcnM7CiAKICAgICBDT01QdHI8SU1GTWVkaWFTZXNzaW9uPiBtX21l
ZGlhU2Vzc2lvbjsKICAgICBDT01QdHI8SU1GU291cmNlUmVzb2x2ZXI+IG1fc291cmNlUmVzb2x2
ZXI7CkBAIC0xNDksNyArMTQ5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVUxPTkcgbV9yZWZDb3Vu
dDsKICAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKiBtX21lZGlhUGxh
eWVyOwogICAgICAgICBib29sIG1fZXZlbnQ7Ci0gICAgICAgIE11dGV4IG1fbXV0ZXg7CisgICAg
ICAgIExvY2sgbV9tdXRleDsKICAgICB9OwogCiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMTEsOSArMjExLDkgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX3BlbmRpbmdTY2FsZTsK
ICAgICBmbG9hdCBtX3BlbmRpbmdab29tZWRPdXRTY2FsZTsKIAotICAgIG11dGFibGUgTXV0ZXgg
bV90aWxlTXV0ZXg7Ci0gICAgbXV0YWJsZSBNdXRleCBtX3NhdmVkRGlzcGxheVJlY3RNdXRleDsK
LSAgICBtdXRhYmxlIE11dGV4IG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRleDsKKyAgICBt
dXRhYmxlIExvY2sgbV90aWxlTXV0ZXg7CisgICAgbXV0YWJsZSBMb2NrIG1fc2F2ZWREaXNwbGF5
UmVjdE11dGV4OworICAgIG11dGFibGUgTG9jayBtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdlTXV0
ZXg7CiAKICAgICBib29sIG1fdGlsZUNvbnRyb2xsZXJTaG91bGRVc2VMb3dTY2FsZVRpbGVzOwog
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNo
ZS5tbQkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xl
Z2FjeVRpbGVDYWNoZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQg
TGVnYWN5VGlsZUNhY2hlOjpzZXRUaWxlc09wYXF1ZShib28KICAgICBpZiAobV90aWxlc09wYXF1
ZSA9PSBvcGFxdWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogCiAgICAg
bV90aWxlc09wYXF1ZSA9IG9wYXF1ZTsKICAgICBtX3pvb21lZE91dFRpbGVHcmlkLT51cGRhdGVU
aWxlT3BhY2l0eSgpOwpAQCAtMTYwLDcgKzE2MCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpk
b0xheW91dFRpbGVzKCkKICAgICBpZiAoaXNUaWxlQ3JlYXRpb25TdXNwZW5kZWQoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgTGVnYWN5VGlsZUdyaWQqIGFjdGl2
ZUdyaWQgPSBhY3RpdmVUaWxlR3JpZCgpOwogICAgIC8vIEV2ZW4gdGhvdWdoIHdlIGFyZW4ndCBh
Y3R1YWxseSBjcmVhdGluZyB0aWxlcyBpbiB0aGUgaW5hY3RpdmUgZ3JpZCwgd2UKICAgICAvLyBz
dGlsbCBuZWVkIHRvIGRyb3AgaW52YWxpZCB0aWxlcyBpbiByZXNwb25zZSB0byBhIGxheW91dC4K
QEAgLTIwMCw3ICsyMDAsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0Q3VycmVudFNjYWxl
KGZsCiAgICAgaWYgKCFrZWVwc1pvb21lZE91dFRpbGVzKCkgJiYgIWlzVGlsZUludmFsaWRhdGlv
blN1c3BlbmRlZCgpKSB7CiAgICAgICAgIC8vIFRpbGUgaW52YWxpZGF0aW9uIGlzIG5vcm1hbGx5
IHN1c3BlbmRlZCBkdXJpbmcgem9vbWluZyBieSBVSUtpdCBidXQgc29tZSBhcHBsaWNhdGlvbnMK
ICAgICAgICAgLy8gdXNpbmcgY3VzdG9tIHNjcm9sbHZpZXdzIG1heSB6b29tIHdpdGhvdXQgdHJp
Z2dlcmluZyB0aGUgY2FsbGJhY2tzLiBJbnZhbGlkYXRlIHRoZSB0aWxlcyBleHBsaWNpdGx5Lgot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgICAgIGFjdGl2ZVRpbGVHcmlkKCktPmRyb3BB
bGxUaWxlcygpOwogICAgICAgICBhY3RpdmVUaWxlR3JpZCgpLT5jcmVhdGVUaWxlcyhDb3ZlclZp
c2libGVPbmx5KTsKICAgICB9CkBAIC0yMjUsNyArMjI1LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2Fj
aGU6OmNvbW1pdFNjYWxlQ2hhbmdlKAogICAgIEFTU0VSVChtX3BlbmRpbmdab29tZWRPdXRTY2Fs
ZSB8fCBtX3BlbmRpbmdTY2FsZSk7CiAgICAgQVNTRVJUKG1fdGlsaW5nTW9kZSAhPSBEaXNhYmxl
ZCk7CiAgICAgCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAKICAgICBpZiAobV9wZW5kaW5nWm9vbWVkT3V0
U2NhbGUpIHsKICAgICAgICAgbV96b29tZWRPdXRUaWxlR3JpZC0+c2V0U2NhbGUobV9wZW5kaW5n
Wm9vbWVkT3V0U2NhbGUpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hl
OjpsYXlvdXRUaWxlc05vdygpCiAgICAgaWYgKG1fdGlsaW5nTW9kZSA9PSBab29taW5nKQogICAg
ICAgICBtX3RpbGluZ01vZGUgPSBNaW5pbWFsOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
dGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgTGVn
YWN5VGlsZUdyaWQqIGFjdGl2ZUdyaWQgPSBhY3RpdmVUaWxlR3JpZCgpOwogICAgIGlmIChhY3Rp
dmVHcmlkLT5jaGVja0RvU2luZ2xlVGlsZUxheW91dCgpKSB7CiAgICAgICAgIG1fdGlsaW5nTW9k
ZSA9IHNhdmVkVGlsaW5nTW9kZTsKQEAgLTMyNywxNCArMzI3LDE0IEBAIHZvaWQgTGVnYWN5VGls
ZUNhY2hlOjpsYXlvdXRUaWxlc05vdygpCiB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6bGF5b3V0VGls
ZXNOb3dGb3JSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgQVNTRVJUKFdlYlRocmVh
ZElzTG9ja2VkT3JEaXNhYmxlZCgpKTsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKIAogICAgIGFjdGl2ZVRp
bGVHcmlkKCktPmFkZFRpbGVzQ292ZXJpbmdSZWN0KHJlY3QpOwogfQogCiB2b2lkIExlZ2FjeVRp
bGVDYWNoZTo6cmVtb3ZlQWxsTm9uVmlzaWJsZVRpbGVzKCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsK
ICAgICByZW1vdmVBbGxOb25WaXNpYmxlVGlsZXNJbnRlcm5hbCgpOwogfQogCkBAIC0zNTYsNyAr
MzU2LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUFsbE5vblZpc2libAogCiB2b2lk
IExlZ2FjeVRpbGVDYWNoZTo6cmVtb3ZlQWxsVGlsZXMoKQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwog
ICAgIG1fem9vbWVkT3V0VGlsZUdyaWQtPmRyb3BBbGxUaWxlcygpOwogICAgIGlmIChtX3pvb21l
ZEluVGlsZUdyaWQpCiAgICAgICAgIG1fem9vbWVkSW5UaWxlR3JpZC0+ZHJvcEFsbFRpbGVzKCk7
CkBAIC0zNjQsNyArMzY0LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUFsbFRpbGVz
KCkKIAogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUZvcmVncm91bmRUaWxlcygpCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3RpbGVNdXRleCk7CiAgICAgaWYgKCFrZWVwc1pvb21lZE91dFRpbGVzKCkpCiAgICAgICAg
IG1fem9vbWVkT3V0VGlsZUdyaWQtPmRyb3BBbGxUaWxlcygpOwogICAgIGlmIChtX3pvb21lZElu
VGlsZUdyaWQpCkBAIC0zNzMsMTMgKzM3MywxMyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6cmVt
b3ZlRm9yZWdyb3VuZFRpCiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzZXRDb250ZW50UmVwbGFj
ZW1lbnRJbWFnZShSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY29udGVudFJlcGxhY2VtZW50SW1hZ2Up
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRl
eCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9jb250ZW50UmVwbGFjZW1lbnRJbWFnZU11dGV4
KTsKICAgICBtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdlID0gY29udGVudFJlcGxhY2VtZW50SW1h
Z2U7CiB9CiAKIFJldGFpblB0cjxDR0ltYWdlUmVmPiBMZWdhY3lUaWxlQ2FjaGU6OmNvbnRlbnRS
ZXBsYWNlbWVudEltYWdlKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9jb250
ZW50UmVwbGFjZW1lbnRJbWFnZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2NvbnRl
bnRSZXBsYWNlbWVudEltYWdlTXV0ZXgpOwogICAgIHJldHVybiBtX2NvbnRlbnRSZXBsYWNlbWVu
dEltYWdlOwogfQogCkBAIC00MjYsNyArNDI2LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnRp
bGVDcmVhdGlvblRpbWVyRgogewogICAgIGlmIChpc1RpbGVDcmVhdGlvblN1c3BlbmRlZCgpKQog
ICAgICAgICByZXR1cm47Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgY3JlYXRlVGlsZXNJbkFjdGl2
ZUdyaWQoQ292ZXJTcGVjdWxhdGl2ZSk7CiB9CiAKQEAgLTYyMCw3ICs2MjAsNyBAQCB2b2lkIExl
Z2FjeVRpbGVDYWNoZTo6c2NoZWR1bGVMYXllckZsdXNoCiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hl
OjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KQogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX3NhdmVkRGlzcGxheVJlY3RNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9zYXZlZERpc3BsYXlSZWN0TXV0ZXgpOwogICAgIGJvb2wgYWRkZWRGaXJz
dFJlY3QgPSBtX3NhdmVkRGlzcGxheVJlY3RzLmlzRW1wdHkoKTsKICAgICBtX3NhdmVkRGlzcGxh
eVJlY3RzLmFwcGVuZChkaXJ0eVJlY3QpOwogICAgIGlmICghYWRkZWRGaXJzdFJlY3QpCkBAIC02
OTIsNyArNjkyLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnVwZGF0ZVRpbGluZ01vZGUoKQog
ICAgICAgICBpZiAobV90aWxpbmdNb2RlID09IERpc2FibGVkKQogICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICAgICAgY3JlYXRlVGlsZXNJbkFjdGl2
ZUdyaWQoQ292ZXJWaXNpYmxlT25seSk7CiAKICAgICAgICAgaWYgKCFtX3NhdmVkRGlzcGxheVJl
Y3RzLmlzRW1wdHkoKSkKQEAgLTcxMCw3ICs3MTAsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6
c2V0VGlsaW5nTW9kZShUaWxpCiAgICAgaWYgKChtX3BlbmRpbmdab29tZWRPdXRTY2FsZSB8fCBt
X3BlbmRpbmdTY2FsZSkgJiYgbV90aWxpbmdNb2RlICE9IERpc2FibGVkKQogICAgICAgICBjb21t
aXRTY2FsZUNoYW5nZSgpOwogICAgIGVsc2UgaWYgKHdhc1pvb21pbmcpIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV90aWxlTXV0ZXgpOwogICAgICAgICBicmluZ0FjdGl2ZVRpbGVHcmlkVG9Gcm9udCgpOwogICAg
IH0KIApAQCAtNzUzLDcgKzc1Myw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpkb1BlbmRpbmdS
ZXBhaW50cygKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChpc1RpbGVJbnZhbGlkYXRpb25TdXNw
ZW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVN
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIGZsdXNoU2F2
ZWREaXNwbGF5UmVjdHMoKTsKIH0KIApAQCAtNzY0LDcgKzc2NCw3IEBAIHZvaWQgTGVnYWN5VGls
ZUNhY2hlOjpmbHVzaFNhdmVkRGlzcGxheVIKIAogICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3NhdmVkRGlzcGxheVJlY3RNdXRl
eCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4KTsK
ICAgICAgICAgbV9zYXZlZERpc3BsYXlSZWN0cy5zd2FwKHJlY3RzKTsKICAgICB9CiAgICAgc2l6
ZV90IHNpemUgPSByZWN0cy5zaXplKCk7CkBAIC03OTIsNyArNzkyLDcgQEAgdm9pZCBMZWdhY3lU
aWxlQ2FjaGU6OnByZXBhcmVUb0RyYXcoKQogICAgIFtbbV93aW5kb3cgY29udGVudFZpZXddIHZp
ZXdXaWxsRHJhd107CiAKICAgICBpZiAoIW1fc2F2ZWREaXNwbGF5UmVjdHMuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICAgICAgZmx1c2hTYXZlZERpc3BsYXlSZWN0
cygpOwogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lU
aWxlTGF5ZXJQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L0xlZ2FjeVRpbGVMYXllclBvb2wuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wuaAkod29ya2luZyBjb3B5KQpAQCAt
NzUsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxJbnRTaXplPiBtX3NpemVzSW5QcnVu
ZU9yZGVyOwogICAgIHVuc2lnbmVkIG1fdG90YWxCeXRlczsKICAgICB1bnNpZ25lZCBtX2NhcGFj
aXR5OwotICAgIE11dGV4IG1fbGF5ZXJQb29sTXV0ZXg7CisgICAgTG9jayBtX2xheWVyUG9vbE11
dGV4OwogCiAgICAgZG91YmxlIG1fbGFzdEFkZFRpbWU7CiAgICAgYm9vbCBtX25lZWRzUHJ1bmU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxh
eWVyUG9vbC5tbQkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0xlZ2FjeVRpbGVMYXllclBvb2wubW0JKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcg
QEAgdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjphZGRMYXllcihjb25zdAogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwogICAgIGxpc3RPZkxheWVy
c1dpdGhTaXplKGxheWVyU2l6ZSkucHJlcGVuZChsYXllcik7CiAgICAgbV90b3RhbEJ5dGVzICs9
IGJ5dGVzQmFja2luZ0xheWVyV2l0aFBpeGVsU2l6ZShsYXllclNpemUpOwogCkBAIC05Niw3ICs5
Niw3IEBAIFJldGFpblB0cjxMZWdhY3lUaWxlTGF5ZXI+IExlZ2FjeVRpbGVMYXkKIHsKICAgICBp
ZiAoIWNhblJldXNlTGF5ZXJXaXRoU2l6ZShzaXplKSkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9sYXllclBvb2xNdXRleCk7CiAgICAgTGF5ZXJMaXN0JiByZXVzZUxpc3QgPSBsaXN0
T2ZMYXllcnNXaXRoU2l6ZShzaXplLCBNYXJrQXNVc2VkKTsKICAgICBpZiAocmV1c2VMaXN0Lmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTEwNiw3ICsxMDYsNyBAQCBSZXRhaW5Q
dHI8TGVnYWN5VGlsZUxheWVyPiBMZWdhY3lUaWxlTGF5CiAKIHZvaWQgTGVnYWN5VGlsZUxheWVy
UG9vbDo6c2V0Q2FwYWNpdHkodW5zaWduZWQgY2FwYWNpdHkpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
cmV1c2VMb2NrZXIobV9sYXllclBvb2xNdXRleCk7CisgICAgTG9ja0hvbGRlciByZXVzZUxvY2tl
cihtX2xheWVyUG9vbE11dGV4KTsKICAgICBpZiAoY2FwYWNpdHkgPCBtX2NhcGFjaXR5KQogICAg
ICAgICBzY2hlZHVsZVBydW5lKCk7CiAgICAgbV9jYXBhY2l0eSA9IGNhcGFjaXR5OwpAQCAtMTM2
LDcgKzEzNiw3IEBAIHZvaWQgTGVnYWN5VGlsZUxheWVyUG9vbDo6c2NoZWR1bGVQcnVuZSgKIAog
dm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpwcnVuZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fbGF5ZXJQb29sTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbGF5ZXJQb29s
TXV0ZXgpOwogICAgIEFTU0VSVChtX25lZWRzUHJ1bmUpOwogICAgIG1fbmVlZHNQcnVuZSA9IGZh
bHNlOwogICAgIHVuc2lnbmVkIHNocmlua1RvID0gZGVjYXllZENhcGFjaXR5KCk7CkBAIC0xNjMs
NyArMTYzLDcgQEAgdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpwcnVuZSgpCiAKIHZvaWQgTGVn
YWN5VGlsZUxheWVyUG9vbDo6ZHJhaW4oKQogewotICAgIE11dGV4TG9ja2VyIHJldXNlTG9ja2Vy
KG1fbGF5ZXJQb29sTXV0ZXgpOworICAgIExvY2tIb2xkZXIgcmV1c2VMb2NrZXIobV9sYXllclBv
b2xNdXRleCk7CiAgICAgbV9yZXVzZUxpc3RzLmNsZWFyKCk7CiAgICAgbV9zaXplc0luUHJ1bmVP
cmRlci5jbGVhcigpOwogICAgIG1fdG90YWxCeXRlcyA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxEb3dubG9hZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgQ3VybERvd25s
b2FkTWFuYWdlcjo6fkN1cmxEb3dubG9hZE1hbmFnZQogCiBib29sIEN1cmxEb3dubG9hZE1hbmFn
ZXI6OmFkZChDVVJMKiBjdXJsSGFuZGxlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIG1fcGVuZGluZ0hh
bmRsZUxpc3QuYXBwZW5kKGN1cmxIYW5kbGUpOwogICAgIHN0YXJ0VGhyZWFkSWZOZWVkZWQoKTsK
QEAgLTcwLDcgKzcwLDcgQEAgYm9vbCBDdXJsRG93bmxvYWRNYW5hZ2VyOjphZGQoQ1VSTCogY3Vy
bAogCiBib29sIEN1cmxEb3dubG9hZE1hbmFnZXI6OnJlbW92ZShDVVJMKiBjdXJsSGFuZGxlKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX211dGV4KTsKIAogICAgIG1fcmVtb3ZlZEhhbmRsZUxpc3QuYXBwZW5kKGN1cmxIYW5kbGUp
OwogCkBAIC03OSwxMyArNzksMTMgQEAgYm9vbCBDdXJsRG93bmxvYWRNYW5hZ2VyOjpyZW1vdmUo
Q1VSTCogYwogCiBpbnQgQ3VybERvd25sb2FkTWFuYWdlcjo6Z2V0QWN0aXZlRG93bmxvYWRDb3Vu
dCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIHJldHVybiBtX2FjdGl2ZUhhbmRsZUxpc3Quc2l6
ZSgpOwogfQogCiBpbnQgQ3VybERvd25sb2FkTWFuYWdlcjo6Z2V0UGVuZGluZ0Rvd25sb2FkQ291
bnQoKSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICByZXR1cm4gbV9wZW5kaW5nSGFuZGxlTGlzdC5z
aXplKCk7CiB9CiAKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIEN1cmxEb3dubG9hZE1hbmFnZXI6
OnN0b3BUaHJlYWQoKQogCiB2b2lkIEN1cmxEb3dubG9hZE1hbmFnZXI6OnN0b3BUaHJlYWRJZklk
bGUoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX211dGV4KTsKIAogICAgIGlmICghZ2V0QWN0aXZlRG93bmxvYWRDb3VudCgpICYm
ICFnZXRQZW5kaW5nRG93bmxvYWRDb3VudCgpKQogICAgICAgICBzZXRSdW5UaHJlYWQoZmFsc2Up
OwpAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RvcFRocmVh
ZElmSWQKIAogdm9pZCBDdXJsRG93bmxvYWRNYW5hZ2VyOjp1cGRhdGVIYW5kbGVMaXN0KCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9tdXRleCk7CiAKICAgICAvLyBSZW1vdmUgY3VybCBlYXN5IGhhbmRsZXMgZnJvbSBtdWx0aSBs
aXN0IAogICAgIGludCBzaXplID0gbV9yZW1vdmVkSGFuZGxlTGlzdC5zaXplKCk7CkBAIC0yNDUs
NyArMjQ1LDcgQEAgQ3VybERvd25sb2FkOjpDdXJsRG93bmxvYWQoKQogCiBDdXJsRG93bmxvYWQ6
On5DdXJsRG93bmxvYWQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIGlmIChtX3VybCkKICAgICAgICAg
ZmFzdEZyZWUobV91cmwpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgQ3VybERvd25sb2FkOjpp
bml0KEN1cmxEb3dubG9hZExpc3QKICAgICBpZiAoIWxpc3RlbmVyKQogICAgICAgICByZXR1cm47
CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9tdXRleCk7CiAKICAgICBtX2N1cmxIYW5kbGUgPSBjdXJsX2Vhc3lfaW5pdCgpOwogCkBA
IC0yOTUsNyArMjk1LDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmluaXQoQ3VybERvd25sb2FkTGlz
dAogICAgIGlmICghbGlzdGVuZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAg
IFVSTCB1cmwoUGFyc2VkVVJMU3RyaW5nLCByZXF1ZXN0LnVybCgpKTsKIApAQCAtMzE3LDI1ICsz
MTcsMjUgQEAgYm9vbCBDdXJsRG93bmxvYWQ6OmNhbmNlbCgpCiAKIFN0cmluZyBDdXJsRG93bmxv
YWQ6OmdldFRlbXBQYXRoKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRl
eCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fdGVtcFBh
dGg7CiB9CiAKIFN0cmluZyBDdXJsRG93bmxvYWQ6OmdldFVybCgpIGNvbnN0CiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgp
OwogICAgIHJldHVybiBTdHJpbmcobV91cmwpOwogfQogCiBSZXNvdXJjZVJlc3BvbnNlIEN1cmxE
b3dubG9hZDo6Z2V0UmVzcG9uc2UoKSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICByZXR1cm4gbV9y
ZXNwb25zZTsKIH0KIAogdm9pZCBDdXJsRG93bmxvYWQ6OmNsb3NlRmlsZSgpCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgp
OwogCiAgICAgaWYgKG1fdGVtcEhhbmRsZSAhPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSB7
CiAgICAgICAgIFdlYkNvcmU6OmNsb3NlRmlsZShtX3RlbXBIYW5kbGUpOwpAQCAtMzkwLDcgKzM5
MCw3IEBAIHZvaWQgQ3VybERvd25sb2FkOjphZGRIZWFkZXJzKGNvbnN0IFJlc28KIAogdm9pZCBD
dXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVIZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIpCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bXV0ZXgpOwogCiAgICAgaWYgKGhlYWRlciA9PSAiXHJcbiIgfHwgaGVhZGVyID09ICJcbiIpIHsK
IApAQCAtNDMwLDcgKzQzMCw3IEBAIHZvaWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZlSGVhZGVy
KGNvbnMKIAogdm9pZCBDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVEYXRhKHZvaWQqIGRhdGEsIGlu
dCBzaXplKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIFJlZlB0cjxDdXJsRG93bmxvYWQ+IHByb3RlY3Rl
ZERvd25sb2FkKHRoaXMpOwogCkBAIC00NjQsNyArNDY0LDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6
OmRpZEZpbmlzaCgpCiAKIHZvaWQgQ3VybERvd25sb2FkOjpkaWRGYWlsKCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7
CiAKICAgICBjbG9zZUZpbGUoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxEb3dubG9hZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENVUkwqPiBt
X3BlbmRpbmdIYW5kbGVMaXN0OwogICAgIFZlY3RvcjxDVVJMKj4gbV9hY3RpdmVIYW5kbGVMaXN0
OwogICAgIFZlY3RvcjxDVVJMKj4gbV9yZW1vdmVkSGFuZGxlTGlzdDsKLSAgICBtdXRhYmxlIE11
dGV4IG1fbXV0ZXg7CisgICAgbXV0YWJsZSBMb2NrIG1fbXV0ZXg7CiAgICAgYm9vbCBtX3J1blRo
cmVhZDsKIH07CiAKQEAgLTE0MCw3ICsxNDAsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlBs
YXRmb3JtRmlsZUhhbmRsZSBtX3RlbXBIYW5kbGU7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSBtX3Jlc3BvbnNlOwogICAgIGJvb2wgbV9kZWxldGVzRmlsZVVwb25GYWlsdXJlOwotICAg
IG11dGFibGUgTXV0ZXggbV9tdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKICAgICBD
dXJsRG93bmxvYWRMaXN0ZW5lciAqbV9saXN0ZW5lcjsKIAogICAgIHN0YXRpYyBDdXJsRG93bmxv
YWRNYW5hZ2VyIG1fZG93bmxvYWRNYW5hZ2VyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdl
ci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMs
MTAgKzEzMywxMSBAQCBzdGF0aWMgY2hhciogY29va2llSmFyUGF0aCgpCiAjZW5kaWYKIH0KIAot
c3RhdGljIE11dGV4KiBzaGFyZWRSZXNvdXJjZU11dGV4KGN1cmxfbG9ja19kYXRhIGRhdGEpIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIGNvb2tpZU11dGV4LCAo
KSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBkbnNNdXRleCwg
KCkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc2hhcmVNdXRl
eCwgKCkpOworc3RhdGljIExvY2sqIHNoYXJlZFJlc291cmNlTXV0ZXgoY3VybF9sb2NrX2RhdGEg
ZGF0YSkKK3sKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgY29va2ll
TXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgZG5z
TXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgc2hh
cmVNdXRleCwgKCkpOwogCiAgICAgc3dpdGNoIChkYXRhKSB7CiAgICAgICAgIGNhc2UgQ1VSTF9M
T0NLX0RBVEFfQ09PS0lFOgpAQCAtMTkwLDEzICsxOTEsMTMgQEAgc3RhdGljIHZvaWQgY2FsY3Vs
YXRlV2ViVGltaW5nSW5mb3JtYXRpbwogLy8gY2FjaGUuCiBzdGF0aWMgdm9pZCBjdXJsX2xvY2tf
Y2FsbGJhY2soQ1VSTCogLyogaGFuZGxlICovLCBjdXJsX2xvY2tfZGF0YSBkYXRhLCBjdXJsX2xv
Y2tfYWNjZXNzIC8qIGFjY2VzcyAqLywgdm9pZCogLyogdXNlclB0ciAqLykKIHsKLSAgICBpZiAo
TXV0ZXgqIG11dGV4ID0gc2hhcmVkUmVzb3VyY2VNdXRleChkYXRhKSkKKyAgICBpZiAoTG9jayog
bXV0ZXggPSBzaGFyZWRSZXNvdXJjZU11dGV4KGRhdGEpKQogICAgICAgICBtdXRleC0+bG9jaygp
OwogfQogCiBzdGF0aWMgdm9pZCBjdXJsX3VubG9ja19jYWxsYmFjayhDVVJMKiAvKiBoYW5kbGUg
Ki8sIGN1cmxfbG9ja19kYXRhIGRhdGEsIHZvaWQqIC8qIHVzZXJQdHIgKi8pCiB7Ci0gICAgaWYg
KE11dGV4KiBtdXRleCA9IHNoYXJlZFJlc291cmNlTXV0ZXgoZGF0YSkpCisgICAgaWYgKExvY2sq
IG11dGV4ID0gc2hhcmVkUmVzb3VyY2VNdXRleChkYXRhKSkKICAgICAgICAgbXV0ZXgtPnVubG9j
aygpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlj
a0xvb2subW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9p
b3MvUXVpY2tMb29rLm1tCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0JKHdvcmtpbmcgY29weSkKQEAgLTg1LDkgKzg1
LDkgQEAgTlNEaWN0aW9uYXJ5ICpXZWJDb3JlOjpRTERpcmVjdG9yeUF0dHJpYgogICAgIHJldHVy
biBkaWN0aW9uYXJ5OwogfQogCi1zdGF0aWMgTXV0ZXgmIHFsUHJldmlld0NvbnZlcnRlckRpY3Rp
b25hcnlNdXRleCgpCitzdGF0aWMgTG9jayYgcWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11
dGV4KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TXV0ZXg+IG11dGV4OworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxMb2NrPiBtdXRleDsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAK
QEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFdlYkNvcmU6OmFkZFFMUHJldmlld0NvbnZlcnRlcldp
dGhGCiB7CiAgICAgQVNTRVJUKHVybCk7CiAgICAgQVNTRVJUKGNvbnZlcnRlcik7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9jayhxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKSk7CisgICAg
TG9ja0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKICAg
ICBbUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgpIHNldE9iamVjdDpjb252ZXJ0ZXIgZm9y
S2V5OnVybF07CiAgICAgW1FMQ29udGVudERpY3Rpb25hcnkoKSBzZXRPYmplY3Q6KGZpbGVOYW1l
ID8gZmlsZU5hbWUgOiBAIiIpIGZvcktleTp1cmxdOwogfQpAQCAtMTIxLDcgKzEyMSw3IEBAIE5T
U3RyaW5nICpXZWJDb3JlOjpxbFByZXZpZXdDb252ZXJ0ZXJVVEkKIHsKICAgICBpZCBjb252ZXJ0
ZXIgPSBuaWw7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKHFsUHJldmlld0NvbnZl
cnRlckRpY3Rpb25hcnlNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmll
d0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKICAgICAgICAgY29udmVydGVyID0gW1FMUHJl
dmlld0NvbnZlcnRlckRpY3Rpb25hcnkoKSBvYmplY3RGb3JLZXk6dXJsXTsKICAgICB9CiAgICAg
aWYgKCFjb252ZXJ0ZXIpCkBAIC0xMzEsNyArMTMxLDcgQEAgTlNTdHJpbmcgKldlYkNvcmU6OnFs
UHJldmlld0NvbnZlcnRlclVUSQogCiB2b2lkIFdlYkNvcmU6OnJlbW92ZVFMUHJldmlld0NvbnZl
cnRlckZvclVSTChOU1VSTCAqdXJsKQogewotICAgIE11dGV4TG9ja2VyIGxvY2socWxQcmV2aWV3
Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhxbFByZXZp
ZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKSk7CiAgICAgW1FMUHJldmlld0NvbnZlcnRlckRp
Y3Rpb25hcnkoKSByZW1vdmVPYmplY3RGb3JLZXk6dXJsXTsKIAogICAgIC8vIERlbGV0ZSB0aGUg
ZmlsZSB3aGVuIHdlIHJlbW92ZSB0aGUgcHJldmlldyBjb252ZXJ0ZXIKQEAgLTE2Niw3ICsxNjYs
NyBAQCBjb25zdCBVUkwgV2ViQ29yZTo6c2FmZVFMVVJMRm9yRG9jdW1lbnRVCiAgICAgaWQgY29u
dmVydGVyID0gbmlsOwogICAgIE5TVVJMICpuc0RvY3VtZW50VVJMID0gZG9jdW1lbnRVUkw7CiAg
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25h
cnlNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRp
Y3Rpb25hcnlNdXRleCgpKTsKICAgICAgICAgY29udmVydGVyID0gW1FMUHJldmlld0NvbnZlcnRl
ckRpY3Rpb25hcnkoKSBvYmplY3RGb3JLZXk6bnNEb2N1bWVudFVSTF07CiAgICAgfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRh
YmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIFNRTGl0ZURh
dGFiYXNlOjpjbG9zZSgpCiAgICAgICAgIC8vIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9v
cGVuaW5nVGhyZWFkKTsKICAgICAgICAgc3FsaXRlMyogZGIgPSBtX2RiOwogICAgICAgICB7Ci0g
ICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZUNsb3NpbmdNdXRleCk7Cisg
ICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlQ2xvc2luZ011dGV4KTsKICAg
ICAgICAgICAgIG1fZGIgPSAwOwogICAgICAgICB9CiAgICAgICAgIHNxbGl0ZTNfY2xvc2UoZGIp
OwpAQCAtMTYwLDcgKzE2MCw3IEBAIGludDY0X3QgU1FMaXRlRGF0YWJhc2U6Om1heGltdW1TaXpl
KCkKICAgICBpbnQ2NF90IG1heFBhZ2VDb3VudCA9IDA7CiAKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9hdXRob3JpemVyTG9jayk7CiAgICAgICAgIGVuYWJsZUF1dGhvcml6ZXIoZmFsc2UpOwog
ICAgICAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KCp0aGlzLCBBU0NJSUxpdGVyYWwoIlBS
QUdNQSBtYXhfcGFnZV9jb3VudCIpKTsKICAgICAgICAgbWF4UGFnZUNvdW50ID0gc3RhdGVtZW50
LmdldENvbHVtbkludDY0KDApOwpAQCAtMTgwLDcgKzE4MCw3IEBAIHZvaWQgU1FMaXRlRGF0YWJh
c2U6OnNldE1heGltdW1TaXplKGludDYKICAgICBBU1NFUlQoY3VycmVudFBhZ2VTaXplIHx8ICFt
X2RiKTsKICAgICBpbnQ2NF90IG5ld01heFBhZ2VDb3VudCA9IGN1cnJlbnRQYWdlU2l6ZSA/IHNp
emUgLyBjdXJyZW50UGFnZVNpemUgOiAwOwogICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2F1dGhvcml6ZXJMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2Nr
KTsKICAgICBlbmFibGVBdXRob3JpemVyKGZhbHNlKTsKIAogICAgIFNRTGl0ZVN0YXRlbWVudCBz
dGF0ZW1lbnQoKnRoaXMsICJQUkFHTUEgbWF4X3BhZ2VfY291bnQgPSAiICsgU3RyaW5nOjpudW1i
ZXIobmV3TWF4UGFnZUNvdW50KSk7CkBAIC0xOTcsNyArMTk3LDcgQEAgaW50IFNRTGl0ZURhdGFi
YXNlOjpwYWdlU2l6ZSgpCiAgICAgLy8gU2luY2UgdGhlIHBhZ2Ugc2l6ZSBvZiBhIGRhdGFiYXNl
IGlzIGxvY2tlZCBpbiBhdCBjcmVhdGlvbiBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBkeW5hbWlj
LCAKICAgICAvLyB3ZSBjYW4gY2FjaGUgdGhlIHZhbHVlIGZvciBmdXR1cmUgdXNlCiAgICAgaWYg
KG1fcGFnZVNpemUgPT0gLTEpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9y
aXplckxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsK
ICAgICAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CiAgICAgICAgIAogICAgICAgICBTUUxp
dGVTdGF0ZW1lbnQgc3RhdGVtZW50KCp0aGlzLCBBU0NJSUxpdGVyYWwoIlBSQUdNQSBwYWdlX3Np
emUiKSk7CkBAIC0yMTQsNyArMjE0LDcgQEAgaW50NjRfdCBTUUxpdGVEYXRhYmFzZTo6ZnJlZVNw
YWNlU2l6ZSgpCiAgICAgaW50NjRfdCBmcmVlbGlzdENvdW50ID0gMDsKIAogICAgIHsKLSAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOworICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICAgICAgZW5hYmxlQXV0aG9yaXplcihm
YWxzZSk7CiAgICAgICAgIC8vIE5vdGU6IGZyZWVsaXN0X2NvdW50IHdhcyBhZGRlZCBpbiBTUUxp
dGUgMy40LjEuCiAgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsIEFTQ0lJ
TGl0ZXJhbCgiUFJBR01BIGZyZWVsaXN0X2NvdW50IikpOwpAQCAtMjMwLDcgKzIzMCw3IEBAIGlu
dDY0X3QgU1FMaXRlRGF0YWJhc2U6OnRvdGFsU2l6ZSgpCiAgICAgaW50NjRfdCBwYWdlQ291bnQg
PSAwOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9j
ayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwogICAgICAg
ICBlbmFibGVBdXRob3JpemVyKGZhbHNlKTsKICAgICAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRl
bWVudCgqdGhpcywgQVNDSUlMaXRlcmFsKCJQUkFHTUEgcGFnZV9jb3VudCIpKTsKICAgICAgICAg
cGFnZUNvdW50ID0gc3RhdGVtZW50LmdldENvbHVtbkludDY0KDApOwpAQCAtMzA5LDcgKzMwOSw3
IEBAIGludCBTUUxpdGVEYXRhYmFzZTo6cnVuVmFjdXVtQ29tbWFuZCgpCiAKIGludCBTUUxpdGVE
YXRhYmFzZTo6cnVuSW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRo
b3JpemVyTG9jayk7CiAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CiAKICAgICBpZiAoIWV4
ZWN1dGVDb21tYW5kKEFTQ0lJTGl0ZXJhbCgiUFJBR01BIGluY3JlbWVudGFsX3ZhY3V1bSIpKSkK
QEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpzZXRBdXRob3JpemVyKFBh
c3NSCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9h
dXRob3JpemVyTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7
CiAKICAgICBtX2F1dGhvcml6ZXIgPSBhdXRoOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHNx
bGl0ZTMuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CkBAIC0xMDYsNyArMTA3LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2V0
QXV0aG9yaXplcihQYXNzUmVmUHRyPERhdGFiYXNlQXV0aG9yaXplcj4pOwogCi0gICAgTXV0ZXgm
IGRhdGFiYXNlTXV0ZXgoKSB7IHJldHVybiBtX2xvY2tpbmdNdXRleDsgfQorICAgIExvY2smIGRh
dGFiYXNlTXV0ZXgoKSB7IHJldHVybiBtX2xvY2tpbmdNdXRleDsgfQogICAgIGJvb2wgaXNBdXRv
Q29tbWl0T24oKSBjb25zdDsKIAogICAgIC8vIFRoZSBTUUxpdGUgQVVUT19WQUNVVU0gcHJhZ21h
IGNhbiBiZSBlaXRoZXIgTk9ORSwgRlVMTCwgb3IgSU5DUkVNRU5UQUwuCkBAIC0xNDcsMTMgKzE0
OCwxMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3M7CiAgICAg
Ym9vbCBtX3NoYXJhYmxlOwogICAgIAotICAgIE11dGV4IG1fYXV0aG9yaXplckxvY2s7CisgICAg
TG9jayBtX2F1dGhvcml6ZXJMb2NrOwogICAgIFJlZlB0cjxEYXRhYmFzZUF1dGhvcml6ZXI+IG1f
YXV0aG9yaXplcjsKIAotICAgIE11dGV4IG1fbG9ja2luZ011dGV4OworICAgIExvY2sgbV9sb2Nr
aW5nTXV0ZXg7CiAgICAgVGhyZWFkSWRlbnRpZmllciBtX29wZW5pbmdUaHJlYWQ7CiAKLSAgICBN
dXRleCBtX2RhdGFiYXNlQ2xvc2luZ011dGV4OworICAgIExvY2sgbV9kYXRhYmFzZUNsb3NpbmdN
dXRleDsKIAogICAgIGludCBtX29wZW5FcnJvcjsKICAgICBDU3RyaW5nIG1fb3BlbkVycm9yTWVz
c2FnZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0
ZW1lbnQuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cWwvU1FMaXRlU3RhdGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBp
bnQgU1FMaXRlU3RhdGVtZW50OjpwcmVwYXJlKCkKIHsKICAgICBBU1NFUlQoIW1faXNQcmVwYXJl
ZCk7CiAKLSAgICBNdXRleExvY2tlciBkYXRhYmFzZUxvY2sobV9kYXRhYmFzZS5kYXRhYmFzZU11
dGV4KCkpOworICAgIExvY2tIb2xkZXIgZGF0YWJhc2VMb2NrKG1fZGF0YWJhc2UuZGF0YWJhc2VN
dXRleCgpKTsKIAogICAgIENTdHJpbmcgcXVlcnkgPSBtX3F1ZXJ5LnN0cmlwV2hpdGVTcGFjZSgp
LnV0ZjgoKTsKICAgICAKQEAgLTg2LDcgKzg2LDcgQEAgaW50IFNRTGl0ZVN0YXRlbWVudDo6cHJl
cGFyZSgpCiAKIGludCBTUUxpdGVTdGF0ZW1lbnQ6OnN0ZXAoKQogewotICAgIE11dGV4TG9ja2Vy
IGRhdGFiYXNlTG9jayhtX2RhdGFiYXNlLmRhdGFiYXNlTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRl
ciBkYXRhYmFzZUxvY2sobV9kYXRhYmFzZS5kYXRhYmFzZU11dGV4KCkpOwogCiAgICAgaWYgKCFt
X3N0YXRlbWVudCkKICAgICAgICAgcmV0dXJuIFNRTElURV9PSzsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcg
KzEyMiw3IEBAIFdvcmtlclRocmVhZDo6fldvcmtlclRocmVhZCgpCiBib29sIFdvcmtlclRocmVh
ZDo6c3RhcnQoKQogewogICAgIC8vIE11dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IHRvIGVu
c3VyZSB0aGF0IG1fdGhyZWFkSUQgaXMgaW5pdGlhbGl6ZWQgd2hlbiB0aGUgdGhyZWFkIHN0YXJ0
cy4KLSAgICBNdXRleExvY2tlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CiAKICAgICBpZiAobV90aHJlYWRJ
RCkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBXb3JrZXJU
aHJlYWQ6OndvcmtlclRocmVhZCgpCiAjZW5kaWYKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV90aHJlYWRDcmVhdGlvbk11dGV4KTsKICAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IGNy
ZWF0ZVdvcmtlckdsb2JhbFNjb3BlKG1fc3RhcnR1cERhdGEtPm1fc2NyaXB0VVJMLCBtX3N0YXJ0
dXBEYXRhLT5tX3VzZXJBZ2VudCwgbV9zdGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xp
Y3ksIG1fc3RhcnR1cERhdGEtPm1fY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgbV9zdGFydHVw
RGF0YS0+bV90b3BPcmlnaW4ucmVsZWFzZSgpKTsKIAogICAgICAgICBpZiAobV9ydW5Mb29wLnRl
cm1pbmF0ZWQoKSkgewpAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgV29ya2VyVGhyZWFkOjpydW5F
dmVudExvb3AoKQogdm9pZCBXb3JrZXJUaHJlYWQ6OnN0b3AoKQogewogICAgIC8vIE11dGV4IHBy
b3RlY3Rpb24gaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugc3RvcCgpIGNhbiBiZSBjYWxsZWQgYmVmb3Jl
IHRoZSBjb250ZXh0IGlzIGZ1bGx5IGNyZWF0ZWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3Ro
cmVhZENyZWF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOwogCiAgICAgLy8gRW5zdXJlIHRoYXQgdGFza3MgYXJlIGJlaW5nIGhhbmRsZWQgYnkg
dGhyZWFkIGV2ZW50IGxvb3AuIElmIHNjcmlwdCBleGVjdXRpb24gd2VyZW4ndCBmb3JiaWRkZW4s
IGEgd2hpbGUoMSkgbG9vcCBpbiBKUyBjb3VsZCBrZWVwIHRoZSB0aHJlYWQgYWxpdmUgZm9yZXZl
ci4KICAgICBpZiAobV93b3JrZXJHbG9iYWxTY29wZSkgewpJbmRleDogU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV29ya2VyUmVwb3J0aW5nUHJveHkmIG1fd29ya2Vy
UmVwb3J0aW5nUHJveHk7CiAKICAgICAgICAgUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBtX3dv
cmtlckdsb2JhbFNjb3BlOwotICAgICAgICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7Cisg
ICAgICAgIExvY2sgbV90aHJlYWRDcmVhdGlvbk11dGV4OwogCiAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxXb3JrZXJUaHJlYWRTdGFydHVwRGF0YT4gbV9zdGFydHVwRGF0YTsKIApJbmRleDogU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8ZnBp
emxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBvZiBX
VEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3M6OnBvc3REYXRhYmFzZVRhc2spOgorICAg
ICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3M6OnBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKToK
KyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmg6CisgICAgICAgICog
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpzaHV0ZG93bik6CisgICAgICAgIChXZWJLaXQ6
OlVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0TWFpblRocmVhZFRhc2spOgorICAgICAgICAoV2ViS2l0
OjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybU5leHRNYWluVGhyZWFkVGFzayk6CisgICAgICAg
IChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0RGF0YWJhc2VUYXNrKToKKyAgICAgICAg
KFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKToKKyAg
ICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmg6Cisg
ICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25u
ZWN0aW9uOjpzZW5kU3luY01lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5k
U3luY01lc3NhZ2VGcm9tU2Vjb25kYXJ5VGhyZWFkKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlv
bjo6d2FpdEZvclN5bmNSZXBseSk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnByb2Nlc3NJ
bmNvbWluZ1N5bmNSZXBseSk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmNvbm5lY3Rpb25E
aWRDbG9zZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAg
KiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmFwcGVuZFVwZGF0
ZSk6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lLmg6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRo
cmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlQ29tcG9zaXRpbmdUaHJlYWQpOgorICAgICAgICAoV2Vi
S2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OnJ1bkNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAg
KFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9yOjp0ZXJtaW5hdGVDb21wb3NpdGluZ1RocmVhZCk6
CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9y
L1RocmVhZGVkQ29tcG9zaXRvci5oOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVBy
b3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjphZGRDdXN0b21Qcm90b2NvbCk6CisgICAgICAg
IChXZWJLaXQ6OkN1c3RvbVByb3RvY29sTWFuYWdlcjo6cmVtb3ZlQ3VzdG9tUHJvdG9jb2wpOgor
ICAgICAgICAoV2ViS2l0OjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnJlZ2lzdGVyU2NoZW1lKToK
KyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjp1bnJlZ2lzdGVyU2NoZW1l
KToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpzdXBwb3J0c1NjaGVt
ZSk6CisgICAgICAgIChXZWJLaXQ6OkN1c3RvbVByb3RvY29sTWFuYWdlcjo6cHJvdG9jb2xGb3JJ
RCk6CisgICAgICAgICogU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3Rv
Y29sTWFuYWdlci5oOgorICAgICAgICAqIFNoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNj
b21wQnJva2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyOjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6cmVtb3ZlUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1h
bmFnZXI6OnBsdWdpblByb2Nlc3NDcmFzaGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlz
cGF0Y2hlcjo6YWRkU2Nyb2xsaW5nVHJlZUZvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpFdmVu
dERpc3BhdGNoZXI6OnJlbW92ZVNjcm9sbGluZ1RyZWVGb3JQYWdlKToKKyAgICAgICAgKFdlYktp
dDo6RXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYktp
dFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RJ
bnB1dFN0cmVhbVJlYWRBc3luYyk6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3Ry
ZWFtQWRkRGF0YSk6CisKIDIwMTUtMDgtMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBTcGVjdWxhdGl2ZSBHVEsgYnVpbGQgZml4IGFmdGVy
IHIxODg1NTMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVBy
b2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9E
YXRhYmFzZVByb2Nlc3MuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUx
LDcgKzE1MSw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzOjpwb3N0RGF0YWJhc2VUYXNrKHMKIHsK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fZGF0YWJhc2VUYXNrTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VU
YXNrTXV0ZXgpOwogCiAgICAgbV9kYXRhYmFzZVRhc2tzLmFwcGVuZChXVEY6Om1vdmUodGFzaykp
OwogCkBAIC0xNjYsNyArMTY2LDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3M6OnBlcmZvcm1OZXh0
RGF0YWJhcwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFzazsKICAgICB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CiAgICAgICAgIEFTU0VSVCgh
bV9kYXRhYmFzZVRhc2tzLmlzRW1wdHkoKSk7CiAgICAgICAgIHRhc2sgPSBtX2RhdGFiYXNlVGFz
a3MudGFrZUZpcnN0KCk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDYsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFVuaXF1ZUlEQkRhdGFi
YXNlSWRlbnRpZmllciwgUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlPj4gbV9pZGJEYXRhYmFzZXM7
CiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNUYXNrPj4gbV9kYXRhYmFzZVRhc2tz
OwotICAgIE11dGV4IG1fZGF0YWJhc2VUYXNrTXV0ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlVGFz
a011dGV4OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlE
QkRhdGFiYXNlLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpzaHV0ZG93bihVbmlx
dWVJCiAgICAgcmVmKCk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Rh
dGFiYXNlVGFza011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZVRh
c2tNdXRleCk7CiAgICAgICAgIG1fZGF0YWJhc2VUYXNrcy5jbGVhcigpOwogICAgIH0KIApAQCAt
MTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cG9zdE1haW5UaHJlYWRU
YQogICAgIGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cyAmJiB0YXNrVHlwZSA9PSBEYXRhYmFz
ZVRhc2tUeXBlOjpOb3JtYWwpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX21haW5UaHJlYWRUYXNrTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbWFp
blRocmVhZFRhc2tNdXRleCk7CiAKICAgICBtX21haW5UaHJlYWRUYXNrcy5hcHBlbmQoV1RGOjpt
b3ZlKHRhc2spKTsKIApAQCAtMTE0Myw3ICsxMTQzLDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFz
ZTo6cGVyZm9ybU5leHRNYWluVAogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFz
azsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0
ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0ZXgpOwog
CiAgICAgICAgIC8vIFRoaXMgZGF0YWJhc2UgbWlnaHQgYmUgc2h1dHRpbmcgZG93biwgaW4gd2hp
Y2ggY2FzZSB0aGUgdGFzayBxdWV1ZSBtaWdodCBiZSBlbXB0eS4KICAgICAgICAgaWYgKG1fbWFp
blRocmVhZFRhc2tzLmlzRW1wdHkoKSkKQEAgLTExNjUsNyArMTE2NSw3IEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OnBvc3REYXRhYmFzZVRhc2sKICAgICBpZiAoIW1fYWNjZXB0aW5nTmV3UmVx
dWVzdHMgJiYgdGFza1R5cGUgPT0gRGF0YWJhc2VUYXNrVHlwZTo6Tm9ybWFsKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CiAKICAgICBtX2RhdGFi
YXNlVGFza3MuYXBwZW5kKFdURjo6bW92ZSh0YXNrKSk7CiAKQEAgLTExODYsNyArMTE4Niw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1OZXh0RGF0YWIKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxBc3luY1Rhc2s+IHRhc2s7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0
YWJhc2VUYXNrTXV0ZXgpOwogCiAgICAgICAgIC8vIFRoaXMgZGF0YWJhc2UgbWlnaHQgYmUgc2h1
dHRpbmcgZG93biBvbiB0aGUgbWFpbiB0aHJlYWQsIGluIHdoaWNoIGNhc2UgdGhlIHRhc2sgcXVl
dWUgbWlnaHQgYmUgZW1wdHkuCiAgICAgICAgIGlmIChtX2RhdGFiYXNlVGFza3MuaXNFbXB0eSgp
KQpJbmRleDogU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJ
REJEYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMTAsMTAgKzIxMCwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAKICAgICBE
ZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNUYXNrPj4gbV9kYXRhYmFzZVRhc2tzOwotICAgIE11
dGV4IG1fZGF0YWJhc2VUYXNrTXV0ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlVGFza011dGV4Owog
CiAgICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4+IG1fbWFpblRocmVhZFRhc2tz
OwotICAgIE11dGV4IG1fbWFpblRocmVhZFRhc2tNdXRleDsKKyAgICBMb2NrIG1fbWFpblRocmVh
ZFRhc2tNdXRleDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00NTksNyArNDU5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25u
ZWN0aQogCiAgICAgLy8gUHVzaCB0aGUgcGVuZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uIG9u
IG91ciBzdGFjay4KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBs
eVN0YXRlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRl
TXV0ZXgpOwogICAgICAgICBpZiAoIW1fc2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzKSB7CiAgICAg
ICAgICAgICBkaWRGYWlsVG9TZW5kU3luY01lc3NhZ2UoKTsKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwpAQCAtNDg2LDcgKzQ4Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rl
cj4gQ29ubmVjdGkKIAogICAgIC8vIEZpbmFsbHksIHBvcCB0aGUgcGVuZGluZyBzeW5jIHJlcGx5
IGluZm9ybWF0aW9uLgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1Jl
cGx5U3RhdGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3Rh
dGVNdXRleCk7CiAgICAgICAgIEFTU0VSVChtX3BlbmRpbmdTeW5jUmVwbGllcy5sYXN0KCkuc3lu
Y1JlcXVlc3RJRCA9PSBzeW5jUmVxdWVzdElEKTsKICAgICAgICAgbV9wZW5kaW5nU3luY1JlcGxp
ZXMucmVtb3ZlTGFzdCgpOwogICAgIH0KQEAgLTUwOCw3ICs1MDgsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3RpCiAKICAgICAvLyBQdXNoIHRoZSBwZW5kaW5nIHN5
bmMgcmVwbHkgaW5mb3JtYXRpb24gb24gb3VyIHN0YWNrLgogICAgIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAgICAgICAgIGlmICghbV9zaG91bGRXYWl0
Rm9yU3luY1JlcGxpZXMpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtNTI2LDcg
KzUyNiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAogICAg
IC8vIEZpbmFsbHksIHBvcCB0aGUgcGVuZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uLgogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAgICAgICAg
IEFTU0VSVChtX3NlY29uZGFyeVRocmVhZFBlbmRpbmdTeW5jUmVwbHlNYXAuY29udGFpbnMoc3lu
Y1JlcXVlc3RJRCkpOwogICAgICAgICBtX3NlY29uZGFyeVRocmVhZFBlbmRpbmdTeW5jUmVwbHlN
YXAucmVtb3ZlKHN5bmNSZXF1ZXN0SUQpOwogICAgIH0KQEAgLTU0Niw3ICs1NDYsNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3RpCiAgICAgICAgIFN5bmNNZXNzYWdl
U3RhdGU6OnNpbmdsZXRvbigpLmRpc3BhdGNoTWVzc2FnZXMobnVsbHB0cik7CiAgICAgICAgIAog
ICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0
ZU11dGV4KTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVN
dXRleCk7CiAKICAgICAgICAgICAgIC8vIFNlY29uZCwgY2hlY2sgaWYgdGhlcmUgaXMgYSBzeW5j
IHJlcGx5IGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3Bl
bmRpbmdTeW5jUmVwbGllcy5pc0VtcHR5KCkpOwpAQCAtNTkyLDcgKzU5Miw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAogdm9pZCBDb25uZWN0aW9uOjpwcm9j
ZXNzSW5jb21pbmdTeW5jUmVwbHkoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBkZWNv
ZGVyKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAKICAgICAvLyBH
byB0aHJvdWdoIHRoZSBzdGFjayBvZiBzeW5jIHJlcXVlc3RzIHRoYXQgaGF2ZSBwZW5kaW5nIHJl
cGxpZXMgYW5kIHNlZSB3aGljaCBvbmUKICAgICAvLyB0aGlzIHJlcGx5IGlzIGZvci4KQEAgLTc1
MCw3ICs3NTAsNyBAQCB2b2lkIENvbm5lY3Rpb246OmNvbm5lY3Rpb25EaWRDbG9zZSgpCiAgICAg
cGxhdGZvcm1JbnZhbGlkYXRlKCk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5
bmNSZXBseVN0YXRlTXV0ZXgpOwogCiAgICAgICAgIEFTU0VSVChtX3Nob3VsZFdhaXRGb3JTeW5j
UmVwbGllcyk7CiAgICAgICAgIG1fc2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzID0gZmFsc2U7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCkBAIC0yOTgsNyArMjk5LDcgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBT
eW5jTWVzc2FnZVN0YXRlOwogICAgIGZyaWVuZCBjbGFzcyBTeW5jTWVzc2FnZVN0YXRlOwogCi0g
ICAgTXV0ZXggbV9zeW5jUmVwbHlTdGF0ZU11dGV4OworICAgIExvY2sgbV9zeW5jUmVwbHlTdGF0
ZU11dGV4OwogICAgIGJvb2wgbV9zaG91bGRXYWl0Rm9yU3luY1JlcGxpZXM7CiAgICAgVmVjdG9y
PFBlbmRpbmdTeW5jUmVwbHk+IG1fcGVuZGluZ1N5bmNSZXBsaWVzOwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5MCw3ICs2OTAsNyBAQCB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6YXBwZW5kVXBkCiAgICAgICAgIHJldHVybjsKIAogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcmVuZGVy
UXVldWVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9yZW5kZXJRdWV1ZU11dGV4KTsK
ICAgICBtX3JlbmRlclF1ZXVlLmFwcGVuZChXVEY6Om1vdmUoZnVuY3Rpb24pKTsKIH0KIApJbmRl
eDogU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNyArMTQ1LDcgQEAgcHJp
dmF0ZToKIAogICAgIC8vIFJlbmRlciBxdWV1ZSBjYW4gYmUgYWNjZXNzZWQgb255IGZyb20gbWFp
biB0aHJlYWQgb3IgdXBkYXRlUGFpbnROb2RlIGNhbGwgc3RhY2shCiAgICAgVmVjdG9yPHN0ZDo6
ZnVuY3Rpb248dm9pZCgpPj4gbV9yZW5kZXJRdWV1ZTsKLSAgICBNdXRleCBtX3JlbmRlclF1ZXVl
TXV0ZXg7CisgICAgTG9jayBtX3JlbmRlclF1ZXVlTXV0ZXg7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVyOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3Iv
VGhyZWFkZWRDb21wb3NpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3Np
dG9yLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRv
cjo6Y3JlYXRlQ29tcG9zaXRpCiAgICAgaWYgKG1fdGhyZWFkSWRlbnRpZmllcikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25k
aXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENv
bmRpdGlvbk11dGV4KTsKICAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoY29t
cG9zaXRpbmdUaHJlYWRFbnRyeSwgdGhpcywgIldlYkNvcmU6IFRocmVhZGVkQ29tcG9zaXRvciIp
OwogCiAgICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbi53YWl0KG1faW5pdGlhbGl6ZVJ1
bkxvb3BDb25kaXRpb25NdXRleCk7CkBAIC0zMDQsNyArMzA0LDcgQEAgdm9pZCBUaHJlYWRlZENv
bXBvc2l0b3I6OmNyZWF0ZUNvbXBvc2l0aQogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnJ1bkNv
bXBvc2l0aW5nVGhyZWFkKCkKIHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogCiAgICAgICAgIG1fY29t
cG9zaXRpbmdSdW5Mb29wID0gc3RkOjptYWtlX3VuaXF1ZTxDb21wb3NpdGluZ1J1bkxvb3A+KFsm
XSB7CiAgICAgICAgICAgICByZW5kZXJMYXllclRyZWUoKTsKQEAgLTMyMSw3ICszMjEsNyBAQCB2
b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cnVuQ29tcG9zaXRpbmdUCiAgICAgbV9zY2VuZS0+cHVy
Z2VHTFJlc291cmNlcygpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90
ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgICAgIG1fY29tcG9zaXRp
bmdSdW5Mb29wID0gbnVsbHB0cjsKICAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICAg
ICAgbV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uLnNpZ25hbCgpOwpAQCAtMzMyLDcgKzMzMiw3
IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpydW5Db21wb3NpdGluZ1QKIAogdm9pZCBUaHJl
YWRlZENvbXBvc2l0b3I6OnRlcm1pbmF0ZUNvbXBvc2l0aW5nVGhyZWFkKCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKIAogICAg
IG1fc2NlbmUtPmRldGFjaCgpOwogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5ydW5Mb29wKCku
c3RvcCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
dGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZENvbXBvc2l0b3IuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktp
dDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVk
Q29tcG9zaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsOSArMTExLDkgQEAgcHJpdmF0ZToK
IAogICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJZGVudGlmaWVyOwogICAgIFRocmVhZENv
bmRpdGlvbiBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uOwotICAgIE11dGV4IG1faW5pdGlh
bGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKKyAgICBMb2NrIG1faW5pdGlhbGl6ZVJ1bkxvb3BD
b25kaXRpb25NdXRleDsKICAgICBUaHJlYWRDb25kaXRpb24gbV90ZXJtaW5hdGVSdW5Mb29wQ29u
ZGl0aW9uOwotICAgIE11dGV4IG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11dGV4OworICAg
IExvY2sgbV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXg7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVBy
b3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
LmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1
c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MTAyLDExICsxMDIsMTEgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIEhh
c2hTZXQ8U3RyaW5nPiBtX3JlZ2lzdGVyZWRTY2hlbWVzOwotICAgIE11dGV4IG1fcmVnaXN0ZXJl
ZFNjaGVtZXNNdXRleDsKKyAgICBMb2NrIG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleDsKIAogICAg
IHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmV0YWluUHRyPFdLQ3VzdG9tUHJvdG9jb2w+PiBD
dXN0b21Qcm90b2NvbE1hcDsKICAgICBDdXN0b21Qcm90b2NvbE1hcCBtX2N1c3RvbVByb3RvY29s
TWFwOwotICAgIE11dGV4IG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleDsKKyAgICBMb2NrIG1fY3Vz
dG9tUHJvdG9jb2xNYXBNdXRleDsKICAgICAKICAgICAvLyBXS0N1c3RvbVByb3RvY29sIG9iamVj
dHMgY2FuIGJlIHJlbW92ZWQgZnJvbSB0aGUgbV9jdXN0b21Qcm90b2NvbE1hcCBmcm9tIG11bHRp
cGxlIHRocmVhZHMuCiAgICAgLy8gV2UgcmV0dXJuIGEgUmV0YWluUHRyIGhlcmUgYmVjYXVzZSBp
dCBpcyB1bnNhZmUgdG8gcmV0dXJuIGEgcmF3IHBvaW50ZXIgc2luY2UgdGhlIG9iamVjdCBtaWdo
dCBpbW1lZGlhdGVseSBiZSBkZXN0cm95ZWQgZnJvbSBhIGRpZmZlcmVudCB0aHJlYWQuCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
U2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3RvY29sTWFuYWdl
ckNvY29hLm1tCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0
d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0J
KHdvcmtpbmcgY29weSkKQEAgLTE2NSwyOCArMTY1LDI4IEBAIHZvaWQgQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyOjppbml0aWFsaXplKGMKIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjphZGRDdXN0
b21Qcm90b2NvbChXS0N1c3RvbVByb3RvY29sICpjdXN0b21Qcm90b2NvbCkKIHsKICAgICBBU1NF
UlQoY3VzdG9tUHJvdG9jb2wpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2N1c3RvbVByb3Rv
Y29sTWFwTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xNYXBN
dXRleCk7CiAgICAgbV9jdXN0b21Qcm90b2NvbE1hcC5hZGQoY3VzdG9tUHJvdG9jb2wuY3VzdG9t
UHJvdG9jb2xJRCwgY3VzdG9tUHJvdG9jb2wpOwogfQogCiB2b2lkIEN1c3RvbVByb3RvY29sTWFu
YWdlcjo6cmVtb3ZlQ3VzdG9tUHJvdG9jb2woV0tDdXN0b21Qcm90b2NvbCAqY3VzdG9tUHJvdG9j
b2wpCiB7CiAgICAgQVNTRVJUKGN1c3RvbVByb3RvY29sKTsKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2N1
c3RvbVByb3RvY29sTWFwTXV0ZXgpOwogICAgIG1fY3VzdG9tUHJvdG9jb2xNYXAucmVtb3ZlKGN1
c3RvbVByb3RvY29sLmN1c3RvbVByb3RvY29sSUQpOwogfQogICAgIAogdm9pZCBDdXN0b21Qcm90
b2NvbE1hbmFnZXI6OnJlZ2lzdGVyU2NoZW1lKGNvbnN0IFN0cmluZyYgc2NoZW1lKQogewogICAg
IEFTU0VSVCghc2NoZW1lLmlzTnVsbCgpKTsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9yZWdp
c3RlcmVkU2NoZW1lc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3JlZ2lzdGVyZWRT
Y2hlbWVzTXV0ZXgpOwogICAgIG1fcmVnaXN0ZXJlZFNjaGVtZXMuYWRkKHNjaGVtZSk7CiB9CiAg
ICAgCiB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6dW5yZWdpc3RlclNjaGVtZShjb25zdCBT
dHJpbmcmIHNjaGVtZSkKIHsKICAgICBBU1NFUlQoIXNjaGVtZS5pc051bGwoKSk7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKICAgICBtX3JlZ2lzdGVyZWRTY2hl
bWVzLnJlbW92ZShzY2hlbWUpOwogfQogCkBAIC0xOTUsNyArMTk1LDcgQEAgYm9vbCBDdXN0b21Q
cm90b2NvbE1hbmFnZXI6OnN1cHBvcnRzU2NoZQogICAgIGlmIChzY2hlbWUuaXNOdWxsKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3JlZ2lzdGVy
ZWRTY2hlbWVzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVt
ZXNNdXRleCk7CiAgICAgcmV0dXJuIG1fcmVnaXN0ZXJlZFNjaGVtZXMuY29udGFpbnMoc2NoZW1l
KTsKIH0KIApAQCAtMjc1LDcgKzI3NSw3IEBAICAgICBpZiAoIXByb3RvY29sKQogCiBSZXRhaW5Q
dHI8V0tDdXN0b21Qcm90b2NvbD4gQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpwcm90b2NvbEZvcklE
KHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
Y3VzdG9tUHJvdG9jb2xNYXBNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9jdXN0b21Q
cm90b2NvbE1hcE11dGV4KTsKIAogICAgIEN1c3RvbVByb3RvY29sTWFwOjpjb25zdF9pdGVyYXRv
ciBpdCA9IG1fY3VzdG9tUHJvdG9jb2xNYXAuZmluZChjdXN0b21Qcm90b2NvbElEKTsKICAgICBp
ZiAoaXQgPT0gbV9jdXN0b21Qcm90b2NvbE1hcC5lbmQoKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRlcnMvU2VjY29tcEJy
b2tlci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51
eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUs
NyArNjUsNyBAQCBwcml2YXRlOgogCiAgICAgaW50IG1fc29ja2V0OwogCi0gICAgbXV0YWJsZSBN
dXRleCBtX3NvY2tldExvY2s7CisgICAgbXV0YWJsZSBMb2NrIG1fc29ja2V0TG9jazsKIAogICAg
IC8vIE1hcHMgZmlsZXMgdGhhdCBtYXkgYmUgcmVhZCBieSBtYWxsb2MoKSB0byBvcGVuIGZpbGUg
ZGVzY3JpcHRvcnMuCiAgICAgSGFzaE1hcDxTdHJpbmcsIGludD4gbV9maWxlRGVzY3JpcHRvckNh
Y2hlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4Niw3
IEBAIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKiBQbHVnaW5Qcm9jZXNzQ28KICAgICBtX3BsdWdp
blByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQocGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOwogCiAg
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90b2tlbnNBbmRDb25uZWN0aW9uc011
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90b2tlbnNBbmRDb25uZWN0aW9uc011
dGV4KTsKICAgICAgICAgQVNTRVJUKCFtX3Rva2Vuc0FuZENvbm5lY3Rpb25zLmNvbnRhaW5zKHBs
dWdpblByb2Nlc3NUb2tlbikpOwogCiAgICAgICAgIG1fdG9rZW5zQW5kQ29ubmVjdGlvbnMuc2V0
KHBsdWdpblByb2Nlc3NUb2tlbiwgcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24o
KSk7CkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXI6OnJlbQogICAgIEFTU0VSVCh2ZWN0b3JJbmRleCAhPSBub3RGb3VuZCk7CiAKICAgICB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXgpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXgpOwog
ICAgICAgICBBU1NFUlQobV90b2tlbnNBbmRDb25uZWN0aW9ucy5jb250YWlucyhwbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi0+cGx1Z2luUHJvY2Vzc1Rva2VuKCkpKTsKICAgICAgICAgCiAgICAgICAg
IG1fdG9rZW5zQW5kQ29ubmVjdGlvbnMucmVtb3ZlKHBsdWdpblByb2Nlc3NDb25uZWN0aW9uLT5w
bHVnaW5Qcm9jZXNzVG9rZW4oKSk7CkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXI6OnJlbQogCiB2b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
TWFuYWdlcjo6cGx1Z2luUHJvY2Vzc0NyYXNoZWQodWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2Vu
KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdG9rZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7CiAg
ICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uID0gbV90b2tlbnNBbmRDb25uZWN0aW9ucy5n
ZXQocGx1Z2luUHJvY2Vzc1Rva2VuKTsKIAogICAgIC8vIEl0J3MgT0sgZm9yIGNvbm5lY3Rpb24g
dG8gYmUgbnVsbCBoZXJlOyBpdCB3aWxsIGhhcHBlbiBpZiB0aGlzIHdlYiBwcm9jZXNzIGRvZXNu
J3Qga25vdwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaAkocmV2aXNp
b24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBA
IHByaXZhdGU6CiAKICAgICBWZWN0b3I8UmVmUHRyPFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPj4g
bV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbnM7CiAKLSAgICBNdXRleCBtX3Rva2Vuc0FuZENvbm5l
Y3Rpb25zTXV0ZXg7CisgICAgTG9jayBtX3Rva2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXg7CiAgICAg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4+IG1fdG9rZW5zQW5kQ29u
bmVjdGlvbnM7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAgRXZlbnREaXNwYXRjaGVyOjp+RXZlbnREaXNwYXRj
aGVyKCkKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogdm9pZCBFdmVudERpc3BhdGNoZXI6
OmFkZFNjcm9sbGluZ1RyZWVGb3JQYWdlKFdlYlBhZ2UqIHdlYlBhZ2UpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKIAogICAgIEFTU0VSVCh3ZWJQYWdlLT5jb3JlUGFn
ZSgpLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKTsKICAgICBBU1NFUlQoIW1fc2Nyb2xsaW5nVHJl
ZXMuY29udGFpbnMod2ViUGFnZS0+cGFnZUlEKCkpKTsKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBF
dmVudERpc3BhdGNoZXI6OmFkZFNjcm9sbGluZ1RyZWVGbwogCiB2b2lkIEV2ZW50RGlzcGF0Y2hl
cjo6cmVtb3ZlU2Nyb2xsaW5nVHJlZUZvclBhZ2UoV2ViUGFnZSogd2ViUGFnZSkKIHsKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOwogICAgIEFTU0VSVChtX3Njcm9sbGluZ1Ry
ZWVzLmNvbnRhaW5zKHdlYlBhZ2UtPnBhZ2VJRCgpKSk7CiAKICAgICBtX3Njcm9sbGluZ1RyZWVz
LnJlbW92ZSh3ZWJQYWdlLT5wYWdlSUQoKSk7CkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBFdmVu
dERpc3BhdGNoZXI6OndoZWVsRXZlbnQodWludDY0XwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKQotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CiAgICAg
aWYgKFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHNjcm9sbGluZ1RyZWUgPSBtX3Njcm9s
bGluZ1RyZWVzLmdldChwYWdlSUQpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBJdCdzIHByZXR0eSBo
b3JyaWJsZSB0aGF0IHdlJ3JlIHVwZGF0aW5nIHRoZSBiYWNrL2ZvcndhcmQgc3RhdGUgaGVyZS4K
ICAgICAgICAgLy8gV2ViQ29yZSBzaG91bGQgYWx3YXlzIGtub3cgdGhlIGN1cnJlbnQgc3RhdGUg
YW5kIGtub3cgd2hlbiBpdCBjaGFuZ2VzIHNvIHRoZQpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAkocmV2aXNpb24gMTg4
NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgUmVmPFdv
cmtRdWV1ZT4gbV9xdWV1ZTsKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0gICAgTXV0
ZXggbV9zY3JvbGxpbmdUcmVlc011dGV4OworICAgIExvY2sgbV9zY3JvbGxpbmdUcmVlc011dGV4
OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGlu
Z1RyZWU+PiBtX3Njcm9sbGluZ1RyZWVzOwogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OldoZWVsRXZlbnREZWx0YVRyYWNrZXI+IG1fcmVjZW50V2hlZWxFdmVudERlbHRhVHJh
Y2tlcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVx
dWVzdElucHV0U3RyZWFtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElu
cHV0U3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBzdHJ1Y3QgX1dl
YktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Qcml2CiAgICAgdWludDY0X3QgYnl0ZXNSZWNlaXZl
ZDsKICAgICB1aW50NjRfdCBieXRlc1JlYWQ7CiAKLSAgICBNdXRleCByZWFkTG9jazsKKyAgICBM
b2NrIHJlYWRMb2NrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1JlYWREYXRhPiBwZW5kaW5n
QXN5bmNSZWFkOwogfTsKIApAQCAtODQsNyArODQsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRTb3Vw
UmVxdWVzdElucHV0U3RyZWFtCiAgICAgV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbSogc3Ry
ZWFtID0gV0VCS0lUX1NPVVBfUkVRVUVTVF9JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0pOwogICAg
IEdSZWZQdHI8R1Rhc2s+IHRhc2sgPSBhZG9wdEdSZWYoZ190YXNrX25ldyhzdHJlYW0sIGNhbmNl
bGxhYmxlLCBjYWxsYmFjaywgdXNlckRhdGEpKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihz
dHJlYW0tPnByaXYtPnJlYWRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihzdHJlYW0tPnBy
aXYtPnJlYWRMb2NrKTsKIAogICAgIGlmICghd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUhh
c0RhdGFUb1JlYWQoc3RyZWFtKSAmJiAhd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUlzV2Fp
dGluZ0ZvckRhdGEoc3RyZWFtKSkgewogICAgICAgICBnX3Rhc2tfcmV0dXJuX2ludCh0YXNrLmdl
dCgpLCAwKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCB2b2lkIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRT
dHJlYW1BZGREYXRhCiAgICAgaWYgKHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1GaW5pc2hl
ZChzdHJlYW0pKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIoc3Ry
ZWFtLT5wcml2LT5yZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIoc3RyZWFtLT5wcml2
LT5yZWFkTG9jayk7CiAKICAgICBpZiAoZGF0YUxlbmd0aCkgewogICAgICAgICAvLyBUcnVuY2F0
ZSB0aGUgZGF0YUxlbmd0aCB0byB0aGUgY29udGVudExlbmd0aCBpZiBpdCdzIGtub3duLgpJbmRl
eDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8
ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBv
ZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6c3luY1RpbWVyRmlyZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjptYXJrSW1wb3J0ZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6U3RvcmFnZUFyZWFTeW5jOjpibG9ja1VudGlsSW1wb3J0Q29tcGxldGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtU3luYyk6CisgICAgICAgICogU3RvcmFn
ZS9TdG9yYWdlQXJlYVN5bmMuaDoKKyAgICAgICAgKiBTdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzZXREYXRhYmFzZURpcmVjdG9y
eVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmZpbmlzaGVkSW1wb3J0
aW5nT3JpZ2luSWRlbnRpZmllcnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6
OnN5bmNJbXBvcnRPcmlnaW5JZGVudGlmaWVycyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdl
VHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U3RvcmFnZVRyYWNrZXI6OnNldE9yaWdpbkRldGFpbHMpOgorICAgICAgICAoV2ViQ29y
ZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWxzKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0b3JhZ2VUcmFja2VyOjpvcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VU
cmFja2VyOjpkZWxldGVBbGxPcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFj
a2VyOjpzeW5jRGVsZXRlQWxsT3JpZ2lucyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJh
Y2tlcjo6ZGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpz
eW5jRGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpjYW5E
ZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmNhbmNlbERl
bGV0aW5nT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpkaXNrVXNh
Z2VGb3JPcmlnaW4pOgorICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaDoKKwogMjAx
NS0wOC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFtXaW4gQ01ha2VdIEFsbG93IFdlYktpdExpYnJhcmllcyBkaXJlY3RvcnkgdG8gYmUg
c2V0IGZyb20gdGhlIGNvbW1hbmQgbGluZQpJbmRleDogU291cmNlL1dlYktpdC9TdG9yYWdlL1N0
b3JhZ2VBcmVhU3luYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TdG9yYWdlL1N0
b3JhZ2VBcmVhU3luYy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvU3Rv
cmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQsNyArMTY0LDcg
QEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnN5bmNUaW1lckZpcmVkKCkKIAogICAgIGJvb2wgcGFy
dGlhbFN5bmMgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5
bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAKICAgICAg
ICAgLy8gRG8gbm90IHNjaGVkdWxlIGFub3RoZXIgc3luYyBpZiB3ZSdyZSBzdGlsbCB0cnlpbmcg
dG8gY29tcGxldGUgdGhlCiAgICAgICAgIC8vIHByZXZpb3VzIG9uZS4gQnV0LCBpZiB3ZSdyZSBz
aHV0dGluZyBkb3duLCBzY2hlZHVsZSBpdCBhbnl3YXkuCkBAIC0zNTIsOSArMzUyLDkgQEAgdm9p
ZCBTdG9yYWdlQXJlYVN5bmM6OnBlcmZvcm1JbXBvcnQoKQogCiB2b2lkIFN0b3JhZ2VBcmVhU3lu
Yzo6bWFya0ltcG9ydGVkKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9pbXBvcnRMb2Nr
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2ltcG9ydExvY2spOwogICAgIG1faW1wb3J0Q29t
cGxldGUgPSB0cnVlOwotICAgIG1faW1wb3J0Q29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1faW1w
b3J0Q29uZGl0aW9uLm5vdGlmeU9uZSgpOwogfQogCiAvLyBGSVhNRTogSW4gdGhlIGZ1dHVyZSwg
d2Ugc2hvdWxkIGFsbG93IHVzZSBvZiBTdG9yYWdlQXJlYXMgd2hpbGUgaXQncyBpbXBvcnRpbmcg
KHdoZW4gc2FmZSB0byBkbyBzbykuCkBAIC0zNzIsNyArMzcyLDcgQEAgdm9pZCBTdG9yYWdlQXJl
YVN5bmM6OmJsb2NrVW50aWxJbXBvcnRDbwogICAgIGlmICghbV9zdG9yYWdlQXJlYSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW1wb3J0TG9jayk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9pbXBvcnRMb2NrKTsKICAgICB3aGlsZSAoIW1faW1wb3J0Q29t
cGxldGUpCiAgICAgICAgIG1faW1wb3J0Q29uZGl0aW9uLndhaXQobV9pbXBvcnRMb2NrKTsKICAg
ICBtX3N0b3JhZ2VBcmVhID0gbnVsbHB0cjsKQEAgLTQ2Nyw3ICs0NjcsNyBAQCB2b2lkIFN0b3Jh
Z2VBcmVhU3luYzo6cGVyZm9ybVN5bmMoKQogICAgIGJvb2wgY2xlYXJJdGVtczsKICAgICBIYXNo
TWFwPFN0cmluZywgU3RyaW5nPiBpdGVtczsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7
CiAKICAgICAgICAgQVNTRVJUKG1fc3luY1NjaGVkdWxlZCk7CiAKQEAgLTQ4Miw3ICs0ODIsNyBA
QCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMoKQogICAgIHN5bmMoY2xlYXJJdGVt
cywgaXRlbXMpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9j
ayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgICAgICBtX3N5
bmNJblByb2dyZXNzID0gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1N0b3Jh
Z2UvU3RvcmFnZUFyZWFTeW5jLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TdG9yYWdl
L1N0b3JhZ2VBcmVhU3luYy5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L1N0
b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAK
IAogI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlRGF0YWJhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1RpbWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC04NSw3ICs4Niw3
IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBTdHJpbmcgbV9kYXRhYmFzZUlkZW50aWZpZXI7CiAK
LSAgICBNdXRleCBtX3N5bmNMb2NrOworICAgIExvY2sgbV9zeW5jTG9jazsKICAgICBIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiBtX2l0ZW1zUGVuZGluZ1N5bmM7CiAgICAgYm9vbCBtX2NsZWFySXRl
bXNXaGlsZVN5bmNpbmc7CiAgICAgYm9vbCBtX3N5bmNTY2hlZHVsZWQ7CkBAIC05NCw4ICs5NSw4
IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fc3luY0Nsb3NlRGF0YWJhc2U7CiAKLSAgICBtdXRh
YmxlIE11dGV4IG1faW1wb3J0TG9jazsKLSAgICBUaHJlYWRDb25kaXRpb24gbV9pbXBvcnRDb25k
aXRpb247CisgICAgbXV0YWJsZSBMb2NrIG1faW1wb3J0TG9jazsKKyAgICBDb25kaXRpb24gbV9p
bXBvcnRDb25kaXRpb247CiAgICAgYm9vbCBtX2ltcG9ydENvbXBsZXRlOwogICAgIHZvaWQgbWFy
a0ltcG9ydGVkKCk7CiAgICAgdm9pZCBtaWdyYXRlSXRlbVRhYmxlSWZOZWVkZWQoKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAkocmV2aXNpb24gMTg4NTY5
KQorKysgU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIFN0b3JhZ2VUcmFja2VyOjpTdG9yYWdlVHJhY2tlcihj
b25zdCBTdHIKIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRo
KGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFz
ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOwogCiAgICAg
aWYgKG1fZGF0YWJhc2UuaXNPcGVuKCkpCiAgICAgICAgIG1fZGF0YWJhc2UuY2xvc2UoKTsKQEAg
LTEwOCw3ICsxMDgsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzZXREYXRhYmFzZURpcmVjdG9y
CiAgICAgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aCA9IHBhdGguaXNvbGF0ZWRDb3B5KCk7CiAKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgIG1fb3JpZ2lu
U2V0LmNsZWFyKCk7CiAgICAgfQogCkBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBTdG9yYWdlVHJh
Y2tlcjo6aW1wb3J0T3JpZ2luSWRlbnRpZgogCiB2b2lkIFN0b3JhZ2VUcmFja2VyOjpmaW5pc2hl
ZEltcG9ydGluZ09yaWdpbklkZW50aWZpZXJzKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgp
OwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPmRpZEZpbmlzaExvYWRpbmdP
cmlnaW5zKCk7CiB9CkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3lu
Y0ltcG9ydE9yaWdpbklkZQogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKIAogICAgICAgICAvLyBEb24ndCBmb3Jj
ZSBjcmVhdGlvbiBvZiBTdG9yYWdlVHJhY2tlcidzIGRiIGp1c3QgYmVjYXVzZSBhIHRyYWNrZXIK
ICAgICAgICAgLy8gd2FzIGluaXRpYWxpemVkLiBJdCB3aWxsIGJlIGNyZWF0ZWQgaWYgbG9jYWwg
c3RvcmFnZSBkYnMgYXJlIGZvdW5kCkBAIC0yMTcsNyArMjE3LDcgQEAgdm9pZCBTdG9yYWdlVHJh
Y2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgICAgICAgICAgaW50IHJlc3VsdDsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tP
cmlnaW5zKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9j
a09yaWdpbnMobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgICAgICAgICAgd2hpbGUgKChyZXN1
bHQgPSBzdGF0ZW1lbnQuc3RlcCgpKSA9PSBTUUxJVEVfUk9XKQogICAgICAgICAgICAgICAgICAg
ICBtX29yaWdpblNldC5hZGQoc3RhdGVtZW50LmdldENvbHVtblRleHQoMCkuaXNvbGF0ZWRDb3B5
KCkpOwogICAgICAgICAgICAgfQpAQCAtMjMyLDEwICsyMzIsMTAgQEAgdm9pZCBTdG9yYWdlVHJh
Y2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgIHN5bmNGaWxlU3lzdGVtQW5kVHJhY2tlckRh
dGFiYXNlKCk7CiAgICAgCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9jbGll
bnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgpOwogCiAg
ICAgICAgIGlmIChtX2NsaWVudCkgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
b3JpZ2luU2V0TXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5T
ZXRNdXRleCk7CiAgICAgICAgICAgICBPcmlnaW5TZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1f
b3JpZ2luU2V0LmVuZCgpOwogICAgICAgICAgICAgZm9yIChPcmlnaW5TZXQ6OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gbV9vcmlnaW5TZXQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICAg
ICAgICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZE1vZGlmeU9yaWdpbigqaXQpOwpAQCAtMjU3LDcg
KzI1Nyw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVtQW5kVHIKIAogICAg
IFZlY3RvcjxTdHJpbmc+IHBhdGhzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fZGF0YWJhc2VNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VN
dXRleCk7CiAgICAgICAgIHBhdGhzID0gbGlzdERpcmVjdG9yeShtX3N0b3JhZ2VEaXJlY3RvcnlQ
YXRoLCAiKi5sb2NhbHN0b3JhZ2UiKTsKICAgICB9CiAKQEAgLTI2NSw3ICsyNjUsNyBAQCB2b2lk
IFN0b3JhZ2VUcmFja2VyOjpzeW5jRmlsZVN5c3RlbUFuZFRyCiAgICAgLy8gZGVsZXRpb25zIGZy
b20gZGlzayBhbmQgZnJvbSBtX29yaWdpblNldC4KICAgICBPcmlnaW5TZXQgb3JpZ2luU2V0Q29w
eTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgIGZv
ciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fb3JpZ2luU2V0LmJlZ2luKCksIGVu
ZCA9IG1fb3JpZ2luU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICBvcmln
aW5TZXRDb3B5LmFkZCgoKml0KS5pc29sYXRlZENvcHkoKSk7CiAgICAgfQpAQCAtMzA2LDcgKzMw
Niw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnNldE9yaWdpbkRldGFpbHMoY28KICAgICAgICAg
cmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRN
dXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogCiAg
ICAgICAgIGlmIChtX29yaWdpblNldC5jb250YWlucyhvcmlnaW5JZGVudGlmaWVyKSkKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTMzNyw3ICszMzcsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpz
eW5jU2V0T3JpZ2luRGV0YWlsCiAKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRv
Q291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9k
YXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOwog
CiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZSh0cnVlKTsKICAgICAKQEAgLTM1NywxMyArMzU3LDEz
IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWwKICAgICAgICAgTE9H
X0VSUk9SKCJVbmFibGUgdG8gZXN0YWJsaXNoIG9yaWdpbiAnJXMnIGluIHRoZSB0cmFja2VyIiwg
b3JpZ2luSWRlbnRpZmllci5hc2NpaSgpLmRhdGEoKSk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgIGlmICghbV9vcmlnaW5TZXQuY29udGFpbnMo
b3JpZ2luSWRlbnRpZmllcikpCiAgICAgICAgICAgICBtX29yaWdpblNldC5hZGQob3JpZ2luSWRl
bnRpZmllcik7CiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9j
bGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgpOwog
ICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRN
b2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpAQCAtMzc2LDcgKzM3Niw3IEBA
IHZvaWQgU3RvcmFnZVRyYWNrZXI6Om9yaWdpbnMoVmVjdG9yPFJlZlAKICAgICBpZiAoIW1faXNB
Y3RpdmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdp
blNldE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKIAog
ICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fb3JpZ2luU2V0LmJlZ2lu
KCksIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIo
Kml0KSk7CkBAIC0zOTIsNyArMzkyLDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6ZGVsZXRlQWxs
T3JpZ2lucygpCiAgICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29y
aWdpblNldE11dGV4KTsKICAgICAgICAgd2lsbERlbGV0ZUFsbE9yaWdpbnMoKTsKICAgICAgICAg
bV9vcmlnaW5TZXQuY2xlYXIoKTsKICAgICB9CkBAIC00MTcsNyArNDE3LDcgQEAgdm9pZCBTdG9y
YWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9yaWdpbgogCiAgICAgU1FMaXRlVHJhbnNhY3Rpb25J
blByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogICAgIAotICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
ZGF0YWJhc2VNdXRleCk7CiAgICAgCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShmYWxzZSk7CiAg
ICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQgU3Rv
cmFnZVRyYWNrZXI6OnN5bmNEZWxldGVBbGxPcmlnaW4KICAgICAgICAgZGVsZXRlRmlsZShzdGF0
ZW1lbnQuZ2V0Q29sdW1uVGV4dCgxKSk7CiAKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9jbGllbnRNdXRleCk7CiAgICAgICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAg
ICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkTW9kaWZ5T3JpZ2luKHN0YXRlbWVudC5nZXRDb2x1
bW5UZXh0KDApKTsKICAgICAgICAgfQpAQCAtNDk5LDcgKzQ5OSw3IEBAIHZvaWQgU3RvcmFnZVRy
YWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cmkKICAgICBTdHJpbmcgb3JpZ2luSWQgPSBvcmlnaW4t
PmRhdGFiYXNlSWRlbnRpZmllcigpOwogICAgIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29y
aWdpblNldE11dGV4KTsKICAgICAgICAgd2lsbERlbGV0ZU9yaWdpbihvcmlnaW5JZCk7CiAgICAg
ICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5JZCk7CiAgICAgfQpAQCAtNTE2LDcgKzUxNiw3
IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4oY28KIAogICAgIFNRTGl0
ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291bnRlcjsKIAot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgCiAgICAgaWYgKCFjYW5EZWxldGVPcmlnaW4o
b3JpZ2luSWRlbnRpZmllcikpIHsKICAgICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0ZWQgdG8gZGVs
ZXRlIG9yaWdpbiAnJXMnIHdoaWxlIGl0IHdhcyBiZWluZyBjcmVhdGVkXG4iLCBvcmlnaW5JZGVu
dGlmaWVyLmFzY2lpKCkuZGF0YSgpKTsKQEAgLTU0OSw3ICs1NDksNyBAQCB2b2lkIFN0b3JhZ2VU
cmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKGNvCiAgICAgCiAgICAgYm9vbCBzaG91bGREZWxldGVU
cmFja2VyRmlsZXMgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRN
dXRleCk7CiAgICAgICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5JZGVudGlmaWVyKTsKICAg
ICAgICAgc2hvdWxkRGVsZXRlVHJhY2tlckZpbGVzID0gbV9vcmlnaW5TZXQuaXNFbXB0eSgpOwog
ICAgIH0KQEAgLTU2Niw3ICs1NjYsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRl
T3JpZ2luKGNvCiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9j
bGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgpOwog
ICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRN
b2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpAQCAtNTkyLDcgKzU5Miw3IEBA
IHZvaWQgU3RvcmFnZVRyYWNrZXI6OndpbGxEZWxldGVPcmlnaW4oY28KIGJvb2wgU3RvcmFnZVRy
YWNrZXI6OmNhbkRlbGV0ZU9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCiB7
CiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlTXV0ZXgudHJ5TG9jaygpKTsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmln
aW5TZXRNdXRleCk7CiAgICAgcmV0dXJuIG1fb3JpZ2luc0JlaW5nRGVsZXRlZC5jb250YWlucyhv
cmlnaW5JZGVudGlmaWVyKTsKIH0KIApAQCAtNjAxLDkgKzYwMSw5IEBAIHZvaWQgU3RvcmFnZVRy
YWNrZXI6OmNhbmNlbERlbGV0aW5nT3JpZ2kKICAgICBpZiAoIW1faXNBY3RpdmUpCiAgICAgICAg
IHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgewotICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICBpZiAoIW1fb3JpZ2luc0JlaW5nRGVsZXRl
ZC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBtX29yaWdpbnNCZWluZ0RlbGV0ZWQucmVtb3ZlKG9y
aWdpbklkZW50aWZpZXIpOwogICAgIH0KQEAgLTY0Nyw3ICs2NDcsNyBAQCBsb25nIGxvbmcgU3Rv
cmFnZVRyYWNrZXI6OmRpc2tVc2FnZUZvck9yCiAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAg
ICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAKICAgICBTdHJpbmcgcGF0
aCA9IGRhdGFiYXNlUGF0aEZvck9yaWdpbihvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpKTsK
ICAgICBpZiAocGF0aC5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3Rv
cmFnZVRyYWNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFn
ZVRyYWNrZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9TdG9yYWdlL1N0
b3JhZ2VUcmFja2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDE1ICs5NSwxNSBAQCBwcml2YXRl
OgogICAgIHZvaWQgc3luY0ltcG9ydE9yaWdpbklkZW50aWZpZXJzKCk7CiAKICAgICAvLyBNdXRl
eCBmb3IgbV9kYXRhYmFzZSBhbmQgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC4KLSAgICBNdXRleCBt
X2RhdGFiYXNlTXV0ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlTXV0ZXg7CiAgICAgU1FMaXRlRGF0
YWJhc2UgbV9kYXRhYmFzZTsKICAgICBTdHJpbmcgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aDsKIAot
ICAgIE11dGV4IG1fY2xpZW50TXV0ZXg7CisgICAgTG9jayBtX2NsaWVudE11dGV4OwogICAgIFN0
b3JhZ2VUcmFja2VyQ2xpZW50KiBtX2NsaWVudDsKIAogICAgIC8vIEd1YXJkIGZvciBtX29yaWdp
blNldCBhbmQgbV9vcmlnaW5zQmVpbmdEZWxldGVkLgotICAgIE11dGV4IG1fb3JpZ2luU2V0TXV0
ZXg7CisgICAgTG9jayBtX29yaWdpblNldE11dGV4OwogICAgIHR5cGVkZWYgSGFzaFNldDxTdHJp
bmc+IE9yaWdpblNldDsKICAgICBPcmlnaW5TZXQgbV9vcmlnaW5TZXQ7CiAgICAgT3JpZ2luU2V0
IG1fb3JpZ2luc0JlaW5nRGVsZXRlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE4IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+
CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3aXRo
IFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbToKKyAgICAgICAg
KFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2spOgorICAgICAgICAoLVtXZWJGaXhlZFBv
c2l0aW9uQ29udGVudCBzY3JvbGxPclpvb21DaGFuZ2VkOl0pOgorICAgICAgICAoLVtXZWJGaXhl
ZFBvc2l0aW9uQ29udGVudCBvdmVyZmxvd1Njcm9sbFBvc2l0aW9uRm9yTGF5ZXI6Y2hhbmdlZFRv
Ol0pOgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBzZXRWaWV3cG9ydENvbnN0
cmFpbmVkTGF5ZXJzOnN0aWNreUNvbnRhaW5lck1hcDpdKToKKyAgICAgICAgKC1bV2ViRml4ZWRQ
b3NpdGlvbkNvbnRlbnQgaGFzRml4ZWRPclN0aWNreVBvc2l0aW9uTGF5ZXJzXSk6CisgICAgICAg
ICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IG1pbmltdW1PZmZzZXRGcm9tRml4ZWRQb3NpdGlv
bkxheWVyc1RvQW5jaG9yRWRnZTpvZlJlY3Q6aW5MYXllcjpdKToKKwogMjAxNS0wOC0xMyAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBh
bmQgaW1wcm92ZSBUZXh0SW5kaWNhdG9yIHRvIHByZXBhcmUgZm9yIHRlc3RzCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBv
c2l0aW9uQ29udGVudC5tbQkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9pb3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0JKHdvcmtpbmcgY29weSkK
QEAgLTQ4LDkgKzQ4LDkgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIAotc3RhdGljIE11dGV4JiBXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2Nr
KCkKK3N0YXRpYyBMb2NrJiBXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIG11dGV4LCAoKSk7CiAgICAgcmV0
dXJuIG11dGV4OwogfQogCkBAIC0xMDEsNyArMTAxLDcgQEAgLSAodm9pZClkZWFsbG9jCiAKIC0g
KHZvaWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dSZWN0KXBvc2l0aW9uZWRPYmplY3RzUmVjdAog
ewotICAgIE11dGV4TG9ja2VyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygp
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygp
KTsKIAogICAgIExheWVySW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gX3ByaXZhdGUtPm1f
dmlld3BvcnRDb25zdHJhaW5lZExheWVycy5lbmQoKTsKICAgICBmb3IgKExheWVySW5mb01hcDo6
Y29uc3RfaXRlcmF0b3IgaXQgPSBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJz
LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewpAQCAtMTQwLDcgKzE0MCw3IEBAIC0gKHZvaWQp
c2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dSZWN0KXBvc2kKIAogLSAodm9pZClvdmVyZmxvd1Njcm9s
bFBvc2l0aW9uRm9yTGF5ZXI6KENBTGF5ZXIgKilzY3JvbGxMYXllciBjaGFuZ2VkVG86KENHUG9p
bnQpc2Nyb2xsUG9zaXRpb24KIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZpeGVkUG9zaXRp
b25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZpeGVkUG9zaXRp
b25Db250ZW50RGF0YUxvY2soKSk7CiAKICAgICBMYXllckluZm9NYXA6OmNvbnN0X2l0ZXJhdG9y
IGVuZCA9IF9wcml2YXRlLT5tX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuZW5kKCk7CiAgICAg
Zm9yIChMYXllckluZm9NYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gX3ByaXZhdGUtPm1fdmlld3Bv
cnRDb25zdHJhaW5lZExheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKQEAgLTE3Myw3
ICsxNzMsNyBAQCAtICh2b2lkKWRpZEZpbmlzaFNjcm9sbGluZ09yWm9vbWluZwogCiAtICh2b2lk
KXNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6KFdURjo6SGFzaE1hcDxDQUxheWVyICosIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpWaWV3cG9ydENvbnN0cmFpbnRzPj4mKWxheWVyTWFwIHN0
aWNreUNvbnRhaW5lck1hcDooV1RGOjpIYXNoTWFwPENBTGF5ZXIqLCBDQUxheWVyKj4mKXN0aWNr
eUNvbnRhaW5lcnMKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZpeGVkUG9zaXRpb25Db250
ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZpeGVkUG9zaXRpb25Db250
ZW50RGF0YUxvY2soKSk7CiAKICAgICBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5
ZXJzLmNsZWFyKCk7CiAKQEAgLTE5MCw3ICsxOTAsNyBAQCAtICh2b2lkKXNldFZpZXdwb3J0Q29u
c3RyYWluZWRMYXllcnM6KFdUCiAKIC0gKEJPT0wpaGFzRml4ZWRPclN0aWNreVBvc2l0aW9uTGF5
ZXJzCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFM
b2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFM
b2NrKCkpOwogICAgIHJldHVybiAhX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVy
cy5pc0VtcHR5KCk7CiB9CiAKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgVmlld3BvcnRDb25z
dHJhaW50czo6QW5jaG9yRWRnZUZsCiAKIC0gKENHRmxvYXQpbWluaW11bU9mZnNldEZyb21GaXhl
ZFBvc2l0aW9uTGF5ZXJzVG9BbmNob3JFZGdlOihXZWJGaXhlZFBvc2l0aW9uQW5jaG9yRWRnZSlh
bmNob3JFZGdlIG9mUmVjdDooQ0dSZWN0KXJlY3QgaW5MYXllcjooQ0FMYXllciAqKWxheWVyCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkp
OworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkp
OwogICAgIFZpZXdwb3J0Q29uc3RyYWludHM6OkFuY2hvckVkZ2VGbGFncyBhbmNob3JFZGdlRmxh
Z3MgPSBhbmNob3JFZGdlRmxhZ3NGb3JBbmNob3JFZGdlKGFuY2hvckVkZ2UpOwogICAgIENHRmxv
YXQgbWluaW11bU9mZnNldCA9IENHRkxPQVRfTUFYOwogICAgIExheWVySW5mb01hcDo6Y29uc3Rf
aXRlcmF0b3IgZW5kID0gX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5lbmQo
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA4
LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBh
bGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRhdGFi
YXNlTWFuYWdlci5tbToKKyAgICAgICAgKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlm
aWVyTG9jayk6CisgICAgICAgICgrW1dlYkRhdGFiYXNlTWFuYWdlciBzdGFydEJhY2tncm91bmRU
YXNrXSk6CisgICAgICAgICgrW1dlYkRhdGFiYXNlTWFuYWdlciBlbmRCYWNrZ3JvdW5kVGFza10p
OgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfc3lu
Y2hyb25pemVDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdF0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdEluV2ViVGhyZWFkOnN5bmNocm9u
aXplOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0
UmVjdDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZmV0Y2hDdXN0b21GaXhlZFBvc2l0aW9uTGF5
b3V0UmVjdDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisKIDIwMTUtMDgt
MTMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gRG93
bmxvYWRzIGRvIG5vdCBzdGFydCBpZiBwb2xpY3kgZGVjaXNpb24gaXMgbWFkZSBhc3luY2hyb25v
dXNseQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1h
bmFnZXIubW0JKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2Uv
V2ViRGF0YWJhc2VNYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYsOSArMjI2LDkgQEAg
KyAodm9pZClzY2hlZHVsZUVtcHR5RGF0YWJhc2VSZW1vdmFsCiAjaWYgUExBVEZPUk0oSU9TKQog
QGltcGxlbWVudGF0aW9uIFdlYkRhdGFiYXNlTWFuYWdlciAoV2ViRGF0YWJhc2VNYW5hZ2VySW50
ZXJuYWwpCiAKLXN0YXRpYyBNdXRleCYgdHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZp
ZXJMb2NrKCkKK3N0YXRpYyBMb2NrJiB0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmll
ckxvY2soKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0
ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgbXV0ZXgs
ICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCArICh2b2lk
KWRpZEZpbmlzaExhc3RUcmFuc2FjdGlvbgogCiArICh2b2lkKXN0YXJ0QmFja2dyb3VuZFRhc2sK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlm
aWVyTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFz
a0lkZW50aWZpZXJMb2NrKCkpOwogCiAgICAgLy8gSWYgdGhlcmUncyBhbHJlYWR5IGFuIGV4aXN0
aW5nIGJhY2tncm91bmQgdGFzayBnb2luZyBvbiwgdGhlcmUncyBubyBuZWVkIHRvIHN0YXJ0IGEg
bmV3IG9uZS4KICAgICBpZiAoZ2V0VHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXIo
KSAhPSBpbnZhbGlkV2ViQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyKCkpCkBAIC0yNzUsNyArMjc1
LDcgQEAgKyAodm9pZClzdGFydEJhY2tncm91bmRUYXNrCiAKICsgKHZvaWQpZW5kQmFja2dyb3Vu
ZFRhc2sKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJ
ZGVudGlmaWVyTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rpb25CYWNrZ3Jv
dW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOwogCiAgICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCB3
ZSB3ZXJlIHVuYWJsZSB0byBzdGFydCB0aGUgYmFja2dyb3VuZCB0YXNrIHdoZW4gdGhlIGZpcnN0
IHRyYW5zYWN0aW9uIGJlZ2FuLgogICAgIC8vIERvbid0IHRyeSB0byBlbmQgdGhlIHRhc2sgaW4g
dGhhdCBjYXNlLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNp
b24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNjMyLDcgKzM2MzIsNyBAQCAtICh2b2lkKV9zeW5jaHJvbml6ZUN1c3Rv
bUZpeGVkUG9zaXRpb25MCiAKICAgICBJbnRSZWN0IG5ld1JlY3Q7CiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVj
dE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhl
ZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKICAgICAgICAgaWYgKENHUmVjdElzTnVsbChfcHJp
dmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KSkKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgbmV3UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoX3ByaXZhdGUtPnBlbmRpbmdG
aXhlZFBvc2l0aW9uTGF5b3V0UmVjdCk7CkBAIC0zNjQ2LDcgKzM2NDYsNyBAQCAtICh2b2lkKV9z
eW5jaHJvbml6ZUN1c3RvbUZpeGVkUG9zaXRpb25MCiAtICh2b2lkKV9zZXRDdXN0b21GaXhlZFBv
c2l0aW9uTGF5b3V0UmVjdEluV2ViVGhyZWFkOihDR1JlY3QpcmVjdCBzeW5jaHJvbml6ZTooQk9P
TClzeW5jaHJvbml6ZQogewogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKF9wcml2
YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRl
eCk7CiAgICAgICAgIF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3QgPSBy
ZWN0OwogICAgIH0KICAgICBpZiAoIXN5bmNocm9uaXplKQpAQCAtMzY2MCw3ICszNjYwLDcgQEAg
LSAodm9pZClfc2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlYwogewogICAgIEFTU0VSVChX
ZWJUaHJlYWRJc0xvY2tlZCgpKTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihf
cHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0
TXV0ZXgpOwogICAgICAgICBfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0
ID0gcmVjdDsKICAgICB9CiAgICAgW3NlbGYgX3N5bmNocm9uaXplQ3VzdG9tRml4ZWRQb3NpdGlv
bkxheW91dFJlY3RdOwpAQCAtMzY2OCw3ICszNjY4LDcgQEAgLSAodm9pZClfc2V0Q3VzdG9tRml4
ZWRQb3NpdGlvbkxheW91dFJlYwogCiAtIChCT09MKV9mZXRjaEN1c3RvbUZpeGVkUG9zaXRpb25M
YXlvdXRSZWN0OihOU1JlY3QqKXJlY3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIoX3ByaXZh
dGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOwog
ICAgIGlmIChDR1JlY3RJc051bGwoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0
UmVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlld0RhdGEuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksNyArMjQ5LDcg
QEAgQGludGVyZmFjZSBXZWJWaWV3UHJpdmF0ZSA6IE5TT2JqZWN0IHsKICAgICBDR1NpemUgZml4
ZWRMYXlvdXRTaXplOwogICAgIEJPT0wgbWFpblZpZXdJc1Njcm9sbGluZ09yWm9vbWluZzsKICAg
ICBpbnQzMl90IGRpZERyYXdUaWxlczsKLSAgICBXVEY6Ok11dGV4IHBlbmRpbmdGaXhlZFBvc2l0
aW9uTGF5b3V0UmVjdE11dGV4OworICAgIFdURjo6TG9jayBwZW5kaW5nRml4ZWRQb3NpdGlvbkxh
eW91dFJlY3RNdXRleDsKICAgICBDR1JlY3QgcGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0
OwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jawor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbHVnaW5z
L1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
TWFpblRocmVhZFNjaGVkdWxlcjo6c2NoZWR1bGVDYWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnJlZ2lzdGVyUGx1Z2luKToKKyAgICAgICAgKFdlYkNv
cmU6OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnVucmVnaXN0ZXJQbHVnaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6ZGlzcGF0Y2hDYWxsc0ZvclBs
dWdpbik6CisgICAgICAgICogUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmg6Cisg
ICAgICAgICogV2ViSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkljb25EYXRhYmFzZTo6
ZGlkUmVtb3ZlQWxsSWNvbnMpOgorICAgICAgICAoV2ViSWNvbkRhdGFiYXNlOjpkaWRJbXBvcnRJ
Y29uVVJMRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJJY29uRGF0YWJhc2U6OmRlbGl2ZXJOb3Rp
ZmljYXRpb25zKToKKyAgICAgICAgKiBXZWJJY29uRGF0YWJhc2UuaDoKKyAgICAgICAgKiBXZWJM
b2NhbGl6YWJsZVN0cmluZ3MuY3BwOgorICAgICAgICAobWFpbkJ1bmRsZUxvY1N0cmluZ3MpOgor
ICAgICAgICAoZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KToKKyAgICAgICAgKGZpbmRDYWNoZWRT
dHJpbmcpOgorICAgICAgICAoY2FjaGVTdHJpbmcpOgorCiAyMDE1LTA4LTE3ICBQZXIgQXJuZSBW
b2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIEFjY2VsZXJh
dGVkIGNvbXBvc2l0aW5nIGRvZXMgbm90IHJlc3BlY3QgZGV2aWNlIHNjYWxlIGZhY3Rvci4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIwLDE0ICszMjAsMTQgQEAgSEJJVE1BUCBXZWJJY29uRGF0YWJhc2U6OmdldE9yQ3JlYXRl
RGVmYQogdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJlbW92ZUFsbEljb25zKCkKIHsKICAgICAv
LyBRdWV1ZWluZyB0aGUgZW1wdHkgc3RyaW5nIGlzIGEgc3BlY2lhbCB3YXkgb2Ygc2F5aW5nICJ0
aGlzIHF1ZXVlZCBub3RpZmljYXRpb24gaXMgdGhlIGRpZFJlbW92ZUFsbEljb25zIG5vdGlmaWNh
dGlvbiIKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9ub3RpZmljYXRpb25NdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9ub3RpZmljYXRpb25NdXRleCk7CiAgICAgbV9ub3RpZmljYXRp
b25RdWV1ZS5hcHBlbmQoU3RyaW5nKCkpOwogICAgIHNjaGVkdWxlTm90aWZpY2F0aW9uRGVsaXZl
cnkoKTsKIH0KIAogdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZEltcG9ydEljb25VUkxGb3JQYWdl
VVJMKGNvbnN0IFdURjo6U3RyaW5nJiBwYWdlVVJMKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX25vdGlmaWNhdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25vdGlmaWNh
dGlvbk11dGV4KTsKICAgICBtX25vdGlmaWNhdGlvblF1ZXVlLmFwcGVuZChwYWdlVVJMLmlzb2xh
dGVkQ29weSgpKTsKICAgICBzY2hlZHVsZU5vdGlmaWNhdGlvbkRlbGl2ZXJ5KCk7CiB9CkBAIC00
MDMsNyArNDAzLDcgQEAgdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRlbGl2ZXJOb3RpZmljYXRpbwog
CiAgICAgVmVjdG9yPFN0cmluZz4gcXVldWU7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9zaGFyZWRXZWJJY29uRGF0YWJhc2UtPm1fbm90aWZpY2F0aW9uTXV0ZXgpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NoYXJlZFdlYkljb25EYXRhYmFzZS0+bV9ub3RpZmlj
YXRpb25NdXRleCk7CiAgICAgICAgIHF1ZXVlLnN3YXAobV9zaGFyZWRXZWJJY29uRGF0YWJhc2Ut
Pm1fbm90aWZpY2F0aW9uUXVldWUpOwogICAgICAgICBtX3NoYXJlZFdlYkljb25EYXRhYmFzZS0+
bV9kZWxpdmVyeVJlcXVlc3RlZCA9IGZhbHNlOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
d2luL1dlYkljb25EYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dl
Ykljb25EYXRhYmFzZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9X
ZWJJY29uRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDcgKzExNiw3IEBAIHByb3Rl
Y3RlZDoKICAgICBIYXNoTWFwPEludFNpemUsIEhCSVRNQVA+IG1fZGVmYXVsdEljb25NYXA7CiAg
ICAgSGFzaE1hcDxJbnRTaXplLCBIQklUTUFQPiBtX3NoYXJlZEljb25NYXA7CiAKLSAgICBNdXRl
eCBtX25vdGlmaWNhdGlvbk11dGV4OworICAgIExvY2sgbV9ub3RpZmljYXRpb25NdXRleDsKICAg
ICBWZWN0b3I8U3RyaW5nPiBtX25vdGlmaWNhdGlvblF1ZXVlOwogICAgIHZvaWQgc2NoZWR1bGVO
b3RpZmljYXRpb25EZWxpdmVyeSgpOwogICAgIGJvb2wgbV9kZWxpdmVyeVJlcXVlc3RlZDsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcAkocmV2aXNp
b24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDQsOSArNDQsOSBAQCBXZWJMb2NhbGl6YWJsZVN0cmluZ3NC
dW5kbGUgV2ViS2l0TG9jYWxpCiAKIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIExvY2FsaXplZFN0
cmluZyo+IExvY2FsaXplZFN0cmluZ01hcDsKIAotc3RhdGljIE11dGV4JiBtYWluQnVuZGxlTG9j
U3RyaW5nc011dGV4KCkKK3N0YXRpYyBMb2NrJiBtYWluQnVuZGxlTG9jU3RyaW5nc011dGV4KCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIG11dGV4LCAoKSk7CiAg
ICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC01Niw5ICs1Niw5IEBAIHN0YXRpYyBMb2NhbGl6ZWRT
dHJpbmdNYXAmIG1haW5CdW5kbGVMb2MKICAgICByZXR1cm4gbWFwOwogfQogCi1zdGF0aWMgTXV0
ZXgmIGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpCitzdGF0aWMgTG9jayYgZnJhbWV3b3JrTG9j
U3RyaW5nc011dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0
ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ss
IG11dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xNzUsMTIgKzE3NSwxMiBA
QCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29weUxvY2FsaXplZFN0cmluZ0ZyCiBzdGF0aWMgTG9jYWxp
emVkU3RyaW5nKiBmaW5kQ2FjaGVkU3RyaW5nKFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRsZSog
c3RyaW5nc0J1bmRsZSwgY29uc3QgU3RyaW5nJiBrZXkpCiB7CiAgICAgaWYgKCFzdHJpbmdzQnVu
ZGxlKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRl
eCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgo
KSk7CiAgICAgICAgIHJldHVybiBtYWluQnVuZGxlTG9jU3RyaW5ncygpLmdldChrZXkpOwogICAg
IH0KIAogICAgIGlmIChzdHJpbmdzQnVuZGxlLT5idW5kbGUgPT0gV2ViS2l0TG9jYWxpemFibGVT
dHJpbmdzQnVuZGxlLmJ1bmRsZSkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKGZyYW1ld29y
a0xvY1N0cmluZ3NNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKGZyYW1ld29ya0xv
Y1N0cmluZ3NNdXRleCgpKTsKICAgICAgICAgcmV0dXJuIGZyYW1ld29ya0xvY1N0cmluZ3MoKS5n
ZXQoa2V5KTsKICAgICB9CiAKQEAgLTE5MCwxMiArMTkwLDEyIEBAIHN0YXRpYyBMb2NhbGl6ZWRT
dHJpbmcqIGZpbmRDYWNoZWRTdHJpbmcKIHN0YXRpYyB2b2lkIGNhY2hlU3RyaW5nKFdlYkxvY2Fs
aXphYmxlU3RyaW5nc0J1bmRsZSogc3RyaW5nc0J1bmRsZSwgY29uc3QgU3RyaW5nJiBrZXksIExv
Y2FsaXplZFN0cmluZyogdmFsdWUpCiB7CiAgICAgaWYgKCFzdHJpbmdzQnVuZGxlKSB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2sobWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgpKTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgoKSk7CiAgICAgICAg
IG1haW5CdW5kbGVMb2NTdHJpbmdzKCkuc2V0KGtleSwgdmFsdWUpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhmcmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgo
KSk7CisgICAgTG9ja0hvbGRlciBsb2NrKGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsKICAg
ICBmcmFtZXdvcmtMb2NTdHJpbmdzKCkuc2V0KGtleSwgdmFsdWUpOwogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMv
UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQy
LDcgQEAgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6UGx1Z2luTWFpblRocgogCiB2b2lkIFBs
dWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlQ2FsbChOUFAgbnBwLCBNYWluVGhyZWFk
RnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQqIHVzZXJEYXRhKQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKIAog
ICAgIENhbGxRdWV1ZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2NhbGxRdWV1ZU1hcC5maW5kKG5wcCk7
CiAgICAgaWYgKGl0ID09IG1fY2FsbFF1ZXVlTWFwLmVuZCgpKQpAQCAtNTgsNyArNTgsNyBAQCB2
b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlCiAKIHZvaWQgUGx1Z2luTWFp
blRocmVhZFNjaGVkdWxlcjo6cmVnaXN0ZXJQbHVnaW4oTlBQIG5wcCkKIHsKLSAgICBNdXRleExv
Y2tlciBsb2NrKG1fcXVldWVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fcXVldWVNdXRl
eCk7CiAKICAgICBBU1NFUlQoIW1fY2FsbFF1ZXVlTWFwLmNvbnRhaW5zKG5wcCkpOwogICAgIG1f
Y2FsbFF1ZXVlTWFwLnNldChucHAsIERlcXVlPENhbGw+KCkpOwpAQCAtNjYsNyArNjYsNyBAQCB2
b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnJlZ2lzdGVyCiAKIHZvaWQgUGx1Z2luTWFp
blRocmVhZFNjaGVkdWxlcjo6dW5yZWdpc3RlclBsdWdpbihOUFAgbnBwKQogewotICAgIE11dGV4
TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11
dGV4KTsKIAogICAgIEFTU0VSVChtX2NhbGxRdWV1ZU1hcC5jb250YWlucyhucHApKTsKICAgICBt
X2NhbGxRdWV1ZU1hcC5yZW1vdmUobnBwKTsKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBQbHVnaW5N
YWluVGhyZWFkU2NoZWR1bGVyOjpkaXNwYXRjaAogICAgIGZvciAoYXV0byYgY2FsbCA6IGNhbGxz
KSB7CiAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBwbHVnLWluIGhhcyBiZWVuIGRlc3Ryb3llZC4K
ICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwor
ICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fcXVldWVNdXRleCk7CiAgICAgICAgICAgICBp
ZiAoIW1fY2FsbFF1ZXVlTWFwLmNvbnRhaW5zKG5wcCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbk1haW5U
aHJlYWRTY2hlZHVsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5z
L1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9jYWxsUGVuZGlu
ZzsKICAgICBDYWxsUXVldWVNYXAgbV9jYWxsUXVldWVNYXA7Ci0gICAgTXV0ZXggbV9xdWV1ZU11
dGV4OworICAgIExvY2sgbV9xdWV1ZU11dGV4OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwko
cmV2aXNpb24gMTg4NTY5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGgg
V1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwOgorICAgICAgICAoamF2
YVNjcmlwdFRocmVhZHNNdXRleCk6CisgICAgICAgIChydW5KYXZhU2NyaXB0VGhyZWFkKToKKyAg
ICAgICAgKHN0YXJ0SmF2YVNjcmlwdFRocmVhZHMpOgorICAgICAgICAoc3RvcEphdmFTY3JpcHRU
aHJlYWRzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3Bw
OiBGaXhlZCBhIGJ1ZyBpbiB0aGUgdGVzdCB0aGF0IEkgZm91bmQgZnJvbSB0dXJuaW5nIHRoZSB0
ZXN0IGludG8gYSBiZW5jaG1hcmsuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
V29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNS0wOC0xNyAgTXlsZXMgQy4gTWF4ZmllbGQg
IDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtPUyBYXSBSZW1vdmUgc3VwcG9ydCBm
b3IgY29tcG9zaXRlIGZvbnRzCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0
VGhyZWFkaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2Ny
aXB0VGhyZWFkaW5nLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcg
QEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00NCw5ICs0NSw5IEBAIHN0YXRpYyBjb25zdCBzaXpl
X3QgamF2YVNjcmlwdFRocmVhZHNDb3UKIHN0YXRpYyBib29sIGphdmFTY3JpcHRUaHJlYWRzU2hv
dWxkVGVybWluYXRlOwogc3RhdGljIEpTQ29udGV4dEdyb3VwUmVmIGphdmFTY3JpcHRUaHJlYWRz
R3JvdXA7CiAKLXN0YXRpYyBNdXRleCYgamF2YVNjcmlwdFRocmVhZHNNdXRleCgpCitzdGF0aWMg
TG9jayYgamF2YVNjcmlwdFRocmVhZHNNdXRleCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKE11dGV4LCBzdGF0aWNNdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChMb2NrLCBzdGF0aWNNdXRleCwgKCkpOwogICAgIHJldHVybiBzdGF0
aWNNdXRleDsKIH0KIApAQCAtNzAsMjYgKzcxLDI2IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVh
ZCh2b2lkKikKIAogICAgIEpTR2xvYmFsQ29udGV4dFJlZiBjdHg7CiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgY3R4ID0g
SlNHbG9iYWxDb250ZXh0Q3JlYXRlSW5Hcm91cChqYXZhU2NyaXB0VGhyZWFkc0dyb3VwLCAwKTsK
ICAgICB9CiAKICAgICBKU1N0cmluZ1JlZiBzY3JpcHRSZWY7CiAgICAgewotICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgc2NyaXB0UmVm
ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0KTsKICAgICB9CiAKICAgICB3
aGlsZSAodHJ1ZSkgewogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
amF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgICAgICAgICBKU1ZhbHVlUmVmIGV4Y2Vw
dGlvbiA9IDA7CiAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGN0eCwgc2NyaXB0UmVmLCAw
LCAwLCAxLCAmZXhjZXB0aW9uKTsKICAgICAgICAgICAgIEFTU0VSVCghZXhjZXB0aW9uKTsKICAg
ICAgICAgfQogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZh
U2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2
YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgICAgIGNvbnN0IHNpemVfdCB2YWx1ZXND
b3VudCA9IDEwMjQ7CiAgICAgICAgICAgICBKU1ZhbHVlUmVmIHZhbHVlc1t2YWx1ZXNDb3VudF07
CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVlc0NvdW50OyArK2kpCkBA
IC05Nyw3ICs5OCw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikKICAgICAgICAg
fQogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0
VGhyZWFkc011dGV4KCkpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlw
dFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgICAgIGlmIChqYXZhU2NyaXB0VGhyZWFkc1Nob3Vs
ZFRlcm1pbmF0ZSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTA2LDcg
KzEwNyw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikKICAgICAgICAgaWYgKHJh
bmQoKSAlIDUpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgVGhyZWFkSWRlbnRpZmllciB0
aHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7CiAgICAgICAgIGRldGFjaFRocmVhZCh0aHJlYWQpOwog
ICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLnJlbW92ZSh0aHJlYWQpOwpAQCAtMTE0LDcgKzEx
NSw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICBK
U1N0cmluZ1JlbGVhc2Uoc2NyaXB0UmVmKTsKICAgICBKU0dhcmJhZ2VDb2xsZWN0KGN0eCk7CiAg
ICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShjdHgpOwpAQCAtMTI0LDcgKzEyNSw3IEBAIHZvaWQg
c3RhcnRKYXZhU2NyaXB0VGhyZWFkcygpCiB7CiAgICAgamF2YVNjcmlwdFRocmVhZHNHcm91cCA9
IEpTQ29udGV4dEdyb3VwQ3JlYXRlKCk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNj
cmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhy
ZWFkc011dGV4KCkpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBqYXZhU2NyaXB0VGhy
ZWFkc0NvdW50OyArK2kpCiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkuYWRkKGNyZWF0ZVRo
cmVhZCgmcnVuSmF2YVNjcmlwdFRocmVhZCwgMCwgMCkpOwpAQCAtMTMzLDEzICsxMzQsMTMgQEAg
dm9pZCBzdGFydEphdmFTY3JpcHRUaHJlYWRzKCkKIHZvaWQgc3RvcEphdmFTY3JpcHRUaHJlYWRz
KCkKIHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFk
c011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011
dGV4KCkpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkc1Nob3VsZFRlcm1pbmF0ZSA9IHRydWU7
CiAgICAgfQogCiAgICAgVmVjdG9yPFRocmVhZElkZW50aWZpZXIsIGphdmFTY3JpcHRUaHJlYWRz
Q291bnQ+IHRocmVhZHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNj
cmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlw
dFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgY29weVRvVmVjdG9yKGphdmFTY3JpcHRUaHJlYWRz
KCksIHRocmVhZHMpOwogICAgICAgICBBU1NFUlQodGhyZWFkcy5zaXplKCkgPT0gamF2YVNjcmlw
dFRocmVhZHNDb3VudCk7CiAgICAgfQpAQCAtMTQ4LDcgKzE0OSw3IEBAIHZvaWQgc3RvcEphdmFT
Y3JpcHRUaHJlYWRzKCkKICAgICAgICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24odGhyZWFkc1tp
XSk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFk
c011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011
dGV4KCkpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmNsZWFyKCk7CiAgICAgfQogCklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIHJ1blRlc3QoCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhc2hvdWxkQ29udGludWUgfHwgIXF1
ZXVlLmlzRW1wdHkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRpbWVvdXQpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCFzaG91bGRDb250aW51ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc2hvdWxkQ29u
dGludWUgJiYgcXVldWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZE5vdGlmeSA9IHF1ZXVlLnNpemUo
KSA9PSBtYXhRdWV1ZVNpemU7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBxdWV1
ZS50YWtlRmlyc3QoKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtR
dWV1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29y
a1F1ZXVlLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvV29ya1F1ZXVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiVGVzdC5oIgorI2luY2x1ZGUgPHd0Zi9Db25k
aXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CiAjaW5jbHVkZSA8c3RyaW5nPgpAQCAtNDAsOCAr
NDIsOCBAQCBzdGF0aWMgY29uc3QgY2hhciogZGlzcGF0Y2hBZnRlckxhYmVsID0gCiAgICAgCiBU
RVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKIHsKLSAgICBNdXRleCBtX2xvY2s7Ci0gICAgVGhy
ZWFkQ29uZGl0aW9uIG1fdGVzdENvbXBsZXRlZDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBDb25k
aXRpb24gbV90ZXN0Q29tcGxldGVkOwogICAgIFZlY3RvcjxzdGQ6OnN0cmluZz4gbV9mdW5jdGlv
bkNhbGxPcmRlcjsKIAogICAgIGJvb2wgY2FsbGVkU2ltcGxlVGVzdCA9IGZhbHNlOwpAQCAtNTYs
NyArNTgsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICBpbnQgaW5pdGlhbFJl
ZkNvdW50ID0gcXVldWUtPnJlZkNvdW50KCk7CiAgICAgRVhQRUNUX0VRKDEsIGluaXRpYWxSZWZD
b3VudCk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX2xvY2spOwogICAgIHF1ZXVlLT5kaXNwYXRjaChbJl0odm9pZCkgewogICAgICAg
ICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZChzaW1wbGVUZXN0TGFiZWwpOwogICAgICAgICBj
YWxsZWRTaW1wbGVUZXN0ID0gdHJ1ZTsKQEAgLTY5LDcgKzcxLDcgQEAgVEVTVChXVEZfV29ya1F1
ZXVlLCBTaW1wbGUpCiAgICAgfSk7CiAKICAgICBxdWV1ZS0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsK
LSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fbG9jayk7CiAgICAgICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIuYXBwZW5kKHRoaXJk
VGVzdExhYmVsKTsKICAgICAgICAgY2FsbGVkVGhpcmRUZXN0ID0gdHJ1ZTsKIApAQCAtNzcsNyAr
NzksNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICAgICAgRVhQRUNUX1RSVUUo
Y2FsbGVkTG9uZ1Rlc3QpOwogICAgICAgICBFWFBFQ1RfVFJVRShjYWxsZWRUaGlyZFRlc3QpOwog
ICAgICAgICAKLSAgICAgICAgbV90ZXN0Q29tcGxldGVkLnNpZ25hbCgpOworICAgICAgICBtX3Rl
c3RDb21wbGV0ZWQubm90aWZ5T25lKCk7CiAgICAgfSk7CiAKICAgICBFWFBFQ1RfR1QocXVldWUt
PnJlZkNvdW50KCksIDEpOwpAQCAtOTYsOCArOTgsOCBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFNp
bXBsZSkKIAogVEVTVChXVEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMpCiB7Ci0gICAgTXV0ZXggbV9s
b2NrOwotICAgIFRocmVhZENvbmRpdGlvbiBtX3Rlc3RRdWV1ZTFDb21wbGV0ZWQsIG1fdGVzdFF1
ZXVlMkNvbXBsZXRlZDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBDb25kaXRpb24gbV90ZXN0UXVl
dWUxQ29tcGxldGVkLCBtX3Rlc3RRdWV1ZTJDb21wbGV0ZWQ7CiAgICAgVmVjdG9yPHN0ZDo6c3Ry
aW5nPiBtX2Z1bmN0aW9uQ2FsbE9yZGVyOwogCiAgICAgYm9vbCBjYWxsZWRTaW1wbGVUZXN0ID0g
ZmFsc2U7CkBAIC0xMTAsNyArMTEyLDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMp
CiAgICAgRVhQRUNUX0VRKDEsIHF1ZXVlMS0+cmVmQ291bnQoKSk7CiAgICAgRVhQRUNUX0VRKDEs
IHF1ZXVlMi0+cmVmQ291bnQoKSk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgIAogICAgIHF1ZXVlMS0+ZGlzcGF0
Y2goWyZdKHZvaWQpIHsKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQoc2ltcGxl
VGVzdExhYmVsKTsKQEAgLTEyMCwyMiArMTIyLDIyIEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgVHdv
UXVldWVzKQogICAgIHF1ZXVlMi0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKICAgICAgICAgc3RkOjp0
aGlzX3RocmVhZDo6c2xlZXBfZm9yKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTApKTsKIAot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9sb2NrKTsKIAogICAgICAgICAvLyBXaWxsIGZhaWwgaWYgcXVldWUyIHRvb2sgdGhl
IG11dGV4IGJlZm9yZSBxdWV1ZTEuCiAgICAgICAgIEVYUEVDVF9UUlVFKGNhbGxlZFRoaXJkVGVz
dCk7CiAKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQobG9uZ1Rlc3RMYWJlbCk7
CiAgICAgICAgIGNhbGxlZExvbmdUZXN0ID0gdHJ1ZTsKLSAgICAgICAgbV90ZXN0UXVldWUyQ29t
cGxldGVkLnNpZ25hbCgpOworICAgICAgICBtX3Rlc3RRdWV1ZTJDb21wbGV0ZWQubm90aWZ5T25l
KCk7CiAgICAgfSk7CiAKICAgICBxdWV1ZTEtPmRpc3BhdGNoKFsmXSh2b2lkKSB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X2xvY2spOwogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZCh0aGlyZFRlc3RMYWJl
bCk7CiAgICAgICAgIGNhbGxlZFRoaXJkVGVzdCA9IHRydWU7CiAgICAgICAgIAotICAgICAgICBt
X3Rlc3RRdWV1ZTFDb21wbGV0ZWQuc2lnbmFsKCk7CisgICAgICAgIG1fdGVzdFF1ZXVlMUNvbXBs
ZXRlZC5ub3RpZnlPbmUoKTsKICAgICB9KTsKIAogICAgIG1fdGVzdFF1ZXVlMUNvbXBsZXRlZC53
YWl0KG1fbG9jayk7CkBAIC0xNTgsOCArMTYwLDggQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBUd29R
dWV1ZXMpCiAKIFRFU1QoV1RGX1dvcmtRdWV1ZSwgRGlzcGF0Y2hBZnRlcikKIHsKLSAgICBNdXRl
eCBtX2xvY2s7Ci0gICAgVGhyZWFkQ29uZGl0aW9uIG1fdGVzdENvbXBsZXRlZCwgbV9kaXNwYXRj
aEFmdGVyVGVzdENvbXBsZXRlZDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBDb25kaXRpb24gbV90
ZXN0Q29tcGxldGVkLCBtX2Rpc3BhdGNoQWZ0ZXJUZXN0Q29tcGxldGVkOwogICAgIFZlY3Rvcjxz
dGQ6OnN0cmluZz4gbV9mdW5jdGlvbkNhbGxPcmRlcjsKIAogICAgIGJvb2wgY2FsbGVkU2ltcGxl
VGVzdCA9IGZhbHNlOwpAQCAtMTY3LDIwICsxNjksMjAgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBE
aXNwYXRjaEFmdGVyKQogCiAgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20u
YXBwbGUuV2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRlciIpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fbG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKIAogICAgIHF1ZXVl
LT5kaXNwYXRjaChbJl0odm9pZCkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2Nr
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgbV9mdW5jdGlv
bkNhbGxPcmRlci5hcHBlbmQoc2ltcGxlVGVzdExhYmVsKTsKICAgICAgICAgY2FsbGVkU2ltcGxl
VGVzdCA9IHRydWU7Ci0gICAgICAgIG1fdGVzdENvbXBsZXRlZC5zaWduYWwoKTsKKyAgICAgICAg
bV90ZXN0Q29tcGxldGVkLm5vdGlmeU9uZSgpOwogICAgIH0pOwogCiAgICAgcXVldWUtPmRpc3Bh
dGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApLCBbJl0odm9pZCkgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9sb2NrKTsKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQoZGlzcGF0Y2hB
ZnRlckxhYmVsKTsKICAgICAgICAgY2FsbGVkRGlzcGF0Y2hBZnRlclRlc3QgPSB0cnVlOwotICAg
ICAgICBtX2Rpc3BhdGNoQWZ0ZXJUZXN0Q29tcGxldGVkLnNpZ25hbCgpOworICAgICAgICBtX2Rp
c3BhdGNoQWZ0ZXJUZXN0Q29tcGxldGVkLm5vdGlmeU9uZSgpOwogICAgIH0pOwogCiAgICAgbV90
ZXN0Q29tcGxldGVkLndhaXQobV9sb2NrKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAkocmV2aXNpb24gMTg4NTY5
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CiBURVNUKFdURl9Xb3JrUXVldWUsIEFzeW5jSU8pCiB7CiAgICAgc3RydWN0IFRlc3RpbmdD
b250ZXh0IHsKLSAgICAgICAgTXV0ZXggbV9sb2NrOworICAgICAgICBMb2NrIG1fbG9jazsKICAg
ICAgICAgVGhyZWFkQ29uZGl0aW9uIG1fdGVzdENvbXBsZXRlZDsKICAgICAgICAgR01haW5Db250
ZXh0KiBtX21haW5Db250ZXh0OwogICAgIH0gY29udGV4dDsKQEAgLTQ5LDcgKzQ5LDcgQEAgVEVT
VChXVEZfV29ya1F1ZXVlLCBBc3luY0lPKQogICAgIEdVbmlxdWVQdHI8Y2hhcj4gY3VycmVudERp
cmVjdG9yeShnX2dldF9jdXJyZW50X2RpcigpKTsKICAgICBHUmVmUHRyPEdGaWxlPiBmaWxlID0g
YWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgoY3VycmVudERpcmVjdG9yeS5nZXQoKSkpOwog
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGNvbnRleHQubV9sb2NrKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihjb250ZXh0Lm1fbG9jayk7CiAgICAgcXVldWUtPmRpc3BhdGNoKFsmXSh2b2lkKSB7
CiAgICAgICAgIEVYUEVDVF9UUlVFKGdfbWFpbl9jb250ZXh0X2dldF90aHJlYWRfZGVmYXVsdCgp
KTsKICAgICAgICAgRVhQRUNUX1RSVUUoZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0
KCkgIT0gY29udGV4dC5tX21haW5Db250ZXh0KTsKQEAgLTU3LDcgKzU3LDcgQEAgVEVTVChXVEZf
V29ya1F1ZXVlLCBBc3luY0lPKQogICAgICAgICBnX2ZpbGVfcXVlcnlfaW5mb19hc3luYyhmaWxl
LmdldCgpLCBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX1NJWkUsIEdfRklMRV9RVUVSWV9JTkZP
X05PTkUsIEdfUFJJT1JJVFlfREVGQVVMVCwgbnVsbHB0ciwKICAgICAgICAgICAgIFtdKEdPYmpl
Y3QqLCBHQXN5bmNSZXN1bHQqLCBncG9pbnRlciB1c2VyRGF0YSkgewogICAgICAgICAgICAgICAg
IFRlc3RpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8VGVzdGluZ0NvbnRleHQqPih1
c2VyRGF0YSk7Ci0gICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGNvbnRleHQtPm1f
bG9jayk7CisgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoY29udGV4dC0+bV9sb2Nr
KTsKICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9k
ZWZhdWx0KCksIGNvbnRleHQtPm1fbWFpbkNvbnRleHQpOwogICAgICAgICAgICAgICAgIGNvbnRl
eHQtPm1fdGVzdENvbXBsZXRlZC5zaWduYWwoKTsKICAgICAgICAgICAgIH0sICZjb250ZXh0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259239</attachid>
            <date>2015-08-17 21:33:25 -0700</date>
            <delta_ts>2015-08-17 22:15:06 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>216284</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RG
OjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBhbHNvIGJlZWZzIHVwIGFuZCByYXRpb25hbGl6ZXMgdGhlIENv
bmRpdGlvbiBBUEksIHNvIHRoYXQgaXQgY2FuIGRlYWwgd2l0aCB1bml0cyBvZiB0aW1lCisgICAg
ICAgIG90aGVyIHRoYW4ganVzdCBzdGVhZHlfY2xvY2suIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRv
IHBvcnQgVGhyZWFkQ29uZGl0aW9uIGFuZAorICAgICAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJs
ZSBjb2RlIG92ZXIgdG8gQ29uZGl0aW9uLiBUaGlzIHBhdGNoIGRvZXMgbm90IHRha2UgYSBwb3Np
dGlvbiBvbiB3aGF0CisgICAgICAgIGtpbmQgb2YgdGltZSBpcyBiZXN0OyBmcm9tIHJlYWRpbmcg
YSBsb3Qgb2YgdGhlIHVzZXMgaW4gV2ViQ29yZSwgaXQgc2VlbXMgbGlrZSBvdXIgdXNlIG9mCisg
ICAgICAgIGRvdWJsZSB0byBtZWFzdXJlIHNlY29uZHMgaXMgb2Z0ZW4gbmljZXIgdGhhbiB0aGUg
bWFueSBkaWZmZXJlbnQgY2xhc3NlcyBpbiBzdGQ6OmNocm9uby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgQ29uZGl0aW9uIHNwZWVkIHRlc3QsIHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBvZiB0aGlz
IGlzIGEgZ29vZCBpZGVhLiBBbmQgaW5kZWVkIGl0CisgICAgICAgIGlzLiBUaGUgMS1wcm9kdWNl
ci8xLWNvbnN1bWVyIHNjZW5hcmlvIHdpdGggYSAxMDAtZWxlbWVudCBxdWV1ZSBydW5zIDM2eCBm
YXN0ZXIgdXNpbmcKKyAgICAgICAgTG9jay9Db25kaXRpb24gdGhhbiBNdXRleC9UaHJlYWRDb25k
aXRpb24gd2hlbiB5b3UgdXNlIHRoZSBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBzdHlsZS4gSXQK
KyAgICAgICAgcnVucyA1OHggZmFzdGVyIHdpdGggTG9jay9Db25kaXRpb24gd2hlbiB5b3UgdXNl
IHRoZSBub3RpZnlBbGwoKS1hdC1ib3VuZGFyeSBzdHlsZS4gTm90ZSB0aGF0CisgICAgICAgIEkg
aGF2ZSBhIGJ1ZyBvcGVuIGZvciBtYWtpbmcgdGhlIG5vdGlmeU9uZSgpLXBlci1lbnF1ZXVlIHN0
eWxlIGV2ZW4gZmFzdGVyOgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MDkwLiBBbHNvLCB0aGUgMTAtY29uc3VtZXIvMTAtcHJvZHVjZXIgc2NlbmFy
aW8gd2l0aAorICAgICAgICBhIDEwMC1lbGVtZW50IHF1ZXVlIHJ1bnMgMjB4IGZhc3RlciB3aXRo
IExvY2svQ29uZGl0aW9uIGZvciBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBhbmQgMzB4CisgICAg
ICAgIGZhc3RlciB3aXRoIG5vdGlmeUFsbCgpLWF0LWJvdW5kYXJ5LiBTbywgaXQgc2VlbXMgdGhh
dCByZXBsYWNpbmcgYWxsIHVzZXMgb2Ygc3lzdGVtIG11dGV4ZXMgYW5kCisgICAgICAgIGNvbmRp
dGlvbiB2YXJpYWJsZXMgd2l0aCBvdXIgb3duIHRoaW5nIGlzIGEgZ3JlYXQgaWRlYS4KKworICAg
ICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJr
cy9Db25kaXRpb25TcGVlZFRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvQ29uZGl0aW9u
Lmg6CisgICAgICAgIChXVEY6OkNvbmRpdGlvbjo6Q29uZGl0aW9uKToKKyAgICAgICAgKFdURjo6
Q29uZGl0aW9uOjp3YWl0VW50aWwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3Ip
OgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXQpOgorICAgICAgICAoV1RGOjpDb25kaXRp
b246OndhaXRVbnRpbFdhbGxDbG9ja1NlY29uZHMpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246
OndhaXRVbnRpbE1vbm90b25pY0Nsb2NrU2Vjb25kcyk6CisgICAgICAgIChXVEY6OkNvbmRpdGlv
bjo6bm90aWZ5T25lKToKKyAgICAgICAgKFdURjo6Q29uZGl0aW9uOjpub3RpZnlBbGwpOgorICAg
ICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3JTZWNvbmRzSW1wbCk6CisgICAgICAgIChXVEY6
OkNvbmRpdGlvbjo6d2FpdEZvckltcGwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OmFic29s
dXRlRnJvbVJlbGF0aXZlKToKKyAgICAgICAgKiB3dGYvTWVzc2FnZVF1ZXVlLmg6CisgICAgICAg
IChXVEY6Ok1lc3NhZ2VRdWV1ZTo6aW5maW5pdGVUaW1lKToKKyAgICAgICAgKFdURjo6TWVzc2Fn
ZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6YXBwZW5kQW5kS2lsbCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRh
VHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHkpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8
RGF0YVR5cGU+OjpwcmVwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBl
Pjo6cmVtb3ZlSWYpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojppc0Vt
cHR5KToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbCk6CisgICAg
ICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmtpbGxlZCk6CisgICAgICAgICogd3Rm
L1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25t
ZW50OjpUaHJlYWRQcml2YXRlOjpleGVjdXRlKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZp
cm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZpbmlzaCk6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCk6CisgICAgICAg
ICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaDoKKyAgICAgICAgKiB3dGYvUGFya2luZ0xvdC5j
cHA6CisgICAgICAgIChXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KToKKyAgICAg
ICAgKiB3dGYvUGFya2luZ0xvdC5oOgorICAgICAgICAoV1RGOjpQYXJraW5nTG90Ojpjb21wYXJl
QW5kUGFyayk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAg
KFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZyk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5j
cHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHd0Zi9k
dG9hLmNwcDoKKyAgICAgICAgKFdURjo6cG93NW11bHQpOgorICAgICAgICAqIHd0Zi9kdG9hLmg6
CisKIDIwMTUtMDgtMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBCdWlsZCBEZWJ1ZyBTdWZmaXggb24gV2luZG93cyB3aXRoIENNYWtlCklu
ZGV4OiBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKy8vIE9uIE1hYywgeW91IGNhbiBidWlsZCB0aGlzIGxp
a2Ugc286CisvLyBjbGFuZysrIC1vIENvbmRpdGlvblNwZWVkVGVzdCBTb3VyY2UvV1RGL2JlbmNo
bWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RGIC1MV2ViS2l0
QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vjb3JlIC1zdGQ9
YysrMTEKKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVk
ZSA8dGhyZWFkPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvRGF0YUxvZy5o
PgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJp
bWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIHsKKworY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisKK3Vuc2lnbmVkIG51bVByb2R1Y2VyczsKK3Vuc2ln
bmVkIG51bUNvbnN1bWVyczsKK3Vuc2lnbmVkIG1heFF1ZXVlU2l6ZTsKK3Vuc2lnbmVkIG51bU1l
c3NhZ2VzUGVyUHJvZHVjZXI7CisgICAgCitOT19SRVRVUk4gdm9pZCB1c2FnZSgpCit7CisgICAg
cHJpbnRmKCJVc2FnZTogQ29uZGl0aW9uU3BlZWRUZXN0IGxvY2t8bXV0ZXh8YWxsIDxudW0gcHJv
ZHVjZXJzPiA8bnVtIGNvbnN1bWVycz4gPG1heCBxdWV1ZSBzaXplPiA8bnVtIG1lc3NhZ2VzIHBl
ciBwcm9kdWNlcj5cbiIpOworICAgIGV4aXQoMSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0b3IsIHR5cGVuYW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIExvY2tUeXBlPgordm9pZCB3
YWl0KENvbmRpdGlvblR5cGUmIGNvbmRpdGlvbiwgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IEZ1bmN0
b3ImIHByZWRpY2F0ZSkKK3sKKyAgICB3aGlsZSAoIXByZWRpY2F0ZSgpKQorICAgICAgICBjb25k
aXRpb24ud2FpdChsb2NrKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVu
YW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIE5vdGlmeUZ1bmN0b3IsIHR5cGVuYW1lIE5vdGlm
eUFsbEZ1bmN0b3I+Cit2b2lkIHJ1blRlc3QoCisgICAgdW5zaWduZWQgbnVtUHJvZHVjZXJzLAor
ICAgIHVuc2lnbmVkIG51bUNvbnN1bWVycywKKyAgICB1bnNpZ25lZCBtYXhRdWV1ZVNpemUsCisg
ICAgdW5zaWduZWQgbnVtTWVzc2FnZXNQZXJQcm9kdWNlciwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIERlcXVlPHVuc2lnbmVkPiBxdWV1ZTsKKyAgICBib29sIHNob3VsZENvbnRpbnVlID0gdHJ1
ZTsKKyAgICBMb2NrVHlwZSBsb2NrOworICAgIENvbmRpdGlvblR5cGUgZW1wdHlDb25kaXRpb247
CisgICAgQ29uZGl0aW9uVHlwZSBmdWxsQ29uZGl0aW9uOworCisgICAgVmVjdG9yPFRocmVhZElk
ZW50aWZpZXI+IGNvbnN1bWVyVGhyZWFkczsKKyAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4g
cHJvZHVjZXJUaHJlYWRzOworCisgICAgVmVjdG9yPHVuc2lnbmVkPiByZWNlaXZlZDsKKyAgICBM
b2NrVHlwZSByZWNlaXZlZExvY2s7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29u
c3VtZXJzOyBpLS07KSB7CisgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmll
ciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAg
ICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbXVz
dE5vdGlmeSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB3YWl0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5
Q29uZGl0aW9uLCBsb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZyh0b1N0cmluZyhjdXJyZW50VGhyZWFkKCks
ICI6IENoZWNraW5nIGNvbnN1bXB0aW9uIHByZWRpY2F0ZSB3aXRoIHNob3VsZENvbnRpbnVlID0g
Iiwgc2hvdWxkQ29udGludWUsICIsIHF1ZXVlLnNpemUoKSA9PSAiLCBxdWV1ZS5zaXplKCksICJc
biIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFzaG91bGRDb250
aW51ZSB8fCAhcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSAmJiBxdWV1ZS5p
c0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgICAgICAgICAgbXVzdE5vdGlmeSA9IHF1ZXVlLnNpemUoKSA9PSBtYXhRdWV1ZVNpemU7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBxdWV1ZS50YWtlRmlyc3QoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBub3RpZnkoZnVsbENvbmRp
dGlvbiwgbXVzdE5vdGlmeSk7CisKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2tUeXBlPiBsb2NrZXIocmVjZWl2ZWRMb2Nr
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkLmFwcGVuZChyZXN1bHQpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7Cisg
ICAgICAgIGNvbnN1bWVyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmllcik7CisgICAgfQor
CisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtUHJvZHVjZXJzOyBpLS07KSB7CisgICAgICAgIFRo
cmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAg
ICAgICJQcm9kdWNlciBUaHJlYWQiLAorICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQZXJQcm9kdWNlcjsgKytp
KSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgbXVzdE5vdGlmeSA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2Nr
PExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxDb25kaXRpb24sIGxvY2ssCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKHRvU3RyaW5nKGN1cnJlbnRUaHJlYWQoKSwgIjogQ2hlY2tpbmcgcHJvZHVjdGlvbiBw
cmVkaWNhdGUgd2l0aCBzaG91bGRDb250aW51ZSA9ICIsIHNob3VsZENvbnRpbnVlLCAiLCBxdWV1
ZS5zaXplKCkgPT0gIiwgcXVldWUuc2l6ZSgpLCAiXG4iKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBxdWV1ZS5zaXplKCkgPCBtYXhRdWV1ZVNpemU7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtdXN0Tm90
aWZ5ID0gcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgcXVldWUuYXBw
ZW5kKGkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5vdGlm
eShlbXB0eUNvbmRpdGlvbiwgbXVzdE5vdGlmeSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSk7CisgICAgICAgIHByb2R1Y2VyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmll
cik7CisgICAgfQorCisgICAgZm9yIChUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIg
OiBwcm9kdWNlclRocmVhZHMpCisgICAgICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVh
ZElkZW50aWZpZXIpOworCisgICAgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9ja1R5cGU+
IGxvY2tlcihsb2NrKTsKKyAgICAgICAgc2hvdWxkQ29udGludWUgPSBmYWxzZTsKKyAgICB9Cisg
ICAgbm90aWZ5QWxsKGVtcHR5Q29uZGl0aW9uKTsKKworICAgIGZvciAoVGhyZWFkSWRlbnRpZmll
ciB0aHJlYWRJZGVudGlmaWVyIDogY29uc3VtZXJUaHJlYWRzKQorICAgICAgICB3YWl0Rm9yVGhy
ZWFkQ29tcGxldGlvbih0aHJlYWRJZGVudGlmaWVyKTsKKworICAgIFJFTEVBU0VfQVNTRVJUKG51
bVByb2R1Y2VycyAqIG51bU1lc3NhZ2VzUGVyUHJvZHVjZXIgPT0gcmVjZWl2ZWQuc2l6ZSgpKTsK
KyAgICBzdGQ6OnNvcnQocmVjZWl2ZWQuYmVnaW4oKSwgcmVjZWl2ZWQuZW5kKCkpOworICAgIGZv
ciAodW5zaWduZWQgbWVzc2FnZUluZGV4ID0gMDsgbWVzc2FnZUluZGV4IDwgbnVtTWVzc2FnZXNQ
ZXJQcm9kdWNlcjsgKyttZXNzYWdlSW5kZXgpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBwcm9k
dWNlckluZGV4ID0gMDsgcHJvZHVjZXJJbmRleCA8IG51bVByb2R1Y2VyczsgKytwcm9kdWNlcklu
ZGV4KQorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobWVzc2FnZUluZGV4ID09IHJlY2VpdmVk
W21lc3NhZ2VJbmRleCAqIG51bVByb2R1Y2VycyArIHByb2R1Y2VySW5kZXhdKTsKKyAgICB9Cit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlLCB0eXBlbmFtZSBDb25kaXRpb25UeXBlLCB0
eXBlbmFtZSBOb3RpZnlGdW5jdG9yLCB0eXBlbmFtZSBOb3RpZnlBbGxGdW5jdG9yPgordm9pZCBy
dW5CZW5jaG1hcmsoCisgICAgY29uc3QgY2hhciogbmFtZSwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIGRvdWJsZSBiZWZvcmUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWVNUygpOworICAg
IAorICAgIHJ1blRlc3Q8TG9ja1R5cGUsIENvbmRpdGlvblR5cGU+KAorICAgICAgICBudW1Qcm9k
dWNlcnMsCisgICAgICAgIG51bUNvbnN1bWVycywKKyAgICAgICAgbWF4UXVldWVTaXplLAorICAg
ICAgICBudW1NZXNzYWdlc1BlclByb2R1Y2VyLAorICAgICAgICBub3RpZnksCisgICAgICAgIG5v
dGlmeUFsbCk7CisKKyAgICBkb3VibGUgYWZ0ZXIgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWVNUygpOworCisgICAgcHJpbnRmKCIlczogJS4zbGYgbXMuXG4iLCBuYW1lLCBhZnRlciAtIGJl
Zm9yZSk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitpbnQgbWFpbihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCit7CisgICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisKKyAg
ICBpZiAoYXJnYyAhPSA2CisgICAgICAgIHx8IHNzY2FuZihhcmd2WzJdLCAiJXUiLCAmbnVtUHJv
ZHVjZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzNdLCAiJXUiLCAmbnVtQ29uc3Vt
ZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzRdLCAiJXUiLCAmbWF4UXVldWVTaXpl
KSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzVdLCAiJXUiLCAmbnVtTWVzc2FnZXNQZXJQ
cm9kdWNlcikgIT0gMSkKKyAgICAgICAgdXNhZ2UoKTsKKworICAgIGJvb2wgZGlkUnVuID0gZmFs
c2U7CisgICAgaWYgKCFzdHJjbXAoYXJndlsxXSwgImxvY2siKSB8fCAhc3RyY21wKGFyZ3ZbMV0s
ICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1hcms8TG9jaywgQ29uZGl0aW9uPigKKyAgICAg
ICAgICAgICJXVEYgTG9jayBOb3RpZnlPbmUiLAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24m
IGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9u
Lm5vdGlmeU9uZSgpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0aW9u
JiBjb25kaXRpb24pIHsKKyAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgcnVuQmVuY2htYXJrPExvY2ssIENvbmRpdGlvbj4oCisg
ICAgICAgICAgICAiV1RGIExvY2sgTm90aWZ5QWxsIiwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0
aW9uJiBjb25kaXRpb24sIGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGlmICht
dXN0Tm90aWZ5KQorICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24mIGNvbmRpdGlvbikgewor
ICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICBkaWRSdW4gPSB0cnVlOworICAgIH0KKyAgICBpZiAoIXN0cmNtcChhcmd2WzFdLCAi
bXV0ZXgiKSB8fCAhc3RyY21wKGFyZ3ZbMV0sICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1h
cms8TXV0ZXgsIFRocmVhZENvbmRpdGlvbj4oCisgICAgICAgICAgICAiUGxhdGZvcm0gTXV0ZXgg
Tm90aWZ5T25lIiwKKyAgICAgICAgICAgIFsmXSAoVGhyZWFkQ29uZGl0aW9uJiBjb25kaXRpb24s
IGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5zaWduYWwoKTsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlvbiYgY29uZGl0
aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIHJ1bkJlbmNobWFyazxNdXRleCwgVGhyZWFkQ29uZGl0aW9uPigKKyAg
ICAgICAgICAgICJQbGF0Zm9ybSBNdXRleCBOb3RpZnlBbGwiLAorICAgICAgICAgICAgWyZdIChU
aHJlYWRDb25kaXRpb24mIGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAg
ICAgICAgaWYgKG11c3ROb3RpZnkpCisgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5icm9h
ZGNhc3QoKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlv
biYgY29uZGl0aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIGRpZFJ1biA9IHRydWU7CisgICAgfQorCisgICAgaWYg
KCFkaWRSdW4pCisgICAgICAgIHVzYWdlKCk7CisKKyAgICByZXR1cm4gMDsKK30KKwpJbmRleDog
U291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw2ICsyMyw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisvLyBPbiBNYWMsIHlv
dSBjYW4gYnVpbGQgdGhpcyBsaWtlIHNvOgorLy8gY2xhbmcrKyAtbyBMb2NrU3BlZWRUZXN0IFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RG
IC1MV2ViS2l0QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vj
b3JlIC1zdGQ9YysrMTEKKwogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9Db25kaXRpb24uaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93
dGYvQ29uZGl0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDI2ICsyOSw1OSBAQAogI2luY2x1
ZGUgPGNocm9ubz4KICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPG11dGV4PgorI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXJraW5nTG90Lmg+CiAK
IG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBDb25kaXRpb24gewogcHVibGljOgorICAgIHR5cGVk
ZWYgUGFya2luZ0xvdDo6Q2xvY2sgQ2xvY2s7CisgICAgCiAgICAgQ29uZGl0aW9uKCkgeyB9CiAK
ICAgICAvLyBXYWl0IG9uIGEgcGFya2luZyBxdWV1ZSB3aGlsZSByZWxlYXNpbmcgdGhlIGdpdmVu
IGxvY2suIEl0IHdpbGwgdW5sb2NrIHRoZSBsb2NrIGp1c3QgYmVmb3JlCiAgICAgLy8gcGFya2lu
ZywgYW5kIHJlbG9jayBpdCB1cG9uIHdha2V1cC4gUmV0dXJucyB0cnVlIGlmIHdlIHdva2UgdXAg
ZHVlIHRvIHNvbWUgY2FsbCB0bwotICAgIC8vIG5vdGlmeU9uZSgpIG9yIG5vdGlmeUFsbCgpLiBS
ZXR1cm5zIGZhbHNlIGlmIHdlIHdva2UgdXAgZHVlIHRvIGEgdGltZW91dC4KKyAgICAvLyBub3Rp
ZnlPbmUoKSBvciBub3RpZnlBbGwoKS4gUmV0dXJucyBmYWxzZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0
byBhIHRpbWVvdXQuIE5vdGUgdGhhdCB0aGlzIGZvcm0KKyAgICAvLyBvZiB3YWl0VW50aWwoKSBo
YXMgc29tZSBxdWlya3M6CisgICAgLy8KKyAgICAvLyBObyBzcHVyaW91cyB3YWtlLXVwOiBpbiBv
cmRlciBmb3IgdGhpcyB0byByZXR1cm4gYmVmb3JlIHRoZSB0aW1lb3V0LCBzb21lIG5vdGlmeU9u
ZSgpIG9yCisgICAgLy8gbm90aWZ5QWxsKCkgY2FsbCBtdXN0IGhhdmUgaGFwcGVuZWQuIE5vIHNj
ZW5hcmlvIG90aGVyIHRoYW4gdGltZW91dCBvciBub3RpZnkgY2FuIGxlYWQgdG8gdGhpcworICAg
IC8vIG1ldGhvZCByZXR1cm5pbmcuIFRoaXMgbWVhbnMsIGZvciBleGFtcGxlLCB0aGF0IHlvdSBj
YW4ndCB1c2UgcHRocmVhZCBjYW5jZWxhdGlvbiBvciBzaWduYWxzIHRvCisgICAgLy8gY2F1c2Ug
ZWFybHkgcmV0dXJuLgorICAgIC8vCisgICAgLy8gUGFzdCB0aW1lb3V0OiBpdCdzIHBvc3NpYmxl
IGZvciB3YWl0VW50aWwoKSB0byBiZSBjYWxsZWQgd2l0aCBhIHRpbWVvdXQgaW4gdGhlIHBhc3Qu
IEluIHRoYXQKKyAgICAvLyBjYXNlLCB3YWl0VW50aWwoKSB3aWxsIHN0aWxsIHJlbGVhc2UgdGhl
IGxvY2sgYW5kIHJlYWNxdWlyZSBpdC4gd2FpdFVudGlsKCkgd2lsbCBhbHdheXMgcmV0dXJuCisg
ICAgLy8gZmFsc2UgaW4gdGhhdCBjYXNlLiBUaGlzIGlzIHN1YnRseSBkaWZmZXJlbnQgZnJvbSBz
b21lIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSBpbXBsZW1lbnRhdGlvbnMsCisgICAgLy8gd2hp
Y2ggbWF5IG5vdCByZWxlYXNlIHRoZSBsb2NrIGZvciBwYXN0IHRpbWVvdXQuIEJ1dCwgdGhpcyBi
ZWhhdmlvciBpcyBjb25zaXN0ZW50IHdpdGggT3Blbkdyb3VwCisgICAgLy8gZG9jdW1lbnRhdGlv
biBmb3IgdGltZWR3YWl0KCkuCisgICAgLy8KKyAgICAvLyBNYXkgd2FpdCB0b28gbG9uZyBvbiBz
b21lIE9TZXM6IHRoZSBDKysgc3RhbmRhcmQgbGlicmFyeSBpbXBsZW1lbnRhdGlvbiBvZgorICAg
IC8vIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlOjp3YWl0X3VudGlsKCksIHdoaWNoIHRoaXMgdXNl
cyBpbnRlcm5hbGx5LCBtYXkgY29udmVydCB0aGUgYWJzb2x1dGUKKyAgICAvLyB0aW1lIHRvIGFu
IGFic29sdXRlIHRpbWUgYWNjb3JkaW5nIHRvIHRoZSBzeXN0ZW0gY2xvY2ssIHdoaWNoIGlzbid0
IG1vbm90b25pYy4gSXQgd2lsbCBkbyB0aGlzCisgICAgLy8gc28gdGhhdCBpdCBjYW4gdXNlIHB0
aHJlYWRfY29uZF90aW1lZHdhaXQoKS4gRGVwZW5kaW5nIG9uIHRoZSBPUyBhbmQgaWYgYW4gdW5m
b3J0dW5hdGUKKyAgICAvLyBjb21iaW5hdGlvbiBvZiB0aHJlYWQgaW50ZXJsZWF2aW5ncyBhbmQg
c3lzdGVtIHRpbWUgY2hhbmdlcyBoYXBwZW5zLCB0aGlzIG1heSBjYXVzZSB3YWl0VW50aWwoKQor
ICAgIC8vIHRvIHdhaXQgbG9uZ2VyIHRoYW4gaXQncyBzdXBwb3NlZCB0by4gSG93ZXZlciwgaXQn
cyB0eXBpY2FsIGZvciBPU2VzIHRvIHR1cm4gdGhlIGFic29sdXRlCisgICAgLy8gdGltZW91dCBp
biBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gYSByZWxhdGl2ZSB0aW1lb3V0IGJlZm9yZSBj
YWxsaW5nIGludG8gdGhlIGtlcm5lbC4gVGhpcworICAgIC8vIGlzIHdoYXQgZ2xpYmMgZG9lcywg
Zm9yIGV4YW1wbGUuCisgICAgLy8KKyAgICAvLyBUaGVzZSBxdWlya3MgYXJlIGdlbmVyYWxseSBu
b3Qgd29ydGggd29ycnlpbmcgdG9vIG11Y2ggYWJvdXQuIFRoZSBmYWN0IHRoYXQgc29tZSBPU2Vz
IHBlcmZvcm0KKyAgICAvLyBjb252ZXJzaW9ucyB0byBhbiBhYnNvbHV0ZSBub24tbW9ub3Rvbmlj
IHRpbWUgaXMgdW5saWtlbHkgdG8gY2F1c2UgaXNzdWVzIGJlY2F1c2UgdGhleSB1c3VhbGx5Cisg
ICAgLy8ganVzdCBkbyB0aGF0IGFzIHBhcnQgb2YgYSBjb252ZXJzaW9uIHRvIGEgcmVsYXRpdmUg
c2xlZXAgYW1vdW50IGluIHRoZSBrZXJuZWwuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5
cGU+Ci0gICAgYm9vbCB3YWl0VW50aWwoCi0gICAgICAgIExvY2tUeXBlJiBsb2NrLCBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCisgICAgYm9vbCB3YWl0VW50
aWwoTG9ja1R5cGUmIGxvY2ssIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiAgICAgewotICAg
ICAgICBib29sIHJlc3VsdCA9IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAotICAgICAg
ICAgICAgJm1fZHVtbXksCi0gICAgICAgICAgICBbXSAoKSAtPiBib29sIHsgcmV0dXJuIHRydWU7
IH0sCi0gICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKLSAgICAgICAg
ICAgIHRpbWVvdXQpOworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgaWYgKHRpbWVvdXQg
PCBDbG9jazo6bm93KCkpIHsKKyAgICAgICAgICAgIGxvY2sudW5sb2NrKCk7CisgICAgICAgICAg
ICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9
IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAorICAgICAgICAgICAgICAgICZtX2R1bW15
LAorICAgICAgICAgICAgICAgIFtdICgpIC0+IGJvb2wgeyByZXR1cm4gdHJ1ZTsgfSwKKyAgICAg
ICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKKyAgICAgICAgICAgICAg
ICB0aW1lb3V0KTsKKyAgICAgICAgfQogICAgICAgICBsb2NrLmxvY2soKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CkBAIC01Niw4ICs4OSw3IEBAIHB1YmxpYzoKICAgICAvLyBXYWl0
IHVudGlsIHRoZSBnaXZlbiBwcmVkaWNhdGUgaXMgc2F0aXNmaWVkLiBSZXR1cm5zIHRydWUgaWYg
aXQgaXMgc2F0aXNmaWVkIGluIHRoZSBlbmQuCiAgICAgLy8gTWF5IHJldHVybiBlYXJseSBkdWUg
dG8gdGltZW91dC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRnVu
Y3Rvcj4KLSAgICBib29sIHdhaXRVbnRpbCgKLSAgICAgICAgTG9ja1R5cGUmIGxvY2ssIHN0ZDo6
Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgdGltZW91dCwgY29uc3QgRnVuY3RvciYg
cHJlZGljYXRlKQorICAgIGJvb2wgd2FpdFVudGlsKExvY2tUeXBlJiBsb2NrLCBDbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewogICAgICAg
ICB3aGlsZSAoIXByZWRpY2F0ZSgpKSB7CiAgICAgICAgICAgICBpZiAoIXdhaXRVbnRpbChsb2Nr
LCB0aW1lb3V0KSkKQEAgLTcyLDE3ICsxMDQsMTMgQEAgcHVibGljOgogICAgIGJvb2wgd2FpdEZv
cigKICAgICAgICAgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVU
aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewotICAgICAgICBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IGFic29sdXRlVGltZW91dCA9Ci0gICAgICAg
ICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSArCi0gICAgICAgICAgICBzdGQ6
OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlv
bj4ocmVsYXRpdmVUaW1lb3V0KTsKLQotICAgICAgICByZXR1cm4gd2FpdFVudGlsKGxvY2ssIGFi
c29sdXRlVGltZW91dCwgcHJlZGljYXRlKTsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2Nr
LCBhYnNvbHV0ZUZyb21SZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpLCBwcmVkaWNhdGUpOwogICAg
IH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgogICAgIHZvaWQgd2FpdChMb2Nr
VHlwZSYgbG9jaykKICAgICB7Ci0gICAgICAgIHdhaXRVbnRpbChsb2NrLCBzdGQ6OmNocm9ubzo6
c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7CisgICAgICAgIHdhaXRVbnRpbChsb2Nr
LCBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIExvY2tUeXBlLCB0eXBlbmFtZSBGdW5jdG9yPgpAQCAtOTIsNiArMTIwLDMyIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHdhaXQobG9jayk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgTG9ja1R5cGUsIHR5cGVuYW1lIFRpbWVUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsKExvY2tU
eXBlJiBsb2NrLCBjb25zdCBUaW1lVHlwZSYgdGltZW91dCkKKyAgICB7CisgICAgICAgIGlmICh0
aW1lb3V0ID09IFRpbWVUeXBlOjptYXgoKSkgeworICAgICAgICAgICAgd2FpdChsb2NrKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB3YWl0Rm9y
SW1wbChsb2NrLCB0aW1lb3V0IC0gVGltZVR5cGU6OmNsb2NrOjpub3coKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+CisgICAgYm9vbCB3YWl0VW50aWxXYWxsQ2xv
Y2tTZWNvbmRzKExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykK
KyAgICB7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVU
aW1lb3V0U2Vjb25kcyAtIGN1cnJlbnRUaW1lKCkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIExvY2tUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsTW9ub3RvbmljQ2xvY2tTZWNvbmRz
KExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykKKyAgICB7Cisg
ICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVUaW1lb3V0U2Vj
b25kcyAtIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKKyAgICB9CisKKyAgICAvLyBG
SVhNRTogV2UgY291bGQgcmVwbGFjZSB0aGUgZHVtbXkgYnl0ZSB3aXRoIGEgYm9vbGVhbiB0byB0
ZWxsIHVzIGlmIHRoZXJlIGlzIGFueW9uZSB3YWl0aW5nCisgICAgLy8gcmlnaHQgbm93LiBUaGlz
IGNvdWxkIGJlIHVzZWQgdG8gaW1wbGVtZW50IGEgZmFzdCBwYXRoIGZvciBub3RpZnlPbmUoKSBh
bmQgbm90aWZ5QWxsKCkuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODA5MAorCiAgICAgdm9pZCBub3RpZnlPbmUoKQogICAgIHsKICAgICAgICAgUGFy
a2luZ0xvdDo6dW5wYXJrT25lKCZtX2R1bW15KTsKQEAgLTEwMyw3ICsxNTcsNTYgQEAgcHVibGlj
OgogICAgIH0KICAgICAKIHByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+
CisgICAgYm9vbCB3YWl0Rm9yU2Vjb25kc0ltcGwoTG9ja1R5cGUmIGxvY2ssIGRvdWJsZSByZWxh
dGl2ZVRpbWVvdXRTZWNvbmRzKQorICAgIHsKKyAgICAgICAgZG91YmxlIHJlbGF0aXZlVGltZW91
dE5hbm9zZWNvbmRzID0gcmVsYXRpdmVUaW1lb3V0U2Vjb25kcyAqICgxMDAwLjAgKiAxMDAwLjAg
KiAxMDAwLjApOworICAgICAgICAKKyAgICAgICAgaWYgKCEocmVsYXRpdmVUaW1lb3V0TmFub3Nl
Y29uZHMgPiAwKSkgeworICAgICAgICAgICAgLy8gVGhpcyBoYW5kbGVzIGluc3RhLXRpbWVvdXRz
IGFzIHdlbGwgYXMgTmFOLgorICAgICAgICAgICAgbG9jay51bmxvY2soKTsKKyAgICAgICAgICAg
IGxvY2subG9jaygpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHJlbGF0aXZlVGltZW91dE5hbm9zZWNvbmRzID4gc3RhdGljX2Nhc3Q8ZG91Ymxl
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptYXgoKSkpIHsKKyAgICAgICAgICAgIC8v
IElmIHRoZSB0aW1lb3V0IGluIG5hbm9zZWNvbmRzIGNhbm5vdCBiZSBleHByZXNzZWQgdXNpbmcg
YSA2NC1iaXQgaW50ZWdlciwgdGhlbiB3ZQorICAgICAgICAgICAgLy8gbWlnaHQgYXMgd2VsbCB3
YWl0IGZvcmV2ZXIuCisgICAgICAgICAgICB3YWl0KGxvY2spOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGF1dG8gcmVsYXRpdmVUaW1lb3V0
ID0KKyAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyhzdGF0aWNfY2FzdDxpbnQ2
NF90PihyZWxhdGl2ZVRpbWVvdXROYW5vc2Vjb25kcykpOworCisgICAgICAgIHJldHVybiB3YWl0
Rm9ySW1wbChsb2NrLCByZWxhdGl2ZVRpbWVvdXQpOworICAgIH0KICAgICAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRHVyYXRpb25UeXBlPgorICAgIGJvb2wgd2Fp
dEZvckltcGwoTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVUaW1l
b3V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2NrLCBhYnNvbHV0ZUZyb21S
ZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEdXJhdGlvblR5cGU+CisgICAgQ2xvY2s6OnRpbWVfcG9pbnQgYWJzb2x1dGVGcm9tUmVsYXRp
dmUoY29uc3QgRHVyYXRpb25UeXBlJiByZWxhdGl2ZVRpbWVvdXQpCisgICAgeworICAgICAgICBp
ZiAocmVsYXRpdmVUaW1lb3V0IDwgRHVyYXRpb25UeXBlOjp6ZXJvKCkpCisgICAgICAgICAgICBy
ZXR1cm4gQ2xvY2s6OnRpbWVfcG9pbnQ6Om1pbigpOworCisgICAgICAgIGlmIChyZWxhdGl2ZVRp
bWVvdXQgPiBDbG9jazo6ZHVyYXRpb246Om1heCgpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGlz
IGhpZ2hseSB1bmxpa2VseS4gQnV0IGlmIGl0IGhhcHBlbnMsIHdlIHdhbnQgdG8gbm90IGRvIGFu
eXRoaW5nIGR1bWIuIFNsZWVwaW5nCisgICAgICAgICAgICAvLyB3aXRob3V0IGEgdGltZW91dCBz
ZWVtcyBzZW5zaWJsZSB3aGVuIHRoZSB0aW1lb3V0IGR1cmF0aW9uIGlzIGdyZWF0ZXIgdGhhbiB3
aGF0IGNhbiBiZQorICAgICAgICAgICAgLy8gZXhwcmVzc2VkIHVzaW5nIHN0ZWFkeV9jbG9jay4K
KyAgICAgICAgICAgIHJldHVybiBDbG9jazo6dGltZV9wb2ludDo6bWF4KCk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIENsb2NrOjpkdXJhdGlvbiBteVJlbGF0aXZlVGltZW91dCA9Cisg
ICAgICAgICAgICBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxDbG9jazo6ZHVyYXRpb24+KHJl
bGF0aXZlVGltZW91dCk7CisKKyAgICAgICAgcmV0dXJuIENsb2NrOjpub3coKSArIG15UmVsYXRp
dmVUaW1lb3V0OworICAgIH0KKwogICAgIHVpbnQ4X3QgbV9kdW1teTsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L01lc3NhZ2VRdWV1ZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9NZXNz
YWdlUXVldWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMzIsNyArMzIsOSBAQAogCiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Nyw4ICs3OSw4IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgICAgICBzdGF0aWMgZG91YmxlIGluZmluaXRlVGltZSgpIHsg
cmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCk7IH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKKyAgICAgICAg
Q29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8RGF0
YVR5cGU+PiBtX3F1ZXVlOwogICAgICAgICBib29sIG1fa2lsbGVkOwogICAgIH07CkBAIC05MSwz
NyArOTMsMzcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKHN0ZDo6
dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAg
ICAgbV9xdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRp
b24uc2lnbmFsKCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSB2b2lkIE1lc3NhZ2VR
dWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwoc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBt
ZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEY6
Om1vdmUobWVzc2FnZSkpOwogICAgICAgICBtX2tpbGxlZCA9IHRydWU7Ci0gICAgICAgIG1fY29u
ZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsKICAg
ICB9CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHF1ZXVlIHdhcyBlbXB0eSBiZWZvcmUg
dGhlIGl0ZW0gd2FzIGFkZGVkLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAg
IGlubGluZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHko
c3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwog
ICAgICAgICBib29sIHdhc0VtcHR5ID0gbV9xdWV1ZS5pc0VtcHR5KCk7CiAgICAgICAgIG1fcXVl
dWUuYXBwZW5kKFdURjo6bW92ZShtZXNzYWdlKSk7Ci0gICAgICAgIG1fY29uZGl0aW9uLnNpZ25h
bCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICAgICAgcmV0dXJuIHdh
c0VtcHR5OwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlu
bGluZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OnByZXBlbmQoc3RkOjp1bmlxdWVfcHRy
PERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVl
LnByZXBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRpb24uc2lnbmFs
KCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERhdGFUeXBlPgpAQCAtMTM3LDcgKzEzOSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgYXV0byBNZXNz
YWdlUXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQoTWVz
c2FnZVF1ZXVlV2FpdFJlc3VsdCYgcmVzdWx0LCBQcmVkaWNhdGUmJiBwcmVkaWNhdGUsIGRvdWJs
ZSBhYnNvbHV0ZVRpbWUpIC0+IHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4KICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayht
X211dGV4KTsKICAgICAgICAgYm9vbCB0aW1lZE91dCA9IGZhbHNlOwogCiAgICAgICAgIGF1dG8g
Zm91bmQgPSBtX3F1ZXVlLmVuZCgpOwpAQCAtMTQ5LDcgKzE1MSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgICAgICAgICAgaWYgKGZvdW5kICE9IG1fcXVldWUuZW5kKCkpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHRpbWVkT3V0ID0gIW1fY29uZGl0aW9uLnRpbWVkV2Fp
dChtX211dGV4LCBhYnNvbHV0ZVRpbWUpOworICAgICAgICAgICAgdGltZWRPdXQgPSAhbV9jb25k
aXRpb24ud2FpdFVudGlsV2FsbENsb2NrU2Vjb25kcyhtX211dGV4LCBhYnNvbHV0ZVRpbWUpOwog
ICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCF0aW1lZE91dCB8fCBhYnNvbHV0ZVRpbWUgIT0g
aW5maW5pdGVUaW1lKCkpOwpAQCAtMTc0LDcgKzE3Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBhdXRvIE1lc3NhZ2VRdWV1
ZTxEYXRhVHlwZT46OnRyeUdldE1lc3NhZ2UoKSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCkBAIC0xODYs
NyArMTg4LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIGF1dG8gTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6dHJ5R2V0TWVzc2Fn
ZUlnbm9yaW5nS2lsbGVkKCkgLT4gc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbXV0ZXgpOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIApAQCAtMTk3LDcgKzE5OSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVl
dWU8RGF0YVR5cGU+OjpyZW1vdmVJZihQcmVkaWNhdGUmJiBwcmVkaWNhdGUpCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV9tdXRleCk7CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBhdXRvIGZvdW5k
ID0gbV9xdWV1ZS5maW5kSWYoWyZwcmVkaWNhdGVdKGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxEYXRh
VHlwZT4mIHB0cikgLT4gYm9vbCB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHB0cik7CkBAIC0y
MTQsNyArMjE2LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0
YVR5cGU+CiAgICAgaW5saW5lIGJvb2wgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6aXNFbXB0eSgp
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gbV9xdWV1ZS5pc0VtcHR5KCk7CkBAIC0yMjMs
MTUgKzIyNSwxNSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRh
VHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpraWxsKCkKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9raWxsZWQgPSB0cnVlOwotICAgICAgICBtX2Nv
bmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGJvb2wg
TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbGVkKCkgY29uc3QKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4
KTsKICAgICAgICAgcmV0dXJuIG1fa2lsbGVkOwogICAgIH0KIH0gLy8gbmFtZXNwYWNlIFdURgpJ
bmRleDogU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDUsMTcgKzEwNSwxNyBAQCBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVh
ZFByaXZhdGU6CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6ZXhl
Y3V0ZShUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgdm9pZCogcGFyYW1ldGVycykKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211
dGV4KTsKIAogICAgIG1fdGhyZWFkRnVuY3Rpb24gPSB0aHJlYWRGdW5jdGlvbjsKICAgICBtX3Bh
cmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgIG1fcnVubmluZyA9IHRydWU7Ci0gICAgbV90aHJl
YWRDb25kaXRpb24uc2lnbmFsKCk7CisgICAgbV90aHJlYWRDb25kaXRpb24ubm90aWZ5T25lKCk7
CiB9CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZp
bmlzaCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CiAKICAgICB3aGlsZSAobV9ydW5uaW5nKQogICAgICAgICBtX3RocmVh
ZENvbmRpdGlvbi53YWl0KG1fbXV0ZXgpOwpAQCAtMTI0LDE0ICsxMjQsMTQgQEAgdm9pZCBQYXJh
bGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOgogdm9pZCBQYXJhbGxlbEVudmlyb25tZW50
OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJUaHJlYWQodm9pZCogdGhyZWFkRGF0YSkKIHsKICAgICBU
aHJlYWRQcml2YXRlKiBzaGFyZWRUaHJlYWQgPSByZWludGVycHJldF9jYXN0PFRocmVhZFByaXZh
dGUqPih0aHJlYWREYXRhKTsKLSAgICBNdXRleExvY2tlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CiAKICAg
ICB3aGlsZSAoc2hhcmVkVGhyZWFkLT5tX3RocmVhZElEKSB7CiAgICAgICAgIGlmIChzaGFyZWRU
aHJlYWQtPm1fcnVubmluZykgewogICAgICAgICAgICAgKCpzaGFyZWRUaHJlYWQtPm1fdGhyZWFk
RnVuY3Rpb24pKHNoYXJlZFRocmVhZC0+bV9wYXJhbWV0ZXJzKTsKICAgICAgICAgICAgIHNoYXJl
ZFRocmVhZC0+bV9ydW5uaW5nID0gZmFsc2U7CiAgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1f
cGFyZW50ID0gMDsKLSAgICAgICAgICAgIHNoYXJlZFRocmVhZC0+bV90aHJlYWRDb25kaXRpb24u
c2lnbmFsKCk7CisgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1fdGhyZWFkQ29uZGl0aW9uLm5v
dGlmeU9uZSgpOwogICAgICAgICB9CiAKICAgICAgICAgc2hhcmVkVGhyZWFkLT5tX3RocmVhZENv
bmRpdGlvbi53YWl0KHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAKIAog
I2lmIEVOQUJMRShUSFJFQURJTkdfR0VORVJJQykKIAorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Niw4ICs3OCw4IEBAIHB1YmxpYzoKICAg
ICAgICAgYm9vbCBtX3J1bm5pbmc7CiAgICAgICAgIFBhcmFsbGVsRW52aXJvbm1lbnQqIG1fcGFy
ZW50OwogCi0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29u
ZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsK
KyAgICAgICAgQ29uZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOwogCiAgICAgICAgIFRocmVhZEZ1
bmN0aW9uIG1fdGhyZWFkRnVuY3Rpb247CiAgICAgICAgIHZvaWQqIG1fcGFyYW1ldGVyczsKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1BhcmtpbmdMb3QuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0
Zi9QYXJraW5nTG90LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTExLDcgKzUxMSw3IEBAIGJvb2wg
UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHkoCiAgICAgY29uc3Qgdm9pZCogYWRkcmVzcywK
ICAgICBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4gdmFsaWRhdGlvbiwKICAgICBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gYmVmb3JlU2xlZXAsCi0gICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0KQorICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiB7CiAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2codG9TdHJpbmcoY3VycmVudFRocmVhZCgpLCAi
OiBwYXJraW5nLlxuIikpOwpAQCAtNTM5LDExICs1MzksMTEgQEAgYm9vbCBQYXJraW5nTG90Ojpw
YXJrQ29uZGl0aW9uYWxseSgKICAgICBib29sIGRpZEdldERlcXVldWVkOwogICAgIHsKICAgICAg
ICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrZXIobWUtPnBhcmtpbmdMb2NrKTsK
LSAgICAgICAgd2hpbGUgKG1lLT5hZGRyZXNzICYmIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
Om5vdygpIDwgdGltZW91dCkgeworICAgICAgICB3aGlsZSAobWUtPmFkZHJlc3MgJiYgQ2xvY2s6
Om5vdygpIDwgdGltZW91dCkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyBwcmV0dHkgZnVubnku
IE9uIExpbnV4LCBpZiB5b3Ugd2FpdCB1bnRpbCB0aGUgbWF4IHRpbWUsIGl0IGltbWVkaWF0ZWx5
IHJlcG9ydHMgdGhhdCB5b3UgdGltZWQKICAgICAgICAgICAgIC8vIG91dC4gV2hhdCdzIHBhcnRp
Y3VsYXJseSBiYWQgYWJvdXQgdGhpcyBpcyB0aGF0IGl0IG5ldmVyIHJlbGVhc2VzIHRoZSBsb2Nr
IGluIHRoYXQgY2FzZS4gU28sIHlvdSBsb29wCiAgICAgICAgICAgICAvLyBmb3JldmVyIHdpdGhv
dXQgeWllbGRpbmcgdG8gdGhlIHRocmVhZCB0aGF0IHdvdWxkIHdha2UgeW91IHVwLgotICAgICAg
ICAgICAgaWYgKHRpbWVvdXQgPT0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2lu
dDo6bWF4KCkpCisgICAgICAgICAgICBpZiAodGltZW91dCA9PSBDbG9jazo6dGltZV9wb2ludDo6
bWF4KCkpCiAgICAgICAgICAgICAgICAgbWUtPnBhcmtpbmdDb25kaXRpb24ud2FpdChsb2NrZXIp
OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1lLT5wYXJraW5nQ29uZGl0aW9u
LndhaXRfdW50aWwobG9ja2VyLCB0aW1lb3V0KTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1Bhcmtp
bmdMb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmgJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNiArMzgsOCBAQCBjbGFzcyBQYXJraW5nTG90IHsKICAgICBQYXJraW5nTG90KGNv
bnN0IFBhcmtpbmdMb3QmKSA9IGRlbGV0ZTsKIAogcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jayBDbG9jazsKKyAgICAKICAgICAvLyBQYXJrcyB0aGUgdGhyZWFk
IGluIGEgcXVldWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBhZGRyZXNzLCB3aGljaCBjYW5u
b3QgYmUgbnVsbC4gVGhlCiAgICAgLy8gcGFya2luZyBvbmx5IHN1Y2NlZWRzIGlmIHRoZSB2YWxp
ZGF0aW9uIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSB3aGlsZSB0aGUgcXVldWUgbG9jayBpcyBoZWxk
LgogICAgIC8vIElmIHZhbGlkYXRpb24gcmV0dXJucyBmYWxzZSwgaXQgd2lsbCB1bmxvY2sgdGhl
IGludGVybmFsIHBhcmtpbmcgcXVldWUgYW5kIHRoZW4gaXQgd2lsbApAQCAtNTMsNyArNTUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IHZvaWQqIGFkZHJlc3MsCiAgICAgICAgIHN0ZDo6ZnVu
Y3Rpb248Ym9vbCgpPiB2YWxpZGF0aW9uLAogICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4g
YmVmb3JlU2xlZXAsCi0gICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9p
bnQgdGltZW91dCk7CisgICAgICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpOwogCiAgICAg
Ly8gU2ltcGxlIHZlcnNpb24gb2YgcGFya0NvbmRpdGlvbmFsbHkoKSB0aGF0IGNvdmVycyB0aGUg
bW9zdCBjb21tb24gY2FzZTogeW91IHdhbnQgdG8gcGFyawogICAgIC8vIGluZGVmaW5pdGVseSBz
byBsb25nIGFzIHRoZSB2YWx1ZSBhdCB0aGUgZ2l2ZW4gYWRkcmVzcyBoYXNuJ3QgY2hhbmdlZC4K
QEAgLTY3LDcgKzY5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9
PSBleHBlY3RlZDsKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICBbXSAoKSB7IH0sCi0gICAg
ICAgICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7Cisg
ICAgICAgICAgICBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIC8vIFVu
cGFya3Mgb25lIHRocmVhZCBmcm9tIHRoZSBxdWV1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVu
IGFkZHJlc3MsIHdoaWNoIGNhbm5vdCBiZSBudWxsLgpAQCAtMTAzLDcgKzEwNSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBBMSxUMSBBMixUMyBBMSxUMiBBMixUNAogICAgIC8vIEExLFQxIEEyLFQzIEEy
LFQ0IEExLFQyCiAgICAgLy8KLSAgICAvLyBBcyB3ZWxsIGFzIG1hbnkgb3RoZXIgcG9zc2libGUg
aW50ZXJsZWF2ZXMgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBi
dXQgYXJlCisgICAgLy8gQXMgd2VsbCBhcyBtYW55IG90aGVyIHBvc3NpYmxlIGludGVybGVhdmlu
Z3MgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBidXQgYXJlCiAg
ICAgLy8gb3RoZXJ3aXNlIHVuY29uc3RyYWluZWQuIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBwcmlt
YXJpbHkgZm9yIGRlYnVnZ2luZy4gSXQncyBhbHNvIHVzZWQgYnkgdW5pdAogICAgIC8vIHRlc3Rz
LgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBmb3JFYWNoKHN0ZDo6ZnVuY3Rp
b248dm9pZChUaHJlYWRJZGVudGlmaWVyLCBjb25zdCB2b2lkKik+KTsKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDcgKzEyNiw2
IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgVGhyZWFkSWRlbnRpZmllckRhdGE6
OmluaXRpYWxpemVPbmNlKCk7CiAgICAgU3RhY2tTdGF0czo6aW5pdGlhbGl6ZSgpOwogICAgIHd0
ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAgIGluaXRp
YWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHJldmlzaW9u
IDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2NSw3ICsxNjUsNiBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogICAgIHRo
cmVhZE1hcE11dGV4KCk7CiAgICAgaW5pdGlhbGl6ZVJhbmRvbU51bWJlckdlbmVyYXRvcigpOwog
ICAgIHd0ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAg
IGluaXRpYWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi93dGYvZHRvYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBA
CiAgKiBUaGUgYXV0aG9yIG9mIHRoaXMgc29mdHdhcmUgaXMgRGF2aWQgTS4gR2F5LgogICoKICAq
IENvcHlyaWdodCAoYykgMTk5MSwgMjAwMCwgMjAwMSBieSBMdWNlbnQgVGVjaG5vbG9naWVzLgot
ICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMiwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCwgMjAxMiwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwg
YW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CiAgKiBwdXJwb3NlIHdpdGhvdXQg
ZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoaXMgZW50aXJlIG5vdGljZQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImR0b2EuaCIKIAogI2luY2x1ZGUgPHN0ZGlvLmg+
CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01NCw3
ICs1NSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1NdXRleCogc19kdG9hUDVNdXRleDsKK3N0
YXRpYyBTdGF0aWNMb2NrIHNfZHRvYVA1TXV0ZXg7CiAKIHR5cGVkZWYgdW5pb24gewogICAgIGRv
dWJsZSBkOwpAQCAtMzc1LDcgKzM3Niw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93
NW11bHQoQmlnSW4KICAgICBpZiAoIShrID4+PSAyKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
c19kdG9hUDVNdXRleC0+bG9jaygpOworICAgIHNfZHRvYVA1TXV0ZXgubG9jaygpOwogICAgIFA1
Tm9kZSogcDUgPSBwNXM7CiAKICAgICBpZiAoIXA1KSB7CkBAIC0zODgsNyArMzg5LDcgQEAgc3Rh
dGljIEFMV0FZU19JTkxJTkUgdm9pZCBwb3c1bXVsdChCaWdJbgogICAgIH0KIAogICAgIGludCBw
NXNDb3VudExvY2FsID0gcDVzQ291bnQ7Ci0gICAgc19kdG9hUDVNdXRleC0+dW5sb2NrKCk7Cisg
ICAgc19kdG9hUDVNdXRleC51bmxvY2soKTsKICAgICBpbnQgcDVzVXNlZCA9IDA7CiAKICAgICBm
b3IgKDs7KSB7CkBAIC0zOTksNyArNDAwLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBw
b3c1bXVsdChCaWdJbgogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKCsrcDVzVXNl
ZCA9PSBwNXNDb3VudExvY2FsKSB7Ci0gICAgICAgICAgICBzX2R0b2FQNU11dGV4LT5sb2NrKCk7
CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LmxvY2soKTsKICAgICAgICAgICAgIGlmIChwNXNV
c2VkID09IHA1c0NvdW50KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFwNS0+bmV4dCk7CiAg
ICAgICAgICAgICAgICAgcDUtPm5leHQgPSBuZXcgUDVOb2RlOwpAQCAtNDEwLDcgKzQxMSw3IEBA
IHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93NW11bHQoQmlnSW4KICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgcDVzQ291bnRMb2NhbCA9IHA1c0NvdW50OwotICAgICAgICAgICAgc19k
dG9hUDVNdXRleC0+dW5sb2NrKCk7CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LnVubG9jaygp
OwogICAgICAgICB9CiAgICAgICAgIHA1ID0gcDUtPm5leHQ7CiAgICAgfQpJbmRleDogU291cmNl
L1dURi93dGYvZHRvYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2R0b2EuaAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93dGYvZHRvYS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCwxMCArMjgsNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotY2xhc3MgTXV0ZXg7Ci0KLWV4
dGVybiBNdXRleCogc19kdG9hUDVNdXRleDsKLQogdHlwZWRlZiBjaGFyIER0b2FCdWZmZXJbODBd
OwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdG9hKER0b2FCdWZmZXIgcmVzdWx0LCBkb3Vi
bGUgZGQsIGJvb2wmIHNpZ24sIGludCYgZXhwb25lbnQsIHVuc2lnbmVkJiBwcmVjaXNpb24pOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjc0IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5n
IHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugbm8gbmV3IGJl
aGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29k
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3ApOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbUF1ZGlvU291cmNlOjphZGRBdWRpb0NvbnN1bWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6c2V0QXVkaW9Gb3JtYXQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBs
ZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6aGFzUGVuZGluZ1RyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjp0YXNrQ29tcGxldGVkKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJl
YWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRo
cmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZXRyeUNhbkVzdGFibGlzaERh
dGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6aGFzRW50cnlGb3JP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRNYXhTaXplRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpjbG9zZUFsbERh
dGFiYXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmZ1bGxQYXRoRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpvcmlnaW5zKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZGF0YWJhc2VOYW1lc0Zvck9yaWdp
bik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmRldGFpbHNGb3JOYW1lQW5k
T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VE
ZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZG9uZUNyZWF0aW5n
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZW1vdmVPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRPcGVuRGF0YWJh
c2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3JpZ2luTG9ja0Zvcik6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnF1b3RhRm9yT3JpZ2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0UXVvdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OnJlbW92ZURlbGV0ZWRPcGVuZWREYXRhYmFzZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGVJZkVtcHR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNlTXV0ZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bm90aWZpY2F0aW9uTXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2Vy
OjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6Om5vdGlmeURhdGFiYXNlc0NoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxs
YmFja1dyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTENhbGxiYWNrV3JhcHBlcjo6Y2xl
YXIpOgorICAgICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjp1bndyYXApOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjpoYXNDYWxsYmFjayk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXApOgorICAgICAgICAo
V2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjplbnF1ZXVlU3RhdGVtZW50QmFja2VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmdldE5leHRTdGF0ZW1l
bnQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5k
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpzY2hlZHVsZUV4ZWN1dGlv
blRlcm1pbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6
OmlzRXhlY3V0aW9uVGVybWluYXRpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OnBv
c3RNZXNzYWdlVG9SZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVs
Ojp0cnlHZXRNZXNzYWdlRnJvbVJlbW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWw6OmlzQ29ubmVjdGVkVG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRD
aGFubmVsOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBv
cnRDaGFubmVsOjpsb2NhbGx5RW50YW5nbGVkUG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6c2V0UmVtb3RlUG9ydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6ZW50YW5nbGVkQ2hhbm5lbCk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y2xvc2VJbnRlcm5hbCk6Cisg
ICAgICAgICogZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaDoKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNv
bkRhdGFiYXNlOjpyZW1vdmVBbGxJY29ucyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRh
dGFiYXNlOjpzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYkNv
cmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTCk6CisgICAgICAg
IChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAgICAgICAg
KFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29uRm9yUGFnZVVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJM
KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNMb2FkRGVjaXNp
b25Gb3JJY29uVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25v
dXNJY29uRGF0YUtub3duRm9ySWNvblVSTCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnBhZ2VVUkxNYXBwaW5nQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpyZXRhaW5lZFBhZ2VVUkxDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6
Omljb25SZWNvcmRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omljb25S
ZWNvcmRDb3VudFdpdGhEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6d2Fr
ZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpzY2hlZHVsZU9y
RGVmZXJTeW5jVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjppc09wZW5C
ZXNpZGVzTWFpblRocmVhZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OmdldE9y
Q3JlYXRlUGFnZVVSTFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omlj
b25EYXRhYmFzZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpw
ZXJmb3JtT3BlbkluaXRpYWxpemF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cGVyZm9ybVVSTEltcG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnN5
bmNUaHJlYWRNYWluTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnBlcmZv
cm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SWNvbkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25E
YXRhYmFzZTo6d3JpdGVUb0RhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cHJ1bmVVbnJldGFpbmVkSWNvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpjbGVhbnVwU3luY1RocmVhZCk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25v
dXNseSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Ny
b2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aXNQb2ludElu
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjpzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZTo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1Njcm9sbFNuYXBwaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldENhblJ1YmJlckJhbmRTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVmdCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0UmlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxQaW5uaW5nQmVoYXZpb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpjbGVhckxhdGNoZWROb2RlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6d2FpdEZvckxvYWRlclRo
cmVhZENvbXBsZXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxv
YWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXRSZWNl
aXZlZE1lbW9yeVByZXNzdXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6Y2xlYXJNZW1vcnlQcmVzc3VyZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OnNob3VsZFdhaXRGb3JNZW1vcnlDbGVhck1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUlm
TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5
RGlkUmVmcmVzaCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnNldE1v
bm90b25pY0FuaW1hdGlvblN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3I6Om11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0RGVsYXlDYWxsYmFja3MpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1h
aW5UaHJlYWRQZW5kaW5nRmxhZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246OmRpc3BhdGNoTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6
OmNhbGxiYWNrQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjp+QVZGV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjptYXBMb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6OkFWRldyYXBwZXI6OmFkZFRvTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldy
YXBwZXI6OnJlbW92ZUZyb21NYXApOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cGVy
aW9kaWNUaW1lT2JzZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVy
Ojpwcm9jZXNzTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6Omxv
YWRQbGF5YWJsZUNvbXBsZXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFw
cGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
QVZGV3JhcHBlcjo6c2Vla0NvbXBsZXRlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFW
RldyYXBwZXI6OnByb2Nlc3NDdWUpOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6bGVn
aWJsZU91dHB1dENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OnByb2Nl
c3NTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6QVZG
V3JhcHBlcjo6cmVzb3VyY2VMb2FkZXJTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVxdWVzdGVkUmVz
b3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFj
a1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXI6OnRhZ3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6cmVxdWVz
dFJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjphZGRMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OnJlbW92ZUxp
c3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbjo6bm90aWZ5RGVsZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Okludm9rZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Om9u
TWVkaWFQbGF5ZXJEZWxldGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L0xlZ2FjeVRpbGVDYWNoZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2Fj
aGUubW06CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRpbGVzT3BhcXVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6ZG9MYXlvdXRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldEN1cnJlbnRTY2FsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmNvbW1pdFNjYWxlQ2hhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6bGF5b3V0VGlsZXNOb3cpOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpsYXlvdXRUaWxlc05vd0ZvclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxUaWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUZvcmVncm91bmRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldENvbnRlbnRSZXBsYWNlbWVudElt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6Y29udGVudFJlcGxhY2Vt
ZW50SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjp0aWxlQ3JlYXRp
b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0TmVl
ZHNEaXNwbGF5SW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dXBk
YXRlVGlsaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRp
bGluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpkb1BlbmRpbmdS
ZXBhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmZsdXNoU2F2ZWRE
aXNwbGF5UmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpwcmVwYXJl
VG9EcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6YWRkTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6dGFrZUxheWVyV2l0aFNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6cHJ1bmUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5
VGlsZUxheWVyUG9vbDo6ZHJhaW4pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsRG93bmxvYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnJlbW92ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjpnZXRBY3RpdmVEb3dubG9hZENv
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OmdldFBlbmRpbmdE
b3dubG9hZENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnN0
b3BUaHJlYWRJZklkbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
dXBkYXRlSGFuZGxlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6On5DdXJs
RG93bmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjppbml0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Z2V0VGVtcFBhdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybERvd25sb2FkOjpnZXRVcmwpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2Fk
OjpnZXRSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmNsb3NlRmls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVIZWFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZEZhaWwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZUph
clBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkUmVzb3VyY2VNdXRleCk6CisgICAgICAg
IChXZWJDb3JlOjpjdXJsX2xvY2tfY2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Y3VybF91
bmxvY2tfY2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9v
ay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlFMRGlyZWN0b3J5QXR0cmlidXRlcyk6CisgICAgICAg
IChxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6
YWRkUUxQcmV2aWV3Q29udmVydGVyV2l0aEZpbGVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
cWxQcmV2aWV3Q29udmVydGVyVVRJRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVFM
UHJldmlld0NvbnZlcnRlckZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpzYWZlUUxVUkxGb3JE
b2N1bWVudFVSTEFuZFJlc291cmNlVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmNsb3NlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjptYXhpbXVtU2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6c2V0TWF4aW11bVNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6OnBhZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0
ZURhdGFiYXNlOjpmcmVlU3BhY2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFi
YXNlOjp0b3RhbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnJ1bklu
Y3JlbWVudGFsVmFjdXVtQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFz
ZTo6c2V0QXV0aG9yaXplcik6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6ZGF0YWJhc2VNdXRleCk6Cisg
ICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTUUxpdGVTdGF0ZW1lbnQ6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRl
U3RhdGVtZW50OjpzdGVwKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZDo6c3RvcCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKwogMjAxNS0w
OC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCBjb25zdCB0byBjb250ZW50IGV4dGVuc2lvbiBwYXJzZXIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3Bw
CShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Fz
eW5jQXVkaW9EZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29kZXIoKQog
ewogICAgIC8vIFN0YXJ0IHdvcmtlciB0aHJlYWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3Ro
cmVhZENyZWF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOwogICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6
OnRocmVhZEVudHJ5LCB0aGlzLCAiQXVkaW8gRGVjb2RlciIpOwogfQogCkBAIC03Niw3ICs3Niw3
IEBAIHZvaWQgQXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3AoKQogCiAgICAgewogICAgICAgICAv
LyBXYWl0IGZvciB1bnRpbCB3ZSBoYXZlIG1fdGhyZWFkSUQgZXN0YWJsaXNoZWQgYmVmb3JlIHN0
YXJ0aW5nIHRoZSBydW4gbG9vcC4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENy
ZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11
dGV4KTsKICAgICB9CiAKICAgICAvLyBLZWVwIHJ1bm5pbmcgZGVjb2RpbmcgdGFza3MgdW50aWwg
d2UncmUga2lsbGVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3lu
Y0F1ZGlvRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5Mb29wKCk7CiAKICAgICBX
VEY6OlRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJRDsKLSAgICBNdXRleCBtX3RocmVhZENyZWF0
aW9uTXV0ZXg7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgTWVzc2FnZVF1
ZXVlPERlY29kaW5nVGFzaz4gbV9xdWV1ZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzgwLDcgKzM4MCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb25uZWN0
aW9uQ291bnQgeyAwIH07CiAKICAgICAvLyBHcmFwaCBsb2NraW5nLgotICAgIE11dGV4IG1fY29u
dGV4dEdyYXBoTXV0ZXg7CisgICAgTG9jayBtX2NvbnRleHRHcmFwaE11dGV4OwogICAgIHZvbGF0
aWxlIFRocmVhZElkZW50aWZpZXIgbV9hdWRpb1RocmVhZCB7IDAgfTsKICAgICB2b2xhdGlsZSBU
aHJlYWRJZGVudGlmaWVyIG1fZ3JhcGhPd25lclRocmVhZDsgLy8gaWYgdGhlIGxvY2sgaXMgaGVs
ZCB0aGVuIHRoaXMgaXMgdGhlIHRocmVhZCB3aGljaCBvd25zIGl0LCBvdGhlcndpc2UgPT0gVW5k
ZWZpbmVkVGhyZWFkSWRlbnRpZmllcgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDEzICs2MywxMyBAQCBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBNZWRpYVN0CiAKIHZvaWQgTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZTo6YWRkQXVkaW9Db25zdW1lcihQYXNzUmVmUHRyPEF1ZGlvRGVzdGluYXRpb25D
b25zdW1lcj4gY29uc3VtZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXVkaW9Db25z
dW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7
CiAgICAgbV9hdWRpb0NvbnN1bWVycy5hcHBlbmQoY29uc3VtZXIpOwogfQogCiBib29sIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIoQXVkaW9EZXN0aW5hdGlvbkNv
bnN1bWVyKiBjb25zdW1lcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdWRpb0NvbnN1
bWVyc0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsK
ICAgICBzaXplX3QgcG9zID0gbV9hdWRpb0NvbnN1bWVycy5maW5kKGNvbnN1bWVyKTsKICAgICBp
ZiAocG9zICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIG1fYXVkaW9Db25zdW1lcnMucmVtb3ZlKHBv
cyk7CkBAIC04MCwxNCArODAsMTQgQEAgYm9vbCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpyZW1v
dmVBdWRpbwogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnNldEF1ZGlvRm9ybWF0KHNp
emVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9hdWRpb0NvbnN1bWVyc0xvY2spOwogICAgIGZvciAoYXV0byYgY29uc3VtZXIgOiBtX2F1ZGlv
Q29uc3VtZXJzKQogICAgICAgICBjb25zdW1lci0+c2V0Rm9ybWF0KG51bWJlck9mQ2hhbm5lbHMs
IHNhbXBsZVJhdGUpOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVB
dWRpbyhBdWRpb0J1cyogYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CiAgICAgZm9yIChhdXRvJiBjb25zdW1lciA6IG1fYXVk
aW9Db25zdW1lcnMpCiAgICAgICAgIGNvbnN1bWVyLT5jb25zdW1lQXVkaW8oYnVzLCBudW1iZXJP
ZkZyYW1lcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvRGVzdGlu
YXRpb25Db25zdW1lci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02
NSw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpOwogCiAg
ICAgU3RyaW5nIG1fZGV2aWNlSWQ7Ci0gICAgTXV0ZXggbV9hdWRpb0NvbnN1bWVyc0xvY2s7Cisg
ICAgTG9jayBtX2F1ZGlvQ29uc3VtZXJzTG9jazsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvRGVz
dGluYXRpb25Db25zdW1lcj4+IG1fYXVkaW9Db25zdW1lcnM7CiAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlcyBtX2N1cnJlbnRTdGF0ZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysr
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xvc2UoKQogICAgIEFT
U0VSVChjdXJyZW50VGhyZWFkKCkgPT0gZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFk
KCktPmdldFRocmVhZElEKCkpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOwogCiAgICAgICAgIC8vIENsZWFuIHVwIHRy
YW5zYWN0aW9ucyB0aGF0IGhhdmUgbm90IGJlZW4gc2NoZWR1bGVkIHlldDoKICAgICAgICAgLy8g
VHJhbnNhY3Rpb24gcGhhc2UgMSBjbGVhbnVwLiBTZWUgY29tbWVudCBvbiAiV2hhdCBoYXBwZW5z
IGlmIGEKQEAgLTM1Myw3ICszNTMsNyBAQCBib29sIERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZl
cmlmeShib29sCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHsKICAgICAgICAgLy8gTWFrZSBzdXJl
IHdlIHdhaXQgdGlsbCB0aGUgYmFja2dyb3VuZCByZW1vdmFsIG9mIHRoZSBlbXB0eSBkYXRhYmFz
ZSBmaWxlcyBmaW5pc2hlZCBiZWZvcmUgdHJ5aW5nIHRvIG9wZW4gYW55IGRhdGFiYXNlLgotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIoRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRl
eCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0
YWJhc2VNdXRleCgpKTsKICAgICB9CiAjZW5kaWYKIApAQCAtNTY1LDcgKzU2NSw3IEBAIHZvaWQg
RGF0YWJhc2U6OnNjaGVkdWxlVHJhbnNhY3Rpb24oKQogCiBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0
aW9uQmFja2VuZD4gRGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FMVHJhbnNh
Y3Rpb24+IHRyYW5zYWN0aW9uLCBib29sIHJlYWRPbmx5LCBjb25zdCBDaGFuZ2VWZXJzaW9uRGF0
YSogZGF0YSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jl
c3NNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NN
dXRleCk7CiAgICAgaWYgKCFtX2lzVHJhbnNhY3Rpb25RdWV1ZUVuYWJsZWQpCiAgICAgICAgIHJl
dHVybiAwOwogCkBAIC01OTMsMTQgKzU5MywxNCBAQCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRy
YW5zYWN0aW9uU3RlcChTCiAKIHZvaWQgRGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNv
bXBsZXRlZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dy
ZXNzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dyZXNz
TXV0ZXgpOwogICAgIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzID0gZmFsc2U7CiAgICAgc2NoZWR1
bGVUcmFuc2FjdGlvbigpOwogfQogCiBib29sIERhdGFiYXNlOjpoYXNQZW5kaW5nVHJhbnNhY3Rp
b24oKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4
KTsKICAgICByZXR1cm4gbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3MgfHwgIW1fdHJhbnNhY3Rpb25R
dWV1ZS5pc0VtcHR5KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlRXJyb3IuaCIK
ICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2Miw3ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxEYXRhYmFzZUF1dGhvcml6ZXI+IG1fZGF0YWJhc2VBdXRob3JpemVyOwogCiAgICAgRGVxdWU8
UmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4+IG1fdHJhbnNhY3Rpb25RdWV1ZTsKLSAgICBN
dXRleCBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4OworICAgIExvY2sgbV90cmFuc2FjdGlv
bkluUHJvZ3Jlc3NNdXRleDsKICAgICBib29sIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzOwogICAg
IGJvb2wgbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFibGVkOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VGFzay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUzLDcgKzUz
LDcgQEAgdm9pZCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6OnRhc2tDb21wbAogewogICAgIG1f
c3luY2hyb25vdXNNdXRleC5sb2NrKCk7CiAgICAgbV90YXNrQ29tcGxldGVkID0gdHJ1ZTsKLSAg
ICBtX3N5bmNocm9ub3VzQ29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1fc3luY2hyb25vdXNDb25k
aXRpb24ubm90aWZ5T25lKCk7CiAgICAgbV9zeW5jaHJvbm91c011dGV4LnVubG9jaygpOwogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUYXNrLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMxLDggKzMxLDkgQEAKICNpbmNsdWRlICJEYXRhYmFzZUJhc2ljVHlwZXMuaCIKICNp
bmNsdWRlICJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25CYWNrZW5k
LmgiCisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC01OCw4ICs1OSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBib29sIG1fdGFza0Nv
bXBsZXRlZDsKLSAgICBNdXRleCBtX3N5bmNocm9ub3VzTXV0ZXg7Ci0gICAgVGhyZWFkQ29uZGl0
aW9uIG1fc3luY2hyb25vdXNDb25kaXRpb247CisgICAgTG9jayBtX3N5bmNocm9ub3VzTXV0ZXg7
CisgICAgQ29uZGl0aW9uIG1fc3luY2hyb25vdXNDb25kaXRpb247CiAjaWZuZGVmIE5ERUJVRwog
ICAgIGJvb2wgbV9oYXNDaGVja2VkRm9yVGVybWluYXRpb247CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBE
YXRhYmFzZVRocmVhZDo6fkRhdGFiYXNlVGhyZWFkKCkKIAogYm9vbCBEYXRhYmFzZVRocmVhZDo6
c3RhcnQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKIAogICAgIGlmICht
X3RocmVhZElEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lk
IERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZCgpCiB7CiAgICAgewogICAgICAgICAvLyBX
YWl0IGZvciBEYXRhYmFzZVRocmVhZDo6c3RhcnQoKSB0byBjb21wbGV0ZS4KLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJT
dGFydGVkIERhdGFiYXNlVGhyZWFkICVwIiwgdGhpcyk7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCShy
ZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgdm9pZCBkYXRhYmFzZVRocmVhZFN0YXJ0KHZvaWQqKTsKICAgICB2b2lkIGRh
dGFiYXNlVGhyZWFkKCk7CiAKLSAgICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CisgICAg
TG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVh
ZElEOwogICAgIFJlZlB0cjxEYXRhYmFzZVRocmVhZD4gbV9zZWxmUmVmOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNr
ZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcg
QEAgRGF0YWJhc2VUcmFja2VyOjpEYXRhYmFzZVRyYWNrZXIoY29uc3QgUwogCiB2b2lkIERhdGFi
YXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIEFTU0VSVCghbV9k
YXRhYmFzZS5pc09wZW4oKSk7CiAgICAgbV9kYXRhYmFzZURpcmVjdG9yeVBhdGggPSBwYXRoLmlz
b2xhdGVkQ29weSgpOwogfQpAQCAtMTY2LDcgKzE2Niw3IEBAIGJvb2wgRGF0YWJhc2VUcmFja2Vy
OjpjYW5Fc3RhYmxpc2hEYXRhYmEKIHsKICAgICBlcnJvciA9IERhdGFiYXNlRXJyb3I6Ok5vbmU7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIFNlY3VyaXR5T3Jp
Z2luKiBvcmlnaW4gPSBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpOwogCiAgICAgaWYgKGlzRGVs
ZXRpbmdEYXRhYmFzZU9yT3JpZ2luRm9yKG9yaWdpbiwgbmFtZSkpIHsKQEAgLTIxOCw3ICsyMTgs
NyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6cmV0cnlDYW5Fc3RhYmxpc2hECiB7CiAgICAgZXJy
b3IgPSBEYXRhYmFzZUVycm9yOjpOb25lOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNl
KG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFz
ZUd1YXJkKTsKICAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gY29udGV4dC0+c2VjdXJpdHlP
cmlnaW4oKTsKIAogICAgIC8vIFdlIGhhdmUgYWxyZWFkeSBlbGltaW5hdGVkIG90aGVyIHR5cGVz
IG9mIGVycm9ycyBpbiBjYW5Fc3RhYmxpc2hEYXRhYmFzZSgpLgpAQCAtMjU3LDcgKzI1Nyw3IEBA
IGJvb2wgRGF0YWJhc2VUcmFja2VyOjpoYXNFbnRyeUZvck9yaWdpbk4KIAogYm9vbCBEYXRhYmFz
ZVRyYWNrZXI6Omhhc0VudHJ5Rm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hv
bGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICByZXR1cm4gaGFzRW50cnlG
b3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKIH0KIApAQCAtMjg2LDcgKzI4Niw3IEBAIHVuc2lnbmVk
IGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OmdldE0KIHsKICAgICAvLyBUaGUgbWF4aW11bSBz
aXplIGZvciBhIGRhdGFiYXNlIGlzIHRoZSBmdWxsIHF1b3RhIGZvciBpdHMgb3JpZ2luLCBtaW51
cyB0aGUgY3VycmVudCB1c2FnZSB3aXRoaW4gdGhlIG9yaWdpbiwKICAgICAvLyBwbHVzIHRoZSBj
dXJyZW50IHVzYWdlIG9mIHRoZSBnaXZlbiBkYXRhYmFzZQotICAgIE11dGV4TG9ja2VyIGxvY2tE
YXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1f
ZGF0YWJhc2VHdWFyZCk7CiAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGRhdGFiYXNlLT5z
ZWN1cml0eU9yaWdpbigpOwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhID0gcXVvdGFG
b3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKQEAgLTMxMSw3ICszMTEsNyBAQCB2b2lkIERhdGFiYXNl
VHJhY2tlcjo6Y2xvc2VBbGxEYXRhYmFzZXMoCiB7CiAgICAgVmVjdG9yPFJlZjxEYXRhYmFzZT4+
IG9wZW5EYXRhYmFzZXM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBvcGVuRGF0YWJhc2VN
YXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAgICBMb2NrSG9sZGVyIG9wZW5E
YXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CiAgICAgICAgIGlmICghbV9v
cGVuRGF0YWJhc2VNYXApCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGZvciAoYXV0byYg
bmFtZU1hcCA6IG1fb3BlbkRhdGFiYXNlTWFwLT52YWx1ZXMoKSkgewpAQCAtMzg5LDEzICszODks
MTMgQEAgU3RyaW5nIERhdGFiYXNlVHJhY2tlcjo6ZnVsbFBhdGhGb3JEYXRhYgogCiBTdHJpbmcg
RGF0YWJhc2VUcmFja2VyOjpmdWxsUGF0aEZvckRhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5vdEV4aXN0cykKIHsKLSAgICBN
dXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIHJldHVybiBmdWxsUGF0aEZvckRh
dGFiYXNlTm9Mb2NrKG9yaWdpbiwgbmFtZSwgY3JlYXRlSWZOb3RFeGlzdHMpLmlzb2xhdGVkQ29w
eSgpOwogfQogCiB2b2lkIERhdGFiYXNlVHJhY2tlcjo6b3JpZ2lucyhWZWN0b3I8UmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPj4mIG9yaWdpbnNSZXN1bHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0Rh
dGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKIAogICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9l
c05vdEV4aXN0KTsKICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCkBAIC00NDgsNyArNDQ4
LDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRhdGFiYXNlTmFtZXNGb3JPcgogewogICAgIFZl
Y3RvcjxTdHJpbmc+IHRlbXA7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJh
c2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKICAgICAgICAgaWYgKCFkYXRhYmFzZU5hbWVzRm9yT3JpZ2luTm9Mb2Nr
KG9yaWdpbiwgdGVtcCkpCiAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTQ2NSw3
ICs0NjUsNyBAQCBEYXRhYmFzZURldGFpbHMgRGF0YWJhc2VUcmFja2VyOjpkZXRhaWxzCiAgICAg
aW50NjRfdCBleHBlY3RlZFVzYWdlOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
RGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJh
c2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRD
cmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkK
QEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEZXRh
aWxzCiAgICAgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIgPSBvcmlnaW4tPmRhdGFiYXNlSWRlbnRp
ZmllcigpOwogICAgIGludDY0X3QgZ3VpZCA9IDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0
YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2Rh
dGFiYXNlR3VhcmQpOwogCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShDcmVhdGVJZkRvZXNOb3RF
eGlzdCk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNTQ5LDcgKzU0OSw3IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXREYXRhYmFzZURldGFpbHMKIAogdm9pZCBEYXRhYmFz
ZVRyYWNrZXI6OmRvbmVDcmVhdGluZ0RhdGFiYXNlKERhdGFiYXNlKiBkYXRhYmFzZSkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIGRvbmVDcmVhdGluZ0RhdGFi
YXNlKGRhdGFiYXNlLT5zZWN1cml0eU9yaWdpbigpLCBkYXRhYmFzZS0+c3RyaW5nSWRlbnRpZmll
cigpKTsKIH0KIApAQCAtNTU5LDcgKzU1OSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjphZGRP
cGVuRGF0YWJhc2UoRGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAg
ICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7
CiAKICAgICAgICAgaWYgKCFtX29wZW5EYXRhYmFzZU1hcCkKICAgICAgICAgICAgIG1fb3BlbkRh
dGFiYXNlTWFwID0gc3RkOjptYWtlX3VuaXF1ZTxEYXRhYmFzZU9yaWdpbk1hcD4oKTsKQEAgLTU4
OSw3ICs1ODksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlT3BlbkRhdGFiYXNlCiAg
ICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNl
TWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVu
RGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogCiAgICAgICAgIGlmICgh
bV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtNjI5LDcgKzYyOSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVPcGVuRGF0YWJh
c2UKIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6OmdldE9wZW5EYXRhYmFzZXMoU2VjdXJpdHlPcmln
aW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBIYXNoU2V0PFJlZlB0cjxEYXRhYmFzZT4+
KiBkYXRhYmFzZXMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29w
ZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2so
bV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CiAgICAgaWYgKCFtX29wZW5EYXRhYmFzZU1hcCkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC02NDcsNyArNjQ3LDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6
OmdldE9wZW5EYXRhYmFzZXMoUwogCiBSZWZQdHI8T3JpZ2luTG9jaz4gRGF0YWJhc2VUcmFja2Vy
OjpvcmlnaW5Mb2NrRm9yKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0
YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICBTdHJpbmcgZGF0YWJhc2VJZGVudGlmaWVyID0g
b3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKTsKIAogICAgIC8vIFRoZSBvcmlnaW5Mb2NrTWFw
IGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgRGF0YWJhc2VUaHJlYWRzIHNpbmNlCkBAIC03Mjcs
MTMgKzcyNywxMyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFja2VyOjpxdW90CiAK
IHVuc2lnbmVkIGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OnF1b3RhRm9yT3JpZ2luKFNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0
YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJk
KTsKICAgICByZXR1cm4gcXVvdGFGb3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKIH0KIAogdm9pZCBE
YXRhYmFzZVRyYWNrZXI6OnNldFF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIHVuc2lnbmVk
IGxvbmcgbG9uZyBxdW90YSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OwogCiAgICAgaWYgKHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbikgPT0gcXVvdGEpCiAgICAg
ICAgIHJldHVybjsKQEAgLTg2NCw3ICs4NjQsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVs
ZXRlT3JpZ2luKFNlY3VyCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gZGF0YWJhc2VOYW1lczsKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgICAg
ICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgICAg
IGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTg5MCw3ICs4OTAsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKFNlY3Vy
CiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1
YXJkKTsKICAgICAgICAgZGVsZXRlT3JpZ2luTG9ja0ZvcihvcmlnaW4pOwogICAgICAgICBkb25l
RGVsZXRpbmdPcmlnaW4ob3JpZ2luKTsKIApAQCAtMTA3MSw3ICsxMDcxLDcgQEAgdm9pZCBEYXRh
YmFzZVRyYWNrZXI6OmRvbmVEZWxldGluZ09yaWdpbgogYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRl
bGV0ZURhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSkK
IHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3Vh
cmQpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwog
ICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAg
ICAgICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEwODYsMTIgKzEwODYsMTIgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURh
dGFiYXNlKFNlYwogICAgIC8vIFdlIGRyb3AgdGhlIGxvY2sgaGVyZSBiZWNhdXNlIGhvbGRpbmcg
bG9ja3MgZHVyaW5nIGEgY2FsbCB0byBkZWxldGVEYXRhYmFzZUZpbGUgd2lsbCBkZWFkbG9jay4K
ICAgICBpZiAoIWRlbGV0ZURhdGFiYXNlRmlsZShvcmlnaW4sIG5hbWUpKSB7CiAgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIGRlbGV0ZSBmaWxlIGZvciBkYXRhYmFzZSAlcyBpbiBvcmlnaW4g
JXMiLCBuYW1lLmFzY2lpKCkuZGF0YSgpLCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpLmFz
Y2lpKCkuZGF0YSgpKTsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJh
c2VHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFy
ZCk7CiAgICAgICAgIGRvbmVEZWxldGluZ0RhdGFiYXNlKG9yaWdpbiwgbmFtZSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3Vh
cmQpOwogCiAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiREVMRVRF
IEZST00gRGF0YWJhc2VzIFdIRVJFIG9yaWdpbj0/IEFORCBuYW1lPT8iKTsKICAgICBpZiAoc3Rh
dGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsKQEAgLTExMzEsNyArMTEzMSw3IEBAIGJv
b2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGUKIAogI2lmbmRlZiBOREVCVUcK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAg
ICAgICBBU1NFUlQoaXNEZWxldGluZ0RhdGFiYXNlT3JPcmlnaW5Gb3Iob3JpZ2luLCBuYW1lKSk7
CiAgICAgfQogI2VuZGlmCkBAIC0xMTQyLDcgKzExNDIsNyBAQCBib29sIERhdGFiYXNlVHJhY2tl
cjo6ZGVsZXRlRGF0YWJhc2VGaWxlCiAgICAgLy8gRGF0YWJhc2U6Om1hcmtBc0RlbGV0ZWRBbmRD
bG9zZSgpLCBzaW5jZSB0aGF0IGNhbiBjYXVzZSBhIGRlYWRsb2NrCiAgICAgLy8gZHVyaW5nIHRo
ZSBzeW5jaHJvbm91cyBEYXRhYmFzZVRocmVhZCBjYWxsIGl0IHRyaWdnZXJzLgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1
YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFi
YXNlTWFwR3VhcmQpOwogICAgICAgICBpZiAobV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAg
ICAgIC8vIFRoZXJlIGFyZSBzb21lIG9wZW4gZGF0YWJhc2VzLCBsZXRzIGNoZWNrIGlmIHRoZXkg
YXJlIGZvciB0aGlzIG9yaWdpbi4KICAgICAgICAgICAgIERhdGFiYXNlTmFtZU1hcCogbmFtZU1h
cCA9IG1fb3BlbkRhdGFiYXNlTWFwLT5nZXQob3JpZ2luKTsKQEAgLTExODUsNyArMTE4NSw3IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVEZWxldGVkT3BlbmUKICAgICAKICAgICB7CiAg
ICAgICAgIC8vIEFjcXVpcmUgdGhlIGxvY2sgYmVmb3JlIGNhbGxpbmcgb3BlblRyYWNrZXJEYXRh
YmFzZS4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAg
ICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9lc05vdEV4aXN0KTsKICAgICB9
CiAKQEAgLTEyMDEsNyArMTIwMSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVEZWxl
dGVkT3BlbmUKICAgICAvLyBEYXRhYmFzZTo6bWFya0FzRGVsZXRlZEFuZENsb3NlKCksIHNpbmNl
IHRoYXQgY2FuIGNhdXNlIGEgZGVhZGxvY2sKICAgICAvLyBkdXJpbmcgdGhlIHN5bmNocm9ub3Vz
IERhdGFiYXNlVGhyZWFkIGNhbGwgaXQgdHJpZ2dlcnMuCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAg
ICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7
CiAgICAgICAgIGlmIChtX29wZW5EYXRhYmFzZU1hcCkgewogICAgICAgICAgICAgZm9yIChhdXRv
JiBvcGVuRGF0YWJhc2UgOiAqbV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAgICAgICAgICBh
dXRvJiBvcmlnaW4gPSBvcGVuRGF0YWJhc2Uua2V5OwpAQCAtMTMwNSw5ICsxMzA1LDkgQEAgYm9v
bCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZQogICAgIHJldHVybiBTUUxpdGVG
aWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiB9CiAKLU11dGV4JiBEYXRhYmFz
ZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKK0xvY2smIERhdGFiYXNlVHJhY2tlcjo6b3Bl
bkRhdGFiYXNlTXV0ZXgoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0
ZXg7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4OwogICAgIHJldHVybiBt
dXRleDsKIH0KIApAQCAtMTMzMCw5ICsxMzMwLDkgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnNl
dENsaWVudChEYXRhYmFzZQogICAgIG1fY2xpZW50ID0gY2xpZW50OwogfQogCi1zdGF0aWMgTXV0
ZXgmIG5vdGlmaWNhdGlvbk11dGV4KCkKK3N0YXRpYyBMb2NrJiBub3RpZmljYXRpb25NdXRleCgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBtdXRleDsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0x
MzQ2LDcgKzEzNDYsNyBAQCBzdGF0aWMgTm90aWZpY2F0aW9uUXVldWUmIG5vdGlmaWNhdGlvblF1
CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZChT
ZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG5vdGlmaWNhdGlvbk11dGV4KCkpOwogCiAgICAgbm90aWZpY2F0aW9uUXVldWUoKS5hcHBlbmQo
c3RkOjpwYWlyPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFN0cmluZz4ob3JpZ2luLT5pc29sYXRl
ZENvcHkoKSwgbmFtZS5pc29sYXRlZENvcHkoKSkpOwogICAgIHNjaGVkdWxlRm9yTm90aWZpY2F0
aW9uKCk7CkBAIC0xMzcyLDcgKzEzNzIsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6bm90aWZ5
RGF0YWJhc2VzQ2hhCiAKICAgICBOb3RpZmljYXRpb25RdWV1ZSBub3RpZmljYXRpb25zOwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKIAogICAgICAgICBu
b3RpZmljYXRpb25zLnN3YXAobm90aWZpY2F0aW9uUXVldWUoKSk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaAko
cmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1Ymxp
YzoKICAgICAvLyBNb2JpbGVTYWZhcmkgd2lsbCBncmFiIHRoaXMgbXV0ZXggb24gdGhlIG1haW4g
dGhyZWFkIGJlZm9yZSBkaXNwYXRjaGluZyB0aGUgdGFzayB0byAKICAgICAvLyBjbGVhbiB1cCB6
ZXJvIGJ5dGUgZGF0YWJhc2UgZmlsZXMuICBBbnkgb3BlcmF0aW9ucyB0byBvcGVuIG5ldyBkYXRh
YmFzZSB3aWxsIGhhdmUgdG8KICAgICAvLyB3YWl0IGZvciB0aGF0IHRhc2sgdG8gZmluaXNoIGJ5
IHdhaXRpbmcgb24gdGhpcyBtdXRleC4KLSAgICBzdGF0aWMgTXV0ZXgmIG9wZW5EYXRhYmFzZU11
dGV4KCk7CisgICAgc3RhdGljIExvY2smIG9wZW5EYXRhYmFzZU11dGV4KCk7CiAgICAgCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tX
aWxsQmVTY2hlZHVsZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURh
dGFiYXNlRmlsZXNSZW1vdmFsVGFza0RpZEZpbmlzaCgpOwpAQCAtMTUwLDExICsxNTAsMTEgQEAg
cHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBEYXRhYmFzZVNldCo+IERhdGFi
YXNlTmFtZU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwg
RGF0YWJhc2VOYW1lTWFwKj4gRGF0YWJhc2VPcmlnaW5NYXA7CiAKLSAgICBNdXRleCBtX29wZW5E
YXRhYmFzZU1hcEd1YXJkOworICAgIExvY2sgbV9vcGVuRGF0YWJhc2VNYXBHdWFyZDsKICAgICBt
dXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZU9yaWdpbk1hcD4gbV9vcGVuRGF0YWJhc2VN
YXA7CiAKICAgICAvLyBUaGlzIGxvY2sgcHJvdGVjdHMgbV9kYXRhYmFzZSwgbV9vcmlnaW5Mb2Nr
TWFwLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgbV9vcmlnaW5zQmVpbmdEZWxldGVkLCBtX2Jl
aW5nQ3JlYXRlZCwgYW5kIG1fYmVpbmdEZWxldGVkLgotICAgIE11dGV4IG1fZGF0YWJhc2VHdWFy
ZDsKKyAgICBMb2NrIG1fZGF0YWJhc2VHdWFyZDsKICAgICBTUUxpdGVEYXRhYmFzZSBtX2RhdGFi
YXNlOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE9yaWdpbkxvY2s+PiBP
cmlnaW5Mb2NrTWFwOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9P
cmlnaW5Mb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsy
Nyw4IEBACiAjZGVmaW5lIE9yaWdpbkxvY2tfaAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgor
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsNyArNDgsNyBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyBTdHJpbmcgbG9ja0ZpbGVOYW1lRm9yUGF0aChTdHJpbmcg
b3JpZ2luUGF0aCk7CiAKICAgICBTdHJpbmcgbV9sb2NrRmlsZU5hbWU7Ci0gICAgTXV0ZXggbV9t
dXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAjaWYgVVNFKEZJTEVfTE9DSykKICAgICBQbGF0Zm9y
bUZpbGVIYW5kbGUgbV9sb2NrSGFuZGxlOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmgJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
Q2FsbGJhY2tXcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNkZWZp
bmUgU1FMQ2FsbGJhY2tXcmFwcGVyX2gKIAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTgsNyArNTgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRQdHI7CiAgICAgICAgIFQqIGNhbGxiYWNrOwogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X211dGV4KTsKICAgICAgICAgICAgIGlmICghbV9jYWxsYmFjaykgewogICAgICAgICAgICAgICAg
IEFTU0VSVCghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICAgICAgICAgICAgICByZXR1
cm47CkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8VD4gdW53cmFw
KCkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgICAgIEFTU0VSVCghbV9jYWxsYmFjayB8
fCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKICAgICAgICAg
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIG1fY2Fs
bGJhY2sucmVsZWFzZSgpOwpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXND
YWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KIAogcHJpdmF0ZToKLSAgICBN
dXRleCBtX211dGV4OworICAgIExvY2sgbV9tdXRleDsKICAgICBSZWZQdHI8VD4gbV9jYWxsYmFj
azsKICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25CYWNrZW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25C
YWNrZW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQgU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXAoKQogCiAgICAgcmVsZWFzZU9yaWdpbkxvY2tJZk5l
ZWRlZCgpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOwogICAgIG1fc3RhdGVtZW50UXVl
dWUuY2xlYXIoKTsKIAogICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uKSB7CkBAIC00NjUsNyAr
NDY1LDcgQEAgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpTdGF0ZUZ1bmN0aW9uIFNRTAogCiB2b2lk
IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZW5xdWV1ZVN0YXRlbWVudEJhY2tlbmQoc3RkOjp1bmlx
dWVfcHRyPFNRTFN0YXRlbWVudD4gc3RhdGVtZW50QmFja2VuZCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9zdGF0ZW1lbnRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zdGF0
ZW1lbnRNdXRleCk7CiAgICAgbV9zdGF0ZW1lbnRRdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKHN0YXRl
bWVudEJhY2tlbmQpKTsKIH0KIApAQCAtNjgxLDcgKzY4MSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rp
b25CYWNrZW5kOjpnZXROZXh0U3RhdGUKIHsKICAgICBtX2N1cnJlbnRTdGF0ZW1lbnRCYWNrZW5k
ID0gbnVsbHB0cjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsKICAgICBpZiAoIW1fc3Rh
dGVtZW50UXVldWUuaXNFbXB0eSgpKQogICAgICAgICBtX2N1cnJlbnRTdGF0ZW1lbnRCYWNrZW5k
ID0gbV9zdGF0ZW1lbnRRdWV1ZS50YWtlRmlyc3QoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tl
bmQuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDEzLCAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRp
dmVzLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3JlYWRPbmx5OwogICAgIGJvb2wgbV9oYXNWZXJzaW9uTWlzbWF0Y2g7CiAK
LSAgICBNdXRleCBtX3N0YXRlbWVudE11dGV4OworICAgIExvY2sgbV9zdGF0ZW1lbnRNdXRleDsK
ICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8U1FMU3RhdGVtZW50Pj4gbV9zdGF0ZW1lbnRRdWV1
ZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTUUxpdGVUcmFuc2FjdGlvbj4gbV9zcWxpdGVUcmFu
c2FjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1
bGVFeGUKICAgICAvLyBUaGUgbXV0ZXggcHJvdmlkZXMgYSBtZW1vcnkgYmFycmllciB0byBlbnN1
cmUgdGhhdCBvbmNlCiAgICAgLy8gdGVybWluYXRpb24gaXMgc2NoZWR1bGVkLCBpc0V4ZWN1dGlv
blRlcm1pbmF0aW5nIHdpbGwKICAgICAvLyBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhhdCBzdGF0ZSB3
aGVuIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkLgotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2No
ZWR1bGVkVGVybWluYXRpb25NdXRleCk7CiAgICAgaWYgKG1fdm0tPndhdGNoZG9nKQogICAgICAg
ICBtX3ZtLT53YXRjaGRvZy0+ZmlyZSgpOwogfQpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgV29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVFeGUKIGJvb2wgV29ya2VyU2NyaXB0Q29udHJv
bGxlcjo6aXNFeGVjdXRpb25UZXJtaW5hdGluZygpIGNvbnN0CiB7CiAgICAgLy8gU2VlIGNvbW1l
bnRzIGluIHNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24gcmVnYXJkaW5nIG11dGV4IHVzYWdl
LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRleCk7CiAgICAg
aWYgKG1fdm0tPndhdGNoZG9nKQogICAgICAgICByZXR1cm4gbV92bS0+d2F0Y2hkb2ctPmRpZEZp
cmUoKTsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCShyZXZpc2lvbiAxODg1NjkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
NSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMx
LDggKzMxLDggQEAKICNpbmNsdWRlIDxkZWJ1Z2dlci9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGhl
YXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9OYWtlZFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KIAogbmFtZXNwYWNlIERlcHJlY2F0ZWQgewogY2xhc3MgU2NyaXB0VmFsdWU7CkBAIC05Nyw3
ICs5Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUq
IG1fd29ya2VyR2xvYmFsU2NvcGU7CiAgICAgICAgIEpTQzo6U3Ryb25nPEpTV29ya2VyR2xvYmFs
U2NvcGU+IG1fd29ya2VyR2xvYmFsU2NvcGVXcmFwcGVyOwogICAgICAgICBib29sIG1fZXhlY3V0
aW9uRm9yYmlkZGVuOwotICAgICAgICBtdXRhYmxlIE11dGV4IG1fc2NoZWR1bGVkVGVybWluYXRp
b25NdXRleDsKKyAgICAgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRl
eDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDcgKzg4LDcg
QEAgdm9pZCBNZXNzYWdlUG9ydENoYW5uZWw6OmRpc2VudGFuZ2xlKCkKIAogdm9pZCBNZXNzYWdl
UG9ydENoYW5uZWw6OnBvc3RNZXNzYWdlVG9SZW1vdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eT4gY2hhbm5lbHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIGlmICghbV9j
aGFubmVsLT5tX291dGdvaW5nUXVldWUpCiAgICAgICAgIHJldHVybjsKICAgICBib29sIHdhc0Vt
cHR5ID0gbV9jaGFubmVsLT5tX291dGdvaW5nUXVldWUtPmFwcGVuZEFuZENoZWNrRW1wdHkoc3Rk
OjptYWtlX3VuaXF1ZTxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhPihtZXNz
YWdlLCBXVEY6Om1vdmUoY2hhbm5lbHMpKSk7CkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgTWVzc2Fn
ZVBvcnRDaGFubmVsOjpwb3N0TWVzc2FnZVRvUmUKIAogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6
OnRyeUdldE1lc3NhZ2VGcm9tUmVtb3RlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiBt
ZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiBjaGFubmVs
cykKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CiAgICAgYXV0byByZXN1bHQgPSBtX2No
YW5uZWwtPm1faW5jb21pbmdRdWV1ZS0+dHJ5R2V0TWVzc2FnZSgpOwogICAgIGlmICghcmVzdWx0
KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMjEsMjAgKzEyMSwyMCBAQCB2b2lkIE1lc3Nh
Z2VQb3J0Q2hhbm5lbDo6Y2xvc2UoKQogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6OmlzQ29ubmVj
dGVkVG8oTWVzc2FnZVBvcnQqIHBvcnQpCiB7CiAgICAgLy8gRklYTUU6IFdoYXQgZ3VhcmFudGVl
cyB0aGF0IHRoZSByZXN1bHQgcmVtYWlucyB0aGUgc2FtZSBhZnRlciB3ZSByZWxlYXNlIHRoZSBs
b2NrPwotICAgIE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICByZXR1cm4gbV9jaGFubmVsLT5t
X3JlbW90ZVBvcnQgPT0gcG9ydDsKIH0KIAogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6Omhhc1Bl
bmRpbmdBY3Rpdml0eSgpCiB7CiAgICAgLy8gRklYTUU6IFdoYXQgZ3VhcmFudGVlcyB0aGF0IHRo
ZSByZXN1bHQgcmVtYWlucyB0aGUgc2FtZSBhZnRlciB3ZSByZWxlYXNlIHRoZSBsb2NrPwotICAg
IE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICByZXR1cm4gIW1fY2hhbm5lbC0+bV9pbmNvbWlu
Z1F1ZXVlLT5pc0VtcHR5KCk7CiB9CiAKIE1lc3NhZ2VQb3J0KiBNZXNzYWdlUG9ydENoYW5uZWw6
OmxvY2FsbHlFbnRhbmdsZWRQb3J0KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIC8vIFNlZSBpZiBib3RoIGNv
bnRleHRzIGFyZSBydW4gYnkgdGhlIHNhbWUgdGhyZWFkIChhcmUgdGhlIHNhbWUgY29udGV4dCwg
b3IgYXJlIGJvdGggZG9jdW1lbnRzKS4KICAgICBpZiAobV9jaGFubmVsLT5tX3JlbW90ZVBvcnQp
IHsKICAgICAgICAgLy8gVGhlIHJlbW90ZSBwb3J0J3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBp
cyBndWFyYW50ZWVkIG5vdCB0byBjaGFuZ2UgaGVyZSAtIE1lc3NhZ2VQb3J0Ojpjb250ZXh0RGVz
dHJveWVkKCkKQEAgLTE2NCw3ICsxNjQsNyBAQCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6
flBsYXRmb3JtTWVzCiAKIHZvaWQgUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OnNldFJlbW90
ZVBvcnQoTWVzc2FnZVBvcnQqIHBvcnQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgLy8gU2hvdWxkIG5ldmVyIHNl
dCBwb3J0IGlmIGl0IGlzIGFscmVhZHkgc2V0LgogICAgIEFTU0VSVCghcG9ydCB8fCAhbV9yZW1v
dGVQb3J0KTsKICAgICBtX3JlbW90ZVBvcnQgPSBwb3J0OwpAQCAtMTc1LDEzICsxNzUsMTMgQEAg
UGFzc1JlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gUAogICAgIC8vIEZJWE1FOiBX
aGF0IGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVzdWx0IHJlbWFpbnMgdGhlIHNhbWUgYWZ0ZXIgd2Ug
cmVsZWFzZSB0aGUgbG9jaz8KICAgICAvLyBUaGlzIGxvY2sgb25seSBndWFyYW50ZWVzIHRoYXQg
dGhlIHJldHVybmVkIHBvaW50ZXIgd2lsbCBub3QgYmUgcG9pbnRpbmcgdG8gcmVsZWFzZWQgbWVt
b3J5LAogICAgIC8vIGJ1dCBub3QgdGhhdCBpdCB3aWxsIHN0aWxsIGJlIHBvaW50aW5nIHRvIHRo
aXMgb2JqZWN0J3MgZW50YW5nbGVkIHBvcnQgY2hhbm5lbC4KLSAgICBNdXRleExvY2tlciBsb2Nr
KG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICByZXR1cm4gbV9l
bnRhbmdsZWRDaGFubmVsOwogfQogCiB2b2lkIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpj
bG9zZUludGVybmFsKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJv
bSB0aGUgb3RoZXIgZW5kLiBXZSBzdGlsbCBtYWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5j
b21pbmcgcXVldWUsIHNpbmNlIHByZXZpb3VzbHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0
aWxsIGJlIGRlbGl2ZXJlZC4KICAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOwogICAgIG1fZW50
YW5nbGVkQ2hhbm5lbCA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVs
dC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDggKzk1LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIHNldFJlbW90ZVBvcnQoTWVzc2FnZVBvcnQqKTsKICAgICAgICAg
dm9pZCBjbG9zZUludGVybmFsKCk7CiAKLSAgICAgICAgLy8gTXV0ZXggdXNlZCB0byBlbnN1cmUg
ZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgb2JqZWN0IGludGVybmFscy4KLSAgICAgICAgTXV0ZXgg
bV9tdXRleDsKKyAgICAgICAgLy8gTG9jayB1c2VkIHRvIGVuc3VyZSBleGNsdXNpdmUgYWNjZXNz
IHRvIHRoZSBvYmplY3QgaW50ZXJuYWxzLgorICAgICAgICBMb2NrIG1fbXV0ZXg7CiAKICAgICAg
ICAgLy8gUG9pbnRlciB0byBvdXIgZW50YW5nbGVkIHBhaXIgLSBjbGVhcmVkIHdoZW4gY2xvc2Uo
KSBpcyBjYWxsZWQuCiAgICAgICAgIFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4g
bV9lbnRhbmdsZWRDaGFubmVsOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODYsNyArMTg2LDcg
QEAgdm9pZCBJY29uRGF0YWJhc2U6OnJlbW92ZUFsbEljb25zKCkKICAgICAKICAgICAvLyBDbGVh
ciB0aGUgaW4tbWVtb3J5IHJlY29yZCBvZiBldmVyeSBJY29uUmVjb3JkLCBhbnl0aGluZyB3YWl0
aW5nIHRvIGJlIHJlYWQgZnJvbSBkaXNrLCBhbmQgYW55dGhpbmcgd2FpdGluZyB0byBiZSB3cml0
dGVuIHRvIGRpc2sKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAg
ICAgICAgIAogICAgICAgICAvLyBDbGVhciB0aGUgSWNvblJlY29yZHMgZm9yIGV2ZXJ5IHBhZ2Ug
VVJMIC0gUmVmQ291bnRpbmcgd2lsbCBjYXVzZSB0aGUgSWNvblJlY29yZHMgdGhlbXNlbHZlcyB0
byBiZSBkZWxldGVkCiAgICAgICAgIC8vIFdlIGRvbid0IGRlbGV0ZSB0aGUgYWN0dWFsIFBhZ2VS
ZWNvcmRzIGJlY2F1c2Ugd2UgaGF2ZSB0aGUgInJldGFpbiBpY29uIGZvciB1cmwiIGNvdW50IHRv
IGtlZXAgdHJhY2sgb2YKQEAgLTIwMCwxNCArMjAwLDE0IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpy
ZW1vdmVBbGxJY29ucygpCiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAvLyBDbGVhciBh
bGwgaW4tbWVtb3J5IHJlY29yZHMgb2YgdGhpbmdzIHRoYXQgbmVlZCB0byBiZSBzeW5jZWQgb3V0
IHRvIGRpc2sKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVu
ZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5
bmNMb2NrKTsKICAgICAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nU3luYy5jbGVhcigpOwogICAg
ICAgICAgICAgbV9pY29uc1BlbmRpbmdTeW5jLmNsZWFyKCk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIC8vIENsZWFyIGFsbCBpbi1tZW1vcnkgcmVjb3JkcyBvZiB0aGluZ3MgdGhhdCBu
ZWVkIHRvIGJlIHJlYWQgaW4gZnJvbSBkaXNrCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxz
UGVuZGluZ0ltcG9ydC5jbGVhcigpOwogICAgICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJ
bkljb25zLmNsZWFyKCk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcuY2xlYXIo
KTsKQEAgLTIyOSw3ICsyMjksNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0lj
b25Gb3JQCiAgICAgaWYgKCFpc09wZW4oKSB8fCAhZG9jdW1lbnRDYW5IYXZlSWNvbihwYWdlVVJM
T3JpZ2luYWwpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKIAogICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMoKTsKICAg
ICAKQEAgLTI0NSw3ICsyNDUsNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0lj
b25Gb3JQCiAgICAgLy8gMSAtIFRoZSBpbml0aWFsIHVybCBpbXBvcnQgaXMgaW5jb21wbGV0ZSBh
bmQgdGhpcyBwYWdlVVJMIHdhcyBtYXJrZWQgdG8gYmUgbm90aWZpZWQgb25jZSBpdCBpcyBjb21w
bGV0ZSBpZiBhbiBpY29uVVJMIGV4aXN0cwogICAgIC8vIDIgLSBUaGUgaW5pdGlhbCB1cmwgaW1w
b3J0IElTIGNvbXBsZXRlIGFuZCB0aGlzIHBhZ2VVUkwgaGFzIG5vIGljb24KICAgICBpZiAoIXBh
Z2VSZWNvcmQpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdM
b2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwog
ICAgICAgICAKICAgICAgICAgLy8gSW1wb3J0IGlzIG9uZ29pbmcsIHRoZXJlIG1pZ2h0IGJlIGFu
IGljb24uICBJbiB0aGlzIGNhc2UsIHJlZ2lzdGVyIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGlj
b24gY29tZXMgaW4KICAgICAgICAgLy8gSWYgd2UgZXZlciByZWFjaCB0aGlzIGNvbmRpdGlvbiwg
d2Uga25vdyB3ZSd2ZSBhbHJlYWR5IG1hZGUgdGhlIHBhZ2VVUkwgY29weQpAQCAtMjc2LDcgKzI3
Niw3IEBAIEltYWdlKiBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzSWNvbkZvclAKICAgICAgICAg
aWYgKHBhZ2VVUkxDb3B5LmlzTnVsbCgpKQogICAgICAgICAgICAgcGFnZVVSTENvcHkgPSBwYWdl
VVJMT3JpZ2luYWwuaXNvbGF0ZWRDb3B5KCk7CiAgICAgCi0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
cGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJbkljb25z
LmFkZChwYWdlVVJMQ29weSk7CiAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5hZGQoaWNv
blJlY29yZCk7CiAgICAgICAgIHdha2VTeW5jVGhyZWFkKCk7CkBAIC0zMDcsNyArMzA3LDcgQEAg
UGFzc05hdGl2ZUltYWdlUHRyIEljb25EYXRhYmFzZTo6c3luY2hybwogICAgIGlmICghaWNvbikK
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29u
TG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgcmV0
dXJuIGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CiB9CiAKQEAgLTMyOSw3ICsz
MjksNyBAQCBTdHJpbmcgSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25VUkxGCiAgICAgaWYg
KCFpc09wZW4oKSB8fCAhZG9jdW1lbnRDYW5IYXZlSWNvbihwYWdlVVJMT3JpZ2luYWwpKQogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKICAgICAKICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVjb3JkID0gbV9wYWdlVVJMVG9SZWNv
cmRNYXAuZ2V0KHBhZ2VVUkxPcmlnaW5hbCk7CiAgICAgaWYgKCFwYWdlUmVjb3JkKQpAQCAtNDE3
LDcgKzQxNyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpyZXRhaW5JY29uRm9yUGFnZVVSTCgKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxz
VG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxz
VG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKICAgICAgICAgbV91cmxzVG9SZXRhaW4uYWRkKHBhZ2VV
UkwuaXNvbGF0ZWRDb3B5KCkpOwogICAgICAgICBtX3JldGFpbk9yUmVsZWFzZUljb25SZXF1ZXN0
ZWQgPSB0cnVlOwogICAgIH0KQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6
cGVyZm9ybVJldGFpbkljb25Gb3JQCiAgICAgICAgIGlmICghbV9pY29uVVJMSW1wb3J0Q29tcGxl
dGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
cGVuZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3lu
Y0xvY2spOwogICAgICAgICAvLyBJZiB0aGlzIHBhZ2VVUkwgd2FpdGluZyB0byBiZSBzeW5jJ2Vk
LCB1cGRhdGUgdGhlIHN5bmMgcmVjb3JkCiAgICAgICAgIC8vIFRoaXMgc2F2ZXMgdXMgaW4gdGhl
IGNhc2Ugd2hlcmUgYSBwYWdlIHdhcyByZWFkeSB0byBiZSBkZWxldGVkIGZyb20gdGhlIGRhdGFi
YXNlIGJ1dCB3YXMganVzdCByZXRhaW5lZCAtIHNvIHRoZXJlcyBubyBuZWVkIHRvIGRlbGV0ZSBp
dCEKICAgICAgICAgaWYgKCFtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgJiYgbV9wYWdlVVJMc1Bl
bmRpbmdTeW5jLmNvbnRhaW5zKHBhZ2VVUkwpKSB7CkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnJlbGVhc2VJY29uRm9yUGFnZVVSTAogICAgICAgICByZXR1cm47CiAKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2spOwogICAgICAgICBtX3VybHNUb1JlbGVhc2UuYWRkKHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCkp
OwogICAgICAgICBtX3JldGFpbk9yUmVsZWFzZUljb25SZXF1ZXN0ZWQgPSB0cnVlOwogICAgIH0K
QEAgLTUwNiw3ICs1MDYsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29u
Rm9yCiAgICAgQVNTRVJUKCFpY29uUmVjb3JkIHx8IChpY29uUmVjb3JkICYmIG1faWNvblVSTFRv
UmVjb3JkTWFwLmdldChpY29uUmVjb3JkLT5pY29uVVJMKCkpID09IGljb25SZWNvcmQpKTsKIAog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAg
ICAKICAgICAgICAgLy8gU2luY2UgdGhpcyBwYWdlVVJMIGlzIGdvaW5nIGF3YXksIHRoZXJlJ3Mg
bm8gcmVhc29uIGFueW9uZSB3b3VsZCBldmVyIGJlIGludGVyZXN0ZWQgaW4gaXRzIHJlYWQgcmVz
dWx0cyAgICAKICAgICAgICAgaWYgKCFtX2ljb25VUkxJbXBvcnRDb21wbGV0ZSkKQEAgLTUyMiw3
ICs1MjIsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29uRm9yCiAgICAg
CiAgICAgLy8gTWFyayBzdHVmZiBmb3IgZGVsZXRpb24gZnJvbSB0aGUgZGF0YWJhc2Ugb25seSBp
ZiB3ZSdyZSBub3QgaW4gcHJpdmF0ZSBicm93c2luZwogICAgIGlmICghbV9wcml2YXRlQnJvd3Np
bmdFbmFibGVkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9j
ayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKICAgICAg
ICAgbV9wYWdlVVJMc1BlbmRpbmdTeW5jLnNldChwYWdlVVJMT3JpZ2luYWwuaXNvbGF0ZWRDb3B5
KCksIHBhZ2VSZWNvcmQtPnNuYXBzaG90KHRydWUpKTsKICAgICAKICAgICAgICAgLy8gSWYgdGhp
cyBwYWdlIGlzIHRoZSBsYXN0IHBhZ2UgdG8gcmVmZXIgdG8gYSBwYXJ0aWN1bGFyIEljb25SZWNv
cmQsIHRoYXQgSWNvblJlY29yZCBuZWVkcyB0bwpAQCAtNTQ4LDEyICs1NDgsMTIgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVSTAogICAgIAogICAgIFZlY3RvcjxTdHJp
bmc+IHBhZ2VVUkxzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsK
ICAgICAKICAgICAgICAgLy8gSWYgdGhpcyBpY29uIHdhcyBwZW5kaW5nIGEgcmVhZCwgcmVtb3Zl
IGl0IGZyb20gdGhhdCBzZXQgYmVjYXVzZSB0aGlzIG5ldyBkYXRhIHNob3VsZCBvdmVycmlkZSB3
aGF0IGlzIG9uIGRpc2sKICAgICAgICAgUmVmUHRyPEljb25SZWNvcmQ+IGljb24gPSBtX2ljb25V
UkxUb1JlY29yZE1hcC5nZXQoaWNvblVSTCk7CiAgICAgICAgIGlmIChpY29uKSB7Ci0gICAgICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAg
bV9pY29uc1BlbmRpbmdSZWFkaW5nLnJlbW92ZShpY29uLmdldCgpKTsKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBpY29uID0gZ2V0T3JDcmVhdGVJY29uUmVjb3JkKGljb25VUkwpOwpAQCAt
NTY3LDcgKzU2Nyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvckljb25VUkwK
ICAgICAgICAgCiAgICAgICAgIC8vIE1hcmsgdGhlIEljb25SZWNvcmQgYXMgcmVxdWlyaW5nIGFu
IHVwZGF0ZSB0byB0aGUgZGF0YWJhc2Ugb25seSBpZiBwcml2YXRlIGJyb3dzaW5nIGlzIGRpc2Fi
bGVkCiAgICAgICAgIGlmICghbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKSB7Ci0gICAgICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgbV9pY29uc1Bl
bmRpbmdTeW5jLnNldChpY29uVVJMLCBpY29uLT5zbmFwc2hvdCgpKTsKICAgICAgICAgfQogCkBA
IC02MDgsNyArNjA4LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJM
KAogICAgIFN0cmluZyBpY29uVVJMLCBwYWdlVVJMOwogICAgIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKIAogICAgICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVj
b3JkID0gbV9wYWdlVVJMVG9SZWNvcmRNYXAuZ2V0KHBhZ2VVUkxPcmlnaW5hbCk7CiAgICAgICAg
IApAQCAtNjM2LDEzICs2MzYsMTMgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQ
YWdlVVJMKAogICAgICAgICAgICAgQVNTRVJUKGljb25SZWNvcmQtPnJldGFpbmluZ1BhZ2VVUkxz
KCkuc2l6ZSgpID09IDApOwogICAgICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIkljb24gZm9y
IGljb24gdXJsICVzIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZCAtIHJlbW92aW5nIG1hcHBpbmcg
Zm9yIGl0IiwgdXJsRm9yTG9nZ2luZyhpY29uUmVjb3JkLT5pY29uVVJMKCkpLmFzY2lpKCkuZGF0
YSgpKTsKICAgICAgICAgICAgIG1faWNvblVSTFRvUmVjb3JkTWFwLnJlbW92ZShpY29uUmVjb3Jk
LT5pY29uVVJMKCkpOwotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1Jl
YWRpbmdMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRp
bmdMb2NrKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5yZW1vdmUoaWNvblJl
Y29yZC5nZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIEFuZCBtYXJrIHRo
aXMgbWFwcGluZyB0byBiZSBhZGRlZCB0byB0aGUgZGF0YWJhc2UKICAgICAgICAgaWYgKCFtX3By
aXZhdGVCcm93c2luZ0VuYWJsZWQpIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRp
bmdTeW5jTG9jayk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxzUGVuZGluZ1N5bmMuc2V0KHBhZ2VV
UkwsIHBhZ2VSZWNvcmQtPnNuYXBzaG90KCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAv
LyBJZiB0aGUgaWNvbiBpcyBvbiBpdHMgbGFzdCByZWYsIG1hcmsgaXQgZm9yIGRlbGV0aW9uCkBA
IC02NzQsNyArNjc0LDcgQEAgSWNvbkxvYWREZWNpc2lvbiBJY29uRGF0YWJhc2U6OnN5bmNocm9u
bwogICAgIC8vIDEgLSBXaGVuIHdlIHJlYWQgdGhlIGljb24gdXJscyBmcm9tIGRpc2ssIGdldHRp
bmcgdGhlIHRpbWVTdGFtcCBhdCB0aGUgc2FtZSB0aW1lCiAgICAgLy8gMiAtIFdoZW4gd2UgZ2V0
IGEgbmV3IGljb24gZnJvbSB0aGUgbG9hZGVyLCBpbiB3aGljaCBjYXNlIHRoZSB0aW1lc3RhbXAg
aXMgc2V0IGF0IHRoYXQgdGltZQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKICAgICAgICAgaWYgKEljb25SZWNvcmQqIGljb24gPSBtX2ljb25VUkxUb1JlY29yZE1h
cC5nZXQoaWNvblVSTCkpIHsKICAgICAgICAgICAgIExPRyhJY29uRGF0YWJhc2UsICJGb3VuZCBl
eHBpcmF0aW9uIHRpbWUgb24gYSBwcmVzZW50IGljb24gYmFzZWQgb24gZXhpc3RpbmcgSWNvblJl
Y29yZCIpOwogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oY3VycmVudFRpbWUo
KSkgLSBzdGF0aWNfY2FzdDxpbnQ+KGljb24tPmdldFRpbWVzdGFtcCgpKSA+IGljb25FeHBpcmF0
aW9uVGltZSA/IEljb25Mb2FkWWVzIDogSWNvbkxvYWRObzsKQEAgLTY4Miw3ICs2ODIsNyBAQCBJ
Y29uTG9hZERlY2lzaW9uIEljb25EYXRhYmFzZTo6c3luY2hyb25vCiAgICAgfQogICAgIAogICAg
IC8vIElmIHdlIGRvbid0IGhhdmUgYSByZWNvcmQgZm9yIGl0LCBidXQgd2UgKmhhdmUqIGltcG9y
dGVkIGFsbCBpY29uVVJMcyBmcm9tIGRpc2ssIHRoZW4gd2Ugc2hvdWxkIGxvYWQgaXQgbm93Ci0g
ICAgTXV0ZXhMb2NrZXIgcmVhZGluZ0xvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAg
TG9ja0hvbGRlciByZWFkaW5nTG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICBpZiAo
bV9pY29uVVJMSW1wb3J0Q29tcGxldGUpCiAgICAgICAgIHJldHVybiBJY29uTG9hZFllczsKICAg
ICAgICAgCkBAIC02OTksNyArNjk5LDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3Vz
SWNvbkRhdGFLbgogewogICAgIEFTU0VSVF9OT1RfU1lOQ19USFJFQUQoKTsKICAgICAKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgaWYgKEljb25SZWNvcmQqIGljb24gPSBtX2ljb25V
UkxUb1JlY29yZE1hcC5nZXQoaWNvblVSTCkpCiAgICAgICAgIHJldHVybiBpY29uLT5pbWFnZURh
dGFTdGF0dXMoKSAhPSBJbWFnZURhdGFTdGF0dXNVbmtub3duOwogCkBAIC03NTQsMjYgKzc1NCwy
NiBAQCB2b2lkIEljb25EYXRhYmFzZTo6Y2hlY2tJbnRlZ3JpdHlCZWZvcmVPCiAKIHNpemVfdCBJ
Y29uRGF0YWJhc2U6OnBhZ2VVUkxNYXBwaW5nQ291bnQoKQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKICAgICByZXR1cm4gbV9wYWdlVVJMVG9SZWNvcmRNYXAuc2l6ZSgpOwogfQogCiBz
aXplX3QgSWNvbkRhdGFiYXNlOjpyZXRhaW5lZFBhZ2VVUkxDb3VudCgpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOwogICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJh
dGlvbnMoKTsKICAgICByZXR1cm4gbV9yZXRhaW5lZFBhZ2VVUkxzLnNpemUoKTsKIH0KIAogc2l6
ZV90IEljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50KCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJ
Y29uTG9jayk7CiAgICAgcmV0dXJuIG1faWNvblVSTFRvUmVjb3JkTWFwLnNpemUoKTsKIH0KIAog
c2l6ZV90IEljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50V2l0aERhdGEoKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKICAgICBzaXplX3QgcmVzdWx0ID0gMDsKICAgICAKICAgICBI
YXNoTWFwPFN0cmluZywgSWNvblJlY29yZCo+OjppdGVyYXRvciBpID0gbV9pY29uVVJMVG9SZWNv
cmRNYXAuYmVnaW4oKTsKQEAgLTgyOSwxMyArODI5LDEzIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpu
b3RpZnlQZW5kaW5nTG9hZERlY2kKIAogdm9pZCBJY29uRGF0YWJhc2U6Ondha2VTeW5jVGhyZWFk
KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9zeW5jTG9jayk7CiAKICAgICBpZiAoIW1fZGlzYWJsZVN1ZGRlblRlcm1pbmF0
aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8pCiAgICAgICAgIG1fZGlzYWJsZVN1ZGRlblRl
cm1pbmF0aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8gPSBzdGQ6Om1ha2VfdW5pcXVlPFN1
ZGRlblRlcm1pbmF0aW9uRGlzYWJsZXI+KCk7CiAKICAgICBtX3N5bmNUaHJlYWRIYXNXb3JrVG9E
byA9IHRydWU7Ci0gICAgbV9zeW5jQ29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1fc3luY0NvbmRp
dGlvbi5ub3RpZnlPbmUoKTsKIH0KIAogdm9pZCBJY29uRGF0YWJhc2U6OnNjaGVkdWxlT3JEZWZl
clN5bmNUaW1lcigpCkBAIC04NzQsMTMgKzg3NCwxMyBAQCBib29sIEljb25EYXRhYmFzZTo6aXNP
cGVuKCkgY29uc3QKIAogYm9vbCBJY29uRGF0YWJhc2U6OmlzT3BlbkJlc2lkZXNNYWluVGhyZWFk
Q2FsbGJhY2tzKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgcmV0dXJuIG1fc3luY1Ro
cmVhZFJ1bm5pbmcgfHwgbV9zeW5jREIuaXNPcGVuKCk7CiB9CiAKIFN0cmluZyBJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3lu
Y0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgIHJldHVybiBt
X2NvbXBsZXRlRGF0YWJhc2VQYXRoLmlzb2xhdGVkQ29weSgpOwogfQogCkBAIC05MTYsNyArOTE2
LDcgQEAgUGFnZVVSTFJlY29yZCogSWNvbkRhdGFiYXNlOjpnZXRPckNyZWF0ZQogCiAgICAgUGFn
ZVVSTFJlY29yZCogcGFnZVJlY29yZCA9IG1fcGFnZVVSTFRvUmVjb3JkTWFwLmdldChwYWdlVVJM
KTsKICAgICAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICBpZiAoIW1f
aWNvblVSTEltcG9ydENvbXBsZXRlKSB7CiAgICAgICAgIC8vIElmIHRoZSBpbml0aWFsIGltcG9y
dCBvZiBhbGwgVVJMcyBoYXNuJ3QgY29tcGxldGVkIGFuZCB3ZSBoYXZlIG5vIHBhZ2UgcmVjb3Jk
LCB3ZSBhc3N1bWUgd2UgKm1pZ2h0KiBrbm93IGFib3V0IHRoaXMgbGF0ZXIgYW5kIGNyZWF0ZSBh
IHJlY29yZCBmb3IgaXQKICAgICAgICAgaWYgKCFwYWdlUmVjb3JkKSB7CkBAIC05ODUsNyArOTg1
LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6Omljb25EYXRhYmFzZVN5bmNUaHJlYQogICAgIH0KICAg
ICAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgICAgIGlmICghbV9zeW5jREIu
b3BlbihtX2NvbXBsZXRlRGF0YWJhc2VQYXRoKSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJV
bmFibGUgdG8gb3BlbiBpY29uIGRhdGFiYXNlIGF0IHBhdGggJXMgLSAlcyIsIG1fY29tcGxldGVE
YXRhYmFzZVBhdGguYXNjaWkoKS5kYXRhKCksIG1fc3luY0RCLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTExMTMsNyArMTExMyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpwZXJmb3JtT3BlbkluaXRpYWxpemEKICAgICAgICAgICAgIG1fc3luY0RCLmNsb3NlKCk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9zeW5jTG9jayk7CisgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9z
eW5jTG9jayk7CiAgICAgICAgICAgICAgICAgLy8gU2hvdWxkJ3ZlIGJlZW4gY29uc3VtZWQgYnkg
U1FMaXRlLCBkZWxldGUganVzdCB0byBtYWtlIHN1cmUgd2UgZG9uJ3Qgc2VlIGl0IGFnYWluIGlu
IHRoZSBmdXR1cmU7CiAgICAgICAgICAgICAgICAgZGVsZXRlRmlsZShtX2NvbXBsZXRlRGF0YWJh
c2VQYXRoICsgIi1qb3VybmFsIik7CiAgICAgICAgICAgICAgICAgZGVsZXRlRmlsZShtX2NvbXBs
ZXRlRGF0YWJhc2VQYXRoKTsKQEAgLTEyMTUsNyArMTIxNSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAgICAgU3RyaW5nIGljb25VUkwgPSBxdWVyeS5nZXRD
b2x1bW5UZXh0KDEpOwogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJs
QW5kSWNvbkxvY2spOwogCiAgICAgICAgICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVjb3JkID0g
bV9wYWdlVVJMVG9SZWNvcmRNYXAuZ2V0KHBhZ2VVUkwpOwogICAgICAgICAgICAgCkBAIC0xMjQ4
LDcgKzEyNDgsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAg
ICAgIC8vIG9uZSBmb3IgdGhlIFVSTCBhbmQgb25lIGZvciB0aGUgSW1hZ2UgaXRzZWxmCiAgICAg
ICAgIC8vIE5vdGUgdGhhdCBXZWJJY29uRGF0YWJhc2UgaXMgbm90IG5lY2Nlc3NhcmlseSBBUEkg
c28gd2UgbWlnaHQgYmUgYWJsZSB0byBtYWtlIHRoaXMgY2hhbmdlCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAg
ICBpZiAobV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQuY29udGFpbnMocGFnZVVSTCkpIHsKICAgICAg
ICAgICAgICAgICBkaXNwYXRjaERpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMT25NYWluVGhyZWFk
KHBhZ2VVUkwpOwogICAgICAgICAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LnJlbW92
ZShwYWdlVVJMKTsKQEAgLTEyNzEsNyArMTI3MSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJm
b3JtVVJMSW1wb3J0KCkKICAgICAvLyBidXQgYWZ0ZXIgbV9pY29uVVJMSW1wb3J0Q29tcGxldGUg
aXMgc2V0IHRvIHRydWUsIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhpcyBzZXQgYW55bW9yZQogICAg
IFZlY3RvcjxTdHJpbmc+IHVybHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRp
bmdSZWFkaW5nTG9jayk7CiAKICAgICAgICAgdXJscy5hcHBlbmRSYW5nZShtX3BhZ2VVUkxzUGVu
ZGluZ0ltcG9ydC5iZWdpbigpLCBtX3BhZ2VVUkxzUGVuZGluZ0ltcG9ydC5lbmQoKSk7CiAgICAg
ICAgIG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LmNsZWFyKCk7ICAgICAgICAKQEAgLTEyODQsNyAr
MTI4NCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAvLyBS
ZW1vdmUgdW5yZXRhaW5lZCBvbmVzIGlmIGRhdGFiYXNlIGNsZWFudXAgaXMgYWxsb3dlZAogICAg
IC8vIEtlZXAgYSBzZXQgb2Ygb25lcyB0aGF0IGFyZSByZXRhaW5lZCBhbmQgcGVuZGluZyBub3Rp
ZmljYXRpb24KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAKICAg
ICAgICAgcGVyZm9ybVBlbmRpbmdSZXRhaW5BbmRSZWxlYXNlT3BlcmF0aW9ucygpOwogCkBAIC0x
MzAxLDEyICsxMzAxLDEyIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1faWNvblVSTFRvUmVjb3JkTWFwLnJlbW92ZShpY29u
UmVjb3JkLT5pY29uVVJMKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJbkljb25zLnJlbW92ZSh1cmxzW2ld
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcucmVt
b3ZlKGljb25SZWNvcmQpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1faWNvbnNQZW5kaW5nU3luYy5zZXQoaWNvblJlY29yZC0+aWNvblVSTCgpLCBpY29u
UmVjb3JkLT5zbmFwc2hvdCh0cnVlKSk7ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMTM3MSw3ICsxMzcxLDcg
QEAgdm9pZCBJY29uRGF0YWJhc2U6OnN5bmNUaHJlYWRNYWluTG9vcCgpCiAgICAgICAgICAgICBi
cmVhazsKIAogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxB
bmRJY29uTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKICAgICAgICAgICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlv
bnMoKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTE0NTEsNyArMTQ1MSw3IEBAIHZvaWQgSWNv
bkRhdGFiYXNlOjpwZXJmb3JtUGVuZGluZ1JldGFpbkEKICAgICBIYXNoQ291bnRlZFNldDxTdHJp
bmc+IHRvUmVsZWFzZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgcGVuZGluZ1dvcmtM
b2NrZXIobV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBw
ZW5kaW5nV29ya0xvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2spOwogICAgICAgICBp
ZiAoIW1fcmV0YWluT3JSZWxlYXNlSWNvblJlcXVlc3RlZCkKICAgICAgICAgICAgIHJldHVybjsK
IApAQCAtMTQ4OCw3ICsxNDg4LDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6OnJlYWRGcm9tRGF0YWJh
c2UoKQogICAgIC8vIFRoaXMgd2F5IHdlIHdvbid0IGhvbGQgdGhlIGxvY2sgZm9yIGEgbG9uZyBw
ZXJpb2Qgb2YgdGltZQogICAgIFZlY3RvcjxJY29uUmVjb3JkKj4gaWNvbnM7CiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgIGljb25zLmFw
cGVuZFJhbmdlKG1faWNvbnNQZW5kaW5nUmVhZGluZy5iZWdpbigpLCBtX2ljb25zUGVuZGluZ1Jl
YWRpbmcuZW5kKCkpOwogICAgIH0KICAgICAKQEAgLTE1MDEsOSArMTUwMSw5IEBAIGJvb2wgSWNv
bkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKCkKIAogICAgICAgICAvLyBWZXJpZnkgdGhpcyBp
Y29uIHN0aWxsIHdhbnRzIHRvIGJlIHJlYWQgZnJvbSBkaXNrCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIE11dGV4TG9ja2VyIHVybExvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgICAg
IExvY2tIb2xkZXIgdXJsTG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIHJlYWRMb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xv
Y2spOworICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgcmVhZExvY2tlcihtX3BlbmRpbmdSZWFk
aW5nTG9jayk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKG1faWNvbnNQ
ZW5kaW5nUmVhZGluZy5jb250YWlucyhpY29uc1tpXSkpIHsKICAgICAgICAgICAgICAgICAgICAg
Ly8gU2V0IHRoZSBuZXcgZGF0YQpAQCAtMTU5MSwxMSArMTU5MSwxMSBAQCBib29sIEljb25EYXRh
YmFzZTo6d3JpdGVUb0RhdGFiYXNlKCkKICAgICAvLyB3ZSdsbCBwaWNrIGl0IHVwIG9uIHRoZSBu
ZXh0IHBhc3MuICBUaGlzIGdyZWF0bHkgc2ltcGxpZmllcyB0aGUgbG9ja2luZyBzdHJhdGVneSBm
b3IgdGhpcyBtZXRob2QgYW5kIHJlbWFpbnMgY29oZXNpdmUgd2l0aCBjaGFuZ2VzCiAgICAgLy8g
YXNrZWQgZm9yIGJ5IHRoZSBkYXRhYmFzZSBvbiB0aGUgbWFpbiB0aHJlYWQKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgICAgIFZlY3RvcjxJY29uU25hcHNo
b3Q+IGljb25TbmFwc2hvdHM7CiAgICAgICAgIFZlY3RvcjxQYWdlVVJMU25hcHNob3Q+IHBhZ2VT
bmFwc2hvdHM7CiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Bl
bmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdT
eW5jTG9jayk7CiAKICAgICAgICAgICAgIGljb25TbmFwc2hvdHMuYXBwZW5kUmFuZ2UobV9pY29u
c1BlbmRpbmdTeW5jLmJlZ2luKCkudmFsdWVzKCksIG1faWNvbnNQZW5kaW5nU3luYy5lbmQoKS52
YWx1ZXMoKSk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1N5bmMuY2xlYXIoKTsKQEAgLTE2
NTgsNyArMTY1OCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwcnVuZVVucmV0YWluZWRJY29ucygK
ICAgICAKICAgICBpbnQgcmVzdWx0OwogICAgIHdoaWxlICgocmVzdWx0ID0gcGFnZVNRTC5zdGVw
KCkpID09IFNRTElURV9ST1cpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsK
ICAgICAgICAgaWYgKCFtX3BhZ2VVUkxUb1JlY29yZE1hcC5jb250YWlucyhwYWdlU1FMLmdldENv
bHVtblRleHQoMSkpKQogICAgICAgICAgICAgcGFnZUlEc1RvRGVsZXRlLmFwcGVuZChwYWdlU1FM
LmdldENvbHVtbkludDY0KDApKTsKICAgICB9CkBAIC0xNzkxLDcgKzE3OTEsNyBAQCB2b2lkKiBJ
Y29uRGF0YWJhc2U6OmNsZWFudXBTeW5jVGhyZWFkKCkKICAgICB3cml0ZVRvRGF0YWJhc2UoKTsK
ICAgICAKICAgICAvLyBDbG9zZSB0aGUgZGF0YWJhc2UKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zeW5jTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgCiAg
ICAgbV9kYXRhYmFzZURpcmVjdG9yeSA9IFN0cmluZygpOwogICAgIG1fY29tcGxldGVEYXRhYmFz
ZVBhdGggPSBTdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2lmIEVO
QUJMRShJQ09OREFUQUJBU0UpCiAjaW5jbHVkZSAiU1FMaXRlRGF0YWJhc2UuaCIKICNpbmNsdWRl
ICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFz
aENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CkBAIC0xNDEsOCArMTQyLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNFbmFi
bGVkOwogICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkOwogCi0gICAgbXV0YWJsZSBN
dXRleCBtX3N5bmNMb2NrOwotICAgIFRocmVhZENvbmRpdGlvbiBtX3N5bmNDb25kaXRpb247Cisg
ICAgbXV0YWJsZSBMb2NrIG1fc3luY0xvY2s7CisgICAgQ29uZGl0aW9uIG1fc3luY0NvbmRpdGlv
bjsKICAgICBTdHJpbmcgbV9kYXRhYmFzZURpcmVjdG9yeTsKICAgICAvLyBIb2xkaW5nIG1fc3lu
Y0xvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9jb21wbGV0ZURhdGFiYXNlUGF0aAog
ICAgIFN0cmluZyBtX2NvbXBsZXRlRGF0YWJhc2VQYXRoOwpAQCAtMTUzLDI0ICsxNTQsMjQgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fc3luY1RocmVhZEhhc1dvcmtUb0RvOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxTdWRkZW5UZXJtaW5hdGlvbkRpc2FibGVyPiBtX2Rpc2FibGVTdWRkZW5UZXJtaW5h
dGlvbldoaWxlU3luY1RocmVhZEhhc1dvcmtUb0RvOwogCi0gICAgTXV0ZXggbV91cmxBbmRJY29u
TG9jazsKKyAgICBMb2NrIG1fdXJsQW5kSWNvbkxvY2s7CiAgICAgLy8gSG9sZGluZyBtX3VybEFu
ZEljb25Mb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUgZm9sbG93aW5n
IGRhdGEgc3RydWN0dXJlcyBvciB0aGUgb2JqZWN0cyB0aGV5IGNvbnRhaW4KICAgICBIYXNoTWFw
PFN0cmluZywgSWNvblJlY29yZCo+IG1faWNvblVSTFRvUmVjb3JkTWFwOwogICAgIEhhc2hNYXA8
U3RyaW5nLCBQYWdlVVJMUmVjb3JkKj4gbV9wYWdlVVJMVG9SZWNvcmRNYXA7CiAgICAgSGFzaFNl
dDxTdHJpbmc+IG1fcmV0YWluZWRQYWdlVVJMczsKIAotICAgIE11dGV4IG1fcGVuZGluZ1N5bmNM
b2NrOworICAgIExvY2sgbV9wZW5kaW5nU3luY0xvY2s7CiAgICAgLy8gSG9sZGluZyBtX3BlbmRp
bmdTeW5jTG9jayBpcyByZXF1aXJlZCB3aGVuIGFjY2Vzc2luZyBhbnkgb2YgdGhlIGZvbGxvd2lu
ZyBkYXRhIHN0cnVjdHVyZXMKICAgICBIYXNoTWFwPFN0cmluZywgUGFnZVVSTFNuYXBzaG90PiBt
X3BhZ2VVUkxzUGVuZGluZ1N5bmM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIEljb25TbmFwc2hvdD4g
bV9pY29uc1BlbmRpbmdTeW5jOwogICAgIAotICAgIE11dGV4IG1fcGVuZGluZ1JlYWRpbmdMb2Nr
OyAgICAKKyAgICBMb2NrIG1fcGVuZGluZ1JlYWRpbmdMb2NrOyAgICAKICAgICAvLyBIb2xkaW5n
IG1fcGVuZGluZ1N5bmNMb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUg
Zm9sbG93aW5nIGRhdGEgc3RydWN0dXJlcyAtIHdoZW4gZGVhbGluZyB3aXRoIEljb25SZWNvcmQq
cywgaG9sZGluZyBtX3VybEFuZEljb25Mb2NrIGlzIGFsc28gcmVxdWlyZWQKICAgICBIYXNoU2V0
PFN0cmluZz4gbV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQ7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1f
cGFnZVVSTHNJbnRlcmVzdGVkSW5JY29uczsKICAgICBIYXNoU2V0PEljb25SZWNvcmQqPiBtX2lj
b25zUGVuZGluZ1JlYWRpbmc7CiAKLSAgICBNdXRleCBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2s7CisgICAgTG9jayBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2s7CiAgICAgLy8gSG9sZGlu
ZyBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3Npbmcg
YW55IG9mIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzLgogICAgIEhhc2hDb3VudGVkU2V0
PFN0cmluZz4gbV91cmxzVG9SZXRhaW47CiAgICAgSGFzaENvdW50ZWRTZXQ8U3RyaW5nPiBtX3Vy
bHNUb1JlbGVhc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5
LDcgQEAgU2Nyb2xsaW5nVHJlZTo6flNjcm9sbGluZ1RyZWUoKQogYm9vbCBTY3JvbGxpbmdUcmVl
OjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseShjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgLy8gVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0
aGUgZXZlbnQgaGFuZGxpbmcgdGhyZWFkCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAKICAgICBib29sIHNob3VsZFNldExhdGNo
ID0gd2hlZWxFdmVudC5zaG91bGRDb25zaWRlckxhdGNoaW5nKCk7CiAgICAgCkBAIC0xMTUsNyAr
MTE1LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3RhdGUocwogICAgICAg
ICAmJiAocm9vdFN0YXRlTm9kZUNoYW5nZWQKICAgICAgICAgICAgIHx8IHJvb3ROb2RlLT5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6Ok5vbkZhc3RT
Y3JvbGxhYmxlUmVnaW9uKQogICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlNjcm9sbExheWVyKSkpIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwog
CiAgICAgICAgIGlmIChyb290U3RhdGVOb2RlQ2hhbmdlZCB8fCByb290Tm9kZS0+aGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5ZXIpKQogICAgICAgICAgICAg
bV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IEZsb2F0UG9pbnQoKTsKQEAgLTIwOCw3ICsyMDgs
NyBAQCBTY3JvbGxpbmdUcmVlTm9kZSogU2Nyb2xsaW5nVHJlZTo6bm9kZUZvCiAKIHZvaWQgU2Ny
b2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQsIGJv
b2wgcGlubmVkVG9UaGVSaWdodCwgYm9vbCBwaW5uZWRUb1RoZVRvcCwgYm9vbCBwaW5uZWRUb1Ro
ZUJvdHRvbSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIG1fbWFpbkZy
YW1lUGlubmVkVG9UaGVMZWZ0ID0gcGlubmVkVG9UaGVMZWZ0OwogICAgIG1fbWFpbkZyYW1lUGlu
bmVkVG9UaGVSaWdodCA9IHBpbm5lZFRvVGhlUmlnaHQ7CkBAIC0yMTgsNTQgKzIxOCw1NCBAQCB2
b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlCiAKIEZsb2F0UG9pbnQgU2Ny
b2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIHJldHVy
biBtX21haW5GcmFtZVNjcm9sbFBvc2l0aW9uOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNl
dE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQgcG9zaXRpb24pCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAg
ICAgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IHBvc2l0aW9uOwogfQogCiBib29sIFNjcm9s
bGluZ1RyZWU6OmlzUG9pbnRJbk5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKEludFBvaW50IHApCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9t
dXRleCk7CiAgICAgCiAgICAgcmV0dXJuIG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb24uY29udGFp
bnMocCk7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsgICAgCisgICAgTG9ja0hvbGRlciBs
b2NrKG1fbXV0ZXgpOyAgICAKIAogICAgIHJldHVybiBtX21haW5GcmFtZUlzUnViYmVyQmFuZGlu
ZzsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmco
Ym9vbCBpc1J1YmJlckJhbmRpbmcpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgbV9tYWluRnJhbWVJc1J1
YmJlckJhbmRpbmcgPSBpc1J1YmJlckJhbmRpbmc7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6
aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgCiAgICAgcmV0dXJuIG1fbWFp
bkZyYW1lSXNTY3JvbGxTbmFwcGluZzsKIH0KICAgICAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0
TWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyhib29sIGlzU2Nyb2xsU25hcHBpbmcpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0
ZXgpOwogICAgIAogICAgIG1fbWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyA9IGlzU2Nyb2xsU25h
cHBpbmc7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0Q2FuUnViYmVyQmFuZFN0YXRlKGJv
b2wgY2FuUnViYmVyQmFuZEF0TGVmdCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgYm9vbCBj
YW5SdWJiZXJCYW5kQXRUb3AsIGJvb2wgY2FuUnViYmVyQmFuZEF0Qm90dG9tKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgbV9ydWJiZXJCYW5kc0F0TGVmdCA9IGNhblJ1
YmJlckJhbmRBdExlZnQ7CiAgICAgbV9ydWJiZXJCYW5kc0F0UmlnaHQgPSBjYW5SdWJiZXJCYW5k
QXRSaWdodDsKQEAgLTI3NSwyOCArMjc1LDI4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0Q2Fu
UnViYmVyQmFuZFN0YXQKIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVmdCgp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRz
QXRMZWZ0OwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRSaWdodCgpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRl
ciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRzQXRS
aWdodDsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0Qm90dG9tKCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJv
dHRvbTsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdFRvcDsK
IH0KQEAgLTMwOCwxNCArMzA4LDE0IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNIYW5kbGluZ1By
b2dyYW1tYXQKIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3Io
U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHBpbm5pbmcpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N3aXBlU3RhdGVN
dXRleCk7CiAgICAgCiAgICAgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBwaW5uaW5nOwogfQog
CiBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsUGlubmluZ0JlaGF2
aW9yKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogICAgIAogICAgIHJldHVybiBtX3Nj
cm9sbFBpbm5pbmdCZWhhdmlvcjsKIH0KQEAgLTMyNSw3ICszMjUsNyBAQCBib29sIFNjcm9sbGlu
Z1RyZWU6OndpbGxXaGVlbEV2ZW50U3RhcnRTCiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSAh
PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFYKCkg
PiAwICYmIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0ICYmICFtX3J1YmJlckJhbmRzQXRMZWZ0
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTM1MSwxOSArMzUxLDE5IEBAIGJvb2wgU2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nUGVyZm9ybWFuY2UKIAogU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGlu
Z1RyZWU6OmxhdGNoZWROb2RlKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fbGF0Y2hlZE5v
ZGU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TGF0Y2hlZE5vZGUoU2Nyb2xsaW5nTm9k
ZUlEIG5vZGUpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIG1fbGF0Y2hlZE5vZGUgPSBub2RlOwogfQogCiB2
b2lkIFNjcm9sbGluZ1RyZWU6OmNsZWFyTGF0Y2hlZE5vZGUoKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICBt
X2xhdGNoZWROb2RlID0gMDsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJX
aGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBAIC0xNjAsMTEgKzE2MSwxMSBAQCBwcml2YXRl
OgogICAgIHR5cGVkZWYgSGFzaE1hcDxTY3JvbGxpbmdOb2RlSUQsIFNjcm9sbGluZ1RyZWVOb2Rl
Kj4gU2Nyb2xsaW5nVHJlZU5vZGVNYXA7CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGVNYXAgbV9ub2Rl
TWFwOwogCi0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAgICAgUmVnaW9u
IG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb247CiAgICAgRmxvYXRQb2ludCBtX21haW5GcmFtZVNj
cm9sbFBvc2l0aW9uOwogCi0gICAgTXV0ZXggbV9zd2lwZVN0YXRlTXV0ZXg7CisgICAgTG9jayBt
X3N3aXBlU3RhdGVNdXRleDsKICAgICBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5u
aW5nQmVoYXZpb3IgeyBEb05vdFBpbiB9OwogICAgIFNjcm9sbGluZ05vZGVJRCBtX2xhdGNoZWRO
b2RlIHsgMCB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4K
ICNlbGlmIE9TKExJTlVYKQogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0xMzcsNyArMTM4LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fY2xlYXJQcmVzc3VyZU9uTWVtb3J5UmVsZWFzZTsKICAgICB2
b2lkIChebV9yZWxlYXNlTWVtb3J5QmxvY2spKCk7CiAgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYg
bV9vYnNlcnZlcjsKLSAgICBNdXRleCBtX29ic2VydmVyTXV0ZXg7CisgICAgTG9jayBtX29ic2Vy
dmVyTXV0ZXg7CiAjZWxpZiBPUyhMSU5VWCkKICAgICBpbnQgbV9ldmVudEZEOwogICAgIGludCBt
X3ByZXNzdXJlTGV2ZWxGRDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZEYXRhYmFzZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgSFJURkRhdGFiYXNlTG9hZGVyOjpsb2Fk
QXN5bmNocm9ub3UKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdGhyZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aHJl
YWRMb2NrKTsKICAgICAKICAgICBpZiAoIW1faHJ0ZkRhdGFiYXNlLmdldCgpICYmICFtX2RhdGFi
YXNlTG9hZGVyVGhyZWFkKSB7CiAgICAgICAgIC8vIFN0YXJ0IHRoZSBhc3luY2hyb25vdXMgZGF0
YWJhc2UgbG9hZGluZyBwcm9jZXNzLgpAQCAtMTE3LDcgKzExNyw3IEBAIGJvb2wgSFJURkRhdGFi
YXNlTG9hZGVyOjppc0xvYWRlZCgpIGNvbnMKIAogdm9pZCBIUlRGRGF0YWJhc2VMb2FkZXI6Ondh
aXRGb3JMb2FkZXJUaHJlYWRDb21wbGV0aW9uKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90aHJlYWRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RocmVhZExvY2spOwogICAg
IAogICAgIC8vIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQg
dHdpY2UgZm9yIHRoZSBzYW1lIHRocmVhZC4KICAgICBpZiAobV9kYXRhYmFzZUxvYWRlclRocmVh
ZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRh
YmFzZUxvYWRlci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KQEAgLTc2LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8SFJURkRhdGFiYXNlPiBtX2hydGZEYXRhYmFzZTsKIAogICAgIC8vIEhvbGRpbmcgYSBtX3Ro
cmVhZExvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9kYXRhYmFzZUxvYWRlclRocmVh
ZC4KLSAgICBNdXRleCBtX3RocmVhZExvY2s7CisgICAgTG9jayBtX3RocmVhZExvY2s7CiAgICAg
VGhyZWFkSWRlbnRpZmllciBtX2RhdGFiYXNlTG9hZGVyVGhyZWFkOwogCiAgICAgZmxvYXQgbV9k
YXRhYmFzZVNhbXBsZVJhdGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQkocmV2aXNpb24g
MTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIE1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0UmVjZWl2ZWRNCiAgICAgbV91bmRlck1lbW9yeVByZXNz
dXJlID0gdHJ1ZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2JzZXJ2
ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CiAg
ICAgICAgIGlmICghbV9vYnNlcnZlcikgewogICAgICAgICAgICAgbV9vYnNlcnZlciA9IENGUnVu
TG9vcE9ic2VydmVyQ3JlYXRlKE5VTEwsIGtDRlJ1bkxvb3BCZWZvcmVXYWl0aW5nIHwga0NGUnVu
TG9vcEV4aXQsIE5PIC8qIGRvbid0IHJlcGVhdCAqLywKICAgICAgICAgICAgICAgICAwLCBXZWJD
b3JlOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUNhbGxiYWNrLCBOVUxMKTsKQEAgLTI3MiwxNCAr
MjcyLDE0IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpjbGVhck1lbW9yeVAKICAgICBt
X3VuZGVyTWVtb3J5UHJlc3N1cmUgPSBmYWxzZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
b2JzZXJ2ZXJNdXRleCk7CiAgICAgICAgIG1fbWVtb3J5UHJlc3N1cmVSZWFzb24gPSBNZW1vcnlQ
cmVzc3VyZVJlYXNvbk5vbmU7CiAgICAgfQogfQogCiBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6c2hvdWxkV2FpdEZvck1lbW9yeUNsZWFyTWVzc2FnZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vYnNlcnZl
ck11dGV4KTsKICAgICByZXR1cm4gbV9tZW1vcnlQcmVzc3VyZVJlYXNvbiAmIE1lbW9yeVByZXNz
dXJlUmVhc29uVk1TdGF0dXM7CiB9CiAKQEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtCiAgICAgQVNTRVJUKFdlYlRocmVhZElzTG9ja2Vk
T3JEaXNhYmxlZCgpKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2Jz
ZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7
CiAgICAgICAgIG1fb2JzZXJ2ZXIgPSAwOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3Iu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmUKICAgICBkb3VibGUg
bW9ub3RvbmljQW5pbWF0aW9uU3RhcnRUaW1lOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAg
ICAgIGlmICghbV9zY2hlZHVsZWQpCiAgICAgICAgICAgICArK21fdW5zY2hlZHVsZWRGaXJlQ291
bnQ7CiAgICAgICAgIGVsc2UKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIERpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlzcGxheURpZFJlCiAgICAgICAgIG1fY2xpZW50c1RvQmVOb3RpZmllZCA9IG51
bGxwdHI7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9wcmV2aW91c0ZyYW1lRG9u
ZSA9IHRydWU7CiAgICAgfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw5ICszMCw5IEBACiAKICNp
bmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1vbm90
b25pY0FuaW1hdGlvblN0YXJ0VGltZShkb3VibGUgc3RhcnRUaW1lKSB7IG1fbW9ub3RvbmljQW5p
bWF0aW9uU3RhcnRUaW1lID0gc3RhcnRUaW1lOyB9CiAKLSAgICBNdXRleCYgbXV0ZXgoKSB7IHJl
dHVybiBtX211dGV4OyB9CisgICAgTG9jayYgbXV0ZXgoKSB7IHJldHVybiBtX211dGV4OyB9CiAK
ICAgICBzdGF0aWMgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGVmYXVsdERp
c3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTg5LDcgKzg5LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcHJldmlvdXNGcmFtZURvbmU7CiAgICAgaW50IG1fdW5z
Y2hlZHVsZWRGaXJlQ291bnQ7IC8vIE51bWJlciBvZiB0aW1lcyB0aGUgZGlzcGxheSBsaW5rIGhh
cyBmaXJlZCB3aXRoIG5vIGNsaWVudHMuCiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNwbGF5
SUQ7Ci0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAKICAgICBIYXNoU2V0
PERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+IG1fY2xpZW50czsKICAgICBIYXNoU2V0PERp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+KiBtX2NsaWVudHNUb0JlTm90aWZpZWQ7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTczNSw3ICs3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6c2V0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpz
ZXREZWxheUNhbGxiYWNrcyhib29sIGRlbGF5KSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKICAg
ICBpZiAoZGVsYXkpCiAgICAgICAgICsrbV9kZWxheUNhbGxiYWNrczsKICAgICBlbHNlIHsKQEAg
LTc1NCw3ICs3NTQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bWFp
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1haW5UaHJlYWRQ
ZW5kaW5nRmxhZygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgIG1fbWFpblRocmVhZENhbGxQZW5k
aW5nID0gZmFsc2U7CiB9CiAKQEAgLTgyMCw3ICs4MjAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6ZGlzCiAKICAgICBOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uID0g
Tm90aWZpY2F0aW9uKCk7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVN
dXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgICAgICAK
ICAgICAgICAgaWYgKG1fcXVldWVkTm90aWZpY2F0aW9ucy5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxNyw3ICszMTcsNyBAQCBwcml2YXRlOgogICAgIHN0
ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX3BlbmRpbmdTZWVrOwogCiAgICAgVmVjdG9yPE5vdGlmaWNh
dGlvbj4gbV9xdWV1ZWROb3RpZmljYXRpb25zOwotICAgIG11dGFibGUgTXV0ZXggbV9xdWV1ZU11
dGV4OworICAgIG11dGFibGUgTG9jayBtX3F1ZXVlTXV0ZXg7CiAKICAgICBtdXRhYmxlIHN0ZDo6
dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IG1fY2FjaGVkTG9hZGVkVGltZVJhbmdlczsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2Nm
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNyArMTU4LDcgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBpbmxpbmUgdm9pZCogY2FsbGJhY2tDb250ZXh0KCkgY29uc3Qg
eyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obV9vYmplY3RJRCk7IH0KIAotICAgIHN0
YXRpYyBNdXRleCYgbWFwTG9jaygpOworICAgIHN0YXRpYyBMb2NrJiBtYXBMb2NrKCk7CiAgICAg
c3RhdGljIEhhc2hNYXA8dWludHB0cl90LCBBVkZXcmFwcGVyKj4mIG1hcCgpOwogICAgIHN0YXRp
YyBBVkZXcmFwcGVyKiBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KHZvaWQqKTsKICAgICB2
b2lkIGFkZFRvTWFwKCk7CkBAIC0xNDA0LDkgKzE0MDQsOSBAQCBBVkZXcmFwcGVyOjp+QVZGV3Jh
cHBlcigpCiAgICAgbV9hdlBsYXllciA9IDA7CiB9CiAKLU11dGV4JiBBVkZXcmFwcGVyOjptYXBM
b2NrKCkKK0xvY2smIEFWRldyYXBwZXI6Om1hcExvY2soKQogewotICAgIHN0YXRpYyBNdXRleCBt
YXBMb2NrOworICAgIHN0YXRpYyBMb2NrIG1hcExvY2s7CiAgICAgcmV0dXJuIG1hcExvY2s7CiB9
CiAKQEAgLTE0MTgsNyArMTQxOCw3IEBAIEhhc2hNYXA8dWludHB0cl90LCBBVkZXcmFwcGVyKj4m
IEFWRldyYXAKIAogdm9pZCBBVkZXcmFwcGVyOjphZGRUb01hcCgpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsK
ICAgICAKICAgICAvLyBIYXNoTWFwIGRvZXNuJ3QgbGlrZSBhIGtleSBvZiAwLCBhbmQgYWxzbyBt
YWtlIHN1cmUgd2UgYXJlbid0CiAgICAgLy8gdXNpbmcgYW4gb2JqZWN0IElEIHRoYXQncyBhbHJl
YWR5IGluIHVzZS4KQEAgLTE0MzQsNyArMTQzNCw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6cmVtb3Zl
RnJvbU1hcCgpIGNvbnN0CiB7CiAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6cmVtb3ZlRnJv
bU1hcCglcCAlZCkiLCB0aGlzLCBtX29iamVjdElEKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgbWFw
KCkucmVtb3ZlKG1fb2JqZWN0SUQpOwogfQogCkBAIC0xNjM1LDcgKzE2MzUsNyBAQCB2b2lkIEFW
RldyYXBwZXI6OmNyZWF0ZVBsYXllckl0ZW0oKQogCiB2b2lkIEFWRldyYXBwZXI6OnBlcmlvZGlj
VGltZU9ic2VydmVyQ2FsbGJhY2soQVZDRlBsYXllclJlZiwgQ01UaW1lIGNtVGltZSwgdm9pZCog
Y29udGV4dCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFw
cGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAg
ICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpwZXJpb2RpY1RpbWVPYnNlcnZlckNhbGxiYWNrIGlu
dm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihjb250ZXh0KSk7CkBAIC0xNjY2LDcgKzE2NjYsNyBAQCB2b2lkIEFWRldyYXBwZXI6OnBy
b2Nlc3NOb3RpZmljYXRpb24odm9pCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Tm90aWZpY2F0aW9u
Q2FsbGJhY2tEYXRhPiBub3RpZmljYXRpb25EYXRhIHsgc3RhdGljX2Nhc3Q8Tm90aWZpY2F0aW9u
Q2FsbGJhY2tEYXRhKj4oY29udGV4dCkgfTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBM
b2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBl
ciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQobm90aWZpY2F0aW9uRGF0YS0+
bV9jb250ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3Jh
cHBlcjo6cHJvY2Vzc05vdGlmaWNhdGlvbiBpbnZva2VkIGZvciBkZWxldGVkIEFWRldyYXBwZXIg
JWQiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCkpOwpAQCAtMTcyMSw3ICsx
NzIxLDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpub3RpZmljYXRpb25DYWxsYmFjayhDRgogCiB2b2lk
IEFWRldyYXBwZXI6OmxvYWRQbGF5YWJsZUNvbXBsZXRpb25DYWxsYmFjayhBVkNGQXNzZXRSZWYs
IHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2soKSk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBzZWxmID0g
YXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChjb250ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsK
ICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6bG9hZFBsYXlhYmxlQ29tcGxldGlvbkNh
bGxiYWNrIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xNzQ5LDcgKzE3NDksNyBAQCB2b2lkIEFWRldy
YXBwZXI6OmNoZWNrUGxheWFiaWxpdHkoKQogCiB2b2lkIEFWRldyYXBwZXI6OmxvYWRNZXRhZGF0
YUNvbXBsZXRpb25DYWxsYmFjayhBVkNGQXNzZXRSZWYsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFw
TG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29u
dGV4dChjb250ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZG
V3JhcHBlcjo6bG9hZE1ldGFkYXRhQ29tcGxldGlvbkNhbGxiYWNrIGludm9rZWQgZm9yIGRlbGV0
ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7
CkBAIC0xNzY5LDcgKzE3NjksNyBAQCB2b2lkIEFWRldyYXBwZXI6OmJlZ2luTG9hZGluZ01ldGFk
YXRhKCkKIAogdm9pZCBBVkZXcmFwcGVyOjpzZWVrQ29tcGxldGVkQ2FsbGJhY2soQVZDRlBsYXll
ckl0ZW1SZWYsIEJvb2xlYW4gZmluaXNoZWQsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygp
KTsKICAgICBBVkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChj
b250ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBl
cjo6c2Vla0NvbXBsZXRlZENhbGxiYWNrIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAl
ZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xODEyLDcgKzE4
MTIsNyBAQCB2b2lkIEFWRldyYXBwZXI6OnByb2Nlc3NDdWUodm9pZCogY29udGV4CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8TGVnaWJsZU91dHB1dERhdGE+IGxlZ2libGVPdXRwdXREYXRhKHJlaW50
ZXJwcmV0X2Nhc3Q8TGVnaWJsZU91dHB1dERhdGEqPihjb250ZXh0KSk7CiAKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkp
OwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGxl
Z2libGVPdXRwdXREYXRhLT5tX2NvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBM
T0coTWVkaWEsICJBVkZXcmFwcGVyOjpwcm9jZXNzQ3VlIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZG
V3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0x
ODI4LDcgKzE4MjgsNyBAQCB2b2lkIEFWRldyYXBwZXI6OnByb2Nlc3NDdWUodm9pZCogY29udGV4
CiB2b2lkIEFWRldyYXBwZXI6OmxlZ2libGVPdXRwdXRDYWxsYmFjayh2b2lkKiBjb250ZXh0LCBB
VkNGUGxheWVySXRlbUxlZ2libGVPdXRwdXRSZWYgbGVnaWJsZU91dHB1dCwgQ0ZBcnJheVJlZiBh
dHRyaWJ1dGVkU3RyaW5ncywgQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVCdWZmZXJzLCBDTVRpbWUg
aXRlbVRpbWUpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1hcExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsK
ICAgICBBVkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChjb250
ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQVZGV3JhcHBlcjo6
bGVnaWJsZU91dHB1dENhbGxiYWNrIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xODY2LDcgKzE4NjYs
NyBAQCB2b2lkIEFWRldyYXBwZXI6OnByb2Nlc3NTaG91bGRXYWl0Rm9yTG9hCiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8TG9hZFJlcXVlc3REYXRhPiBsb2FkUmVxdWVzdERhdGEocmVpbnRlcnByZXRf
Y2FzdDxMb2FkUmVxdWVzdERhdGEqPihjb250ZXh0KSk7CiAKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFW
RldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGxvYWRSZXF1ZXN0
RGF0YS0+bV9jb250ZXh0KTsKICAgICBpZiAoIXNlbGYpIHsKICAgICAgICAgTE9HKE1lZGlhLCAi
QVZGV3JhcHBlcjo6cHJvY2Vzc1Nob3VsZFdhaXRGb3JMb2FkaW5nT2ZSZXNvdXJjZSBpbnZva2Vk
IGZvciBkZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4o
Y29udGV4dCkpOwpAQCAtMTkyMiw3ICsxOTIyLDcgQEAgYm9vbCBBVkZXcmFwcGVyOjpzaG91bGRX
YWl0Rm9yTG9hZGluZ09mUgogQm9vbGVhbiBBVkZXcmFwcGVyOjpyZXNvdXJjZUxvYWRlclNob3Vs
ZFdhaXRGb3JMb2FkaW5nT2ZSZXF1ZXN0ZWRSZXNvdXJjZShBVkNGQXNzZXRSZXNvdXJjZUxvYWRl
clJlZiByZXNvdXJjZUxvYWRlciwgQVZDRkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdFJlZiBs
b2FkaW5nUmVxdWVzdCwgdm9pZCAqY29udGV4dCkKIHsKICAgICBBU1NFUlQoZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSAhPSBkaXNwYXRjaF9nZXRfY3VycmVudF9xdWV1ZSgpKTsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2Nr
KCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0
KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFw
cGVyOjpyZXNvdXJjZUxvYWRlclNob3VsZFdhaXRGb3JMb2FkaW5nT2ZSZXF1ZXN0ZWRSZXNvdXJj
ZSBpbnZva2VkIGZvciBkZWxldGVkIEFWRldyYXBwZXIgJWQiLCByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4oY29udGV4dCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZh
dGVHU3RyZWFtZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6aGEKIHsKICAgICBtX3NhbXBsZVRpbWVySGFu
ZGxlci5jYW5jZWwoKTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9zYW1wbGVN
dXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKICAgICAgICAg
bV9wZW5kaW5nU2FtcGxlcy5hcHBlbmQoc2FtcGxlKTsKICAgICB9CiAgICAgbV9zYW1wbGVUaW1l
ckhhbmRsZXIuc2NoZWR1bGUoIltXZWJLaXRdIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFt
ZXI6Om5vdGlmeVRyYWNrT2ZTYW1wbGUiLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4oc3RkOjpiaW5k
KCZJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlLCB0
aGlzKSkpOwpAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3Ry
ZWFtZXI6Om5vCiB7CiAgICAgVmVjdG9yPEdSZWZQdHI8R3N0U2FtcGxlPiA+IHNhbXBsZXM7CiAg
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fc2FtcGxlTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2sobV9zYW1wbGVNdXRleCk7CiAgICAgICAgIG1fcGVuZGluZ1NhbXBsZXMu
c3dhcChzYW1wbGVzKTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFu
ZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZh
dGVHU3RyZWFtZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgog
ICAgIGd1bG9uZyBtX2V2ZW50UHJvYmU7CiAgICAgVmVjdG9yPEdSZWZQdHI8R3N0U2FtcGxlPiA+
IG1fcGVuZGluZ1NhbXBsZXM7CiAgICAgU3RyaW5nIG1fc3RyZWFtSWQ7Ci0gICAgTXV0ZXggbV9z
YW1wbGVNdXRleDsKKyAgICBMb2NrIG1fc2FtcGxlTXV0ZXg7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFt
ZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OnRh
Z3NDaGFuCiAgICAgR1JlZlB0cjxHc3RUYWdMaXN0PiB0YWdzOwogICAgIGdfb2JqZWN0X2dldCht
X3BhZC5nZXQoKSwgInRhZ3MiLCAmdGFncy5vdXRQdHIoKSwgTlVMTCk7CiAgICAgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrKG1fdGFnTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV90YWdNdXRleCk7CiAgICAgICAgIG1fdGFncy5zd2FwKHRhZ3MpOwogICAgIH0KIApAQCAtMTU4
LDcgKzE1OCw3IEBAIHZvaWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6bm90aWZ5VHIKIAog
ICAgIEdSZWZQdHI8R3N0VGFnTGlzdD4gdGFnczsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2sobV90YWdNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3RhZ011dGV4KTsK
ICAgICAgICAgdGFncy5zd2FwKG1fdGFncyk7CiAgICAgfQogICAgIGlmICghdGFncykKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVC
YXNlR1N0cmVhbWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaAkocmV2aXNpb24gMTg4
NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNr
UHJpdmF0ZUJhc2VHU3RyZWFtZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBw
cml2YXRlOgogICAgIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UgbV9hY3RpdmVUaW1lckhhbmRs
ZXI7CiAgICAgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSBtX3RhZ1RpbWVySGFuZGxlcjsKIAot
ICAgIE11dGV4IG1fdGFnTXV0ZXg7CisgICAgTG9jayBtX3RhZ011dGV4OwogICAgIEdSZWZQdHI8
R3N0VGFnTGlzdD4gbV90YWdzOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRv
ck1hYy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04NCwxNCArODQsMTQgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnJlcXVlc3RS
ZQogICAgICAgICBzZXRJc0FjdGl2ZSh0cnVlKTsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBs
b2NrKG11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgpKTsKICAgICBzZXRJc1Nj
aGVkdWxlZCh0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQoZG91YmxlIG5vd1NlY29uZHMsIGRvdWJsZSBv
dXRwdXRUaW1lU2Vjb25kcykKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG11dGV4KCkpOworICAg
IExvY2tIb2xkZXIgbG9jayhtdXRleCgpKTsKICAgICBpZiAoIWlzUHJldmlvdXNGcmFtZURvbmUo
KSkKICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxMiwyMSArNTEyLDIxIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjoKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb246OmFkZExpc3RlbmVyKE1lZGlhUGxheWVyTGlzdGVuZXIqIGxpc3RlbmVyKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4TGlzdGVuZXJzKTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX211dGV4TGlzdGVuZXJzKTsKIAogICAgIG1fbGlzdGVuZXJzLmFkZChsaXN0
ZW5lcik7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpyZW1v
dmVMaXN0ZW5lcihNZWRpYVBsYXllckxpc3RlbmVyKiBsaXN0ZW5lcikKIHsKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9t
dXRleExpc3RlbmVycyk7CiAKICAgICBtX2xpc3RlbmVycy5yZW1vdmUobGlzdGVuZXIpOwogfQog
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6bm90aWZ5RGVsZXRlZCgp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5lcnMpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5lcnMpOwogCiAgICAgZm9yIChIYXNoU2V0PE1lZGlh
UGxheWVyTGlzdGVuZXIqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2xpc3RlbmVycy5iZWdpbigp
OyBpdCAhPSBtX2xpc3RlbmVycy5lbmQoKTsgKytpdCkKICAgICAgICAgKCppdCktPm9uTWVkaWFQ
bGF5ZXJEZWxldGVkKCk7CkBAIC03MDQsNyArNzA0LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBNZWRpYVBsYXllclByaQogCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6QXN5bmNDYWxsYmFjazo6SW52b2tlKF9fUlBDX19p
bl9vcHQgSU1GQXN5bmNSZXN1bHQgKnBBc3luY1Jlc3VsdCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBp
ZiAoIW1fbWVkaWFQbGF5ZXIpCiAgICAgICAgIHJldHVybiBTX09LOwpAQCAtNzE5LDcgKzcxOSw3
IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgTWVkaWFQbGF5ZXJQcmkKIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Om9uTWVkaWFQbGF5
ZXJEZWxldGVkKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBtX21lZGlhUGxheWVyID0gbnVsbHB0cjsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgJ
KHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAt
ODksNyArODksNyBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgTWVkaWFQbGF5ZXJMaXN0ZW5lcjsK
ICAgICBIYXNoU2V0PE1lZGlhUGxheWVyTGlzdGVuZXIqPiBtX2xpc3RlbmVyczsKLSAgICBNdXRl
eCBtX211dGV4TGlzdGVuZXJzOworICAgIExvY2sgbV9tdXRleExpc3RlbmVyczsKIAogICAgIENP
TVB0cjxJTUZNZWRpYVNlc3Npb24+IG1fbWVkaWFTZXNzaW9uOwogICAgIENPTVB0cjxJTUZTb3Vy
Y2VSZXNvbHZlcj4gbV9zb3VyY2VSZXNvbHZlcjsKQEAgLTE0OSw3ICsxNDksNyBAQCBwcml2YXRl
OgogICAgICAgICBVTE9ORyBtX3JlZkNvdW50OwogICAgICAgICBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYUZvdW5kYXRpb24qIG1fbWVkaWFQbGF5ZXI7CiAgICAgICAgIGJvb2wgbV9ldmVudDsKLSAg
ICAgICAgTXV0ZXggbV9tdXRleDsKKyAgICAgICAgTG9jayBtX211dGV4OwogICAgIH07CiAKIH07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5o
CShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5
VGlsZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMSw5ICsyMTEsOSBAQCBwcml2YXRlOgog
ICAgIGZsb2F0IG1fcGVuZGluZ1NjYWxlOwogICAgIGZsb2F0IG1fcGVuZGluZ1pvb21lZE91dFNj
YWxlOwogCi0gICAgbXV0YWJsZSBNdXRleCBtX3RpbGVNdXRleDsKLSAgICBtdXRhYmxlIE11dGV4
IG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4OwotICAgIG11dGFibGUgTXV0ZXggbV9jb250ZW50UmVw
bGFjZW1lbnRJbWFnZU11dGV4OworICAgIG11dGFibGUgTG9jayBtX3RpbGVNdXRleDsKKyAgICBt
dXRhYmxlIExvY2sgbV9zYXZlZERpc3BsYXlSZWN0TXV0ZXg7CisgICAgbXV0YWJsZSBMb2NrIG1f
Y29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRleDsKIAogICAgIGJvb2wgbV90aWxlQ29udHJvbGxl
clNob3VsZFVzZUxvd1NjYWxlVGlsZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldFRpbGVzT3BhcXVl
KGJvbwogICAgIGlmIChtX3RpbGVzT3BhcXVlID09IG9wYXF1ZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3RpbGVNdXRleCk7CiAKICAgICBtX3RpbGVzT3BhcXVlID0gb3BhcXVlOwogICAgIG1f
em9vbWVkT3V0VGlsZUdyaWQtPnVwZGF0ZVRpbGVPcGFjaXR5KCk7CkBAIC0xNjAsNyArMTYwLDcg
QEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmRvTGF5b3V0VGlsZXMoKQogICAgIGlmIChpc1RpbGVD
cmVhdGlvblN1c3BlbmRlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsK
ICAgICBMZWdhY3lUaWxlR3JpZCogYWN0aXZlR3JpZCA9IGFjdGl2ZVRpbGVHcmlkKCk7CiAgICAg
Ly8gRXZlbiB0aG91Z2ggd2UgYXJlbid0IGFjdHVhbGx5IGNyZWF0aW5nIHRpbGVzIGluIHRoZSBp
bmFjdGl2ZSBncmlkLCB3ZQogICAgIC8vIHN0aWxsIG5lZWQgdG8gZHJvcCBpbnZhbGlkIHRpbGVz
IGluIHJlc3BvbnNlIHRvIGEgbGF5b3V0LgpAQCAtMjAwLDcgKzIwMCw3IEBAIHZvaWQgTGVnYWN5
VGlsZUNhY2hlOjpzZXRDdXJyZW50U2NhbGUoZmwKICAgICBpZiAoIWtlZXBzWm9vbWVkT3V0VGls
ZXMoKSAmJiAhaXNUaWxlSW52YWxpZGF0aW9uU3VzcGVuZGVkKCkpIHsKICAgICAgICAgLy8gVGls
ZSBpbnZhbGlkYXRpb24gaXMgbm9ybWFsbHkgc3VzcGVuZGVkIGR1cmluZyB6b29taW5nIGJ5IFVJ
S2l0IGJ1dCBzb21lIGFwcGxpY2F0aW9ucwogICAgICAgICAvLyB1c2luZyBjdXN0b20gc2Nyb2xs
dmlld3MgbWF5IHpvb20gd2l0aG91dCB0cmlnZ2VyaW5nIHRoZSBjYWxsYmFja3MuIEludmFsaWRh
dGUgdGhlIHRpbGVzIGV4cGxpY2l0bHkuCi0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rp
bGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICAg
ICAgYWN0aXZlVGlsZUdyaWQoKS0+ZHJvcEFsbFRpbGVzKCk7CiAgICAgICAgIGFjdGl2ZVRpbGVH
cmlkKCktPmNyZWF0ZVRpbGVzKENvdmVyVmlzaWJsZU9ubHkpOwogICAgIH0KQEAgLTIyNSw3ICsy
MjUsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6Y29tbWl0U2NhbGVDaGFuZ2UoCiAgICAgQVNT
RVJUKG1fcGVuZGluZ1pvb21lZE91dFNjYWxlIHx8IG1fcGVuZGluZ1NjYWxlKTsKICAgICBBU1NF
UlQobV90aWxpbmdNb2RlICE9IERpc2FibGVkKTsKICAgICAKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKIAog
ICAgIGlmIChtX3BlbmRpbmdab29tZWRPdXRTY2FsZSkgewogICAgICAgICBtX3pvb21lZE91dFRp
bGVHcmlkLT5zZXRTY2FsZShtX3BlbmRpbmdab29tZWRPdXRTY2FsZSk7CkBAIC0zMTQsNyArMzE0
LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmxheW91dFRpbGVzTm93KCkKICAgICBpZiAobV90
aWxpbmdNb2RlID09IFpvb21pbmcpCiAgICAgICAgIG1fdGlsaW5nTW9kZSA9IE1pbmltYWw7CiAK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fdGlsZU11dGV4KTsKICAgICBMZWdhY3lUaWxlR3JpZCogYWN0aXZlR3JpZCA9IGFjdGl2
ZVRpbGVHcmlkKCk7CiAgICAgaWYgKGFjdGl2ZUdyaWQtPmNoZWNrRG9TaW5nbGVUaWxlTGF5b3V0
KCkpIHsKICAgICAgICAgbV90aWxpbmdNb2RlID0gc2F2ZWRUaWxpbmdNb2RlOwpAQCAtMzI3LDE0
ICszMjcsMTQgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmxheW91dFRpbGVzTm93KCkKIHZvaWQg
TGVnYWN5VGlsZUNhY2hlOjpsYXlvdXRUaWxlc05vd0ZvclJlY3QoY29uc3QgSW50UmVjdCYgcmVj
dCkKIHsKICAgICBBU1NFUlQoV2ViVGhyZWFkSXNMb2NrZWRPckRpc2FibGVkKCkpOwotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90
aWxlTXV0ZXgpOwogCiAgICAgYWN0aXZlVGlsZUdyaWQoKS0+YWRkVGlsZXNDb3ZlcmluZ1JlY3Qo
cmVjdCk7CiB9CiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNpYmxlVGls
ZXMoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIHJlbW92ZUFsbE5vblZpc2libGVUaWxlc0lu
dGVybmFsKCk7CiB9CiAKQEAgLTM1Niw3ICszNTYsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6
cmVtb3ZlQWxsTm9uVmlzaWJsCiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxUaWxl
cygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgbV96b29tZWRPdXRUaWxlR3JpZC0+ZHJvcEFs
bFRpbGVzKCk7CiAgICAgaWYgKG1fem9vbWVkSW5UaWxlR3JpZCkKICAgICAgICAgbV96b29tZWRJ
blRpbGVHcmlkLT5kcm9wQWxsVGlsZXMoKTsKQEAgLTM2NCw3ICszNjQsNyBAQCB2b2lkIExlZ2Fj
eVRpbGVDYWNoZTo6cmVtb3ZlQWxsVGlsZXMoKQogCiB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6cmVt
b3ZlRm9yZWdyb3VuZFRpbGVzKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICBpZiAoIWtlZXBz
Wm9vbWVkT3V0VGlsZXMoKSkKICAgICAgICAgbV96b29tZWRPdXRUaWxlR3JpZC0+ZHJvcEFsbFRp
bGVzKCk7CiAgICAgaWYgKG1fem9vbWVkSW5UaWxlR3JpZCkKQEAgLTM3MywxMyArMzczLDEzIEBA
IHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVGb3JlZ3JvdW5kVGkKIAogdm9pZCBMZWdhY3lU
aWxlQ2FjaGU6OnNldENvbnRlbnRSZXBsYWNlbWVudEltYWdlKFJldGFpblB0cjxDR0ltYWdlUmVm
PiBjb250ZW50UmVwbGFjZW1lbnRJbWFnZSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9j
b250ZW50UmVwbGFjZW1lbnRJbWFnZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2Nv
bnRlbnRSZXBsYWNlbWVudEltYWdlTXV0ZXgpOwogICAgIG1fY29udGVudFJlcGxhY2VtZW50SW1h
Z2UgPSBjb250ZW50UmVwbGFjZW1lbnRJbWFnZTsKIH0KIAogUmV0YWluUHRyPENHSW1hZ2VSZWY+
IExlZ2FjeVRpbGVDYWNoZTo6Y29udGVudFJlcGxhY2VtZW50SW1hZ2UoKSBjb25zdAogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRleCk7CiAgICAg
cmV0dXJuIG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2U7CiB9CiAKQEAgLTQyNiw3ICs0MjYsNyBA
QCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6dGlsZUNyZWF0aW9uVGltZXJGCiB7CiAgICAgaWYgKGlz
VGlsZUNyZWF0aW9uU3VzcGVuZGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4
KTsKICAgICBjcmVhdGVUaWxlc0luQWN0aXZlR3JpZChDb3ZlclNwZWN1bGF0aXZlKTsKIH0KIApA
QCAtNjIwLDcgKzYyMCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzY2hlZHVsZUxheWVyRmx1
c2gKIAogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBJ
bnRSZWN0JiBkaXJ0eVJlY3QpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2F2ZWREaXNw
bGF5UmVjdE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NhdmVkRGlzcGxheVJlY3RN
dXRleCk7CiAgICAgYm9vbCBhZGRlZEZpcnN0UmVjdCA9IG1fc2F2ZWREaXNwbGF5UmVjdHMuaXNF
bXB0eSgpOwogICAgIG1fc2F2ZWREaXNwbGF5UmVjdHMuYXBwZW5kKGRpcnR5UmVjdCk7CiAgICAg
aWYgKCFhZGRlZEZpcnN0UmVjdCkKQEAgLTY5Miw3ICs2OTIsNyBAQCB2b2lkIExlZ2FjeVRpbGVD
YWNoZTo6dXBkYXRlVGlsaW5nTW9kZSgpCiAgICAgICAgIGlmIChtX3RpbGluZ01vZGUgPT0gRGlz
YWJsZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fdGlsZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwog
ICAgICAgICBjcmVhdGVUaWxlc0luQWN0aXZlR3JpZChDb3ZlclZpc2libGVPbmx5KTsKIAogICAg
ICAgICBpZiAoIW1fc2F2ZWREaXNwbGF5UmVjdHMuaXNFbXB0eSgpKQpAQCAtNzEwLDcgKzcxMCw3
IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzZXRUaWxpbmdNb2RlKFRpbGkKICAgICBpZiAoKG1f
cGVuZGluZ1pvb21lZE91dFNjYWxlIHx8IG1fcGVuZGluZ1NjYWxlKSAmJiBtX3RpbGluZ01vZGUg
IT0gRGlzYWJsZWQpCiAgICAgICAgIGNvbW1pdFNjYWxlQ2hhbmdlKCk7CiAgICAgZWxzZSBpZiAo
d2FzWm9vbWluZykgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgICAgIGJyaW5nQWN0
aXZlVGlsZUdyaWRUb0Zyb250KCk7CiAgICAgfQogCkBAIC03NTMsNyArNzUzLDcgQEAgdm9pZCBM
ZWdhY3lUaWxlQ2FjaGU6OmRvUGVuZGluZ1JlcGFpbnRzKAogICAgICAgICByZXR1cm47CiAgICAg
aWYgKGlzVGlsZUludmFsaWRhdGlvblN1c3BlbmRlZCgpKQogICAgICAgICByZXR1cm47Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3RpbGVNdXRleCk7CiAgICAgZmx1c2hTYXZlZERpc3BsYXlSZWN0cygpOwogfQogCkBAIC03NjQs
NyArNzY0LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmZsdXNoU2F2ZWREaXNwbGF5UgogCiAg
ICAgVmVjdG9yPEludFJlY3Q+IHJlY3RzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9zYXZlZERpc3BsYXlSZWN0TXV0ZXgpOwogICAgICAgICBtX3NhdmVkRGlzcGxheVJlY3RzLnN3
YXAocmVjdHMpOwogICAgIH0KICAgICBzaXplX3Qgc2l6ZSA9IHJlY3RzLnNpemUoKTsKQEAgLTc5
Miw3ICs3OTIsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6cHJlcGFyZVRvRHJhdygpCiAgICAg
W1ttX3dpbmRvdyBjb250ZW50Vmlld10gdmlld1dpbGxEcmF3XTsKIAogICAgIGlmICghbV9zYXZl
ZERpc3BsYXlSZWN0cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
dGlsZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAg
ICAgICBmbHVzaFNhdmVkRGlzcGxheVJlY3RzKCk7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5oCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVy
UG9vbC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPEludFNpemU+IG1fc2l6ZXNJblBydW5lT3JkZXI7CiAgICAgdW5zaWduZWQgbV90b3RhbEJ5
dGVzOwogICAgIHVuc2lnbmVkIG1fY2FwYWNpdHk7Ci0gICAgTXV0ZXggbV9sYXllclBvb2xNdXRl
eDsKKyAgICBMb2NrIG1fbGF5ZXJQb29sTXV0ZXg7CiAKICAgICBkb3VibGUgbV9sYXN0QWRkVGlt
ZTsKICAgICBib29sIG1fbmVlZHNQcnVuZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tCShyZXZpc2lvbiAxODg1NjkpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbQkod29y
a2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCB2b2lkIExlZ2FjeVRpbGVMYXllclBvb2w6OmFk
ZExheWVyKGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9sYXllclBvb2xNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXllclBv
b2xNdXRleCk7CiAgICAgbGlzdE9mTGF5ZXJzV2l0aFNpemUobGF5ZXJTaXplKS5wcmVwZW5kKGxh
eWVyKTsKICAgICBtX3RvdGFsQnl0ZXMgKz0gYnl0ZXNCYWNraW5nTGF5ZXJXaXRoUGl4ZWxTaXpl
KGxheWVyU2l6ZSk7CiAKQEAgLTk2LDcgKzk2LDcgQEAgUmV0YWluUHRyPExlZ2FjeVRpbGVMYXll
cj4gTGVnYWN5VGlsZUxheQogewogICAgIGlmICghY2FuUmV1c2VMYXllcldpdGhTaXplKHNpemUp
KQogICAgICAgICByZXR1cm4gbmlsOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xheWVyUG9v
bE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xheWVyUG9vbE11dGV4KTsKICAgICBM
YXllckxpc3QmIHJldXNlTGlzdCA9IGxpc3RPZkxheWVyc1dpdGhTaXplKHNpemUsIE1hcmtBc1Vz
ZWQpOwogICAgIGlmIChyZXVzZUxpc3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbmlsOwpA
QCAtMTA2LDcgKzEwNiw3IEBAIFJldGFpblB0cjxMZWdhY3lUaWxlTGF5ZXI+IExlZ2FjeVRpbGVM
YXkKIAogdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpzZXRDYXBhY2l0eSh1bnNpZ25lZCBjYXBh
Y2l0eSkKIHsKLSAgICBNdXRleExvY2tlciByZXVzZUxvY2tlcihtX2xheWVyUG9vbE11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIHJldXNlTG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwogICAgIGlmIChj
YXBhY2l0eSA8IG1fY2FwYWNpdHkpCiAgICAgICAgIHNjaGVkdWxlUHJ1bmUoKTsKICAgICBtX2Nh
cGFjaXR5ID0gY2FwYWNpdHk7CkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBMZWdhY3lUaWxlTGF5
ZXJQb29sOjpzY2hlZHVsZVBydW5lKAogCiB2b2lkIExlZ2FjeVRpbGVMYXllclBvb2w6OnBydW5l
KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7CiAgICAgQVNTRVJUKG1fbmVlZHNQcnVu
ZSk7CiAgICAgbV9uZWVkc1BydW5lID0gZmFsc2U7CiAgICAgdW5zaWduZWQgc2hyaW5rVG8gPSBk
ZWNheWVkQ2FwYWNpdHkoKTsKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIExlZ2FjeVRpbGVMYXll
clBvb2w6OnBydW5lKCkKIAogdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpkcmFpbigpCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgcmV1c2VMb2NrZXIobV9sYXllclBvb2xNdXRleCk7CisgICAgTG9ja0hv
bGRlciByZXVzZUxvY2tlcihtX2xheWVyUG9vbE11dGV4KTsKICAgICBtX3JldXNlTGlzdHMuY2xl
YXIoKTsKICAgICBtX3NpemVzSW5QcnVuZU9yZGVyLmNsZWFyKCk7CiAgICAgbV90b3RhbEJ5dGVz
ID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93
bmxvYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsRG93bmxvYWQuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjAsNyArNjAsNyBAQCBDdXJsRG93bmxvYWRNYW5hZ2VyOjp+Q3VybERvd25sb2FkTWFuYWdl
CiAKIGJvb2wgQ3VybERvd25sb2FkTWFuYWdlcjo6YWRkKENVUkwqIGN1cmxIYW5kbGUpCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bXV0ZXgpOwogCiAgICAgbV9wZW5kaW5nSGFuZGxlTGlzdC5hcHBlbmQoY3VybEhhbmRsZSk7CiAg
ICAgc3RhcnRUaHJlYWRJZk5lZWRlZCgpOwpAQCAtNzAsNyArNzAsNyBAQCBib29sIEN1cmxEb3du
bG9hZE1hbmFnZXI6OmFkZChDVVJMKiBjdXJsCiAKIGJvb2wgQ3VybERvd25sb2FkTWFuYWdlcjo6
cmVtb3ZlKENVUkwqIGN1cmxIYW5kbGUpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgbV9yZW1vdmVkSGFu
ZGxlTGlzdC5hcHBlbmQoY3VybEhhbmRsZSk7CiAKQEAgLTc5LDEzICs3OSwxMyBAQCBib29sIEN1
cmxEb3dubG9hZE1hbmFnZXI6OnJlbW92ZShDVVJMKiBjCiAKIGludCBDdXJsRG93bmxvYWRNYW5h
Z2VyOjpnZXRBY3RpdmVEb3dubG9hZENvdW50KCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0
dXJuIG1fYWN0aXZlSGFuZGxlTGlzdC5zaXplKCk7CiB9CiAKIGludCBDdXJsRG93bmxvYWRNYW5h
Z2VyOjpnZXRQZW5kaW5nRG93bmxvYWRDb3VudCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIHJl
dHVybiBtX3BlbmRpbmdIYW5kbGVMaXN0LnNpemUoKTsKIH0KIApAQCAtMTExLDcgKzExMSw3IEBA
IHZvaWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RvcFRocmVhZCgpCiAKIHZvaWQgQ3VybERvd25s
b2FkTWFuYWdlcjo6c3RvcFRocmVhZElmSWRsZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKCFn
ZXRBY3RpdmVEb3dubG9hZENvdW50KCkgJiYgIWdldFBlbmRpbmdEb3dubG9hZENvdW50KCkpCiAg
ICAgICAgIHNldFJ1blRocmVhZChmYWxzZSk7CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBDdXJs
RG93bmxvYWRNYW5hZ2VyOjpzdG9wVGhyZWFkSWZJZAogCiB2b2lkIEN1cmxEb3dubG9hZE1hbmFn
ZXI6OnVwZGF0ZUhhbmRsZUxpc3QoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIC8vIFJlbW92ZSBjdXJs
IGVhc3kgaGFuZGxlcyBmcm9tIG11bHRpIGxpc3QgCiAgICAgaW50IHNpemUgPSBtX3JlbW92ZWRI
YW5kbGVMaXN0LnNpemUoKTsKQEAgLTI0NSw3ICsyNDUsNyBAQCBDdXJsRG93bmxvYWQ6OkN1cmxE
b3dubG9hZCgpCiAKIEN1cmxEb3dubG9hZDo6fkN1cmxEb3dubG9hZCgpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwog
CiAgICAgaWYgKG1fdXJsKQogICAgICAgICBmYXN0RnJlZShtX3VybCk7CkBAIC0yNjIsNyArMjYy
LDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmluaXQoQ3VybERvd25sb2FkTGlzdAogICAgIGlmICgh
bGlzdGVuZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIG1fY3VybEhhbmRs
ZSA9IGN1cmxfZWFzeV9pbml0KCk7CiAKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIEN1cmxEb3du
bG9hZDo6aW5pdChDdXJsRG93bmxvYWRMaXN0CiAgICAgaWYgKCFsaXN0ZW5lcikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgVVJMIHVybChQYXJzZWRVUkxTdHJpbmcsIHJlcXVl
c3QudXJsKCkpOwogCkBAIC0zMTcsMjUgKzMxNywyNSBAQCBib29sIEN1cmxEb3dubG9hZDo6Y2Fu
Y2VsKCkKIAogU3RyaW5nIEN1cmxEb3dubG9hZDo6Z2V0VGVtcFBhdGgoKSBjb25zdAogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211
dGV4KTsKICAgICByZXR1cm4gbV90ZW1wUGF0aDsKIH0KIAogU3RyaW5nIEN1cmxEb3dubG9hZDo6
Z2V0VXJsKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIFN0cmluZyhtX3VybCk7CiB9
CiAKIFJlc291cmNlUmVzcG9uc2UgQ3VybERvd25sb2FkOjpnZXRSZXNwb25zZSgpIGNvbnN0CiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fbXV0ZXgpOwogICAgIHJldHVybiBtX3Jlc3BvbnNlOwogfQogCiB2b2lkIEN1cmxEb3dubG9h
ZDo6Y2xvc2VGaWxlKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBpZiAobV90ZW1wSGFuZGxlICE9IGlu
dmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpIHsKICAgICAgICAgV2ViQ29yZTo6Y2xvc2VGaWxlKG1f
dGVtcEhhbmRsZSk7CkBAIC0zOTAsNyArMzkwLDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmFkZEhl
YWRlcnMoY29uc3QgUmVzbwogCiB2b2lkIEN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZUhlYWRlcihj
b25zdCBTdHJpbmcmIGhlYWRlcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBpZiAoaGVhZGVyID09ICJc
clxuIiB8fCBoZWFkZXIgPT0gIlxuIikgewogCkBAIC00MzAsNyArNDMwLDcgQEAgdm9pZCBDdXJs
RG93bmxvYWQ6OmRpZFJlY2VpdmVIZWFkZXIoY29ucwogCiB2b2lkIEN1cmxEb3dubG9hZDo6ZGlk
UmVjZWl2ZURhdGEodm9pZCogZGF0YSwgaW50IHNpemUpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgUmVm
UHRyPEN1cmxEb3dubG9hZD4gcHJvdGVjdGVkRG93bmxvYWQodGhpcyk7CiAKQEAgLTQ2NCw3ICs0
NjQsNyBAQCB2b2lkIEN1cmxEb3dubG9hZDo6ZGlkRmluaXNoKCkKIAogdm9pZCBDdXJsRG93bmxv
YWQ6OmRpZEZhaWwoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIGNsb3NlRmlsZSgpOwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9h
ZC5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybERvd25sb2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgcHJp
dmF0ZToKICAgICBWZWN0b3I8Q1VSTCo+IG1fcGVuZGluZ0hhbmRsZUxpc3Q7CiAgICAgVmVjdG9y
PENVUkwqPiBtX2FjdGl2ZUhhbmRsZUxpc3Q7CiAgICAgVmVjdG9yPENVUkwqPiBtX3JlbW92ZWRI
YW5kbGVMaXN0OwotICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKKyAgICBtdXRhYmxlIExvY2sg
bV9tdXRleDsKICAgICBib29sIG1fcnVuVGhyZWFkOwogfTsKIApAQCAtMTQwLDcgKzE0MCw3IEBA
IHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fdGVtcEhhbmRsZTsK
ICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAgICAgYm9vbCBtX2Rl
bGV0ZXNGaWxlVXBvbkZhaWx1cmU7Ci0gICAgbXV0YWJsZSBNdXRleCBtX211dGV4OworICAgIG11
dGFibGUgTG9jayBtX211dGV4OwogICAgIEN1cmxEb3dubG9hZExpc3RlbmVyICptX2xpc3RlbmVy
OwogCiAgICAgc3RhdGljIEN1cmxEb3dubG9hZE1hbmFnZXIgbV9kb3dubG9hZE1hbmFnZXI7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVN
YW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMywxMCArMTMzLDExIEBAIHN0YXRpYyBjaGFyKiBjb29r
aWVKYXJQYXRoKCkKICNlbmRpZgogfQogCi1zdGF0aWMgTXV0ZXgqIHNoYXJlZFJlc291cmNlTXV0
ZXgoY3VybF9sb2NrX2RhdGEgZGF0YSkgewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChNdXRleCwgY29va2llTXV0ZXgsICgpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoTXV0ZXgsIGRuc011dGV4LCAoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKE11dGV4LCBzaGFyZU11dGV4LCAoKSk7CitzdGF0aWMgTG9jayogc2hhcmVkUmVz
b3VyY2VNdXRleChjdXJsX2xvY2tfZGF0YSBkYXRhKQoreworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChMb2NrLCBjb29raWVNdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChMb2NrLCBkbnNNdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChMb2NrLCBzaGFyZU11dGV4LCAoKSk7CiAKICAgICBzd2l0Y2ggKGRh
dGEpIHsKICAgICAgICAgY2FzZSBDVVJMX0xPQ0tfREFUQV9DT09LSUU6CkBAIC0xOTAsMTMgKzE5
MSwxMyBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVXZWJUaW1pbmdJbmZvcm1hdGlvCiAvLyBjYWNo
ZS4KIHN0YXRpYyB2b2lkIGN1cmxfbG9ja19jYWxsYmFjayhDVVJMKiAvKiBoYW5kbGUgKi8sIGN1
cmxfbG9ja19kYXRhIGRhdGEsIGN1cmxfbG9ja19hY2Nlc3MgLyogYWNjZXNzICovLCB2b2lkKiAv
KiB1c2VyUHRyICovKQogewotICAgIGlmIChNdXRleCogbXV0ZXggPSBzaGFyZWRSZXNvdXJjZU11
dGV4KGRhdGEpKQorICAgIGlmIChMb2NrKiBtdXRleCA9IHNoYXJlZFJlc291cmNlTXV0ZXgoZGF0
YSkpCiAgICAgICAgIG11dGV4LT5sb2NrKCk7CiB9CiAKIHN0YXRpYyB2b2lkIGN1cmxfdW5sb2Nr
X2NhbGxiYWNrKENVUkwqIC8qIGhhbmRsZSAqLywgY3VybF9sb2NrX2RhdGEgZGF0YSwgdm9pZCog
LyogdXNlclB0ciAqLykKIHsKLSAgICBpZiAoTXV0ZXgqIG11dGV4ID0gc2hhcmVkUmVzb3VyY2VN
dXRleChkYXRhKSkKKyAgICBpZiAoTG9jayogbXV0ZXggPSBzaGFyZWRSZXNvdXJjZU11dGV4KGRh
dGEpKQogICAgICAgICBtdXRleC0+dW5sb2NrKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0JKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQko
d29ya2luZyBjb3B5KQpAQCAtODUsOSArODUsOSBAQCBOU0RpY3Rpb25hcnkgKldlYkNvcmU6OlFM
RGlyZWN0b3J5QXR0cmliCiAgICAgcmV0dXJuIGRpY3Rpb25hcnk7CiB9CiAKLXN0YXRpYyBNdXRl
eCYgcWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkKK3N0YXRpYyBMb2NrJiBxbFBy
ZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxNdXRleD4gbXV0ZXg7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4
OwogICAgIHJldHVybiBtdXRleDsKIH0KIApAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgV2ViQ29y
ZTo6YWRkUUxQcmV2aWV3Q29udmVydGVyV2l0aEYKIHsKICAgICBBU1NFUlQodXJsKTsKICAgICBB
U1NFUlQoY29udmVydGVyKTsKLSAgICBNdXRleExvY2tlciBsb2NrKHFsUHJldmlld0NvbnZlcnRl
ckRpY3Rpb25hcnlNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2socWxQcmV2aWV3Q29udmVy
dGVyRGljdGlvbmFyeU11dGV4KCkpOwogICAgIFtRTFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5
KCkgc2V0T2JqZWN0OmNvbnZlcnRlciBmb3JLZXk6dXJsXTsKICAgICBbUUxDb250ZW50RGljdGlv
bmFyeSgpIHNldE9iamVjdDooZmlsZU5hbWUgPyBmaWxlTmFtZSA6IEAiIikgZm9yS2V5OnVybF07
CiB9CkBAIC0xMjEsNyArMTIxLDcgQEAgTlNTdHJpbmcgKldlYkNvcmU6OnFsUHJldmlld0NvbnZl
cnRlclVUSQogewogICAgIGlkIGNvbnZlcnRlciA9IG5pbDsKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOwog
ICAgICAgICBjb252ZXJ0ZXIgPSBbUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgpIG9iamVj
dEZvcktleTp1cmxdOwogICAgIH0KICAgICBpZiAoIWNvbnZlcnRlcikKQEAgLTEzMSw3ICsxMzEs
NyBAQCBOU1N0cmluZyAqV2ViQ29yZTo6cWxQcmV2aWV3Q29udmVydGVyVVRJCiAKIHZvaWQgV2Vi
Q29yZTo6cmVtb3ZlUUxQcmV2aWV3Q29udmVydGVyRm9yVVJMKE5TVVJMICp1cmwpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9jayhxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKSk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsK
ICAgICBbUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgpIHJlbW92ZU9iamVjdEZvcktleTp1
cmxdOwogCiAgICAgLy8gRGVsZXRlIHRoZSBmaWxlIHdoZW4gd2UgcmVtb3ZlIHRoZSBwcmV2aWV3
IGNvbnZlcnRlcgpAQCAtMTY2LDcgKzE2Niw3IEBAIGNvbnN0IFVSTCBXZWJDb3JlOjpzYWZlUUxV
UkxGb3JEb2N1bWVudFUKICAgICBpZCBjb252ZXJ0ZXIgPSBuaWw7CiAgICAgTlNVUkwgKm5zRG9j
dW1lbnRVUkwgPSBkb2N1bWVudFVSTDsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2so
cWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOwogICAgICAgICBjb252
ZXJ0ZXIgPSBbUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgpIG9iamVjdEZvcktleTpuc0Rv
Y3VtZW50VVJMXTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3FsL1NRTGl0ZURhdGFiYXNlLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIw
LDcgKzEyMCw3IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OmNsb3NlKCkKICAgICAgICAgLy8gQVNT
RVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX29wZW5pbmdUaHJlYWQpOwogICAgICAgICBzcWxpdGUz
KiBkYiA9IG1fZGI7CiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2RhdGFiYXNlQ2xvc2luZ011dGV4KTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
ZGF0YWJhc2VDbG9zaW5nTXV0ZXgpOwogICAgICAgICAgICAgbV9kYiA9IDA7CiAgICAgICAgIH0K
ICAgICAgICAgc3FsaXRlM19jbG9zZShkYik7CkBAIC0xNjAsNyArMTYwLDcgQEAgaW50NjRfdCBT
UUxpdGVEYXRhYmFzZTo6bWF4aW11bVNpemUoKQogICAgIGludDY0X3QgbWF4UGFnZUNvdW50ID0g
MDsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2sp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICAgICAg
ZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CiAgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1l
bnQoKnRoaXMsIEFTQ0lJTGl0ZXJhbCgiUFJBR01BIG1heF9wYWdlX2NvdW50IikpOwogICAgICAg
ICBtYXhQYWdlQ291bnQgPSBzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50NjQoMCk7CkBAIC0xODAsNyAr
MTgwLDcgQEAgdm9pZCBTUUxpdGVEYXRhYmFzZTo6c2V0TWF4aW11bVNpemUoaW50NgogICAgIEFT
U0VSVChjdXJyZW50UGFnZVNpemUgfHwgIW1fZGIpOwogICAgIGludDY0X3QgbmV3TWF4UGFnZUNv
dW50ID0gY3VycmVudFBhZ2VTaXplID8gc2l6ZSAvIGN1cnJlbnRQYWdlU2l6ZSA6IDA7CiAgICAg
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwogICAgIGVuYWJsZUF1dGhvcml6ZXIoZmFsc2Up
OwogCiAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudCgqdGhpcywgIlBSQUdNQSBtYXhfcGFn
ZV9jb3VudCA9ICIgKyBTdHJpbmc6Om51bWJlcihuZXdNYXhQYWdlQ291bnQpKTsKQEAgLTE5Nyw3
ICsxOTcsNyBAQCBpbnQgU1FMaXRlRGF0YWJhc2U6OnBhZ2VTaXplKCkKICAgICAvLyBTaW5jZSB0
aGUgcGFnZSBzaXplIG9mIGEgZGF0YWJhc2UgaXMgbG9ja2VkIGluIGF0IGNyZWF0aW9uIGFuZCB0
aGVyZWZvcmUgY2Fubm90IGJlIGR5bmFtaWMsIAogICAgIC8vIHdlIGNhbiBjYWNoZSB0aGUgdmFs
dWUgZm9yIGZ1dHVyZSB1c2UKICAgICBpZiAobV9wYWdlU2l6ZSA9PSAtMSkgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwogICAgICAgICBlbmFibGVBdXRob3JpemVyKGZhbHNl
KTsKICAgICAgICAgCiAgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsIEFT
Q0lJTGl0ZXJhbCgiUFJBR01BIHBhZ2Vfc2l6ZSIpKTsKQEAgLTIxNCw3ICsyMTQsNyBAQCBpbnQ2
NF90IFNRTGl0ZURhdGFiYXNlOjpmcmVlU3BhY2VTaXplKCkKICAgICBpbnQ2NF90IGZyZWVsaXN0
Q291bnQgPSAwOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3Jp
emVyTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwog
ICAgICAgICBlbmFibGVBdXRob3JpemVyKGZhbHNlKTsKICAgICAgICAgLy8gTm90ZTogZnJlZWxp
c3RfY291bnQgd2FzIGFkZGVkIGluIFNRTGl0ZSAzLjQuMS4KICAgICAgICAgU1FMaXRlU3RhdGVt
ZW50IHN0YXRlbWVudCgqdGhpcywgQVNDSUlMaXRlcmFsKCJQUkFHTUEgZnJlZWxpc3RfY291bnQi
KSk7CkBAIC0yMzAsNyArMjMwLDcgQEAgaW50NjRfdCBTUUxpdGVEYXRhYmFzZTo6dG90YWxTaXpl
KCkKICAgICBpbnQ2NF90IHBhZ2VDb3VudCA9IDA7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9hdXRob3JpemVyTG9jayk7CiAgICAgICAgIGVuYWJsZUF1dGhvcml6ZXIoZmFsc2UpOwogICAg
ICAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KCp0aGlzLCBBU0NJSUxpdGVyYWwoIlBSQUdN
QSBwYWdlX2NvdW50IikpOwogICAgICAgICBwYWdlQ291bnQgPSBzdGF0ZW1lbnQuZ2V0Q29sdW1u
SW50NjQoMCk7CkBAIC0zMDksNyArMzA5LDcgQEAgaW50IFNRTGl0ZURhdGFiYXNlOjpydW5WYWN1
dW1Db21tYW5kKCkKIAogaW50IFNRTGl0ZURhdGFiYXNlOjpydW5JbmNyZW1lbnRhbFZhY3V1bUNv
bW1hbmQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICBlbmFibGVBdXRob3Jp
emVyKGZhbHNlKTsKIAogICAgIGlmICghZXhlY3V0ZUNvbW1hbmQoQVNDSUlMaXRlcmFsKCJQUkFH
TUEgaW5jcmVtZW50YWxfdmFjdXVtIikpKQpAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQgU1FMaXRl
RGF0YWJhc2U6OnNldEF1dGhvcml6ZXIoUGFzc1IKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKIAogICAgIG1fYXV0aG9yaXplciA9IGF1dGg7CiAg
ICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2Uu
aAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUg
PGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8c3FsaXRlMy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTEwNiw3ICsxMDcsNyBAQCBw
dWJsaWM6CiAgICAgCiAgICAgdm9pZCBzZXRBdXRob3JpemVyKFBhc3NSZWZQdHI8RGF0YWJhc2VB
dXRob3JpemVyPik7CiAKLSAgICBNdXRleCYgZGF0YWJhc2VNdXRleCgpIHsgcmV0dXJuIG1fbG9j
a2luZ011dGV4OyB9CisgICAgTG9jayYgZGF0YWJhc2VNdXRleCgpIHsgcmV0dXJuIG1fbG9ja2lu
Z011dGV4OyB9CiAgICAgYm9vbCBpc0F1dG9Db21taXRPbigpIGNvbnN0OwogCiAgICAgLy8gVGhl
IFNRTGl0ZSBBVVRPX1ZBQ1VVTSBwcmFnbWEgY2FuIGJlIGVpdGhlciBOT05FLCBGVUxMLCBvciBJ
TkNSRU1FTlRBTC4KQEAgLTE0NywxMyArMTQ4LDEzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Ry
YW5zYWN0aW9uSW5Qcm9ncmVzczsKICAgICBib29sIG1fc2hhcmFibGU7CiAgICAgCi0gICAgTXV0
ZXggbV9hdXRob3JpemVyTG9jazsKKyAgICBMb2NrIG1fYXV0aG9yaXplckxvY2s7CiAgICAgUmVm
UHRyPERhdGFiYXNlQXV0aG9yaXplcj4gbV9hdXRob3JpemVyOwogCi0gICAgTXV0ZXggbV9sb2Nr
aW5nTXV0ZXg7CisgICAgTG9jayBtX2xvY2tpbmdNdXRleDsKICAgICBUaHJlYWRJZGVudGlmaWVy
IG1fb3BlbmluZ1RocmVhZDsKIAotICAgIE11dGV4IG1fZGF0YWJhc2VDbG9zaW5nTXV0ZXg7Cisg
ICAgTG9jayBtX2RhdGFiYXNlQ2xvc2luZ011dGV4OwogCiAgICAgaW50IG1fb3BlbkVycm9yOwog
ICAgIENTdHJpbmcgbV9vcGVuRXJyb3JNZXNzYWdlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIGludCBTUUxpdGVTdGF0ZW1lbnQ6OnByZXBhcmUoKQog
ewogICAgIEFTU0VSVCghbV9pc1ByZXBhcmVkKTsKIAotICAgIE11dGV4TG9ja2VyIGRhdGFiYXNl
TG9jayhtX2RhdGFiYXNlLmRhdGFiYXNlTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBkYXRhYmFz
ZUxvY2sobV9kYXRhYmFzZS5kYXRhYmFzZU11dGV4KCkpOwogCiAgICAgQ1N0cmluZyBxdWVyeSA9
IG1fcXVlcnkuc3RyaXBXaGl0ZVNwYWNlKCkudXRmOCgpOwogICAgIApAQCAtODYsNyArODYsNyBA
QCBpbnQgU1FMaXRlU3RhdGVtZW50OjpwcmVwYXJlKCkKIAogaW50IFNRTGl0ZVN0YXRlbWVudDo6
c3RlcCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgZGF0YWJhc2VMb2NrKG1fZGF0YWJhc2UuZGF0YWJh
c2VNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGRhdGFiYXNlTG9jayhtX2RhdGFiYXNlLmRhdGFi
YXNlTXV0ZXgoKSk7CiAKICAgICBpZiAoIW1fc3RhdGVtZW50KQogICAgICAgICByZXR1cm4gU1FM
SVRFX09LOwpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjIsNyArMTIyLDcgQEAgV29ya2VyVGhyZWFkOjp+V29ya2Vy
VGhyZWFkKCkKIGJvb2wgV29ya2VyVGhyZWFkOjpzdGFydCgpCiB7CiAgICAgLy8gTXV0ZXggcHJv
dGVjdGlvbiBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoYXQgbV90aHJlYWRJRCBpcyBpbml0aWFs
aXplZCB3aGVuIHRoZSB0aHJlYWQgc3RhcnRzLgotICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJl
YWRDcmVhdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11
dGV4KTsKIAogICAgIGlmIChtX3RocmVhZElEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE0
NSw3ICsxNDUsNyBAQCB2b2lkIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKCkKICNlbmRpZgog
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwogICAgICAg
ICBtX3dvcmtlckdsb2JhbFNjb3BlID0gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUobV9zdGFydHVw
RGF0YS0+bV9zY3JpcHRVUkwsIG1fc3RhcnR1cERhdGEtPm1fdXNlckFnZW50LCBtX3N0YXJ0dXBE
YXRhLT5tX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9zdGFydHVwRGF0YS0+bV9jb250ZW50U2Vj
dXJpdHlQb2xpY3lUeXBlLCBtX3N0YXJ0dXBEYXRhLT5tX3RvcE9yaWdpbi5yZWxlYXNlKCkpOwog
CiAgICAgICAgIGlmIChtX3J1bkxvb3AudGVybWluYXRlZCgpKSB7CkBAIC0xODksNyArMTg5LDcg
QEAgdm9pZCBXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCiB2b2lkIFdvcmtlclRocmVhZDo6
c3RvcCgpCiB7CiAgICAgLy8gTXV0ZXggcHJvdGVjdGlvbiBpcyBuZWNlc3NhcnkgYmVjYXVzZSBz
dG9wKCkgY2FuIGJlIGNhbGxlZCBiZWZvcmUgdGhlIGNvbnRleHQgaXMgZnVsbHkgY3JlYXRlZC4K
LSAgICBNdXRleExvY2tlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CiAKICAgICAvLyBFbnN1cmUgdGhhdCB0
YXNrcyBhcmUgYmVpbmcgaGFuZGxlZCBieSB0aHJlYWQgZXZlbnQgbG9vcC4gSWYgc2NyaXB0IGV4
ZWN1dGlvbiB3ZXJlbid0IGZvcmJpZGRlbiwgYSB3aGlsZSgxKSBsb29wIGluIEpTIGNvdWxkIGtl
ZXAgdGhlIHRocmVhZCBhbGl2ZSBmb3JldmVyLgogICAgIGlmIChtX3dvcmtlckdsb2JhbFNjb3Bl
KSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTg5LDcgKzg5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXb3Jr
ZXJSZXBvcnRpbmdQcm94eSYgbV93b3JrZXJSZXBvcnRpbmdQcm94eTsKIAogICAgICAgICBSZWZQ
dHI8V29ya2VyR2xvYmFsU2NvcGU+IG1fd29ya2VyR2xvYmFsU2NvcGU7Ci0gICAgICAgIE11dGV4
IG1fdGhyZWFkQ3JlYXRpb25NdXRleDsKKyAgICAgICAgTG9jayBtX3RocmVhZENyZWF0aW9uTXV0
ZXg7CiAKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhPiBt
X3N0YXJ0dXBEYXRhOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1OSBAQAorMjAx
NS0wOC0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxh
Y2UgYWxsIHJlbWFpbmluZyB1c2VzIG9mIFdURjo6TXV0ZXggd2l0aCBXVEY6OkxvY2sKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODA4OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vz
czo6cG9zdERhdGFiYXNlVGFzayk6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzczo6
cGVyZm9ybU5leHREYXRhYmFzZVRhc2spOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRh
YmFzZVByb2Nlc3MuaDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1
ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OnNo
dXRkb3duKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OnBvc3RNYWluVGhy
ZWFkVGFzayk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtTmV4
dE1haW5UaHJlYWRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OnBv
c3REYXRhYmFzZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6cGVy
Zm9ybU5leHREYXRhYmFzZVRhc2spOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVk
REIvVW5pcXVlSURCRGF0YWJhc2UuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZSk6CisgICAg
ICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZUZyb21TZWNvbmRhcnlUaHJlYWQp
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5KToKKyAgICAgICAg
KElQQzo6Q29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nU3luY1JlcGx5KToKKyAgICAgICAgKElQ
Qzo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZTo6YXBwZW5kVXBkYXRlKToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKiBTaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9y
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVDb21wb3Np
dGluZ1RocmVhZCk6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29tcG9zaXRvcjo6cnVuQ29t
cG9zaXRpbmdUaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OnRl
cm1pbmF0ZUNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmg6CisgICAgICAg
ICogU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3RvY29sTWFu
YWdlckNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmFk
ZEN1c3RvbVByb3RvY29sKToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
OjpyZW1vdmVDdXN0b21Qcm90b2NvbCk6CisgICAgICAgIChXZWJLaXQ6OkN1c3RvbVByb3RvY29s
TWFuYWdlcjo6cmVnaXN0ZXJTY2hlbWUpOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Qcm90b2Nv
bE1hbmFnZXI6OnVucmVnaXN0ZXJTY2hlbWUpOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Qcm90
b2NvbE1hbmFnZXI6OnN1cHBvcnRzU2NoZW1lKToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJv
dG9jb2xNYW5hZ2VyOjpwcm90b2NvbEZvcklEKToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9D
dXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmg6CisgICAgICAgICogU2hhcmVk
L2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyOjpyZW1vdmVQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6cGx1Z2luUHJvY2Vzc0NyYXNoZWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjphZGRTY3JvbGxpbmdUcmVlRm9yUGFn
ZSk6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6cmVtb3ZlU2Nyb2xsaW5nVHJl
ZUZvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHA6Cisg
ICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jKToKKyAgICAgICAg
KHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1BZGREYXRhKToKKwogMjAxNS0wOC0xNyAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFNwZWN1
bGF0aXZlIEdUSyBidWlsZCBmaXggYWZ0ZXIgcjE4ODU1MwpJbmRleDogU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nl
c3M6OnBvc3REYXRhYmFzZVRhc2socwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CiAKICAgICBtX2RhdGFiYXNlVGFz
a3MuYXBwZW5kKFdURjo6bW92ZSh0YXNrKSk7CiAKQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIERh
dGFiYXNlUHJvY2Vzczo6cGVyZm9ybU5leHREYXRhYmFzCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
QXN5bmNUYXNrPiB0YXNrOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0
YWJhc2VUYXNrTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlVGFz
a011dGV4KTsKICAgICAgICAgQVNTRVJUKCFtX2RhdGFiYXNlVGFza3MuaXNFbXB0eSgpKTsKICAg
ICAgICAgdGFzayA9IG1fZGF0YWJhc2VUYXNrcy50YWtlRmlyc3QoKTsKICAgICB9CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCShy
ZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2YXRlOgog
ICAgIEhhc2hNYXA8VW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyLCBSZWZQdHI8VW5pcXVlSURC
RGF0YWJhc2U+PiBtX2lkYkRhdGFiYXNlczsKIAogICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxB
c3luY1Rhc2s+PiBtX2RhdGFiYXNlVGFza3M7Ci0gICAgTXV0ZXggbV9kYXRhYmFzZVRhc2tNdXRl
eDsKKyAgICBMb2NrIG1fZGF0YWJhc2VUYXNrTXV0ZXg7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5p
cXVlSURCRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxODg1Njkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OnNodXRkb3duKFVuaXF1ZUkKICAgICByZWYoKTsKIAogICAgIHsKLSAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKICAgICAgICAgbV9kYXRhYmFzZVRh
c2tzLmNsZWFyKCk7CiAgICAgfQogCkBAIC0xMTI1LDcgKzExMjUsNyBAQCB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpwb3N0TWFpblRocmVhZFRhCiAgICAgaWYgKCFtX2FjY2VwdGluZ05ld1JlcXVl
c3RzICYmIHRhc2tUeXBlID09IERhdGFiYXNlVGFza1R5cGU6Ok5vcm1hbCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbWFpblRocmVhZFRhc2tNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9tYWluVGhyZWFkVGFza011dGV4KTsKIAogICAgIG1fbWFp
blRocmVhZFRhc2tzLmFwcGVuZChXVEY6Om1vdmUodGFzaykpOwogCkBAIC0xMTQzLDcgKzExNDMs
NyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtTmV4dE1haW5UCiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8QXN5bmNUYXNrPiB0YXNrOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fbWFpblRocmVhZFRhc2tNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fbWFpblRocmVhZFRhc2tNdXRleCk7CiAKICAgICAgICAgLy8gVGhpcyBkYXRhYmFzZSBtaWdo
dCBiZSBzaHV0dGluZyBkb3duLCBpbiB3aGljaCBjYXNlIHRoZSB0YXNrIHF1ZXVlIG1pZ2h0IGJl
IGVtcHR5LgogICAgICAgICBpZiAobV9tYWluVGhyZWFkVGFza3MuaXNFbXB0eSgpKQpAQCAtMTE2
NSw3ICsxMTY1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cG9zdERhdGFiYXNlVGFzawog
ICAgIGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cyAmJiB0YXNrVHlwZSA9PSBEYXRhYmFzZVRh
c2tUeXBlOjpOb3JtYWwpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNl
VGFza011dGV4KTsKIAogICAgIG1fZGF0YWJhc2VUYXNrcy5hcHBlbmQoV1RGOjptb3ZlKHRhc2sp
KTsKIApAQCAtMTE4Niw3ICsxMTg2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9y
bU5leHREYXRhYgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFzazsKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CiAKICAgICAgICAgLy8g
VGhpcyBkYXRhYmFzZSBtaWdodCBiZSBzaHV0dGluZyBkb3duIG9uIHRoZSBtYWluIHRocmVhZCwg
aW4gd2hpY2ggY2FzZSB0aGUgdGFzayBxdWV1ZSBtaWdodCBiZSBlbXB0eS4KICAgICAgICAgaWYg
KG1fZGF0YWJhc2VUYXNrcy5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5o
CShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMCwxMCArMjEw
LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3Jl
PiBtX2JhY2tpbmdTdG9yZTsKIAogICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxBc3luY1Rhc2s+
PiBtX2RhdGFiYXNlVGFza3M7Ci0gICAgTXV0ZXggbV9kYXRhYmFzZVRhc2tNdXRleDsKKyAgICBM
b2NrIG1fZGF0YWJhc2VUYXNrTXV0ZXg7CiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8QXN5
bmNUYXNrPj4gbV9tYWluVGhyZWFkVGFza3M7Ci0gICAgTXV0ZXggbV9tYWluVGhyZWFkVGFza011
dGV4OworICAgIExvY2sgbV9tYWluVGhyZWFkVGFza011dGV4OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24u
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1OSw3ICs0NTksNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3RpCiAKICAgICAvLyBQdXNoIHRoZSBwZW5kaW5n
IHN5bmMgcmVwbHkgaW5mb3JtYXRpb24gb24gb3VyIHN0YWNrLgogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAgICAgICAgIGlmICghbV9zaG91bGRX
YWl0Rm9yU3luY1JlcGxpZXMpIHsKICAgICAgICAgICAgIGRpZEZhaWxUb1NlbmRTeW5jTWVzc2Fn
ZSgpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC00ODYsNyArNDg2LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aQogCiAgICAgLy8gRmluYWxseSwg
cG9wIHRoZSBwZW5kaW5nIHN5bmMgcmVwbHkgaW5mb3JtYXRpb24uCiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKICAgICAgICAgQVNTRVJUKG1fcGVu
ZGluZ1N5bmNSZXBsaWVzLmxhc3QoKS5zeW5jUmVxdWVzdElEID09IHN5bmNSZXF1ZXN0SUQpOwog
ICAgICAgICBtX3BlbmRpbmdTeW5jUmVwbGllcy5yZW1vdmVMYXN0KCk7CiAgICAgfQpAQCAtNTA4
LDcgKzUwOCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAog
ICAgIC8vIFB1c2ggdGhlIHBlbmRpbmcgc3luYyByZXBseSBpbmZvcm1hdGlvbiBvbiBvdXIgc3Rh
Y2suCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsK
ICAgICAgICAgaWYgKCFtX3Nob3VsZFdhaXRGb3JTeW5jUmVwbGllcykKICAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCkBAIC01MjYsNyArNTI2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3Nh
Z2VEZWNvZGVyPiBDb25uZWN0aQogCiAgICAgLy8gRmluYWxseSwgcG9wIHRoZSBwZW5kaW5nIHN5
bmMgcmVwbHkgaW5mb3JtYXRpb24uCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5j
UmVwbHlTdGF0ZU11dGV4KTsKICAgICAgICAgQVNTRVJUKG1fc2Vjb25kYXJ5VGhyZWFkUGVuZGlu
Z1N5bmNSZXBseU1hcC5jb250YWlucyhzeW5jUmVxdWVzdElEKSk7CiAgICAgICAgIG1fc2Vjb25k
YXJ5VGhyZWFkUGVuZGluZ1N5bmNSZXBseU1hcC5yZW1vdmUoc3luY1JlcXVlc3RJRCk7CiAgICAg
fQpAQCAtNTQ2LDcgKzU0Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29u
bmVjdGkKICAgICAgICAgU3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCkuZGlzcGF0Y2hNZXNz
YWdlcyhudWxscHRyKTsKICAgICAgICAgCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKIAogICAgICAgICAgICAgLy8gU2Vjb25k
LCBjaGVjayBpZiB0aGVyZSBpcyBhIHN5bmMgcmVwbHkgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2su
CiAgICAgICAgICAgICBBU1NFUlQoIW1fcGVuZGluZ1N5bmNSZXBsaWVzLmlzRW1wdHkoKSk7CkBA
IC01OTIsNyArNTkyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0
aQogCiB2b2lkIENvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ1N5bmNSZXBseShzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZURlY29kZXI+IGRlY29kZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jUmVw
bHlTdGF0ZU11dGV4KTsKIAogICAgIC8vIEdvIHRocm91Z2ggdGhlIHN0YWNrIG9mIHN5bmMgcmVx
dWVzdHMgdGhhdCBoYXZlIHBlbmRpbmcgcmVwbGllcyBhbmQgc2VlIHdoaWNoIG9uZQogICAgIC8v
IHRoaXMgcmVwbHkgaXMgZm9yLgpAQCAtNzUwLDcgKzc1MCw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6
Y29ubmVjdGlvbkRpZENsb3NlKCkKICAgICBwbGF0Zm9ybUludmFsaWRhdGUoKTsKIAogICAgIHsK
LSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAKICAgICAgICAg
QVNTRVJUKG1fc2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzKTsKICAgICAgICAgbV9zaG91bGRXYWl0
Rm9yU3luY1JlcGxpZXMgPSBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9Db25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L0Nvbm5lY3Rpb24uaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Xb3Jr
UXVldWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTI5OCw3ICsyOTks
NyBAQCBwcml2YXRlOgogICAgIGNsYXNzIFN5bmNNZXNzYWdlU3RhdGU7CiAgICAgZnJpZW5kIGNs
YXNzIFN5bmNNZXNzYWdlU3RhdGU7CiAKLSAgICBNdXRleCBtX3N5bmNSZXBseVN0YXRlTXV0ZXg7
CisgICAgTG9jayBtX3N5bmNSZXBseVN0YXRlTXV0ZXg7CiAgICAgYm9vbCBtX3Nob3VsZFdhaXRG
b3JTeW5jUmVwbGllczsKICAgICBWZWN0b3I8UGVuZGluZ1N5bmNSZXBseT4gbV9wZW5kaW5nU3lu
Y1JlcGxpZXM7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
LmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjkwLDcgKzY5MCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphcHBlbmRV
cGQKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV9yZW5kZXJRdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3JlbmRlclF1ZXVlTXV0ZXgpOwogICAgIG1fcmVuZGVyUXVldWUuYXBwZW5kKFdURjo6
bW92ZShmdW5jdGlvbikpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzU2NlbmUuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE0NSw3ICsxNDUsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gUmVuZGVyIHF1ZXVlIGNh
biBiZSBhY2Nlc3NlZCBvbnkgZnJvbSBtYWluIHRocmVhZCBvciB1cGRhdGVQYWludE5vZGUgY2Fs
bCBzdGFjayEKICAgICBWZWN0b3I8c3RkOjpmdW5jdGlvbjx2b2lkKCk+PiBtX3JlbmRlclF1ZXVl
OwotICAgIE11dGV4IG1fcmVuZGVyUXVldWVNdXRleDsKKyAgICBMb2NrIG1fcmVuZGVyUXVldWVN
dXRleDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyPiBtX3Rl
eHR1cmVNYXBwZXI7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0
b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk1LDcgKzI5NSw3
IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVDb21wb3NpdGkKICAgICBpZiAobV90
aHJlYWRJZGVudGlmaWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogICAgIG1fdGhyZWFkSWRl
bnRpZmllciA9IGNyZWF0ZVRocmVhZChjb21wb3NpdGluZ1RocmVhZEVudHJ5LCB0aGlzLCAiV2Vi
Q29yZTogVGhyZWFkZWRDb21wb3NpdG9yIik7CiAKICAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29u
ZGl0aW9uLndhaXQobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKQEAgLTMwNCw3
ICszMDQsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlQ29tcG9zaXRpCiB2b2lk
IFRocmVhZGVkQ29tcG9zaXRvcjo6cnVuQ29tcG9zaXRpbmdUaHJlYWQoKQogewogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRl
eCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRp
b25NdXRleCk7CiAKICAgICAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AgPSBzdGQ6Om1ha2VfdW5p
cXVlPENvbXBvc2l0aW5nUnVuTG9vcD4oWyZdIHsKICAgICAgICAgICAgIHJlbmRlckxheWVyVHJl
ZSgpOwpAQCAtMzIxLDcgKzMyMSw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpydW5Db21w
b3NpdGluZ1QKICAgICBtX3NjZW5lLT5wdXJnZUdMUmVzb3VyY2VzKCk7CiAKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11
dGV4KTsKICAgICAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AgPSBudWxscHRyOwogICAgICAgICBt
X2NvbnRleHQgPSBudWxscHRyOwogICAgICAgICBtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb24u
c2lnbmFsKCk7CkBAIC0zMzIsNyArMzMyLDcgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnJ1
bkNvbXBvc2l0aW5nVAogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6dGVybWluYXRlQ29tcG9z
aXRpbmdUaHJlYWQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rlcm1pbmF0ZVJ1bkxv
b3BDb25kaXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90ZXJtaW5hdGVSdW5M
b29wQ29uZGl0aW9uTXV0ZXgpOwogCiAgICAgbV9zY2VuZS0+ZGV0YWNoKCk7CiAgICAgbV9jb21w
b3NpdGluZ1J1bkxvb3AtPnJ1bkxvb3AoKS5zdG9wKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21w
b3NpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAg
LTExMSw5ICsxMTEsOSBAQCBwcml2YXRlOgogCiAgICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVh
ZElkZW50aWZpZXI7CiAgICAgVGhyZWFkQ29uZGl0aW9uIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25k
aXRpb247Ci0gICAgTXV0ZXggbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4OworICAg
IExvY2sgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4OwogICAgIFRocmVhZENvbmRp
dGlvbiBtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb247Ci0gICAgTXV0ZXggbV90ZXJtaW5hdGVS
dW5Mb29wQ29uZGl0aW9uTXV0ZXg7CisgICAgTG9jayBtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRp
b25NdXRleDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3Rv
Y29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFu
YWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsMTEgKzEwMiwxMSBAQCBwcml2YXRlOgogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fcmVnaXN0ZXJlZFNjaGVt
ZXM7Ci0gICAgTXV0ZXggbV9yZWdpc3RlcmVkU2NoZW1lc011dGV4OworICAgIExvY2sgbV9yZWdp
c3RlcmVkU2NoZW1lc011dGV4OwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZXRh
aW5QdHI8V0tDdXN0b21Qcm90b2NvbD4+IEN1c3RvbVByb3RvY29sTWFwOwogICAgIEN1c3RvbVBy
b3RvY29sTWFwIG1fY3VzdG9tUHJvdG9jb2xNYXA7Ci0gICAgTXV0ZXggbV9jdXN0b21Qcm90b2Nv
bE1hcE11dGV4OworICAgIExvY2sgbV9jdXN0b21Qcm90b2NvbE1hcE11dGV4OwogICAgIAogICAg
IC8vIFdLQ3VzdG9tUHJvdG9jb2wgb2JqZWN0cyBjYW4gYmUgcmVtb3ZlZCBmcm9tIHRoZSBtX2N1
c3RvbVByb3RvY29sTWFwIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KICAgICAvLyBXZSByZXR1cm4g
YSBSZXRhaW5QdHIgaGVyZSBiZWNhdXNlIGl0IGlzIHVuc2FmZSB0byByZXR1cm4gYSByYXcgcG9p
bnRlciBzaW5jZSB0aGUgb2JqZWN0IG1pZ2h0IGltbWVkaWF0ZWx5IGJlIGRlc3Ryb3llZCBmcm9t
IGEgZGlmZmVyZW50IHRocmVhZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3Jr
L0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMv
Q29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0JKHJldmlzaW9uIDE4ODU2OSkKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0
b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTY1LDI4ICsxNjUs
MjggQEAgdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmluaXRpYWxpemUoYwogdm9pZCBDdXN0
b21Qcm90b2NvbE1hbmFnZXI6OmFkZEN1c3RvbVByb3RvY29sKFdLQ3VzdG9tUHJvdG9jb2wgKmN1
c3RvbVByb3RvY29sKQogewogICAgIEFTU0VSVChjdXN0b21Qcm90b2NvbCk7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKICAgICBtX2N1c3RvbVByb3RvY29sTWFw
LmFkZChjdXN0b21Qcm90b2NvbC5jdXN0b21Qcm90b2NvbElELCBjdXN0b21Qcm90b2NvbCk7CiB9
CiAKIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpyZW1vdmVDdXN0b21Qcm90b2NvbChXS0N1
c3RvbVByb3RvY29sICpjdXN0b21Qcm90b2NvbCkKIHsKICAgICBBU1NFUlQoY3VzdG9tUHJvdG9j
b2wpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleCk7CiAgICAgbV9j
dXN0b21Qcm90b2NvbE1hcC5yZW1vdmUoY3VzdG9tUHJvdG9jb2wuY3VzdG9tUHJvdG9jb2xJRCk7
CiB9CiAgICAgCiB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6cmVnaXN0ZXJTY2hlbWUoY29u
c3QgU3RyaW5nJiBzY2hlbWUpCiB7CiAgICAgQVNTRVJUKCFzY2hlbWUuaXNOdWxsKCkpOwotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7CiAgICAgbV9yZWdpc3RlcmVk
U2NoZW1lcy5hZGQoc2NoZW1lKTsKIH0KICAgICAKIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
Ojp1bnJlZ2lzdGVyU2NoZW1lKGNvbnN0IFN0cmluZyYgc2NoZW1lKQogewogICAgIEFTU0VSVCgh
c2NoZW1lLmlzTnVsbCgpKTsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9yZWdpc3RlcmVkU2No
ZW1lc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0
ZXgpOwogICAgIG1fcmVnaXN0ZXJlZFNjaGVtZXMucmVtb3ZlKHNjaGVtZSk7CiB9CiAKQEAgLTE5
NSw3ICsxOTUsNyBAQCBib29sIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6c3VwcG9ydHNTY2hlCiAg
ICAgaWYgKHNjaGVtZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKICAgICByZXR1cm4gbV9yZWdpc3Rl
cmVkU2NoZW1lcy5jb250YWlucyhzY2hlbWUpOwogfQogCkBAIC0yNzUsNyArMjc1LDcgQEAgICAg
IGlmICghcHJvdG9jb2wpCiAKIFJldGFpblB0cjxXS0N1c3RvbVByb3RvY29sPiBDdXN0b21Qcm90
b2NvbE1hbmFnZXI6OnByb3RvY29sRm9ySUQodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOwogCiAgICAgQ3VzdG9t
UHJvdG9jb2xNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9jdXN0b21Qcm90b2NvbE1hcC5maW5k
KGN1c3RvbVByb3RvY29sSUQpOwogICAgIGlmIChpdCA9PSBtX2N1c3RvbVByb3RvY29sTWFwLmVu
ZCgpKQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1Nl
Y2NvbXBCcm9rZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51
eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAKICAgICBpbnQg
bV9zb2NrZXQ7CiAKLSAgICBtdXRhYmxlIE11dGV4IG1fc29ja2V0TG9jazsKKyAgICBtdXRhYmxl
IExvY2sgbV9zb2NrZXRMb2NrOwogCiAgICAgLy8gTWFwcyBmaWxlcyB0aGF0IG1heSBiZSByZWFk
IGJ5IG1hbGxvYygpIHRvIG9wZW4gZmlsZSBkZXNjcmlwdG9ycy4KICAgICBIYXNoTWFwPFN0cmlu
ZywgaW50PiBtX2ZpbGVEZXNjcmlwdG9yQ2FjaGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDcgQEAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24qIFBs
dWdpblByb2Nlc3NDbwogICAgIG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25zLmFwcGVuZChwbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbik7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3Rva2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3Rva2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXgpOwogICAgICAgICBBU1NFUlQoIW1fdG9rZW5z
QW5kQ29ubmVjdGlvbnMuY29udGFpbnMocGx1Z2luUHJvY2Vzc1Rva2VuKSk7CiAKICAgICAgICAg
bV90b2tlbnNBbmRDb25uZWN0aW9ucy5zZXQocGx1Z2luUHJvY2Vzc1Rva2VuLCBwbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpKTsKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6cmVtCiAgICAgQVNTRVJUKHZlY3RvckluZGV4
ICE9IG5vdEZvdW5kKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdG9r
ZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdG9r
ZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7CiAgICAgICAgIEFTU0VSVChtX3Rva2Vuc0FuZENvbm5l
Y3Rpb25zLmNvbnRhaW5zKHBsdWdpblByb2Nlc3NDb25uZWN0aW9uLT5wbHVnaW5Qcm9jZXNzVG9r
ZW4oKSkpOwogICAgICAgICAKICAgICAgICAgbV90b2tlbnNBbmRDb25uZWN0aW9ucy5yZW1vdmUo
cGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24tPnBsdWdpblByb2Nlc3NUb2tlbigpKTsKQEAgLTExMiw3
ICsxMTIsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6cmVtCiAKIHZv
aWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZCh1
aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4pCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
dG9rZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90b2tl
bnNBbmRDb25uZWN0aW9uc011dGV4KTsKICAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24g
PSBtX3Rva2Vuc0FuZENvbm5lY3Rpb25zLmdldChwbHVnaW5Qcm9jZXNzVG9rZW4pOwogCiAgICAg
Ly8gSXQncyBPSyBmb3IgY29ubmVjdGlvbiB0byBiZSBudWxsIGhlcmU7IGl0IHdpbGwgaGFwcGVu
IGlmIHRoaXMgd2ViIHByb2Nlc3MgZG9lc24ndCBrbm93CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxSZWZQdHI8
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+PiBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uczsKIAot
ICAgIE11dGV4IG1fdG9rZW5zQW5kQ29ubmVjdGlvbnNNdXRleDsKKyAgICBMb2NrIG1fdG9rZW5z
QW5kQ29ubmVjdGlvbnNNdXRleDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8SVBDOjpD
b25uZWN0aW9uPj4gbV90b2tlbnNBbmRDb25uZWN0aW9uczsKIH07CiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3Bw
CShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBAQCBFdmVu
dERpc3BhdGNoZXI6On5FdmVudERpc3BhdGNoZXIoKQogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJ
TkcpCiB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6YWRkU2Nyb2xsaW5nVHJlZUZvclBhZ2UoV2ViUGFn
ZSogd2ViUGFnZSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOwogCiAg
ICAgQVNTRVJUKHdlYlBhZ2UtPmNvcmVQYWdlKCktPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpOwog
ICAgIEFTU0VSVCghbV9zY3JvbGxpbmdUcmVlcy5jb250YWlucyh3ZWJQYWdlLT5wYWdlSUQoKSkp
OwpAQCAtNzYsNyArNzYsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6YWRkU2Nyb2xsaW5nVHJl
ZUZvCiAKIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpyZW1vdmVTY3JvbGxpbmdUcmVlRm9yUGFnZShX
ZWJQYWdlKiB3ZWJQYWdlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Njcm9sbGluZ1Ry
ZWVzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7
CiAgICAgQVNTRVJUKG1fc2Nyb2xsaW5nVHJlZXMuY29udGFpbnMod2ViUGFnZS0+cGFnZUlEKCkp
KTsKIAogICAgIG1fc2Nyb2xsaW5nVHJlZXMucmVtb3ZlKHdlYlBhZ2UtPnBhZ2VJRCgpKTsKQEAg
LTEzMiw3ICsxMzIsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudCh1aW50NjRf
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9z
Y3JvbGxpbmdUcmVlc011dGV4KTsKICAgICBpZiAoUmVmUHRyPFRocmVhZGVkU2Nyb2xsaW5nVHJl
ZT4gc2Nyb2xsaW5nVHJlZSA9IG1fc2Nyb2xsaW5nVHJlZXMuZ2V0KHBhZ2VJRCkpIHsKICAgICAg
ICAgLy8gRklYTUU6IEl0J3MgcHJldHR5IGhvcnJpYmxlIHRoYXQgd2UncmUgdXBkYXRpbmcgdGhl
IGJhY2svZm9yd2FyZCBzdGF0ZSBoZXJlLgogICAgICAgICAvLyBXZWJDb3JlIHNob3VsZCBhbHdh
eXMga25vdyB0aGUgY3VycmVudCBzdGF0ZSBhbmQga25vdyB3aGVuIGl0IGNoYW5nZXMgc28gdGhl
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50
RGlzcGF0Y2hlci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTkyLDcgKzky
LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwogCiAjaWYgRU5BQkxF
KEFTWU5DX1NDUk9MTElORykKLSAgICBNdXRleCBtX3Njcm9sbGluZ1RyZWVzTXV0ZXg7CisgICAg
TG9jayBtX3Njcm9sbGluZ1RyZWVzTXV0ZXg7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRy
PFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZT4+IG1fc2Nyb2xsaW5nVHJlZXM7CiAjZW5k
aWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2hlZWxFdmVudERlbHRhVHJhY2tlcj4g
bV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFUcmFja2VyOwpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0
U3RyZWFtLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MSw3ICs0MSw3IEBAIHN0cnVjdCBfV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVByaXYK
ICAgICB1aW50NjRfdCBieXRlc1JlY2VpdmVkOwogICAgIHVpbnQ2NF90IGJ5dGVzUmVhZDsKIAot
ICAgIE11dGV4IHJlYWRMb2NrOworICAgIExvY2sgcmVhZExvY2s7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPEFzeW5jUmVhZERhdGE+IHBlbmRpbmdBc3luY1JlYWQ7CiB9OwogCkBAIC04NCw3ICs4NCw3
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0KICAgICBXZWJLaXRT
b3VwUmVxdWVzdElucHV0U3RyZWFtKiBzdHJlYW0gPSBXRUJLSVRfU09VUF9SRVFVRVNUX0lOUFVU
X1NUUkVBTShpbnB1dFN0cmVhbSk7CiAgICAgR1JlZlB0cjxHVGFzaz4gdGFzayA9IGFkb3B0R1Jl
ZihnX3Rhc2tfbmV3KHN0cmVhbSwgY2FuY2VsbGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0YSkpOwog
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKHN0cmVhbS0+cHJpdi0+cmVhZExvY2spOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKHN0cmVhbS0+cHJpdi0+cmVhZExvY2spOwogCiAgICAgaWYgKCF3ZWJr
aXRTb3VwUmVxdWVzdElucHV0U3RyZWFtSGFzRGF0YVRvUmVhZChzdHJlYW0pICYmICF3ZWJraXRT
b3VwUmVxdWVzdElucHV0U3RyZWFtSXNXYWl0aW5nRm9yRGF0YShzdHJlYW0pKSB7CiAgICAgICAg
IGdfdGFza19yZXR1cm5faW50KHRhc2suZ2V0KCksIDApOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHZv
aWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUFkZERhdGEKICAgICBpZiAod2Via2l0U291
cFJlcXVlc3RJbnB1dFN0cmVhbUZpbmlzaGVkKHN0cmVhbSkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihzdHJlYW0tPnByaXYtPnJlYWRMb2NrKTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihzdHJlYW0tPnByaXYtPnJlYWRMb2NrKTsKIAogICAgIGlmIChkYXRhTGVu
Z3RoKSB7CiAgICAgICAgIC8vIFRydW5jYXRlIHRoZSBkYXRhTGVuZ3RoIHRvIHRoZSBjb250ZW50
TGVuZ3RoIGlmIGl0J3Mga25vd24uCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMyBAQAor
MjAxNS0wOC0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFJl
cGxhY2UgYWxsIHJlbWFpbmluZyB1c2VzIG9mIFdURjo6TXV0ZXggd2l0aCBXVEY6OkxvY2sKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODA4OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU3RvcmFnZS9T
dG9yYWdlQXJlYVN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpz
eW5jVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVN5bmM6Om1hcmtJ
bXBvcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVN5bmM6OmJsb2NrVW50aWxJ
bXBvcnRDb21wbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVN5bmM6OnBlcmZv
cm1TeW5jKToKKyAgICAgICAgKiBTdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oOgorICAgICAgICAq
IFN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRy
YWNrZXI6OnNldERhdGFiYXNlRGlyZWN0b3J5UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlVHJhY2tlcjo6ZmluaXNoZWRJbXBvcnRpbmdPcmlnaW5JZGVudGlmaWVycyk6CisgICAgICAg
IChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZW50aWZpZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzeW5jRmlsZVN5c3RlbUFuZFRyYWNr
ZXJEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6c2V0T3JpZ2lu
RGV0YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6c3luY1NldE9yaWdp
bkRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6Om9yaWdpbnMpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmRlbGV0ZUFsbE9yaWdpbnMpOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVBbGxPcmlnaW5zKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpkZWxldGVPcmlnaW4pOgorICAgICAgICAo
V2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6U3RvcmFnZVRyYWNrZXI6OmNhbkRlbGV0ZU9yaWdpbik6CisgICAgICAgIChXZWJDb3Jl
OjpTdG9yYWdlVHJhY2tlcjo6Y2FuY2VsRGVsZXRpbmdPcmlnaW4pOgorICAgICAgICAoV2ViQ29y
ZTo6U3RvcmFnZVRyYWNrZXI6OmRpc2tVc2FnZUZvck9yaWdpbik6CisgICAgICAgICogU3RvcmFn
ZS9TdG9yYWdlVHJhY2tlci5oOgorCiAyMDE1LTA4LTE3ICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbiBDTWFrZV0gQWxsb3cgV2ViS2l0
TGlicmFyaWVzIGRpcmVjdG9yeSB0byBiZSBzZXQgZnJvbSB0aGUgY29tbWFuZCBsaW5lCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcAkocmV2aXNpb24gMTg4
NTY5KQorKysgU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE2NCw3ICsxNjQsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6c3luY1Rp
bWVyRmlyZWQoKQogCiAgICAgYm9vbCBwYXJ0aWFsU3luYyA9IGZhbHNlOwogICAgIHsKLSAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3N5bmNMb2NrKTsKIAogICAgICAgICAvLyBEbyBub3Qgc2NoZWR1bGUgYW5vdGhlciBz
eW5jIGlmIHdlJ3JlIHN0aWxsIHRyeWluZyB0byBjb21wbGV0ZSB0aGUKICAgICAgICAgLy8gcHJl
dmlvdXMgb25lLiBCdXQsIGlmIHdlJ3JlIHNodXR0aW5nIGRvd24sIHNjaGVkdWxlIGl0IGFueXdh
eS4KQEAgLTM1Miw5ICszNTIsOSBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybUltcG9y
dCgpCiAKIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjptYXJrSW1wb3J0ZWQoKQogewotICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX2ltcG9ydExvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1faW1w
b3J0TG9jayk7CiAgICAgbV9pbXBvcnRDb21wbGV0ZSA9IHRydWU7Ci0gICAgbV9pbXBvcnRDb25k
aXRpb24uc2lnbmFsKCk7CisgICAgbV9pbXBvcnRDb25kaXRpb24ubm90aWZ5T25lKCk7CiB9CiAK
IC8vIEZJWE1FOiBJbiB0aGUgZnV0dXJlLCB3ZSBzaG91bGQgYWxsb3cgdXNlIG9mIFN0b3JhZ2VB
cmVhcyB3aGlsZSBpdCdzIGltcG9ydGluZyAod2hlbiBzYWZlIHRvIGRvIHNvKS4KQEAgLTM3Miw3
ICszNzIsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6YmxvY2tVbnRpbEltcG9ydENvCiAgICAg
aWYgKCFtX3N0b3JhZ2VBcmVhKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9pbXBvcnRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2ltcG9ydExvY2sp
OwogICAgIHdoaWxlICghbV9pbXBvcnRDb21wbGV0ZSkKICAgICAgICAgbV9pbXBvcnRDb25kaXRp
b24ud2FpdChtX2ltcG9ydExvY2spOwogICAgIG1fc3RvcmFnZUFyZWEgPSBudWxscHRyOwpAQCAt
NDY3LDcgKzQ2Nyw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtU3luYygpCiAgICAg
Ym9vbCBjbGVhckl0ZW1zOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGl0ZW1zOwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY0xvY2spOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3N5bmNMb2NrKTsKIAogICAgICAgICBBU1NFUlQobV9zeW5jU2NoZWR1
bGVkKTsKIApAQCAtNDgyLDcgKzQ4Miw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpwZXJmb3Jt
U3luYygpCiAgICAgc3luYyhjbGVhckl0ZW1zLCBpdGVtcyk7CiAKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9zeW5jTG9jayk7CiAgICAgICAgIG1fc3luY0luUHJvZ3Jlc3MgPSBmYWxzZTsKICAgICB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9TUUxpdGVEYXRh
YmFzZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KKyNpbmNsdWRlIDx3dGYvQ29uZGl0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKQEAgLTg1LDcgKzg2LDcgQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0IFN0cmlu
ZyBtX2RhdGFiYXNlSWRlbnRpZmllcjsKIAotICAgIE11dGV4IG1fc3luY0xvY2s7CisgICAgTG9j
ayBtX3N5bmNMb2NrOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1faXRlbXNQZW5kaW5n
U3luYzsKICAgICBib29sIG1fY2xlYXJJdGVtc1doaWxlU3luY2luZzsKICAgICBib29sIG1fc3lu
Y1NjaGVkdWxlZDsKQEAgLTk0LDggKzk1LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9zeW5j
Q2xvc2VEYXRhYmFzZTsKIAotICAgIG11dGFibGUgTXV0ZXggbV9pbXBvcnRMb2NrOwotICAgIFRo
cmVhZENvbmRpdGlvbiBtX2ltcG9ydENvbmRpdGlvbjsKKyAgICBtdXRhYmxlIExvY2sgbV9pbXBv
cnRMb2NrOworICAgIENvbmRpdGlvbiBtX2ltcG9ydENvbmRpdGlvbjsKICAgICBib29sIG1faW1w
b3J0Q29tcGxldGU7CiAgICAgdm9pZCBtYXJrSW1wb3J0ZWQoKTsKICAgICB2b2lkIG1pZ3JhdGVJ
dGVtVGFibGVJZk5lZWRlZCgpOwpJbmRleDogU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VU
cmFja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRy
YWNrZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3Rv
cmFnZVRyYWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNyArMTAwLDcgQEAgU3RvcmFn
ZVRyYWNrZXI6OlN0b3JhZ2VUcmFja2VyKGNvbnN0IFN0cgogCiB2b2lkIFN0b3JhZ2VUcmFja2Vy
OjpzZXREYXRhYmFzZURpcmVjdG9yeVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fZGF0YWJhc2VNdXRleCk7CiAKICAgICBpZiAobV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAg
ICAgbV9kYXRhYmFzZS5jbG9zZSgpOwpAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgU3RvcmFnZVRy
YWNrZXI6OnNldERhdGFiYXNlRGlyZWN0b3IKICAgICBtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoID0g
cGF0aC5pc29sYXRlZENvcHkoKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNl
dE11dGV4KTsKICAgICAgICAgbV9vcmlnaW5TZXQuY2xlYXIoKTsKICAgICB9CiAKQEAgLTE4NSw3
ICsxODUsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjppbXBvcnRPcmlnaW5JZGVudGlmCiAKIHZv
aWQgU3RvcmFnZVRyYWNrZXI6OmZpbmlzaGVkSW1wb3J0aW5nT3JpZ2luSWRlbnRpZmllcnMoKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgaWYgKG1fY2xpZW50KQogICAgICAgICBt
X2NsaWVudC0+ZGlkRmluaXNoTG9hZGluZ09yaWdpbnMoKTsKIH0KQEAgLTE5Nyw3ICsxOTcsNyBA
QCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3JpZ2luSWRlCiAgICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Rh
dGFiYXNlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgp
OwogCiAgICAgICAgIC8vIERvbid0IGZvcmNlIGNyZWF0aW9uIG9mIFN0b3JhZ2VUcmFja2VyJ3Mg
ZGIganVzdCBiZWNhdXNlIGEgdHJhY2tlcgogICAgICAgICAvLyB3YXMgaW5pdGlhbGl6ZWQuIEl0
IHdpbGwgYmUgY3JlYXRlZCBpZiBsb2NhbCBzdG9yYWdlIGRicyBhcmUgZm91bmQKQEAgLTIxNyw3
ICsyMTcsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3JpZ2luSWRlCiAgICAg
ICAgICAgICBpbnQgcmVzdWx0OwogICAgICAgICAgICAgCiAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja09yaWdpbnMobV9vcmlnaW5TZXRNdXRleCk7CisgICAg
ICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrT3JpZ2lucyhtX29yaWdpblNldE11dGV4KTsKICAg
ICAgICAgICAgICAgICB3aGlsZSAoKHJlc3VsdCA9IHN0YXRlbWVudC5zdGVwKCkpID09IFNRTElU
RV9ST1cpCiAgICAgICAgICAgICAgICAgICAgIG1fb3JpZ2luU2V0LmFkZChzdGF0ZW1lbnQuZ2V0
Q29sdW1uVGV4dCgwKS5pc29sYXRlZENvcHkoKSk7CiAgICAgICAgICAgICB9CkBAIC0yMzIsMTAg
KzIzMiwxMCBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3JpZ2luSWRlCiAgICAg
c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UoKTsKICAgICAKICAgICB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX2NsaWVudE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9jbGllbnRNdXRleCk7CiAKICAgICAgICAgaWYgKG1fY2xpZW50KSB7Ci0gICAgICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgICAgIE9yaWdpblNl
dDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9vcmlnaW5TZXQuZW5kKCk7CiAgICAgICAgICAgICBm
b3IgKE9yaWdpblNldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX29yaWdpblNldC5iZWdpbigpOyBp
dCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkTW9k
aWZ5T3JpZ2luKCppdCk7CkBAIC0yNTcsNyArMjU3LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6
c3luY0ZpbGVTeXN0ZW1BbmRUcgogCiAgICAgVmVjdG9yPFN0cmluZz4gcGF0aHM7CiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKICAgICAgICAgcGF0aHMgPSBsaXN0RGly
ZWN0b3J5KG1fc3RvcmFnZURpcmVjdG9yeVBhdGgsICIqLmxvY2Fsc3RvcmFnZSIpOwogICAgIH0K
IApAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVt
QW5kVHIKICAgICAvLyBkZWxldGlvbnMgZnJvbSBkaXNrIGFuZCBmcm9tIG1fb3JpZ2luU2V0Lgog
ICAgIE9yaWdpblNldCBvcmlnaW5TZXRDb3B5OwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29y
aWdpblNldE11dGV4KTsKICAgICAgICAgZm9yIChPcmlnaW5TZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gbV9vcmlnaW5TZXQuYmVnaW4oKSwgZW5kID0gbV9vcmlnaW5TZXQuZW5kKCk7IGl0ICE9IGVu
ZDsgKytpdCkKICAgICAgICAgICAgIG9yaWdpblNldENvcHkuYWRkKCgqaXQpLmlzb2xhdGVkQ29w
eSgpKTsKICAgICB9CkBAIC0zMDYsNyArMzA2LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c2V0
T3JpZ2luRGV0YWlscyhjbwogICAgICAgICByZXR1cm47CiAKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9vcmlnaW5TZXRNdXRleCk7CiAKICAgICAgICAgaWYgKG1fb3JpZ2luU2V0LmNvbnRhaW5z
KG9yaWdpbklkZW50aWZpZXIpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzM3LDcgKzMzNyw3
IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWwKIAogICAgIFNRTGl0
ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291bnRlcjsKIAot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAKICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKHRydWUp
OwogICAgIApAQCAtMzU3LDEzICszNTcsMTMgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY1Nl
dE9yaWdpbkRldGFpbAogICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBlc3RhYmxpc2ggb3Jp
Z2luICclcycgaW4gdGhlIHRyYWNrZXIiLCBvcmlnaW5JZGVudGlmaWVyLmFzY2lpKCkuZGF0YSgp
KTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAg
aWYgKCFtX29yaWdpblNldC5jb250YWlucyhvcmlnaW5JZGVudGlmaWVyKSkKICAgICAgICAgICAg
IG1fb3JpZ2luU2V0LmFkZChvcmlnaW5JZGVudGlmaWVyKTsKICAgICB9CiAKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2NsaWVudE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9jbGllbnRNdXRleCk7CiAgICAgICAgIGlmIChtX2NsaWVudCkKICAgICAgICAg
ICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZE1vZGlmeU9yaWdpbihvcmlnaW5JZGVudGlmaWVyKTsK
ICAgICB9CkBAIC0zNzYsNyArMzc2LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6b3JpZ2lucyhW
ZWN0b3I8UmVmUAogICAgIGlmICghbV9pc0FjdGl2ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogCiAgICAgZm9yIChPcmlnaW5TZXQ6OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gbV9vcmlnaW5TZXQuYmVnaW4oKSwgZW5kID0gbV9vcmlnaW5TZXQuZW5kKCk7IGl0
ICE9IGVuZDsgKytpdCkKICAgICAgICAgcmVzdWx0LmFwcGVuZChTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcigqaXQpKTsKQEAgLTM5Miw3ICszOTIsNyBAQCB2b2lk
IFN0b3JhZ2VUcmFja2VyOjpkZWxldGVBbGxPcmlnaW5zKCkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICB3aWxsRGVs
ZXRlQWxsT3JpZ2lucygpOwogICAgICAgICBtX29yaWdpblNldC5jbGVhcigpOwogICAgIH0KQEAg
LTQxNyw3ICs0MTcsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlQWxsT3JpZ2lu
CiAKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFuc2FjdGlv
bkNvdW50ZXI7CiAgICAgCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKICAgICAKICAgICBvcGVu
VHJhY2tlckRhdGFiYXNlKGZhbHNlKTsKICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCkBA
IC00MzcsNyArNDM3LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9yaWdp
bgogICAgICAgICBkZWxldGVGaWxlKHN0YXRlbWVudC5nZXRDb2x1bW5UZXh0KDEpKTsKIAogICAg
ICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9jbGllbnRNdXRleCk7Cisg
ICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2NsaWVudE11dGV4KTsKICAgICAgICAgICAg
IGlmIChtX2NsaWVudCkKICAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRNb2Rp
ZnlPcmlnaW4oc3RhdGVtZW50LmdldENvbHVtblRleHQoMCkpOwogICAgICAgICB9CkBAIC00OTks
NyArNDk5LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKFNlY3VyaQogICAg
IFN0cmluZyBvcmlnaW5JZCA9IG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCk7CiAgICAgCiAg
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICB3aWxsRGVs
ZXRlT3JpZ2luKG9yaWdpbklkKTsKICAgICAgICAgbV9vcmlnaW5TZXQucmVtb3ZlKG9yaWdpbklk
KTsKICAgICB9CkBAIC01MTYsNyArNTE2LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0Rl
bGV0ZU9yaWdpbihjbwogCiAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50
ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJh
c2VNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKICAgICAK
ICAgICBpZiAoIWNhbkRlbGV0ZU9yaWdpbihvcmlnaW5JZGVudGlmaWVyKSkgewogICAgICAgICBM
T0dfRVJST1IoIkF0dGVtcHRlZCB0byBkZWxldGUgb3JpZ2luICclcycgd2hpbGUgaXQgd2FzIGJl
aW5nIGNyZWF0ZWRcbiIsIG9yaWdpbklkZW50aWZpZXIuYXNjaWkoKS5kYXRhKCkpOwpAQCAtNTQ5
LDcgKzU0OSw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4oY28KICAg
ICAKICAgICBib29sIHNob3VsZERlbGV0ZVRyYWNrZXJGaWxlcyA9IGZhbHNlOwogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgbV9vcmlnaW5TZXQucmVt
b3ZlKG9yaWdpbklkZW50aWZpZXIpOwogICAgICAgICBzaG91bGREZWxldGVUcmFja2VyRmlsZXMg
PSBtX29yaWdpblNldC5pc0VtcHR5KCk7CiAgICAgfQpAQCAtNTY2LDcgKzU2Niw3IEBAIHZvaWQg
U3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4oY28KICAgICB9CiAKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2NsaWVudE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9jbGllbnRNdXRleCk7CiAgICAgICAgIGlmIChtX2NsaWVudCkKICAgICAgICAg
ICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZE1vZGlmeU9yaWdpbihvcmlnaW5JZGVudGlmaWVyKTsK
ICAgICB9CkBAIC01OTIsNyArNTkyLDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6d2lsbERlbGV0
ZU9yaWdpbihjbwogYm9vbCBTdG9yYWdlVHJhY2tlcjo6Y2FuRGVsZXRlT3JpZ2luKGNvbnN0IFN0
cmluZyYgb3JpZ2luSWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoIW1fZGF0YWJhc2VNdXRleC50
cnlMb2NrKCkpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICByZXR1cm4gbV9vcmln
aW5zQmVpbmdEZWxldGVkLmNvbnRhaW5zKG9yaWdpbklkZW50aWZpZXIpOwogfQogCkBAIC02MDEs
OSArNjAxLDkgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6Y2FuY2VsRGVsZXRpbmdPcmlnaQogICAg
IGlmICghbV9pc0FjdGl2ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fZGF0YWJhc2VNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11
dGV4KTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAg
IGlmICghbV9vcmlnaW5zQmVpbmdEZWxldGVkLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fb3Jp
Z2luc0JlaW5nRGVsZXRlZC5yZW1vdmUob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpAQCAtNjQ3
LDcgKzY0Nyw3IEBAIGxvbmcgbG9uZyBTdG9yYWdlVHJhY2tlcjo6ZGlza1VzYWdlRm9yT3IKICAg
ICBpZiAoIW1faXNBY3RpdmUpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFz
ZU11dGV4KTsKIAogICAgIFN0cmluZyBwYXRoID0gZGF0YWJhc2VQYXRoRm9yT3JpZ2luKG9yaWdp
bi0+ZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAgIGlmIChwYXRoLmlzRW1wdHkoKSkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5oCShyZXZpc2lvbiAxODg1NjkpCisr
KyBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtOTUsMTUgKzk1LDE1IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzeW5jSW1wb3J0T3JpZ2luSWRl
bnRpZmllcnMoKTsKIAogICAgIC8vIE11dGV4IGZvciBtX2RhdGFiYXNlIGFuZCBtX3N0b3JhZ2VE
aXJlY3RvcnlQYXRoLgotICAgIE11dGV4IG1fZGF0YWJhc2VNdXRleDsKKyAgICBMb2NrIG1fZGF0
YWJhc2VNdXRleDsKICAgICBTUUxpdGVEYXRhYmFzZSBtX2RhdGFiYXNlOwogICAgIFN0cmluZyBt
X3N0b3JhZ2VEaXJlY3RvcnlQYXRoOwogCi0gICAgTXV0ZXggbV9jbGllbnRNdXRleDsKKyAgICBM
b2NrIG1fY2xpZW50TXV0ZXg7CiAgICAgU3RvcmFnZVRyYWNrZXJDbGllbnQqIG1fY2xpZW50Owog
CiAgICAgLy8gR3VhcmQgZm9yIG1fb3JpZ2luU2V0IGFuZCBtX29yaWdpbnNCZWluZ0RlbGV0ZWQu
Ci0gICAgTXV0ZXggbV9vcmlnaW5TZXRNdXRleDsKKyAgICBMb2NrIG1fb3JpZ2luU2V0TXV0ZXg7
CiAgICAgdHlwZWRlZiBIYXNoU2V0PFN0cmluZz4gT3JpZ2luU2V0OwogICAgIE9yaWdpblNldCBt
X29yaWdpblNldDsKICAgICBPcmlnaW5TZXQgbV9vcmlnaW5zQmVpbmdEZWxldGVkOwpJbmRleDog
U291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
aW9zL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9pb3MvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTUtMDgtMTcgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5p
bmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9z
aXRpb25Db250ZW50Lm1tOgorICAgICAgICAoV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9j
ayk6CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IHNjcm9sbE9yWm9vbUNoYW5n
ZWQ6XSk6CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IG92ZXJmbG93U2Nyb2xs
UG9zaXRpb25Gb3JMYXllcjpjaGFuZ2VkVG86XSk6CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRp
b25Db250ZW50IHNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6c3RpY2t5Q29udGFpbmVyTWFw
Ol0pOgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBoYXNGaXhlZE9yU3RpY2t5
UG9zaXRpb25MYXllcnNdKToKKyAgICAgICAgKC1bV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQgbWlu
aW11bU9mZnNldEZyb21GaXhlZFBvc2l0aW9uTGF5ZXJzVG9BbmNob3JFZGdlOm9mUmVjdDppbkxh
eWVyOl0pOgorCiAyMDE1LTA4LTEzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlZmFjdG9yIGFuZCBpbXByb3ZlIFRleHRJbmRpY2F0b3IgdG8gcHJl
cGFyZSBmb3IgdGVzdHMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dl
YkZpeGVkUG9zaXRpb25Db250ZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvaW9z
L1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tCShyZXZpc2lvbiAxODg1
NjkpCisrKyBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9u
Q29udGVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDgsOSArNDgsOSBAQAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi1zdGF0aWMgTXV0ZXgmIFdlYkZp
eGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKQorc3RhdGljIExvY2smIFdlYkZpeGVkUG9zaXRp
b25Db250ZW50RGF0YUxvY2soKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
TG9jaywgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTEwMSw3ICsxMDEs
NyBAQCAtICh2b2lkKWRlYWxsb2MKIAogLSAodm9pZClzY3JvbGxPclpvb21DaGFuZ2VkOihDR1Jl
Y3QpcG9zaXRpb25lZE9iamVjdHNSZWN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhl
ZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhl
ZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkpOwogCiAgICAgTGF5ZXJJbmZvTWFwOjpjb25zdF9p
dGVyYXRvciBlbmQgPSBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmVuZCgp
OwogICAgIGZvciAoTGF5ZXJJbmZvTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IF9wcml2YXRlLT5t
X3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CkBA
IC0xNDAsNyArMTQwLDcgQEAgLSAodm9pZClzY3JvbGxPclpvb21DaGFuZ2VkOihDR1JlY3QpcG9z
aQogCiAtICh2b2lkKW92ZXJmbG93U2Nyb2xsUG9zaXRpb25Gb3JMYXllcjooQ0FMYXllciAqKXNj
cm9sbExheWVyIGNoYW5nZWRUbzooQ0dQb2ludClzY3JvbGxQb3NpdGlvbgogewotICAgIE11dGV4
TG9ja2VyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKIAogICAgIExh
eWVySW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gX3ByaXZhdGUtPm1fdmlld3BvcnRDb25z
dHJhaW5lZExheWVycy5lbmQoKTsKICAgICBmb3IgKExheWVySW5mb01hcDo6Y29uc3RfaXRlcmF0
b3IgaXQgPSBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkgewpAQCAtMTczLDcgKzE3Myw3IEBAIC0gKHZvaWQpZGlkRmluaXNoU2Ny
b2xsaW5nT3Jab29taW5nCiAKIC0gKHZvaWQpc2V0Vmlld3BvcnRDb25zdHJhaW5lZExheWVyczoo
V1RGOjpIYXNoTWFwPENBTGF5ZXIgKiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlZpZXdwb3J0
Q29uc3RyYWludHM+PiYpbGF5ZXJNYXAgc3RpY2t5Q29udGFpbmVyTWFwOihXVEY6Okhhc2hNYXA8
Q0FMYXllciosIENBTGF5ZXIqPiYpc3RpY2t5Q29udGFpbmVycwogewotICAgIE11dGV4TG9ja2Vy
IGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKIAogICAgIF9wcml2YXRl
LT5tX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuY2xlYXIoKTsKIApAQCAtMTkwLDcgKzE5MCw3
IEBAIC0gKHZvaWQpc2V0Vmlld3BvcnRDb25zdHJhaW5lZExheWVyczooV1QKIAogLSAoQk9PTClo
YXNGaXhlZE9yU3RpY2t5UG9zaXRpb25MYXllcnMKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdl
YkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdl
YkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAgICAgcmV0dXJuICFfcHJpdmF0ZS0+
bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmlzRW1wdHkoKTsKIH0KIApAQCAtMjEwLDcgKzIx
MCw3IEBAIHN0YXRpYyBWaWV3cG9ydENvbnN0cmFpbnRzOjpBbmNob3JFZGdlRmwKIAogLSAoQ0dG
bG9hdCltaW5pbXVtT2Zmc2V0RnJvbUZpeGVkUG9zaXRpb25MYXllcnNUb0FuY2hvckVkZ2U6KFdl
YkZpeGVkUG9zaXRpb25BbmNob3JFZGdlKWFuY2hvckVkZ2Ugb2ZSZWN0OihDR1JlY3QpcmVjdCBp
bkxheWVyOihDQUxheWVyICopbGF5ZXIKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZpeGVk
UG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZpeGVk
UG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAgICAgVmlld3BvcnRDb25zdHJhaW50czo6QW5j
aG9yRWRnZUZsYWdzIGFuY2hvckVkZ2VGbGFncyA9IGFuY2hvckVkZ2VGbGFnc0ZvckFuY2hvckVk
Z2UoYW5jaG9yRWRnZSk7CiAgICAgQ0dGbG9hdCBtaW5pbXVtT2Zmc2V0ID0gQ0dGTE9BVF9NQVg7
CiAgICAgTGF5ZXJJbmZvTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBfcHJpdmF0ZS0+bV92aWV3
cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmVuZCgpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNp
b24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBvZiBXVEY6Ok11dGV4
IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tOgorICAgICAgICAodHJhbnNh
Y3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKToKKyAgICAgICAgKCtbV2ViRGF0YWJh
c2VNYW5hZ2VyIHN0YXJ0QmFja2dyb3VuZFRhc2tdKToKKyAgICAgICAgKCtbV2ViRGF0YWJhc2VN
YW5hZ2VyIGVuZEJhY2tncm91bmRUYXNrXSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXZWJWaWV3IF9zeW5jaHJvbml6ZUN1c3RvbUZpeGVkUG9zaXRpb25MYXlv
dXRSZWN0XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3NldEN1c3RvbUZpeGVkUG9zaXRpb25MYXlv
dXRSZWN0SW5XZWJUaHJlYWQ6c3luY2hyb25pemU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3Nl
dEN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0Ol0pOgorICAgICAgICAoLVtXZWJWaWV3IF9m
ZXRjaEN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0Ol0pOgorICAgICAgICAqIFdlYlZpZXcv
V2ViVmlld0RhdGEuaDoKKwogMjAxNS0wOC0xMyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5j
b20+CiAKICAgICAgICAgW0NvY29hXSBEb3dubG9hZHMgZG8gbm90IHN0YXJ0IGlmIHBvbGljeSBk
ZWNpc2lvbiBpcyBtYWRlIGFzeW5jaHJvbm91c2x5CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9T
dG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbQkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTIyNiw5ICsyMjYsOSBAQCArICh2b2lkKXNjaGVkdWxlRW1wdHlEYXRhYmFzZVJl
bW92YWwKICNpZiBQTEFURk9STShJT1MpCiBAaW1wbGVtZW50YXRpb24gV2ViRGF0YWJhc2VNYW5h
Z2VyIChXZWJEYXRhYmFzZU1hbmFnZXJJbnRlcm5hbCkKIAotc3RhdGljIE11dGV4JiB0cmFuc2Fj
dGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2soKQorc3RhdGljIExvY2smIHRyYW5zYWN0
aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jaygpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChMb2NrLCBtdXRleCwgKCkpOwogICAgIHJldHVybiBtdXRleDsKIH0KIApA
QCAtMjYxLDcgKzI2MSw3IEBAICsgKHZvaWQpZGlkRmluaXNoTGFzdFRyYW5zYWN0aW9uCiAKICsg
KHZvaWQpc3RhcnRCYWNrZ3JvdW5kVGFzawogewotICAgIE11dGV4TG9ja2VyIGxvY2sodHJhbnNh
Y3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9j
ayh0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2soKSk7CiAKICAgICAvLyBJ
ZiB0aGVyZSdzIGFscmVhZHkgYW4gZXhpc3RpbmcgYmFja2dyb3VuZCB0YXNrIGdvaW5nIG9uLCB0
aGVyZSdzIG5vIG5lZWQgdG8gc3RhcnQgYSBuZXcgb25lLgogICAgIGlmIChnZXRUcmFuc2FjdGlv
bkJhY2tncm91bmRUYXNrSWRlbnRpZmllcigpICE9IGludmFsaWRXZWJCYWNrZ3JvdW5kVGFza0lk
ZW50aWZpZXIoKSkKQEAgLTI3NSw3ICsyNzUsNyBAQCArICh2b2lkKXN0YXJ0QmFja2dyb3VuZFRh
c2sKIAogKyAodm9pZCllbmRCYWNrZ3JvdW5kVGFzawogewotICAgIE11dGV4TG9ja2VyIGxvY2so
dHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOworICAgIExvY2tIb2xk
ZXIgbG9jayh0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2soKSk7CiAKICAg
ICAvLyBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIHdlcmUgdW5hYmxlIHRvIHN0YXJ0IHRoZSBiYWNr
Z3JvdW5kIHRhc2sgd2hlbiB0aGUgZmlyc3QgdHJhbnNhY3Rpb24gYmVnYW4uCiAgICAgLy8gRG9u
J3QgdHJ5IHRvIGVuZCB0aGUgdGFzayBpbiB0aGF0IGNhc2UuCkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2MzIsNyArMzYzMiw3IEBA
IC0gKHZvaWQpX3N5bmNocm9uaXplQ3VzdG9tRml4ZWRQb3NpdGlvbkwKIAogICAgIEludFJlY3Qg
bmV3UmVjdDsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihfcHJpdmF0ZS0+cGVu
ZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOwogICAg
ICAgICBpZiAoQ0dSZWN0SXNOdWxsKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91
dFJlY3QpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBuZXdSZWN0ID0gZW5jbG9zaW5n
SW50UmVjdChfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KTsKQEAgLTM2
NDYsNyArMzY0Niw3IEBAIC0gKHZvaWQpX3N5bmNocm9uaXplQ3VzdG9tRml4ZWRQb3NpdGlvbkwK
IC0gKHZvaWQpX3NldEN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0SW5XZWJUaHJlYWQ6KENH
UmVjdClyZWN0IHN5bmNocm9uaXplOihCT09MKXN5bmNocm9uaXplCiB7CiAgICAgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0
UmVjdE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdG
aXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKICAgICAgICAgX3ByaXZhdGUtPnBlbmRpbmdG
aXhlZFBvc2l0aW9uTGF5b3V0UmVjdCA9IHJlY3Q7CiAgICAgfQogICAgIGlmICghc3luY2hyb25p
emUpCkBAIC0zNjYwLDcgKzM2NjAsNyBAQCAtICh2b2lkKV9zZXRDdXN0b21GaXhlZFBvc2l0aW9u
TGF5b3V0UmVjCiB7CiAgICAgQVNTRVJUKFdlYlRocmVhZElzTG9ja2VkKCkpOwogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxh
eW91dFJlY3RNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5k
aW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleCk7CiAgICAgICAgIF9wcml2YXRlLT5wZW5k
aW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3QgPSByZWN0OwogICAgIH0KICAgICBbc2VsZiBfc3lu
Y2hyb25pemVDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdF07CkBAIC0zNjY4LDcgKzM2Njgs
NyBAQCAtICh2b2lkKV9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjCiAKIC0gKEJPT0wp
X2ZldGNoQ3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3Q6KE5TUmVjdCopcmVjdAogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRS
ZWN0TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQ
b3NpdGlvbkxheW91dFJlY3RNdXRleCk7CiAgICAgaWYgKENHUmVjdElzTnVsbChfcHJpdmF0ZS0+
cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCShyZXZpc2lvbiAx
ODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI0OSw3ICsyNDksNyBAQCBAaW50ZXJmYWNlIFdlYlZpZXdQcml2YXRlIDog
TlNPYmplY3QgewogICAgIENHU2l6ZSBmaXhlZExheW91dFNpemU7CiAgICAgQk9PTCBtYWluVmll
d0lzU2Nyb2xsaW5nT3Jab29taW5nOwogICAgIGludDMyX3QgZGlkRHJhd1RpbGVzOwotICAgIFdU
Rjo6TXV0ZXggcGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXg7CisgICAgV1RGOjpM
b2NrIHBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4OwogICAgIENHUmVjdCBwZW5k
aW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3Q7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8ZnBp
emxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBvZiBX
VEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZUNh
bGwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6cmVnaXN0
ZXJQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6
dW5yZWdpc3RlclBsdWdpbik6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5NYWluVGhyZWFkU2No
ZWR1bGVyOjpkaXNwYXRjaENhbGxzRm9yUGx1Z2luKToKKyAgICAgICAgKiBQbHVnaW5zL1BsdWdp
bk1haW5UaHJlYWRTY2hlZHVsZXIuaDoKKyAgICAgICAgKiBXZWJJY29uRGF0YWJhc2UuY3BwOgor
ICAgICAgICAoV2ViSWNvbkRhdGFiYXNlOjpkaWRSZW1vdmVBbGxJY29ucyk6CisgICAgICAgIChX
ZWJJY29uRGF0YWJhc2U6OmRpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMKToKKyAgICAgICAgKFdl
Ykljb25EYXRhYmFzZTo6ZGVsaXZlck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAqIFdlYkljb25E
YXRhYmFzZS5oOgorICAgICAgICAqIFdlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHA6CisgICAgICAg
IChtYWluQnVuZGxlTG9jU3RyaW5ncyk6CisgICAgICAgIChmcmFtZXdvcmtMb2NTdHJpbmdzTXV0
ZXgpOgorICAgICAgICAoZmluZENhY2hlZFN0cmluZyk6CisgICAgICAgIChjYWNoZVN0cmluZyk6
CisKIDIwMTUtMDgtMTcgIFBlciBBcm5lIFZvbGxhbiAgPHBlYXZvQG91dGxvb2suY29tPgogCiAg
ICAgICAgIFtXaW5DYWlyb10gQWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgZG9lcyBub3QgcmVzcGVj
dCBkZXZpY2Ugc2NhbGUgZmFjdG9yLgpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRh
dGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJJY29uRGF0YWJh
c2UuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJJY29uRGF0
YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjAsMTQgKzMyMCwxNCBAQCBIQklUTUFQIFdl
Ykljb25EYXRhYmFzZTo6Z2V0T3JDcmVhdGVEZWZhCiB2b2lkIFdlYkljb25EYXRhYmFzZTo6ZGlk
UmVtb3ZlQWxsSWNvbnMoKQogewogICAgIC8vIFF1ZXVlaW5nIHRoZSBlbXB0eSBzdHJpbmcgaXMg
YSBzcGVjaWFsIHdheSBvZiBzYXlpbmcgInRoaXMgcXVldWVkIG5vdGlmaWNhdGlvbiBpcyB0aGUg
ZGlkUmVtb3ZlQWxsSWNvbnMgbm90aWZpY2F0aW9uIgotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X25vdGlmaWNhdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25vdGlmaWNhdGlv
bk11dGV4KTsKICAgICBtX25vdGlmaWNhdGlvblF1ZXVlLmFwcGVuZChTdHJpbmcoKSk7CiAgICAg
c2NoZWR1bGVOb3RpZmljYXRpb25EZWxpdmVyeSgpOwogfQogCiB2b2lkIFdlYkljb25EYXRhYmFz
ZTo6ZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgV1RGOjpTdHJpbmcmIHBhZ2VVUkwp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbm90aWZpY2F0aW9uTXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fbm90aWZpY2F0aW9uTXV0ZXgpOwogICAgIG1fbm90aWZpY2F0aW9u
UXVldWUuYXBwZW5kKHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNjaGVkdWxlTm90aWZp
Y2F0aW9uRGVsaXZlcnkoKTsKIH0KQEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lkIFdlYkljb25EYXRh
YmFzZTo6ZGVsaXZlck5vdGlmaWNhdGlvCiAKICAgICBWZWN0b3I8U3RyaW5nPiBxdWV1ZTsKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3NoYXJlZFdlYkljb25EYXRhYmFzZS0+
bV9ub3RpZmljYXRpb25NdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2hhcmVk
V2ViSWNvbkRhdGFiYXNlLT5tX25vdGlmaWNhdGlvbk11dGV4KTsKICAgICAgICAgcXVldWUuc3dh
cChtX3NoYXJlZFdlYkljb25EYXRhYmFzZS0+bV9ub3RpZmljYXRpb25RdWV1ZSk7CiAgICAgICAg
IG1fc2hhcmVkV2ViSWNvbkRhdGFiYXNlLT5tX2RlbGl2ZXJ5UmVxdWVzdGVkID0gZmFsc2U7CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmgJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTYsNyArMTE2LDcgQEAgcHJvdGVjdGVkOgogICAgIEhhc2hNYXA8SW50U2l6ZSwgSEJJ
VE1BUD4gbV9kZWZhdWx0SWNvbk1hcDsKICAgICBIYXNoTWFwPEludFNpemUsIEhCSVRNQVA+IG1f
c2hhcmVkSWNvbk1hcDsKIAotICAgIE11dGV4IG1fbm90aWZpY2F0aW9uTXV0ZXg7CisgICAgTG9j
ayBtX25vdGlmaWNhdGlvbk11dGV4OwogICAgIFZlY3RvcjxTdHJpbmc+IG1fbm90aWZpY2F0aW9u
UXVldWU7CiAgICAgdm9pZCBzY2hlZHVsZU5vdGlmaWNhdGlvbkRlbGl2ZXJ5KCk7CiAgICAgYm9v
bCBtX2RlbGl2ZXJ5UmVxdWVzdGVkOwpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxp
emFibGVTdHJpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJMb2Nh
bGl6YWJsZVN0cmluZ3MuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L3dp
bi9XZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw5ICs0NCw5
IEBAIFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRsZSBXZWJLaXRMb2NhbGkKIAogdHlwZWRlZiBI
YXNoTWFwPFN0cmluZywgTG9jYWxpemVkU3RyaW5nKj4gTG9jYWxpemVkU3RyaW5nTWFwOwogCi1z
dGF0aWMgTXV0ZXgmIG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgoKQorc3RhdGljIExvY2smIG1h
aW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoTG9jaywgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTU2LDkg
KzU2LDkgQEAgc3RhdGljIExvY2FsaXplZFN0cmluZ01hcCYgbWFpbkJ1bmRsZUxvYwogICAgIHJl
dHVybiBtYXA7CiB9CiAKLXN0YXRpYyBNdXRleCYgZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkK
K3N0YXRpYyBMb2NrJiBmcmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgoKQogewotICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7
CiB9CiAKQEAgLTE3NSwxMiArMTc1LDEyIEBAIHN0YXRpYyBDRlN0cmluZ1JlZiBjb3B5TG9jYWxp
emVkU3RyaW5nRnIKIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmcqIGZpbmRDYWNoZWRTdHJpbmcoV2Vi
TG9jYWxpemFibGVTdHJpbmdzQnVuZGxlKiBzdHJpbmdzQnVuZGxlLCBjb25zdCBTdHJpbmcmIGtl
eSkKIHsKICAgICBpZiAoIXN0cmluZ3NCdW5kbGUpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
ayhtYWluQnVuZGxlTG9jU3RyaW5nc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgpKTsKICAgICAgICAgcmV0dXJuIG1haW5CdW5kbGVM
b2NTdHJpbmdzKCkuZ2V0KGtleSk7CiAgICAgfQogCiAgICAgaWYgKHN0cmluZ3NCdW5kbGUtPmJ1
bmRsZSA9PSBXZWJLaXRMb2NhbGl6YWJsZVN0cmluZ3NCdW5kbGUuYnVuZGxlKSB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2soZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2soZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkpOwogICAgICAgICByZXR1
cm4gZnJhbWV3b3JrTG9jU3RyaW5ncygpLmdldChrZXkpOwogICAgIH0KIApAQCAtMTkwLDEyICsx
OTAsMTIgQEAgc3RhdGljIExvY2FsaXplZFN0cmluZyogZmluZENhY2hlZFN0cmluZwogc3RhdGlj
IHZvaWQgY2FjaGVTdHJpbmcoV2ViTG9jYWxpemFibGVTdHJpbmdzQnVuZGxlKiBzdHJpbmdzQnVu
ZGxlLCBjb25zdCBTdHJpbmcmIGtleSwgTG9jYWxpemVkU3RyaW5nKiB2YWx1ZSkKIHsKICAgICBp
ZiAoIXN0cmluZ3NCdW5kbGUpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtYWluQnVuZGxl
TG9jU3RyaW5nc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobWFpbkJ1bmRsZUxv
Y1N0cmluZ3NNdXRleCgpKTsKICAgICAgICAgbWFpbkJ1bmRsZUxvY1N0cmluZ3MoKS5zZXQoa2V5
LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBsb2Nr
KGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2soZnJhbWV3
b3JrTG9jU3RyaW5nc011dGV4KCkpOwogICAgIGZyYW1ld29ya0xvY1N0cmluZ3MoKS5zZXQoa2V5
LCB2YWx1ZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luTWFp
blRocmVhZFNjaGVkdWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vUGx1
Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVy
OjpQbHVnaW5NYWluVGhyCiAKIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6c2NoZWR1
bGVDYWxsKE5QUCBucHAsIE1haW5UaHJlYWRGdW5jdGlvbiBmdW5jdGlvbiwgdm9pZCogdXNlckRh
dGEpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogCiAgICAgQ2FsbFF1ZXVlTWFwOjppdGVyYXRvciBpdCA9
IG1fY2FsbFF1ZXVlTWFwLmZpbmQobnBwKTsKICAgICBpZiAoaXQgPT0gbV9jYWxsUXVldWVNYXAu
ZW5kKCkpCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6
c2NoZWR1bGUKIAogdm9pZCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpyZWdpc3RlclBsdWdp
bihOUFAgbnBwKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKIAogICAgIEFTU0VSVCghbV9jYWxsUXVldWVN
YXAuY29udGFpbnMobnBwKSk7CiAgICAgbV9jYWxsUXVldWVNYXAuc2V0KG5wcCwgRGVxdWU8Q2Fs
bD4oKSk7CkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6
cmVnaXN0ZXIKIAogdm9pZCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjp1bnJlZ2lzdGVyUGx1
Z2luKE5QUCBucHApCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogCiAgICAgQVNTRVJUKG1fY2FsbFF1ZXVl
TWFwLmNvbnRhaW5zKG5wcCkpOwogICAgIG1fY2FsbFF1ZXVlTWFwLnJlbW92ZShucHApOwpAQCAt
NzcsNyArNzcsNyBAQCB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OmRpc3BhdGNoCiAg
ICAgZm9yIChhdXRvJiBjYWxsIDogY2FsbHMpIHsKICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHBs
dWctaW4gaGFzIGJlZW4gZGVzdHJveWVkLgogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExv
Y2tlciBsb2NrKG1fcXVldWVNdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9x
dWV1ZU11dGV4KTsKICAgICAgICAgICAgIGlmICghbV9jYWxsUXVldWVNYXAuY29udGFpbnMobnBw
KSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvd2luL1BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oCShy
ZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbk1haW5U
aHJlYWRTY2hlZHVsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBtX2NhbGxQZW5kaW5nOwogICAgIENhbGxRdWV1ZU1hcCBtX2NhbGxRdWV1
ZU1hcDsKLSAgICBNdXRleCBtX3F1ZXVlTXV0ZXg7CisgICAgTG9jayBtX3F1ZXVlTXV0ZXg7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODg1NjkpCisrKyBUb29scy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wOC0xNyAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgYWxsIHJlbWFpbmlu
ZyB1c2VzIG9mIFdURjo6TXV0ZXggd2l0aCBXVEY6OkxvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODA4OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRo
cmVhZGluZy5jcHA6CisgICAgICAgIChqYXZhU2NyaXB0VGhyZWFkc011dGV4KToKKyAgICAgICAg
KHJ1bkphdmFTY3JpcHRUaHJlYWQpOgorICAgICAgICAoc3RhcnRKYXZhU2NyaXB0VGhyZWFkcyk6
CisgICAgICAgIChzdG9wSmF2YVNjcmlwdFRocmVhZHMpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHA6IEZpeGVkIGEgYnVnIGluIHRoZSB0ZXN0IHRoYXQg
SSBmb3VuZCBmcm9tIHR1cm5pbmcgdGhlIHRlc3QgaW50byBhIGJlbmNobWFyay4KKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9X
b3JrUXVldWVHTGliLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE1
LTA4LTE3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW09TIFhdIFJlbW92ZSBzdXBwb3J0IGZvciBjb21wb3NpdGUgZm9udHMKSW5kZXg6IFRvb2xz
L0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCShyZXZpc2lvbiAxODg1
NjkpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1
ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRl
IDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYv
VGhyZWFkaW5nUHJpbWl0aXZlcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ0LDkg
KzQ1LDkgQEAgc3RhdGljIGNvbnN0IHNpemVfdCBqYXZhU2NyaXB0VGhyZWFkc0NvdQogc3RhdGlj
IGJvb2wgamF2YVNjcmlwdFRocmVhZHNTaG91bGRUZXJtaW5hdGU7CiBzdGF0aWMgSlNDb250ZXh0
R3JvdXBSZWYgamF2YVNjcmlwdFRocmVhZHNHcm91cDsKIAotc3RhdGljIE11dGV4JiBqYXZhU2Ny
aXB0VGhyZWFkc011dGV4KCkKK3N0YXRpYyBMb2NrJiBqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkK
IHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHN0YXRpY011dGV4
LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIHN0YXRpY011
dGV4LCAoKSk7CiAgICAgcmV0dXJuIHN0YXRpY011dGV4OwogfQogCkBAIC03MCwyNiArNzEsMjYg
QEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqKQogCiAgICAgSlNHbG9iYWxDb250ZXh0
UmVmIGN0eDsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhy
ZWFkc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFk
c011dGV4KCkpOwogICAgICAgICBjdHggPSBKU0dsb2JhbENvbnRleHRDcmVhdGVJbkdyb3VwKGph
dmFTY3JpcHRUaHJlYWRzR3JvdXAsIDApOwogICAgIH0KIAogICAgIEpTU3RyaW5nUmVmIHNjcmlw
dFJlZjsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFk
c011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011
dGV4KCkpOwogICAgICAgICBzY3JpcHRSZWYgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZyhzY3JpcHQpOwogICAgIH0KIAogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIHsKLSAgICAg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAg
ICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAg
ICAgICAgICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKICAgICAgICAgICAgIEpTRXZhbHVh
dGVTY3JpcHQoY3R4LCBzY3JpcHRSZWYsIDAsIDAsIDEsICZleGNlcHRpb24pOwogICAgICAgICAg
ICAgQVNTRVJUKCFleGNlcHRpb24pOwogICAgICAgICB9CiAKICAgICAgICAgewotICAgICAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAg
ICAgICAgY29uc3Qgc2l6ZV90IHZhbHVlc0NvdW50ID0gMTAyNDsKICAgICAgICAgICAgIEpTVmFs
dWVSZWYgdmFsdWVzW3ZhbHVlc0NvdW50XTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgdmFsdWVzQ291bnQ7ICsraSkKQEAgLTk3LDcgKzk4LDcgQEAgdm9pZCBydW5KYXZhU2Ny
aXB0VGhyZWFkKHZvaWQqKQogICAgICAgICB9CiAKICAgICAgICAgewotICAgICAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICAgICAg
aWYgKGphdmFTY3JpcHRUaHJlYWRzU2hvdWxkVGVybWluYXRlKQogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CkBAIC0xMDYsNyArMTA3LDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhy
ZWFkKHZvaWQqKQogICAgICAgICBpZiAocmFuZCgpICUgNSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCi0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwog
ICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZCA9IGN1cnJlbnRUaHJlYWQoKTsKICAgICAg
ICAgZGV0YWNoVGhyZWFkKHRocmVhZCk7CiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkucmVt
b3ZlKHRocmVhZCk7CkBAIC0xMTQsNyArMTE1LDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFk
KHZvaWQqKQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
amF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2Ny
aXB0VGhyZWFkc011dGV4KCkpOwogICAgIEpTU3RyaW5nUmVsZWFzZShzY3JpcHRSZWYpOwogICAg
IEpTR2FyYmFnZUNvbGxlY3QoY3R4KTsKICAgICBKU0dsb2JhbENvbnRleHRSZWxlYXNlKGN0eCk7
CkBAIC0xMjQsNyArMTI1LDcgQEAgdm9pZCBzdGFydEphdmFTY3JpcHRUaHJlYWRzKCkKIHsKICAg
ICBqYXZhU2NyaXB0VGhyZWFkc0dyb3VwID0gSlNDb250ZXh0R3JvdXBDcmVhdGUoKTsKIAotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGphdmFTY3JpcHRUaHJlYWRzQ291bnQ7ICsraSkKICAgICAgICAgamF2YVNj
cmlwdFRocmVhZHMoKS5hZGQoY3JlYXRlVGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCAw
KSk7CkBAIC0xMzMsMTMgKzEzNCwxMyBAQCB2b2lkIHN0YXJ0SmF2YVNjcmlwdFRocmVhZHMoKQog
dm9pZCBzdG9wSmF2YVNjcmlwdFRocmVhZHMoKQogewogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgICAgIGphdmFTY3JpcHRUaHJl
YWRzU2hvdWxkVGVybWluYXRlID0gdHJ1ZTsKICAgICB9CiAKICAgICBWZWN0b3I8VGhyZWFkSWRl
bnRpZmllciwgamF2YVNjcmlwdFRocmVhZHNDb3VudD4gdGhyZWFkczsKICAgICB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICBjb3B5
VG9WZWN0b3IoamF2YVNjcmlwdFRocmVhZHMoKSwgdGhyZWFkcyk7CiAgICAgICAgIEFTU0VSVCh0
aHJlYWRzLnNpemUoKSA9PSBqYXZhU2NyaXB0VGhyZWFkc0NvdW50KTsKICAgICB9CkBAIC0xNDgs
NyArMTQ5LDcgQEAgdm9pZCBzdG9wSmF2YVNjcmlwdFRocmVhZHMoKQogICAgICAgICB3YWl0Rm9y
VGhyZWFkQ29tcGxldGlvbih0aHJlYWRzW2ldKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgICAgIGphdmFTY3JpcHRUaHJl
YWRzKCkuY2xlYXIoKTsKICAgICB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0NvbmRpdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ29uZGl0aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDcgKzEx
Miw3IEBAIHZvaWQgcnVuVGVzdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuICFzaG91bGRDb250aW51ZSB8fCAhcXVldWUuaXNFbXB0eSgpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZENvbnRpbnVlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSAmJiBxdWV1ZS5pc0VtcHR5KCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICAg
c2hvdWxkTm90aWZ5ID0gcXVldWUuc2l6ZSgpID09IG1heFF1ZXVlU2l6ZTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IHF1ZXVlLnRha2VGaXJzdCgpOwpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCShyZXZpc2lvbiAxODg1NjkpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJU
ZXN0LmgiCisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KICNp
bmNsdWRlIDxzdHJpbmc+CkBAIC00MCw4ICs0Miw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBkaXNw
YXRjaEFmdGVyTGFiZWwgPSAKICAgICAKIFRFU1QoV1RGX1dvcmtRdWV1ZSwgU2ltcGxlKQogewot
ICAgIE11dGV4IG1fbG9jazsKLSAgICBUaHJlYWRDb25kaXRpb24gbV90ZXN0Q29tcGxldGVkOwor
ICAgIExvY2sgbV9sb2NrOworICAgIENvbmRpdGlvbiBtX3Rlc3RDb21wbGV0ZWQ7CiAgICAgVmVj
dG9yPHN0ZDo6c3RyaW5nPiBtX2Z1bmN0aW9uQ2FsbE9yZGVyOwogCiAgICAgYm9vbCBjYWxsZWRT
aW1wbGVUZXN0ID0gZmFsc2U7CkBAIC01Niw3ICs1OCw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwg
U2ltcGxlKQogICAgIGludCBpbml0aWFsUmVmQ291bnQgPSBxdWV1ZS0+cmVmQ291bnQoKTsKICAg
ICBFWFBFQ1RfRVEoMSwgaW5pdGlhbFJlZkNvdW50KTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgcXVldWUtPmRp
c3BhdGNoKFsmXSh2b2lkKSB7CiAgICAgICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIuYXBwZW5kKHNp
bXBsZVRlc3RMYWJlbCk7CiAgICAgICAgIGNhbGxlZFNpbXBsZVRlc3QgPSB0cnVlOwpAQCAtNjks
NyArNzEsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICB9KTsKIAogICAgIHF1
ZXVlLT5kaXNwYXRjaChbJl0odm9pZCkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9s
b2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgbV9mdW5j
dGlvbkNhbGxPcmRlci5hcHBlbmQodGhpcmRUZXN0TGFiZWwpOwogICAgICAgICBjYWxsZWRUaGly
ZFRlc3QgPSB0cnVlOwogCkBAIC03Nyw3ICs3OSw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgU2lt
cGxlKQogICAgICAgICBFWFBFQ1RfVFJVRShjYWxsZWRMb25nVGVzdCk7CiAgICAgICAgIEVYUEVD
VF9UUlVFKGNhbGxlZFRoaXJkVGVzdCk7CiAgICAgICAgIAotICAgICAgICBtX3Rlc3RDb21wbGV0
ZWQuc2lnbmFsKCk7CisgICAgICAgIG1fdGVzdENvbXBsZXRlZC5ub3RpZnlPbmUoKTsKICAgICB9
KTsKIAogICAgIEVYUEVDVF9HVChxdWV1ZS0+cmVmQ291bnQoKSwgMSk7CkBAIC05Niw4ICs5OCw4
IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgU2ltcGxlKQogCiBURVNUKFdURl9Xb3JrUXVldWUsIFR3
b1F1ZXVlcykKIHsKLSAgICBNdXRleCBtX2xvY2s7Ci0gICAgVGhyZWFkQ29uZGl0aW9uIG1fdGVz
dFF1ZXVlMUNvbXBsZXRlZCwgbV90ZXN0UXVldWUyQ29tcGxldGVkOworICAgIExvY2sgbV9sb2Nr
OworICAgIENvbmRpdGlvbiBtX3Rlc3RRdWV1ZTFDb21wbGV0ZWQsIG1fdGVzdFF1ZXVlMkNvbXBs
ZXRlZDsKICAgICBWZWN0b3I8c3RkOjpzdHJpbmc+IG1fZnVuY3Rpb25DYWxsT3JkZXI7CiAKICAg
ICBib29sIGNhbGxlZFNpbXBsZVRlc3QgPSBmYWxzZTsKQEAgLTExMCw3ICsxMTIsNyBAQCBURVNU
KFdURl9Xb3JrUXVldWUsIFR3b1F1ZXVlcykKICAgICBFWFBFQ1RfRVEoMSwgcXVldWUxLT5yZWZD
b3VudCgpKTsKICAgICBFWFBFQ1RfRVEoMSwgcXVldWUyLT5yZWZDb3VudCgpKTsKIAotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7
CiAgICAgCiAgICAgcXVldWUxLT5kaXNwYXRjaChbJl0odm9pZCkgewogICAgICAgICBtX2Z1bmN0
aW9uQ2FsbE9yZGVyLmFwcGVuZChzaW1wbGVUZXN0TGFiZWwpOwpAQCAtMTIwLDIyICsxMjIsMjIg
QEAgVEVTVChXVEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMpCiAgICAgcXVldWUyLT5kaXNwYXRjaChb
Jl0odm9pZCkgewogICAgICAgICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3Ioc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyg1MCkpOwogCi0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xv
Y2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogCiAgICAgICAgIC8vIFdp
bGwgZmFpbCBpZiBxdWV1ZTIgdG9vayB0aGUgbXV0ZXggYmVmb3JlIHF1ZXVlMS4KICAgICAgICAg
RVhQRUNUX1RSVUUoY2FsbGVkVGhpcmRUZXN0KTsKIAogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9y
ZGVyLmFwcGVuZChsb25nVGVzdExhYmVsKTsKICAgICAgICAgY2FsbGVkTG9uZ1Rlc3QgPSB0cnVl
OwotICAgICAgICBtX3Rlc3RRdWV1ZTJDb21wbGV0ZWQuc2lnbmFsKCk7CisgICAgICAgIG1fdGVz
dFF1ZXVlMkNvbXBsZXRlZC5ub3RpZnlPbmUoKTsKICAgICB9KTsKIAogICAgIHF1ZXVlMS0+ZGlz
cGF0Y2goWyZdKHZvaWQpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAgIG1fZnVuY3Rpb25DYWxs
T3JkZXIuYXBwZW5kKHRoaXJkVGVzdExhYmVsKTsKICAgICAgICAgY2FsbGVkVGhpcmRUZXN0ID0g
dHJ1ZTsKICAgICAgICAgCi0gICAgICAgIG1fdGVzdFF1ZXVlMUNvbXBsZXRlZC5zaWduYWwoKTsK
KyAgICAgICAgbV90ZXN0UXVldWUxQ29tcGxldGVkLm5vdGlmeU9uZSgpOwogICAgIH0pOwogCiAg
ICAgbV90ZXN0UXVldWUxQ29tcGxldGVkLndhaXQobV9sb2NrKTsKQEAgLTE1OCw4ICsxNjAsOCBA
QCBURVNUKFdURl9Xb3JrUXVldWUsIFR3b1F1ZXVlcykKIAogVEVTVChXVEZfV29ya1F1ZXVlLCBE
aXNwYXRjaEFmdGVyKQogewotICAgIE11dGV4IG1fbG9jazsKLSAgICBUaHJlYWRDb25kaXRpb24g
bV90ZXN0Q29tcGxldGVkLCBtX2Rpc3BhdGNoQWZ0ZXJUZXN0Q29tcGxldGVkOworICAgIExvY2sg
bV9sb2NrOworICAgIENvbmRpdGlvbiBtX3Rlc3RDb21wbGV0ZWQsIG1fZGlzcGF0Y2hBZnRlclRl
c3RDb21wbGV0ZWQ7CiAgICAgVmVjdG9yPHN0ZDo6c3RyaW5nPiBtX2Z1bmN0aW9uQ2FsbE9yZGVy
OwogCiAgICAgYm9vbCBjYWxsZWRTaW1wbGVUZXN0ID0gZmFsc2U7CkBAIC0xNjcsMjAgKzE2OSwy
MCBAQCBURVNUKFdURl9Xb3JrUXVldWUsIERpc3BhdGNoQWZ0ZXIpCiAKICAgICBhdXRvIHF1ZXVl
ID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5kaXNwYXRjaEFmdGVy
Iik7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2xvY2spOwogCiAgICAgcXVldWUtPmRpc3BhdGNoKFsmXSh2b2lkKSB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X2xvY2spOwogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZChzaW1wbGVUZXN0TGFi
ZWwpOwogICAgICAgICBjYWxsZWRTaW1wbGVUZXN0ID0gdHJ1ZTsKLSAgICAgICAgbV90ZXN0Q29t
cGxldGVkLnNpZ25hbCgpOworICAgICAgICBtX3Rlc3RDb21wbGV0ZWQubm90aWZ5T25lKCk7CiAg
ICAgfSk7CiAKICAgICBxdWV1ZS0+ZGlzcGF0Y2hBZnRlcihzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzKDUwMCksIFsmXSh2b2lkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2sp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBtX2Z1bmN0aW9u
Q2FsbE9yZGVyLmFwcGVuZChkaXNwYXRjaEFmdGVyTGFiZWwpOwogICAgICAgICBjYWxsZWREaXNw
YXRjaEFmdGVyVGVzdCA9IHRydWU7Ci0gICAgICAgIG1fZGlzcGF0Y2hBZnRlclRlc3RDb21wbGV0
ZWQuc2lnbmFsKCk7CisgICAgICAgIG1fZGlzcGF0Y2hBZnRlclRlc3RDb21wbGV0ZWQubm90aWZ5
T25lKCk7CiAgICAgfSk7CiAKICAgICBtX3Rlc3RDb21wbGV0ZWQud2FpdChtX2xvY2spOwpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1
ZUdMaWIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3
IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIFRFU1QoV1RGX1dvcmtRdWV1ZSwgQXN5bmNJ
TykKIHsKICAgICBzdHJ1Y3QgVGVzdGluZ0NvbnRleHQgewotICAgICAgICBNdXRleCBtX2xvY2s7
CisgICAgICAgIExvY2sgbV9sb2NrOwogICAgICAgICBUaHJlYWRDb25kaXRpb24gbV90ZXN0Q29t
cGxldGVkOwogICAgICAgICBHTWFpbkNvbnRleHQqIG1fbWFpbkNvbnRleHQ7CiAgICAgfSBjb250
ZXh0OwpAQCAtNDksNyArNDksNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIEFzeW5jSU8pCiAgICAg
R1VuaXF1ZVB0cjxjaGFyPiBjdXJyZW50RGlyZWN0b3J5KGdfZ2V0X2N1cnJlbnRfZGlyKCkpOwog
ICAgIEdSZWZQdHI8R0ZpbGU+IGZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChj
dXJyZW50RGlyZWN0b3J5LmdldCgpKSk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIoY29udGV4
dC5tX2xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKGNvbnRleHQubV9sb2NrKTsKICAgICBx
dWV1ZS0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKICAgICAgICAgRVhQRUNUX1RSVUUoZ19tYWluX2Nv
bnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShnX21haW5f
Y29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQoKSAhPSBjb250ZXh0Lm1fbWFpbkNvbnRleHQpOwpA
QCAtNTcsNyArNTcsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIEFzeW5jSU8pCiAgICAgICAgIGdf
ZmlsZV9xdWVyeV9pbmZvX2FzeW5jKGZpbGUuZ2V0KCksIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRB
UkRfU0laRSwgR19GSUxFX1FVRVJZX0lORk9fTk9ORSwgR19QUklPUklUWV9ERUZBVUxULCBudWxs
cHRyLAogICAgICAgICAgICAgW10oR09iamVjdCosIEdBc3luY1Jlc3VsdCosIGdwb2ludGVyIHVz
ZXJEYXRhKSB7CiAgICAgICAgICAgICAgICAgVGVzdGluZ0NvbnRleHQqIGNvbnRleHQgPSBzdGF0
aWNfY2FzdDxUZXN0aW5nQ29udGV4dCo+KHVzZXJEYXRhKTsKLSAgICAgICAgICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIoY29udGV4dC0+bV9sb2NrKTsKKyAgICAgICAgICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihjb250ZXh0LT5tX2xvY2spOwogICAgICAgICAgICAgICAgIEVYUEVDVF9FUShn
X21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQoKSwgY29udGV4dC0+bV9tYWluQ29udGV4
dCk7CiAgICAgICAgICAgICAgICAgY29udGV4dC0+bV90ZXN0Q29tcGxldGVkLnNpZ25hbCgpOwog
ICAgICAgICAgICAgfSwgJmNvbnRleHQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259246</attachid>
            <date>2015-08-17 22:15:06 -0700</date>
            <delta_ts>2015-08-17 22:35:39 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>217373</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RG
OjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBhbHNvIGJlZWZzIHVwIGFuZCByYXRpb25hbGl6ZXMgdGhlIENv
bmRpdGlvbiBBUEksIHNvIHRoYXQgaXQgY2FuIGRlYWwgd2l0aCB1bml0cyBvZiB0aW1lCisgICAg
ICAgIG90aGVyIHRoYW4ganVzdCBzdGVhZHlfY2xvY2suIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRv
IHBvcnQgVGhyZWFkQ29uZGl0aW9uIGFuZAorICAgICAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJs
ZSBjb2RlIG92ZXIgdG8gQ29uZGl0aW9uLiBUaGlzIHBhdGNoIGRvZXMgbm90IHRha2UgYSBwb3Np
dGlvbiBvbiB3aGF0CisgICAgICAgIGtpbmQgb2YgdGltZSBpcyBiZXN0OyBmcm9tIHJlYWRpbmcg
YSBsb3Qgb2YgdGhlIHVzZXMgaW4gV2ViQ29yZSwgaXQgc2VlbXMgbGlrZSBvdXIgdXNlIG9mCisg
ICAgICAgIGRvdWJsZSB0byBtZWFzdXJlIHNlY29uZHMgaXMgb2Z0ZW4gbmljZXIgdGhhbiB0aGUg
bWFueSBkaWZmZXJlbnQgY2xhc3NlcyBpbiBzdGQ6OmNocm9uby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgQ29uZGl0aW9uIHNwZWVkIHRlc3QsIHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBvZiB0aGlz
IGlzIGEgZ29vZCBpZGVhLiBBbmQgaW5kZWVkIGl0CisgICAgICAgIGlzLiBUaGUgMS1wcm9kdWNl
ci8xLWNvbnN1bWVyIHNjZW5hcmlvIHdpdGggYSAxMDAtZWxlbWVudCBxdWV1ZSBydW5zIDM2eCBm
YXN0ZXIgdXNpbmcKKyAgICAgICAgTG9jay9Db25kaXRpb24gdGhhbiBNdXRleC9UaHJlYWRDb25k
aXRpb24gd2hlbiB5b3UgdXNlIHRoZSBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBzdHlsZS4gSXQK
KyAgICAgICAgcnVucyA1OHggZmFzdGVyIHdpdGggTG9jay9Db25kaXRpb24gd2hlbiB5b3UgdXNl
IHRoZSBub3RpZnlBbGwoKS1hdC1ib3VuZGFyeSBzdHlsZS4gTm90ZSB0aGF0CisgICAgICAgIEkg
aGF2ZSBhIGJ1ZyBvcGVuIGZvciBtYWtpbmcgdGhlIG5vdGlmeU9uZSgpLXBlci1lbnF1ZXVlIHN0
eWxlIGV2ZW4gZmFzdGVyOgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MDkwLiBBbHNvLCB0aGUgMTAtY29uc3VtZXIvMTAtcHJvZHVjZXIgc2NlbmFy
aW8gd2l0aAorICAgICAgICBhIDEwMC1lbGVtZW50IHF1ZXVlIHJ1bnMgMjB4IGZhc3RlciB3aXRo
IExvY2svQ29uZGl0aW9uIGZvciBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBhbmQgMzB4CisgICAg
ICAgIGZhc3RlciB3aXRoIG5vdGlmeUFsbCgpLWF0LWJvdW5kYXJ5LiBTbywgaXQgc2VlbXMgdGhh
dCByZXBsYWNpbmcgYWxsIHVzZXMgb2Ygc3lzdGVtIG11dGV4ZXMgYW5kCisgICAgICAgIGNvbmRp
dGlvbiB2YXJpYWJsZXMgd2l0aCBvdXIgb3duIHRoaW5nIGlzIGEgZ3JlYXQgaWRlYS4KKworICAg
ICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJr
cy9Db25kaXRpb25TcGVlZFRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvQ29uZGl0aW9u
Lmg6CisgICAgICAgIChXVEY6OkNvbmRpdGlvbjo6Q29uZGl0aW9uKToKKyAgICAgICAgKFdURjo6
Q29uZGl0aW9uOjp3YWl0VW50aWwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3Ip
OgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXQpOgorICAgICAgICAoV1RGOjpDb25kaXRp
b246OndhaXRVbnRpbFdhbGxDbG9ja1NlY29uZHMpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246
OndhaXRVbnRpbE1vbm90b25pY0Nsb2NrU2Vjb25kcyk6CisgICAgICAgIChXVEY6OkNvbmRpdGlv
bjo6bm90aWZ5T25lKToKKyAgICAgICAgKFdURjo6Q29uZGl0aW9uOjpub3RpZnlBbGwpOgorICAg
ICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3JTZWNvbmRzSW1wbCk6CisgICAgICAgIChXVEY6
OkNvbmRpdGlvbjo6d2FpdEZvckltcGwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OmFic29s
dXRlRnJvbVJlbGF0aXZlKToKKyAgICAgICAgKiB3dGYvTWVzc2FnZVF1ZXVlLmg6CisgICAgICAg
IChXVEY6Ok1lc3NhZ2VRdWV1ZTo6aW5maW5pdGVUaW1lKToKKyAgICAgICAgKFdURjo6TWVzc2Fn
ZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6YXBwZW5kQW5kS2lsbCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRh
VHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHkpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8
RGF0YVR5cGU+OjpwcmVwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBl
Pjo6cmVtb3ZlSWYpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojppc0Vt
cHR5KToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbCk6CisgICAg
ICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmtpbGxlZCk6CisgICAgICAgICogd3Rm
L1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25t
ZW50OjpUaHJlYWRQcml2YXRlOjpleGVjdXRlKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZp
cm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZpbmlzaCk6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCk6CisgICAgICAg
ICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaDoKKyAgICAgICAgKiB3dGYvUGFya2luZ0xvdC5j
cHA6CisgICAgICAgIChXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KToKKyAgICAg
ICAgKiB3dGYvUGFya2luZ0xvdC5oOgorICAgICAgICAoV1RGOjpQYXJraW5nTG90Ojpjb21wYXJl
QW5kUGFyayk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAg
KFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZyk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5j
cHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHd0Zi9k
dG9hLmNwcDoKKyAgICAgICAgKFdURjo6cG93NW11bHQpOgorICAgICAgICAqIHd0Zi9kdG9hLmg6
CisKIDIwMTUtMDgtMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBCdWlsZCBEZWJ1ZyBTdWZmaXggb24gV2luZG93cyB3aXRoIENNYWtlCklu
ZGV4OiBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKy8vIE9uIE1hYywgeW91IGNhbiBidWlsZCB0aGlzIGxp
a2Ugc286CisvLyBjbGFuZysrIC1vIENvbmRpdGlvblNwZWVkVGVzdCBTb3VyY2UvV1RGL2JlbmNo
bWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RGIC1MV2ViS2l0
QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vjb3JlIC1zdGQ9
YysrMTEKKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVk
ZSA8dGhyZWFkPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvRGF0YUxvZy5o
PgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJp
bWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIHsKKworY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisKK3Vuc2lnbmVkIG51bVByb2R1Y2VyczsKK3Vuc2ln
bmVkIG51bUNvbnN1bWVyczsKK3Vuc2lnbmVkIG1heFF1ZXVlU2l6ZTsKK3Vuc2lnbmVkIG51bU1l
c3NhZ2VzUGVyUHJvZHVjZXI7CisgICAgCitOT19SRVRVUk4gdm9pZCB1c2FnZSgpCit7CisgICAg
cHJpbnRmKCJVc2FnZTogQ29uZGl0aW9uU3BlZWRUZXN0IGxvY2t8bXV0ZXh8YWxsIDxudW0gcHJv
ZHVjZXJzPiA8bnVtIGNvbnN1bWVycz4gPG1heCBxdWV1ZSBzaXplPiA8bnVtIG1lc3NhZ2VzIHBl
ciBwcm9kdWNlcj5cbiIpOworICAgIGV4aXQoMSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0b3IsIHR5cGVuYW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIExvY2tUeXBlPgordm9pZCB3
YWl0KENvbmRpdGlvblR5cGUmIGNvbmRpdGlvbiwgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IEZ1bmN0
b3ImIHByZWRpY2F0ZSkKK3sKKyAgICB3aGlsZSAoIXByZWRpY2F0ZSgpKQorICAgICAgICBjb25k
aXRpb24ud2FpdChsb2NrKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVu
YW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIE5vdGlmeUZ1bmN0b3IsIHR5cGVuYW1lIE5vdGlm
eUFsbEZ1bmN0b3I+Cit2b2lkIHJ1blRlc3QoCisgICAgdW5zaWduZWQgbnVtUHJvZHVjZXJzLAor
ICAgIHVuc2lnbmVkIG51bUNvbnN1bWVycywKKyAgICB1bnNpZ25lZCBtYXhRdWV1ZVNpemUsCisg
ICAgdW5zaWduZWQgbnVtTWVzc2FnZXNQZXJQcm9kdWNlciwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIERlcXVlPHVuc2lnbmVkPiBxdWV1ZTsKKyAgICBib29sIHNob3VsZENvbnRpbnVlID0gdHJ1
ZTsKKyAgICBMb2NrVHlwZSBsb2NrOworICAgIENvbmRpdGlvblR5cGUgZW1wdHlDb25kaXRpb247
CisgICAgQ29uZGl0aW9uVHlwZSBmdWxsQ29uZGl0aW9uOworCisgICAgVmVjdG9yPFRocmVhZElk
ZW50aWZpZXI+IGNvbnN1bWVyVGhyZWFkczsKKyAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4g
cHJvZHVjZXJUaHJlYWRzOworCisgICAgVmVjdG9yPHVuc2lnbmVkPiByZWNlaXZlZDsKKyAgICBM
b2NrVHlwZSByZWNlaXZlZExvY2s7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29u
c3VtZXJzOyBpLS07KSB7CisgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmll
ciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAg
ICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbXVz
dE5vdGlmeSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB3YWl0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5
Q29uZGl0aW9uLCBsb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZyh0b1N0cmluZyhjdXJyZW50VGhyZWFkKCks
ICI6IENoZWNraW5nIGNvbnN1bXB0aW9uIHByZWRpY2F0ZSB3aXRoIHNob3VsZENvbnRpbnVlID0g
Iiwgc2hvdWxkQ29udGludWUsICIsIHF1ZXVlLnNpemUoKSA9PSAiLCBxdWV1ZS5zaXplKCksICJc
biIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFzaG91bGRDb250
aW51ZSB8fCAhcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSAmJiBxdWV1ZS5p
c0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgICAgICAgICAgbXVzdE5vdGlmeSA9IHF1ZXVlLnNpemUoKSA9PSBtYXhRdWV1ZVNpemU7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBxdWV1ZS50YWtlRmlyc3QoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBub3RpZnkoZnVsbENvbmRp
dGlvbiwgbXVzdE5vdGlmeSk7CisKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2tUeXBlPiBsb2NrZXIocmVjZWl2ZWRMb2Nr
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkLmFwcGVuZChyZXN1bHQpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7Cisg
ICAgICAgIGNvbnN1bWVyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmllcik7CisgICAgfQor
CisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtUHJvZHVjZXJzOyBpLS07KSB7CisgICAgICAgIFRo
cmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAg
ICAgICJQcm9kdWNlciBUaHJlYWQiLAorICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQZXJQcm9kdWNlcjsgKytp
KSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgbXVzdE5vdGlmeSA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2Nr
PExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxDb25kaXRpb24sIGxvY2ssCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKHRvU3RyaW5nKGN1cnJlbnRUaHJlYWQoKSwgIjogQ2hlY2tpbmcgcHJvZHVjdGlvbiBw
cmVkaWNhdGUgd2l0aCBzaG91bGRDb250aW51ZSA9ICIsIHNob3VsZENvbnRpbnVlLCAiLCBxdWV1
ZS5zaXplKCkgPT0gIiwgcXVldWUuc2l6ZSgpLCAiXG4iKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBxdWV1ZS5zaXplKCkgPCBtYXhRdWV1ZVNpemU7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtdXN0Tm90
aWZ5ID0gcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgcXVldWUuYXBw
ZW5kKGkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5vdGlm
eShlbXB0eUNvbmRpdGlvbiwgbXVzdE5vdGlmeSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSk7CisgICAgICAgIHByb2R1Y2VyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmll
cik7CisgICAgfQorCisgICAgZm9yIChUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIg
OiBwcm9kdWNlclRocmVhZHMpCisgICAgICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVh
ZElkZW50aWZpZXIpOworCisgICAgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9ja1R5cGU+
IGxvY2tlcihsb2NrKTsKKyAgICAgICAgc2hvdWxkQ29udGludWUgPSBmYWxzZTsKKyAgICB9Cisg
ICAgbm90aWZ5QWxsKGVtcHR5Q29uZGl0aW9uKTsKKworICAgIGZvciAoVGhyZWFkSWRlbnRpZmll
ciB0aHJlYWRJZGVudGlmaWVyIDogY29uc3VtZXJUaHJlYWRzKQorICAgICAgICB3YWl0Rm9yVGhy
ZWFkQ29tcGxldGlvbih0aHJlYWRJZGVudGlmaWVyKTsKKworICAgIFJFTEVBU0VfQVNTRVJUKG51
bVByb2R1Y2VycyAqIG51bU1lc3NhZ2VzUGVyUHJvZHVjZXIgPT0gcmVjZWl2ZWQuc2l6ZSgpKTsK
KyAgICBzdGQ6OnNvcnQocmVjZWl2ZWQuYmVnaW4oKSwgcmVjZWl2ZWQuZW5kKCkpOworICAgIGZv
ciAodW5zaWduZWQgbWVzc2FnZUluZGV4ID0gMDsgbWVzc2FnZUluZGV4IDwgbnVtTWVzc2FnZXNQ
ZXJQcm9kdWNlcjsgKyttZXNzYWdlSW5kZXgpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBwcm9k
dWNlckluZGV4ID0gMDsgcHJvZHVjZXJJbmRleCA8IG51bVByb2R1Y2VyczsgKytwcm9kdWNlcklu
ZGV4KQorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobWVzc2FnZUluZGV4ID09IHJlY2VpdmVk
W21lc3NhZ2VJbmRleCAqIG51bVByb2R1Y2VycyArIHByb2R1Y2VySW5kZXhdKTsKKyAgICB9Cit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlLCB0eXBlbmFtZSBDb25kaXRpb25UeXBlLCB0
eXBlbmFtZSBOb3RpZnlGdW5jdG9yLCB0eXBlbmFtZSBOb3RpZnlBbGxGdW5jdG9yPgordm9pZCBy
dW5CZW5jaG1hcmsoCisgICAgY29uc3QgY2hhciogbmFtZSwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIGRvdWJsZSBiZWZvcmUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWVNUygpOworICAg
IAorICAgIHJ1blRlc3Q8TG9ja1R5cGUsIENvbmRpdGlvblR5cGU+KAorICAgICAgICBudW1Qcm9k
dWNlcnMsCisgICAgICAgIG51bUNvbnN1bWVycywKKyAgICAgICAgbWF4UXVldWVTaXplLAorICAg
ICAgICBudW1NZXNzYWdlc1BlclByb2R1Y2VyLAorICAgICAgICBub3RpZnksCisgICAgICAgIG5v
dGlmeUFsbCk7CisKKyAgICBkb3VibGUgYWZ0ZXIgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWVNUygpOworCisgICAgcHJpbnRmKCIlczogJS4zbGYgbXMuXG4iLCBuYW1lLCBhZnRlciAtIGJl
Zm9yZSk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitpbnQgbWFpbihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCit7CisgICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisKKyAg
ICBpZiAoYXJnYyAhPSA2CisgICAgICAgIHx8IHNzY2FuZihhcmd2WzJdLCAiJXUiLCAmbnVtUHJv
ZHVjZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzNdLCAiJXUiLCAmbnVtQ29uc3Vt
ZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzRdLCAiJXUiLCAmbWF4UXVldWVTaXpl
KSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzVdLCAiJXUiLCAmbnVtTWVzc2FnZXNQZXJQ
cm9kdWNlcikgIT0gMSkKKyAgICAgICAgdXNhZ2UoKTsKKworICAgIGJvb2wgZGlkUnVuID0gZmFs
c2U7CisgICAgaWYgKCFzdHJjbXAoYXJndlsxXSwgImxvY2siKSB8fCAhc3RyY21wKGFyZ3ZbMV0s
ICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1hcms8TG9jaywgQ29uZGl0aW9uPigKKyAgICAg
ICAgICAgICJXVEYgTG9jayBOb3RpZnlPbmUiLAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24m
IGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9u
Lm5vdGlmeU9uZSgpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0aW9u
JiBjb25kaXRpb24pIHsKKyAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgcnVuQmVuY2htYXJrPExvY2ssIENvbmRpdGlvbj4oCisg
ICAgICAgICAgICAiV1RGIExvY2sgTm90aWZ5QWxsIiwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0
aW9uJiBjb25kaXRpb24sIGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGlmICht
dXN0Tm90aWZ5KQorICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24mIGNvbmRpdGlvbikgewor
ICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICBkaWRSdW4gPSB0cnVlOworICAgIH0KKyAgICBpZiAoIXN0cmNtcChhcmd2WzFdLCAi
bXV0ZXgiKSB8fCAhc3RyY21wKGFyZ3ZbMV0sICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1h
cms8TXV0ZXgsIFRocmVhZENvbmRpdGlvbj4oCisgICAgICAgICAgICAiUGxhdGZvcm0gTXV0ZXgg
Tm90aWZ5T25lIiwKKyAgICAgICAgICAgIFsmXSAoVGhyZWFkQ29uZGl0aW9uJiBjb25kaXRpb24s
IGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5zaWduYWwoKTsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlvbiYgY29uZGl0
aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIHJ1bkJlbmNobWFyazxNdXRleCwgVGhyZWFkQ29uZGl0aW9uPigKKyAg
ICAgICAgICAgICJQbGF0Zm9ybSBNdXRleCBOb3RpZnlBbGwiLAorICAgICAgICAgICAgWyZdIChU
aHJlYWRDb25kaXRpb24mIGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAg
ICAgICAgaWYgKG11c3ROb3RpZnkpCisgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5icm9h
ZGNhc3QoKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlv
biYgY29uZGl0aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIGRpZFJ1biA9IHRydWU7CisgICAgfQorCisgICAgaWYg
KCFkaWRSdW4pCisgICAgICAgIHVzYWdlKCk7CisKKyAgICByZXR1cm4gMDsKK30KKwpJbmRleDog
U291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw2ICsyMyw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisvLyBPbiBNYWMsIHlv
dSBjYW4gYnVpbGQgdGhpcyBsaWtlIHNvOgorLy8gY2xhbmcrKyAtbyBMb2NrU3BlZWRUZXN0IFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RG
IC1MV2ViS2l0QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vj
b3JlIC1zdGQ9YysrMTEKKwogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9Db25kaXRpb24uaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93
dGYvQ29uZGl0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDI2ICsyOSw1OSBAQAogI2luY2x1
ZGUgPGNocm9ubz4KICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPG11dGV4PgorI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXJraW5nTG90Lmg+CiAK
IG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBDb25kaXRpb24gewogcHVibGljOgorICAgIHR5cGVk
ZWYgUGFya2luZ0xvdDo6Q2xvY2sgQ2xvY2s7CisgICAgCiAgICAgQ29uZGl0aW9uKCkgeyB9CiAK
ICAgICAvLyBXYWl0IG9uIGEgcGFya2luZyBxdWV1ZSB3aGlsZSByZWxlYXNpbmcgdGhlIGdpdmVu
IGxvY2suIEl0IHdpbGwgdW5sb2NrIHRoZSBsb2NrIGp1c3QgYmVmb3JlCiAgICAgLy8gcGFya2lu
ZywgYW5kIHJlbG9jayBpdCB1cG9uIHdha2V1cC4gUmV0dXJucyB0cnVlIGlmIHdlIHdva2UgdXAg
ZHVlIHRvIHNvbWUgY2FsbCB0bwotICAgIC8vIG5vdGlmeU9uZSgpIG9yIG5vdGlmeUFsbCgpLiBS
ZXR1cm5zIGZhbHNlIGlmIHdlIHdva2UgdXAgZHVlIHRvIGEgdGltZW91dC4KKyAgICAvLyBub3Rp
ZnlPbmUoKSBvciBub3RpZnlBbGwoKS4gUmV0dXJucyBmYWxzZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0
byBhIHRpbWVvdXQuIE5vdGUgdGhhdCB0aGlzIGZvcm0KKyAgICAvLyBvZiB3YWl0VW50aWwoKSBo
YXMgc29tZSBxdWlya3M6CisgICAgLy8KKyAgICAvLyBObyBzcHVyaW91cyB3YWtlLXVwOiBpbiBv
cmRlciBmb3IgdGhpcyB0byByZXR1cm4gYmVmb3JlIHRoZSB0aW1lb3V0LCBzb21lIG5vdGlmeU9u
ZSgpIG9yCisgICAgLy8gbm90aWZ5QWxsKCkgY2FsbCBtdXN0IGhhdmUgaGFwcGVuZWQuIE5vIHNj
ZW5hcmlvIG90aGVyIHRoYW4gdGltZW91dCBvciBub3RpZnkgY2FuIGxlYWQgdG8gdGhpcworICAg
IC8vIG1ldGhvZCByZXR1cm5pbmcuIFRoaXMgbWVhbnMsIGZvciBleGFtcGxlLCB0aGF0IHlvdSBj
YW4ndCB1c2UgcHRocmVhZCBjYW5jZWxhdGlvbiBvciBzaWduYWxzIHRvCisgICAgLy8gY2F1c2Ug
ZWFybHkgcmV0dXJuLgorICAgIC8vCisgICAgLy8gUGFzdCB0aW1lb3V0OiBpdCdzIHBvc3NpYmxl
IGZvciB3YWl0VW50aWwoKSB0byBiZSBjYWxsZWQgd2l0aCBhIHRpbWVvdXQgaW4gdGhlIHBhc3Qu
IEluIHRoYXQKKyAgICAvLyBjYXNlLCB3YWl0VW50aWwoKSB3aWxsIHN0aWxsIHJlbGVhc2UgdGhl
IGxvY2sgYW5kIHJlYWNxdWlyZSBpdC4gd2FpdFVudGlsKCkgd2lsbCBhbHdheXMgcmV0dXJuCisg
ICAgLy8gZmFsc2UgaW4gdGhhdCBjYXNlLiBUaGlzIGlzIHN1YnRseSBkaWZmZXJlbnQgZnJvbSBz
b21lIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSBpbXBsZW1lbnRhdGlvbnMsCisgICAgLy8gd2hp
Y2ggbWF5IG5vdCByZWxlYXNlIHRoZSBsb2NrIGZvciBwYXN0IHRpbWVvdXQuIEJ1dCwgdGhpcyBi
ZWhhdmlvciBpcyBjb25zaXN0ZW50IHdpdGggT3Blbkdyb3VwCisgICAgLy8gZG9jdW1lbnRhdGlv
biBmb3IgdGltZWR3YWl0KCkuCisgICAgLy8KKyAgICAvLyBNYXkgd2FpdCB0b28gbG9uZyBvbiBz
b21lIE9TZXM6IHRoZSBDKysgc3RhbmRhcmQgbGlicmFyeSBpbXBsZW1lbnRhdGlvbiBvZgorICAg
IC8vIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlOjp3YWl0X3VudGlsKCksIHdoaWNoIHRoaXMgdXNl
cyBpbnRlcm5hbGx5LCBtYXkgY29udmVydCB0aGUgYWJzb2x1dGUKKyAgICAvLyB0aW1lIHRvIGFu
IGFic29sdXRlIHRpbWUgYWNjb3JkaW5nIHRvIHRoZSBzeXN0ZW0gY2xvY2ssIHdoaWNoIGlzbid0
IG1vbm90b25pYy4gSXQgd2lsbCBkbyB0aGlzCisgICAgLy8gc28gdGhhdCBpdCBjYW4gdXNlIHB0
aHJlYWRfY29uZF90aW1lZHdhaXQoKS4gRGVwZW5kaW5nIG9uIHRoZSBPUyBhbmQgaWYgYW4gdW5m
b3J0dW5hdGUKKyAgICAvLyBjb21iaW5hdGlvbiBvZiB0aHJlYWQgaW50ZXJsZWF2aW5ncyBhbmQg
c3lzdGVtIHRpbWUgY2hhbmdlcyBoYXBwZW5zLCB0aGlzIG1heSBjYXVzZSB3YWl0VW50aWwoKQor
ICAgIC8vIHRvIHdhaXQgbG9uZ2VyIHRoYW4gaXQncyBzdXBwb3NlZCB0by4gSG93ZXZlciwgaXQn
cyB0eXBpY2FsIGZvciBPU2VzIHRvIHR1cm4gdGhlIGFic29sdXRlCisgICAgLy8gdGltZW91dCBp
biBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gYSByZWxhdGl2ZSB0aW1lb3V0IGJlZm9yZSBj
YWxsaW5nIGludG8gdGhlIGtlcm5lbC4gVGhpcworICAgIC8vIGlzIHdoYXQgZ2xpYmMgZG9lcywg
Zm9yIGV4YW1wbGUuCisgICAgLy8KKyAgICAvLyBUaGVzZSBxdWlya3MgYXJlIGdlbmVyYWxseSBu
b3Qgd29ydGggd29ycnlpbmcgdG9vIG11Y2ggYWJvdXQuIFRoZSBmYWN0IHRoYXQgc29tZSBPU2Vz
IHBlcmZvcm0KKyAgICAvLyBjb252ZXJzaW9ucyB0byBhbiBhYnNvbHV0ZSBub24tbW9ub3Rvbmlj
IHRpbWUgaXMgdW5saWtlbHkgdG8gY2F1c2UgaXNzdWVzIGJlY2F1c2UgdGhleSB1c3VhbGx5Cisg
ICAgLy8ganVzdCBkbyB0aGF0IGFzIHBhcnQgb2YgYSBjb252ZXJzaW9uIHRvIGEgcmVsYXRpdmUg
c2xlZXAgYW1vdW50IGluIHRoZSBrZXJuZWwuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5
cGU+Ci0gICAgYm9vbCB3YWl0VW50aWwoCi0gICAgICAgIExvY2tUeXBlJiBsb2NrLCBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCisgICAgYm9vbCB3YWl0VW50
aWwoTG9ja1R5cGUmIGxvY2ssIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiAgICAgewotICAg
ICAgICBib29sIHJlc3VsdCA9IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAotICAgICAg
ICAgICAgJm1fZHVtbXksCi0gICAgICAgICAgICBbXSAoKSAtPiBib29sIHsgcmV0dXJuIHRydWU7
IH0sCi0gICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKLSAgICAgICAg
ICAgIHRpbWVvdXQpOworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgaWYgKHRpbWVvdXQg
PCBDbG9jazo6bm93KCkpIHsKKyAgICAgICAgICAgIGxvY2sudW5sb2NrKCk7CisgICAgICAgICAg
ICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9
IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAorICAgICAgICAgICAgICAgICZtX2R1bW15
LAorICAgICAgICAgICAgICAgIFtdICgpIC0+IGJvb2wgeyByZXR1cm4gdHJ1ZTsgfSwKKyAgICAg
ICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKKyAgICAgICAgICAgICAg
ICB0aW1lb3V0KTsKKyAgICAgICAgfQogICAgICAgICBsb2NrLmxvY2soKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CkBAIC01Niw4ICs4OSw3IEBAIHB1YmxpYzoKICAgICAvLyBXYWl0
IHVudGlsIHRoZSBnaXZlbiBwcmVkaWNhdGUgaXMgc2F0aXNmaWVkLiBSZXR1cm5zIHRydWUgaWYg
aXQgaXMgc2F0aXNmaWVkIGluIHRoZSBlbmQuCiAgICAgLy8gTWF5IHJldHVybiBlYXJseSBkdWUg
dG8gdGltZW91dC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRnVu
Y3Rvcj4KLSAgICBib29sIHdhaXRVbnRpbCgKLSAgICAgICAgTG9ja1R5cGUmIGxvY2ssIHN0ZDo6
Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgdGltZW91dCwgY29uc3QgRnVuY3RvciYg
cHJlZGljYXRlKQorICAgIGJvb2wgd2FpdFVudGlsKExvY2tUeXBlJiBsb2NrLCBDbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewogICAgICAg
ICB3aGlsZSAoIXByZWRpY2F0ZSgpKSB7CiAgICAgICAgICAgICBpZiAoIXdhaXRVbnRpbChsb2Nr
LCB0aW1lb3V0KSkKQEAgLTcyLDE3ICsxMDQsMTMgQEAgcHVibGljOgogICAgIGJvb2wgd2FpdEZv
cigKICAgICAgICAgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVU
aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewotICAgICAgICBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IGFic29sdXRlVGltZW91dCA9Ci0gICAgICAg
ICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSArCi0gICAgICAgICAgICBzdGQ6
OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlv
bj4ocmVsYXRpdmVUaW1lb3V0KTsKLQotICAgICAgICByZXR1cm4gd2FpdFVudGlsKGxvY2ssIGFi
c29sdXRlVGltZW91dCwgcHJlZGljYXRlKTsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2Nr
LCBhYnNvbHV0ZUZyb21SZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpLCBwcmVkaWNhdGUpOwogICAg
IH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgogICAgIHZvaWQgd2FpdChMb2Nr
VHlwZSYgbG9jaykKICAgICB7Ci0gICAgICAgIHdhaXRVbnRpbChsb2NrLCBzdGQ6OmNocm9ubzo6
c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7CisgICAgICAgIHdhaXRVbnRpbChsb2Nr
LCBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIExvY2tUeXBlLCB0eXBlbmFtZSBGdW5jdG9yPgpAQCAtOTIsNiArMTIwLDMyIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHdhaXQobG9jayk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgTG9ja1R5cGUsIHR5cGVuYW1lIFRpbWVUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsKExvY2tU
eXBlJiBsb2NrLCBjb25zdCBUaW1lVHlwZSYgdGltZW91dCkKKyAgICB7CisgICAgICAgIGlmICh0
aW1lb3V0ID09IFRpbWVUeXBlOjptYXgoKSkgeworICAgICAgICAgICAgd2FpdChsb2NrKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB3YWl0Rm9y
SW1wbChsb2NrLCB0aW1lb3V0IC0gVGltZVR5cGU6OmNsb2NrOjpub3coKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+CisgICAgYm9vbCB3YWl0VW50aWxXYWxsQ2xv
Y2tTZWNvbmRzKExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykK
KyAgICB7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVU
aW1lb3V0U2Vjb25kcyAtIGN1cnJlbnRUaW1lKCkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIExvY2tUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsTW9ub3RvbmljQ2xvY2tTZWNvbmRz
KExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykKKyAgICB7Cisg
ICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVUaW1lb3V0U2Vj
b25kcyAtIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKKyAgICB9CisKKyAgICAvLyBG
SVhNRTogV2UgY291bGQgcmVwbGFjZSB0aGUgZHVtbXkgYnl0ZSB3aXRoIGEgYm9vbGVhbiB0byB0
ZWxsIHVzIGlmIHRoZXJlIGlzIGFueW9uZSB3YWl0aW5nCisgICAgLy8gcmlnaHQgbm93LiBUaGlz
IGNvdWxkIGJlIHVzZWQgdG8gaW1wbGVtZW50IGEgZmFzdCBwYXRoIGZvciBub3RpZnlPbmUoKSBh
bmQgbm90aWZ5QWxsKCkuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODA5MAorCiAgICAgdm9pZCBub3RpZnlPbmUoKQogICAgIHsKICAgICAgICAgUGFy
a2luZ0xvdDo6dW5wYXJrT25lKCZtX2R1bW15KTsKQEAgLTEwMyw3ICsxNTcsNTYgQEAgcHVibGlj
OgogICAgIH0KICAgICAKIHByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+
CisgICAgYm9vbCB3YWl0Rm9yU2Vjb25kc0ltcGwoTG9ja1R5cGUmIGxvY2ssIGRvdWJsZSByZWxh
dGl2ZVRpbWVvdXRTZWNvbmRzKQorICAgIHsKKyAgICAgICAgZG91YmxlIHJlbGF0aXZlVGltZW91
dE5hbm9zZWNvbmRzID0gcmVsYXRpdmVUaW1lb3V0U2Vjb25kcyAqICgxMDAwLjAgKiAxMDAwLjAg
KiAxMDAwLjApOworICAgICAgICAKKyAgICAgICAgaWYgKCEocmVsYXRpdmVUaW1lb3V0TmFub3Nl
Y29uZHMgPiAwKSkgeworICAgICAgICAgICAgLy8gVGhpcyBoYW5kbGVzIGluc3RhLXRpbWVvdXRz
IGFzIHdlbGwgYXMgTmFOLgorICAgICAgICAgICAgbG9jay51bmxvY2soKTsKKyAgICAgICAgICAg
IGxvY2subG9jaygpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHJlbGF0aXZlVGltZW91dE5hbm9zZWNvbmRzID4gc3RhdGljX2Nhc3Q8ZG91Ymxl
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptYXgoKSkpIHsKKyAgICAgICAgICAgIC8v
IElmIHRoZSB0aW1lb3V0IGluIG5hbm9zZWNvbmRzIGNhbm5vdCBiZSBleHByZXNzZWQgdXNpbmcg
YSA2NC1iaXQgaW50ZWdlciwgdGhlbiB3ZQorICAgICAgICAgICAgLy8gbWlnaHQgYXMgd2VsbCB3
YWl0IGZvcmV2ZXIuCisgICAgICAgICAgICB3YWl0KGxvY2spOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGF1dG8gcmVsYXRpdmVUaW1lb3V0
ID0KKyAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyhzdGF0aWNfY2FzdDxpbnQ2
NF90PihyZWxhdGl2ZVRpbWVvdXROYW5vc2Vjb25kcykpOworCisgICAgICAgIHJldHVybiB3YWl0
Rm9ySW1wbChsb2NrLCByZWxhdGl2ZVRpbWVvdXQpOworICAgIH0KICAgICAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRHVyYXRpb25UeXBlPgorICAgIGJvb2wgd2Fp
dEZvckltcGwoTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVUaW1l
b3V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2NrLCBhYnNvbHV0ZUZyb21S
ZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEdXJhdGlvblR5cGU+CisgICAgQ2xvY2s6OnRpbWVfcG9pbnQgYWJzb2x1dGVGcm9tUmVsYXRp
dmUoY29uc3QgRHVyYXRpb25UeXBlJiByZWxhdGl2ZVRpbWVvdXQpCisgICAgeworICAgICAgICBp
ZiAocmVsYXRpdmVUaW1lb3V0IDwgRHVyYXRpb25UeXBlOjp6ZXJvKCkpCisgICAgICAgICAgICBy
ZXR1cm4gQ2xvY2s6OnRpbWVfcG9pbnQ6Om1pbigpOworCisgICAgICAgIGlmIChyZWxhdGl2ZVRp
bWVvdXQgPiBDbG9jazo6ZHVyYXRpb246Om1heCgpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGlz
IGhpZ2hseSB1bmxpa2VseS4gQnV0IGlmIGl0IGhhcHBlbnMsIHdlIHdhbnQgdG8gbm90IGRvIGFu
eXRoaW5nIGR1bWIuIFNsZWVwaW5nCisgICAgICAgICAgICAvLyB3aXRob3V0IGEgdGltZW91dCBz
ZWVtcyBzZW5zaWJsZSB3aGVuIHRoZSB0aW1lb3V0IGR1cmF0aW9uIGlzIGdyZWF0ZXIgdGhhbiB3
aGF0IGNhbiBiZQorICAgICAgICAgICAgLy8gZXhwcmVzc2VkIHVzaW5nIHN0ZWFkeV9jbG9jay4K
KyAgICAgICAgICAgIHJldHVybiBDbG9jazo6dGltZV9wb2ludDo6bWF4KCk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIENsb2NrOjpkdXJhdGlvbiBteVJlbGF0aXZlVGltZW91dCA9Cisg
ICAgICAgICAgICBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxDbG9jazo6ZHVyYXRpb24+KHJl
bGF0aXZlVGltZW91dCk7CisKKyAgICAgICAgcmV0dXJuIENsb2NrOjpub3coKSArIG15UmVsYXRp
dmVUaW1lb3V0OworICAgIH0KKwogICAgIHVpbnQ4X3QgbV9kdW1teTsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L01lc3NhZ2VRdWV1ZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9NZXNz
YWdlUXVldWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMzIsNyArMzIsOSBAQAogCiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Nyw4ICs3OSw4IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgICAgICBzdGF0aWMgZG91YmxlIGluZmluaXRlVGltZSgpIHsg
cmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCk7IH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKKyAgICAgICAg
Q29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8RGF0
YVR5cGU+PiBtX3F1ZXVlOwogICAgICAgICBib29sIG1fa2lsbGVkOwogICAgIH07CkBAIC05MSwz
NyArOTMsMzcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKHN0ZDo6
dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAg
ICAgbV9xdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRp
b24uc2lnbmFsKCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSB2b2lkIE1lc3NhZ2VR
dWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwoc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBt
ZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEY6
Om1vdmUobWVzc2FnZSkpOwogICAgICAgICBtX2tpbGxlZCA9IHRydWU7Ci0gICAgICAgIG1fY29u
ZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsKICAg
ICB9CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHF1ZXVlIHdhcyBlbXB0eSBiZWZvcmUg
dGhlIGl0ZW0gd2FzIGFkZGVkLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAg
IGlubGluZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHko
c3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwog
ICAgICAgICBib29sIHdhc0VtcHR5ID0gbV9xdWV1ZS5pc0VtcHR5KCk7CiAgICAgICAgIG1fcXVl
dWUuYXBwZW5kKFdURjo6bW92ZShtZXNzYWdlKSk7Ci0gICAgICAgIG1fY29uZGl0aW9uLnNpZ25h
bCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICAgICAgcmV0dXJuIHdh
c0VtcHR5OwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlu
bGluZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OnByZXBlbmQoc3RkOjp1bmlxdWVfcHRy
PERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVl
LnByZXBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRpb24uc2lnbmFs
KCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERhdGFUeXBlPgpAQCAtMTM3LDcgKzEzOSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgYXV0byBNZXNz
YWdlUXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQoTWVz
c2FnZVF1ZXVlV2FpdFJlc3VsdCYgcmVzdWx0LCBQcmVkaWNhdGUmJiBwcmVkaWNhdGUsIGRvdWJs
ZSBhYnNvbHV0ZVRpbWUpIC0+IHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4KICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayht
X211dGV4KTsKICAgICAgICAgYm9vbCB0aW1lZE91dCA9IGZhbHNlOwogCiAgICAgICAgIGF1dG8g
Zm91bmQgPSBtX3F1ZXVlLmVuZCgpOwpAQCAtMTQ5LDcgKzE1MSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgICAgICAgICAgaWYgKGZvdW5kICE9IG1fcXVldWUuZW5kKCkpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHRpbWVkT3V0ID0gIW1fY29uZGl0aW9uLnRpbWVkV2Fp
dChtX211dGV4LCBhYnNvbHV0ZVRpbWUpOworICAgICAgICAgICAgdGltZWRPdXQgPSAhbV9jb25k
aXRpb24ud2FpdFVudGlsV2FsbENsb2NrU2Vjb25kcyhtX211dGV4LCBhYnNvbHV0ZVRpbWUpOwog
ICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCF0aW1lZE91dCB8fCBhYnNvbHV0ZVRpbWUgIT0g
aW5maW5pdGVUaW1lKCkpOwpAQCAtMTc0LDcgKzE3Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBhdXRvIE1lc3NhZ2VRdWV1
ZTxEYXRhVHlwZT46OnRyeUdldE1lc3NhZ2UoKSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCkBAIC0xODYs
NyArMTg4LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIGF1dG8gTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6dHJ5R2V0TWVzc2Fn
ZUlnbm9yaW5nS2lsbGVkKCkgLT4gc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbXV0ZXgpOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIApAQCAtMTk3LDcgKzE5OSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVl
dWU8RGF0YVR5cGU+OjpyZW1vdmVJZihQcmVkaWNhdGUmJiBwcmVkaWNhdGUpCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV9tdXRleCk7CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBhdXRvIGZvdW5k
ID0gbV9xdWV1ZS5maW5kSWYoWyZwcmVkaWNhdGVdKGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxEYXRh
VHlwZT4mIHB0cikgLT4gYm9vbCB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHB0cik7CkBAIC0y
MTQsNyArMjE2LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0
YVR5cGU+CiAgICAgaW5saW5lIGJvb2wgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6aXNFbXB0eSgp
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gbV9xdWV1ZS5pc0VtcHR5KCk7CkBAIC0yMjMs
MTUgKzIyNSwxNSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRh
VHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpraWxsKCkKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9raWxsZWQgPSB0cnVlOwotICAgICAgICBtX2Nv
bmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGJvb2wg
TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbGVkKCkgY29uc3QKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4
KTsKICAgICAgICAgcmV0dXJuIG1fa2lsbGVkOwogICAgIH0KIH0gLy8gbmFtZXNwYWNlIFdURgpJ
bmRleDogU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDUsMTcgKzEwNSwxNyBAQCBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVh
ZFByaXZhdGU6CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6ZXhl
Y3V0ZShUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgdm9pZCogcGFyYW1ldGVycykKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211
dGV4KTsKIAogICAgIG1fdGhyZWFkRnVuY3Rpb24gPSB0aHJlYWRGdW5jdGlvbjsKICAgICBtX3Bh
cmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgIG1fcnVubmluZyA9IHRydWU7Ci0gICAgbV90aHJl
YWRDb25kaXRpb24uc2lnbmFsKCk7CisgICAgbV90aHJlYWRDb25kaXRpb24ubm90aWZ5T25lKCk7
CiB9CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZp
bmlzaCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CiAKICAgICB3aGlsZSAobV9ydW5uaW5nKQogICAgICAgICBtX3RocmVh
ZENvbmRpdGlvbi53YWl0KG1fbXV0ZXgpOwpAQCAtMTI0LDE0ICsxMjQsMTQgQEAgdm9pZCBQYXJh
bGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOgogdm9pZCBQYXJhbGxlbEVudmlyb25tZW50
OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJUaHJlYWQodm9pZCogdGhyZWFkRGF0YSkKIHsKICAgICBU
aHJlYWRQcml2YXRlKiBzaGFyZWRUaHJlYWQgPSByZWludGVycHJldF9jYXN0PFRocmVhZFByaXZh
dGUqPih0aHJlYWREYXRhKTsKLSAgICBNdXRleExvY2tlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CiAKICAg
ICB3aGlsZSAoc2hhcmVkVGhyZWFkLT5tX3RocmVhZElEKSB7CiAgICAgICAgIGlmIChzaGFyZWRU
aHJlYWQtPm1fcnVubmluZykgewogICAgICAgICAgICAgKCpzaGFyZWRUaHJlYWQtPm1fdGhyZWFk
RnVuY3Rpb24pKHNoYXJlZFRocmVhZC0+bV9wYXJhbWV0ZXJzKTsKICAgICAgICAgICAgIHNoYXJl
ZFRocmVhZC0+bV9ydW5uaW5nID0gZmFsc2U7CiAgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1f
cGFyZW50ID0gMDsKLSAgICAgICAgICAgIHNoYXJlZFRocmVhZC0+bV90aHJlYWRDb25kaXRpb24u
c2lnbmFsKCk7CisgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1fdGhyZWFkQ29uZGl0aW9uLm5v
dGlmeU9uZSgpOwogICAgICAgICB9CiAKICAgICAgICAgc2hhcmVkVGhyZWFkLT5tX3RocmVhZENv
bmRpdGlvbi53YWl0KHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAKIAog
I2lmIEVOQUJMRShUSFJFQURJTkdfR0VORVJJQykKIAorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Niw4ICs3OCw4IEBAIHB1YmxpYzoKICAg
ICAgICAgYm9vbCBtX3J1bm5pbmc7CiAgICAgICAgIFBhcmFsbGVsRW52aXJvbm1lbnQqIG1fcGFy
ZW50OwogCi0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29u
ZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsK
KyAgICAgICAgQ29uZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOwogCiAgICAgICAgIFRocmVhZEZ1
bmN0aW9uIG1fdGhyZWFkRnVuY3Rpb247CiAgICAgICAgIHZvaWQqIG1fcGFyYW1ldGVyczsKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1BhcmtpbmdMb3QuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0
Zi9QYXJraW5nTG90LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTExLDcgKzUxMSw3IEBAIGJvb2wg
UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHkoCiAgICAgY29uc3Qgdm9pZCogYWRkcmVzcywK
ICAgICBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4gdmFsaWRhdGlvbiwKICAgICBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gYmVmb3JlU2xlZXAsCi0gICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0KQorICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiB7CiAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2codG9TdHJpbmcoY3VycmVudFRocmVhZCgpLCAi
OiBwYXJraW5nLlxuIikpOwpAQCAtNTM5LDExICs1MzksMTEgQEAgYm9vbCBQYXJraW5nTG90Ojpw
YXJrQ29uZGl0aW9uYWxseSgKICAgICBib29sIGRpZEdldERlcXVldWVkOwogICAgIHsKICAgICAg
ICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrZXIobWUtPnBhcmtpbmdMb2NrKTsK
LSAgICAgICAgd2hpbGUgKG1lLT5hZGRyZXNzICYmIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
Om5vdygpIDwgdGltZW91dCkgeworICAgICAgICB3aGlsZSAobWUtPmFkZHJlc3MgJiYgQ2xvY2s6
Om5vdygpIDwgdGltZW91dCkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyBwcmV0dHkgZnVubnku
IE9uIExpbnV4LCBpZiB5b3Ugd2FpdCB1bnRpbCB0aGUgbWF4IHRpbWUsIGl0IGltbWVkaWF0ZWx5
IHJlcG9ydHMgdGhhdCB5b3UgdGltZWQKICAgICAgICAgICAgIC8vIG91dC4gV2hhdCdzIHBhcnRp
Y3VsYXJseSBiYWQgYWJvdXQgdGhpcyBpcyB0aGF0IGl0IG5ldmVyIHJlbGVhc2VzIHRoZSBsb2Nr
IGluIHRoYXQgY2FzZS4gU28sIHlvdSBsb29wCiAgICAgICAgICAgICAvLyBmb3JldmVyIHdpdGhv
dXQgeWllbGRpbmcgdG8gdGhlIHRocmVhZCB0aGF0IHdvdWxkIHdha2UgeW91IHVwLgotICAgICAg
ICAgICAgaWYgKHRpbWVvdXQgPT0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2lu
dDo6bWF4KCkpCisgICAgICAgICAgICBpZiAodGltZW91dCA9PSBDbG9jazo6dGltZV9wb2ludDo6
bWF4KCkpCiAgICAgICAgICAgICAgICAgbWUtPnBhcmtpbmdDb25kaXRpb24ud2FpdChsb2NrZXIp
OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1lLT5wYXJraW5nQ29uZGl0aW9u
LndhaXRfdW50aWwobG9ja2VyLCB0aW1lb3V0KTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1Bhcmtp
bmdMb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmgJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNiArMzgsOCBAQCBjbGFzcyBQYXJraW5nTG90IHsKICAgICBQYXJraW5nTG90KGNv
bnN0IFBhcmtpbmdMb3QmKSA9IGRlbGV0ZTsKIAogcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jayBDbG9jazsKKyAgICAKICAgICAvLyBQYXJrcyB0aGUgdGhyZWFk
IGluIGEgcXVldWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBhZGRyZXNzLCB3aGljaCBjYW5u
b3QgYmUgbnVsbC4gVGhlCiAgICAgLy8gcGFya2luZyBvbmx5IHN1Y2NlZWRzIGlmIHRoZSB2YWxp
ZGF0aW9uIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSB3aGlsZSB0aGUgcXVldWUgbG9jayBpcyBoZWxk
LgogICAgIC8vIElmIHZhbGlkYXRpb24gcmV0dXJucyBmYWxzZSwgaXQgd2lsbCB1bmxvY2sgdGhl
IGludGVybmFsIHBhcmtpbmcgcXVldWUgYW5kIHRoZW4gaXQgd2lsbApAQCAtNTMsNyArNTUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IHZvaWQqIGFkZHJlc3MsCiAgICAgICAgIHN0ZDo6ZnVu
Y3Rpb248Ym9vbCgpPiB2YWxpZGF0aW9uLAogICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4g
YmVmb3JlU2xlZXAsCi0gICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9p
bnQgdGltZW91dCk7CisgICAgICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpOwogCiAgICAg
Ly8gU2ltcGxlIHZlcnNpb24gb2YgcGFya0NvbmRpdGlvbmFsbHkoKSB0aGF0IGNvdmVycyB0aGUg
bW9zdCBjb21tb24gY2FzZTogeW91IHdhbnQgdG8gcGFyawogICAgIC8vIGluZGVmaW5pdGVseSBz
byBsb25nIGFzIHRoZSB2YWx1ZSBhdCB0aGUgZ2l2ZW4gYWRkcmVzcyBoYXNuJ3QgY2hhbmdlZC4K
QEAgLTY3LDcgKzY5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9
PSBleHBlY3RlZDsKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICBbXSAoKSB7IH0sCi0gICAg
ICAgICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7Cisg
ICAgICAgICAgICBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIC8vIFVu
cGFya3Mgb25lIHRocmVhZCBmcm9tIHRoZSBxdWV1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVu
IGFkZHJlc3MsIHdoaWNoIGNhbm5vdCBiZSBudWxsLgpAQCAtMTAzLDcgKzEwNSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBBMSxUMSBBMixUMyBBMSxUMiBBMixUNAogICAgIC8vIEExLFQxIEEyLFQzIEEy
LFQ0IEExLFQyCiAgICAgLy8KLSAgICAvLyBBcyB3ZWxsIGFzIG1hbnkgb3RoZXIgcG9zc2libGUg
aW50ZXJsZWF2ZXMgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBi
dXQgYXJlCisgICAgLy8gQXMgd2VsbCBhcyBtYW55IG90aGVyIHBvc3NpYmxlIGludGVybGVhdmlu
Z3MgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBidXQgYXJlCiAg
ICAgLy8gb3RoZXJ3aXNlIHVuY29uc3RyYWluZWQuIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBwcmlt
YXJpbHkgZm9yIGRlYnVnZ2luZy4gSXQncyBhbHNvIHVzZWQgYnkgdW5pdAogICAgIC8vIHRlc3Rz
LgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBmb3JFYWNoKHN0ZDo6ZnVuY3Rp
b248dm9pZChUaHJlYWRJZGVudGlmaWVyLCBjb25zdCB2b2lkKik+KTsKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDcgKzEyNiw2
IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgVGhyZWFkSWRlbnRpZmllckRhdGE6
OmluaXRpYWxpemVPbmNlKCk7CiAgICAgU3RhY2tTdGF0czo6aW5pdGlhbGl6ZSgpOwogICAgIHd0
ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAgIGluaXRp
YWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHJldmlzaW9u
IDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2NSw3ICsxNjUsNiBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogICAgIHRo
cmVhZE1hcE11dGV4KCk7CiAgICAgaW5pdGlhbGl6ZVJhbmRvbU51bWJlckdlbmVyYXRvcigpOwog
ICAgIHd0ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAg
IGluaXRpYWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi93dGYvZHRvYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBA
CiAgKiBUaGUgYXV0aG9yIG9mIHRoaXMgc29mdHdhcmUgaXMgRGF2aWQgTS4gR2F5LgogICoKICAq
IENvcHlyaWdodCAoYykgMTk5MSwgMjAwMCwgMjAwMSBieSBMdWNlbnQgVGVjaG5vbG9naWVzLgot
ICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMiwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCwgMjAxMiwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwg
YW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CiAgKiBwdXJwb3NlIHdpdGhvdXQg
ZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoaXMgZW50aXJlIG5vdGljZQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImR0b2EuaCIKIAogI2luY2x1ZGUgPHN0ZGlvLmg+
CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01NCw3
ICs1NSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1NdXRleCogc19kdG9hUDVNdXRleDsKK3N0
YXRpYyBTdGF0aWNMb2NrIHNfZHRvYVA1TXV0ZXg7CiAKIHR5cGVkZWYgdW5pb24gewogICAgIGRv
dWJsZSBkOwpAQCAtMzc1LDcgKzM3Niw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93
NW11bHQoQmlnSW4KICAgICBpZiAoIShrID4+PSAyKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
c19kdG9hUDVNdXRleC0+bG9jaygpOworICAgIHNfZHRvYVA1TXV0ZXgubG9jaygpOwogICAgIFA1
Tm9kZSogcDUgPSBwNXM7CiAKICAgICBpZiAoIXA1KSB7CkBAIC0zODgsNyArMzg5LDcgQEAgc3Rh
dGljIEFMV0FZU19JTkxJTkUgdm9pZCBwb3c1bXVsdChCaWdJbgogICAgIH0KIAogICAgIGludCBw
NXNDb3VudExvY2FsID0gcDVzQ291bnQ7Ci0gICAgc19kdG9hUDVNdXRleC0+dW5sb2NrKCk7Cisg
ICAgc19kdG9hUDVNdXRleC51bmxvY2soKTsKICAgICBpbnQgcDVzVXNlZCA9IDA7CiAKICAgICBm
b3IgKDs7KSB7CkBAIC0zOTksNyArNDAwLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBw
b3c1bXVsdChCaWdJbgogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKCsrcDVzVXNl
ZCA9PSBwNXNDb3VudExvY2FsKSB7Ci0gICAgICAgICAgICBzX2R0b2FQNU11dGV4LT5sb2NrKCk7
CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LmxvY2soKTsKICAgICAgICAgICAgIGlmIChwNXNV
c2VkID09IHA1c0NvdW50KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFwNS0+bmV4dCk7CiAg
ICAgICAgICAgICAgICAgcDUtPm5leHQgPSBuZXcgUDVOb2RlOwpAQCAtNDEwLDcgKzQxMSw3IEBA
IHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93NW11bHQoQmlnSW4KICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgcDVzQ291bnRMb2NhbCA9IHA1c0NvdW50OwotICAgICAgICAgICAgc19k
dG9hUDVNdXRleC0+dW5sb2NrKCk7CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LnVubG9jaygp
OwogICAgICAgICB9CiAgICAgICAgIHA1ID0gcDUtPm5leHQ7CiAgICAgfQpJbmRleDogU291cmNl
L1dURi93dGYvZHRvYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2R0b2EuaAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93dGYvZHRvYS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCwxMCArMjgsNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotY2xhc3MgTXV0ZXg7Ci0KLWV4
dGVybiBNdXRleCogc19kdG9hUDVNdXRleDsKLQogdHlwZWRlZiBjaGFyIER0b2FCdWZmZXJbODBd
OwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdG9hKER0b2FCdWZmZXIgcmVzdWx0LCBkb3Vi
bGUgZGQsIGJvb2wmIHNpZ24sIGludCYgZXhwb25lbnQsIHVuc2lnbmVkJiBwcmVjaXNpb24pOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjc0IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5n
IHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugbm8gbmV3IGJl
aGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29k
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3ApOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbUF1ZGlvU291cmNlOjphZGRBdWRpb0NvbnN1bWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6c2V0QXVkaW9Gb3JtYXQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBs
ZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6aGFzUGVuZGluZ1RyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjp0YXNrQ29tcGxldGVkKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJl
YWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRo
cmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZXRyeUNhbkVzdGFibGlzaERh
dGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6aGFzRW50cnlGb3JP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRNYXhTaXplRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpjbG9zZUFsbERh
dGFiYXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmZ1bGxQYXRoRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpvcmlnaW5zKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZGF0YWJhc2VOYW1lc0Zvck9yaWdp
bik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmRldGFpbHNGb3JOYW1lQW5k
T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VE
ZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZG9uZUNyZWF0aW5n
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZW1vdmVPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRPcGVuRGF0YWJh
c2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3JpZ2luTG9ja0Zvcik6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnF1b3RhRm9yT3JpZ2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0UXVvdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OnJlbW92ZURlbGV0ZWRPcGVuZWREYXRhYmFzZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGVJZkVtcHR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNlTXV0ZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bm90aWZpY2F0aW9uTXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2Vy
OjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6Om5vdGlmeURhdGFiYXNlc0NoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxs
YmFja1dyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTENhbGxiYWNrV3JhcHBlcjo6Y2xl
YXIpOgorICAgICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjp1bndyYXApOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjpoYXNDYWxsYmFjayk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXApOgorICAgICAgICAo
V2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjplbnF1ZXVlU3RhdGVtZW50QmFja2VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmdldE5leHRTdGF0ZW1l
bnQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5k
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpzY2hlZHVsZUV4ZWN1dGlv
blRlcm1pbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6
OmlzRXhlY3V0aW9uVGVybWluYXRpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OnBv
c3RNZXNzYWdlVG9SZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVs
Ojp0cnlHZXRNZXNzYWdlRnJvbVJlbW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWw6OmlzQ29ubmVjdGVkVG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRD
aGFubmVsOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBv
cnRDaGFubmVsOjpsb2NhbGx5RW50YW5nbGVkUG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6c2V0UmVtb3RlUG9ydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6ZW50YW5nbGVkQ2hhbm5lbCk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y2xvc2VJbnRlcm5hbCk6Cisg
ICAgICAgICogZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaDoKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNv
bkRhdGFiYXNlOjpyZW1vdmVBbGxJY29ucyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRh
dGFiYXNlOjpzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYkNv
cmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTCk6CisgICAgICAg
IChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAgICAgICAg
KFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29uRm9yUGFnZVVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJM
KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNMb2FkRGVjaXNp
b25Gb3JJY29uVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25v
dXNJY29uRGF0YUtub3duRm9ySWNvblVSTCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnBhZ2VVUkxNYXBwaW5nQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpyZXRhaW5lZFBhZ2VVUkxDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6
Omljb25SZWNvcmRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omljb25S
ZWNvcmRDb3VudFdpdGhEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6d2Fr
ZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpzY2hlZHVsZU9y
RGVmZXJTeW5jVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjppc09wZW5C
ZXNpZGVzTWFpblRocmVhZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OmdldE9y
Q3JlYXRlUGFnZVVSTFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omlj
b25EYXRhYmFzZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpw
ZXJmb3JtT3BlbkluaXRpYWxpemF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cGVyZm9ybVVSTEltcG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnN5
bmNUaHJlYWRNYWluTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnBlcmZv
cm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SWNvbkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25E
YXRhYmFzZTo6d3JpdGVUb0RhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cHJ1bmVVbnJldGFpbmVkSWNvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpjbGVhbnVwU3luY1RocmVhZCk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25v
dXNseSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Ny
b2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aXNQb2ludElu
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjpzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZTo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1Njcm9sbFNuYXBwaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldENhblJ1YmJlckJhbmRTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVmdCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0UmlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxQaW5uaW5nQmVoYXZpb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpjbGVhckxhdGNoZWROb2RlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6d2FpdEZvckxvYWRlclRo
cmVhZENvbXBsZXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxv
YWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXRSZWNl
aXZlZE1lbW9yeVByZXNzdXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6Y2xlYXJNZW1vcnlQcmVzc3VyZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OnNob3VsZFdhaXRGb3JNZW1vcnlDbGVhck1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUlm
TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5
RGlkUmVmcmVzaCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnNldE1v
bm90b25pY0FuaW1hdGlvblN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3I6Om11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0RGVsYXlDYWxsYmFja3MpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1h
aW5UaHJlYWRQZW5kaW5nRmxhZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246OmRpc3BhdGNoTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6
OmNhbGxiYWNrQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjp+QVZGV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjptYXBMb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6OkFWRldyYXBwZXI6OmFkZFRvTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldy
YXBwZXI6OnJlbW92ZUZyb21NYXApOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cGVy
aW9kaWNUaW1lT2JzZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVy
Ojpwcm9jZXNzTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6Omxv
YWRQbGF5YWJsZUNvbXBsZXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFw
cGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
QVZGV3JhcHBlcjo6c2Vla0NvbXBsZXRlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFW
RldyYXBwZXI6OnByb2Nlc3NDdWUpOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6bGVn
aWJsZU91dHB1dENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OnByb2Nl
c3NTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6QVZG
V3JhcHBlcjo6cmVzb3VyY2VMb2FkZXJTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVxdWVzdGVkUmVz
b3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFj
a1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXI6OnRhZ3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6cmVxdWVz
dFJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjphZGRMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OnJlbW92ZUxp
c3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbjo6bm90aWZ5RGVsZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Okludm9rZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Om9u
TWVkaWFQbGF5ZXJEZWxldGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L0xlZ2FjeVRpbGVDYWNoZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2Fj
aGUubW06CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRpbGVzT3BhcXVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6ZG9MYXlvdXRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldEN1cnJlbnRTY2FsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmNvbW1pdFNjYWxlQ2hhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6bGF5b3V0VGlsZXNOb3cpOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpsYXlvdXRUaWxlc05vd0ZvclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxUaWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUZvcmVncm91bmRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldENvbnRlbnRSZXBsYWNlbWVudElt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6Y29udGVudFJlcGxhY2Vt
ZW50SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjp0aWxlQ3JlYXRp
b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0TmVl
ZHNEaXNwbGF5SW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dXBk
YXRlVGlsaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRp
bGluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpkb1BlbmRpbmdS
ZXBhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmZsdXNoU2F2ZWRE
aXNwbGF5UmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpwcmVwYXJl
VG9EcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6YWRkTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6dGFrZUxheWVyV2l0aFNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6cHJ1bmUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5
VGlsZUxheWVyUG9vbDo6ZHJhaW4pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsRG93bmxvYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnJlbW92ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjpnZXRBY3RpdmVEb3dubG9hZENv
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OmdldFBlbmRpbmdE
b3dubG9hZENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnN0
b3BUaHJlYWRJZklkbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
dXBkYXRlSGFuZGxlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6On5DdXJs
RG93bmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjppbml0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Z2V0VGVtcFBhdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybERvd25sb2FkOjpnZXRVcmwpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2Fk
OjpnZXRSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmNsb3NlRmls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVIZWFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZEZhaWwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZUph
clBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkUmVzb3VyY2VNdXRleCk6CisgICAgICAg
IChXZWJDb3JlOjpjdXJsX2xvY2tfY2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Y3VybF91
bmxvY2tfY2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9v
ay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlFMRGlyZWN0b3J5QXR0cmlidXRlcyk6CisgICAgICAg
IChxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6
YWRkUUxQcmV2aWV3Q29udmVydGVyV2l0aEZpbGVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
cWxQcmV2aWV3Q29udmVydGVyVVRJRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVFM
UHJldmlld0NvbnZlcnRlckZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpzYWZlUUxVUkxGb3JE
b2N1bWVudFVSTEFuZFJlc291cmNlVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmNsb3NlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjptYXhpbXVtU2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6c2V0TWF4aW11bVNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6OnBhZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0
ZURhdGFiYXNlOjpmcmVlU3BhY2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFi
YXNlOjp0b3RhbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnJ1bklu
Y3JlbWVudGFsVmFjdXVtQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFz
ZTo6c2V0QXV0aG9yaXplcik6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6ZGF0YWJhc2VNdXRleCk6Cisg
ICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTUUxpdGVTdGF0ZW1lbnQ6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRl
U3RhdGVtZW50OjpzdGVwKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZDo6c3RvcCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKwogMjAxNS0w
OC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCBjb25zdCB0byBjb250ZW50IGV4dGVuc2lvbiBwYXJzZXIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3Bw
CShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Fz
eW5jQXVkaW9EZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29kZXIoKQog
ewogICAgIC8vIFN0YXJ0IHdvcmtlciB0aHJlYWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3Ro
cmVhZENyZWF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOwogICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6
OnRocmVhZEVudHJ5LCB0aGlzLCAiQXVkaW8gRGVjb2RlciIpOwogfQogCkBAIC03Niw3ICs3Niw3
IEBAIHZvaWQgQXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3AoKQogCiAgICAgewogICAgICAgICAv
LyBXYWl0IGZvciB1bnRpbCB3ZSBoYXZlIG1fdGhyZWFkSUQgZXN0YWJsaXNoZWQgYmVmb3JlIHN0
YXJ0aW5nIHRoZSBydW4gbG9vcC4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENy
ZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11
dGV4KTsKICAgICB9CiAKICAgICAvLyBLZWVwIHJ1bm5pbmcgZGVjb2RpbmcgdGFza3MgdW50aWwg
d2UncmUga2lsbGVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3lu
Y0F1ZGlvRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5Mb29wKCk7CiAKICAgICBX
VEY6OlRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJRDsKLSAgICBNdXRleCBtX3RocmVhZENyZWF0
aW9uTXV0ZXg7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgTWVzc2FnZVF1
ZXVlPERlY29kaW5nVGFzaz4gbV9xdWV1ZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzgwLDcgKzM4MCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb25uZWN0
aW9uQ291bnQgeyAwIH07CiAKICAgICAvLyBHcmFwaCBsb2NraW5nLgotICAgIE11dGV4IG1fY29u
dGV4dEdyYXBoTXV0ZXg7CisgICAgTG9jayBtX2NvbnRleHRHcmFwaE11dGV4OwogICAgIHZvbGF0
aWxlIFRocmVhZElkZW50aWZpZXIgbV9hdWRpb1RocmVhZCB7IDAgfTsKICAgICB2b2xhdGlsZSBU
aHJlYWRJZGVudGlmaWVyIG1fZ3JhcGhPd25lclRocmVhZDsgLy8gaWYgdGhlIGxvY2sgaXMgaGVs
ZCB0aGVuIHRoaXMgaXMgdGhlIHRocmVhZCB3aGljaCBvd25zIGl0LCBvdGhlcndpc2UgPT0gVW5k
ZWZpbmVkVGhyZWFkSWRlbnRpZmllcgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDEzICs2MywxMyBAQCBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBNZWRpYVN0CiAKIHZvaWQgTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZTo6YWRkQXVkaW9Db25zdW1lcihQYXNzUmVmUHRyPEF1ZGlvRGVzdGluYXRpb25D
b25zdW1lcj4gY29uc3VtZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXVkaW9Db25z
dW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7
CiAgICAgbV9hdWRpb0NvbnN1bWVycy5hcHBlbmQoY29uc3VtZXIpOwogfQogCiBib29sIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIoQXVkaW9EZXN0aW5hdGlvbkNv
bnN1bWVyKiBjb25zdW1lcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdWRpb0NvbnN1
bWVyc0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsK
ICAgICBzaXplX3QgcG9zID0gbV9hdWRpb0NvbnN1bWVycy5maW5kKGNvbnN1bWVyKTsKICAgICBp
ZiAocG9zICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIG1fYXVkaW9Db25zdW1lcnMucmVtb3ZlKHBv
cyk7CkBAIC04MCwxNCArODAsMTQgQEAgYm9vbCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpyZW1v
dmVBdWRpbwogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnNldEF1ZGlvRm9ybWF0KHNp
emVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9hdWRpb0NvbnN1bWVyc0xvY2spOwogICAgIGZvciAoYXV0byYgY29uc3VtZXIgOiBtX2F1ZGlv
Q29uc3VtZXJzKQogICAgICAgICBjb25zdW1lci0+c2V0Rm9ybWF0KG51bWJlck9mQ2hhbm5lbHMs
IHNhbXBsZVJhdGUpOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVB
dWRpbyhBdWRpb0J1cyogYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CiAgICAgZm9yIChhdXRvJiBjb25zdW1lciA6IG1fYXVk
aW9Db25zdW1lcnMpCiAgICAgICAgIGNvbnN1bWVyLT5jb25zdW1lQXVkaW8oYnVzLCBudW1iZXJP
ZkZyYW1lcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvRGVzdGlu
YXRpb25Db25zdW1lci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02
NSw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpOwogCiAg
ICAgU3RyaW5nIG1fZGV2aWNlSWQ7Ci0gICAgTXV0ZXggbV9hdWRpb0NvbnN1bWVyc0xvY2s7Cisg
ICAgTG9jayBtX2F1ZGlvQ29uc3VtZXJzTG9jazsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvRGVz
dGluYXRpb25Db25zdW1lcj4+IG1fYXVkaW9Db25zdW1lcnM7CiAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlcyBtX2N1cnJlbnRTdGF0ZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysr
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xvc2UoKQogICAgIEFT
U0VSVChjdXJyZW50VGhyZWFkKCkgPT0gZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFk
KCktPmdldFRocmVhZElEKCkpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOwogCiAgICAgICAgIC8vIENsZWFuIHVwIHRy
YW5zYWN0aW9ucyB0aGF0IGhhdmUgbm90IGJlZW4gc2NoZWR1bGVkIHlldDoKICAgICAgICAgLy8g
VHJhbnNhY3Rpb24gcGhhc2UgMSBjbGVhbnVwLiBTZWUgY29tbWVudCBvbiAiV2hhdCBoYXBwZW5z
IGlmIGEKQEAgLTM1Myw3ICszNTMsNyBAQCBib29sIERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZl
cmlmeShib29sCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHsKICAgICAgICAgLy8gTWFrZSBzdXJl
IHdlIHdhaXQgdGlsbCB0aGUgYmFja2dyb3VuZCByZW1vdmFsIG9mIHRoZSBlbXB0eSBkYXRhYmFz
ZSBmaWxlcyBmaW5pc2hlZCBiZWZvcmUgdHJ5aW5nIHRvIG9wZW4gYW55IGRhdGFiYXNlLgotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIoRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRl
eCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0
YWJhc2VNdXRleCgpKTsKICAgICB9CiAjZW5kaWYKIApAQCAtNTY1LDcgKzU2NSw3IEBAIHZvaWQg
RGF0YWJhc2U6OnNjaGVkdWxlVHJhbnNhY3Rpb24oKQogCiBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0
aW9uQmFja2VuZD4gRGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FMVHJhbnNh
Y3Rpb24+IHRyYW5zYWN0aW9uLCBib29sIHJlYWRPbmx5LCBjb25zdCBDaGFuZ2VWZXJzaW9uRGF0
YSogZGF0YSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jl
c3NNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NN
dXRleCk7CiAgICAgaWYgKCFtX2lzVHJhbnNhY3Rpb25RdWV1ZUVuYWJsZWQpCiAgICAgICAgIHJl
dHVybiAwOwogCkBAIC01OTMsMTQgKzU5MywxNCBAQCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRy
YW5zYWN0aW9uU3RlcChTCiAKIHZvaWQgRGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNv
bXBsZXRlZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dy
ZXNzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dyZXNz
TXV0ZXgpOwogICAgIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzID0gZmFsc2U7CiAgICAgc2NoZWR1
bGVUcmFuc2FjdGlvbigpOwogfQogCiBib29sIERhdGFiYXNlOjpoYXNQZW5kaW5nVHJhbnNhY3Rp
b24oKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4
KTsKICAgICByZXR1cm4gbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3MgfHwgIW1fdHJhbnNhY3Rpb25R
dWV1ZS5pc0VtcHR5KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlRXJyb3IuaCIK
ICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2Miw3ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxEYXRhYmFzZUF1dGhvcml6ZXI+IG1fZGF0YWJhc2VBdXRob3JpemVyOwogCiAgICAgRGVxdWU8
UmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4+IG1fdHJhbnNhY3Rpb25RdWV1ZTsKLSAgICBN
dXRleCBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4OworICAgIExvY2sgbV90cmFuc2FjdGlv
bkluUHJvZ3Jlc3NNdXRleDsKICAgICBib29sIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzOwogICAg
IGJvb2wgbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFibGVkOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VGFzay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUzLDcgKzUz
LDcgQEAgdm9pZCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6OnRhc2tDb21wbAogewogICAgIG1f
c3luY2hyb25vdXNNdXRleC5sb2NrKCk7CiAgICAgbV90YXNrQ29tcGxldGVkID0gdHJ1ZTsKLSAg
ICBtX3N5bmNocm9ub3VzQ29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1fc3luY2hyb25vdXNDb25k
aXRpb24ubm90aWZ5T25lKCk7CiAgICAgbV9zeW5jaHJvbm91c011dGV4LnVubG9jaygpOwogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUYXNrLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMxLDggKzMxLDkgQEAKICNpbmNsdWRlICJEYXRhYmFzZUJhc2ljVHlwZXMuaCIKICNp
bmNsdWRlICJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25CYWNrZW5k
LmgiCisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC01OCw4ICs1OSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBib29sIG1fdGFza0Nv
bXBsZXRlZDsKLSAgICBNdXRleCBtX3N5bmNocm9ub3VzTXV0ZXg7Ci0gICAgVGhyZWFkQ29uZGl0
aW9uIG1fc3luY2hyb25vdXNDb25kaXRpb247CisgICAgTG9jayBtX3N5bmNocm9ub3VzTXV0ZXg7
CisgICAgQ29uZGl0aW9uIG1fc3luY2hyb25vdXNDb25kaXRpb247CiAjaWZuZGVmIE5ERUJVRwog
ICAgIGJvb2wgbV9oYXNDaGVja2VkRm9yVGVybWluYXRpb247CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBE
YXRhYmFzZVRocmVhZDo6fkRhdGFiYXNlVGhyZWFkKCkKIAogYm9vbCBEYXRhYmFzZVRocmVhZDo6
c3RhcnQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKIAogICAgIGlmICht
X3RocmVhZElEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lk
IERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZCgpCiB7CiAgICAgewogICAgICAgICAvLyBX
YWl0IGZvciBEYXRhYmFzZVRocmVhZDo6c3RhcnQoKSB0byBjb21wbGV0ZS4KLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJT
dGFydGVkIERhdGFiYXNlVGhyZWFkICVwIiwgdGhpcyk7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCShy
ZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgdm9pZCBkYXRhYmFzZVRocmVhZFN0YXJ0KHZvaWQqKTsKICAgICB2b2lkIGRh
dGFiYXNlVGhyZWFkKCk7CiAKLSAgICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CisgICAg
TG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVh
ZElEOwogICAgIFJlZlB0cjxEYXRhYmFzZVRocmVhZD4gbV9zZWxmUmVmOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNr
ZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcg
QEAgRGF0YWJhc2VUcmFja2VyOjpEYXRhYmFzZVRyYWNrZXIoY29uc3QgUwogCiB2b2lkIERhdGFi
YXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIEFTU0VSVCghbV9k
YXRhYmFzZS5pc09wZW4oKSk7CiAgICAgbV9kYXRhYmFzZURpcmVjdG9yeVBhdGggPSBwYXRoLmlz
b2xhdGVkQ29weSgpOwogfQpAQCAtMTY2LDcgKzE2Niw3IEBAIGJvb2wgRGF0YWJhc2VUcmFja2Vy
OjpjYW5Fc3RhYmxpc2hEYXRhYmEKIHsKICAgICBlcnJvciA9IERhdGFiYXNlRXJyb3I6Ok5vbmU7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIFNlY3VyaXR5T3Jp
Z2luKiBvcmlnaW4gPSBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpOwogCiAgICAgaWYgKGlzRGVs
ZXRpbmdEYXRhYmFzZU9yT3JpZ2luRm9yKG9yaWdpbiwgbmFtZSkpIHsKQEAgLTIxOCw3ICsyMTgs
NyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6cmV0cnlDYW5Fc3RhYmxpc2hECiB7CiAgICAgZXJy
b3IgPSBEYXRhYmFzZUVycm9yOjpOb25lOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNl
KG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFz
ZUd1YXJkKTsKICAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gY29udGV4dC0+c2VjdXJpdHlP
cmlnaW4oKTsKIAogICAgIC8vIFdlIGhhdmUgYWxyZWFkeSBlbGltaW5hdGVkIG90aGVyIHR5cGVz
IG9mIGVycm9ycyBpbiBjYW5Fc3RhYmxpc2hEYXRhYmFzZSgpLgpAQCAtMjU3LDcgKzI1Nyw3IEBA
IGJvb2wgRGF0YWJhc2VUcmFja2VyOjpoYXNFbnRyeUZvck9yaWdpbk4KIAogYm9vbCBEYXRhYmFz
ZVRyYWNrZXI6Omhhc0VudHJ5Rm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hv
bGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICByZXR1cm4gaGFzRW50cnlG
b3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKIH0KIApAQCAtMjg2LDcgKzI4Niw3IEBAIHVuc2lnbmVk
IGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OmdldE0KIHsKICAgICAvLyBUaGUgbWF4aW11bSBz
aXplIGZvciBhIGRhdGFiYXNlIGlzIHRoZSBmdWxsIHF1b3RhIGZvciBpdHMgb3JpZ2luLCBtaW51
cyB0aGUgY3VycmVudCB1c2FnZSB3aXRoaW4gdGhlIG9yaWdpbiwKICAgICAvLyBwbHVzIHRoZSBj
dXJyZW50IHVzYWdlIG9mIHRoZSBnaXZlbiBkYXRhYmFzZQotICAgIE11dGV4TG9ja2VyIGxvY2tE
YXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1f
ZGF0YWJhc2VHdWFyZCk7CiAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGRhdGFiYXNlLT5z
ZWN1cml0eU9yaWdpbigpOwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhID0gcXVvdGFG
b3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKQEAgLTMxMSw3ICszMTEsNyBAQCB2b2lkIERhdGFiYXNl
VHJhY2tlcjo6Y2xvc2VBbGxEYXRhYmFzZXMoCiB7CiAgICAgVmVjdG9yPFJlZjxEYXRhYmFzZT4+
IG9wZW5EYXRhYmFzZXM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBvcGVuRGF0YWJhc2VN
YXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAgICBMb2NrSG9sZGVyIG9wZW5E
YXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CiAgICAgICAgIGlmICghbV9v
cGVuRGF0YWJhc2VNYXApCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGZvciAoYXV0byYg
bmFtZU1hcCA6IG1fb3BlbkRhdGFiYXNlTWFwLT52YWx1ZXMoKSkgewpAQCAtMzg5LDEzICszODks
MTMgQEAgU3RyaW5nIERhdGFiYXNlVHJhY2tlcjo6ZnVsbFBhdGhGb3JEYXRhYgogCiBTdHJpbmcg
RGF0YWJhc2VUcmFja2VyOjpmdWxsUGF0aEZvckRhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5vdEV4aXN0cykKIHsKLSAgICBN
dXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIHJldHVybiBmdWxsUGF0aEZvckRh
dGFiYXNlTm9Mb2NrKG9yaWdpbiwgbmFtZSwgY3JlYXRlSWZOb3RFeGlzdHMpLmlzb2xhdGVkQ29w
eSgpOwogfQogCiB2b2lkIERhdGFiYXNlVHJhY2tlcjo6b3JpZ2lucyhWZWN0b3I8UmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPj4mIG9yaWdpbnNSZXN1bHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0Rh
dGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKIAogICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9l
c05vdEV4aXN0KTsKICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCkBAIC00NDgsNyArNDQ4
LDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRhdGFiYXNlTmFtZXNGb3JPcgogewogICAgIFZl
Y3RvcjxTdHJpbmc+IHRlbXA7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJh
c2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKICAgICAgICAgaWYgKCFkYXRhYmFzZU5hbWVzRm9yT3JpZ2luTm9Mb2Nr
KG9yaWdpbiwgdGVtcCkpCiAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTQ2NSw3
ICs0NjUsNyBAQCBEYXRhYmFzZURldGFpbHMgRGF0YWJhc2VUcmFja2VyOjpkZXRhaWxzCiAgICAg
aW50NjRfdCBleHBlY3RlZFVzYWdlOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
RGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJh
c2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRD
cmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkK
QEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEZXRh
aWxzCiAgICAgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIgPSBvcmlnaW4tPmRhdGFiYXNlSWRlbnRp
ZmllcigpOwogICAgIGludDY0X3QgZ3VpZCA9IDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0
YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2Rh
dGFiYXNlR3VhcmQpOwogCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShDcmVhdGVJZkRvZXNOb3RF
eGlzdCk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNTQ5LDcgKzU0OSw3IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXREYXRhYmFzZURldGFpbHMKIAogdm9pZCBEYXRhYmFz
ZVRyYWNrZXI6OmRvbmVDcmVhdGluZ0RhdGFiYXNlKERhdGFiYXNlKiBkYXRhYmFzZSkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIGRvbmVDcmVhdGluZ0RhdGFi
YXNlKGRhdGFiYXNlLT5zZWN1cml0eU9yaWdpbigpLCBkYXRhYmFzZS0+c3RyaW5nSWRlbnRpZmll
cigpKTsKIH0KIApAQCAtNTU5LDcgKzU1OSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjphZGRP
cGVuRGF0YWJhc2UoRGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAg
ICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7
CiAKICAgICAgICAgaWYgKCFtX29wZW5EYXRhYmFzZU1hcCkKICAgICAgICAgICAgIG1fb3BlbkRh
dGFiYXNlTWFwID0gc3RkOjptYWtlX3VuaXF1ZTxEYXRhYmFzZU9yaWdpbk1hcD4oKTsKQEAgLTU4
OSw3ICs1ODksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlT3BlbkRhdGFiYXNlCiAg
ICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNl
TWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVu
RGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogCiAgICAgICAgIGlmICgh
bV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtNjI5LDcgKzYyOSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVPcGVuRGF0YWJh
c2UKIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6OmdldE9wZW5EYXRhYmFzZXMoU2VjdXJpdHlPcmln
aW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBIYXNoU2V0PFJlZlB0cjxEYXRhYmFzZT4+
KiBkYXRhYmFzZXMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29w
ZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2so
bV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CiAgICAgaWYgKCFtX29wZW5EYXRhYmFzZU1hcCkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC02NDcsNyArNjQ3LDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6
OmdldE9wZW5EYXRhYmFzZXMoUwogCiBSZWZQdHI8T3JpZ2luTG9jaz4gRGF0YWJhc2VUcmFja2Vy
OjpvcmlnaW5Mb2NrRm9yKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0
YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICBTdHJpbmcgZGF0YWJhc2VJZGVudGlmaWVyID0g
b3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKTsKIAogICAgIC8vIFRoZSBvcmlnaW5Mb2NrTWFw
IGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgRGF0YWJhc2VUaHJlYWRzIHNpbmNlCkBAIC03Mjcs
MTMgKzcyNywxMyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFja2VyOjpxdW90CiAK
IHVuc2lnbmVkIGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OnF1b3RhRm9yT3JpZ2luKFNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0
YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJk
KTsKICAgICByZXR1cm4gcXVvdGFGb3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKIH0KIAogdm9pZCBE
YXRhYmFzZVRyYWNrZXI6OnNldFF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIHVuc2lnbmVk
IGxvbmcgbG9uZyBxdW90YSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OwogCiAgICAgaWYgKHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbikgPT0gcXVvdGEpCiAgICAg
ICAgIHJldHVybjsKQEAgLTg2NCw3ICs4NjQsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVs
ZXRlT3JpZ2luKFNlY3VyCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gZGF0YWJhc2VOYW1lczsKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgICAg
ICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgICAg
IGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTg5MCw3ICs4OTAsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKFNlY3Vy
CiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1
YXJkKTsKICAgICAgICAgZGVsZXRlT3JpZ2luTG9ja0ZvcihvcmlnaW4pOwogICAgICAgICBkb25l
RGVsZXRpbmdPcmlnaW4ob3JpZ2luKTsKIApAQCAtMTA3MSw3ICsxMDcxLDcgQEAgdm9pZCBEYXRh
YmFzZVRyYWNrZXI6OmRvbmVEZWxldGluZ09yaWdpbgogYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRl
bGV0ZURhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSkK
IHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3Vh
cmQpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwog
ICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAg
ICAgICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEwODYsMTIgKzEwODYsMTIgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURh
dGFiYXNlKFNlYwogICAgIC8vIFdlIGRyb3AgdGhlIGxvY2sgaGVyZSBiZWNhdXNlIGhvbGRpbmcg
bG9ja3MgZHVyaW5nIGEgY2FsbCB0byBkZWxldGVEYXRhYmFzZUZpbGUgd2lsbCBkZWFkbG9jay4K
ICAgICBpZiAoIWRlbGV0ZURhdGFiYXNlRmlsZShvcmlnaW4sIG5hbWUpKSB7CiAgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIGRlbGV0ZSBmaWxlIGZvciBkYXRhYmFzZSAlcyBpbiBvcmlnaW4g
JXMiLCBuYW1lLmFzY2lpKCkuZGF0YSgpLCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpLmFz
Y2lpKCkuZGF0YSgpKTsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJh
c2VHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFy
ZCk7CiAgICAgICAgIGRvbmVEZWxldGluZ0RhdGFiYXNlKG9yaWdpbiwgbmFtZSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3Vh
cmQpOwogCiAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiREVMRVRF
IEZST00gRGF0YWJhc2VzIFdIRVJFIG9yaWdpbj0/IEFORCBuYW1lPT8iKTsKICAgICBpZiAoc3Rh
dGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsKQEAgLTExMzEsNyArMTEzMSw3IEBAIGJv
b2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGUKIAogI2lmbmRlZiBOREVCVUcK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAg
ICAgICBBU1NFUlQoaXNEZWxldGluZ0RhdGFiYXNlT3JPcmlnaW5Gb3Iob3JpZ2luLCBuYW1lKSk7
CiAgICAgfQogI2VuZGlmCkBAIC0xMTQyLDcgKzExNDIsNyBAQCBib29sIERhdGFiYXNlVHJhY2tl
cjo6ZGVsZXRlRGF0YWJhc2VGaWxlCiAgICAgLy8gRGF0YWJhc2U6Om1hcmtBc0RlbGV0ZWRBbmRD
bG9zZSgpLCBzaW5jZSB0aGF0IGNhbiBjYXVzZSBhIGRlYWRsb2NrCiAgICAgLy8gZHVyaW5nIHRo
ZSBzeW5jaHJvbm91cyBEYXRhYmFzZVRocmVhZCBjYWxsIGl0IHRyaWdnZXJzLgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1
YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFi
YXNlTWFwR3VhcmQpOwogICAgICAgICBpZiAobV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAg
ICAgIC8vIFRoZXJlIGFyZSBzb21lIG9wZW4gZGF0YWJhc2VzLCBsZXRzIGNoZWNrIGlmIHRoZXkg
YXJlIGZvciB0aGlzIG9yaWdpbi4KICAgICAgICAgICAgIERhdGFiYXNlTmFtZU1hcCogbmFtZU1h
cCA9IG1fb3BlbkRhdGFiYXNlTWFwLT5nZXQob3JpZ2luKTsKQEAgLTExODUsNyArMTE4NSw3IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVEZWxldGVkT3BlbmUKICAgICAKICAgICB7CiAg
ICAgICAgIC8vIEFjcXVpcmUgdGhlIGxvY2sgYmVmb3JlIGNhbGxpbmcgb3BlblRyYWNrZXJEYXRh
YmFzZS4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAg
ICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9lc05vdEV4aXN0KTsKICAgICB9
CiAKQEAgLTEyMDEsNyArMTIwMSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVEZWxl
dGVkT3BlbmUKICAgICAvLyBEYXRhYmFzZTo6bWFya0FzRGVsZXRlZEFuZENsb3NlKCksIHNpbmNl
IHRoYXQgY2FuIGNhdXNlIGEgZGVhZGxvY2sKICAgICAvLyBkdXJpbmcgdGhlIHN5bmNocm9ub3Vz
IERhdGFiYXNlVGhyZWFkIGNhbGwgaXQgdHJpZ2dlcnMuCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAg
ICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7
CiAgICAgICAgIGlmIChtX29wZW5EYXRhYmFzZU1hcCkgewogICAgICAgICAgICAgZm9yIChhdXRv
JiBvcGVuRGF0YWJhc2UgOiAqbV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAgICAgICAgICBh
dXRvJiBvcmlnaW4gPSBvcGVuRGF0YWJhc2Uua2V5OwpAQCAtMTMwNSw5ICsxMzA1LDkgQEAgYm9v
bCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZQogICAgIHJldHVybiBTUUxpdGVG
aWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiB9CiAKLU11dGV4JiBEYXRhYmFz
ZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKK0xvY2smIERhdGFiYXNlVHJhY2tlcjo6b3Bl
bkRhdGFiYXNlTXV0ZXgoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0
ZXg7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4OwogICAgIHJldHVybiBt
dXRleDsKIH0KIApAQCAtMTMzMCw5ICsxMzMwLDkgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnNl
dENsaWVudChEYXRhYmFzZQogICAgIG1fY2xpZW50ID0gY2xpZW50OwogfQogCi1zdGF0aWMgTXV0
ZXgmIG5vdGlmaWNhdGlvbk11dGV4KCkKK3N0YXRpYyBMb2NrJiBub3RpZmljYXRpb25NdXRleCgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBtdXRleDsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0x
MzQ2LDcgKzEzNDYsNyBAQCBzdGF0aWMgTm90aWZpY2F0aW9uUXVldWUmIG5vdGlmaWNhdGlvblF1
CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZChT
ZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG5vdGlmaWNhdGlvbk11dGV4KCkpOwogCiAgICAgbm90aWZpY2F0aW9uUXVldWUoKS5hcHBlbmQo
c3RkOjpwYWlyPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFN0cmluZz4ob3JpZ2luLT5pc29sYXRl
ZENvcHkoKSwgbmFtZS5pc29sYXRlZENvcHkoKSkpOwogICAgIHNjaGVkdWxlRm9yTm90aWZpY2F0
aW9uKCk7CkBAIC0xMzcyLDcgKzEzNzIsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6bm90aWZ5
RGF0YWJhc2VzQ2hhCiAKICAgICBOb3RpZmljYXRpb25RdWV1ZSBub3RpZmljYXRpb25zOwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKIAogICAgICAgICBu
b3RpZmljYXRpb25zLnN3YXAobm90aWZpY2F0aW9uUXVldWUoKSk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaAko
cmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1Ymxp
YzoKICAgICAvLyBNb2JpbGVTYWZhcmkgd2lsbCBncmFiIHRoaXMgbXV0ZXggb24gdGhlIG1haW4g
dGhyZWFkIGJlZm9yZSBkaXNwYXRjaGluZyB0aGUgdGFzayB0byAKICAgICAvLyBjbGVhbiB1cCB6
ZXJvIGJ5dGUgZGF0YWJhc2UgZmlsZXMuICBBbnkgb3BlcmF0aW9ucyB0byBvcGVuIG5ldyBkYXRh
YmFzZSB3aWxsIGhhdmUgdG8KICAgICAvLyB3YWl0IGZvciB0aGF0IHRhc2sgdG8gZmluaXNoIGJ5
IHdhaXRpbmcgb24gdGhpcyBtdXRleC4KLSAgICBzdGF0aWMgTXV0ZXgmIG9wZW5EYXRhYmFzZU11
dGV4KCk7CisgICAgc3RhdGljIExvY2smIG9wZW5EYXRhYmFzZU11dGV4KCk7CiAgICAgCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tX
aWxsQmVTY2hlZHVsZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURh
dGFiYXNlRmlsZXNSZW1vdmFsVGFza0RpZEZpbmlzaCgpOwpAQCAtMTUwLDExICsxNTAsMTEgQEAg
cHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBEYXRhYmFzZVNldCo+IERhdGFi
YXNlTmFtZU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwg
RGF0YWJhc2VOYW1lTWFwKj4gRGF0YWJhc2VPcmlnaW5NYXA7CiAKLSAgICBNdXRleCBtX29wZW5E
YXRhYmFzZU1hcEd1YXJkOworICAgIExvY2sgbV9vcGVuRGF0YWJhc2VNYXBHdWFyZDsKICAgICBt
dXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZU9yaWdpbk1hcD4gbV9vcGVuRGF0YWJhc2VN
YXA7CiAKICAgICAvLyBUaGlzIGxvY2sgcHJvdGVjdHMgbV9kYXRhYmFzZSwgbV9vcmlnaW5Mb2Nr
TWFwLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgbV9vcmlnaW5zQmVpbmdEZWxldGVkLCBtX2Jl
aW5nQ3JlYXRlZCwgYW5kIG1fYmVpbmdEZWxldGVkLgotICAgIE11dGV4IG1fZGF0YWJhc2VHdWFy
ZDsKKyAgICBMb2NrIG1fZGF0YWJhc2VHdWFyZDsKICAgICBTUUxpdGVEYXRhYmFzZSBtX2RhdGFi
YXNlOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE9yaWdpbkxvY2s+PiBP
cmlnaW5Mb2NrTWFwOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9P
cmlnaW5Mb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsy
Nyw4IEBACiAjZGVmaW5lIE9yaWdpbkxvY2tfaAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgor
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsNyArNDgsNyBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyBTdHJpbmcgbG9ja0ZpbGVOYW1lRm9yUGF0aChTdHJpbmcg
b3JpZ2luUGF0aCk7CiAKICAgICBTdHJpbmcgbV9sb2NrRmlsZU5hbWU7Ci0gICAgTXV0ZXggbV9t
dXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAjaWYgVVNFKEZJTEVfTE9DSykKICAgICBQbGF0Zm9y
bUZpbGVIYW5kbGUgbV9sb2NrSGFuZGxlOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmgJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
Q2FsbGJhY2tXcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNkZWZp
bmUgU1FMQ2FsbGJhY2tXcmFwcGVyX2gKIAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTgsNyArNTgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRQdHI7CiAgICAgICAgIFQqIGNhbGxiYWNrOwogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X211dGV4KTsKICAgICAgICAgICAgIGlmICghbV9jYWxsYmFjaykgewogICAgICAgICAgICAgICAg
IEFTU0VSVCghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICAgICAgICAgICAgICByZXR1
cm47CkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8VD4gdW53cmFw
KCkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgICAgIEFTU0VSVCghbV9jYWxsYmFjayB8
fCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKICAgICAgICAg
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIG1fY2Fs
bGJhY2sucmVsZWFzZSgpOwpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXND
YWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KIAogcHJpdmF0ZToKLSAgICBN
dXRleCBtX211dGV4OworICAgIExvY2sgbV9tdXRleDsKICAgICBSZWZQdHI8VD4gbV9jYWxsYmFj
azsKICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25CYWNrZW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25C
YWNrZW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQgU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXAoKQogCiAgICAgcmVsZWFzZU9yaWdpbkxvY2tJZk5l
ZWRlZCgpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOwogICAgIG1fc3RhdGVtZW50UXVl
dWUuY2xlYXIoKTsKIAogICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uKSB7CkBAIC00NjUsNyAr
NDY1LDcgQEAgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpTdGF0ZUZ1bmN0aW9uIFNRTAogCiB2b2lk
IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZW5xdWV1ZVN0YXRlbWVudEJhY2tlbmQoc3RkOjp1bmlx
dWVfcHRyPFNRTFN0YXRlbWVudD4gc3RhdGVtZW50QmFja2VuZCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9zdGF0ZW1lbnRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zdGF0
ZW1lbnRNdXRleCk7CiAgICAgbV9zdGF0ZW1lbnRRdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKHN0YXRl
bWVudEJhY2tlbmQpKTsKIH0KIApAQCAtNjgxLDcgKzY4MSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rp
b25CYWNrZW5kOjpnZXROZXh0U3RhdGUKIHsKICAgICBtX2N1cnJlbnRTdGF0ZW1lbnRCYWNrZW5k
ID0gbnVsbHB0cjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsKICAgICBpZiAoIW1fc3Rh
dGVtZW50UXVldWUuaXNFbXB0eSgpKQogICAgICAgICBtX2N1cnJlbnRTdGF0ZW1lbnRCYWNrZW5k
ID0gbV9zdGF0ZW1lbnRRdWV1ZS50YWtlRmlyc3QoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tl
bmQuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDEzLCAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRp
dmVzLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3JlYWRPbmx5OwogICAgIGJvb2wgbV9oYXNWZXJzaW9uTWlzbWF0Y2g7CiAK
LSAgICBNdXRleCBtX3N0YXRlbWVudE11dGV4OworICAgIExvY2sgbV9zdGF0ZW1lbnRNdXRleDsK
ICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8U1FMU3RhdGVtZW50Pj4gbV9zdGF0ZW1lbnRRdWV1
ZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTUUxpdGVUcmFuc2FjdGlvbj4gbV9zcWxpdGVUcmFu
c2FjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1
bGVFeGUKICAgICAvLyBUaGUgbXV0ZXggcHJvdmlkZXMgYSBtZW1vcnkgYmFycmllciB0byBlbnN1
cmUgdGhhdCBvbmNlCiAgICAgLy8gdGVybWluYXRpb24gaXMgc2NoZWR1bGVkLCBpc0V4ZWN1dGlv
blRlcm1pbmF0aW5nIHdpbGwKICAgICAvLyBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhhdCBzdGF0ZSB3
aGVuIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkLgotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2No
ZWR1bGVkVGVybWluYXRpb25NdXRleCk7CiAgICAgaWYgKG1fdm0tPndhdGNoZG9nKQogICAgICAg
ICBtX3ZtLT53YXRjaGRvZy0+ZmlyZSgpOwogfQpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgV29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVFeGUKIGJvb2wgV29ya2VyU2NyaXB0Q29udHJv
bGxlcjo6aXNFeGVjdXRpb25UZXJtaW5hdGluZygpIGNvbnN0CiB7CiAgICAgLy8gU2VlIGNvbW1l
bnRzIGluIHNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24gcmVnYXJkaW5nIG11dGV4IHVzYWdl
LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRleCk7CiAgICAg
aWYgKG1fdm0tPndhdGNoZG9nKQogICAgICAgICByZXR1cm4gbV92bS0+d2F0Y2hkb2ctPmRpZEZp
cmUoKTsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCShyZXZpc2lvbiAxODg1NjkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
NSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMx
LDggKzMxLDggQEAKICNpbmNsdWRlIDxkZWJ1Z2dlci9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGhl
YXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9OYWtlZFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KIAogbmFtZXNwYWNlIERlcHJlY2F0ZWQgewogY2xhc3MgU2NyaXB0VmFsdWU7CkBAIC05Nyw3
ICs5Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUq
IG1fd29ya2VyR2xvYmFsU2NvcGU7CiAgICAgICAgIEpTQzo6U3Ryb25nPEpTV29ya2VyR2xvYmFs
U2NvcGU+IG1fd29ya2VyR2xvYmFsU2NvcGVXcmFwcGVyOwogICAgICAgICBib29sIG1fZXhlY3V0
aW9uRm9yYmlkZGVuOwotICAgICAgICBtdXRhYmxlIE11dGV4IG1fc2NoZWR1bGVkVGVybWluYXRp
b25NdXRleDsKKyAgICAgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRl
eDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDcgKzg4LDcg
QEAgdm9pZCBNZXNzYWdlUG9ydENoYW5uZWw6OmRpc2VudGFuZ2xlKCkKIAogdm9pZCBNZXNzYWdl
UG9ydENoYW5uZWw6OnBvc3RNZXNzYWdlVG9SZW1vdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eT4gY2hhbm5lbHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIGlmICghbV9j
aGFubmVsLT5tX291dGdvaW5nUXVldWUpCiAgICAgICAgIHJldHVybjsKICAgICBib29sIHdhc0Vt
cHR5ID0gbV9jaGFubmVsLT5tX291dGdvaW5nUXVldWUtPmFwcGVuZEFuZENoZWNrRW1wdHkoc3Rk
OjptYWtlX3VuaXF1ZTxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhPihtZXNz
YWdlLCBXVEY6Om1vdmUoY2hhbm5lbHMpKSk7CkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgTWVzc2Fn
ZVBvcnRDaGFubmVsOjpwb3N0TWVzc2FnZVRvUmUKIAogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6
OnRyeUdldE1lc3NhZ2VGcm9tUmVtb3RlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiBt
ZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiBjaGFubmVs
cykKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CiAgICAgYXV0byByZXN1bHQgPSBtX2No
YW5uZWwtPm1faW5jb21pbmdRdWV1ZS0+dHJ5R2V0TWVzc2FnZSgpOwogICAgIGlmICghcmVzdWx0
KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMjEsMjAgKzEyMSwyMCBAQCB2b2lkIE1lc3Nh
Z2VQb3J0Q2hhbm5lbDo6Y2xvc2UoKQogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6OmlzQ29ubmVj
dGVkVG8oTWVzc2FnZVBvcnQqIHBvcnQpCiB7CiAgICAgLy8gRklYTUU6IFdoYXQgZ3VhcmFudGVl
cyB0aGF0IHRoZSByZXN1bHQgcmVtYWlucyB0aGUgc2FtZSBhZnRlciB3ZSByZWxlYXNlIHRoZSBs
b2NrPwotICAgIE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICByZXR1cm4gbV9jaGFubmVsLT5t
X3JlbW90ZVBvcnQgPT0gcG9ydDsKIH0KIAogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6Omhhc1Bl
bmRpbmdBY3Rpdml0eSgpCiB7CiAgICAgLy8gRklYTUU6IFdoYXQgZ3VhcmFudGVlcyB0aGF0IHRo
ZSByZXN1bHQgcmVtYWlucyB0aGUgc2FtZSBhZnRlciB3ZSByZWxlYXNlIHRoZSBsb2NrPwotICAg
IE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICByZXR1cm4gIW1fY2hhbm5lbC0+bV9pbmNvbWlu
Z1F1ZXVlLT5pc0VtcHR5KCk7CiB9CiAKIE1lc3NhZ2VQb3J0KiBNZXNzYWdlUG9ydENoYW5uZWw6
OmxvY2FsbHlFbnRhbmdsZWRQb3J0KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIC8vIFNlZSBpZiBib3RoIGNv
bnRleHRzIGFyZSBydW4gYnkgdGhlIHNhbWUgdGhyZWFkIChhcmUgdGhlIHNhbWUgY29udGV4dCwg
b3IgYXJlIGJvdGggZG9jdW1lbnRzKS4KICAgICBpZiAobV9jaGFubmVsLT5tX3JlbW90ZVBvcnQp
IHsKICAgICAgICAgLy8gVGhlIHJlbW90ZSBwb3J0J3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBp
cyBndWFyYW50ZWVkIG5vdCB0byBjaGFuZ2UgaGVyZSAtIE1lc3NhZ2VQb3J0Ojpjb250ZXh0RGVz
dHJveWVkKCkKQEAgLTE2NCw3ICsxNjQsNyBAQCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6
flBsYXRmb3JtTWVzCiAKIHZvaWQgUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OnNldFJlbW90
ZVBvcnQoTWVzc2FnZVBvcnQqIHBvcnQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgLy8gU2hvdWxkIG5ldmVyIHNl
dCBwb3J0IGlmIGl0IGlzIGFscmVhZHkgc2V0LgogICAgIEFTU0VSVCghcG9ydCB8fCAhbV9yZW1v
dGVQb3J0KTsKICAgICBtX3JlbW90ZVBvcnQgPSBwb3J0OwpAQCAtMTc1LDEzICsxNzUsMTMgQEAg
UGFzc1JlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gUAogICAgIC8vIEZJWE1FOiBX
aGF0IGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVzdWx0IHJlbWFpbnMgdGhlIHNhbWUgYWZ0ZXIgd2Ug
cmVsZWFzZSB0aGUgbG9jaz8KICAgICAvLyBUaGlzIGxvY2sgb25seSBndWFyYW50ZWVzIHRoYXQg
dGhlIHJldHVybmVkIHBvaW50ZXIgd2lsbCBub3QgYmUgcG9pbnRpbmcgdG8gcmVsZWFzZWQgbWVt
b3J5LAogICAgIC8vIGJ1dCBub3QgdGhhdCBpdCB3aWxsIHN0aWxsIGJlIHBvaW50aW5nIHRvIHRo
aXMgb2JqZWN0J3MgZW50YW5nbGVkIHBvcnQgY2hhbm5lbC4KLSAgICBNdXRleExvY2tlciBsb2Nr
KG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICByZXR1cm4gbV9l
bnRhbmdsZWRDaGFubmVsOwogfQogCiB2b2lkIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpj
bG9zZUludGVybmFsKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJv
bSB0aGUgb3RoZXIgZW5kLiBXZSBzdGlsbCBtYWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5j
b21pbmcgcXVldWUsIHNpbmNlIHByZXZpb3VzbHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0
aWxsIGJlIGRlbGl2ZXJlZC4KICAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOwogICAgIG1fZW50
YW5nbGVkQ2hhbm5lbCA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVs
dC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDggKzk1LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIHNldFJlbW90ZVBvcnQoTWVzc2FnZVBvcnQqKTsKICAgICAgICAg
dm9pZCBjbG9zZUludGVybmFsKCk7CiAKLSAgICAgICAgLy8gTXV0ZXggdXNlZCB0byBlbnN1cmUg
ZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgb2JqZWN0IGludGVybmFscy4KLSAgICAgICAgTXV0ZXgg
bV9tdXRleDsKKyAgICAgICAgLy8gTG9jayB1c2VkIHRvIGVuc3VyZSBleGNsdXNpdmUgYWNjZXNz
IHRvIHRoZSBvYmplY3QgaW50ZXJuYWxzLgorICAgICAgICBMb2NrIG1fbXV0ZXg7CiAKICAgICAg
ICAgLy8gUG9pbnRlciB0byBvdXIgZW50YW5nbGVkIHBhaXIgLSBjbGVhcmVkIHdoZW4gY2xvc2Uo
KSBpcyBjYWxsZWQuCiAgICAgICAgIFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4g
bV9lbnRhbmdsZWRDaGFubmVsOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODYsNyArMTg2LDcg
QEAgdm9pZCBJY29uRGF0YWJhc2U6OnJlbW92ZUFsbEljb25zKCkKICAgICAKICAgICAvLyBDbGVh
ciB0aGUgaW4tbWVtb3J5IHJlY29yZCBvZiBldmVyeSBJY29uUmVjb3JkLCBhbnl0aGluZyB3YWl0
aW5nIHRvIGJlIHJlYWQgZnJvbSBkaXNrLCBhbmQgYW55dGhpbmcgd2FpdGluZyB0byBiZSB3cml0
dGVuIHRvIGRpc2sKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAg
ICAgICAgIAogICAgICAgICAvLyBDbGVhciB0aGUgSWNvblJlY29yZHMgZm9yIGV2ZXJ5IHBhZ2Ug
VVJMIC0gUmVmQ291bnRpbmcgd2lsbCBjYXVzZSB0aGUgSWNvblJlY29yZHMgdGhlbXNlbHZlcyB0
byBiZSBkZWxldGVkCiAgICAgICAgIC8vIFdlIGRvbid0IGRlbGV0ZSB0aGUgYWN0dWFsIFBhZ2VS
ZWNvcmRzIGJlY2F1c2Ugd2UgaGF2ZSB0aGUgInJldGFpbiBpY29uIGZvciB1cmwiIGNvdW50IHRv
IGtlZXAgdHJhY2sgb2YKQEAgLTIwMCwxNCArMjAwLDE0IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpy
ZW1vdmVBbGxJY29ucygpCiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAvLyBDbGVhciBh
bGwgaW4tbWVtb3J5IHJlY29yZHMgb2YgdGhpbmdzIHRoYXQgbmVlZCB0byBiZSBzeW5jZWQgb3V0
IHRvIGRpc2sKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVu
ZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5
bmNMb2NrKTsKICAgICAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nU3luYy5jbGVhcigpOwogICAg
ICAgICAgICAgbV9pY29uc1BlbmRpbmdTeW5jLmNsZWFyKCk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIC8vIENsZWFyIGFsbCBpbi1tZW1vcnkgcmVjb3JkcyBvZiB0aGluZ3MgdGhhdCBu
ZWVkIHRvIGJlIHJlYWQgaW4gZnJvbSBkaXNrCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxz
UGVuZGluZ0ltcG9ydC5jbGVhcigpOwogICAgICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJ
bkljb25zLmNsZWFyKCk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcuY2xlYXIo
KTsKQEAgLTIyOSw3ICsyMjksNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0lj
b25Gb3JQCiAgICAgaWYgKCFpc09wZW4oKSB8fCAhZG9jdW1lbnRDYW5IYXZlSWNvbihwYWdlVVJM
T3JpZ2luYWwpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKIAogICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMoKTsKICAg
ICAKQEAgLTI0NSw3ICsyNDUsNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0lj
b25Gb3JQCiAgICAgLy8gMSAtIFRoZSBpbml0aWFsIHVybCBpbXBvcnQgaXMgaW5jb21wbGV0ZSBh
bmQgdGhpcyBwYWdlVVJMIHdhcyBtYXJrZWQgdG8gYmUgbm90aWZpZWQgb25jZSBpdCBpcyBjb21w
bGV0ZSBpZiBhbiBpY29uVVJMIGV4aXN0cwogICAgIC8vIDIgLSBUaGUgaW5pdGlhbCB1cmwgaW1w
b3J0IElTIGNvbXBsZXRlIGFuZCB0aGlzIHBhZ2VVUkwgaGFzIG5vIGljb24KICAgICBpZiAoIXBh
Z2VSZWNvcmQpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdM
b2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwog
ICAgICAgICAKICAgICAgICAgLy8gSW1wb3J0IGlzIG9uZ29pbmcsIHRoZXJlIG1pZ2h0IGJlIGFu
IGljb24uICBJbiB0aGlzIGNhc2UsIHJlZ2lzdGVyIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGlj
b24gY29tZXMgaW4KICAgICAgICAgLy8gSWYgd2UgZXZlciByZWFjaCB0aGlzIGNvbmRpdGlvbiwg
d2Uga25vdyB3ZSd2ZSBhbHJlYWR5IG1hZGUgdGhlIHBhZ2VVUkwgY29weQpAQCAtMjc2LDcgKzI3
Niw3IEBAIEltYWdlKiBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzSWNvbkZvclAKICAgICAgICAg
aWYgKHBhZ2VVUkxDb3B5LmlzTnVsbCgpKQogICAgICAgICAgICAgcGFnZVVSTENvcHkgPSBwYWdl
VVJMT3JpZ2luYWwuaXNvbGF0ZWRDb3B5KCk7CiAgICAgCi0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
cGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJbkljb25z
LmFkZChwYWdlVVJMQ29weSk7CiAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5hZGQoaWNv
blJlY29yZCk7CiAgICAgICAgIHdha2VTeW5jVGhyZWFkKCk7CkBAIC0zMDcsNyArMzA3LDcgQEAg
UGFzc05hdGl2ZUltYWdlUHRyIEljb25EYXRhYmFzZTo6c3luY2hybwogICAgIGlmICghaWNvbikK
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29u
TG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgcmV0
dXJuIGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CiB9CiAKQEAgLTMyOSw3ICsz
MjksNyBAQCBTdHJpbmcgSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25VUkxGCiAgICAgaWYg
KCFpc09wZW4oKSB8fCAhZG9jdW1lbnRDYW5IYXZlSWNvbihwYWdlVVJMT3JpZ2luYWwpKQogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKICAgICAKICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVjb3JkID0gbV9wYWdlVVJMVG9SZWNv
cmRNYXAuZ2V0KHBhZ2VVUkxPcmlnaW5hbCk7CiAgICAgaWYgKCFwYWdlUmVjb3JkKQpAQCAtNDE3
LDcgKzQxNyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpyZXRhaW5JY29uRm9yUGFnZVVSTCgKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxz
VG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxz
VG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKICAgICAgICAgbV91cmxzVG9SZXRhaW4uYWRkKHBhZ2VV
UkwuaXNvbGF0ZWRDb3B5KCkpOwogICAgICAgICBtX3JldGFpbk9yUmVsZWFzZUljb25SZXF1ZXN0
ZWQgPSB0cnVlOwogICAgIH0KQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6
cGVyZm9ybVJldGFpbkljb25Gb3JQCiAgICAgICAgIGlmICghbV9pY29uVVJMSW1wb3J0Q29tcGxl
dGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
cGVuZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3lu
Y0xvY2spOwogICAgICAgICAvLyBJZiB0aGlzIHBhZ2VVUkwgd2FpdGluZyB0byBiZSBzeW5jJ2Vk
LCB1cGRhdGUgdGhlIHN5bmMgcmVjb3JkCiAgICAgICAgIC8vIFRoaXMgc2F2ZXMgdXMgaW4gdGhl
IGNhc2Ugd2hlcmUgYSBwYWdlIHdhcyByZWFkeSB0byBiZSBkZWxldGVkIGZyb20gdGhlIGRhdGFi
YXNlIGJ1dCB3YXMganVzdCByZXRhaW5lZCAtIHNvIHRoZXJlcyBubyBuZWVkIHRvIGRlbGV0ZSBp
dCEKICAgICAgICAgaWYgKCFtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgJiYgbV9wYWdlVVJMc1Bl
bmRpbmdTeW5jLmNvbnRhaW5zKHBhZ2VVUkwpKSB7CkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnJlbGVhc2VJY29uRm9yUGFnZVVSTAogICAgICAgICByZXR1cm47CiAKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2spOwogICAgICAgICBtX3VybHNUb1JlbGVhc2UuYWRkKHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCkp
OwogICAgICAgICBtX3JldGFpbk9yUmVsZWFzZUljb25SZXF1ZXN0ZWQgPSB0cnVlOwogICAgIH0K
QEAgLTUwNiw3ICs1MDYsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29u
Rm9yCiAgICAgQVNTRVJUKCFpY29uUmVjb3JkIHx8IChpY29uUmVjb3JkICYmIG1faWNvblVSTFRv
UmVjb3JkTWFwLmdldChpY29uUmVjb3JkLT5pY29uVVJMKCkpID09IGljb25SZWNvcmQpKTsKIAog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAg
ICAKICAgICAgICAgLy8gU2luY2UgdGhpcyBwYWdlVVJMIGlzIGdvaW5nIGF3YXksIHRoZXJlJ3Mg
bm8gcmVhc29uIGFueW9uZSB3b3VsZCBldmVyIGJlIGludGVyZXN0ZWQgaW4gaXRzIHJlYWQgcmVz
dWx0cyAgICAKICAgICAgICAgaWYgKCFtX2ljb25VUkxJbXBvcnRDb21wbGV0ZSkKQEAgLTUyMiw3
ICs1MjIsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29uRm9yCiAgICAg
CiAgICAgLy8gTWFyayBzdHVmZiBmb3IgZGVsZXRpb24gZnJvbSB0aGUgZGF0YWJhc2Ugb25seSBp
ZiB3ZSdyZSBub3QgaW4gcHJpdmF0ZSBicm93c2luZwogICAgIGlmICghbV9wcml2YXRlQnJvd3Np
bmdFbmFibGVkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9j
ayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKICAgICAg
ICAgbV9wYWdlVVJMc1BlbmRpbmdTeW5jLnNldChwYWdlVVJMT3JpZ2luYWwuaXNvbGF0ZWRDb3B5
KCksIHBhZ2VSZWNvcmQtPnNuYXBzaG90KHRydWUpKTsKICAgICAKICAgICAgICAgLy8gSWYgdGhp
cyBwYWdlIGlzIHRoZSBsYXN0IHBhZ2UgdG8gcmVmZXIgdG8gYSBwYXJ0aWN1bGFyIEljb25SZWNv
cmQsIHRoYXQgSWNvblJlY29yZCBuZWVkcyB0bwpAQCAtNTQ4LDEyICs1NDgsMTIgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVSTAogICAgIAogICAgIFZlY3RvcjxTdHJp
bmc+IHBhZ2VVUkxzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsK
ICAgICAKICAgICAgICAgLy8gSWYgdGhpcyBpY29uIHdhcyBwZW5kaW5nIGEgcmVhZCwgcmVtb3Zl
IGl0IGZyb20gdGhhdCBzZXQgYmVjYXVzZSB0aGlzIG5ldyBkYXRhIHNob3VsZCBvdmVycmlkZSB3
aGF0IGlzIG9uIGRpc2sKICAgICAgICAgUmVmUHRyPEljb25SZWNvcmQ+IGljb24gPSBtX2ljb25V
UkxUb1JlY29yZE1hcC5nZXQoaWNvblVSTCk7CiAgICAgICAgIGlmIChpY29uKSB7Ci0gICAgICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAg
bV9pY29uc1BlbmRpbmdSZWFkaW5nLnJlbW92ZShpY29uLmdldCgpKTsKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBpY29uID0gZ2V0T3JDcmVhdGVJY29uUmVjb3JkKGljb25VUkwpOwpAQCAt
NTY3LDcgKzU2Nyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvckljb25VUkwK
ICAgICAgICAgCiAgICAgICAgIC8vIE1hcmsgdGhlIEljb25SZWNvcmQgYXMgcmVxdWlyaW5nIGFu
IHVwZGF0ZSB0byB0aGUgZGF0YWJhc2Ugb25seSBpZiBwcml2YXRlIGJyb3dzaW5nIGlzIGRpc2Fi
bGVkCiAgICAgICAgIGlmICghbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKSB7Ci0gICAgICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgbV9pY29uc1Bl
bmRpbmdTeW5jLnNldChpY29uVVJMLCBpY29uLT5zbmFwc2hvdCgpKTsKICAgICAgICAgfQogCkBA
IC02MDgsNyArNjA4LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJM
KAogICAgIFN0cmluZyBpY29uVVJMLCBwYWdlVVJMOwogICAgIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKIAogICAgICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVj
b3JkID0gbV9wYWdlVVJMVG9SZWNvcmRNYXAuZ2V0KHBhZ2VVUkxPcmlnaW5hbCk7CiAgICAgICAg
IApAQCAtNjM2LDEzICs2MzYsMTMgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQ
YWdlVVJMKAogICAgICAgICAgICAgQVNTRVJUKGljb25SZWNvcmQtPnJldGFpbmluZ1BhZ2VVUkxz
KCkuc2l6ZSgpID09IDApOwogICAgICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIkljb24gZm9y
IGljb24gdXJsICVzIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZCAtIHJlbW92aW5nIG1hcHBpbmcg
Zm9yIGl0IiwgdXJsRm9yTG9nZ2luZyhpY29uUmVjb3JkLT5pY29uVVJMKCkpLmFzY2lpKCkuZGF0
YSgpKTsKICAgICAgICAgICAgIG1faWNvblVSTFRvUmVjb3JkTWFwLnJlbW92ZShpY29uUmVjb3Jk
LT5pY29uVVJMKCkpOwotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1Jl
YWRpbmdMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRp
bmdMb2NrKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5yZW1vdmUoaWNvblJl
Y29yZC5nZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIEFuZCBtYXJrIHRo
aXMgbWFwcGluZyB0byBiZSBhZGRlZCB0byB0aGUgZGF0YWJhc2UKICAgICAgICAgaWYgKCFtX3By
aXZhdGVCcm93c2luZ0VuYWJsZWQpIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRp
bmdTeW5jTG9jayk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxzUGVuZGluZ1N5bmMuc2V0KHBhZ2VV
UkwsIHBhZ2VSZWNvcmQtPnNuYXBzaG90KCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAv
LyBJZiB0aGUgaWNvbiBpcyBvbiBpdHMgbGFzdCByZWYsIG1hcmsgaXQgZm9yIGRlbGV0aW9uCkBA
IC02NzQsNyArNjc0LDcgQEAgSWNvbkxvYWREZWNpc2lvbiBJY29uRGF0YWJhc2U6OnN5bmNocm9u
bwogICAgIC8vIDEgLSBXaGVuIHdlIHJlYWQgdGhlIGljb24gdXJscyBmcm9tIGRpc2ssIGdldHRp
bmcgdGhlIHRpbWVTdGFtcCBhdCB0aGUgc2FtZSB0aW1lCiAgICAgLy8gMiAtIFdoZW4gd2UgZ2V0
IGEgbmV3IGljb24gZnJvbSB0aGUgbG9hZGVyLCBpbiB3aGljaCBjYXNlIHRoZSB0aW1lc3RhbXAg
aXMgc2V0IGF0IHRoYXQgdGltZQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKICAgICAgICAgaWYgKEljb25SZWNvcmQqIGljb24gPSBtX2ljb25VUkxUb1JlY29yZE1h
cC5nZXQoaWNvblVSTCkpIHsKICAgICAgICAgICAgIExPRyhJY29uRGF0YWJhc2UsICJGb3VuZCBl
eHBpcmF0aW9uIHRpbWUgb24gYSBwcmVzZW50IGljb24gYmFzZWQgb24gZXhpc3RpbmcgSWNvblJl
Y29yZCIpOwogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oY3VycmVudFRpbWUo
KSkgLSBzdGF0aWNfY2FzdDxpbnQ+KGljb24tPmdldFRpbWVzdGFtcCgpKSA+IGljb25FeHBpcmF0
aW9uVGltZSA/IEljb25Mb2FkWWVzIDogSWNvbkxvYWRObzsKQEAgLTY4Miw3ICs2ODIsNyBAQCBJ
Y29uTG9hZERlY2lzaW9uIEljb25EYXRhYmFzZTo6c3luY2hyb25vCiAgICAgfQogICAgIAogICAg
IC8vIElmIHdlIGRvbid0IGhhdmUgYSByZWNvcmQgZm9yIGl0LCBidXQgd2UgKmhhdmUqIGltcG9y
dGVkIGFsbCBpY29uVVJMcyBmcm9tIGRpc2ssIHRoZW4gd2Ugc2hvdWxkIGxvYWQgaXQgbm93Ci0g
ICAgTXV0ZXhMb2NrZXIgcmVhZGluZ0xvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAg
TG9ja0hvbGRlciByZWFkaW5nTG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICBpZiAo
bV9pY29uVVJMSW1wb3J0Q29tcGxldGUpCiAgICAgICAgIHJldHVybiBJY29uTG9hZFllczsKICAg
ICAgICAgCkBAIC02OTksNyArNjk5LDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3Vz
SWNvbkRhdGFLbgogewogICAgIEFTU0VSVF9OT1RfU1lOQ19USFJFQUQoKTsKICAgICAKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgaWYgKEljb25SZWNvcmQqIGljb24gPSBtX2ljb25V
UkxUb1JlY29yZE1hcC5nZXQoaWNvblVSTCkpCiAgICAgICAgIHJldHVybiBpY29uLT5pbWFnZURh
dGFTdGF0dXMoKSAhPSBJbWFnZURhdGFTdGF0dXNVbmtub3duOwogCkBAIC03NTQsMjYgKzc1NCwy
NiBAQCB2b2lkIEljb25EYXRhYmFzZTo6Y2hlY2tJbnRlZ3JpdHlCZWZvcmVPCiAKIHNpemVfdCBJ
Y29uRGF0YWJhc2U6OnBhZ2VVUkxNYXBwaW5nQ291bnQoKQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKICAgICByZXR1cm4gbV9wYWdlVVJMVG9SZWNvcmRNYXAuc2l6ZSgpOwogfQogCiBz
aXplX3QgSWNvbkRhdGFiYXNlOjpyZXRhaW5lZFBhZ2VVUkxDb3VudCgpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOwogICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJh
dGlvbnMoKTsKICAgICByZXR1cm4gbV9yZXRhaW5lZFBhZ2VVUkxzLnNpemUoKTsKIH0KIAogc2l6
ZV90IEljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50KCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJ
Y29uTG9jayk7CiAgICAgcmV0dXJuIG1faWNvblVSTFRvUmVjb3JkTWFwLnNpemUoKTsKIH0KIAog
c2l6ZV90IEljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50V2l0aERhdGEoKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKICAgICBzaXplX3QgcmVzdWx0ID0gMDsKICAgICAKICAgICBI
YXNoTWFwPFN0cmluZywgSWNvblJlY29yZCo+OjppdGVyYXRvciBpID0gbV9pY29uVVJMVG9SZWNv
cmRNYXAuYmVnaW4oKTsKQEAgLTgyOSwxMyArODI5LDEzIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpu
b3RpZnlQZW5kaW5nTG9hZERlY2kKIAogdm9pZCBJY29uRGF0YWJhc2U6Ondha2VTeW5jVGhyZWFk
KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9zeW5jTG9jayk7CiAKICAgICBpZiAoIW1fZGlzYWJsZVN1ZGRlblRlcm1pbmF0
aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8pCiAgICAgICAgIG1fZGlzYWJsZVN1ZGRlblRl
cm1pbmF0aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8gPSBzdGQ6Om1ha2VfdW5pcXVlPFN1
ZGRlblRlcm1pbmF0aW9uRGlzYWJsZXI+KCk7CiAKICAgICBtX3N5bmNUaHJlYWRIYXNXb3JrVG9E
byA9IHRydWU7Ci0gICAgbV9zeW5jQ29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1fc3luY0NvbmRp
dGlvbi5ub3RpZnlPbmUoKTsKIH0KIAogdm9pZCBJY29uRGF0YWJhc2U6OnNjaGVkdWxlT3JEZWZl
clN5bmNUaW1lcigpCkBAIC04NzQsMTMgKzg3NCwxMyBAQCBib29sIEljb25EYXRhYmFzZTo6aXNP
cGVuKCkgY29uc3QKIAogYm9vbCBJY29uRGF0YWJhc2U6OmlzT3BlbkJlc2lkZXNNYWluVGhyZWFk
Q2FsbGJhY2tzKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgcmV0dXJuIG1fc3luY1Ro
cmVhZFJ1bm5pbmcgfHwgbV9zeW5jREIuaXNPcGVuKCk7CiB9CiAKIFN0cmluZyBJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3lu
Y0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgIHJldHVybiBt
X2NvbXBsZXRlRGF0YWJhc2VQYXRoLmlzb2xhdGVkQ29weSgpOwogfQogCkBAIC05MTYsNyArOTE2
LDcgQEAgUGFnZVVSTFJlY29yZCogSWNvbkRhdGFiYXNlOjpnZXRPckNyZWF0ZQogCiAgICAgUGFn
ZVVSTFJlY29yZCogcGFnZVJlY29yZCA9IG1fcGFnZVVSTFRvUmVjb3JkTWFwLmdldChwYWdlVVJM
KTsKICAgICAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICBpZiAoIW1f
aWNvblVSTEltcG9ydENvbXBsZXRlKSB7CiAgICAgICAgIC8vIElmIHRoZSBpbml0aWFsIGltcG9y
dCBvZiBhbGwgVVJMcyBoYXNuJ3QgY29tcGxldGVkIGFuZCB3ZSBoYXZlIG5vIHBhZ2UgcmVjb3Jk
LCB3ZSBhc3N1bWUgd2UgKm1pZ2h0KiBrbm93IGFib3V0IHRoaXMgbGF0ZXIgYW5kIGNyZWF0ZSBh
IHJlY29yZCBmb3IgaXQKICAgICAgICAgaWYgKCFwYWdlUmVjb3JkKSB7CkBAIC05ODUsNyArOTg1
LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6Omljb25EYXRhYmFzZVN5bmNUaHJlYQogICAgIH0KICAg
ICAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgICAgIGlmICghbV9zeW5jREIu
b3BlbihtX2NvbXBsZXRlRGF0YWJhc2VQYXRoKSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJV
bmFibGUgdG8gb3BlbiBpY29uIGRhdGFiYXNlIGF0IHBhdGggJXMgLSAlcyIsIG1fY29tcGxldGVE
YXRhYmFzZVBhdGguYXNjaWkoKS5kYXRhKCksIG1fc3luY0RCLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTExMTMsNyArMTExMyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpwZXJmb3JtT3BlbkluaXRpYWxpemEKICAgICAgICAgICAgIG1fc3luY0RCLmNsb3NlKCk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9zeW5jTG9jayk7CisgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9z
eW5jTG9jayk7CiAgICAgICAgICAgICAgICAgLy8gU2hvdWxkJ3ZlIGJlZW4gY29uc3VtZWQgYnkg
U1FMaXRlLCBkZWxldGUganVzdCB0byBtYWtlIHN1cmUgd2UgZG9uJ3Qgc2VlIGl0IGFnYWluIGlu
IHRoZSBmdXR1cmU7CiAgICAgICAgICAgICAgICAgZGVsZXRlRmlsZShtX2NvbXBsZXRlRGF0YWJh
c2VQYXRoICsgIi1qb3VybmFsIik7CiAgICAgICAgICAgICAgICAgZGVsZXRlRmlsZShtX2NvbXBs
ZXRlRGF0YWJhc2VQYXRoKTsKQEAgLTEyMTUsNyArMTIxNSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAgICAgU3RyaW5nIGljb25VUkwgPSBxdWVyeS5nZXRD
b2x1bW5UZXh0KDEpOwogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJs
QW5kSWNvbkxvY2spOwogCiAgICAgICAgICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVjb3JkID0g
bV9wYWdlVVJMVG9SZWNvcmRNYXAuZ2V0KHBhZ2VVUkwpOwogICAgICAgICAgICAgCkBAIC0xMjQ4
LDcgKzEyNDgsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAg
ICAgIC8vIG9uZSBmb3IgdGhlIFVSTCBhbmQgb25lIGZvciB0aGUgSW1hZ2UgaXRzZWxmCiAgICAg
ICAgIC8vIE5vdGUgdGhhdCBXZWJJY29uRGF0YWJhc2UgaXMgbm90IG5lY2Nlc3NhcmlseSBBUEkg
c28gd2UgbWlnaHQgYmUgYWJsZSB0byBtYWtlIHRoaXMgY2hhbmdlCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAg
ICBpZiAobV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQuY29udGFpbnMocGFnZVVSTCkpIHsKICAgICAg
ICAgICAgICAgICBkaXNwYXRjaERpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMT25NYWluVGhyZWFk
KHBhZ2VVUkwpOwogICAgICAgICAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LnJlbW92
ZShwYWdlVVJMKTsKQEAgLTEyNzEsNyArMTI3MSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJm
b3JtVVJMSW1wb3J0KCkKICAgICAvLyBidXQgYWZ0ZXIgbV9pY29uVVJMSW1wb3J0Q29tcGxldGUg
aXMgc2V0IHRvIHRydWUsIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhpcyBzZXQgYW55bW9yZQogICAg
IFZlY3RvcjxTdHJpbmc+IHVybHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRp
bmdSZWFkaW5nTG9jayk7CiAKICAgICAgICAgdXJscy5hcHBlbmRSYW5nZShtX3BhZ2VVUkxzUGVu
ZGluZ0ltcG9ydC5iZWdpbigpLCBtX3BhZ2VVUkxzUGVuZGluZ0ltcG9ydC5lbmQoKSk7CiAgICAg
ICAgIG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LmNsZWFyKCk7ICAgICAgICAKQEAgLTEyODQsNyAr
MTI4NCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAvLyBS
ZW1vdmUgdW5yZXRhaW5lZCBvbmVzIGlmIGRhdGFiYXNlIGNsZWFudXAgaXMgYWxsb3dlZAogICAg
IC8vIEtlZXAgYSBzZXQgb2Ygb25lcyB0aGF0IGFyZSByZXRhaW5lZCBhbmQgcGVuZGluZyBub3Rp
ZmljYXRpb24KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAKICAg
ICAgICAgcGVyZm9ybVBlbmRpbmdSZXRhaW5BbmRSZWxlYXNlT3BlcmF0aW9ucygpOwogCkBAIC0x
MzAxLDEyICsxMzAxLDEyIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1faWNvblVSTFRvUmVjb3JkTWFwLnJlbW92ZShpY29u
UmVjb3JkLT5pY29uVVJMKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJbkljb25zLnJlbW92ZSh1cmxzW2ld
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcucmVt
b3ZlKGljb25SZWNvcmQpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1faWNvbnNQZW5kaW5nU3luYy5zZXQoaWNvblJlY29yZC0+aWNvblVSTCgpLCBpY29u
UmVjb3JkLT5zbmFwc2hvdCh0cnVlKSk7ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMTM3MSw3ICsxMzcxLDcg
QEAgdm9pZCBJY29uRGF0YWJhc2U6OnN5bmNUaHJlYWRNYWluTG9vcCgpCiAgICAgICAgICAgICBi
cmVhazsKIAogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxB
bmRJY29uTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKICAgICAgICAgICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlv
bnMoKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTE0NTEsNyArMTQ1MSw3IEBAIHZvaWQgSWNv
bkRhdGFiYXNlOjpwZXJmb3JtUGVuZGluZ1JldGFpbkEKICAgICBIYXNoQ291bnRlZFNldDxTdHJp
bmc+IHRvUmVsZWFzZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgcGVuZGluZ1dvcmtM
b2NrZXIobV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBw
ZW5kaW5nV29ya0xvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2spOwogICAgICAgICBp
ZiAoIW1fcmV0YWluT3JSZWxlYXNlSWNvblJlcXVlc3RlZCkKICAgICAgICAgICAgIHJldHVybjsK
IApAQCAtMTQ4OCw3ICsxNDg4LDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6OnJlYWRGcm9tRGF0YWJh
c2UoKQogICAgIC8vIFRoaXMgd2F5IHdlIHdvbid0IGhvbGQgdGhlIGxvY2sgZm9yIGEgbG9uZyBw
ZXJpb2Qgb2YgdGltZQogICAgIFZlY3RvcjxJY29uUmVjb3JkKj4gaWNvbnM7CiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgIGljb25zLmFw
cGVuZFJhbmdlKG1faWNvbnNQZW5kaW5nUmVhZGluZy5iZWdpbigpLCBtX2ljb25zUGVuZGluZ1Jl
YWRpbmcuZW5kKCkpOwogICAgIH0KICAgICAKQEAgLTE1MDEsOSArMTUwMSw5IEBAIGJvb2wgSWNv
bkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKCkKIAogICAgICAgICAvLyBWZXJpZnkgdGhpcyBp
Y29uIHN0aWxsIHdhbnRzIHRvIGJlIHJlYWQgZnJvbSBkaXNrCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIE11dGV4TG9ja2VyIHVybExvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgICAg
IExvY2tIb2xkZXIgdXJsTG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIHJlYWRMb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xv
Y2spOworICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgcmVhZExvY2tlcihtX3BlbmRpbmdSZWFk
aW5nTG9jayk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKG1faWNvbnNQ
ZW5kaW5nUmVhZGluZy5jb250YWlucyhpY29uc1tpXSkpIHsKICAgICAgICAgICAgICAgICAgICAg
Ly8gU2V0IHRoZSBuZXcgZGF0YQpAQCAtMTU5MSwxMSArMTU5MSwxMSBAQCBib29sIEljb25EYXRh
YmFzZTo6d3JpdGVUb0RhdGFiYXNlKCkKICAgICAvLyB3ZSdsbCBwaWNrIGl0IHVwIG9uIHRoZSBu
ZXh0IHBhc3MuICBUaGlzIGdyZWF0bHkgc2ltcGxpZmllcyB0aGUgbG9ja2luZyBzdHJhdGVneSBm
b3IgdGhpcyBtZXRob2QgYW5kIHJlbWFpbnMgY29oZXNpdmUgd2l0aCBjaGFuZ2VzCiAgICAgLy8g
YXNrZWQgZm9yIGJ5IHRoZSBkYXRhYmFzZSBvbiB0aGUgbWFpbiB0aHJlYWQKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgICAgIFZlY3RvcjxJY29uU25hcHNo
b3Q+IGljb25TbmFwc2hvdHM7CiAgICAgICAgIFZlY3RvcjxQYWdlVVJMU25hcHNob3Q+IHBhZ2VT
bmFwc2hvdHM7CiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Bl
bmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdT
eW5jTG9jayk7CiAKICAgICAgICAgICAgIGljb25TbmFwc2hvdHMuYXBwZW5kUmFuZ2UobV9pY29u
c1BlbmRpbmdTeW5jLmJlZ2luKCkudmFsdWVzKCksIG1faWNvbnNQZW5kaW5nU3luYy5lbmQoKS52
YWx1ZXMoKSk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1N5bmMuY2xlYXIoKTsKQEAgLTE2
NTgsNyArMTY1OCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwcnVuZVVucmV0YWluZWRJY29ucygK
ICAgICAKICAgICBpbnQgcmVzdWx0OwogICAgIHdoaWxlICgocmVzdWx0ID0gcGFnZVNRTC5zdGVw
KCkpID09IFNRTElURV9ST1cpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsK
ICAgICAgICAgaWYgKCFtX3BhZ2VVUkxUb1JlY29yZE1hcC5jb250YWlucyhwYWdlU1FMLmdldENv
bHVtblRleHQoMSkpKQogICAgICAgICAgICAgcGFnZUlEc1RvRGVsZXRlLmFwcGVuZChwYWdlU1FM
LmdldENvbHVtbkludDY0KDApKTsKICAgICB9CkBAIC0xNzkxLDcgKzE3OTEsNyBAQCB2b2lkKiBJ
Y29uRGF0YWJhc2U6OmNsZWFudXBTeW5jVGhyZWFkKCkKICAgICB3cml0ZVRvRGF0YWJhc2UoKTsK
ICAgICAKICAgICAvLyBDbG9zZSB0aGUgZGF0YWJhc2UKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zeW5jTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgCiAg
ICAgbV9kYXRhYmFzZURpcmVjdG9yeSA9IFN0cmluZygpOwogICAgIG1fY29tcGxldGVEYXRhYmFz
ZVBhdGggPSBTdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2lmIEVO
QUJMRShJQ09OREFUQUJBU0UpCiAjaW5jbHVkZSAiU1FMaXRlRGF0YWJhc2UuaCIKICNpbmNsdWRl
ICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFz
aENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CkBAIC0xNDEsOCArMTQyLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNFbmFi
bGVkOwogICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkOwogCi0gICAgbXV0YWJsZSBN
dXRleCBtX3N5bmNMb2NrOwotICAgIFRocmVhZENvbmRpdGlvbiBtX3N5bmNDb25kaXRpb247Cisg
ICAgbXV0YWJsZSBMb2NrIG1fc3luY0xvY2s7CisgICAgQ29uZGl0aW9uIG1fc3luY0NvbmRpdGlv
bjsKICAgICBTdHJpbmcgbV9kYXRhYmFzZURpcmVjdG9yeTsKICAgICAvLyBIb2xkaW5nIG1fc3lu
Y0xvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9jb21wbGV0ZURhdGFiYXNlUGF0aAog
ICAgIFN0cmluZyBtX2NvbXBsZXRlRGF0YWJhc2VQYXRoOwpAQCAtMTUzLDI0ICsxNTQsMjQgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fc3luY1RocmVhZEhhc1dvcmtUb0RvOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxTdWRkZW5UZXJtaW5hdGlvbkRpc2FibGVyPiBtX2Rpc2FibGVTdWRkZW5UZXJtaW5h
dGlvbldoaWxlU3luY1RocmVhZEhhc1dvcmtUb0RvOwogCi0gICAgTXV0ZXggbV91cmxBbmRJY29u
TG9jazsKKyAgICBMb2NrIG1fdXJsQW5kSWNvbkxvY2s7CiAgICAgLy8gSG9sZGluZyBtX3VybEFu
ZEljb25Mb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUgZm9sbG93aW5n
IGRhdGEgc3RydWN0dXJlcyBvciB0aGUgb2JqZWN0cyB0aGV5IGNvbnRhaW4KICAgICBIYXNoTWFw
PFN0cmluZywgSWNvblJlY29yZCo+IG1faWNvblVSTFRvUmVjb3JkTWFwOwogICAgIEhhc2hNYXA8
U3RyaW5nLCBQYWdlVVJMUmVjb3JkKj4gbV9wYWdlVVJMVG9SZWNvcmRNYXA7CiAgICAgSGFzaFNl
dDxTdHJpbmc+IG1fcmV0YWluZWRQYWdlVVJMczsKIAotICAgIE11dGV4IG1fcGVuZGluZ1N5bmNM
b2NrOworICAgIExvY2sgbV9wZW5kaW5nU3luY0xvY2s7CiAgICAgLy8gSG9sZGluZyBtX3BlbmRp
bmdTeW5jTG9jayBpcyByZXF1aXJlZCB3aGVuIGFjY2Vzc2luZyBhbnkgb2YgdGhlIGZvbGxvd2lu
ZyBkYXRhIHN0cnVjdHVyZXMKICAgICBIYXNoTWFwPFN0cmluZywgUGFnZVVSTFNuYXBzaG90PiBt
X3BhZ2VVUkxzUGVuZGluZ1N5bmM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIEljb25TbmFwc2hvdD4g
bV9pY29uc1BlbmRpbmdTeW5jOwogICAgIAotICAgIE11dGV4IG1fcGVuZGluZ1JlYWRpbmdMb2Nr
OyAgICAKKyAgICBMb2NrIG1fcGVuZGluZ1JlYWRpbmdMb2NrOyAgICAKICAgICAvLyBIb2xkaW5n
IG1fcGVuZGluZ1N5bmNMb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUg
Zm9sbG93aW5nIGRhdGEgc3RydWN0dXJlcyAtIHdoZW4gZGVhbGluZyB3aXRoIEljb25SZWNvcmQq
cywgaG9sZGluZyBtX3VybEFuZEljb25Mb2NrIGlzIGFsc28gcmVxdWlyZWQKICAgICBIYXNoU2V0
PFN0cmluZz4gbV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQ7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1f
cGFnZVVSTHNJbnRlcmVzdGVkSW5JY29uczsKICAgICBIYXNoU2V0PEljb25SZWNvcmQqPiBtX2lj
b25zUGVuZGluZ1JlYWRpbmc7CiAKLSAgICBNdXRleCBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2s7CisgICAgTG9jayBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2s7CiAgICAgLy8gSG9sZGlu
ZyBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3Npbmcg
YW55IG9mIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzLgogICAgIEhhc2hDb3VudGVkU2V0
PFN0cmluZz4gbV91cmxzVG9SZXRhaW47CiAgICAgSGFzaENvdW50ZWRTZXQ8U3RyaW5nPiBtX3Vy
bHNUb1JlbGVhc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5
LDcgQEAgU2Nyb2xsaW5nVHJlZTo6flNjcm9sbGluZ1RyZWUoKQogYm9vbCBTY3JvbGxpbmdUcmVl
OjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseShjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgLy8gVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0
aGUgZXZlbnQgaGFuZGxpbmcgdGhyZWFkCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAKICAgICBib29sIHNob3VsZFNldExhdGNo
ID0gd2hlZWxFdmVudC5zaG91bGRDb25zaWRlckxhdGNoaW5nKCk7CiAgICAgCkBAIC0xMTUsNyAr
MTE1LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3RhdGUocwogICAgICAg
ICAmJiAocm9vdFN0YXRlTm9kZUNoYW5nZWQKICAgICAgICAgICAgIHx8IHJvb3ROb2RlLT5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6Ok5vbkZhc3RT
Y3JvbGxhYmxlUmVnaW9uKQogICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlNjcm9sbExheWVyKSkpIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwog
CiAgICAgICAgIGlmIChyb290U3RhdGVOb2RlQ2hhbmdlZCB8fCByb290Tm9kZS0+aGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5ZXIpKQogICAgICAgICAgICAg
bV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IEZsb2F0UG9pbnQoKTsKQEAgLTIwOCw3ICsyMDgs
NyBAQCBTY3JvbGxpbmdUcmVlTm9kZSogU2Nyb2xsaW5nVHJlZTo6bm9kZUZvCiAKIHZvaWQgU2Ny
b2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQsIGJv
b2wgcGlubmVkVG9UaGVSaWdodCwgYm9vbCBwaW5uZWRUb1RoZVRvcCwgYm9vbCBwaW5uZWRUb1Ro
ZUJvdHRvbSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIG1fbWFpbkZy
YW1lUGlubmVkVG9UaGVMZWZ0ID0gcGlubmVkVG9UaGVMZWZ0OwogICAgIG1fbWFpbkZyYW1lUGlu
bmVkVG9UaGVSaWdodCA9IHBpbm5lZFRvVGhlUmlnaHQ7CkBAIC0yMTgsNTQgKzIxOCw1NCBAQCB2
b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlCiAKIEZsb2F0UG9pbnQgU2Ny
b2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIHJldHVy
biBtX21haW5GcmFtZVNjcm9sbFBvc2l0aW9uOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNl
dE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQgcG9zaXRpb24pCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAg
ICAgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IHBvc2l0aW9uOwogfQogCiBib29sIFNjcm9s
bGluZ1RyZWU6OmlzUG9pbnRJbk5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKEludFBvaW50IHApCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9t
dXRleCk7CiAgICAgCiAgICAgcmV0dXJuIG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb24uY29udGFp
bnMocCk7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsgICAgCisgICAgTG9ja0hvbGRlciBs
b2NrKG1fbXV0ZXgpOyAgICAKIAogICAgIHJldHVybiBtX21haW5GcmFtZUlzUnViYmVyQmFuZGlu
ZzsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmco
Ym9vbCBpc1J1YmJlckJhbmRpbmcpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgbV9tYWluRnJhbWVJc1J1
YmJlckJhbmRpbmcgPSBpc1J1YmJlckJhbmRpbmc7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6
aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgCiAgICAgcmV0dXJuIG1fbWFp
bkZyYW1lSXNTY3JvbGxTbmFwcGluZzsKIH0KICAgICAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0
TWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyhib29sIGlzU2Nyb2xsU25hcHBpbmcpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0
ZXgpOwogICAgIAogICAgIG1fbWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyA9IGlzU2Nyb2xsU25h
cHBpbmc7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0Q2FuUnViYmVyQmFuZFN0YXRlKGJv
b2wgY2FuUnViYmVyQmFuZEF0TGVmdCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgYm9vbCBj
YW5SdWJiZXJCYW5kQXRUb3AsIGJvb2wgY2FuUnViYmVyQmFuZEF0Qm90dG9tKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgbV9ydWJiZXJCYW5kc0F0TGVmdCA9IGNhblJ1
YmJlckJhbmRBdExlZnQ7CiAgICAgbV9ydWJiZXJCYW5kc0F0UmlnaHQgPSBjYW5SdWJiZXJCYW5k
QXRSaWdodDsKQEAgLTI3NSwyOCArMjc1LDI4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0Q2Fu
UnViYmVyQmFuZFN0YXQKIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVmdCgp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRz
QXRMZWZ0OwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRSaWdodCgpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRl
ciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRzQXRS
aWdodDsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0Qm90dG9tKCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJv
dHRvbTsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdFRvcDsK
IH0KQEAgLTMwOCwxNCArMzA4LDE0IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNIYW5kbGluZ1By
b2dyYW1tYXQKIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3Io
U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHBpbm5pbmcpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N3aXBlU3RhdGVN
dXRleCk7CiAgICAgCiAgICAgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBwaW5uaW5nOwogfQog
CiBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsUGlubmluZ0JlaGF2
aW9yKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogICAgIAogICAgIHJldHVybiBtX3Nj
cm9sbFBpbm5pbmdCZWhhdmlvcjsKIH0KQEAgLTMyNSw3ICszMjUsNyBAQCBib29sIFNjcm9sbGlu
Z1RyZWU6OndpbGxXaGVlbEV2ZW50U3RhcnRTCiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSAh
PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFYKCkg
PiAwICYmIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0ICYmICFtX3J1YmJlckJhbmRzQXRMZWZ0
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTM1MSwxOSArMzUxLDE5IEBAIGJvb2wgU2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nUGVyZm9ybWFuY2UKIAogU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGlu
Z1RyZWU6OmxhdGNoZWROb2RlKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fbGF0Y2hlZE5v
ZGU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TGF0Y2hlZE5vZGUoU2Nyb2xsaW5nTm9k
ZUlEIG5vZGUpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIG1fbGF0Y2hlZE5vZGUgPSBub2RlOwogfQogCiB2
b2lkIFNjcm9sbGluZ1RyZWU6OmNsZWFyTGF0Y2hlZE5vZGUoKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICBt
X2xhdGNoZWROb2RlID0gMDsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJX
aGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBAIC0xNjAsMTEgKzE2MSwxMSBAQCBwcml2YXRl
OgogICAgIHR5cGVkZWYgSGFzaE1hcDxTY3JvbGxpbmdOb2RlSUQsIFNjcm9sbGluZ1RyZWVOb2Rl
Kj4gU2Nyb2xsaW5nVHJlZU5vZGVNYXA7CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGVNYXAgbV9ub2Rl
TWFwOwogCi0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAgICAgUmVnaW9u
IG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb247CiAgICAgRmxvYXRQb2ludCBtX21haW5GcmFtZVNj
cm9sbFBvc2l0aW9uOwogCi0gICAgTXV0ZXggbV9zd2lwZVN0YXRlTXV0ZXg7CisgICAgTG9jayBt
X3N3aXBlU3RhdGVNdXRleDsKICAgICBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5u
aW5nQmVoYXZpb3IgeyBEb05vdFBpbiB9OwogICAgIFNjcm9sbGluZ05vZGVJRCBtX2xhdGNoZWRO
b2RlIHsgMCB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4K
ICNlbGlmIE9TKExJTlVYKQogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0xMzcsNyArMTM4LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fY2xlYXJQcmVzc3VyZU9uTWVtb3J5UmVsZWFzZTsKICAgICB2
b2lkIChebV9yZWxlYXNlTWVtb3J5QmxvY2spKCk7CiAgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYg
bV9vYnNlcnZlcjsKLSAgICBNdXRleCBtX29ic2VydmVyTXV0ZXg7CisgICAgTG9jayBtX29ic2Vy
dmVyTXV0ZXg7CiAjZWxpZiBPUyhMSU5VWCkKICAgICBpbnQgbV9ldmVudEZEOwogICAgIGludCBt
X3ByZXNzdXJlTGV2ZWxGRDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZEYXRhYmFzZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgSFJURkRhdGFiYXNlTG9hZGVyOjpsb2Fk
QXN5bmNocm9ub3UKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdGhyZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aHJl
YWRMb2NrKTsKICAgICAKICAgICBpZiAoIW1faHJ0ZkRhdGFiYXNlLmdldCgpICYmICFtX2RhdGFi
YXNlTG9hZGVyVGhyZWFkKSB7CiAgICAgICAgIC8vIFN0YXJ0IHRoZSBhc3luY2hyb25vdXMgZGF0
YWJhc2UgbG9hZGluZyBwcm9jZXNzLgpAQCAtMTE3LDcgKzExNyw3IEBAIGJvb2wgSFJURkRhdGFi
YXNlTG9hZGVyOjppc0xvYWRlZCgpIGNvbnMKIAogdm9pZCBIUlRGRGF0YWJhc2VMb2FkZXI6Ondh
aXRGb3JMb2FkZXJUaHJlYWRDb21wbGV0aW9uKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90aHJlYWRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RocmVhZExvY2spOwogICAg
IAogICAgIC8vIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQg
dHdpY2UgZm9yIHRoZSBzYW1lIHRocmVhZC4KICAgICBpZiAobV9kYXRhYmFzZUxvYWRlclRocmVh
ZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRh
YmFzZUxvYWRlci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KQEAgLTc2LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8SFJURkRhdGFiYXNlPiBtX2hydGZEYXRhYmFzZTsKIAogICAgIC8vIEhvbGRpbmcgYSBtX3Ro
cmVhZExvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9kYXRhYmFzZUxvYWRlclRocmVh
ZC4KLSAgICBNdXRleCBtX3RocmVhZExvY2s7CisgICAgTG9jayBtX3RocmVhZExvY2s7CiAgICAg
VGhyZWFkSWRlbnRpZmllciBtX2RhdGFiYXNlTG9hZGVyVGhyZWFkOwogCiAgICAgZmxvYXQgbV9k
YXRhYmFzZVNhbXBsZVJhdGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQkocmV2aXNpb24g
MTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIE1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0UmVjZWl2ZWRNCiAgICAgbV91bmRlck1lbW9yeVByZXNz
dXJlID0gdHJ1ZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2JzZXJ2
ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CiAg
ICAgICAgIGlmICghbV9vYnNlcnZlcikgewogICAgICAgICAgICAgbV9vYnNlcnZlciA9IENGUnVu
TG9vcE9ic2VydmVyQ3JlYXRlKE5VTEwsIGtDRlJ1bkxvb3BCZWZvcmVXYWl0aW5nIHwga0NGUnVu
TG9vcEV4aXQsIE5PIC8qIGRvbid0IHJlcGVhdCAqLywKICAgICAgICAgICAgICAgICAwLCBXZWJD
b3JlOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUNhbGxiYWNrLCBOVUxMKTsKQEAgLTI3MiwxNCAr
MjcyLDE0IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpjbGVhck1lbW9yeVAKICAgICBt
X3VuZGVyTWVtb3J5UHJlc3N1cmUgPSBmYWxzZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
b2JzZXJ2ZXJNdXRleCk7CiAgICAgICAgIG1fbWVtb3J5UHJlc3N1cmVSZWFzb24gPSBNZW1vcnlQ
cmVzc3VyZVJlYXNvbk5vbmU7CiAgICAgfQogfQogCiBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6c2hvdWxkV2FpdEZvck1lbW9yeUNsZWFyTWVzc2FnZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vYnNlcnZl
ck11dGV4KTsKICAgICByZXR1cm4gbV9tZW1vcnlQcmVzc3VyZVJlYXNvbiAmIE1lbW9yeVByZXNz
dXJlUmVhc29uVk1TdGF0dXM7CiB9CiAKQEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtCiAgICAgQVNTRVJUKFdlYlRocmVhZElzTG9ja2Vk
T3JEaXNhYmxlZCgpKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2Jz
ZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7
CiAgICAgICAgIG1fb2JzZXJ2ZXIgPSAwOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3Iu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmUKICAgICBkb3VibGUg
bW9ub3RvbmljQW5pbWF0aW9uU3RhcnRUaW1lOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAg
ICAgIGlmICghbV9zY2hlZHVsZWQpCiAgICAgICAgICAgICArK21fdW5zY2hlZHVsZWRGaXJlQ291
bnQ7CiAgICAgICAgIGVsc2UKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIERpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlzcGxheURpZFJlCiAgICAgICAgIG1fY2xpZW50c1RvQmVOb3RpZmllZCA9IG51
bGxwdHI7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9wcmV2aW91c0ZyYW1lRG9u
ZSA9IHRydWU7CiAgICAgfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw5ICszMCw5IEBACiAKICNp
bmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1vbm90
b25pY0FuaW1hdGlvblN0YXJ0VGltZShkb3VibGUgc3RhcnRUaW1lKSB7IG1fbW9ub3RvbmljQW5p
bWF0aW9uU3RhcnRUaW1lID0gc3RhcnRUaW1lOyB9CiAKLSAgICBNdXRleCYgbXV0ZXgoKSB7IHJl
dHVybiBtX211dGV4OyB9CisgICAgTG9jayYgbXV0ZXgoKSB7IHJldHVybiBtX211dGV4OyB9CiAK
ICAgICBzdGF0aWMgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGVmYXVsdERp
c3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTg5LDcgKzg5LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcHJldmlvdXNGcmFtZURvbmU7CiAgICAgaW50IG1fdW5z
Y2hlZHVsZWRGaXJlQ291bnQ7IC8vIE51bWJlciBvZiB0aW1lcyB0aGUgZGlzcGxheSBsaW5rIGhh
cyBmaXJlZCB3aXRoIG5vIGNsaWVudHMuCiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNwbGF5
SUQ7Ci0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAKICAgICBIYXNoU2V0
PERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+IG1fY2xpZW50czsKICAgICBIYXNoU2V0PERp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+KiBtX2NsaWVudHNUb0JlTm90aWZpZWQ7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTczNSw3ICs3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6c2V0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpz
ZXREZWxheUNhbGxiYWNrcyhib29sIGRlbGF5KSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKICAg
ICBpZiAoZGVsYXkpCiAgICAgICAgICsrbV9kZWxheUNhbGxiYWNrczsKICAgICBlbHNlIHsKQEAg
LTc1NCw3ICs3NTQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bWFp
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1haW5UaHJlYWRQ
ZW5kaW5nRmxhZygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgIG1fbWFpblRocmVhZENhbGxQZW5k
aW5nID0gZmFsc2U7CiB9CiAKQEAgLTgyMCw3ICs4MjAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6ZGlzCiAKICAgICBOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uID0g
Tm90aWZpY2F0aW9uKCk7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVN
dXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgICAgICAK
ICAgICAgICAgaWYgKG1fcXVldWVkTm90aWZpY2F0aW9ucy5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiVGltZXIu
aCIKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIApAQCAtMzE3LDcgKzMxOCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IG1fcGVuZGluZ1NlZWs7CiAKICAgICBWZWN0b3I8Tm90aWZpY2F0aW9u
PiBtX3F1ZXVlZE5vdGlmaWNhdGlvbnM7Ci0gICAgbXV0YWJsZSBNdXRleCBtX3F1ZXVlTXV0ZXg7
CisgICAgbXV0YWJsZSBMb2NrIG1fcXVldWVNdXRleDsKIAogICAgIG11dGFibGUgc3RkOjp1bmlx
dWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gbV9jYWNoZWRMb2FkZWRUaW1lUmFuZ2VzOwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw3ICsxNTgsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIGlubGluZSB2b2lkKiBjYWxsYmFja0NvbnRleHQoKSBjb25zdCB7IHJl
dHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPihtX29iamVjdElEKTsgfQogCi0gICAgc3RhdGlj
IE11dGV4JiBtYXBMb2NrKCk7CisgICAgc3RhdGljIExvY2smIG1hcExvY2soKTsKICAgICBzdGF0
aWMgSGFzaE1hcDx1aW50cHRyX3QsIEFWRldyYXBwZXIqPiYgbWFwKCk7CiAgICAgc3RhdGljIEFW
RldyYXBwZXIqIGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQodm9pZCopOwogICAgIHZvaWQg
YWRkVG9NYXAoKTsKQEAgLTE0MDQsOSArMTQwNCw5IEBAIEFWRldyYXBwZXI6On5BVkZXcmFwcGVy
KCkKICAgICBtX2F2UGxheWVyID0gMDsKIH0KIAotTXV0ZXgmIEFWRldyYXBwZXI6Om1hcExvY2so
KQorTG9jayYgQVZGV3JhcHBlcjo6bWFwTG9jaygpCiB7Ci0gICAgc3RhdGljIE11dGV4IG1hcExv
Y2s7CisgICAgc3RhdGljIExvY2sgbWFwTG9jazsKICAgICByZXR1cm4gbWFwTG9jazsKIH0KIApA
QCAtMTQxOCw3ICsxNDE4LDcgQEAgSGFzaE1hcDx1aW50cHRyX3QsIEFWRldyYXBwZXIqPiYgQVZG
V3JhcAogCiB2b2lkIEFWRldyYXBwZXI6OmFkZFRvTWFwKCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAg
IAogICAgIC8vIEhhc2hNYXAgZG9lc24ndCBsaWtlIGEga2V5IG9mIDAsIGFuZCBhbHNvIG1ha2Ug
c3VyZSB3ZSBhcmVuJ3QKICAgICAvLyB1c2luZyBhbiBvYmplY3QgSUQgdGhhdCdzIGFscmVhZHkg
aW4gdXNlLgpAQCAtMTQzNCw3ICsxNDM0LDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpyZW1vdmVGcm9t
TWFwKCkgY29uc3QKIHsKICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpyZW1vdmVGcm9tTWFw
KCVwICVkKSIsIHRoaXMsIG1fb2JqZWN0SUQpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1h
cExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBtYXAoKS5y
ZW1vdmUobV9vYmplY3RJRCk7CiB9CiAKQEAgLTE2MzUsNyArMTYzNSw3IEBAIHZvaWQgQVZGV3Jh
cHBlcjo6Y3JlYXRlUGxheWVySXRlbSgpCiAKIHZvaWQgQVZGV3JhcHBlcjo6cGVyaW9kaWNUaW1l
T2JzZXJ2ZXJDYWxsYmFjayhBVkNGUGxheWVyUmVmLCBDTVRpbWUgY21UaW1lLCB2b2lkKiBjb250
ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJG
b3JDYWxsYmFja0NvbnRleHQoY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExP
RyhNZWRpYSwgIkFWRldyYXBwZXI6OnBlcmlvZGljVGltZU9ic2VydmVyQ2FsbGJhY2sgaW52b2tl
ZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KGNvbnRleHQpKTsKQEAgLTE2NjYsNyArMTY2Niw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vz
c05vdGlmaWNhdGlvbih2b2kKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxOb3RpZmljYXRpb25DYWxs
YmFja0RhdGE+IG5vdGlmaWNhdGlvbkRhdGEgeyBzdGF0aWNfY2FzdDxOb3RpZmljYXRpb25DYWxs
YmFja0RhdGEqPihjb250ZXh0KSB9OwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2so
KSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBz
ZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChub3RpZmljYXRpb25EYXRhLT5tX2Nv
bnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVy
Ojpwcm9jZXNzTm90aWZpY2F0aW9uIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xNzIxLDcgKzE3MjEs
NyBAQCB2b2lkIEFWRldyYXBwZXI6Om5vdGlmaWNhdGlvbkNhbGxiYWNrKENGCiAKIHZvaWQgQVZG
V3JhcHBlcjo6bG9hZFBsYXlhYmxlQ29tcGxldGlvbkNhbGxiYWNrKEFWQ0ZBc3NldFJlZiwgdm9p
ZCogY29udGV4dCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZX
cmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAg
ICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpsb2FkUGxheWFibGVDb21wbGV0aW9uQ2FsbGJh
Y2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE3NDksNyArMTc0OSw3IEBAIHZvaWQgQVZGV3JhcHBl
cjo6Y2hlY2tQbGF5YWJpbGl0eSgpCiAKIHZvaWQgQVZGV3JhcHBlcjo6bG9hZE1ldGFkYXRhQ29t
cGxldGlvbkNhbGxiYWNrKEFWQ0ZBc3NldFJlZiwgdm9pZCogY29udGV4dCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2Nr
KCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0
KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFw
cGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBB
VkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAg
LTE3NjksNyArMTc2OSw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6YmVnaW5Mb2FkaW5nTWV0YWRhdGEo
KQogCiB2b2lkIEFWRldyYXBwZXI6OnNlZWtDb21wbGV0ZWRDYWxsYmFjayhBVkNGUGxheWVySXRl
bVJlZiwgQm9vbGVhbiBmaW5pc2hlZCwgdm9pZCogY29udGV4dCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwog
ICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRl
eHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpz
ZWVrQ29tcGxldGVkQ2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwg
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4MTIsNyArMTgxMiw3
IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc0N1ZSh2b2lkKiBjb250ZXgKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxMZWdpYmxlT3V0cHV0RGF0YT4gbGVnaWJsZU91dHB1dERhdGEocmVpbnRlcnBy
ZXRfY2FzdDxMZWdpYmxlT3V0cHV0RGF0YSo+KGNvbnRleHQpKTsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAg
ICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQobGVnaWJs
ZU91dHB1dERhdGEtPm1fY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExPRyhN
ZWRpYSwgIkFWRldyYXBwZXI6OnByb2Nlc3NDdWUgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFw
cGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4Mjgs
NyArMTgyOCw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc0N1ZSh2b2lkKiBjb250ZXgKIHZv
aWQgQVZGV3JhcHBlcjo6bGVnaWJsZU91dHB1dENhbGxiYWNrKHZvaWQqIGNvbnRleHQsIEFWQ0ZQ
bGF5ZXJJdGVtTGVnaWJsZU91dHB1dFJlZiBsZWdpYmxlT3V0cHV0LCBDRkFycmF5UmVmIGF0dHJp
YnV0ZWRTdHJpbmdzLCBDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZUJ1ZmZlcnMsIENNVGltZSBpdGVt
VGltZSkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAg
IEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRleHQp
OwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpsZWdp
YmxlT3V0cHV0Q2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4NjYsNyArMTg2Niw3IEBA
IHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc1Nob3VsZFdhaXRGb3JMb2EKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxMb2FkUmVxdWVzdERhdGE+IGxvYWRSZXF1ZXN0RGF0YShyZWludGVycHJldF9jYXN0
PExvYWRSZXF1ZXN0RGF0YSo+KGNvbnRleHQpKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
YXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3Jh
cHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQobG9hZFJlcXVlc3REYXRh
LT5tX2NvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZX
cmFwcGVyOjpwcm9jZXNzU2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlc291cmNlIGludm9rZWQgZm9y
IGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250
ZXh0KSk7CkBAIC0xOTIyLDcgKzE5MjIsNyBAQCBib29sIEFWRldyYXBwZXI6OnNob3VsZFdhaXRG
b3JMb2FkaW5nT2ZSCiBCb29sZWFuIEFWRldyYXBwZXI6OnJlc291cmNlTG9hZGVyU2hvdWxkV2Fp
dEZvckxvYWRpbmdPZlJlcXVlc3RlZFJlc291cmNlKEFWQ0ZBc3NldFJlc291cmNlTG9hZGVyUmVm
IHJlc291cmNlTG9hZGVyLCBBVkNGQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0UmVmIGxvYWRp
bmdSZXF1ZXN0LCB2b2lkICpjb250ZXh0KQogewogICAgIEFTU0VSVChkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpICE9IGRpc3BhdGNoX2dldF9jdXJyZW50X3F1ZXVlKCkpOwotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7
CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQoY29u
dGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6
OnJlc291cmNlTG9hZGVyU2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlcXVlc3RlZFJlc291cmNlIGlu
dm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihjb250ZXh0KSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpoYQogewogICAgIG1fc2FtcGxlVGltZXJIYW5kbGVy
LmNhbmNlbCgpOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3NhbXBsZU11dGV4
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fc2FtcGxlTXV0ZXgpOwogICAgICAgICBtX3Bl
bmRpbmdTYW1wbGVzLmFwcGVuZChzYW1wbGUpOwogICAgIH0KICAgICBtX3NhbXBsZVRpbWVySGFu
ZGxlci5zY2hlZHVsZSgiW1dlYktpdF0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6
bm90aWZ5VHJhY2tPZlNhbXBsZSIsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPihzdGQ6OmJpbmQoJklu
YmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTYW1wbGUsIHRoaXMp
KSk7CkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1l
cjo6bm8KIHsKICAgICBWZWN0b3I8R1JlZlB0cjxHc3RTYW1wbGU+ID4gc2FtcGxlczsKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9zYW1wbGVNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKICAgICAgICAgbV9wZW5kaW5nU2FtcGxlcy5zd2Fw
KHNhbXBsZXMpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFt
ZXIuaCIKICNpbmNsdWRlIDx3dGYvZ2xpYi9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmg+Cisj
aW5jbHVkZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Nyw3ICs2
OCw3IEBAIHByaXZhdGU6CiAgICAgZ3Vsb25nIG1fZXZlbnRQcm9iZTsKICAgICBWZWN0b3I8R1Jl
ZlB0cjxHc3RTYW1wbGU+ID4gbV9wZW5kaW5nU2FtcGxlczsKICAgICBTdHJpbmcgbV9zdHJlYW1J
ZDsKLSAgICBNdXRleCBtX3NhbXBsZU11dGV4OworICAgIExvY2sgbV9zYW1wbGVNdXRleDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQ
cml2YXRlQmFzZUdTdHJlYW1lci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgVHJhY2tQcml2YXRl
QmFzZUdTdHJlYW1lcjo6dGFnc0NoYW4KICAgICBHUmVmUHRyPEdzdFRhZ0xpc3Q+IHRhZ3M7CiAg
ICAgZ19vYmplY3RfZ2V0KG1fcGFkLmdldCgpLCAidGFncyIsICZ0YWdzLm91dFB0cigpLCBOVUxM
KTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV90YWdNdXRleCk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9jayhtX3RhZ011dGV4KTsKICAgICAgICAgbV90YWdzLnN3YXAodGFncyk7
CiAgICAgfQogCkBAIC0xNTgsNyArMTU4LDcgQEAgdm9pZCBUcmFja1ByaXZhdGVCYXNlR1N0cmVh
bWVyOjpub3RpZnlUcgogCiAgICAgR1JlZlB0cjxHc3RUYWdMaXN0PiB0YWdzOwogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RhZ011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBs
b2NrKG1fdGFnTXV0ZXgpOwogICAgICAgICB0YWdzLnN3YXAobV90YWdzKTsKICAgICB9CiAgICAg
aWYgKCF0YWdzKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBF
TkFCTEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgog
I2luY2x1ZGUgPHd0Zi9nbGliL0dUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTczLDcgKzc0LDcgQEAgcHJpdmF0ZToKICAgICBH
VGhyZWFkU2FmZU1haW5Mb29wU291cmNlIG1fYWN0aXZlVGltZXJIYW5kbGVyOwogICAgIEdUaHJl
YWRTYWZlTWFpbkxvb3BTb3VyY2UgbV90YWdUaW1lckhhbmRsZXI7CiAKLSAgICBNdXRleCBtX3Rh
Z011dGV4OworICAgIExvY2sgbV90YWdNdXRleDsKICAgICBHUmVmUHRyPEdzdFRhZ0xpc3Q+IG1f
dGFnczsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9E
aXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCShyZXZp
c2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlz
cGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsMTQgKzg0LDE0
IEBAIGJvb2wgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpyZXF1ZXN0UmUKICAgICAgICAgc2V0
SXNBY3RpdmUodHJ1ZSk7CiAgICAgfQogCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtdXRleCgpKTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobXV0ZXgoKSk7CiAgICAgc2V0SXNTY2hlZHVsZWQodHJ1ZSk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpk
aXNwbGF5TGlua0ZpcmVkKGRvdWJsZSBub3dTZWNvbmRzLCBkb3VibGUgb3V0cHV0VGltZVNlY29u
ZHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobXV0ZXgoKSk7CiAgICAgaWYgKCFpc1ByZXZpb3VzRnJhbWVEb25lKCkpCiAgICAgICAgIHJl
dHVybjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbi5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MTIsMjEgKzUxMiwyMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbjo6CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjph
ZGRMaXN0ZW5lcihNZWRpYVBsYXllckxpc3RlbmVyKiBsaXN0ZW5lcikKIHsKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9t
dXRleExpc3RlbmVycyk7CiAKICAgICBtX2xpc3RlbmVycy5hZGQobGlzdGVuZXIpOwogfQogCiB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVtb3ZlTGlzdGVuZXIoTWVk
aWFQbGF5ZXJMaXN0ZW5lciogbGlzdGVuZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
bXV0ZXhMaXN0ZW5lcnMpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5lcnMp
OwogCiAgICAgbV9saXN0ZW5lcnMucmVtb3ZlKGxpc3RlbmVyKTsKIH0KIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246Om5vdGlmeURlbGV0ZWQoKQogewotICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX211dGV4TGlzdGVuZXJzKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X211dGV4TGlzdGVuZXJzKTsKIAogICAgIGZvciAoSGFzaFNldDxNZWRpYVBsYXllckxpc3RlbmVy
Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9saXN0ZW5lcnMuYmVnaW4oKTsgaXQgIT0gbV9saXN0
ZW5lcnMuZW5kKCk7ICsraXQpCiAgICAgICAgICgqaXQpLT5vbk1lZGlhUGxheWVyRGVsZXRlZCgp
OwpAQCAtNzA0LDcgKzcwNCw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgTWVkaWFQbGF5
ZXJQcmkKIAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Okludm9rZShfX1JQQ19faW5fb3B0IElNRkFzeW5j
UmVzdWx0ICpwQXN5bmNSZXN1bHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKCFtX21lZGlhUGxh
eWVyKQogICAgICAgICByZXR1cm4gU19PSzsKQEAgLTcxOSw3ICs3MTksNyBAQCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIE1lZGlhUGxheWVyUHJpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFGb3VuZGF0aW9uOjpBc3luY0NhbGxiYWNrOjpvbk1lZGlhUGxheWVyRGVsZXRlZCgpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fbXV0ZXgpOwogCiAgICAgbV9tZWRpYVBsYXllciA9IG51bGxwdHI7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oCShyZXZpc2lvbiAxODg1
NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFGb3VuZGF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcgQEAg
cHJpdmF0ZToKIAogICAgIGNsYXNzIE1lZGlhUGxheWVyTGlzdGVuZXI7CiAgICAgSGFzaFNldDxN
ZWRpYVBsYXllckxpc3RlbmVyKj4gbV9saXN0ZW5lcnM7Ci0gICAgTXV0ZXggbV9tdXRleExpc3Rl
bmVyczsKKyAgICBMb2NrIG1fbXV0ZXhMaXN0ZW5lcnM7CiAKICAgICBDT01QdHI8SU1GTWVkaWFT
ZXNzaW9uPiBtX21lZGlhU2Vzc2lvbjsKICAgICBDT01QdHI8SU1GU291cmNlUmVzb2x2ZXI+IG1f
c291cmNlUmVzb2x2ZXI7CkBAIC0xNDksNyArMTQ5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVUxP
TkcgbV9yZWZDb3VudDsKICAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
KiBtX21lZGlhUGxheWVyOwogICAgICAgICBib29sIG1fZXZlbnQ7Ci0gICAgICAgIE11dGV4IG1f
bXV0ZXg7CisgICAgICAgIExvY2sgbV9tdXRleDsKICAgICB9OwogCiB9OwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaAkocmV2aXNpb24gMTg4
NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2lu
Y2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTIxMSw5ICsyMTIsOSBAQCBwcml2
YXRlOgogICAgIGZsb2F0IG1fcGVuZGluZ1NjYWxlOwogICAgIGZsb2F0IG1fcGVuZGluZ1pvb21l
ZE91dFNjYWxlOwogCi0gICAgbXV0YWJsZSBNdXRleCBtX3RpbGVNdXRleDsKLSAgICBtdXRhYmxl
IE11dGV4IG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4OwotICAgIG11dGFibGUgTXV0ZXggbV9jb250
ZW50UmVwbGFjZW1lbnRJbWFnZU11dGV4OworICAgIG11dGFibGUgTG9jayBtX3RpbGVNdXRleDsK
KyAgICBtdXRhYmxlIExvY2sgbV9zYXZlZERpc3BsYXlSZWN0TXV0ZXg7CisgICAgbXV0YWJsZSBM
b2NrIG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRleDsKIAogICAgIGJvb2wgbV90aWxlQ29u
dHJvbGxlclNob3VsZFVzZUxvd1NjYWxlVGlsZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tCShyZXZpc2lvbiAxODg1NjkpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldFRpbGVz
T3BhcXVlKGJvbwogICAgIGlmIChtX3RpbGVzT3BhcXVlID09IG9wYXF1ZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAKICAgICBtX3RpbGVzT3BhcXVlID0gb3BhcXVlOwog
ICAgIG1fem9vbWVkT3V0VGlsZUdyaWQtPnVwZGF0ZVRpbGVPcGFjaXR5KCk7CkBAIC0xNjAsNyAr
MTYwLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmRvTGF5b3V0VGlsZXMoKQogICAgIGlmIChp
c1RpbGVDcmVhdGlvblN1c3BlbmRlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11
dGV4KTsKICAgICBMZWdhY3lUaWxlR3JpZCogYWN0aXZlR3JpZCA9IGFjdGl2ZVRpbGVHcmlkKCk7
CiAgICAgLy8gRXZlbiB0aG91Z2ggd2UgYXJlbid0IGFjdHVhbGx5IGNyZWF0aW5nIHRpbGVzIGlu
IHRoZSBpbmFjdGl2ZSBncmlkLCB3ZQogICAgIC8vIHN0aWxsIG5lZWQgdG8gZHJvcCBpbnZhbGlk
IHRpbGVzIGluIHJlc3BvbnNlIHRvIGEgbGF5b3V0LgpAQCAtMjAwLDcgKzIwMCw3IEBAIHZvaWQg
TGVnYWN5VGlsZUNhY2hlOjpzZXRDdXJyZW50U2NhbGUoZmwKICAgICBpZiAoIWtlZXBzWm9vbWVk
T3V0VGlsZXMoKSAmJiAhaXNUaWxlSW52YWxpZGF0aW9uU3VzcGVuZGVkKCkpIHsKICAgICAgICAg
Ly8gVGlsZSBpbnZhbGlkYXRpb24gaXMgbm9ybWFsbHkgc3VzcGVuZGVkIGR1cmluZyB6b29taW5n
IGJ5IFVJS2l0IGJ1dCBzb21lIGFwcGxpY2F0aW9ucwogICAgICAgICAvLyB1c2luZyBjdXN0b20g
c2Nyb2xsdmlld3MgbWF5IHpvb20gd2l0aG91dCB0cmlnZ2VyaW5nIHRoZSBjYWxsYmFja3MuIElu
dmFsaWRhdGUgdGhlIHRpbGVzIGV4cGxpY2l0bHkuCi0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3RpbGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsK
ICAgICAgICAgYWN0aXZlVGlsZUdyaWQoKS0+ZHJvcEFsbFRpbGVzKCk7CiAgICAgICAgIGFjdGl2
ZVRpbGVHcmlkKCktPmNyZWF0ZVRpbGVzKENvdmVyVmlzaWJsZU9ubHkpOwogICAgIH0KQEAgLTIy
NSw3ICsyMjUsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6Y29tbWl0U2NhbGVDaGFuZ2UoCiAg
ICAgQVNTRVJUKG1fcGVuZGluZ1pvb21lZE91dFNjYWxlIHx8IG1fcGVuZGluZ1NjYWxlKTsKICAg
ICBBU1NFUlQobV90aWxpbmdNb2RlICE9IERpc2FibGVkKTsKICAgICAKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4
KTsKIAogICAgIGlmIChtX3BlbmRpbmdab29tZWRPdXRTY2FsZSkgewogICAgICAgICBtX3pvb21l
ZE91dFRpbGVHcmlkLT5zZXRTY2FsZShtX3BlbmRpbmdab29tZWRPdXRTY2FsZSk7CkBAIC0zMTQs
NyArMzE0LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmxheW91dFRpbGVzTm93KCkKICAgICBp
ZiAobV90aWxpbmdNb2RlID09IFpvb21pbmcpCiAgICAgICAgIG1fdGlsaW5nTW9kZSA9IE1pbmlt
YWw7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICBMZWdhY3lUaWxlR3JpZCogYWN0aXZlR3JpZCA9
IGFjdGl2ZVRpbGVHcmlkKCk7CiAgICAgaWYgKGFjdGl2ZUdyaWQtPmNoZWNrRG9TaW5nbGVUaWxl
TGF5b3V0KCkpIHsKICAgICAgICAgbV90aWxpbmdNb2RlID0gc2F2ZWRUaWxpbmdNb2RlOwpAQCAt
MzI3LDE0ICszMjcsMTQgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmxheW91dFRpbGVzTm93KCkK
IHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpsYXlvdXRUaWxlc05vd0ZvclJlY3QoY29uc3QgSW50UmVj
dCYgcmVjdCkKIHsKICAgICBBU1NFUlQoV2ViVGhyZWFkSXNMb2NrZWRPckRpc2FibGVkKCkpOwot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV90aWxlTXV0ZXgpOwogCiAgICAgYWN0aXZlVGlsZUdyaWQoKS0+YWRkVGlsZXNDb3Zlcmlu
Z1JlY3QocmVjdCk7CiB9CiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNp
YmxlVGlsZXMoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIHJlbW92ZUFsbE5vblZpc2libGVU
aWxlc0ludGVybmFsKCk7CiB9CiAKQEAgLTM1Niw3ICszNTYsNyBAQCB2b2lkIExlZ2FjeVRpbGVD
YWNoZTo6cmVtb3ZlQWxsTm9uVmlzaWJsCiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVB
bGxUaWxlcygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgbV96b29tZWRPdXRUaWxlR3JpZC0+
ZHJvcEFsbFRpbGVzKCk7CiAgICAgaWYgKG1fem9vbWVkSW5UaWxlR3JpZCkKICAgICAgICAgbV96
b29tZWRJblRpbGVHcmlkLT5kcm9wQWxsVGlsZXMoKTsKQEAgLTM2NCw3ICszNjQsNyBAQCB2b2lk
IExlZ2FjeVRpbGVDYWNoZTo6cmVtb3ZlQWxsVGlsZXMoKQogCiB2b2lkIExlZ2FjeVRpbGVDYWNo
ZTo6cmVtb3ZlRm9yZWdyb3VuZFRpbGVzKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90
aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICBpZiAo
IWtlZXBzWm9vbWVkT3V0VGlsZXMoKSkKICAgICAgICAgbV96b29tZWRPdXRUaWxlR3JpZC0+ZHJv
cEFsbFRpbGVzKCk7CiAgICAgaWYgKG1fem9vbWVkSW5UaWxlR3JpZCkKQEAgLTM3MywxMyArMzcz
LDEzIEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVGb3JlZ3JvdW5kVGkKIAogdm9pZCBM
ZWdhY3lUaWxlQ2FjaGU6OnNldENvbnRlbnRSZXBsYWNlbWVudEltYWdlKFJldGFpblB0cjxDR0lt
YWdlUmVmPiBjb250ZW50UmVwbGFjZW1lbnRJbWFnZSkKIHsKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9jb250ZW50UmVwbGFjZW1lbnRJbWFnZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdlTXV0ZXgpOwogICAgIG1fY29udGVudFJlcGxhY2Vt
ZW50SW1hZ2UgPSBjb250ZW50UmVwbGFjZW1lbnRJbWFnZTsKIH0KIAogUmV0YWluUHRyPENHSW1h
Z2VSZWY+IExlZ2FjeVRpbGVDYWNoZTo6Y29udGVudFJlcGxhY2VtZW50SW1hZ2UoKSBjb25zdAog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdlTXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRleCk7
CiAgICAgcmV0dXJuIG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2U7CiB9CiAKQEAgLTQyNiw3ICs0
MjYsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6dGlsZUNyZWF0aW9uVGltZXJGCiB7CiAgICAg
aWYgKGlzVGlsZUNyZWF0aW9uU3VzcGVuZGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGls
ZU11dGV4KTsKICAgICBjcmVhdGVUaWxlc0luQWN0aXZlR3JpZChDb3ZlclNwZWN1bGF0aXZlKTsK
IH0KIApAQCAtNjIwLDcgKzYyMCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzY2hlZHVsZUxh
eWVyRmx1c2gKIAogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldE5lZWRzRGlzcGxheUluUmVjdChj
b25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2F2
ZWREaXNwbGF5UmVjdE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NhdmVkRGlzcGxh
eVJlY3RNdXRleCk7CiAgICAgYm9vbCBhZGRlZEZpcnN0UmVjdCA9IG1fc2F2ZWREaXNwbGF5UmVj
dHMuaXNFbXB0eSgpOwogICAgIG1fc2F2ZWREaXNwbGF5UmVjdHMuYXBwZW5kKGRpcnR5UmVjdCk7
CiAgICAgaWYgKCFhZGRlZEZpcnN0UmVjdCkKQEAgLTY5Miw3ICs2OTIsNyBAQCB2b2lkIExlZ2Fj
eVRpbGVDYWNoZTo6dXBkYXRlVGlsaW5nTW9kZSgpCiAgICAgICAgIGlmIChtX3RpbGluZ01vZGUg
PT0gRGlzYWJsZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0
ZXgpOwogICAgICAgICBjcmVhdGVUaWxlc0luQWN0aXZlR3JpZChDb3ZlclZpc2libGVPbmx5KTsK
IAogICAgICAgICBpZiAoIW1fc2F2ZWREaXNwbGF5UmVjdHMuaXNFbXB0eSgpKQpAQCAtNzEwLDcg
KzcxMCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzZXRUaWxpbmdNb2RlKFRpbGkKICAgICBp
ZiAoKG1fcGVuZGluZ1pvb21lZE91dFNjYWxlIHx8IG1fcGVuZGluZ1NjYWxlKSAmJiBtX3RpbGlu
Z01vZGUgIT0gRGlzYWJsZWQpCiAgICAgICAgIGNvbW1pdFNjYWxlQ2hhbmdlKCk7CiAgICAgZWxz
ZSBpZiAod2FzWm9vbWluZykgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0
ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgICAgIGJy
aW5nQWN0aXZlVGlsZUdyaWRUb0Zyb250KCk7CiAgICAgfQogCkBAIC03NTMsNyArNzUzLDcgQEAg
dm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmRvUGVuZGluZ1JlcGFpbnRzKAogICAgICAgICByZXR1cm47
CiAgICAgaWYgKGlzVGlsZUludmFsaWRhdGlvblN1c3BlbmRlZCgpKQogICAgICAgICByZXR1cm47
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3RpbGVNdXRleCk7CiAgICAgZmx1c2hTYXZlZERpc3BsYXlSZWN0cygpOwogfQogCkBA
IC03NjQsNyArNzY0LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmZsdXNoU2F2ZWREaXNwbGF5
UgogCiAgICAgVmVjdG9yPEludFJlY3Q+IHJlY3RzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9zYXZlZERpc3BsYXlSZWN0TXV0ZXgpOwogICAgICAgICBtX3NhdmVkRGlzcGxheVJl
Y3RzLnN3YXAocmVjdHMpOwogICAgIH0KICAgICBzaXplX3Qgc2l6ZSA9IHJlY3RzLnNpemUoKTsK
QEAgLTc5Miw3ICs3OTIsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6cHJlcGFyZVRvRHJhdygp
CiAgICAgW1ttX3dpbmRvdyBjb250ZW50Vmlld10gdmlld1dpbGxEcmF3XTsKIAogICAgIGlmICgh
bV9zYXZlZERpc3BsYXlSZWN0cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fdGlsZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgp
OwogICAgICAgICBmbHVzaFNhdmVkRGlzcGxheVJlY3RzKCk7CiAgICAgfQogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5oCShy
ZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGls
ZUxheWVyUG9vbC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAg
ICAgVmVjdG9yPEludFNpemU+IG1fc2l6ZXNJblBydW5lT3JkZXI7CiAgICAgdW5zaWduZWQgbV90
b3RhbEJ5dGVzOwogICAgIHVuc2lnbmVkIG1fY2FwYWNpdHk7Ci0gICAgTXV0ZXggbV9sYXllclBv
b2xNdXRleDsKKyAgICBMb2NrIG1fbGF5ZXJQb29sTXV0ZXg7CiAKICAgICBkb3VibGUgbV9sYXN0
QWRkVGltZTsKICAgICBib29sIG1fbmVlZHNQcnVuZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tCShyZXZpc2lvbiAxODg1
NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5t
bQkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCB2b2lkIExlZ2FjeVRpbGVMYXllclBv
b2w6OmFkZExheWVyKGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9s
YXllclBvb2xNdXRleCk7CiAgICAgbGlzdE9mTGF5ZXJzV2l0aFNpemUobGF5ZXJTaXplKS5wcmVw
ZW5kKGxheWVyKTsKICAgICBtX3RvdGFsQnl0ZXMgKz0gYnl0ZXNCYWNraW5nTGF5ZXJXaXRoUGl4
ZWxTaXplKGxheWVyU2l6ZSk7CiAKQEAgLTk2LDcgKzk2LDcgQEAgUmV0YWluUHRyPExlZ2FjeVRp
bGVMYXllcj4gTGVnYWN5VGlsZUxheQogewogICAgIGlmICghY2FuUmV1c2VMYXllcldpdGhTaXpl
KHNpemUpKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xh
eWVyUG9vbE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xheWVyUG9vbE11dGV4KTsK
ICAgICBMYXllckxpc3QmIHJldXNlTGlzdCA9IGxpc3RPZkxheWVyc1dpdGhTaXplKHNpemUsIE1h
cmtBc1VzZWQpOwogICAgIGlmIChyZXVzZUxpc3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
bmlsOwpAQCAtMTA2LDcgKzEwNiw3IEBAIFJldGFpblB0cjxMZWdhY3lUaWxlTGF5ZXI+IExlZ2Fj
eVRpbGVMYXkKIAogdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpzZXRDYXBhY2l0eSh1bnNpZ25l
ZCBjYXBhY2l0eSkKIHsKLSAgICBNdXRleExvY2tlciByZXVzZUxvY2tlcihtX2xheWVyUG9vbE11
dGV4KTsKKyAgICBMb2NrSG9sZGVyIHJldXNlTG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwogICAg
IGlmIChjYXBhY2l0eSA8IG1fY2FwYWNpdHkpCiAgICAgICAgIHNjaGVkdWxlUHJ1bmUoKTsKICAg
ICBtX2NhcGFjaXR5ID0gY2FwYWNpdHk7CkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBMZWdhY3lU
aWxlTGF5ZXJQb29sOjpzY2hlZHVsZVBydW5lKAogCiB2b2lkIExlZ2FjeVRpbGVMYXllclBvb2w6
OnBydW5lKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7CiAgICAgQVNTRVJUKG1fbmVl
ZHNQcnVuZSk7CiAgICAgbV9uZWVkc1BydW5lID0gZmFsc2U7CiAgICAgdW5zaWduZWQgc2hyaW5r
VG8gPSBkZWNheWVkQ2FwYWNpdHkoKTsKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIExlZ2FjeVRp
bGVMYXllclBvb2w6OnBydW5lKCkKIAogdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpkcmFpbigp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgcmV1c2VMb2NrZXIobV9sYXllclBvb2xNdXRleCk7CisgICAg
TG9ja0hvbGRlciByZXVzZUxvY2tlcihtX2xheWVyUG9vbE11dGV4KTsKICAgICBtX3JldXNlTGlz
dHMuY2xlYXIoKTsKICAgICBtX3NpemVzSW5QcnVuZU9yZGVyLmNsZWFyKCk7CiAgICAgbV90b3Rh
bEJ5dGVzID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsRG93bmxvYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjAsNyArNjAsNyBAQCBDdXJsRG93bmxvYWRNYW5hZ2VyOjp+Q3VybERvd25sb2Fk
TWFuYWdlCiAKIGJvb2wgQ3VybERvd25sb2FkTWFuYWdlcjo6YWRkKENVUkwqIGN1cmxIYW5kbGUp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fbXV0ZXgpOwogCiAgICAgbV9wZW5kaW5nSGFuZGxlTGlzdC5hcHBlbmQoY3VybEhhbmRs
ZSk7CiAgICAgc3RhcnRUaHJlYWRJZk5lZWRlZCgpOwpAQCAtNzAsNyArNzAsNyBAQCBib29sIEN1
cmxEb3dubG9hZE1hbmFnZXI6OmFkZChDVVJMKiBjdXJsCiAKIGJvb2wgQ3VybERvd25sb2FkTWFu
YWdlcjo6cmVtb3ZlKENVUkwqIGN1cmxIYW5kbGUpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgbV9yZW1v
dmVkSGFuZGxlTGlzdC5hcHBlbmQoY3VybEhhbmRsZSk7CiAKQEAgLTc5LDEzICs3OSwxMyBAQCBi
b29sIEN1cmxEb3dubG9hZE1hbmFnZXI6OnJlbW92ZShDVVJMKiBjCiAKIGludCBDdXJsRG93bmxv
YWRNYW5hZ2VyOjpnZXRBY3RpdmVEb3dubG9hZENvdW50KCkgY29uc3QKIHsKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAg
ICAgcmV0dXJuIG1fYWN0aXZlSGFuZGxlTGlzdC5zaXplKCk7CiB9CiAKIGludCBDdXJsRG93bmxv
YWRNYW5hZ2VyOjpnZXRQZW5kaW5nRG93bmxvYWRDb3VudCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwog
ICAgIHJldHVybiBtX3BlbmRpbmdIYW5kbGVMaXN0LnNpemUoKTsKIH0KIApAQCAtMTExLDcgKzEx
MSw3IEBAIHZvaWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RvcFRocmVhZCgpCiAKIHZvaWQgQ3Vy
bERvd25sb2FkTWFuYWdlcjo6c3RvcFRocmVhZElmSWRsZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAg
aWYgKCFnZXRBY3RpdmVEb3dubG9hZENvdW50KCkgJiYgIWdldFBlbmRpbmdEb3dubG9hZENvdW50
KCkpCiAgICAgICAgIHNldFJ1blRocmVhZChmYWxzZSk7CkBAIC0xMTksNyArMTE5LDcgQEAgdm9p
ZCBDdXJsRG93bmxvYWRNYW5hZ2VyOjpzdG9wVGhyZWFkSWZJZAogCiB2b2lkIEN1cmxEb3dubG9h
ZE1hbmFnZXI6OnVwZGF0ZUhhbmRsZUxpc3QoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIC8vIFJlbW92
ZSBjdXJsIGVhc3kgaGFuZGxlcyBmcm9tIG11bHRpIGxpc3QgCiAgICAgaW50IHNpemUgPSBtX3Jl
bW92ZWRIYW5kbGVMaXN0LnNpemUoKTsKQEAgLTI0NSw3ICsyNDUsNyBAQCBDdXJsRG93bmxvYWQ6
OkN1cmxEb3dubG9hZCgpCiAKIEN1cmxEb3dubG9hZDo6fkN1cmxEb3dubG9hZCgpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0
ZXgpOwogCiAgICAgaWYgKG1fdXJsKQogICAgICAgICBmYXN0RnJlZShtX3VybCk7CkBAIC0yNjIs
NyArMjYyLDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmluaXQoQ3VybERvd25sb2FkTGlzdAogICAg
IGlmICghbGlzdGVuZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIG1fY3Vy
bEhhbmRsZSA9IGN1cmxfZWFzeV9pbml0KCk7CiAKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIEN1
cmxEb3dubG9hZDo6aW5pdChDdXJsRG93bmxvYWRMaXN0CiAgICAgaWYgKCFsaXN0ZW5lcikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgVVJMIHVybChQYXJzZWRVUkxTdHJpbmcs
IHJlcXVlc3QudXJsKCkpOwogCkBAIC0zMTcsMjUgKzMxNywyNSBAQCBib29sIEN1cmxEb3dubG9h
ZDo6Y2FuY2VsKCkKIAogU3RyaW5nIEN1cmxEb3dubG9hZDo6Z2V0VGVtcFBhdGgoKSBjb25zdAog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX211dGV4KTsKICAgICByZXR1cm4gbV90ZW1wUGF0aDsKIH0KIAogU3RyaW5nIEN1cmxEb3du
bG9hZDo6Z2V0VXJsKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIFN0cmluZyhtX3Vy
bCk7CiB9CiAKIFJlc291cmNlUmVzcG9uc2UgQ3VybERvd25sb2FkOjpnZXRSZXNwb25zZSgpIGNv
bnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fbXV0ZXgpOwogICAgIHJldHVybiBtX3Jlc3BvbnNlOwogfQogCiB2b2lkIEN1cmxE
b3dubG9hZDo6Y2xvc2VGaWxlKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBpZiAobV90ZW1wSGFuZGxl
ICE9IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpIHsKICAgICAgICAgV2ViQ29yZTo6Y2xvc2VG
aWxlKG1fdGVtcEhhbmRsZSk7CkBAIC0zOTAsNyArMzkwLDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6
OmFkZEhlYWRlcnMoY29uc3QgUmVzbwogCiB2b2lkIEN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZUhl
YWRlcihjb25zdCBTdHJpbmcmIGhlYWRlcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBpZiAoaGVhZGVy
ID09ICJcclxuIiB8fCBoZWFkZXIgPT0gIlxuIikgewogCkBAIC00MzAsNyArNDMwLDcgQEAgdm9p
ZCBDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVIZWFkZXIoY29ucwogCiB2b2lkIEN1cmxEb3dubG9h
ZDo6ZGlkUmVjZWl2ZURhdGEodm9pZCogZGF0YSwgaW50IHNpemUpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAg
ICAgUmVmUHRyPEN1cmxEb3dubG9hZD4gcHJvdGVjdGVkRG93bmxvYWQodGhpcyk7CiAKQEAgLTQ2
NCw3ICs0NjQsNyBAQCB2b2lkIEN1cmxEb3dubG9hZDo6ZGlkRmluaXNoKCkKIAogdm9pZCBDdXJs
RG93bmxvYWQ6OmRpZEZhaWwoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIGNsb3NlRmlsZSgpOwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxE
b3dubG9hZC5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcg
QEAgcHJpdmF0ZToKICAgICBWZWN0b3I8Q1VSTCo+IG1fcGVuZGluZ0hhbmRsZUxpc3Q7CiAgICAg
VmVjdG9yPENVUkwqPiBtX2FjdGl2ZUhhbmRsZUxpc3Q7CiAgICAgVmVjdG9yPENVUkwqPiBtX3Jl
bW92ZWRIYW5kbGVMaXN0OwotICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKKyAgICBtdXRhYmxl
IExvY2sgbV9tdXRleDsKICAgICBib29sIG1fcnVuVGhyZWFkOwogfTsKIApAQCAtMTQwLDcgKzE0
MCw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fdGVtcEhh
bmRsZTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAgICAgYm9v
bCBtX2RlbGV0ZXNGaWxlVXBvbkZhaWx1cmU7Ci0gICAgbXV0YWJsZSBNdXRleCBtX211dGV4Owor
ICAgIG11dGFibGUgTG9jayBtX211dGV4OwogICAgIEN1cmxEb3dubG9hZExpc3RlbmVyICptX2xp
c3RlbmVyOwogCiAgICAgc3RhdGljIEN1cmxEb3dubG9hZE1hbmFnZXIgbV9kb3dubG9hZE1hbmFn
ZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VI
YW5kbGVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFu
YWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMywxMCArMTMzLDExIEBAIHN0YXRpYyBjaGFy
KiBjb29raWVKYXJQYXRoKCkKICNlbmRpZgogfQogCi1zdGF0aWMgTXV0ZXgqIHNoYXJlZFJlc291
cmNlTXV0ZXgoY3VybF9sb2NrX2RhdGEgZGF0YSkgewotICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChNdXRleCwgY29va2llTXV0ZXgsICgpKTsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoTXV0ZXgsIGRuc011dGV4LCAoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKE11dGV4LCBzaGFyZU11dGV4LCAoKSk7CitzdGF0aWMgTG9jayogc2hh
cmVkUmVzb3VyY2VNdXRleChjdXJsX2xvY2tfZGF0YSBkYXRhKQoreworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChMb2NrLCBjb29raWVNdXRleCwgKCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NrLCBkbnNNdXRleCwgKCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NrLCBzaGFyZU11dGV4LCAoKSk7CiAKICAgICBzd2l0
Y2ggKGRhdGEpIHsKICAgICAgICAgY2FzZSBDVVJMX0xPQ0tfREFUQV9DT09LSUU6CkBAIC0xOTAs
MTMgKzE5MSwxMyBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVXZWJUaW1pbmdJbmZvcm1hdGlvCiAv
LyBjYWNoZS4KIHN0YXRpYyB2b2lkIGN1cmxfbG9ja19jYWxsYmFjayhDVVJMKiAvKiBoYW5kbGUg
Ki8sIGN1cmxfbG9ja19kYXRhIGRhdGEsIGN1cmxfbG9ja19hY2Nlc3MgLyogYWNjZXNzICovLCB2
b2lkKiAvKiB1c2VyUHRyICovKQogewotICAgIGlmIChNdXRleCogbXV0ZXggPSBzaGFyZWRSZXNv
dXJjZU11dGV4KGRhdGEpKQorICAgIGlmIChMb2NrKiBtdXRleCA9IHNoYXJlZFJlc291cmNlTXV0
ZXgoZGF0YSkpCiAgICAgICAgIG11dGV4LT5sb2NrKCk7CiB9CiAKIHN0YXRpYyB2b2lkIGN1cmxf
dW5sb2NrX2NhbGxiYWNrKENVUkwqIC8qIGhhbmRsZSAqLywgY3VybF9sb2NrX2RhdGEgZGF0YSwg
dm9pZCogLyogdXNlclB0ciAqLykKIHsKLSAgICBpZiAoTXV0ZXgqIG11dGV4ID0gc2hhcmVkUmVz
b3VyY2VNdXRleChkYXRhKSkKKyAgICBpZiAoTG9jayogbXV0ZXggPSBzaGFyZWRSZXNvdXJjZU11
dGV4KGRhdGEpKQogICAgICAgICBtdXRleC0+dW5sb2NrKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0JKHJldmlzaW9u
IDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9v
ay5tbQkod29ya2luZyBjb3B5KQpAQCAtODUsOSArODUsOSBAQCBOU0RpY3Rpb25hcnkgKldlYkNv
cmU6OlFMRGlyZWN0b3J5QXR0cmliCiAgICAgcmV0dXJuIGRpY3Rpb25hcnk7CiB9CiAKLXN0YXRp
YyBNdXRleCYgcWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkKK3N0YXRpYyBMb2Nr
JiBxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxNdXRleD4gbXV0ZXg7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+
IG11dGV4OwogICAgIHJldHVybiBtdXRleDsKIH0KIApAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQg
V2ViQ29yZTo6YWRkUUxQcmV2aWV3Q29udmVydGVyV2l0aEYKIHsKICAgICBBU1NFUlQodXJsKTsK
ICAgICBBU1NFUlQoY29udmVydGVyKTsKLSAgICBNdXRleExvY2tlciBsb2NrKHFsUHJldmlld0Nv
bnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2socWxQcmV2aWV3
Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOwogICAgIFtRTFByZXZpZXdDb252ZXJ0ZXJEaWN0
aW9uYXJ5KCkgc2V0T2JqZWN0OmNvbnZlcnRlciBmb3JLZXk6dXJsXTsKICAgICBbUUxDb250ZW50
RGljdGlvbmFyeSgpIHNldE9iamVjdDooZmlsZU5hbWUgPyBmaWxlTmFtZSA6IEAiIikgZm9yS2V5
OnVybF07CiB9CkBAIC0xMjEsNyArMTIxLDcgQEAgTlNTdHJpbmcgKldlYkNvcmU6OnFsUHJldmll
d0NvbnZlcnRlclVUSQogewogICAgIGlkIGNvbnZlcnRlciA9IG5pbDsKICAgICB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4
KCkpOwogICAgICAgICBjb252ZXJ0ZXIgPSBbUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgp
IG9iamVjdEZvcktleTp1cmxdOwogICAgIH0KICAgICBpZiAoIWNvbnZlcnRlcikKQEAgLTEzMSw3
ICsxMzEsNyBAQCBOU1N0cmluZyAqV2ViQ29yZTo6cWxQcmV2aWV3Q29udmVydGVyVVRJCiAKIHZv
aWQgV2ViQ29yZTo6cmVtb3ZlUUxQcmV2aWV3Q29udmVydGVyRm9yVVJMKE5TVVJMICp1cmwpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgo
KSk7CisgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRl
eCgpKTsKICAgICBbUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgpIHJlbW92ZU9iamVjdEZv
cktleTp1cmxdOwogCiAgICAgLy8gRGVsZXRlIHRoZSBmaWxlIHdoZW4gd2UgcmVtb3ZlIHRoZSBw
cmV2aWV3IGNvbnZlcnRlcgpAQCAtMTY2LDcgKzE2Niw3IEBAIGNvbnN0IFVSTCBXZWJDb3JlOjpz
YWZlUUxVUkxGb3JEb2N1bWVudFUKICAgICBpZCBjb252ZXJ0ZXIgPSBuaWw7CiAgICAgTlNVUkwg
Km5zRG9jdW1lbnRVUkwgPSBkb2N1bWVudFVSTDsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOwogICAgICAg
ICBjb252ZXJ0ZXIgPSBbUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgpIG9iamVjdEZvcktl
eTpuc0RvY3VtZW50VVJMXTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OmNsb3NlKCkKICAgICAgICAg
Ly8gQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX29wZW5pbmdUaHJlYWQpOwogICAgICAgICBz
cWxpdGUzKiBkYiA9IG1fZGI7CiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX2RhdGFiYXNlQ2xvc2luZ011dGV4KTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fZGF0YWJhc2VDbG9zaW5nTXV0ZXgpOwogICAgICAgICAgICAgbV9kYiA9IDA7CiAgICAg
ICAgIH0KICAgICAgICAgc3FsaXRlM19jbG9zZShkYik7CkBAIC0xNjAsNyArMTYwLDcgQEAgaW50
NjRfdCBTUUxpdGVEYXRhYmFzZTo6bWF4aW11bVNpemUoKQogICAgIGludDY0X3QgbWF4UGFnZUNv
dW50ID0gMDsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXpl
ckxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAg
ICAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CiAgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBz
dGF0ZW1lbnQoKnRoaXMsIEFTQ0lJTGl0ZXJhbCgiUFJBR01BIG1heF9wYWdlX2NvdW50IikpOwog
ICAgICAgICBtYXhQYWdlQ291bnQgPSBzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50NjQoMCk7CkBAIC0x
ODAsNyArMTgwLDcgQEAgdm9pZCBTUUxpdGVEYXRhYmFzZTo6c2V0TWF4aW11bVNpemUoaW50Ngog
ICAgIEFTU0VSVChjdXJyZW50UGFnZVNpemUgfHwgIW1fZGIpOwogICAgIGludDY0X3QgbmV3TWF4
UGFnZUNvdW50ID0gY3VycmVudFBhZ2VTaXplID8gc2l6ZSAvIGN1cnJlbnRQYWdlU2l6ZSA6IDA7
CiAgICAgCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwogICAgIGVuYWJsZUF1dGhvcml6ZXIo
ZmFsc2UpOwogCiAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudCgqdGhpcywgIlBSQUdNQSBt
YXhfcGFnZV9jb3VudCA9ICIgKyBTdHJpbmc6Om51bWJlcihuZXdNYXhQYWdlQ291bnQpKTsKQEAg
LTE5Nyw3ICsxOTcsNyBAQCBpbnQgU1FMaXRlRGF0YWJhc2U6OnBhZ2VTaXplKCkKICAgICAvLyBT
aW5jZSB0aGUgcGFnZSBzaXplIG9mIGEgZGF0YWJhc2UgaXMgbG9ja2VkIGluIGF0IGNyZWF0aW9u
IGFuZCB0aGVyZWZvcmUgY2Fubm90IGJlIGR5bmFtaWMsIAogICAgIC8vIHdlIGNhbiBjYWNoZSB0
aGUgdmFsdWUgZm9yIGZ1dHVyZSB1c2UKICAgICBpZiAobV9wYWdlU2l6ZSA9PSAtMSkgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwogICAgICAgICBlbmFibGVBdXRob3JpemVy
KGZhbHNlKTsKICAgICAgICAgCiAgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRo
aXMsIEFTQ0lJTGl0ZXJhbCgiUFJBR01BIHBhZ2Vfc2l6ZSIpKTsKQEAgLTIxNCw3ICsyMTQsNyBA
QCBpbnQ2NF90IFNRTGl0ZURhdGFiYXNlOjpmcmVlU3BhY2VTaXplKCkKICAgICBpbnQ2NF90IGZy
ZWVsaXN0Q291bnQgPSAwOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9h
dXRob3JpemVyTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXV0aG9yaXplckxv
Y2spOwogICAgICAgICBlbmFibGVBdXRob3JpemVyKGZhbHNlKTsKICAgICAgICAgLy8gTm90ZTog
ZnJlZWxpc3RfY291bnQgd2FzIGFkZGVkIGluIFNRTGl0ZSAzLjQuMS4KICAgICAgICAgU1FMaXRl
U3RhdGVtZW50IHN0YXRlbWVudCgqdGhpcywgQVNDSUlMaXRlcmFsKCJQUkFHTUEgZnJlZWxpc3Rf
Y291bnQiKSk7CkBAIC0yMzAsNyArMjMwLDcgQEAgaW50NjRfdCBTUUxpdGVEYXRhYmFzZTo6dG90
YWxTaXplKCkKICAgICBpbnQ2NF90IHBhZ2VDb3VudCA9IDA7CiAKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAgICAgICAgIGVuYWJsZUF1dGhvcml6ZXIoZmFsc2Up
OwogICAgICAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KCp0aGlzLCBBU0NJSUxpdGVyYWwo
IlBSQUdNQSBwYWdlX2NvdW50IikpOwogICAgICAgICBwYWdlQ291bnQgPSBzdGF0ZW1lbnQuZ2V0
Q29sdW1uSW50NjQoMCk7CkBAIC0zMDksNyArMzA5LDcgQEAgaW50IFNRTGl0ZURhdGFiYXNlOjpy
dW5WYWN1dW1Db21tYW5kKCkKIAogaW50IFNRTGl0ZURhdGFiYXNlOjpydW5JbmNyZW1lbnRhbFZh
Y3V1bUNvbW1hbmQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2Nr
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICBlbmFibGVB
dXRob3JpemVyKGZhbHNlKTsKIAogICAgIGlmICghZXhlY3V0ZUNvbW1hbmQoQVNDSUlMaXRlcmFs
KCJQUkFHTUEgaW5jcmVtZW50YWxfdmFjdXVtIikpKQpAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQg
U1FMaXRlRGF0YWJhc2U6OnNldEF1dGhvcml6ZXIoUGFzc1IKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKIAogICAgIG1fYXV0aG9yaXplciA9IGF1
dGg7CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJh
c2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0
YWJhc2UuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lu
Y2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8c3FsaXRlMy5oPgorI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTEwNiw3ICsxMDcs
NyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzZXRBdXRob3JpemVyKFBhc3NSZWZQdHI8RGF0
YWJhc2VBdXRob3JpemVyPik7CiAKLSAgICBNdXRleCYgZGF0YWJhc2VNdXRleCgpIHsgcmV0dXJu
IG1fbG9ja2luZ011dGV4OyB9CisgICAgTG9jayYgZGF0YWJhc2VNdXRleCgpIHsgcmV0dXJuIG1f
bG9ja2luZ011dGV4OyB9CiAgICAgYm9vbCBpc0F1dG9Db21taXRPbigpIGNvbnN0OwogCiAgICAg
Ly8gVGhlIFNRTGl0ZSBBVVRPX1ZBQ1VVTSBwcmFnbWEgY2FuIGJlIGVpdGhlciBOT05FLCBGVUxM
LCBvciBJTkNSRU1FTlRBTC4KQEAgLTE0NywxMyArMTQ4LDEzIEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzczsKICAgICBib29sIG1fc2hhcmFibGU7CiAgICAgCi0g
ICAgTXV0ZXggbV9hdXRob3JpemVyTG9jazsKKyAgICBMb2NrIG1fYXV0aG9yaXplckxvY2s7CiAg
ICAgUmVmUHRyPERhdGFiYXNlQXV0aG9yaXplcj4gbV9hdXRob3JpemVyOwogCi0gICAgTXV0ZXgg
bV9sb2NraW5nTXV0ZXg7CisgICAgTG9jayBtX2xvY2tpbmdNdXRleDsKICAgICBUaHJlYWRJZGVu
dGlmaWVyIG1fb3BlbmluZ1RocmVhZDsKIAotICAgIE11dGV4IG1fZGF0YWJhc2VDbG9zaW5nTXV0
ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlQ2xvc2luZ011dGV4OwogCiAgICAgaW50IG1fb3BlbkVy
cm9yOwogICAgIENTdHJpbmcgbV9vcGVuRXJyb3JNZXNzYWdlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIGludCBTUUxpdGVTdGF0ZW1lbnQ6OnByZXBh
cmUoKQogewogICAgIEFTU0VSVCghbV9pc1ByZXBhcmVkKTsKIAotICAgIE11dGV4TG9ja2VyIGRh
dGFiYXNlTG9jayhtX2RhdGFiYXNlLmRhdGFiYXNlTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBk
YXRhYmFzZUxvY2sobV9kYXRhYmFzZS5kYXRhYmFzZU11dGV4KCkpOwogCiAgICAgQ1N0cmluZyBx
dWVyeSA9IG1fcXVlcnkuc3RyaXBXaGl0ZVNwYWNlKCkudXRmOCgpOwogICAgIApAQCAtODYsNyAr
ODYsNyBAQCBpbnQgU1FMaXRlU3RhdGVtZW50OjpwcmVwYXJlKCkKIAogaW50IFNRTGl0ZVN0YXRl
bWVudDo6c3RlcCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgZGF0YWJhc2VMb2NrKG1fZGF0YWJhc2Uu
ZGF0YWJhc2VNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGRhdGFiYXNlTG9jayhtX2RhdGFiYXNl
LmRhdGFiYXNlTXV0ZXgoKSk7CiAKICAgICBpZiAoIW1fc3RhdGVtZW50KQogICAgICAgICByZXR1
cm4gU1FMSVRFX09LOwpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNw
cAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIsNyArMTIyLDcgQEAgV29ya2VyVGhyZWFkOjp+
V29ya2VyVGhyZWFkKCkKIGJvb2wgV29ya2VyVGhyZWFkOjpzdGFydCgpCiB7CiAgICAgLy8gTXV0
ZXggcHJvdGVjdGlvbiBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoYXQgbV90aHJlYWRJRCBpcyBp
bml0aWFsaXplZCB3aGVuIHRoZSB0aHJlYWQgc3RhcnRzLgotICAgIE11dGV4TG9ja2VyIGxvY2so
bV90aHJlYWRDcmVhdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVh
dGlvbk11dGV4KTsKIAogICAgIGlmIChtX3RocmVhZElEKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKCkKICNl
bmRpZgogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25N
dXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwog
ICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlID0gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUobV9z
dGFydHVwRGF0YS0+bV9zY3JpcHRVUkwsIG1fc3RhcnR1cERhdGEtPm1fdXNlckFnZW50LCBtX3N0
YXJ0dXBEYXRhLT5tX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9zdGFydHVwRGF0YS0+bV9jb250
ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBtX3N0YXJ0dXBEYXRhLT5tX3RvcE9yaWdpbi5yZWxlYXNl
KCkpOwogCiAgICAgICAgIGlmIChtX3J1bkxvb3AudGVybWluYXRlZCgpKSB7CkBAIC0xODksNyAr
MTg5LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCiB2b2lkIFdvcmtlclRo
cmVhZDo6c3RvcCgpCiB7CiAgICAgLy8gTXV0ZXggcHJvdGVjdGlvbiBpcyBuZWNlc3NhcnkgYmVj
YXVzZSBzdG9wKCkgY2FuIGJlIGNhbGxlZCBiZWZvcmUgdGhlIGNvbnRleHQgaXMgZnVsbHkgY3Jl
YXRlZC4KLSAgICBNdXRleExvY2tlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CiAKICAgICAvLyBFbnN1cmUg
dGhhdCB0YXNrcyBhcmUgYmVpbmcgaGFuZGxlZCBieSB0aHJlYWQgZXZlbnQgbG9vcC4gSWYgc2Ny
aXB0IGV4ZWN1dGlvbiB3ZXJlbid0IGZvcmJpZGRlbiwgYSB3aGlsZSgxKSBsb29wIGluIEpTIGNv
dWxkIGtlZXAgdGhlIHRocmVhZCBhbGl2ZSBmb3JldmVyLgogICAgIGlmIChtX3dvcmtlckdsb2Jh
bFNjb3BlKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgJKHdv
cmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBXb3JrZXJSZXBvcnRpbmdQcm94eSYgbV93b3JrZXJSZXBvcnRpbmdQcm94eTsKIAogICAgICAg
ICBSZWZQdHI8V29ya2VyR2xvYmFsU2NvcGU+IG1fd29ya2VyR2xvYmFsU2NvcGU7Ci0gICAgICAg
IE11dGV4IG1fdGhyZWFkQ3JlYXRpb25NdXRleDsKKyAgICAgICAgTG9jayBtX3RocmVhZENyZWF0
aW9uTXV0ZXg7CiAKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlclRocmVhZFN0YXJ0dXBE
YXRhPiBtX3N0YXJ0dXBEYXRhOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODg1NjkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1OSBA
QAorMjAxNS0wOC0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFJlcGxhY2UgYWxsIHJlbWFpbmluZyB1c2VzIG9mIFdURjo6TXV0ZXggd2l0aCBXVEY6OkxvY2sK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODA4OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGF0YWJh
c2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNl
UHJvY2Vzczo6cG9zdERhdGFiYXNlVGFzayk6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJv
Y2Vzczo6cGVyZm9ybU5leHREYXRhYmFzZVRhc2spOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vz
cy9EYXRhYmFzZVByb2Nlc3MuaDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJh
c2U6OnNodXRkb3duKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OnBvc3RN
YWluVGhyZWFkVGFzayk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJm
b3JtTmV4dE1haW5UaHJlYWRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJh
c2U6OnBvc3REYXRhYmFzZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFz
ZTo6cGVyZm9ybU5leHREYXRhYmFzZVRhc2spOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9J
bmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHA6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZSk6
CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZUZyb21TZWNvbmRhcnlU
aHJlYWQpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5KToKKyAg
ICAgICAgKElQQzo6Q29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nU3luY1JlcGx5KToKKyAgICAg
ICAgKElQQzo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAgICAgKiBQbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZTo6YXBwZW5kVXBkYXRlKToKKyAgICAgICAgKiBTaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKiBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21w
b3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVD
b21wb3NpdGluZ1RocmVhZCk6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29tcG9zaXRvcjo6
cnVuQ29tcG9zaXRpbmdUaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0
b3I6OnRlcm1pbmF0ZUNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmg6Cisg
ICAgICAgICogU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3Rv
Y29sTWFuYWdlckNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Qcm90b2NvbE1hbmFn
ZXI6OmFkZEN1c3RvbVByb3RvY29sKToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xN
YW5hZ2VyOjpyZW1vdmVDdXN0b21Qcm90b2NvbCk6CisgICAgICAgIChXZWJLaXQ6OkN1c3RvbVBy
b3RvY29sTWFuYWdlcjo6cmVnaXN0ZXJTY2hlbWUpOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Q
cm90b2NvbE1hbmFnZXI6OnVucmVnaXN0ZXJTY2hlbWUpOgorICAgICAgICAoV2ViS2l0OjpDdXN0
b21Qcm90b2NvbE1hbmFnZXI6OnN1cHBvcnRzU2NoZW1lKToKKyAgICAgICAgKFdlYktpdDo6Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyOjpwcm90b2NvbEZvcklEKToKKyAgICAgICAgKiBTaGFyZWQvTmV0
d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmg6CisgICAgICAgICog
U2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmdldFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyOjpyZW1vdmVQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6cGx1Z2luUHJvY2Vzc0NyYXNo
ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjphZGRTY3JvbGxpbmdUcmVl
Rm9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6cmVtb3ZlU2Nyb2xs
aW5nVHJlZUZvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OndoZWVs
RXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5j
cHA6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jKToKKyAg
ICAgICAgKHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1BZGREYXRhKToKKwogMjAxNS0wOC0x
NyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IFNwZWN1bGF0aXZlIEdUSyBidWlsZCBmaXggYWZ0ZXIgcjE4ODU1MwpJbmRleDogU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVBy
b2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBEYXRhYmFz
ZVByb2Nlc3M6OnBvc3REYXRhYmFzZVRhc2socwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CiAKICAgICBtX2RhdGFi
YXNlVGFza3MuYXBwZW5kKFdURjo6bW92ZSh0YXNrKSk7CiAKQEAgLTE2Niw3ICsxNjYsNyBAQCB2
b2lkIERhdGFiYXNlUHJvY2Vzczo6cGVyZm9ybU5leHREYXRhYmFzCiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8QXN5bmNUYXNrPiB0YXNrOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fZGF0YWJhc2VUYXNrTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFi
YXNlVGFza011dGV4KTsKICAgICAgICAgQVNTRVJUKCFtX2RhdGFiYXNlVGFza3MuaXNFbXB0eSgp
KTsKICAgICAgICAgdGFzayA9IG1fZGF0YWJhc2VUYXNrcy50YWtlRmlyc3QoKTsKICAgICB9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vz
cy5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
RGF0YWJhc2VQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2
YXRlOgogICAgIEhhc2hNYXA8VW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyLCBSZWZQdHI8VW5p
cXVlSURCRGF0YWJhc2U+PiBtX2lkYkRhdGFiYXNlczsKIAogICAgIERlcXVlPHN0ZDo6dW5pcXVl
X3B0cjxBc3luY1Rhc2s+PiBtX2RhdGFiYXNlVGFza3M7Ci0gICAgTXV0ZXggbV9kYXRhYmFzZVRh
c2tNdXRleDsKKyAgICBMb2NrIG1fZGF0YWJhc2VUYXNrTXV0ZXg7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVk
REIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAx
ODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1
ZUlEQkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQg
VW5pcXVlSURCRGF0YWJhc2U6OnNodXRkb3duKFVuaXF1ZUkKICAgICByZWYoKTsKIAogICAgIHsK
LSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKICAgICAgICAgbV9kYXRh
YmFzZVRhc2tzLmNsZWFyKCk7CiAgICAgfQogCkBAIC0xMTI1LDcgKzExMjUsNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpwb3N0TWFpblRocmVhZFRhCiAgICAgaWYgKCFtX2FjY2VwdGluZ05l
d1JlcXVlc3RzICYmIHRhc2tUeXBlID09IERhdGFiYXNlVGFza1R5cGU6Ok5vcm1hbCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbWFpblRocmVhZFRhc2tNdXRl
eCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tYWluVGhyZWFkVGFza011dGV4KTsKIAogICAg
IG1fbWFpblRocmVhZFRhc2tzLmFwcGVuZChXVEY6Om1vdmUodGFzaykpOwogCkBAIC0xMTQzLDcg
KzExNDMsNyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtTmV4dE1haW5UCiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNUYXNrPiB0YXNrOwogICAgIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbWFpblRocmVhZFRhc2tNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fbWFpblRocmVhZFRhc2tNdXRleCk7CiAKICAgICAgICAgLy8gVGhpcyBkYXRhYmFz
ZSBtaWdodCBiZSBzaHV0dGluZyBkb3duLCBpbiB3aGljaCBjYXNlIHRoZSB0YXNrIHF1ZXVlIG1p
Z2h0IGJlIGVtcHR5LgogICAgICAgICBpZiAobV9tYWluVGhyZWFkVGFza3MuaXNFbXB0eSgpKQpA
QCAtMTE2NSw3ICsxMTY1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cG9zdERhdGFiYXNl
VGFzawogICAgIGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cyAmJiB0YXNrVHlwZSA9PSBEYXRh
YmFzZVRhc2tUeXBlOjpOb3JtYWwpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2Rh
dGFiYXNlVGFza011dGV4KTsKIAogICAgIG1fZGF0YWJhc2VUYXNrcy5hcHBlbmQoV1RGOjptb3Zl
KHRhc2spKTsKIApAQCAtMTE4Niw3ICsxMTg2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6
cGVyZm9ybU5leHREYXRhYgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFzazsK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CiAKICAgICAg
ICAgLy8gVGhpcyBkYXRhYmFzZSBtaWdodCBiZSBzaHV0dGluZyBkb3duIG9uIHRoZSBtYWluIHRo
cmVhZCwgaW4gd2hpY2ggY2FzZSB0aGUgdGFzayBxdWV1ZSBtaWdodCBiZSBlbXB0eS4KICAgICAg
ICAgaWYgKG1fZGF0YWJhc2VUYXNrcy5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRh
YmFzZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nl
c3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMCwx
MCArMjEwLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlQmFja2lu
Z1N0b3JlPiBtX2JhY2tpbmdTdG9yZTsKIAogICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxBc3lu
Y1Rhc2s+PiBtX2RhdGFiYXNlVGFza3M7Ci0gICAgTXV0ZXggbV9kYXRhYmFzZVRhc2tNdXRleDsK
KyAgICBMb2NrIG1fZGF0YWJhc2VUYXNrTXV0ZXg7CiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9w
dHI8QXN5bmNUYXNrPj4gbV9tYWluVGhyZWFkVGFza3M7Ci0gICAgTXV0ZXggbV9tYWluVGhyZWFk
VGFza011dGV4OworICAgIExvY2sgbV9tYWluVGhyZWFkVGFza011dGV4OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVj
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1OSw3ICs0NTksNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3RpCiAKICAgICAvLyBQdXNoIHRoZSBw
ZW5kaW5nIHN5bmMgcmVwbHkgaW5mb3JtYXRpb24gb24gb3VyIHN0YWNrLgogICAgIHsKLSAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAgICAgICAgIGlmICghbV9z
aG91bGRXYWl0Rm9yU3luY1JlcGxpZXMpIHsKICAgICAgICAgICAgIGRpZEZhaWxUb1NlbmRTeW5j
TWVzc2FnZSgpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC00ODYsNyArNDg2LDcg
QEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aQogCiAgICAgLy8gRmlu
YWxseSwgcG9wIHRoZSBwZW5kaW5nIHN5bmMgcmVwbHkgaW5mb3JtYXRpb24uCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKICAgICAgICAgQVNTRVJU
KG1fcGVuZGluZ1N5bmNSZXBsaWVzLmxhc3QoKS5zeW5jUmVxdWVzdElEID09IHN5bmNSZXF1ZXN0
SUQpOwogICAgICAgICBtX3BlbmRpbmdTeW5jUmVwbGllcy5yZW1vdmVMYXN0KCk7CiAgICAgfQpA
QCAtNTA4LDcgKzUwOCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVj
dGkKIAogICAgIC8vIFB1c2ggdGhlIHBlbmRpbmcgc3luYyByZXBseSBpbmZvcm1hdGlvbiBvbiBv
dXIgc3RhY2suCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlT
dGF0ZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11
dGV4KTsKICAgICAgICAgaWYgKCFtX3Nob3VsZFdhaXRGb3JTeW5jUmVwbGllcykKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCkBAIC01MjYsNyArNTI2LDcgQEAgc3RkOjp1bmlxdWVfcHRy
PE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aQogCiAgICAgLy8gRmluYWxseSwgcG9wIHRoZSBwZW5k
aW5nIHN5bmMgcmVwbHkgaW5mb3JtYXRpb24uCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKICAgICAgICAgQVNTRVJUKG1fc2Vjb25kYXJ5VGhyZWFk
UGVuZGluZ1N5bmNSZXBseU1hcC5jb250YWlucyhzeW5jUmVxdWVzdElEKSk7CiAgICAgICAgIG1f
c2Vjb25kYXJ5VGhyZWFkUGVuZGluZ1N5bmNSZXBseU1hcC5yZW1vdmUoc3luY1JlcXVlc3RJRCk7
CiAgICAgfQpAQCAtNTQ2LDcgKzU0Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rl
cj4gQ29ubmVjdGkKICAgICAgICAgU3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCkuZGlzcGF0
Y2hNZXNzYWdlcyhudWxscHRyKTsKICAgICAgICAgCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKIAogICAgICAgICAgICAgLy8g
U2Vjb25kLCBjaGVjayBpZiB0aGVyZSBpcyBhIHN5bmMgcmVwbHkgYXQgdGhlIHRvcCBvZiB0aGUg
c3RhY2suCiAgICAgICAgICAgICBBU1NFUlQoIW1fcGVuZGluZ1N5bmNSZXBsaWVzLmlzRW1wdHko
KSk7CkBAIC01OTIsNyArNTkyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBD
b25uZWN0aQogCiB2b2lkIENvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ1N5bmNSZXBseShzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IGRlY29kZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9z
eW5jUmVwbHlTdGF0ZU11dGV4KTsKIAogICAgIC8vIEdvIHRocm91Z2ggdGhlIHN0YWNrIG9mIHN5
bmMgcmVxdWVzdHMgdGhhdCBoYXZlIHBlbmRpbmcgcmVwbGllcyBhbmQgc2VlIHdoaWNoIG9uZQog
ICAgIC8vIHRoaXMgcmVwbHkgaXMgZm9yLgpAQCAtNzUwLDcgKzc1MCw3IEBAIHZvaWQgQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbkRpZENsb3NlKCkKICAgICBwbGF0Zm9ybUludmFsaWRhdGUoKTsKIAog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAKICAg
ICAgICAgQVNTRVJUKG1fc2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzKTsKICAgICAgICAgbV9zaG91
bGRXYWl0Rm9yU3luY1JlcGxpZXMgPSBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBA
QAogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0
Zi9Xb3JrUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTI5OCw3
ICsyOTksNyBAQCBwcml2YXRlOgogICAgIGNsYXNzIFN5bmNNZXNzYWdlU3RhdGU7CiAgICAgZnJp
ZW5kIGNsYXNzIFN5bmNNZXNzYWdlU3RhdGU7CiAKLSAgICBNdXRleCBtX3N5bmNSZXBseVN0YXRl
TXV0ZXg7CisgICAgTG9jayBtX3N5bmNSZXBseVN0YXRlTXV0ZXg7CiAgICAgYm9vbCBtX3Nob3Vs
ZFdhaXRGb3JTeW5jUmVwbGllczsKICAgICBWZWN0b3I8UGVuZGluZ1N5bmNSZXBseT4gbV9wZW5k
aW5nU3luY1JlcGxpZXM7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjkwLDcgKzY5MCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjph
cHBlbmRVcGQKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV9yZW5kZXJRdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3JlbmRlclF1ZXVlTXV0ZXgpOwogICAgIG1fcmVuZGVyUXVldWUuYXBwZW5k
KFdURjo6bW92ZShmdW5jdGlvbikpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzU2NlbmUuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgJKHdvcmtp
bmcgY29weSkKQEAgLTE0NSw3ICsxNDUsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gUmVuZGVyIHF1
ZXVlIGNhbiBiZSBhY2Nlc3NlZCBvbnkgZnJvbSBtYWluIHRocmVhZCBvciB1cGRhdGVQYWludE5v
ZGUgY2FsbCBzdGFjayEKICAgICBWZWN0b3I8c3RkOjpmdW5jdGlvbjx2b2lkKCk+PiBtX3JlbmRl
clF1ZXVlOwotICAgIE11dGV4IG1fcmVuZGVyUXVldWVNdXRleDsKKyAgICBMb2NrIG1fcmVuZGVy
UXVldWVNdXRleDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
PiBtX3RleHR1cmVNYXBwZXI7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3Ro
cmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiAxODg1Njkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNv
bXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk1LDcg
KzI5NSw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVDb21wb3NpdGkKICAgICBp
ZiAobV90aHJlYWRJZGVudGlmaWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogICAgIG1fdGhy
ZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZChjb21wb3NpdGluZ1RocmVhZEVudHJ5LCB0aGlz
LCAiV2ViQ29yZTogVGhyZWFkZWRDb21wb3NpdG9yIik7CiAKICAgICBtX2luaXRpYWxpemVSdW5M
b29wQ29uZGl0aW9uLndhaXQobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKQEAg
LTMwNCw3ICszMDQsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlQ29tcG9zaXRp
CiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cnVuQ29tcG9zaXRpbmdUaHJlYWQoKQogewogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRp
b25NdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BD
b25kaXRpb25NdXRleCk7CiAKICAgICAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AgPSBzdGQ6Om1h
a2VfdW5pcXVlPENvbXBvc2l0aW5nUnVuTG9vcD4oWyZdIHsKICAgICAgICAgICAgIHJlbmRlckxh
eWVyVHJlZSgpOwpAQCAtMzIxLDcgKzMyMSw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpy
dW5Db21wb3NpdGluZ1QKICAgICBtX3NjZW5lLT5wdXJnZUdMUmVzb3VyY2VzKCk7CiAKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb25N
dXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGVybWluYXRlUnVuTG9vcENvbmRp
dGlvbk11dGV4KTsKICAgICAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AgPSBudWxscHRyOwogICAg
ICAgICBtX2NvbnRleHQgPSBudWxscHRyOwogICAgICAgICBtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25k
aXRpb24uc2lnbmFsKCk7CkBAIC0zMzIsNyArMzMyLDcgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0
b3I6OnJ1bkNvbXBvc2l0aW5nVAogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6dGVybWluYXRl
Q29tcG9zaXRpbmdUaHJlYWQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rlcm1pbmF0
ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90ZXJtaW5h
dGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogCiAgICAgbV9zY2VuZS0+ZGV0YWNoKCk7CiAgICAg
bV9jb21wb3NpdGluZ1J1bkxvb3AtPnJ1bkxvb3AoKS5zdG9wKCk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFk
ZWRDb21wb3NpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCShy
ZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTExMSw5ICsxMTEsOSBAQCBwcml2YXRlOgogCiAgICAgVGhyZWFkSWRlbnRpZmllciBt
X3RocmVhZElkZW50aWZpZXI7CiAgICAgVGhyZWFkQ29uZGl0aW9uIG1faW5pdGlhbGl6ZVJ1bkxv
b3BDb25kaXRpb247Ci0gICAgTXV0ZXggbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4
OworICAgIExvY2sgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4OwogICAgIFRocmVh
ZENvbmRpdGlvbiBtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb247Ci0gICAgTXV0ZXggbV90ZXJt
aW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXg7CisgICAgTG9jayBtX3Rlcm1pbmF0ZVJ1bkxvb3BD
b25kaXRpb25NdXRleDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFu
YWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3Rv
bVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3Rv
Y29sTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsMTEgKzEwMiwxMSBAQCBwcml2YXRl
OgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fcmVnaXN0ZXJl
ZFNjaGVtZXM7Ci0gICAgTXV0ZXggbV9yZWdpc3RlcmVkU2NoZW1lc011dGV4OworICAgIExvY2sg
bV9yZWdpc3RlcmVkU2NoZW1lc011dGV4OwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90
LCBSZXRhaW5QdHI8V0tDdXN0b21Qcm90b2NvbD4+IEN1c3RvbVByb3RvY29sTWFwOwogICAgIEN1
c3RvbVByb3RvY29sTWFwIG1fY3VzdG9tUHJvdG9jb2xNYXA7Ci0gICAgTXV0ZXggbV9jdXN0b21Q
cm90b2NvbE1hcE11dGV4OworICAgIExvY2sgbV9jdXN0b21Qcm90b2NvbE1hcE11dGV4OwogICAg
IAogICAgIC8vIFdLQ3VzdG9tUHJvdG9jb2wgb2JqZWN0cyBjYW4gYmUgcmVtb3ZlZCBmcm9tIHRo
ZSBtX2N1c3RvbVByb3RvY29sTWFwIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KICAgICAvLyBXZSBy
ZXR1cm4gYSBSZXRhaW5QdHIgaGVyZSBiZWNhdXNlIGl0IGlzIHVuc2FmZSB0byByZXR1cm4gYSBy
YXcgcG9pbnRlciBzaW5jZSB0aGUgb2JqZWN0IG1pZ2h0IGltbWVkaWF0ZWx5IGJlIGRlc3Ryb3ll
ZCBmcm9tIGEgZGlmZmVyZW50IHRocmVhZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90
b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0JKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2Nv
YS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTY1LDI4
ICsxNjUsMjggQEAgdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmluaXRpYWxpemUoYwogdm9p
ZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmFkZEN1c3RvbVByb3RvY29sKFdLQ3VzdG9tUHJvdG9j
b2wgKmN1c3RvbVByb3RvY29sKQogewogICAgIEFTU0VSVChjdXN0b21Qcm90b2NvbCk7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKICAgICBtX2N1c3RvbVByb3Rv
Y29sTWFwLmFkZChjdXN0b21Qcm90b2NvbC5jdXN0b21Qcm90b2NvbElELCBjdXN0b21Qcm90b2Nv
bCk7CiB9CiAKIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpyZW1vdmVDdXN0b21Qcm90b2Nv
bChXS0N1c3RvbVByb3RvY29sICpjdXN0b21Qcm90b2NvbCkKIHsKICAgICBBU1NFUlQoY3VzdG9t
UHJvdG9jb2wpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2N1c3RvbVByb3RvY29sTWFwTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleCk7CiAg
ICAgbV9jdXN0b21Qcm90b2NvbE1hcC5yZW1vdmUoY3VzdG9tUHJvdG9jb2wuY3VzdG9tUHJvdG9j
b2xJRCk7CiB9CiAgICAgCiB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6cmVnaXN0ZXJTY2hl
bWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCiB7CiAgICAgQVNTRVJUKCFzY2hlbWUuaXNOdWxsKCkp
OwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7CiAgICAgbV9yZWdp
c3RlcmVkU2NoZW1lcy5hZGQoc2NoZW1lKTsKIH0KICAgICAKIHZvaWQgQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyOjp1bnJlZ2lzdGVyU2NoZW1lKGNvbnN0IFN0cmluZyYgc2NoZW1lKQogewogICAgIEFT
U0VSVCghc2NoZW1lLmlzTnVsbCgpKTsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9yZWdpc3Rl
cmVkU2NoZW1lc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3JlZ2lzdGVyZWRTY2hl
bWVzTXV0ZXgpOwogICAgIG1fcmVnaXN0ZXJlZFNjaGVtZXMucmVtb3ZlKHNjaGVtZSk7CiB9CiAK
QEAgLTE5NSw3ICsxOTUsNyBAQCBib29sIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6c3VwcG9ydHNT
Y2hlCiAgICAgaWYgKHNjaGVtZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKICAgICByZXR1cm4gbV9y
ZWdpc3RlcmVkU2NoZW1lcy5jb250YWlucyhzY2hlbWUpOwogfQogCkBAIC0yNzUsNyArMjc1LDcg
QEAgICAgIGlmICghcHJvdG9jb2wpCiAKIFJldGFpblB0cjxXS0N1c3RvbVByb3RvY29sPiBDdXN0
b21Qcm90b2NvbE1hbmFnZXI6OnByb3RvY29sRm9ySUQodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJ
RCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOwogCiAgICAg
Q3VzdG9tUHJvdG9jb2xNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9jdXN0b21Qcm90b2NvbE1h
cC5maW5kKGN1c3RvbVByb3RvY29sSUQpOwogICAgIGlmIChpdCA9PSBtX2N1c3RvbVByb3RvY29s
TWFwLmVuZCgpKQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0
ZXJzL1NlY2NvbXBCcm9rZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcAkocmV2aXNpb24gMTg4NTY5
KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBC
cm9rZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAKICAg
ICBpbnQgbV9zb2NrZXQ7CiAKLSAgICBtdXRhYmxlIE11dGV4IG1fc29ja2V0TG9jazsKKyAgICBt
dXRhYmxlIExvY2sgbV9zb2NrZXRMb2NrOwogCiAgICAgLy8gTWFwcyBmaWxlcyB0aGF0IG1heSBi
ZSByZWFkIGJ5IG1hbGxvYygpIHRvIG9wZW4gZmlsZSBkZXNjcmlwdG9ycy4KICAgICBIYXNoTWFw
PFN0cmluZywgaW50PiBtX2ZpbGVEZXNjcmlwdG9yQ2FjaGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDcgQEAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24qIFBsdWdpblByb2Nlc3NDbwogICAgIG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25zLmFwcGVu
ZChwbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXgpOwogICAgICAgICBBU1NFUlQoIW1f
dG9rZW5zQW5kQ29ubmVjdGlvbnMuY29udGFpbnMocGx1Z2luUHJvY2Vzc1Rva2VuKSk7CiAKICAg
ICAgICAgbV90b2tlbnNBbmRDb25uZWN0aW9ucy5zZXQocGx1Z2luUHJvY2Vzc1Rva2VuLCBwbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpKTsKQEAgLTEwMSw3ICsxMDEsNyBAQCB2
b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6cmVtCiAgICAgQVNTRVJUKHZlY3Rv
ckluZGV4ICE9IG5vdEZvdW5kKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fdG9rZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdG9rZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7CiAgICAgICAgIEFTU0VSVChtX3Rva2Vuc0Fu
ZENvbm5lY3Rpb25zLmNvbnRhaW5zKHBsdWdpblByb2Nlc3NDb25uZWN0aW9uLT5wbHVnaW5Qcm9j
ZXNzVG9rZW4oKSkpOwogICAgICAgICAKICAgICAgICAgbV90b2tlbnNBbmRDb25uZWN0aW9ucy5y
ZW1vdmUocGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24tPnBsdWdpblByb2Nlc3NUb2tlbigpKTsKQEAg
LTExMiw3ICsxMTIsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6cmVt
CiAKIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpwbHVnaW5Qcm9jZXNzQ3Jh
c2hlZCh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4pCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fdG9rZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV90b2tlbnNBbmRDb25uZWN0aW9uc011dGV4KTsKICAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24gPSBtX3Rva2Vuc0FuZENvbm5lY3Rpb25zLmdldChwbHVnaW5Qcm9jZXNzVG9rZW4pOwog
CiAgICAgLy8gSXQncyBPSyBmb3IgY29ubmVjdGlvbiB0byBiZSBudWxsIGhlcmU7IGl0IHdpbGwg
aGFwcGVuIGlmIHRoaXMgd2ViIHByb2Nlc3MgZG9lc24ndCBrbm93CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxS
ZWZQdHI8UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+PiBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9u
czsKIAotICAgIE11dGV4IG1fdG9rZW5zQW5kQ29ubmVjdGlvbnNNdXRleDsKKyAgICBMb2NrIG1f
dG9rZW5zQW5kQ29ubmVjdGlvbnNNdXRleDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
SVBDOjpDb25uZWN0aW9uPj4gbV90b2tlbnNBbmRDb25uZWN0aW9uczsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBA
QCBFdmVudERpc3BhdGNoZXI6On5FdmVudERpc3BhdGNoZXIoKQogI2lmIEVOQUJMRShBU1lOQ19T
Q1JPTExJTkcpCiB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6YWRkU2Nyb2xsaW5nVHJlZUZvclBhZ2Uo
V2ViUGFnZSogd2ViUGFnZSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zY3JvbGxpbmdU
cmVlc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgp
OwogCiAgICAgQVNTRVJUKHdlYlBhZ2UtPmNvcmVQYWdlKCktPnNjcm9sbGluZ0Nvb3JkaW5hdG9y
KCkpOwogICAgIEFTU0VSVCghbV9zY3JvbGxpbmdUcmVlcy5jb250YWlucyh3ZWJQYWdlLT5wYWdl
SUQoKSkpOwpAQCAtNzYsNyArNzYsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6YWRkU2Nyb2xs
aW5nVHJlZUZvCiAKIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpyZW1vdmVTY3JvbGxpbmdUcmVlRm9y
UGFnZShXZWJQYWdlKiB3ZWJQYWdlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Njcm9s
bGluZ1RyZWVzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNN
dXRleCk7CiAgICAgQVNTRVJUKG1fc2Nyb2xsaW5nVHJlZXMuY29udGFpbnMod2ViUGFnZS0+cGFn
ZUlEKCkpKTsKIAogICAgIG1fc2Nyb2xsaW5nVHJlZXMucmVtb3ZlKHdlYlBhZ2UtPnBhZ2VJRCgp
KTsKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudCh1
aW50NjRfCiAjZW5kaWYKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKICAgICBpZiAoUmVmUHRyPFRocmVhZGVkU2Nyb2xs
aW5nVHJlZT4gc2Nyb2xsaW5nVHJlZSA9IG1fc2Nyb2xsaW5nVHJlZXMuZ2V0KHBhZ2VJRCkpIHsK
ICAgICAgICAgLy8gRklYTUU6IEl0J3MgcHJldHR5IGhvcnJpYmxlIHRoYXQgd2UncmUgdXBkYXRp
bmcgdGhlIGJhY2svZm9yd2FyZCBzdGF0ZSBoZXJlLgogICAgICAgICAvLyBXZWJDb3JlIHNob3Vs
ZCBhbHdheXMga25vdyB0aGUgY3VycmVudCBzdGF0ZSBhbmQga25vdyB3aGVuIGl0IGNoYW5nZXMg
c28gdGhlCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0V2ZW50RGlzcGF0Y2hlci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTky
LDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwogCiAjaWYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKLSAgICBNdXRleCBtX3Njcm9sbGluZ1RyZWVzTXV0ZXg7
CisgICAgTG9jayBtX3Njcm9sbGluZ1RyZWVzTXV0ZXg7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZT4+IG1fc2Nyb2xsaW5nVHJlZXM7
CiAjZW5kaWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2hlZWxFdmVudERlbHRhVHJh
Y2tlcj4gbV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFUcmFja2VyOwpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVz
dElucHV0U3RyZWFtLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MSw3ICs0MSw3IEBAIHN0cnVjdCBfV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bVByaXYKICAgICB1aW50NjRfdCBieXRlc1JlY2VpdmVkOwogICAgIHVpbnQ2NF90IGJ5dGVzUmVh
ZDsKIAotICAgIE11dGV4IHJlYWRMb2NrOworICAgIExvY2sgcmVhZExvY2s7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPEFzeW5jUmVhZERhdGE+IHBlbmRpbmdBc3luY1JlYWQ7CiB9OwogCkBAIC04NCw3
ICs4NCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0KICAgICBX
ZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtKiBzdHJlYW0gPSBXRUJLSVRfU09VUF9SRVFVRVNU
X0lOUFVUX1NUUkVBTShpbnB1dFN0cmVhbSk7CiAgICAgR1JlZlB0cjxHVGFzaz4gdGFzayA9IGFk
b3B0R1JlZihnX3Rhc2tfbmV3KHN0cmVhbSwgY2FuY2VsbGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0
YSkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKHN0cmVhbS0+cHJpdi0+cmVhZExvY2spOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKHN0cmVhbS0+cHJpdi0+cmVhZExvY2spOwogCiAgICAgaWYg
KCF3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtSGFzRGF0YVRvUmVhZChzdHJlYW0pICYmICF3
ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtSXNXYWl0aW5nRm9yRGF0YShzdHJlYW0pKSB7CiAg
ICAgICAgIGdfdGFza19yZXR1cm5faW50KHRhc2suZ2V0KCksIDApOwpAQCAtMTQzLDcgKzE0Myw3
IEBAIHZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUFkZERhdGEKICAgICBpZiAod2Vi
a2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUZpbmlzaGVkKHN0cmVhbSkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihzdHJlYW0tPnByaXYtPnJlYWRMb2NrKTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihzdHJlYW0tPnByaXYtPnJlYWRMb2NrKTsKIAogICAgIGlmIChk
YXRhTGVuZ3RoKSB7CiAgICAgICAgIC8vIFRydW5jYXRlIHRoZSBkYXRhTGVuZ3RoIHRvIHRoZSBj
b250ZW50TGVuZ3RoIGlmIGl0J3Mga25vd24uCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5
KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwz
MyBAQAorMjAxNS0wOC0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlcGxhY2UgYWxsIHJlbWFpbmluZyB1c2VzIG9mIFdURjo6TXV0ZXggd2l0aCBXVEY6Okxv
Y2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODA4
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU3Rv
cmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFT
eW5jOjpzeW5jVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVN5bmM6
Om1hcmtJbXBvcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVN5bmM6OmJsb2Nr
VW50aWxJbXBvcnRDb21wbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVN5bmM6
OnBlcmZvcm1TeW5jKToKKyAgICAgICAgKiBTdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oOgorICAg
ICAgICAqIFN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3Rv
cmFnZVRyYWNrZXI6OnNldERhdGFiYXNlRGlyZWN0b3J5UGF0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpTdG9yYWdlVHJhY2tlcjo6ZmluaXNoZWRJbXBvcnRpbmdPcmlnaW5JZGVudGlmaWVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZW50aWZp
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzeW5jRmlsZVN5c3RlbUFu
ZFRyYWNrZXJEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6c2V0
T3JpZ2luRGV0YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6c3luY1Nl
dE9yaWdpbkRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6Om9yaWdp
bnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmRlbGV0ZUFsbE9yaWdpbnMp
OgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVBbGxPcmlnaW5z
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpkZWxldGVPcmlnaW4pOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmNhbkRlbGV0ZU9yaWdpbik6CisgICAgICAgIChX
ZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6Y2FuY2VsRGVsZXRpbmdPcmlnaW4pOgorICAgICAgICAo
V2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmRpc2tVc2FnZUZvck9yaWdpbik6CisgICAgICAgICog
U3RvcmFnZS9TdG9yYWdlVHJhY2tlci5oOgorCiAyMDE1LTA4LTE3ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbiBDTWFrZV0gQWxsb3cg
V2ViS2l0TGlicmFyaWVzIGRpcmVjdG9yeSB0byBiZSBzZXQgZnJvbSB0aGUgY29tbWFuZCBsaW5l
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcAkocmV2aXNp
b24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE2NCw3ICsxNjQsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6
c3luY1RpbWVyRmlyZWQoKQogCiAgICAgYm9vbCBwYXJ0aWFsU3luYyA9IGZhbHNlOwogICAgIHsK
LSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY0xvY2spOworICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3N5bmNMb2NrKTsKIAogICAgICAgICAvLyBEbyBub3Qgc2NoZWR1bGUgYW5v
dGhlciBzeW5jIGlmIHdlJ3JlIHN0aWxsIHRyeWluZyB0byBjb21wbGV0ZSB0aGUKICAgICAgICAg
Ly8gcHJldmlvdXMgb25lLiBCdXQsIGlmIHdlJ3JlIHNodXR0aW5nIGRvd24sIHNjaGVkdWxlIGl0
IGFueXdheS4KQEAgLTM1Miw5ICszNTIsOSBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9y
bUltcG9ydCgpCiAKIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjptYXJrSW1wb3J0ZWQoKQogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX2ltcG9ydExvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1faW1wb3J0TG9jayk7CiAgICAgbV9pbXBvcnRDb21wbGV0ZSA9IHRydWU7Ci0gICAgbV9pbXBv
cnRDb25kaXRpb24uc2lnbmFsKCk7CisgICAgbV9pbXBvcnRDb25kaXRpb24ubm90aWZ5T25lKCk7
CiB9CiAKIC8vIEZJWE1FOiBJbiB0aGUgZnV0dXJlLCB3ZSBzaG91bGQgYWxsb3cgdXNlIG9mIFN0
b3JhZ2VBcmVhcyB3aGlsZSBpdCdzIGltcG9ydGluZyAod2hlbiBzYWZlIHRvIGRvIHNvKS4KQEAg
LTM3Miw3ICszNzIsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6YmxvY2tVbnRpbEltcG9ydENv
CiAgICAgaWYgKCFtX3N0b3JhZ2VBcmVhKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9pbXBvcnRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2ltcG9y
dExvY2spOwogICAgIHdoaWxlICghbV9pbXBvcnRDb21wbGV0ZSkKICAgICAgICAgbV9pbXBvcnRD
b25kaXRpb24ud2FpdChtX2ltcG9ydExvY2spOwogICAgIG1fc3RvcmFnZUFyZWEgPSBudWxscHRy
OwpAQCAtNDY3LDcgKzQ2Nyw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtU3luYygp
CiAgICAgYm9vbCBjbGVhckl0ZW1zOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGl0ZW1z
OwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY0xvY2spOworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNMb2NrKTsKIAogICAgICAgICBBU1NFUlQobV9zeW5j
U2NoZWR1bGVkKTsKIApAQCAtNDgyLDcgKzQ4Miw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpw
ZXJmb3JtU3luYygpCiAgICAgc3luYyhjbGVhckl0ZW1zLCBpdGVtcyk7CiAKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9zeW5jTG9jayk7CiAgICAgICAgIG1fc3luY0luUHJvZ3Jlc3MgPSBmYWxzZTsKICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9TUUxp
dGVEYXRhYmFzZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KKyNpbmNsdWRlIDx3dGYv
Q29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTg1LDcgKzg2LDcgQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0
IFN0cmluZyBtX2RhdGFiYXNlSWRlbnRpZmllcjsKIAotICAgIE11dGV4IG1fc3luY0xvY2s7Cisg
ICAgTG9jayBtX3N5bmNMb2NrOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1faXRlbXNQ
ZW5kaW5nU3luYzsKICAgICBib29sIG1fY2xlYXJJdGVtc1doaWxlU3luY2luZzsKICAgICBib29s
IG1fc3luY1NjaGVkdWxlZDsKQEAgLTk0LDggKzk1LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wg
bV9zeW5jQ2xvc2VEYXRhYmFzZTsKIAotICAgIG11dGFibGUgTXV0ZXggbV9pbXBvcnRMb2NrOwot
ICAgIFRocmVhZENvbmRpdGlvbiBtX2ltcG9ydENvbmRpdGlvbjsKKyAgICBtdXRhYmxlIExvY2sg
bV9pbXBvcnRMb2NrOworICAgIENvbmRpdGlvbiBtX2ltcG9ydENvbmRpdGlvbjsKICAgICBib29s
IG1faW1wb3J0Q29tcGxldGU7CiAgICAgdm9pZCBtYXJrSW1wb3J0ZWQoKTsKICAgICB2b2lkIG1p
Z3JhdGVJdGVtVGFibGVJZk5lZWRlZCgpOwpJbmRleDogU291cmNlL1dlYktpdC9TdG9yYWdlL1N0
b3JhZ2VUcmFja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3Rv
cmFnZVRyYWNrZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L1N0b3Jh
Z2UvU3RvcmFnZVRyYWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNyArMTAwLDcgQEAg
U3RvcmFnZVRyYWNrZXI6OlN0b3JhZ2VUcmFja2VyKGNvbnN0IFN0cgogCiB2b2lkIFN0b3JhZ2VU
cmFja2VyOjpzZXREYXRhYmFzZURpcmVjdG9yeVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQogewot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAKICAgICBpZiAobV9kYXRhYmFzZS5pc09wZW4oKSkK
ICAgICAgICAgbV9kYXRhYmFzZS5jbG9zZSgpOwpAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgU3Rv
cmFnZVRyYWNrZXI6OnNldERhdGFiYXNlRGlyZWN0b3IKICAgICBtX3N0b3JhZ2VEaXJlY3RvcnlQ
YXRoID0gcGF0aC5pc29sYXRlZENvcHkoKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29y
aWdpblNldE11dGV4KTsKICAgICAgICAgbV9vcmlnaW5TZXQuY2xlYXIoKTsKICAgICB9CiAKQEAg
LTE4NSw3ICsxODUsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjppbXBvcnRPcmlnaW5JZGVudGlm
CiAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6OmZpbmlzaGVkSW1wb3J0aW5nT3JpZ2luSWRlbnRpZmll
cnMoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgaWYgKG1fY2xpZW50KQogICAg
ICAgICBtX2NsaWVudC0+ZGlkRmluaXNoTG9hZGluZ09yaWdpbnMoKTsKIH0KQEAgLTE5Nyw3ICsx
OTcsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3JpZ2luSWRlCiAgICAgQVNT
RVJUKCFpc01haW5UaHJlYWQoKSk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2RhdGFiYXNlTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNl
TXV0ZXgpOwogCiAgICAgICAgIC8vIERvbid0IGZvcmNlIGNyZWF0aW9uIG9mIFN0b3JhZ2VUcmFj
a2VyJ3MgZGIganVzdCBiZWNhdXNlIGEgdHJhY2tlcgogICAgICAgICAvLyB3YXMgaW5pdGlhbGl6
ZWQuIEl0IHdpbGwgYmUgY3JlYXRlZCBpZiBsb2NhbCBzdG9yYWdlIGRicyBhcmUgZm91bmQKQEAg
LTIxNyw3ICsyMTcsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3JpZ2luSWRl
CiAgICAgICAgICAgICBpbnQgcmVzdWx0OwogICAgICAgICAgICAgCiAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja09yaWdpbnMobV9vcmlnaW5TZXRNdXRleCk7
CisgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrT3JpZ2lucyhtX29yaWdpblNldE11dGV4
KTsKICAgICAgICAgICAgICAgICB3aGlsZSAoKHJlc3VsdCA9IHN0YXRlbWVudC5zdGVwKCkpID09
IFNRTElURV9ST1cpCiAgICAgICAgICAgICAgICAgICAgIG1fb3JpZ2luU2V0LmFkZChzdGF0ZW1l
bnQuZ2V0Q29sdW1uVGV4dCgwKS5pc29sYXRlZENvcHkoKSk7CiAgICAgICAgICAgICB9CkBAIC0y
MzIsMTAgKzIzMiwxMCBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3JpZ2luSWRl
CiAgICAgc3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UoKTsKICAgICAKICAgICB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2NsaWVudE11dGV4KTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9jbGllbnRNdXRleCk7CiAKICAgICAgICAgaWYgKG1fY2xpZW50KSB7Ci0g
ICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgICAgIE9y
aWdpblNldDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9vcmlnaW5TZXQuZW5kKCk7CiAgICAgICAg
ICAgICBmb3IgKE9yaWdpblNldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX29yaWdpblNldC5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNo
RGlkTW9kaWZ5T3JpZ2luKCppdCk7CkBAIC0yNTcsNyArMjU3LDcgQEAgdm9pZCBTdG9yYWdlVHJh
Y2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcgogCiAgICAgVmVjdG9yPFN0cmluZz4gcGF0aHM7CiAg
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKICAgICAgICAgcGF0aHMgPSBs
aXN0RGlyZWN0b3J5KG1fc3RvcmFnZURpcmVjdG9yeVBhdGgsICIqLmxvY2Fsc3RvcmFnZSIpOwog
ICAgIH0KIApAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxl
U3lzdGVtQW5kVHIKICAgICAvLyBkZWxldGlvbnMgZnJvbSBkaXNrIGFuZCBmcm9tIG1fb3JpZ2lu
U2V0LgogICAgIE9yaWdpblNldCBvcmlnaW5TZXRDb3B5OwogICAgIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgZm9yIChPcmlnaW5TZXQ6OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gbV9vcmlnaW5TZXQuYmVnaW4oKSwgZW5kID0gbV9vcmlnaW5TZXQuZW5kKCk7IGl0
ICE9IGVuZDsgKytpdCkKICAgICAgICAgICAgIG9yaWdpblNldENvcHkuYWRkKCgqaXQpLmlzb2xh
dGVkQ29weSgpKTsKICAgICB9CkBAIC0zMDYsNyArMzA2LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tl
cjo6c2V0T3JpZ2luRGV0YWlscyhjbwogICAgICAgICByZXR1cm47CiAKICAgICB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAKICAgICAgICAgaWYgKG1fb3JpZ2luU2V0LmNv
bnRhaW5zKG9yaWdpbklkZW50aWZpZXIpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzM3LDcg
KzMzNyw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWwKIAogICAg
IFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291bnRl
cjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAKICAgICBvcGVuVHJhY2tlckRhdGFiYXNl
KHRydWUpOwogICAgIApAQCAtMzU3LDEzICszNTcsMTMgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6
c3luY1NldE9yaWdpbkRldGFpbAogICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBlc3RhYmxp
c2ggb3JpZ2luICclcycgaW4gdGhlIHRyYWNrZXIiLCBvcmlnaW5JZGVudGlmaWVyLmFzY2lpKCku
ZGF0YSgpKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKICAg
ICAgICAgaWYgKCFtX29yaWdpblNldC5jb250YWlucyhvcmlnaW5JZGVudGlmaWVyKSkKICAgICAg
ICAgICAgIG1fb3JpZ2luU2V0LmFkZChvcmlnaW5JZGVudGlmaWVyKTsKICAgICB9CiAKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2NsaWVudE11dGV4KTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9jbGllbnRNdXRleCk7CiAgICAgICAgIGlmIChtX2NsaWVudCkKICAg
ICAgICAgICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZE1vZGlmeU9yaWdpbihvcmlnaW5JZGVudGlm
aWVyKTsKICAgICB9CkBAIC0zNzYsNyArMzc2LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6b3Jp
Z2lucyhWZWN0b3I8UmVmUAogICAgIGlmICghbV9pc0FjdGl2ZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogCiAgICAgZm9yIChPcmlnaW5TZXQ6OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gbV9vcmlnaW5TZXQuYmVnaW4oKSwgZW5kID0gbV9vcmlnaW5TZXQuZW5k
KCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgcmVzdWx0LmFwcGVuZChTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcigqaXQpKTsKQEAgLTM5Miw3ICszOTIsNyBA
QCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpkZWxldGVBbGxPcmlnaW5zKCkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICB3
aWxsRGVsZXRlQWxsT3JpZ2lucygpOwogICAgICAgICBtX29yaWdpblNldC5jbGVhcigpOwogICAg
IH0KQEAgLTQxNyw3ICs0MTcsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlQWxs
T3JpZ2luCiAKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFu
c2FjdGlvbkNvdW50ZXI7CiAgICAgCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VN
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKICAgICAKICAg
ICBvcGVuVHJhY2tlckRhdGFiYXNlKGZhbHNlKTsKICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVu
KCkpCkBAIC00MzcsNyArNDM3LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFs
bE9yaWdpbgogICAgICAgICBkZWxldGVGaWxlKHN0YXRlbWVudC5nZXRDb2x1bW5UZXh0KDEpKTsK
IAogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9jbGllbnRNdXRl
eCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2NsaWVudE11dGV4KTsKICAgICAg
ICAgICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hE
aWRNb2RpZnlPcmlnaW4oc3RhdGVtZW50LmdldENvbHVtblRleHQoMCkpOwogICAgICAgICB9CkBA
IC00OTksNyArNDk5LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKFNlY3Vy
aQogICAgIFN0cmluZyBvcmlnaW5JZCA9IG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCk7CiAg
ICAgCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICB3
aWxsRGVsZXRlT3JpZ2luKG9yaWdpbklkKTsKICAgICAgICAgbV9vcmlnaW5TZXQucmVtb3ZlKG9y
aWdpbklkKTsKICAgICB9CkBAIC01MTYsNyArNTE2LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6
c3luY0RlbGV0ZU9yaWdpbihjbwogCiAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0
b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
ZGF0YWJhc2VNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsK
ICAgICAKICAgICBpZiAoIWNhbkRlbGV0ZU9yaWdpbihvcmlnaW5JZGVudGlmaWVyKSkgewogICAg
ICAgICBMT0dfRVJST1IoIkF0dGVtcHRlZCB0byBkZWxldGUgb3JpZ2luICclcycgd2hpbGUgaXQg
d2FzIGJlaW5nIGNyZWF0ZWRcbiIsIG9yaWdpbklkZW50aWZpZXIuYXNjaWkoKS5kYXRhKCkpOwpA
QCAtNTQ5LDcgKzU0OSw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4o
Y28KICAgICAKICAgICBib29sIHNob3VsZERlbGV0ZVRyYWNrZXJGaWxlcyA9IGZhbHNlOwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgbV9vcmlnaW5T
ZXQucmVtb3ZlKG9yaWdpbklkZW50aWZpZXIpOwogICAgICAgICBzaG91bGREZWxldGVUcmFja2Vy
RmlsZXMgPSBtX29yaWdpblNldC5pc0VtcHR5KCk7CiAgICAgfQpAQCAtNTY2LDcgKzU2Niw3IEBA
IHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4oY28KICAgICB9CiAKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2NsaWVudE11dGV4KTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9jbGllbnRNdXRleCk7CiAgICAgICAgIGlmIChtX2NsaWVudCkKICAg
ICAgICAgICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZE1vZGlmeU9yaWdpbihvcmlnaW5JZGVudGlm
aWVyKTsKICAgICB9CkBAIC01OTIsNyArNTkyLDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6d2ls
bERlbGV0ZU9yaWdpbihjbwogYm9vbCBTdG9yYWdlVHJhY2tlcjo6Y2FuRGVsZXRlT3JpZ2luKGNv
bnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoIW1fZGF0YWJhc2VN
dXRleC50cnlMb2NrKCkpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICByZXR1cm4g
bV9vcmlnaW5zQmVpbmdEZWxldGVkLmNvbnRhaW5zKG9yaWdpbklkZW50aWZpZXIpOwogfQogCkBA
IC02MDEsOSArNjAxLDkgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6Y2FuY2VsRGVsZXRpbmdPcmln
aQogICAgIGlmICghbV9pc0FjdGl2ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRh
YmFzZU11dGV4KTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNl
dE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAg
ICAgICAgIGlmICghbV9vcmlnaW5zQmVpbmdEZWxldGVkLmlzRW1wdHkoKSkKICAgICAgICAgICAg
IG1fb3JpZ2luc0JlaW5nRGVsZXRlZC5yZW1vdmUob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpA
QCAtNjQ3LDcgKzY0Nyw3IEBAIGxvbmcgbG9uZyBTdG9yYWdlVHJhY2tlcjo6ZGlza1VzYWdlRm9y
T3IKICAgICBpZiAoIW1faXNBY3RpdmUpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9k
YXRhYmFzZU11dGV4KTsKIAogICAgIFN0cmluZyBwYXRoID0gZGF0YWJhc2VQYXRoRm9yT3JpZ2lu
KG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAgIGlmIChwYXRoLmlzRW1wdHkoKSkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5oCShyZXZpc2lvbiAxODg1
NjkpCisrKyBTb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtOTUsMTUgKzk1LDE1IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzeW5jSW1wb3J0T3Jp
Z2luSWRlbnRpZmllcnMoKTsKIAogICAgIC8vIE11dGV4IGZvciBtX2RhdGFiYXNlIGFuZCBtX3N0
b3JhZ2VEaXJlY3RvcnlQYXRoLgotICAgIE11dGV4IG1fZGF0YWJhc2VNdXRleDsKKyAgICBMb2Nr
IG1fZGF0YWJhc2VNdXRleDsKICAgICBTUUxpdGVEYXRhYmFzZSBtX2RhdGFiYXNlOwogICAgIFN0
cmluZyBtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoOwogCi0gICAgTXV0ZXggbV9jbGllbnRNdXRleDsK
KyAgICBMb2NrIG1fY2xpZW50TXV0ZXg7CiAgICAgU3RvcmFnZVRyYWNrZXJDbGllbnQqIG1fY2xp
ZW50OwogCiAgICAgLy8gR3VhcmQgZm9yIG1fb3JpZ2luU2V0IGFuZCBtX29yaWdpbnNCZWluZ0Rl
bGV0ZWQuCi0gICAgTXV0ZXggbV9vcmlnaW5TZXRNdXRleDsKKyAgICBMb2NrIG1fb3JpZ2luU2V0
TXV0ZXg7CiAgICAgdHlwZWRlZiBIYXNoU2V0PFN0cmluZz4gT3JpZ2luU2V0OwogICAgIE9yaWdp
blNldCBtX29yaWdpblNldDsKICAgICBPcmlnaW5TZXQgbV9vcmlnaW5zQmVpbmdEZWxldGVkOwpJ
bmRleDogU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvaW9zL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9p
b3MvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTUtMDgtMTcg
IEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCBy
ZW1haW5pbmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZp
eGVkUG9zaXRpb25Db250ZW50Lm1tOgorICAgICAgICAoV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnRE
YXRhTG9jayk6CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IHNjcm9sbE9yWm9v
bUNoYW5nZWQ6XSk6CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IG92ZXJmbG93
U2Nyb2xsUG9zaXRpb25Gb3JMYXllcjpjaGFuZ2VkVG86XSk6CisgICAgICAgICgtW1dlYkZpeGVk
UG9zaXRpb25Db250ZW50IHNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6c3RpY2t5Q29udGFp
bmVyTWFwOl0pOgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBoYXNGaXhlZE9y
U3RpY2t5UG9zaXRpb25MYXllcnNdKToKKyAgICAgICAgKC1bV2ViRml4ZWRQb3NpdGlvbkNvbnRl
bnQgbWluaW11bU9mZnNldEZyb21GaXhlZFBvc2l0aW9uTGF5ZXJzVG9BbmNob3JFZGdlOm9mUmVj
dDppbkxheWVyOl0pOgorCiAyMDE1LTA4LTEzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yIGFuZCBpbXByb3ZlIFRleHRJbmRpY2F0b3Ig
dG8gcHJlcGFyZSBmb3IgdGVzdHMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBw
b3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBv
c2l0aW9uQ29udGVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDgsOSArNDgsOSBAQAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi1zdGF0aWMgTXV0ZXgm
IFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKQorc3RhdGljIExvY2smIFdlYkZpeGVk
UG9zaXRpb25Db250ZW50RGF0YUxvY2soKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoTG9jaywgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTEwMSw3
ICsxMDEsNyBAQCAtICh2b2lkKWRlYWxsb2MKIAogLSAodm9pZClzY3JvbGxPclpvb21DaGFuZ2Vk
OihDR1JlY3QpcG9zaXRpb25lZE9iamVjdHNSZWN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhX
ZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhX
ZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkpOwogCiAgICAgTGF5ZXJJbmZvTWFwOjpj
b25zdF9pdGVyYXRvciBlbmQgPSBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJz
LmVuZCgpOwogICAgIGZvciAoTGF5ZXJJbmZvTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IF9wcml2
YXRlLT5tX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7CkBAIC0xNDAsNyArMTQwLDcgQEAgLSAodm9pZClzY3JvbGxPclpvb21DaGFuZ2VkOihDR1Jl
Y3QpcG9zaQogCiAtICh2b2lkKW92ZXJmbG93U2Nyb2xsUG9zaXRpb25Gb3JMYXllcjooQ0FMYXll
ciAqKXNjcm9sbExheWVyIGNoYW5nZWRUbzooQ0dQb2ludClzY3JvbGxQb3NpdGlvbgogewotICAg
IE11dGV4TG9ja2VyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKIAog
ICAgIExheWVySW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gX3ByaXZhdGUtPm1fdmlld3Bv
cnRDb25zdHJhaW5lZExheWVycy5lbmQoKTsKICAgICBmb3IgKExheWVySW5mb01hcDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCkgewpAQCAtMTczLDcgKzE3Myw3IEBAIC0gKHZvaWQpZGlkRmlu
aXNoU2Nyb2xsaW5nT3Jab29taW5nCiAKIC0gKHZvaWQpc2V0Vmlld3BvcnRDb25zdHJhaW5lZExh
eWVyczooV1RGOjpIYXNoTWFwPENBTGF5ZXIgKiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlZp
ZXdwb3J0Q29uc3RyYWludHM+PiYpbGF5ZXJNYXAgc3RpY2t5Q29udGFpbmVyTWFwOihXVEY6Okhh
c2hNYXA8Q0FMYXllciosIENBTGF5ZXIqPiYpc3RpY2t5Q29udGFpbmVycwogewotICAgIE11dGV4
TG9ja2VyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKIAogICAgIF9w
cml2YXRlLT5tX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuY2xlYXIoKTsKIApAQCAtMTkwLDcg
KzE5MCw3IEBAIC0gKHZvaWQpc2V0Vmlld3BvcnRDb25zdHJhaW5lZExheWVyczooV1QKIAogLSAo
Qk9PTCloYXNGaXhlZE9yU3RpY2t5UG9zaXRpb25MYXllcnMKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrKFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBs
b2NrKFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAgICAgcmV0dXJuICFfcHJp
dmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmlzRW1wdHkoKTsKIH0KIApAQCAtMjEw
LDcgKzIxMCw3IEBAIHN0YXRpYyBWaWV3cG9ydENvbnN0cmFpbnRzOjpBbmNob3JFZGdlRmwKIAog
LSAoQ0dGbG9hdCltaW5pbXVtT2Zmc2V0RnJvbUZpeGVkUG9zaXRpb25MYXllcnNUb0FuY2hvckVk
Z2U6KFdlYkZpeGVkUG9zaXRpb25BbmNob3JFZGdlKWFuY2hvckVkZ2Ugb2ZSZWN0OihDR1JlY3Qp
cmVjdCBpbkxheWVyOihDQUxheWVyICopbGF5ZXIKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdl
YkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdl
YkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAgICAgVmlld3BvcnRDb25zdHJhaW50
czo6QW5jaG9yRWRnZUZsYWdzIGFuY2hvckVkZ2VGbGFncyA9IGFuY2hvckVkZ2VGbGFnc0ZvckFu
Y2hvckVkZ2UoYW5jaG9yRWRnZSk7CiAgICAgQ0dGbG9hdCBtaW5pbXVtT2Zmc2V0ID0gQ0dGTE9B
VF9NQVg7CiAgICAgTGF5ZXJJbmZvTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBfcHJpdmF0ZS0+
bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmVuZCgpOwpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwko
cmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBvZiBXVEY6
Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tOgorICAgICAgICAo
dHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKToKKyAgICAgICAgKCtbV2Vi
RGF0YWJhc2VNYW5hZ2VyIHN0YXJ0QmFja2dyb3VuZFRhc2tdKToKKyAgICAgICAgKCtbV2ViRGF0
YWJhc2VNYW5hZ2VyIGVuZEJhY2tncm91bmRUYXNrXSk6CisgICAgICAgICogV2ViVmlldy9XZWJW
aWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9zeW5jaHJvbml6ZUN1c3RvbUZpeGVkUG9zaXRp
b25MYXlvdXRSZWN0XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3NldEN1c3RvbUZpeGVkUG9zaXRp
b25MYXlvdXRSZWN0SW5XZWJUaHJlYWQ6c3luY2hyb25pemU6XSk6CisgICAgICAgICgtW1dlYlZp
ZXcgX3NldEN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0Ol0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9mZXRjaEN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0Ol0pOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlld0RhdGEuaDoKKwogMjAxNS0wOC0xMyAgQW5keSBFc3RlcyAgPGFlc3Rlc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBEb3dubG9hZHMgZG8gbm90IHN0YXJ0IGlmIHBv
bGljeSBkZWNpc2lvbiBpcyBtYWRlIGFzeW5jaHJvbm91c2x5CkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbQkocmV2aXNpb24gMTg4NTY5
KQorKysgU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0JKHdv
cmtpbmcgY29weSkKQEAgLTIyNiw5ICsyMjYsOSBAQCArICh2b2lkKXNjaGVkdWxlRW1wdHlEYXRh
YmFzZVJlbW92YWwKICNpZiBQTEFURk9STShJT1MpCiBAaW1wbGVtZW50YXRpb24gV2ViRGF0YWJh
c2VNYW5hZ2VyIChXZWJEYXRhYmFzZU1hbmFnZXJJbnRlcm5hbCkKIAotc3RhdGljIE11dGV4JiB0
cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2soKQorc3RhdGljIExvY2smIHRy
YW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jaygpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChMb2NrLCBtdXRleCwgKCkpOwogICAgIHJldHVybiBtdXRleDsK
IH0KIApAQCAtMjYxLDcgKzI2MSw3IEBAICsgKHZvaWQpZGlkRmluaXNoTGFzdFRyYW5zYWN0aW9u
CiAKICsgKHZvaWQpc3RhcnRCYWNrZ3JvdW5kVGFzawogewotICAgIE11dGV4TG9ja2VyIGxvY2so
dHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOworICAgIExvY2tIb2xk
ZXIgbG9jayh0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2soKSk7CiAKICAg
ICAvLyBJZiB0aGVyZSdzIGFscmVhZHkgYW4gZXhpc3RpbmcgYmFja2dyb3VuZCB0YXNrIGdvaW5n
IG9uLCB0aGVyZSdzIG5vIG5lZWQgdG8gc3RhcnQgYSBuZXcgb25lLgogICAgIGlmIChnZXRUcmFu
c2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllcigpICE9IGludmFsaWRXZWJCYWNrZ3JvdW5k
VGFza0lkZW50aWZpZXIoKSkKQEAgLTI3NSw3ICsyNzUsNyBAQCArICh2b2lkKXN0YXJ0QmFja2dy
b3VuZFRhc2sKIAogKyAodm9pZCllbmRCYWNrZ3JvdW5kVGFzawogewotICAgIE11dGV4TG9ja2Vy
IGxvY2sodHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOworICAgIExv
Y2tIb2xkZXIgbG9jayh0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2soKSk7
CiAKICAgICAvLyBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIHdlcmUgdW5hYmxlIHRvIHN0YXJ0IHRo
ZSBiYWNrZ3JvdW5kIHRhc2sgd2hlbiB0aGUgZmlyc3QgdHJhbnNhY3Rpb24gYmVnYW4uCiAgICAg
Ly8gRG9uJ3QgdHJ5IHRvIGVuZCB0aGUgdGFzayBpbiB0aGF0IGNhc2UuCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2MzIsNyArMzYz
Miw3IEBAIC0gKHZvaWQpX3N5bmNocm9uaXplQ3VzdG9tRml4ZWRQb3NpdGlvbkwKIAogICAgIElu
dFJlY3QgbmV3UmVjdDsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihfcHJpdmF0
ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOworICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgp
OwogICAgICAgICBpZiAoQ0dSZWN0SXNOdWxsKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlv
bkxheW91dFJlY3QpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBuZXdSZWN0ID0gZW5j
bG9zaW5nSW50UmVjdChfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KTsK
QEAgLTM2NDYsNyArMzY0Niw3IEBAIC0gKHZvaWQpX3N5bmNocm9uaXplQ3VzdG9tRml4ZWRQb3Np
dGlvbkwKIC0gKHZvaWQpX3NldEN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0SW5XZWJUaHJl
YWQ6KENHUmVjdClyZWN0IHN5bmNocm9uaXplOihCT09MKXN5bmNocm9uaXplCiB7CiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9u
TGF5b3V0UmVjdE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoX3ByaXZhdGUtPnBl
bmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKICAgICAgICAgX3ByaXZhdGUtPnBl
bmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCA9IHJlY3Q7CiAgICAgfQogICAgIGlmICghc3lu
Y2hyb25pemUpCkBAIC0zNjYwLDcgKzM2NjAsNyBAQCAtICh2b2lkKV9zZXRDdXN0b21GaXhlZFBv
c2l0aW9uTGF5b3V0UmVjCiB7CiAgICAgQVNTRVJUKFdlYlRocmVhZElzTG9ja2VkKCkpOwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3Np
dGlvbkxheW91dFJlY3RNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKF9wcml2YXRl
LT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleCk7CiAgICAgICAgIF9wcml2YXRl
LT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3QgPSByZWN0OwogICAgIH0KICAgICBbc2Vs
ZiBfc3luY2hyb25pemVDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdF07CkBAIC0zNjY4LDcg
KzM2NjgsNyBAQCAtICh2b2lkKV9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjCiAKIC0g
KEJPT0wpX2ZldGNoQ3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3Q6KE5TUmVjdCopcmVjdAog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25M
YXlvdXRSZWN0TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5kaW5n
Rml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleCk7CiAgICAgaWYgKENHUmVjdElzTnVsbChfcHJp
dmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCShyZXZp
c2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI0OSw3ICsyNDksNyBAQCBAaW50ZXJmYWNlIFdlYlZpZXdQcml2
YXRlIDogTlNPYmplY3QgewogICAgIENHU2l6ZSBmaXhlZExheW91dFNpemU7CiAgICAgQk9PTCBt
YWluVmlld0lzU2Nyb2xsaW5nT3Jab29taW5nOwogICAgIGludDMyX3QgZGlkRHJhd1RpbGVzOwot
ICAgIFdURjo6TXV0ZXggcGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXg7CisgICAg
V1RGOjpMb2NrIHBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4OwogICAgIENHUmVj
dCBwZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3Q7CiAjZW5kaWYKIApJbmRleDogU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNl
cyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hl
ZHVsZUNhbGwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6
cmVnaXN0ZXJQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlcjo6dW5yZWdpc3RlclBsdWdpbik6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5NYWluVGhy
ZWFkU2NoZWR1bGVyOjpkaXNwYXRjaENhbGxzRm9yUGx1Z2luKToKKyAgICAgICAgKiBQbHVnaW5z
L1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaDoKKyAgICAgICAgKiBXZWJJY29uRGF0YWJhc2Uu
Y3BwOgorICAgICAgICAoV2ViSWNvbkRhdGFiYXNlOjpkaWRSZW1vdmVBbGxJY29ucyk6CisgICAg
ICAgIChXZWJJY29uRGF0YWJhc2U6OmRpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMKToKKyAgICAg
ICAgKFdlYkljb25EYXRhYmFzZTo6ZGVsaXZlck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAqIFdl
Ykljb25EYXRhYmFzZS5oOgorICAgICAgICAqIFdlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHA6Cisg
ICAgICAgIChtYWluQnVuZGxlTG9jU3RyaW5ncyk6CisgICAgICAgIChmcmFtZXdvcmtMb2NTdHJp
bmdzTXV0ZXgpOgorICAgICAgICAoZmluZENhY2hlZFN0cmluZyk6CisgICAgICAgIChjYWNoZVN0
cmluZyk6CisKIDIwMTUtMDgtMTcgIFBlciBBcm5lIFZvbGxhbiAgPHBlYXZvQG91dGxvb2suY29t
PgogCiAgICAgICAgIFtXaW5DYWlyb10gQWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgZG9lcyBub3Qg
cmVzcGVjdCBkZXZpY2Ugc2NhbGUgZmFjdG9yLgpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2Vi
SWNvbkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJJY29u
RGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJJ
Y29uRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjAsMTQgKzMyMCwxNCBAQCBIQklU
TUFQIFdlYkljb25EYXRhYmFzZTo6Z2V0T3JDcmVhdGVEZWZhCiB2b2lkIFdlYkljb25EYXRhYmFz
ZTo6ZGlkUmVtb3ZlQWxsSWNvbnMoKQogewogICAgIC8vIFF1ZXVlaW5nIHRoZSBlbXB0eSBzdHJp
bmcgaXMgYSBzcGVjaWFsIHdheSBvZiBzYXlpbmcgInRoaXMgcXVldWVkIG5vdGlmaWNhdGlvbiBp
cyB0aGUgZGlkUmVtb3ZlQWxsSWNvbnMgbm90aWZpY2F0aW9uIgotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX25vdGlmaWNhdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25vdGlm
aWNhdGlvbk11dGV4KTsKICAgICBtX25vdGlmaWNhdGlvblF1ZXVlLmFwcGVuZChTdHJpbmcoKSk7
CiAgICAgc2NoZWR1bGVOb3RpZmljYXRpb25EZWxpdmVyeSgpOwogfQogCiB2b2lkIFdlYkljb25E
YXRhYmFzZTo6ZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgV1RGOjpTdHJpbmcmIHBh
Z2VVUkwpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbm90aWZpY2F0aW9uTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbm90aWZpY2F0aW9uTXV0ZXgpOwogICAgIG1fbm90aWZp
Y2F0aW9uUXVldWUuYXBwZW5kKHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNjaGVkdWxl
Tm90aWZpY2F0aW9uRGVsaXZlcnkoKTsKIH0KQEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lkIFdlYklj
b25EYXRhYmFzZTo6ZGVsaXZlck5vdGlmaWNhdGlvCiAKICAgICBWZWN0b3I8U3RyaW5nPiBxdWV1
ZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3NoYXJlZFdlYkljb25EYXRh
YmFzZS0+bV9ub3RpZmljYXRpb25NdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
c2hhcmVkV2ViSWNvbkRhdGFiYXNlLT5tX25vdGlmaWNhdGlvbk11dGV4KTsKICAgICAgICAgcXVl
dWUuc3dhcChtX3NoYXJlZFdlYkljb25EYXRhYmFzZS0+bV9ub3RpZmljYXRpb25RdWV1ZSk7CiAg
ICAgICAgIG1fc2hhcmVkV2ViSWNvbkRhdGFiYXNlLT5tX2RlbGl2ZXJ5UmVxdWVzdGVkID0gZmFs
c2U7CiAgICAgfQpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmgJKHJldmlzaW9u
IDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJvdGVjdGVkOgogICAgIEhhc2hNYXA8SW50U2l6
ZSwgSEJJVE1BUD4gbV9kZWZhdWx0SWNvbk1hcDsKICAgICBIYXNoTWFwPEludFNpemUsIEhCSVRN
QVA+IG1fc2hhcmVkSWNvbk1hcDsKIAotICAgIE11dGV4IG1fbm90aWZpY2F0aW9uTXV0ZXg7Cisg
ICAgTG9jayBtX25vdGlmaWNhdGlvbk11dGV4OwogICAgIFZlY3RvcjxTdHJpbmc+IG1fbm90aWZp
Y2F0aW9uUXVldWU7CiAgICAgdm9pZCBzY2hlZHVsZU5vdGlmaWNhdGlvbkRlbGl2ZXJ5KCk7CiAg
ICAgYm9vbCBtX2RlbGl2ZXJ5UmVxdWVzdGVkOwpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2Vi
TG9jYWxpemFibGVTdHJpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9X
ZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
S2l0L3dpbi9XZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw5
ICs0NCw5IEBAIFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRsZSBXZWJLaXRMb2NhbGkKIAogdHlw
ZWRlZiBIYXNoTWFwPFN0cmluZywgTG9jYWxpemVkU3RyaW5nKj4gTG9jYWxpemVkU3RyaW5nTWFw
OwogCi1zdGF0aWMgTXV0ZXgmIG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgoKQorc3RhdGljIExv
Y2smIG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoTG9jaywgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAg
LTU2LDkgKzU2LDkgQEAgc3RhdGljIExvY2FsaXplZFN0cmluZ01hcCYgbWFpbkJ1bmRsZUxvYwog
ICAgIHJldHVybiBtYXA7CiB9CiAKLXN0YXRpYyBNdXRleCYgZnJhbWV3b3JrTG9jU3RyaW5nc011
dGV4KCkKK3N0YXRpYyBMb2NrJiBmcmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgbXV0ZXgsICgpKTsKICAgICByZXR1cm4g
bXV0ZXg7CiB9CiAKQEAgLTE3NSwxMiArMTc1LDEyIEBAIHN0YXRpYyBDRlN0cmluZ1JlZiBjb3B5
TG9jYWxpemVkU3RyaW5nRnIKIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmcqIGZpbmRDYWNoZWRTdHJp
bmcoV2ViTG9jYWxpemFibGVTdHJpbmdzQnVuZGxlKiBzdHJpbmdzQnVuZGxlLCBjb25zdCBTdHJp
bmcmIGtleSkKIHsKICAgICBpZiAoIXN0cmluZ3NCdW5kbGUpIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtYWluQnVuZGxlTG9jU3RyaW5nc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgpKTsKICAgICAgICAgcmV0dXJuIG1haW5C
dW5kbGVMb2NTdHJpbmdzKCkuZ2V0KGtleSk7CiAgICAgfQogCiAgICAgaWYgKHN0cmluZ3NCdW5k
bGUtPmJ1bmRsZSA9PSBXZWJLaXRMb2NhbGl6YWJsZVN0cmluZ3NCdW5kbGUuYnVuZGxlKSB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2soZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2soZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkpOwogICAgICAg
ICByZXR1cm4gZnJhbWV3b3JrTG9jU3RyaW5ncygpLmdldChrZXkpOwogICAgIH0KIApAQCAtMTkw
LDEyICsxOTAsMTIgQEAgc3RhdGljIExvY2FsaXplZFN0cmluZyogZmluZENhY2hlZFN0cmluZwog
c3RhdGljIHZvaWQgY2FjaGVTdHJpbmcoV2ViTG9jYWxpemFibGVTdHJpbmdzQnVuZGxlKiBzdHJp
bmdzQnVuZGxlLCBjb25zdCBTdHJpbmcmIGtleSwgTG9jYWxpemVkU3RyaW5nKiB2YWx1ZSkKIHsK
ICAgICBpZiAoIXN0cmluZ3NCdW5kbGUpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtYWlu
QnVuZGxlTG9jU3RyaW5nc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobWFpbkJ1
bmRsZUxvY1N0cmluZ3NNdXRleCgpKTsKICAgICAgICAgbWFpbkJ1bmRsZUxvY1N0cmluZ3MoKS5z
ZXQoa2V5LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBNdXRleExvY2tl
ciBsb2NrKGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2so
ZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkpOwogICAgIGZyYW1ld29ya0xvY1N0cmluZ3MoKS5z
ZXQoa2V5LCB2YWx1ZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1
Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93
aW4vUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcAkocmV2aXNpb24gMTg4NTY5
KQorKysgU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBQbHVnaW5NYWluVGhyZWFkU2No
ZWR1bGVyOjpQbHVnaW5NYWluVGhyCiAKIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6
c2NoZWR1bGVDYWxsKE5QUCBucHAsIE1haW5UaHJlYWRGdW5jdGlvbiBmdW5jdGlvbiwgdm9pZCog
dXNlckRhdGEpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogCiAgICAgQ2FsbFF1ZXVlTWFwOjppdGVyYXRv
ciBpdCA9IG1fY2FsbFF1ZXVlTWFwLmZpbmQobnBwKTsKICAgICBpZiAoaXQgPT0gbV9jYWxsUXVl
dWVNYXAuZW5kKCkpCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlcjo6c2NoZWR1bGUKIAogdm9pZCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpyZWdpc3Rl
clBsdWdpbihOUFAgbnBwKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKIAogICAgIEFTU0VSVCghbV9jYWxs
UXVldWVNYXAuY29udGFpbnMobnBwKSk7CiAgICAgbV9jYWxsUXVldWVNYXAuc2V0KG5wcCwgRGVx
dWU8Q2FsbD4oKSk7CkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlcjo6cmVnaXN0ZXIKIAogdm9pZCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjp1bnJlZ2lz
dGVyUGx1Z2luKE5QUCBucHApCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogCiAgICAgQVNTRVJUKG1fY2Fs
bFF1ZXVlTWFwLmNvbnRhaW5zKG5wcCkpOwogICAgIG1fY2FsbFF1ZXVlTWFwLnJlbW92ZShucHAp
OwpAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OmRpc3Bh
dGNoCiAgICAgZm9yIChhdXRvJiBjYWxsIDogY2FsbHMpIHsKICAgICAgICAgLy8gQ2hlY2sgaWYg
dGhlIHBsdWctaW4gaGFzIGJlZW4gZGVzdHJveWVkLgogICAgICAgICB7Ci0gICAgICAgICAgICBN
dXRleExvY2tlciBsb2NrKG1fcXVldWVNdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxv
Y2sobV9xdWV1ZU11dGV4KTsKICAgICAgICAgICAgIGlmICghbV9jYWxsUXVldWVNYXAuY29udGFp
bnMobnBwKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxl
ci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdp
bk1haW5UaHJlYWRTY2hlZHVsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBtX2NhbGxQZW5kaW5nOwogICAgIENhbGxRdWV1ZU1hcCBtX2Nh
bGxRdWV1ZU1hcDsKLSAgICBNdXRleCBtX3F1ZXVlTXV0ZXg7CisgICAgTG9jayBtX3F1ZXVlTXV0
ZXg7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBUb29scy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODg1NjkpCisrKyBUb29s
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wOC0xNyAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgYWxsIHJl
bWFpbmluZyB1c2VzIG9mIFdURjo6TXV0ZXggd2l0aCBXVEY6OkxvY2sKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODA4OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvSmF2YVNj
cmlwdFRocmVhZGluZy5jcHA6CisgICAgICAgIChqYXZhU2NyaXB0VGhyZWFkc011dGV4KToKKyAg
ICAgICAgKHJ1bkphdmFTY3JpcHRUaHJlYWQpOgorICAgICAgICAoc3RhcnRKYXZhU2NyaXB0VGhy
ZWFkcyk6CisgICAgICAgIChzdG9wSmF2YVNjcmlwdFRocmVhZHMpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHA6IEZpeGVkIGEgYnVnIGluIHRoZSB0ZXN0
IHRoYXQgSSBmb3VuZCBmcm9tIHR1cm5pbmcgdGhlIHRlc3QgaW50byBhIGJlbmNobWFyay4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Z2xpYi9Xb3JrUXVldWVHTGliLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
CiAyMDE1LTA4LTE3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgW09TIFhdIFJlbW92ZSBzdXBwb3J0IGZvciBjb21wb3NpdGUgZm9udHMKSW5kZXg6
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCShyZXZpc2lv
biAxODg1NjkpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgog
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNp
bmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAg
LTQ0LDkgKzQ1LDkgQEAgc3RhdGljIGNvbnN0IHNpemVfdCBqYXZhU2NyaXB0VGhyZWFkc0NvdQog
c3RhdGljIGJvb2wgamF2YVNjcmlwdFRocmVhZHNTaG91bGRUZXJtaW5hdGU7CiBzdGF0aWMgSlND
b250ZXh0R3JvdXBSZWYgamF2YVNjcmlwdFRocmVhZHNHcm91cDsKIAotc3RhdGljIE11dGV4JiBq
YXZhU2NyaXB0VGhyZWFkc011dGV4KCkKK3N0YXRpYyBMb2NrJiBqYXZhU2NyaXB0VGhyZWFkc011
dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHN0YXRp
Y011dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIHN0
YXRpY011dGV4LCAoKSk7CiAgICAgcmV0dXJuIHN0YXRpY011dGV4OwogfQogCkBAIC03MCwyNiAr
NzEsMjYgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqKQogCiAgICAgSlNHbG9iYWxD
b250ZXh0UmVmIGN0eDsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2Ny
aXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0
VGhyZWFkc011dGV4KCkpOwogICAgICAgICBjdHggPSBKU0dsb2JhbENvbnRleHRDcmVhdGVJbkdy
b3VwKGphdmFTY3JpcHRUaHJlYWRzR3JvdXAsIDApOwogICAgIH0KIAogICAgIEpTU3RyaW5nUmVm
IHNjcmlwdFJlZjsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0
VGhyZWFkc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhy
ZWFkc011dGV4KCkpOwogICAgICAgICBzY3JpcHRSZWYgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhzY3JpcHQpOwogICAgIH0KIAogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIHsK
LSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkp
OworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgp
KTsKICAgICAgICAgICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKICAgICAgICAgICAgIEpT
RXZhbHVhdGVTY3JpcHQoY3R4LCBzY3JpcHRSZWYsIDAsIDAsIDEsICZleGNlcHRpb24pOwogICAg
ICAgICAgICAgQVNTRVJUKCFleGNlcHRpb24pOwogICAgICAgICB9CiAKICAgICAgICAgewotICAg
ICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7Cisg
ICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwog
ICAgICAgICAgICAgY29uc3Qgc2l6ZV90IHZhbHVlc0NvdW50ID0gMTAyNDsKICAgICAgICAgICAg
IEpTVmFsdWVSZWYgdmFsdWVzW3ZhbHVlc0NvdW50XTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgdmFsdWVzQ291bnQ7ICsraSkKQEAgLTk3LDcgKzk4LDcgQEAgdm9pZCBydW5K
YXZhU2NyaXB0VGhyZWFkKHZvaWQqKQogICAgICAgICB9CiAKICAgICAgICAgewotICAgICAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAg
ICAgICAgaWYgKGphdmFTY3JpcHRUaHJlYWRzU2hvdWxkVGVybWluYXRlKQogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xMDYsNyArMTA3LDcgQEAgdm9pZCBydW5KYXZhU2Ny
aXB0VGhyZWFkKHZvaWQqKQogICAgICAgICBpZiAocmFuZCgpICUgNSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogCi0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011
dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4
KCkpOwogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZCA9IGN1cnJlbnRUaHJlYWQoKTsK
ICAgICAgICAgZGV0YWNoVGhyZWFkKHRocmVhZCk7CiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRz
KCkucmVtb3ZlKHRocmVhZCk7CkBAIC0xMTQsNyArMTE1LDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0
VGhyZWFkKHZvaWQqKQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihq
YXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgIEpTU3RyaW5nUmVsZWFzZShzY3JpcHRSZWYp
OwogICAgIEpTR2FyYmFnZUNvbGxlY3QoY3R4KTsKICAgICBKU0dsb2JhbENvbnRleHRSZWxlYXNl
KGN0eCk7CkBAIC0xMjQsNyArMTI1LDcgQEAgdm9pZCBzdGFydEphdmFTY3JpcHRUaHJlYWRzKCkK
IHsKICAgICBqYXZhU2NyaXB0VGhyZWFkc0dyb3VwID0gSlNDb250ZXh0R3JvdXBDcmVhdGUoKTsK
IAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGphdmFTY3JpcHRUaHJlYWRzQ291bnQ7ICsraSkKICAgICAgICAg
amF2YVNjcmlwdFRocmVhZHMoKS5hZGQoY3JlYXRlVGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFk
LCAwLCAwKSk7CkBAIC0xMzMsMTMgKzEzNCwxMyBAQCB2b2lkIHN0YXJ0SmF2YVNjcmlwdFRocmVh
ZHMoKQogdm9pZCBzdG9wSmF2YVNjcmlwdFRocmVhZHMoKQogewogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgICAgIGphdmFTY3Jp
cHRUaHJlYWRzU2hvdWxkVGVybWluYXRlID0gdHJ1ZTsKICAgICB9CiAKICAgICBWZWN0b3I8VGhy
ZWFkSWRlbnRpZmllciwgamF2YVNjcmlwdFRocmVhZHNDb3VudD4gdGhyZWFkczsKICAgICB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAg
ICBjb3B5VG9WZWN0b3IoamF2YVNjcmlwdFRocmVhZHMoKSwgdGhyZWFkcyk7CiAgICAgICAgIEFT
U0VSVCh0aHJlYWRzLnNpemUoKSA9PSBqYXZhU2NyaXB0VGhyZWFkc0NvdW50KTsKICAgICB9CkBA
IC0xNDgsNyArMTQ5LDcgQEAgdm9pZCBzdG9wSmF2YVNjcmlwdFRocmVhZHMoKQogICAgICAgICB3
YWl0Rm9yVGhyZWFkQ29tcGxldGlvbih0aHJlYWRzW2ldKTsKIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgICAgIGphdmFTY3Jp
cHRUaHJlYWRzKCkuY2xlYXIoKTsKICAgICB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEy
LDcgKzExMiw3IEBAIHZvaWQgcnVuVGVzdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuICFzaG91bGRDb250aW51ZSB8fCAhcXVldWUuaXNFbXB0eSgpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91
dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZENvbnRpbnVlKQorICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSAmJiBxdWV1ZS5pc0VtcHR5KCkp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkTm90aWZ5ID0gcXVldWUuc2l6ZSgpID09IG1heFF1ZXVlU2l6ZTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHF1ZXVlLnRha2VGaXJzdCgpOwpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCShyZXZpc2lvbiAxODg1
NjkpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNs
dWRlICJUZXN0LmgiCisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUu
aD4KICNpbmNsdWRlIDxzdHJpbmc+CkBAIC00MCw4ICs0Miw4IEBAIHN0YXRpYyBjb25zdCBjaGFy
KiBkaXNwYXRjaEFmdGVyTGFiZWwgPSAKICAgICAKIFRFU1QoV1RGX1dvcmtRdWV1ZSwgU2ltcGxl
KQogewotICAgIE11dGV4IG1fbG9jazsKLSAgICBUaHJlYWRDb25kaXRpb24gbV90ZXN0Q29tcGxl
dGVkOworICAgIExvY2sgbV9sb2NrOworICAgIENvbmRpdGlvbiBtX3Rlc3RDb21wbGV0ZWQ7CiAg
ICAgVmVjdG9yPHN0ZDo6c3RyaW5nPiBtX2Z1bmN0aW9uQ2FsbE9yZGVyOwogCiAgICAgYm9vbCBj
YWxsZWRTaW1wbGVUZXN0ID0gZmFsc2U7CkBAIC01Niw3ICs1OCw3IEBAIFRFU1QoV1RGX1dvcmtR
dWV1ZSwgU2ltcGxlKQogICAgIGludCBpbml0aWFsUmVmQ291bnQgPSBxdWV1ZS0+cmVmQ291bnQo
KTsKICAgICBFWFBFQ1RfRVEoMSwgaW5pdGlhbFJlZkNvdW50KTsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX2xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgcXVl
dWUtPmRpc3BhdGNoKFsmXSh2b2lkKSB7CiAgICAgICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIuYXBw
ZW5kKHNpbXBsZVRlc3RMYWJlbCk7CiAgICAgICAgIGNhbGxlZFNpbXBsZVRlc3QgPSB0cnVlOwpA
QCAtNjksNyArNzEsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICB9KTsKIAog
ICAgIHF1ZXVlLT5kaXNwYXRjaChbJl0odm9pZCkgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAg
bV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQodGhpcmRUZXN0TGFiZWwpOwogICAgICAgICBjYWxs
ZWRUaGlyZFRlc3QgPSB0cnVlOwogCkBAIC03Nyw3ICs3OSw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1
ZSwgU2ltcGxlKQogICAgICAgICBFWFBFQ1RfVFJVRShjYWxsZWRMb25nVGVzdCk7CiAgICAgICAg
IEVYUEVDVF9UUlVFKGNhbGxlZFRoaXJkVGVzdCk7CiAgICAgICAgIAotICAgICAgICBtX3Rlc3RD
b21wbGV0ZWQuc2lnbmFsKCk7CisgICAgICAgIG1fdGVzdENvbXBsZXRlZC5ub3RpZnlPbmUoKTsK
ICAgICB9KTsKIAogICAgIEVYUEVDVF9HVChxdWV1ZS0+cmVmQ291bnQoKSwgMSk7CkBAIC05Niw4
ICs5OCw4IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgU2ltcGxlKQogCiBURVNUKFdURl9Xb3JrUXVl
dWUsIFR3b1F1ZXVlcykKIHsKLSAgICBNdXRleCBtX2xvY2s7Ci0gICAgVGhyZWFkQ29uZGl0aW9u
IG1fdGVzdFF1ZXVlMUNvbXBsZXRlZCwgbV90ZXN0UXVldWUyQ29tcGxldGVkOworICAgIExvY2sg
bV9sb2NrOworICAgIENvbmRpdGlvbiBtX3Rlc3RRdWV1ZTFDb21wbGV0ZWQsIG1fdGVzdFF1ZXVl
MkNvbXBsZXRlZDsKICAgICBWZWN0b3I8c3RkOjpzdHJpbmc+IG1fZnVuY3Rpb25DYWxsT3JkZXI7
CiAKICAgICBib29sIGNhbGxlZFNpbXBsZVRlc3QgPSBmYWxzZTsKQEAgLTExMCw3ICsxMTIsNyBA
QCBURVNUKFdURl9Xb3JrUXVldWUsIFR3b1F1ZXVlcykKICAgICBFWFBFQ1RfRVEoMSwgcXVldWUx
LT5yZWZDb3VudCgpKTsKICAgICBFWFBFQ1RfRVEoMSwgcXVldWUyLT5yZWZDb3VudCgpKTsKIAot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bG9jayk7CiAgICAgCiAgICAgcXVldWUxLT5kaXNwYXRjaChbJl0odm9pZCkgewogICAgICAgICBt
X2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZChzaW1wbGVUZXN0TGFiZWwpOwpAQCAtMTIwLDIyICsx
MjIsMjIgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMpCiAgICAgcXVldWUyLT5kaXNw
YXRjaChbJl0odm9pZCkgewogICAgICAgICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3Ioc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MCkpOwogCi0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogCiAgICAgICAg
IC8vIFdpbGwgZmFpbCBpZiBxdWV1ZTIgdG9vayB0aGUgbXV0ZXggYmVmb3JlIHF1ZXVlMS4KICAg
ICAgICAgRVhQRUNUX1RSVUUoY2FsbGVkVGhpcmRUZXN0KTsKIAogICAgICAgICBtX2Z1bmN0aW9u
Q2FsbE9yZGVyLmFwcGVuZChsb25nVGVzdExhYmVsKTsKICAgICAgICAgY2FsbGVkTG9uZ1Rlc3Qg
PSB0cnVlOwotICAgICAgICBtX3Rlc3RRdWV1ZTJDb21wbGV0ZWQuc2lnbmFsKCk7CisgICAgICAg
IG1fdGVzdFF1ZXVlMkNvbXBsZXRlZC5ub3RpZnlPbmUoKTsKICAgICB9KTsKIAogICAgIHF1ZXVl
MS0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9j
ayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAgIG1fZnVuY3Rp
b25DYWxsT3JkZXIuYXBwZW5kKHRoaXJkVGVzdExhYmVsKTsKICAgICAgICAgY2FsbGVkVGhpcmRU
ZXN0ID0gdHJ1ZTsKICAgICAgICAgCi0gICAgICAgIG1fdGVzdFF1ZXVlMUNvbXBsZXRlZC5zaWdu
YWwoKTsKKyAgICAgICAgbV90ZXN0UXVldWUxQ29tcGxldGVkLm5vdGlmeU9uZSgpOwogICAgIH0p
OwogCiAgICAgbV90ZXN0UXVldWUxQ29tcGxldGVkLndhaXQobV9sb2NrKTsKQEAgLTE1OCw4ICsx
NjAsOCBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFR3b1F1ZXVlcykKIAogVEVTVChXVEZfV29ya1F1
ZXVlLCBEaXNwYXRjaEFmdGVyKQogewotICAgIE11dGV4IG1fbG9jazsKLSAgICBUaHJlYWRDb25k
aXRpb24gbV90ZXN0Q29tcGxldGVkLCBtX2Rpc3BhdGNoQWZ0ZXJUZXN0Q29tcGxldGVkOworICAg
IExvY2sgbV9sb2NrOworICAgIENvbmRpdGlvbiBtX3Rlc3RDb21wbGV0ZWQsIG1fZGlzcGF0Y2hB
ZnRlclRlc3RDb21wbGV0ZWQ7CiAgICAgVmVjdG9yPHN0ZDo6c3RyaW5nPiBtX2Z1bmN0aW9uQ2Fs
bE9yZGVyOwogCiAgICAgYm9vbCBjYWxsZWRTaW1wbGVUZXN0ID0gZmFsc2U7CkBAIC0xNjcsMjAg
KzE2OSwyMCBAQCBURVNUKFdURl9Xb3JrUXVldWUsIERpc3BhdGNoQWZ0ZXIpCiAKICAgICBhdXRv
IHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5kaXNwYXRj
aEFmdGVyIik7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX2xvY2spOwogCiAgICAgcXVldWUtPmRpc3BhdGNoKFsmXSh2b2lkKSB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2xvY2spOwogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZChzaW1wbGVU
ZXN0TGFiZWwpOwogICAgICAgICBjYWxsZWRTaW1wbGVUZXN0ID0gdHJ1ZTsKLSAgICAgICAgbV90
ZXN0Q29tcGxldGVkLnNpZ25hbCgpOworICAgICAgICBtX3Rlc3RDb21wbGV0ZWQubm90aWZ5T25l
KCk7CiAgICAgfSk7CiAKICAgICBxdWV1ZS0+ZGlzcGF0Y2hBZnRlcihzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzKDUwMCksIFsmXSh2b2lkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBtX2Z1
bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZChkaXNwYXRjaEFmdGVyTGFiZWwpOwogICAgICAgICBjYWxs
ZWREaXNwYXRjaEFmdGVyVGVzdCA9IHRydWU7Ci0gICAgICAgIG1fZGlzcGF0Y2hBZnRlclRlc3RD
b21wbGV0ZWQuc2lnbmFsKCk7CisgICAgICAgIG1fZGlzcGF0Y2hBZnRlclRlc3RDb21wbGV0ZWQu
bm90aWZ5T25lKCk7CiAgICAgfSk7CiAKICAgICBtX3Rlc3RDb21wbGV0ZWQud2FpdChtX2xvY2sp
OwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGli
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dv
cmtRdWV1ZUdMaWIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3
ICszNyw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIFRFU1QoV1RGX1dvcmtRdWV1ZSwg
QXN5bmNJTykKIHsKICAgICBzdHJ1Y3QgVGVzdGluZ0NvbnRleHQgewotICAgICAgICBNdXRleCBt
X2xvY2s7CisgICAgICAgIExvY2sgbV9sb2NrOwogICAgICAgICBUaHJlYWRDb25kaXRpb24gbV90
ZXN0Q29tcGxldGVkOwogICAgICAgICBHTWFpbkNvbnRleHQqIG1fbWFpbkNvbnRleHQ7CiAgICAg
fSBjb250ZXh0OwpAQCAtNDksNyArNDksNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIEFzeW5jSU8p
CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjdXJyZW50RGlyZWN0b3J5KGdfZ2V0X2N1cnJlbnRfZGly
KCkpOwogICAgIEdSZWZQdHI8R0ZpbGU+IGZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3Jf
cGF0aChjdXJyZW50RGlyZWN0b3J5LmdldCgpKSk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
Y29udGV4dC5tX2xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKGNvbnRleHQubV9sb2NrKTsK
ICAgICBxdWV1ZS0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKICAgICAgICAgRVhQRUNUX1RSVUUoZ19t
YWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShn
X21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQoKSAhPSBjb250ZXh0Lm1fbWFpbkNvbnRl
eHQpOwpAQCAtNTcsNyArNTcsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIEFzeW5jSU8pCiAgICAg
ICAgIGdfZmlsZV9xdWVyeV9pbmZvX2FzeW5jKGZpbGUuZ2V0KCksIEdfRklMRV9BVFRSSUJVVEVf
U1RBTkRBUkRfU0laRSwgR19GSUxFX1FVRVJZX0lORk9fTk9ORSwgR19QUklPUklUWV9ERUZBVUxU
LCBudWxscHRyLAogICAgICAgICAgICAgW10oR09iamVjdCosIEdBc3luY1Jlc3VsdCosIGdwb2lu
dGVyIHVzZXJEYXRhKSB7CiAgICAgICAgICAgICAgICAgVGVzdGluZ0NvbnRleHQqIGNvbnRleHQg
PSBzdGF0aWNfY2FzdDxUZXN0aW5nQ29udGV4dCo+KHVzZXJEYXRhKTsKLSAgICAgICAgICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIoY29udGV4dC0+bV9sb2NrKTsKKyAgICAgICAgICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihjb250ZXh0LT5tX2xvY2spOwogICAgICAgICAgICAgICAgIEVYUEVD
VF9FUShnX21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQoKSwgY29udGV4dC0+bV9tYWlu
Q29udGV4dCk7CiAgICAgICAgICAgICAgICAgY29udGV4dC0+bV90ZXN0Q29tcGxldGVkLnNpZ25h
bCgpOwogICAgICAgICAgICAgfSwgJmNvbnRleHQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259249</attachid>
            <date>2015-08-17 22:35:39 -0700</date>
            <delta_ts>2015-08-17 22:41:58 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>217809</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RG
OjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBhbHNvIGJlZWZzIHVwIGFuZCByYXRpb25hbGl6ZXMgdGhlIENv
bmRpdGlvbiBBUEksIHNvIHRoYXQgaXQgY2FuIGRlYWwgd2l0aCB1bml0cyBvZiB0aW1lCisgICAg
ICAgIG90aGVyIHRoYW4ganVzdCBzdGVhZHlfY2xvY2suIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRv
IHBvcnQgVGhyZWFkQ29uZGl0aW9uIGFuZAorICAgICAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJs
ZSBjb2RlIG92ZXIgdG8gQ29uZGl0aW9uLiBUaGlzIHBhdGNoIGRvZXMgbm90IHRha2UgYSBwb3Np
dGlvbiBvbiB3aGF0CisgICAgICAgIGtpbmQgb2YgdGltZSBpcyBiZXN0OyBmcm9tIHJlYWRpbmcg
YSBsb3Qgb2YgdGhlIHVzZXMgaW4gV2ViQ29yZSwgaXQgc2VlbXMgbGlrZSBvdXIgdXNlIG9mCisg
ICAgICAgIGRvdWJsZSB0byBtZWFzdXJlIHNlY29uZHMgaXMgb2Z0ZW4gbmljZXIgdGhhbiB0aGUg
bWFueSBkaWZmZXJlbnQgY2xhc3NlcyBpbiBzdGQ6OmNocm9uby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgQ29uZGl0aW9uIHNwZWVkIHRlc3QsIHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBvZiB0aGlz
IGlzIGEgZ29vZCBpZGVhLiBBbmQgaW5kZWVkIGl0CisgICAgICAgIGlzLiBUaGUgMS1wcm9kdWNl
ci8xLWNvbnN1bWVyIHNjZW5hcmlvIHdpdGggYSAxMDAtZWxlbWVudCBxdWV1ZSBydW5zIDM2eCBm
YXN0ZXIgdXNpbmcKKyAgICAgICAgTG9jay9Db25kaXRpb24gdGhhbiBNdXRleC9UaHJlYWRDb25k
aXRpb24gd2hlbiB5b3UgdXNlIHRoZSBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBzdHlsZS4gSXQK
KyAgICAgICAgcnVucyA1OHggZmFzdGVyIHdpdGggTG9jay9Db25kaXRpb24gd2hlbiB5b3UgdXNl
IHRoZSBub3RpZnlBbGwoKS1hdC1ib3VuZGFyeSBzdHlsZS4gTm90ZSB0aGF0CisgICAgICAgIEkg
aGF2ZSBhIGJ1ZyBvcGVuIGZvciBtYWtpbmcgdGhlIG5vdGlmeU9uZSgpLXBlci1lbnF1ZXVlIHN0
eWxlIGV2ZW4gZmFzdGVyOgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MDkwLiBBbHNvLCB0aGUgMTAtY29uc3VtZXIvMTAtcHJvZHVjZXIgc2NlbmFy
aW8gd2l0aAorICAgICAgICBhIDEwMC1lbGVtZW50IHF1ZXVlIHJ1bnMgMjB4IGZhc3RlciB3aXRo
IExvY2svQ29uZGl0aW9uIGZvciBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBhbmQgMzB4CisgICAg
ICAgIGZhc3RlciB3aXRoIG5vdGlmeUFsbCgpLWF0LWJvdW5kYXJ5LiBTbywgaXQgc2VlbXMgdGhh
dCByZXBsYWNpbmcgYWxsIHVzZXMgb2Ygc3lzdGVtIG11dGV4ZXMgYW5kCisgICAgICAgIGNvbmRp
dGlvbiB2YXJpYWJsZXMgd2l0aCBvdXIgb3duIHRoaW5nIGlzIGEgZ3JlYXQgaWRlYS4KKworICAg
ICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJr
cy9Db25kaXRpb25TcGVlZFRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvQ29uZGl0aW9u
Lmg6CisgICAgICAgIChXVEY6OkNvbmRpdGlvbjo6Q29uZGl0aW9uKToKKyAgICAgICAgKFdURjo6
Q29uZGl0aW9uOjp3YWl0VW50aWwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3Ip
OgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXQpOgorICAgICAgICAoV1RGOjpDb25kaXRp
b246OndhaXRVbnRpbFdhbGxDbG9ja1NlY29uZHMpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246
OndhaXRVbnRpbE1vbm90b25pY0Nsb2NrU2Vjb25kcyk6CisgICAgICAgIChXVEY6OkNvbmRpdGlv
bjo6bm90aWZ5T25lKToKKyAgICAgICAgKFdURjo6Q29uZGl0aW9uOjpub3RpZnlBbGwpOgorICAg
ICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3JTZWNvbmRzSW1wbCk6CisgICAgICAgIChXVEY6
OkNvbmRpdGlvbjo6d2FpdEZvckltcGwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OmFic29s
dXRlRnJvbVJlbGF0aXZlKToKKyAgICAgICAgKiB3dGYvTWVzc2FnZVF1ZXVlLmg6CisgICAgICAg
IChXVEY6Ok1lc3NhZ2VRdWV1ZTo6aW5maW5pdGVUaW1lKToKKyAgICAgICAgKFdURjo6TWVzc2Fn
ZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6YXBwZW5kQW5kS2lsbCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRh
VHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHkpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8
RGF0YVR5cGU+OjpwcmVwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBl
Pjo6cmVtb3ZlSWYpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojppc0Vt
cHR5KToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbCk6CisgICAg
ICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmtpbGxlZCk6CisgICAgICAgICogd3Rm
L1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25t
ZW50OjpUaHJlYWRQcml2YXRlOjpleGVjdXRlKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZp
cm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZpbmlzaCk6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCk6CisgICAgICAg
ICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaDoKKyAgICAgICAgKiB3dGYvUGFya2luZ0xvdC5j
cHA6CisgICAgICAgIChXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KToKKyAgICAg
ICAgKiB3dGYvUGFya2luZ0xvdC5oOgorICAgICAgICAoV1RGOjpQYXJraW5nTG90Ojpjb21wYXJl
QW5kUGFyayk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAg
KFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZyk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5j
cHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHd0Zi9k
dG9hLmNwcDoKKyAgICAgICAgKFdURjo6cG93NW11bHQpOgorICAgICAgICAqIHd0Zi9kdG9hLmg6
CisKIDIwMTUtMDgtMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBCdWlsZCBEZWJ1ZyBTdWZmaXggb24gV2luZG93cyB3aXRoIENNYWtlCklu
ZGV4OiBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKy8vIE9uIE1hYywgeW91IGNhbiBidWlsZCB0aGlzIGxp
a2Ugc286CisvLyBjbGFuZysrIC1vIENvbmRpdGlvblNwZWVkVGVzdCBTb3VyY2UvV1RGL2JlbmNo
bWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RGIC1MV2ViS2l0
QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vjb3JlIC1zdGQ9
YysrMTEKKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVk
ZSA8dGhyZWFkPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvRGF0YUxvZy5o
PgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJp
bWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIHsKKworY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisKK3Vuc2lnbmVkIG51bVByb2R1Y2VyczsKK3Vuc2ln
bmVkIG51bUNvbnN1bWVyczsKK3Vuc2lnbmVkIG1heFF1ZXVlU2l6ZTsKK3Vuc2lnbmVkIG51bU1l
c3NhZ2VzUGVyUHJvZHVjZXI7CisgICAgCitOT19SRVRVUk4gdm9pZCB1c2FnZSgpCit7CisgICAg
cHJpbnRmKCJVc2FnZTogQ29uZGl0aW9uU3BlZWRUZXN0IGxvY2t8bXV0ZXh8YWxsIDxudW0gcHJv
ZHVjZXJzPiA8bnVtIGNvbnN1bWVycz4gPG1heCBxdWV1ZSBzaXplPiA8bnVtIG1lc3NhZ2VzIHBl
ciBwcm9kdWNlcj5cbiIpOworICAgIGV4aXQoMSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0b3IsIHR5cGVuYW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIExvY2tUeXBlPgordm9pZCB3
YWl0KENvbmRpdGlvblR5cGUmIGNvbmRpdGlvbiwgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IEZ1bmN0
b3ImIHByZWRpY2F0ZSkKK3sKKyAgICB3aGlsZSAoIXByZWRpY2F0ZSgpKQorICAgICAgICBjb25k
aXRpb24ud2FpdChsb2NrKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVu
YW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIE5vdGlmeUZ1bmN0b3IsIHR5cGVuYW1lIE5vdGlm
eUFsbEZ1bmN0b3I+Cit2b2lkIHJ1blRlc3QoCisgICAgdW5zaWduZWQgbnVtUHJvZHVjZXJzLAor
ICAgIHVuc2lnbmVkIG51bUNvbnN1bWVycywKKyAgICB1bnNpZ25lZCBtYXhRdWV1ZVNpemUsCisg
ICAgdW5zaWduZWQgbnVtTWVzc2FnZXNQZXJQcm9kdWNlciwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIERlcXVlPHVuc2lnbmVkPiBxdWV1ZTsKKyAgICBib29sIHNob3VsZENvbnRpbnVlID0gdHJ1
ZTsKKyAgICBMb2NrVHlwZSBsb2NrOworICAgIENvbmRpdGlvblR5cGUgZW1wdHlDb25kaXRpb247
CisgICAgQ29uZGl0aW9uVHlwZSBmdWxsQ29uZGl0aW9uOworCisgICAgVmVjdG9yPFRocmVhZElk
ZW50aWZpZXI+IGNvbnN1bWVyVGhyZWFkczsKKyAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4g
cHJvZHVjZXJUaHJlYWRzOworCisgICAgVmVjdG9yPHVuc2lnbmVkPiByZWNlaXZlZDsKKyAgICBM
b2NrVHlwZSByZWNlaXZlZExvY2s7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29u
c3VtZXJzOyBpLS07KSB7CisgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmll
ciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAg
ICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbXVz
dE5vdGlmeSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB3YWl0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5
Q29uZGl0aW9uLCBsb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZyh0b1N0cmluZyhjdXJyZW50VGhyZWFkKCks
ICI6IENoZWNraW5nIGNvbnN1bXB0aW9uIHByZWRpY2F0ZSB3aXRoIHNob3VsZENvbnRpbnVlID0g
Iiwgc2hvdWxkQ29udGludWUsICIsIHF1ZXVlLnNpemUoKSA9PSAiLCBxdWV1ZS5zaXplKCksICJc
biIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFzaG91bGRDb250
aW51ZSB8fCAhcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSAmJiBxdWV1ZS5p
c0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgICAgICAgICAgbXVzdE5vdGlmeSA9IHF1ZXVlLnNpemUoKSA9PSBtYXhRdWV1ZVNpemU7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBxdWV1ZS50YWtlRmlyc3QoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBub3RpZnkoZnVsbENvbmRp
dGlvbiwgbXVzdE5vdGlmeSk7CisKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2tUeXBlPiBsb2NrZXIocmVjZWl2ZWRMb2Nr
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkLmFwcGVuZChyZXN1bHQpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7Cisg
ICAgICAgIGNvbnN1bWVyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmllcik7CisgICAgfQor
CisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtUHJvZHVjZXJzOyBpLS07KSB7CisgICAgICAgIFRo
cmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAg
ICAgICJQcm9kdWNlciBUaHJlYWQiLAorICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQZXJQcm9kdWNlcjsgKytp
KSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgbXVzdE5vdGlmeSA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2Nr
PExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxDb25kaXRpb24sIGxvY2ssCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKHRvU3RyaW5nKGN1cnJlbnRUaHJlYWQoKSwgIjogQ2hlY2tpbmcgcHJvZHVjdGlvbiBw
cmVkaWNhdGUgd2l0aCBzaG91bGRDb250aW51ZSA9ICIsIHNob3VsZENvbnRpbnVlLCAiLCBxdWV1
ZS5zaXplKCkgPT0gIiwgcXVldWUuc2l6ZSgpLCAiXG4iKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBxdWV1ZS5zaXplKCkgPCBtYXhRdWV1ZVNpemU7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtdXN0Tm90
aWZ5ID0gcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgcXVldWUuYXBw
ZW5kKGkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5vdGlm
eShlbXB0eUNvbmRpdGlvbiwgbXVzdE5vdGlmeSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSk7CisgICAgICAgIHByb2R1Y2VyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmll
cik7CisgICAgfQorCisgICAgZm9yIChUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIg
OiBwcm9kdWNlclRocmVhZHMpCisgICAgICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVh
ZElkZW50aWZpZXIpOworCisgICAgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9ja1R5cGU+
IGxvY2tlcihsb2NrKTsKKyAgICAgICAgc2hvdWxkQ29udGludWUgPSBmYWxzZTsKKyAgICB9Cisg
ICAgbm90aWZ5QWxsKGVtcHR5Q29uZGl0aW9uKTsKKworICAgIGZvciAoVGhyZWFkSWRlbnRpZmll
ciB0aHJlYWRJZGVudGlmaWVyIDogY29uc3VtZXJUaHJlYWRzKQorICAgICAgICB3YWl0Rm9yVGhy
ZWFkQ29tcGxldGlvbih0aHJlYWRJZGVudGlmaWVyKTsKKworICAgIFJFTEVBU0VfQVNTRVJUKG51
bVByb2R1Y2VycyAqIG51bU1lc3NhZ2VzUGVyUHJvZHVjZXIgPT0gcmVjZWl2ZWQuc2l6ZSgpKTsK
KyAgICBzdGQ6OnNvcnQocmVjZWl2ZWQuYmVnaW4oKSwgcmVjZWl2ZWQuZW5kKCkpOworICAgIGZv
ciAodW5zaWduZWQgbWVzc2FnZUluZGV4ID0gMDsgbWVzc2FnZUluZGV4IDwgbnVtTWVzc2FnZXNQ
ZXJQcm9kdWNlcjsgKyttZXNzYWdlSW5kZXgpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBwcm9k
dWNlckluZGV4ID0gMDsgcHJvZHVjZXJJbmRleCA8IG51bVByb2R1Y2VyczsgKytwcm9kdWNlcklu
ZGV4KQorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobWVzc2FnZUluZGV4ID09IHJlY2VpdmVk
W21lc3NhZ2VJbmRleCAqIG51bVByb2R1Y2VycyArIHByb2R1Y2VySW5kZXhdKTsKKyAgICB9Cit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlLCB0eXBlbmFtZSBDb25kaXRpb25UeXBlLCB0
eXBlbmFtZSBOb3RpZnlGdW5jdG9yLCB0eXBlbmFtZSBOb3RpZnlBbGxGdW5jdG9yPgordm9pZCBy
dW5CZW5jaG1hcmsoCisgICAgY29uc3QgY2hhciogbmFtZSwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIGRvdWJsZSBiZWZvcmUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWVNUygpOworICAg
IAorICAgIHJ1blRlc3Q8TG9ja1R5cGUsIENvbmRpdGlvblR5cGU+KAorICAgICAgICBudW1Qcm9k
dWNlcnMsCisgICAgICAgIG51bUNvbnN1bWVycywKKyAgICAgICAgbWF4UXVldWVTaXplLAorICAg
ICAgICBudW1NZXNzYWdlc1BlclByb2R1Y2VyLAorICAgICAgICBub3RpZnksCisgICAgICAgIG5v
dGlmeUFsbCk7CisKKyAgICBkb3VibGUgYWZ0ZXIgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWVNUygpOworCisgICAgcHJpbnRmKCIlczogJS4zbGYgbXMuXG4iLCBuYW1lLCBhZnRlciAtIGJl
Zm9yZSk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitpbnQgbWFpbihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCit7CisgICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisKKyAg
ICBpZiAoYXJnYyAhPSA2CisgICAgICAgIHx8IHNzY2FuZihhcmd2WzJdLCAiJXUiLCAmbnVtUHJv
ZHVjZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzNdLCAiJXUiLCAmbnVtQ29uc3Vt
ZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzRdLCAiJXUiLCAmbWF4UXVldWVTaXpl
KSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzVdLCAiJXUiLCAmbnVtTWVzc2FnZXNQZXJQ
cm9kdWNlcikgIT0gMSkKKyAgICAgICAgdXNhZ2UoKTsKKworICAgIGJvb2wgZGlkUnVuID0gZmFs
c2U7CisgICAgaWYgKCFzdHJjbXAoYXJndlsxXSwgImxvY2siKSB8fCAhc3RyY21wKGFyZ3ZbMV0s
ICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1hcms8TG9jaywgQ29uZGl0aW9uPigKKyAgICAg
ICAgICAgICJXVEYgTG9jayBOb3RpZnlPbmUiLAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24m
IGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9u
Lm5vdGlmeU9uZSgpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0aW9u
JiBjb25kaXRpb24pIHsKKyAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgcnVuQmVuY2htYXJrPExvY2ssIENvbmRpdGlvbj4oCisg
ICAgICAgICAgICAiV1RGIExvY2sgTm90aWZ5QWxsIiwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0
aW9uJiBjb25kaXRpb24sIGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGlmICht
dXN0Tm90aWZ5KQorICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24mIGNvbmRpdGlvbikgewor
ICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICBkaWRSdW4gPSB0cnVlOworICAgIH0KKyAgICBpZiAoIXN0cmNtcChhcmd2WzFdLCAi
bXV0ZXgiKSB8fCAhc3RyY21wKGFyZ3ZbMV0sICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1h
cms8TXV0ZXgsIFRocmVhZENvbmRpdGlvbj4oCisgICAgICAgICAgICAiUGxhdGZvcm0gTXV0ZXgg
Tm90aWZ5T25lIiwKKyAgICAgICAgICAgIFsmXSAoVGhyZWFkQ29uZGl0aW9uJiBjb25kaXRpb24s
IGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5zaWduYWwoKTsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlvbiYgY29uZGl0
aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIHJ1bkJlbmNobWFyazxNdXRleCwgVGhyZWFkQ29uZGl0aW9uPigKKyAg
ICAgICAgICAgICJQbGF0Zm9ybSBNdXRleCBOb3RpZnlBbGwiLAorICAgICAgICAgICAgWyZdIChU
aHJlYWRDb25kaXRpb24mIGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAg
ICAgICAgaWYgKG11c3ROb3RpZnkpCisgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5icm9h
ZGNhc3QoKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlv
biYgY29uZGl0aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIGRpZFJ1biA9IHRydWU7CisgICAgfQorCisgICAgaWYg
KCFkaWRSdW4pCisgICAgICAgIHVzYWdlKCk7CisKKyAgICByZXR1cm4gMDsKK30KKwpJbmRleDog
U291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw2ICsyMyw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisvLyBPbiBNYWMsIHlv
dSBjYW4gYnVpbGQgdGhpcyBsaWtlIHNvOgorLy8gY2xhbmcrKyAtbyBMb2NrU3BlZWRUZXN0IFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RG
IC1MV2ViS2l0QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vj
b3JlIC1zdGQ9YysrMTEKKwogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9Db25kaXRpb24uaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93
dGYvQ29uZGl0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDI2ICsyOSw1OSBAQAogI2luY2x1
ZGUgPGNocm9ubz4KICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPG11dGV4PgorI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXJraW5nTG90Lmg+CiAK
IG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBDb25kaXRpb24gewogcHVibGljOgorICAgIHR5cGVk
ZWYgUGFya2luZ0xvdDo6Q2xvY2sgQ2xvY2s7CisgICAgCiAgICAgQ29uZGl0aW9uKCkgeyB9CiAK
ICAgICAvLyBXYWl0IG9uIGEgcGFya2luZyBxdWV1ZSB3aGlsZSByZWxlYXNpbmcgdGhlIGdpdmVu
IGxvY2suIEl0IHdpbGwgdW5sb2NrIHRoZSBsb2NrIGp1c3QgYmVmb3JlCiAgICAgLy8gcGFya2lu
ZywgYW5kIHJlbG9jayBpdCB1cG9uIHdha2V1cC4gUmV0dXJucyB0cnVlIGlmIHdlIHdva2UgdXAg
ZHVlIHRvIHNvbWUgY2FsbCB0bwotICAgIC8vIG5vdGlmeU9uZSgpIG9yIG5vdGlmeUFsbCgpLiBS
ZXR1cm5zIGZhbHNlIGlmIHdlIHdva2UgdXAgZHVlIHRvIGEgdGltZW91dC4KKyAgICAvLyBub3Rp
ZnlPbmUoKSBvciBub3RpZnlBbGwoKS4gUmV0dXJucyBmYWxzZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0
byBhIHRpbWVvdXQuIE5vdGUgdGhhdCB0aGlzIGZvcm0KKyAgICAvLyBvZiB3YWl0VW50aWwoKSBo
YXMgc29tZSBxdWlya3M6CisgICAgLy8KKyAgICAvLyBObyBzcHVyaW91cyB3YWtlLXVwOiBpbiBv
cmRlciBmb3IgdGhpcyB0byByZXR1cm4gYmVmb3JlIHRoZSB0aW1lb3V0LCBzb21lIG5vdGlmeU9u
ZSgpIG9yCisgICAgLy8gbm90aWZ5QWxsKCkgY2FsbCBtdXN0IGhhdmUgaGFwcGVuZWQuIE5vIHNj
ZW5hcmlvIG90aGVyIHRoYW4gdGltZW91dCBvciBub3RpZnkgY2FuIGxlYWQgdG8gdGhpcworICAg
IC8vIG1ldGhvZCByZXR1cm5pbmcuIFRoaXMgbWVhbnMsIGZvciBleGFtcGxlLCB0aGF0IHlvdSBj
YW4ndCB1c2UgcHRocmVhZCBjYW5jZWxhdGlvbiBvciBzaWduYWxzIHRvCisgICAgLy8gY2F1c2Ug
ZWFybHkgcmV0dXJuLgorICAgIC8vCisgICAgLy8gUGFzdCB0aW1lb3V0OiBpdCdzIHBvc3NpYmxl
IGZvciB3YWl0VW50aWwoKSB0byBiZSBjYWxsZWQgd2l0aCBhIHRpbWVvdXQgaW4gdGhlIHBhc3Qu
IEluIHRoYXQKKyAgICAvLyBjYXNlLCB3YWl0VW50aWwoKSB3aWxsIHN0aWxsIHJlbGVhc2UgdGhl
IGxvY2sgYW5kIHJlYWNxdWlyZSBpdC4gd2FpdFVudGlsKCkgd2lsbCBhbHdheXMgcmV0dXJuCisg
ICAgLy8gZmFsc2UgaW4gdGhhdCBjYXNlLiBUaGlzIGlzIHN1YnRseSBkaWZmZXJlbnQgZnJvbSBz
b21lIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSBpbXBsZW1lbnRhdGlvbnMsCisgICAgLy8gd2hp
Y2ggbWF5IG5vdCByZWxlYXNlIHRoZSBsb2NrIGZvciBwYXN0IHRpbWVvdXQuIEJ1dCwgdGhpcyBi
ZWhhdmlvciBpcyBjb25zaXN0ZW50IHdpdGggT3Blbkdyb3VwCisgICAgLy8gZG9jdW1lbnRhdGlv
biBmb3IgdGltZWR3YWl0KCkuCisgICAgLy8KKyAgICAvLyBNYXkgd2FpdCB0b28gbG9uZyBvbiBz
b21lIE9TZXM6IHRoZSBDKysgc3RhbmRhcmQgbGlicmFyeSBpbXBsZW1lbnRhdGlvbiBvZgorICAg
IC8vIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlOjp3YWl0X3VudGlsKCksIHdoaWNoIHRoaXMgdXNl
cyBpbnRlcm5hbGx5LCBtYXkgY29udmVydCB0aGUgYWJzb2x1dGUKKyAgICAvLyB0aW1lIHRvIGFu
IGFic29sdXRlIHRpbWUgYWNjb3JkaW5nIHRvIHRoZSBzeXN0ZW0gY2xvY2ssIHdoaWNoIGlzbid0
IG1vbm90b25pYy4gSXQgd2lsbCBkbyB0aGlzCisgICAgLy8gc28gdGhhdCBpdCBjYW4gdXNlIHB0
aHJlYWRfY29uZF90aW1lZHdhaXQoKS4gRGVwZW5kaW5nIG9uIHRoZSBPUyBhbmQgaWYgYW4gdW5m
b3J0dW5hdGUKKyAgICAvLyBjb21iaW5hdGlvbiBvZiB0aHJlYWQgaW50ZXJsZWF2aW5ncyBhbmQg
c3lzdGVtIHRpbWUgY2hhbmdlcyBoYXBwZW5zLCB0aGlzIG1heSBjYXVzZSB3YWl0VW50aWwoKQor
ICAgIC8vIHRvIHdhaXQgbG9uZ2VyIHRoYW4gaXQncyBzdXBwb3NlZCB0by4gSG93ZXZlciwgaXQn
cyB0eXBpY2FsIGZvciBPU2VzIHRvIHR1cm4gdGhlIGFic29sdXRlCisgICAgLy8gdGltZW91dCBp
biBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gYSByZWxhdGl2ZSB0aW1lb3V0IGJlZm9yZSBj
YWxsaW5nIGludG8gdGhlIGtlcm5lbC4gVGhpcworICAgIC8vIGlzIHdoYXQgZ2xpYmMgZG9lcywg
Zm9yIGV4YW1wbGUuCisgICAgLy8KKyAgICAvLyBUaGVzZSBxdWlya3MgYXJlIGdlbmVyYWxseSBu
b3Qgd29ydGggd29ycnlpbmcgdG9vIG11Y2ggYWJvdXQuIFRoZSBmYWN0IHRoYXQgc29tZSBPU2Vz
IHBlcmZvcm0KKyAgICAvLyBjb252ZXJzaW9ucyB0byBhbiBhYnNvbHV0ZSBub24tbW9ub3Rvbmlj
IHRpbWUgaXMgdW5saWtlbHkgdG8gY2F1c2UgaXNzdWVzIGJlY2F1c2UgdGhleSB1c3VhbGx5Cisg
ICAgLy8ganVzdCBkbyB0aGF0IGFzIHBhcnQgb2YgYSBjb252ZXJzaW9uIHRvIGEgcmVsYXRpdmUg
c2xlZXAgYW1vdW50IGluIHRoZSBrZXJuZWwuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5
cGU+Ci0gICAgYm9vbCB3YWl0VW50aWwoCi0gICAgICAgIExvY2tUeXBlJiBsb2NrLCBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCisgICAgYm9vbCB3YWl0VW50
aWwoTG9ja1R5cGUmIGxvY2ssIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiAgICAgewotICAg
ICAgICBib29sIHJlc3VsdCA9IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAotICAgICAg
ICAgICAgJm1fZHVtbXksCi0gICAgICAgICAgICBbXSAoKSAtPiBib29sIHsgcmV0dXJuIHRydWU7
IH0sCi0gICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKLSAgICAgICAg
ICAgIHRpbWVvdXQpOworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgaWYgKHRpbWVvdXQg
PCBDbG9jazo6bm93KCkpIHsKKyAgICAgICAgICAgIGxvY2sudW5sb2NrKCk7CisgICAgICAgICAg
ICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9
IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAorICAgICAgICAgICAgICAgICZtX2R1bW15
LAorICAgICAgICAgICAgICAgIFtdICgpIC0+IGJvb2wgeyByZXR1cm4gdHJ1ZTsgfSwKKyAgICAg
ICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKKyAgICAgICAgICAgICAg
ICB0aW1lb3V0KTsKKyAgICAgICAgfQogICAgICAgICBsb2NrLmxvY2soKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CkBAIC01Niw4ICs4OSw3IEBAIHB1YmxpYzoKICAgICAvLyBXYWl0
IHVudGlsIHRoZSBnaXZlbiBwcmVkaWNhdGUgaXMgc2F0aXNmaWVkLiBSZXR1cm5zIHRydWUgaWYg
aXQgaXMgc2F0aXNmaWVkIGluIHRoZSBlbmQuCiAgICAgLy8gTWF5IHJldHVybiBlYXJseSBkdWUg
dG8gdGltZW91dC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRnVu
Y3Rvcj4KLSAgICBib29sIHdhaXRVbnRpbCgKLSAgICAgICAgTG9ja1R5cGUmIGxvY2ssIHN0ZDo6
Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgdGltZW91dCwgY29uc3QgRnVuY3RvciYg
cHJlZGljYXRlKQorICAgIGJvb2wgd2FpdFVudGlsKExvY2tUeXBlJiBsb2NrLCBDbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewogICAgICAg
ICB3aGlsZSAoIXByZWRpY2F0ZSgpKSB7CiAgICAgICAgICAgICBpZiAoIXdhaXRVbnRpbChsb2Nr
LCB0aW1lb3V0KSkKQEAgLTcyLDE3ICsxMDQsMTMgQEAgcHVibGljOgogICAgIGJvb2wgd2FpdEZv
cigKICAgICAgICAgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVU
aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewotICAgICAgICBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IGFic29sdXRlVGltZW91dCA9Ci0gICAgICAg
ICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSArCi0gICAgICAgICAgICBzdGQ6
OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlv
bj4ocmVsYXRpdmVUaW1lb3V0KTsKLQotICAgICAgICByZXR1cm4gd2FpdFVudGlsKGxvY2ssIGFi
c29sdXRlVGltZW91dCwgcHJlZGljYXRlKTsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2Nr
LCBhYnNvbHV0ZUZyb21SZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpLCBwcmVkaWNhdGUpOwogICAg
IH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgogICAgIHZvaWQgd2FpdChMb2Nr
VHlwZSYgbG9jaykKICAgICB7Ci0gICAgICAgIHdhaXRVbnRpbChsb2NrLCBzdGQ6OmNocm9ubzo6
c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7CisgICAgICAgIHdhaXRVbnRpbChsb2Nr
LCBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIExvY2tUeXBlLCB0eXBlbmFtZSBGdW5jdG9yPgpAQCAtOTIsNiArMTIwLDMyIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHdhaXQobG9jayk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgTG9ja1R5cGUsIHR5cGVuYW1lIFRpbWVUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsKExvY2tU
eXBlJiBsb2NrLCBjb25zdCBUaW1lVHlwZSYgdGltZW91dCkKKyAgICB7CisgICAgICAgIGlmICh0
aW1lb3V0ID09IFRpbWVUeXBlOjptYXgoKSkgeworICAgICAgICAgICAgd2FpdChsb2NrKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB3YWl0Rm9y
SW1wbChsb2NrLCB0aW1lb3V0IC0gVGltZVR5cGU6OmNsb2NrOjpub3coKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+CisgICAgYm9vbCB3YWl0VW50aWxXYWxsQ2xv
Y2tTZWNvbmRzKExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykK
KyAgICB7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVU
aW1lb3V0U2Vjb25kcyAtIGN1cnJlbnRUaW1lKCkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIExvY2tUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsTW9ub3RvbmljQ2xvY2tTZWNvbmRz
KExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykKKyAgICB7Cisg
ICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVUaW1lb3V0U2Vj
b25kcyAtIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKKyAgICB9CisKKyAgICAvLyBG
SVhNRTogV2UgY291bGQgcmVwbGFjZSB0aGUgZHVtbXkgYnl0ZSB3aXRoIGEgYm9vbGVhbiB0byB0
ZWxsIHVzIGlmIHRoZXJlIGlzIGFueW9uZSB3YWl0aW5nCisgICAgLy8gcmlnaHQgbm93LiBUaGlz
IGNvdWxkIGJlIHVzZWQgdG8gaW1wbGVtZW50IGEgZmFzdCBwYXRoIGZvciBub3RpZnlPbmUoKSBh
bmQgbm90aWZ5QWxsKCkuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODA5MAorCiAgICAgdm9pZCBub3RpZnlPbmUoKQogICAgIHsKICAgICAgICAgUGFy
a2luZ0xvdDo6dW5wYXJrT25lKCZtX2R1bW15KTsKQEAgLTEwMyw3ICsxNTcsNTYgQEAgcHVibGlj
OgogICAgIH0KICAgICAKIHByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+
CisgICAgYm9vbCB3YWl0Rm9yU2Vjb25kc0ltcGwoTG9ja1R5cGUmIGxvY2ssIGRvdWJsZSByZWxh
dGl2ZVRpbWVvdXRTZWNvbmRzKQorICAgIHsKKyAgICAgICAgZG91YmxlIHJlbGF0aXZlVGltZW91
dE5hbm9zZWNvbmRzID0gcmVsYXRpdmVUaW1lb3V0U2Vjb25kcyAqICgxMDAwLjAgKiAxMDAwLjAg
KiAxMDAwLjApOworICAgICAgICAKKyAgICAgICAgaWYgKCEocmVsYXRpdmVUaW1lb3V0TmFub3Nl
Y29uZHMgPiAwKSkgeworICAgICAgICAgICAgLy8gVGhpcyBoYW5kbGVzIGluc3RhLXRpbWVvdXRz
IGFzIHdlbGwgYXMgTmFOLgorICAgICAgICAgICAgbG9jay51bmxvY2soKTsKKyAgICAgICAgICAg
IGxvY2subG9jaygpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHJlbGF0aXZlVGltZW91dE5hbm9zZWNvbmRzID4gc3RhdGljX2Nhc3Q8ZG91Ymxl
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptYXgoKSkpIHsKKyAgICAgICAgICAgIC8v
IElmIHRoZSB0aW1lb3V0IGluIG5hbm9zZWNvbmRzIGNhbm5vdCBiZSBleHByZXNzZWQgdXNpbmcg
YSA2NC1iaXQgaW50ZWdlciwgdGhlbiB3ZQorICAgICAgICAgICAgLy8gbWlnaHQgYXMgd2VsbCB3
YWl0IGZvcmV2ZXIuCisgICAgICAgICAgICB3YWl0KGxvY2spOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGF1dG8gcmVsYXRpdmVUaW1lb3V0
ID0KKyAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyhzdGF0aWNfY2FzdDxpbnQ2
NF90PihyZWxhdGl2ZVRpbWVvdXROYW5vc2Vjb25kcykpOworCisgICAgICAgIHJldHVybiB3YWl0
Rm9ySW1wbChsb2NrLCByZWxhdGl2ZVRpbWVvdXQpOworICAgIH0KICAgICAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRHVyYXRpb25UeXBlPgorICAgIGJvb2wgd2Fp
dEZvckltcGwoTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVUaW1l
b3V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2NrLCBhYnNvbHV0ZUZyb21S
ZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEdXJhdGlvblR5cGU+CisgICAgQ2xvY2s6OnRpbWVfcG9pbnQgYWJzb2x1dGVGcm9tUmVsYXRp
dmUoY29uc3QgRHVyYXRpb25UeXBlJiByZWxhdGl2ZVRpbWVvdXQpCisgICAgeworICAgICAgICBp
ZiAocmVsYXRpdmVUaW1lb3V0IDwgRHVyYXRpb25UeXBlOjp6ZXJvKCkpCisgICAgICAgICAgICBy
ZXR1cm4gQ2xvY2s6OnRpbWVfcG9pbnQ6Om1pbigpOworCisgICAgICAgIGlmIChyZWxhdGl2ZVRp
bWVvdXQgPiBDbG9jazo6ZHVyYXRpb246Om1heCgpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGlz
IGhpZ2hseSB1bmxpa2VseS4gQnV0IGlmIGl0IGhhcHBlbnMsIHdlIHdhbnQgdG8gbm90IGRvIGFu
eXRoaW5nIGR1bWIuIFNsZWVwaW5nCisgICAgICAgICAgICAvLyB3aXRob3V0IGEgdGltZW91dCBz
ZWVtcyBzZW5zaWJsZSB3aGVuIHRoZSB0aW1lb3V0IGR1cmF0aW9uIGlzIGdyZWF0ZXIgdGhhbiB3
aGF0IGNhbiBiZQorICAgICAgICAgICAgLy8gZXhwcmVzc2VkIHVzaW5nIHN0ZWFkeV9jbG9jay4K
KyAgICAgICAgICAgIHJldHVybiBDbG9jazo6dGltZV9wb2ludDo6bWF4KCk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIENsb2NrOjpkdXJhdGlvbiBteVJlbGF0aXZlVGltZW91dCA9Cisg
ICAgICAgICAgICBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxDbG9jazo6ZHVyYXRpb24+KHJl
bGF0aXZlVGltZW91dCk7CisKKyAgICAgICAgcmV0dXJuIENsb2NrOjpub3coKSArIG15UmVsYXRp
dmVUaW1lb3V0OworICAgIH0KKwogICAgIHVpbnQ4X3QgbV9kdW1teTsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L01lc3NhZ2VRdWV1ZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9NZXNz
YWdlUXVldWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMzIsNyArMzIsOSBAQAogCiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Nyw4ICs3OSw4IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgICAgICBzdGF0aWMgZG91YmxlIGluZmluaXRlVGltZSgpIHsg
cmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCk7IH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKKyAgICAgICAg
Q29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8RGF0
YVR5cGU+PiBtX3F1ZXVlOwogICAgICAgICBib29sIG1fa2lsbGVkOwogICAgIH07CkBAIC05MSwz
NyArOTMsMzcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKHN0ZDo6
dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAg
ICAgbV9xdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRp
b24uc2lnbmFsKCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSB2b2lkIE1lc3NhZ2VR
dWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwoc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBt
ZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEY6
Om1vdmUobWVzc2FnZSkpOwogICAgICAgICBtX2tpbGxlZCA9IHRydWU7Ci0gICAgICAgIG1fY29u
ZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsKICAg
ICB9CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHF1ZXVlIHdhcyBlbXB0eSBiZWZvcmUg
dGhlIGl0ZW0gd2FzIGFkZGVkLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAg
IGlubGluZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHko
c3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwog
ICAgICAgICBib29sIHdhc0VtcHR5ID0gbV9xdWV1ZS5pc0VtcHR5KCk7CiAgICAgICAgIG1fcXVl
dWUuYXBwZW5kKFdURjo6bW92ZShtZXNzYWdlKSk7Ci0gICAgICAgIG1fY29uZGl0aW9uLnNpZ25h
bCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICAgICAgcmV0dXJuIHdh
c0VtcHR5OwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlu
bGluZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OnByZXBlbmQoc3RkOjp1bmlxdWVfcHRy
PERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVl
LnByZXBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRpb24uc2lnbmFs
KCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERhdGFUeXBlPgpAQCAtMTM3LDcgKzEzOSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgYXV0byBNZXNz
YWdlUXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQoTWVz
c2FnZVF1ZXVlV2FpdFJlc3VsdCYgcmVzdWx0LCBQcmVkaWNhdGUmJiBwcmVkaWNhdGUsIGRvdWJs
ZSBhYnNvbHV0ZVRpbWUpIC0+IHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4KICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayht
X211dGV4KTsKICAgICAgICAgYm9vbCB0aW1lZE91dCA9IGZhbHNlOwogCiAgICAgICAgIGF1dG8g
Zm91bmQgPSBtX3F1ZXVlLmVuZCgpOwpAQCAtMTQ5LDcgKzE1MSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgICAgICAgICAgaWYgKGZvdW5kICE9IG1fcXVldWUuZW5kKCkpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHRpbWVkT3V0ID0gIW1fY29uZGl0aW9uLnRpbWVkV2Fp
dChtX211dGV4LCBhYnNvbHV0ZVRpbWUpOworICAgICAgICAgICAgdGltZWRPdXQgPSAhbV9jb25k
aXRpb24ud2FpdFVudGlsV2FsbENsb2NrU2Vjb25kcyhtX211dGV4LCBhYnNvbHV0ZVRpbWUpOwog
ICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCF0aW1lZE91dCB8fCBhYnNvbHV0ZVRpbWUgIT0g
aW5maW5pdGVUaW1lKCkpOwpAQCAtMTc0LDcgKzE3Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBhdXRvIE1lc3NhZ2VRdWV1
ZTxEYXRhVHlwZT46OnRyeUdldE1lc3NhZ2UoKSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCkBAIC0xODYs
NyArMTg4LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIGF1dG8gTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6dHJ5R2V0TWVzc2Fn
ZUlnbm9yaW5nS2lsbGVkKCkgLT4gc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbXV0ZXgpOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIApAQCAtMTk3LDcgKzE5OSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVl
dWU8RGF0YVR5cGU+OjpyZW1vdmVJZihQcmVkaWNhdGUmJiBwcmVkaWNhdGUpCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV9tdXRleCk7CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBhdXRvIGZvdW5k
ID0gbV9xdWV1ZS5maW5kSWYoWyZwcmVkaWNhdGVdKGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxEYXRh
VHlwZT4mIHB0cikgLT4gYm9vbCB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHB0cik7CkBAIC0y
MTQsNyArMjE2LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0
YVR5cGU+CiAgICAgaW5saW5lIGJvb2wgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6aXNFbXB0eSgp
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gbV9xdWV1ZS5pc0VtcHR5KCk7CkBAIC0yMjMs
MTUgKzIyNSwxNSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRh
VHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpraWxsKCkKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9raWxsZWQgPSB0cnVlOwotICAgICAgICBtX2Nv
bmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGJvb2wg
TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbGVkKCkgY29uc3QKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4
KTsKICAgICAgICAgcmV0dXJuIG1fa2lsbGVkOwogICAgIH0KIH0gLy8gbmFtZXNwYWNlIFdURgpJ
bmRleDogU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDUsMTcgKzEwNSwxNyBAQCBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVh
ZFByaXZhdGU6CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6ZXhl
Y3V0ZShUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgdm9pZCogcGFyYW1ldGVycykKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211
dGV4KTsKIAogICAgIG1fdGhyZWFkRnVuY3Rpb24gPSB0aHJlYWRGdW5jdGlvbjsKICAgICBtX3Bh
cmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgIG1fcnVubmluZyA9IHRydWU7Ci0gICAgbV90aHJl
YWRDb25kaXRpb24uc2lnbmFsKCk7CisgICAgbV90aHJlYWRDb25kaXRpb24ubm90aWZ5T25lKCk7
CiB9CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZp
bmlzaCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CiAKICAgICB3aGlsZSAobV9ydW5uaW5nKQogICAgICAgICBtX3RocmVh
ZENvbmRpdGlvbi53YWl0KG1fbXV0ZXgpOwpAQCAtMTI0LDE0ICsxMjQsMTQgQEAgdm9pZCBQYXJh
bGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOgogdm9pZCBQYXJhbGxlbEVudmlyb25tZW50
OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJUaHJlYWQodm9pZCogdGhyZWFkRGF0YSkKIHsKICAgICBU
aHJlYWRQcml2YXRlKiBzaGFyZWRUaHJlYWQgPSByZWludGVycHJldF9jYXN0PFRocmVhZFByaXZh
dGUqPih0aHJlYWREYXRhKTsKLSAgICBNdXRleExvY2tlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CiAKICAg
ICB3aGlsZSAoc2hhcmVkVGhyZWFkLT5tX3RocmVhZElEKSB7CiAgICAgICAgIGlmIChzaGFyZWRU
aHJlYWQtPm1fcnVubmluZykgewogICAgICAgICAgICAgKCpzaGFyZWRUaHJlYWQtPm1fdGhyZWFk
RnVuY3Rpb24pKHNoYXJlZFRocmVhZC0+bV9wYXJhbWV0ZXJzKTsKICAgICAgICAgICAgIHNoYXJl
ZFRocmVhZC0+bV9ydW5uaW5nID0gZmFsc2U7CiAgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1f
cGFyZW50ID0gMDsKLSAgICAgICAgICAgIHNoYXJlZFRocmVhZC0+bV90aHJlYWRDb25kaXRpb24u
c2lnbmFsKCk7CisgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1fdGhyZWFkQ29uZGl0aW9uLm5v
dGlmeU9uZSgpOwogICAgICAgICB9CiAKICAgICAgICAgc2hhcmVkVGhyZWFkLT5tX3RocmVhZENv
bmRpdGlvbi53YWl0KHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAKIAog
I2lmIEVOQUJMRShUSFJFQURJTkdfR0VORVJJQykKIAorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Niw4ICs3OCw4IEBAIHB1YmxpYzoKICAg
ICAgICAgYm9vbCBtX3J1bm5pbmc7CiAgICAgICAgIFBhcmFsbGVsRW52aXJvbm1lbnQqIG1fcGFy
ZW50OwogCi0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29u
ZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsK
KyAgICAgICAgQ29uZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOwogCiAgICAgICAgIFRocmVhZEZ1
bmN0aW9uIG1fdGhyZWFkRnVuY3Rpb247CiAgICAgICAgIHZvaWQqIG1fcGFyYW1ldGVyczsKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1BhcmtpbmdMb3QuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0
Zi9QYXJraW5nTG90LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTExLDcgKzUxMSw3IEBAIGJvb2wg
UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHkoCiAgICAgY29uc3Qgdm9pZCogYWRkcmVzcywK
ICAgICBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4gdmFsaWRhdGlvbiwKICAgICBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gYmVmb3JlU2xlZXAsCi0gICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0KQorICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiB7CiAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2codG9TdHJpbmcoY3VycmVudFRocmVhZCgpLCAi
OiBwYXJraW5nLlxuIikpOwpAQCAtNTM5LDExICs1MzksMTEgQEAgYm9vbCBQYXJraW5nTG90Ojpw
YXJrQ29uZGl0aW9uYWxseSgKICAgICBib29sIGRpZEdldERlcXVldWVkOwogICAgIHsKICAgICAg
ICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrZXIobWUtPnBhcmtpbmdMb2NrKTsK
LSAgICAgICAgd2hpbGUgKG1lLT5hZGRyZXNzICYmIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
Om5vdygpIDwgdGltZW91dCkgeworICAgICAgICB3aGlsZSAobWUtPmFkZHJlc3MgJiYgQ2xvY2s6
Om5vdygpIDwgdGltZW91dCkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyBwcmV0dHkgZnVubnku
IE9uIExpbnV4LCBpZiB5b3Ugd2FpdCB1bnRpbCB0aGUgbWF4IHRpbWUsIGl0IGltbWVkaWF0ZWx5
IHJlcG9ydHMgdGhhdCB5b3UgdGltZWQKICAgICAgICAgICAgIC8vIG91dC4gV2hhdCdzIHBhcnRp
Y3VsYXJseSBiYWQgYWJvdXQgdGhpcyBpcyB0aGF0IGl0IG5ldmVyIHJlbGVhc2VzIHRoZSBsb2Nr
IGluIHRoYXQgY2FzZS4gU28sIHlvdSBsb29wCiAgICAgICAgICAgICAvLyBmb3JldmVyIHdpdGhv
dXQgeWllbGRpbmcgdG8gdGhlIHRocmVhZCB0aGF0IHdvdWxkIHdha2UgeW91IHVwLgotICAgICAg
ICAgICAgaWYgKHRpbWVvdXQgPT0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2lu
dDo6bWF4KCkpCisgICAgICAgICAgICBpZiAodGltZW91dCA9PSBDbG9jazo6dGltZV9wb2ludDo6
bWF4KCkpCiAgICAgICAgICAgICAgICAgbWUtPnBhcmtpbmdDb25kaXRpb24ud2FpdChsb2NrZXIp
OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1lLT5wYXJraW5nQ29uZGl0aW9u
LndhaXRfdW50aWwobG9ja2VyLCB0aW1lb3V0KTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1Bhcmtp
bmdMb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmgJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNiArMzgsOCBAQCBjbGFzcyBQYXJraW5nTG90IHsKICAgICBQYXJraW5nTG90KGNv
bnN0IFBhcmtpbmdMb3QmKSA9IGRlbGV0ZTsKIAogcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jayBDbG9jazsKKyAgICAKICAgICAvLyBQYXJrcyB0aGUgdGhyZWFk
IGluIGEgcXVldWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBhZGRyZXNzLCB3aGljaCBjYW5u
b3QgYmUgbnVsbC4gVGhlCiAgICAgLy8gcGFya2luZyBvbmx5IHN1Y2NlZWRzIGlmIHRoZSB2YWxp
ZGF0aW9uIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSB3aGlsZSB0aGUgcXVldWUgbG9jayBpcyBoZWxk
LgogICAgIC8vIElmIHZhbGlkYXRpb24gcmV0dXJucyBmYWxzZSwgaXQgd2lsbCB1bmxvY2sgdGhl
IGludGVybmFsIHBhcmtpbmcgcXVldWUgYW5kIHRoZW4gaXQgd2lsbApAQCAtNTMsNyArNTUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IHZvaWQqIGFkZHJlc3MsCiAgICAgICAgIHN0ZDo6ZnVu
Y3Rpb248Ym9vbCgpPiB2YWxpZGF0aW9uLAogICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4g
YmVmb3JlU2xlZXAsCi0gICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9p
bnQgdGltZW91dCk7CisgICAgICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpOwogCiAgICAg
Ly8gU2ltcGxlIHZlcnNpb24gb2YgcGFya0NvbmRpdGlvbmFsbHkoKSB0aGF0IGNvdmVycyB0aGUg
bW9zdCBjb21tb24gY2FzZTogeW91IHdhbnQgdG8gcGFyawogICAgIC8vIGluZGVmaW5pdGVseSBz
byBsb25nIGFzIHRoZSB2YWx1ZSBhdCB0aGUgZ2l2ZW4gYWRkcmVzcyBoYXNuJ3QgY2hhbmdlZC4K
QEAgLTY3LDcgKzY5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9
PSBleHBlY3RlZDsKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICBbXSAoKSB7IH0sCi0gICAg
ICAgICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7Cisg
ICAgICAgICAgICBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIC8vIFVu
cGFya3Mgb25lIHRocmVhZCBmcm9tIHRoZSBxdWV1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVu
IGFkZHJlc3MsIHdoaWNoIGNhbm5vdCBiZSBudWxsLgpAQCAtMTAzLDcgKzEwNSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBBMSxUMSBBMixUMyBBMSxUMiBBMixUNAogICAgIC8vIEExLFQxIEEyLFQzIEEy
LFQ0IEExLFQyCiAgICAgLy8KLSAgICAvLyBBcyB3ZWxsIGFzIG1hbnkgb3RoZXIgcG9zc2libGUg
aW50ZXJsZWF2ZXMgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBi
dXQgYXJlCisgICAgLy8gQXMgd2VsbCBhcyBtYW55IG90aGVyIHBvc3NpYmxlIGludGVybGVhdmlu
Z3MgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBidXQgYXJlCiAg
ICAgLy8gb3RoZXJ3aXNlIHVuY29uc3RyYWluZWQuIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBwcmlt
YXJpbHkgZm9yIGRlYnVnZ2luZy4gSXQncyBhbHNvIHVzZWQgYnkgdW5pdAogICAgIC8vIHRlc3Rz
LgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBmb3JFYWNoKHN0ZDo6ZnVuY3Rp
b248dm9pZChUaHJlYWRJZGVudGlmaWVyLCBjb25zdCB2b2lkKik+KTsKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDcgKzEyNiw2
IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgVGhyZWFkSWRlbnRpZmllckRhdGE6
OmluaXRpYWxpemVPbmNlKCk7CiAgICAgU3RhY2tTdGF0czo6aW5pdGlhbGl6ZSgpOwogICAgIHd0
ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAgIGluaXRp
YWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHJldmlzaW9u
IDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2NSw3ICsxNjUsNiBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogICAgIHRo
cmVhZE1hcE11dGV4KCk7CiAgICAgaW5pdGlhbGl6ZVJhbmRvbU51bWJlckdlbmVyYXRvcigpOwog
ICAgIHd0ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAg
IGluaXRpYWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi93dGYvZHRvYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBA
CiAgKiBUaGUgYXV0aG9yIG9mIHRoaXMgc29mdHdhcmUgaXMgRGF2aWQgTS4gR2F5LgogICoKICAq
IENvcHlyaWdodCAoYykgMTk5MSwgMjAwMCwgMjAwMSBieSBMdWNlbnQgVGVjaG5vbG9naWVzLgot
ICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMiwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCwgMjAxMiwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwg
YW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CiAgKiBwdXJwb3NlIHdpdGhvdXQg
ZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoaXMgZW50aXJlIG5vdGljZQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImR0b2EuaCIKIAogI2luY2x1ZGUgPHN0ZGlvLmg+
CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01NCw3
ICs1NSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1NdXRleCogc19kdG9hUDVNdXRleDsKK3N0
YXRpYyBTdGF0aWNMb2NrIHNfZHRvYVA1TXV0ZXg7CiAKIHR5cGVkZWYgdW5pb24gewogICAgIGRv
dWJsZSBkOwpAQCAtMzc1LDcgKzM3Niw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93
NW11bHQoQmlnSW4KICAgICBpZiAoIShrID4+PSAyKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
c19kdG9hUDVNdXRleC0+bG9jaygpOworICAgIHNfZHRvYVA1TXV0ZXgubG9jaygpOwogICAgIFA1
Tm9kZSogcDUgPSBwNXM7CiAKICAgICBpZiAoIXA1KSB7CkBAIC0zODgsNyArMzg5LDcgQEAgc3Rh
dGljIEFMV0FZU19JTkxJTkUgdm9pZCBwb3c1bXVsdChCaWdJbgogICAgIH0KIAogICAgIGludCBw
NXNDb3VudExvY2FsID0gcDVzQ291bnQ7Ci0gICAgc19kdG9hUDVNdXRleC0+dW5sb2NrKCk7Cisg
ICAgc19kdG9hUDVNdXRleC51bmxvY2soKTsKICAgICBpbnQgcDVzVXNlZCA9IDA7CiAKICAgICBm
b3IgKDs7KSB7CkBAIC0zOTksNyArNDAwLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBw
b3c1bXVsdChCaWdJbgogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKCsrcDVzVXNl
ZCA9PSBwNXNDb3VudExvY2FsKSB7Ci0gICAgICAgICAgICBzX2R0b2FQNU11dGV4LT5sb2NrKCk7
CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LmxvY2soKTsKICAgICAgICAgICAgIGlmIChwNXNV
c2VkID09IHA1c0NvdW50KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFwNS0+bmV4dCk7CiAg
ICAgICAgICAgICAgICAgcDUtPm5leHQgPSBuZXcgUDVOb2RlOwpAQCAtNDEwLDcgKzQxMSw3IEBA
IHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93NW11bHQoQmlnSW4KICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgcDVzQ291bnRMb2NhbCA9IHA1c0NvdW50OwotICAgICAgICAgICAgc19k
dG9hUDVNdXRleC0+dW5sb2NrKCk7CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LnVubG9jaygp
OwogICAgICAgICB9CiAgICAgICAgIHA1ID0gcDUtPm5leHQ7CiAgICAgfQpJbmRleDogU291cmNl
L1dURi93dGYvZHRvYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2R0b2EuaAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93dGYvZHRvYS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCwxMCArMjgsNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotY2xhc3MgTXV0ZXg7Ci0KLWV4
dGVybiBNdXRleCogc19kdG9hUDVNdXRleDsKLQogdHlwZWRlZiBjaGFyIER0b2FCdWZmZXJbODBd
OwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdG9hKER0b2FCdWZmZXIgcmVzdWx0LCBkb3Vi
bGUgZGQsIGJvb2wmIHNpZ24sIGludCYgZXhwb25lbnQsIHVuc2lnbmVkJiBwcmVjaXNpb24pOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjc0IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5n
IHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugbm8gbmV3IGJl
aGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29k
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3ApOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbUF1ZGlvU291cmNlOjphZGRBdWRpb0NvbnN1bWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6c2V0QXVkaW9Gb3JtYXQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBs
ZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6aGFzUGVuZGluZ1RyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjp0YXNrQ29tcGxldGVkKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJl
YWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRo
cmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZXRyeUNhbkVzdGFibGlzaERh
dGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6aGFzRW50cnlGb3JP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRNYXhTaXplRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpjbG9zZUFsbERh
dGFiYXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmZ1bGxQYXRoRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpvcmlnaW5zKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZGF0YWJhc2VOYW1lc0Zvck9yaWdp
bik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmRldGFpbHNGb3JOYW1lQW5k
T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VE
ZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZG9uZUNyZWF0aW5n
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZW1vdmVPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRPcGVuRGF0YWJh
c2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3JpZ2luTG9ja0Zvcik6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnF1b3RhRm9yT3JpZ2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0UXVvdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OnJlbW92ZURlbGV0ZWRPcGVuZWREYXRhYmFzZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGVJZkVtcHR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNlTXV0ZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bm90aWZpY2F0aW9uTXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2Vy
OjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6Om5vdGlmeURhdGFiYXNlc0NoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxs
YmFja1dyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTENhbGxiYWNrV3JhcHBlcjo6Y2xl
YXIpOgorICAgICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjp1bndyYXApOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjpoYXNDYWxsYmFjayk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXApOgorICAgICAgICAo
V2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjplbnF1ZXVlU3RhdGVtZW50QmFja2VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmdldE5leHRTdGF0ZW1l
bnQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5k
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpzY2hlZHVsZUV4ZWN1dGlv
blRlcm1pbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6
OmlzRXhlY3V0aW9uVGVybWluYXRpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OnBv
c3RNZXNzYWdlVG9SZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVs
Ojp0cnlHZXRNZXNzYWdlRnJvbVJlbW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWw6OmlzQ29ubmVjdGVkVG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRD
aGFubmVsOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBv
cnRDaGFubmVsOjpsb2NhbGx5RW50YW5nbGVkUG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6c2V0UmVtb3RlUG9ydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6ZW50YW5nbGVkQ2hhbm5lbCk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y2xvc2VJbnRlcm5hbCk6Cisg
ICAgICAgICogZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaDoKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNv
bkRhdGFiYXNlOjpyZW1vdmVBbGxJY29ucyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRh
dGFiYXNlOjpzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYkNv
cmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTCk6CisgICAgICAg
IChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAgICAgICAg
KFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29uRm9yUGFnZVVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJM
KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNMb2FkRGVjaXNp
b25Gb3JJY29uVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25v
dXNJY29uRGF0YUtub3duRm9ySWNvblVSTCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnBhZ2VVUkxNYXBwaW5nQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpyZXRhaW5lZFBhZ2VVUkxDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6
Omljb25SZWNvcmRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omljb25S
ZWNvcmRDb3VudFdpdGhEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6d2Fr
ZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpzY2hlZHVsZU9y
RGVmZXJTeW5jVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjppc09wZW5C
ZXNpZGVzTWFpblRocmVhZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OmdldE9y
Q3JlYXRlUGFnZVVSTFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omlj
b25EYXRhYmFzZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpw
ZXJmb3JtT3BlbkluaXRpYWxpemF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cGVyZm9ybVVSTEltcG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnN5
bmNUaHJlYWRNYWluTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnBlcmZv
cm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SWNvbkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25E
YXRhYmFzZTo6d3JpdGVUb0RhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cHJ1bmVVbnJldGFpbmVkSWNvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpjbGVhbnVwU3luY1RocmVhZCk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25v
dXNseSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Ny
b2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aXNQb2ludElu
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjpzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZTo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1Njcm9sbFNuYXBwaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldENhblJ1YmJlckJhbmRTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVmdCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0UmlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxQaW5uaW5nQmVoYXZpb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpjbGVhckxhdGNoZWROb2RlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6d2FpdEZvckxvYWRlclRo
cmVhZENvbXBsZXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxv
YWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXRSZWNl
aXZlZE1lbW9yeVByZXNzdXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6Y2xlYXJNZW1vcnlQcmVzc3VyZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OnNob3VsZFdhaXRGb3JNZW1vcnlDbGVhck1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUlm
TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5
RGlkUmVmcmVzaCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnNldE1v
bm90b25pY0FuaW1hdGlvblN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3I6Om11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0RGVsYXlDYWxsYmFja3MpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1h
aW5UaHJlYWRQZW5kaW5nRmxhZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246OmRpc3BhdGNoTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6
OmNhbGxiYWNrQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjp+QVZGV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjptYXBMb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6OkFWRldyYXBwZXI6OmFkZFRvTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldy
YXBwZXI6OnJlbW92ZUZyb21NYXApOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cGVy
aW9kaWNUaW1lT2JzZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVy
Ojpwcm9jZXNzTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6Omxv
YWRQbGF5YWJsZUNvbXBsZXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFw
cGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
QVZGV3JhcHBlcjo6c2Vla0NvbXBsZXRlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFW
RldyYXBwZXI6OnByb2Nlc3NDdWUpOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6bGVn
aWJsZU91dHB1dENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OnByb2Nl
c3NTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6QVZG
V3JhcHBlcjo6cmVzb3VyY2VMb2FkZXJTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVxdWVzdGVkUmVz
b3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFj
a1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXI6OnRhZ3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6cmVxdWVz
dFJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjphZGRMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OnJlbW92ZUxp
c3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbjo6bm90aWZ5RGVsZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Okludm9rZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Om9u
TWVkaWFQbGF5ZXJEZWxldGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L0xlZ2FjeVRpbGVDYWNoZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2Fj
aGUubW06CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRpbGVzT3BhcXVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6ZG9MYXlvdXRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldEN1cnJlbnRTY2FsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmNvbW1pdFNjYWxlQ2hhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6bGF5b3V0VGlsZXNOb3cpOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpsYXlvdXRUaWxlc05vd0ZvclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxUaWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUZvcmVncm91bmRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldENvbnRlbnRSZXBsYWNlbWVudElt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6Y29udGVudFJlcGxhY2Vt
ZW50SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjp0aWxlQ3JlYXRp
b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0TmVl
ZHNEaXNwbGF5SW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dXBk
YXRlVGlsaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRp
bGluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpkb1BlbmRpbmdS
ZXBhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmZsdXNoU2F2ZWRE
aXNwbGF5UmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpwcmVwYXJl
VG9EcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6YWRkTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6dGFrZUxheWVyV2l0aFNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6cHJ1bmUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5
VGlsZUxheWVyUG9vbDo6ZHJhaW4pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsRG93bmxvYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnJlbW92ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjpnZXRBY3RpdmVEb3dubG9hZENv
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OmdldFBlbmRpbmdE
b3dubG9hZENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnN0
b3BUaHJlYWRJZklkbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
dXBkYXRlSGFuZGxlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6On5DdXJs
RG93bmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjppbml0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Z2V0VGVtcFBhdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybERvd25sb2FkOjpnZXRVcmwpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2Fk
OjpnZXRSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmNsb3NlRmls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVIZWFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZEZhaWwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZUph
clBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkUmVzb3VyY2VNdXRleCk6CisgICAgICAg
IChXZWJDb3JlOjpjdXJsX2xvY2tfY2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Y3VybF91
bmxvY2tfY2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9v
ay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlFMRGlyZWN0b3J5QXR0cmlidXRlcyk6CisgICAgICAg
IChxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6
YWRkUUxQcmV2aWV3Q29udmVydGVyV2l0aEZpbGVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
cWxQcmV2aWV3Q29udmVydGVyVVRJRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVFM
UHJldmlld0NvbnZlcnRlckZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpzYWZlUUxVUkxGb3JE
b2N1bWVudFVSTEFuZFJlc291cmNlVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmNsb3NlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjptYXhpbXVtU2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6c2V0TWF4aW11bVNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6OnBhZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0
ZURhdGFiYXNlOjpmcmVlU3BhY2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFi
YXNlOjp0b3RhbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnJ1bklu
Y3JlbWVudGFsVmFjdXVtQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFz
ZTo6c2V0QXV0aG9yaXplcik6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6ZGF0YWJhc2VNdXRleCk6Cisg
ICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTUUxpdGVTdGF0ZW1lbnQ6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRl
U3RhdGVtZW50OjpzdGVwKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZDo6c3RvcCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKwogMjAxNS0w
OC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCBjb25zdCB0byBjb250ZW50IGV4dGVuc2lvbiBwYXJzZXIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3Bw
CShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Fz
eW5jQXVkaW9EZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29kZXIoKQog
ewogICAgIC8vIFN0YXJ0IHdvcmtlciB0aHJlYWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3Ro
cmVhZENyZWF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOwogICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6
OnRocmVhZEVudHJ5LCB0aGlzLCAiQXVkaW8gRGVjb2RlciIpOwogfQogCkBAIC03Niw3ICs3Niw3
IEBAIHZvaWQgQXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3AoKQogCiAgICAgewogICAgICAgICAv
LyBXYWl0IGZvciB1bnRpbCB3ZSBoYXZlIG1fdGhyZWFkSUQgZXN0YWJsaXNoZWQgYmVmb3JlIHN0
YXJ0aW5nIHRoZSBydW4gbG9vcC4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENy
ZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11
dGV4KTsKICAgICB9CiAKICAgICAvLyBLZWVwIHJ1bm5pbmcgZGVjb2RpbmcgdGFza3MgdW50aWwg
d2UncmUga2lsbGVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3lu
Y0F1ZGlvRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5Mb29wKCk7CiAKICAgICBX
VEY6OlRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJRDsKLSAgICBNdXRleCBtX3RocmVhZENyZWF0
aW9uTXV0ZXg7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgTWVzc2FnZVF1
ZXVlPERlY29kaW5nVGFzaz4gbV9xdWV1ZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzgwLDcgKzM4MCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb25uZWN0
aW9uQ291bnQgeyAwIH07CiAKICAgICAvLyBHcmFwaCBsb2NraW5nLgotICAgIE11dGV4IG1fY29u
dGV4dEdyYXBoTXV0ZXg7CisgICAgTG9jayBtX2NvbnRleHRHcmFwaE11dGV4OwogICAgIHZvbGF0
aWxlIFRocmVhZElkZW50aWZpZXIgbV9hdWRpb1RocmVhZCB7IDAgfTsKICAgICB2b2xhdGlsZSBU
aHJlYWRJZGVudGlmaWVyIG1fZ3JhcGhPd25lclRocmVhZDsgLy8gaWYgdGhlIGxvY2sgaXMgaGVs
ZCB0aGVuIHRoaXMgaXMgdGhlIHRocmVhZCB3aGljaCBvd25zIGl0LCBvdGhlcndpc2UgPT0gVW5k
ZWZpbmVkVGhyZWFkSWRlbnRpZmllcgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDEzICs2MywxMyBAQCBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBNZWRpYVN0CiAKIHZvaWQgTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZTo6YWRkQXVkaW9Db25zdW1lcihQYXNzUmVmUHRyPEF1ZGlvRGVzdGluYXRpb25D
b25zdW1lcj4gY29uc3VtZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXVkaW9Db25z
dW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7
CiAgICAgbV9hdWRpb0NvbnN1bWVycy5hcHBlbmQoY29uc3VtZXIpOwogfQogCiBib29sIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIoQXVkaW9EZXN0aW5hdGlvbkNv
bnN1bWVyKiBjb25zdW1lcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdWRpb0NvbnN1
bWVyc0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsK
ICAgICBzaXplX3QgcG9zID0gbV9hdWRpb0NvbnN1bWVycy5maW5kKGNvbnN1bWVyKTsKICAgICBp
ZiAocG9zICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIG1fYXVkaW9Db25zdW1lcnMucmVtb3ZlKHBv
cyk7CkBAIC04MCwxNCArODAsMTQgQEAgYm9vbCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpyZW1v
dmVBdWRpbwogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnNldEF1ZGlvRm9ybWF0KHNp
emVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9hdWRpb0NvbnN1bWVyc0xvY2spOwogICAgIGZvciAoYXV0byYgY29uc3VtZXIgOiBtX2F1ZGlv
Q29uc3VtZXJzKQogICAgICAgICBjb25zdW1lci0+c2V0Rm9ybWF0KG51bWJlck9mQ2hhbm5lbHMs
IHNhbXBsZVJhdGUpOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVB
dWRpbyhBdWRpb0J1cyogYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CiAgICAgZm9yIChhdXRvJiBjb25zdW1lciA6IG1fYXVk
aW9Db25zdW1lcnMpCiAgICAgICAgIGNvbnN1bWVyLT5jb25zdW1lQXVkaW8oYnVzLCBudW1iZXJP
ZkZyYW1lcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvRGVzdGlu
YXRpb25Db25zdW1lci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02
NSw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpOwogCiAg
ICAgU3RyaW5nIG1fZGV2aWNlSWQ7Ci0gICAgTXV0ZXggbV9hdWRpb0NvbnN1bWVyc0xvY2s7Cisg
ICAgTG9jayBtX2F1ZGlvQ29uc3VtZXJzTG9jazsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvRGVz
dGluYXRpb25Db25zdW1lcj4+IG1fYXVkaW9Db25zdW1lcnM7CiAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlcyBtX2N1cnJlbnRTdGF0ZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysr
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xvc2UoKQogICAgIEFT
U0VSVChjdXJyZW50VGhyZWFkKCkgPT0gZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFk
KCktPmdldFRocmVhZElEKCkpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOwogCiAgICAgICAgIC8vIENsZWFuIHVwIHRy
YW5zYWN0aW9ucyB0aGF0IGhhdmUgbm90IGJlZW4gc2NoZWR1bGVkIHlldDoKICAgICAgICAgLy8g
VHJhbnNhY3Rpb24gcGhhc2UgMSBjbGVhbnVwLiBTZWUgY29tbWVudCBvbiAiV2hhdCBoYXBwZW5z
IGlmIGEKQEAgLTM1Myw3ICszNTMsNyBAQCBib29sIERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZl
cmlmeShib29sCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHsKICAgICAgICAgLy8gTWFrZSBzdXJl
IHdlIHdhaXQgdGlsbCB0aGUgYmFja2dyb3VuZCByZW1vdmFsIG9mIHRoZSBlbXB0eSBkYXRhYmFz
ZSBmaWxlcyBmaW5pc2hlZCBiZWZvcmUgdHJ5aW5nIHRvIG9wZW4gYW55IGRhdGFiYXNlLgotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIoRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRl
eCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0
YWJhc2VNdXRleCgpKTsKICAgICB9CiAjZW5kaWYKIApAQCAtNTY1LDcgKzU2NSw3IEBAIHZvaWQg
RGF0YWJhc2U6OnNjaGVkdWxlVHJhbnNhY3Rpb24oKQogCiBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0
aW9uQmFja2VuZD4gRGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FMVHJhbnNh
Y3Rpb24+IHRyYW5zYWN0aW9uLCBib29sIHJlYWRPbmx5LCBjb25zdCBDaGFuZ2VWZXJzaW9uRGF0
YSogZGF0YSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jl
c3NNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NN
dXRleCk7CiAgICAgaWYgKCFtX2lzVHJhbnNhY3Rpb25RdWV1ZUVuYWJsZWQpCiAgICAgICAgIHJl
dHVybiAwOwogCkBAIC01OTMsMTQgKzU5MywxNCBAQCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRy
YW5zYWN0aW9uU3RlcChTCiAKIHZvaWQgRGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNv
bXBsZXRlZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dy
ZXNzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dyZXNz
TXV0ZXgpOwogICAgIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzID0gZmFsc2U7CiAgICAgc2NoZWR1
bGVUcmFuc2FjdGlvbigpOwogfQogCiBib29sIERhdGFiYXNlOjpoYXNQZW5kaW5nVHJhbnNhY3Rp
b24oKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4
KTsKICAgICByZXR1cm4gbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3MgfHwgIW1fdHJhbnNhY3Rpb25R
dWV1ZS5pc0VtcHR5KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlRXJyb3IuaCIK
ICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2Miw3ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxEYXRhYmFzZUF1dGhvcml6ZXI+IG1fZGF0YWJhc2VBdXRob3JpemVyOwogCiAgICAgRGVxdWU8
UmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4+IG1fdHJhbnNhY3Rpb25RdWV1ZTsKLSAgICBN
dXRleCBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4OworICAgIExvY2sgbV90cmFuc2FjdGlv
bkluUHJvZ3Jlc3NNdXRleDsKICAgICBib29sIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzOwogICAg
IGJvb2wgbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFibGVkOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VGFzay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUzLDcgKzUz
LDcgQEAgdm9pZCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6OnRhc2tDb21wbAogewogICAgIG1f
c3luY2hyb25vdXNNdXRleC5sb2NrKCk7CiAgICAgbV90YXNrQ29tcGxldGVkID0gdHJ1ZTsKLSAg
ICBtX3N5bmNocm9ub3VzQ29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1fc3luY2hyb25vdXNDb25k
aXRpb24ubm90aWZ5T25lKCk7CiAgICAgbV9zeW5jaHJvbm91c011dGV4LnVubG9jaygpOwogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUYXNrLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMxLDggKzMxLDkgQEAKICNpbmNsdWRlICJEYXRhYmFzZUJhc2ljVHlwZXMuaCIKICNp
bmNsdWRlICJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25CYWNrZW5k
LmgiCisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC01OCw4ICs1OSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBib29sIG1fdGFza0Nv
bXBsZXRlZDsKLSAgICBNdXRleCBtX3N5bmNocm9ub3VzTXV0ZXg7Ci0gICAgVGhyZWFkQ29uZGl0
aW9uIG1fc3luY2hyb25vdXNDb25kaXRpb247CisgICAgTG9jayBtX3N5bmNocm9ub3VzTXV0ZXg7
CisgICAgQ29uZGl0aW9uIG1fc3luY2hyb25vdXNDb25kaXRpb247CiAjaWZuZGVmIE5ERUJVRwog
ICAgIGJvb2wgbV9oYXNDaGVja2VkRm9yVGVybWluYXRpb247CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBE
YXRhYmFzZVRocmVhZDo6fkRhdGFiYXNlVGhyZWFkKCkKIAogYm9vbCBEYXRhYmFzZVRocmVhZDo6
c3RhcnQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKIAogICAgIGlmICht
X3RocmVhZElEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lk
IERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZCgpCiB7CiAgICAgewogICAgICAgICAvLyBX
YWl0IGZvciBEYXRhYmFzZVRocmVhZDo6c3RhcnQoKSB0byBjb21wbGV0ZS4KLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJT
dGFydGVkIERhdGFiYXNlVGhyZWFkICVwIiwgdGhpcyk7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCShy
ZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgdm9pZCBkYXRhYmFzZVRocmVhZFN0YXJ0KHZvaWQqKTsKICAgICB2b2lkIGRh
dGFiYXNlVGhyZWFkKCk7CiAKLSAgICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CisgICAg
TG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVh
ZElEOwogICAgIFJlZlB0cjxEYXRhYmFzZVRocmVhZD4gbV9zZWxmUmVmOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNr
ZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcg
QEAgRGF0YWJhc2VUcmFja2VyOjpEYXRhYmFzZVRyYWNrZXIoY29uc3QgUwogCiB2b2lkIERhdGFi
YXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIEFTU0VSVCghbV9k
YXRhYmFzZS5pc09wZW4oKSk7CiAgICAgbV9kYXRhYmFzZURpcmVjdG9yeVBhdGggPSBwYXRoLmlz
b2xhdGVkQ29weSgpOwogfQpAQCAtMTY2LDcgKzE2Niw3IEBAIGJvb2wgRGF0YWJhc2VUcmFja2Vy
OjpjYW5Fc3RhYmxpc2hEYXRhYmEKIHsKICAgICBlcnJvciA9IERhdGFiYXNlRXJyb3I6Ok5vbmU7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIFNlY3VyaXR5T3Jp
Z2luKiBvcmlnaW4gPSBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpOwogCiAgICAgaWYgKGlzRGVs
ZXRpbmdEYXRhYmFzZU9yT3JpZ2luRm9yKG9yaWdpbiwgbmFtZSkpIHsKQEAgLTIxOCw3ICsyMTgs
NyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6cmV0cnlDYW5Fc3RhYmxpc2hECiB7CiAgICAgZXJy
b3IgPSBEYXRhYmFzZUVycm9yOjpOb25lOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNl
KG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFz
ZUd1YXJkKTsKICAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gY29udGV4dC0+c2VjdXJpdHlP
cmlnaW4oKTsKIAogICAgIC8vIFdlIGhhdmUgYWxyZWFkeSBlbGltaW5hdGVkIG90aGVyIHR5cGVz
IG9mIGVycm9ycyBpbiBjYW5Fc3RhYmxpc2hEYXRhYmFzZSgpLgpAQCAtMjU3LDcgKzI1Nyw3IEBA
IGJvb2wgRGF0YWJhc2VUcmFja2VyOjpoYXNFbnRyeUZvck9yaWdpbk4KIAogYm9vbCBEYXRhYmFz
ZVRyYWNrZXI6Omhhc0VudHJ5Rm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hv
bGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICByZXR1cm4gaGFzRW50cnlG
b3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKIH0KIApAQCAtMjg2LDcgKzI4Niw3IEBAIHVuc2lnbmVk
IGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OmdldE0KIHsKICAgICAvLyBUaGUgbWF4aW11bSBz
aXplIGZvciBhIGRhdGFiYXNlIGlzIHRoZSBmdWxsIHF1b3RhIGZvciBpdHMgb3JpZ2luLCBtaW51
cyB0aGUgY3VycmVudCB1c2FnZSB3aXRoaW4gdGhlIG9yaWdpbiwKICAgICAvLyBwbHVzIHRoZSBj
dXJyZW50IHVzYWdlIG9mIHRoZSBnaXZlbiBkYXRhYmFzZQotICAgIE11dGV4TG9ja2VyIGxvY2tE
YXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1f
ZGF0YWJhc2VHdWFyZCk7CiAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGRhdGFiYXNlLT5z
ZWN1cml0eU9yaWdpbigpOwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhID0gcXVvdGFG
b3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKQEAgLTMxMSw3ICszMTEsNyBAQCB2b2lkIERhdGFiYXNl
VHJhY2tlcjo6Y2xvc2VBbGxEYXRhYmFzZXMoCiB7CiAgICAgVmVjdG9yPFJlZjxEYXRhYmFzZT4+
IG9wZW5EYXRhYmFzZXM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBvcGVuRGF0YWJhc2VN
YXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAgICBMb2NrSG9sZGVyIG9wZW5E
YXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CiAgICAgICAgIGlmICghbV9v
cGVuRGF0YWJhc2VNYXApCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGZvciAoYXV0byYg
bmFtZU1hcCA6IG1fb3BlbkRhdGFiYXNlTWFwLT52YWx1ZXMoKSkgewpAQCAtMzg5LDEzICszODks
MTMgQEAgU3RyaW5nIERhdGFiYXNlVHJhY2tlcjo6ZnVsbFBhdGhGb3JEYXRhYgogCiBTdHJpbmcg
RGF0YWJhc2VUcmFja2VyOjpmdWxsUGF0aEZvckRhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5vdEV4aXN0cykKIHsKLSAgICBN
dXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIHJldHVybiBmdWxsUGF0aEZvckRh
dGFiYXNlTm9Mb2NrKG9yaWdpbiwgbmFtZSwgY3JlYXRlSWZOb3RFeGlzdHMpLmlzb2xhdGVkQ29w
eSgpOwogfQogCiB2b2lkIERhdGFiYXNlVHJhY2tlcjo6b3JpZ2lucyhWZWN0b3I8UmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPj4mIG9yaWdpbnNSZXN1bHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0Rh
dGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKIAogICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9l
c05vdEV4aXN0KTsKICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCkBAIC00NDgsNyArNDQ4
LDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRhdGFiYXNlTmFtZXNGb3JPcgogewogICAgIFZl
Y3RvcjxTdHJpbmc+IHRlbXA7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJh
c2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKICAgICAgICAgaWYgKCFkYXRhYmFzZU5hbWVzRm9yT3JpZ2luTm9Mb2Nr
KG9yaWdpbiwgdGVtcCkpCiAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTQ2NSw3
ICs0NjUsNyBAQCBEYXRhYmFzZURldGFpbHMgRGF0YWJhc2VUcmFja2VyOjpkZXRhaWxzCiAgICAg
aW50NjRfdCBleHBlY3RlZFVzYWdlOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
RGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJh
c2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRD
cmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkK
QEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEZXRh
aWxzCiAgICAgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIgPSBvcmlnaW4tPmRhdGFiYXNlSWRlbnRp
ZmllcigpOwogICAgIGludDY0X3QgZ3VpZCA9IDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0
YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2Rh
dGFiYXNlR3VhcmQpOwogCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShDcmVhdGVJZkRvZXNOb3RF
eGlzdCk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNTQ5LDcgKzU0OSw3IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXREYXRhYmFzZURldGFpbHMKIAogdm9pZCBEYXRhYmFz
ZVRyYWNrZXI6OmRvbmVDcmVhdGluZ0RhdGFiYXNlKERhdGFiYXNlKiBkYXRhYmFzZSkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIGRvbmVDcmVhdGluZ0RhdGFi
YXNlKGRhdGFiYXNlLT5zZWN1cml0eU9yaWdpbigpLCBkYXRhYmFzZS0+c3RyaW5nSWRlbnRpZmll
cigpKTsKIH0KIApAQCAtNTU5LDcgKzU1OSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjphZGRP
cGVuRGF0YWJhc2UoRGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAg
ICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7
CiAKICAgICAgICAgaWYgKCFtX29wZW5EYXRhYmFzZU1hcCkKICAgICAgICAgICAgIG1fb3BlbkRh
dGFiYXNlTWFwID0gc3RkOjptYWtlX3VuaXF1ZTxEYXRhYmFzZU9yaWdpbk1hcD4oKTsKQEAgLTU4
OSw3ICs1ODksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlT3BlbkRhdGFiYXNlCiAg
ICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNl
TWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVu
RGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogCiAgICAgICAgIGlmICgh
bV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtNjI5LDcgKzYyOSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVPcGVuRGF0YWJh
c2UKIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6OmdldE9wZW5EYXRhYmFzZXMoU2VjdXJpdHlPcmln
aW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBIYXNoU2V0PFJlZlB0cjxEYXRhYmFzZT4+
KiBkYXRhYmFzZXMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29w
ZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2so
bV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CiAgICAgaWYgKCFtX29wZW5EYXRhYmFzZU1hcCkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC02NDcsNyArNjQ3LDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6
OmdldE9wZW5EYXRhYmFzZXMoUwogCiBSZWZQdHI8T3JpZ2luTG9jaz4gRGF0YWJhc2VUcmFja2Vy
OjpvcmlnaW5Mb2NrRm9yKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0
YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICBTdHJpbmcgZGF0YWJhc2VJZGVudGlmaWVyID0g
b3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKTsKIAogICAgIC8vIFRoZSBvcmlnaW5Mb2NrTWFw
IGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgRGF0YWJhc2VUaHJlYWRzIHNpbmNlCkBAIC03Mjcs
MTMgKzcyNywxMyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFja2VyOjpxdW90CiAK
IHVuc2lnbmVkIGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OnF1b3RhRm9yT3JpZ2luKFNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0
YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJk
KTsKICAgICByZXR1cm4gcXVvdGFGb3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKIH0KIAogdm9pZCBE
YXRhYmFzZVRyYWNrZXI6OnNldFF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIHVuc2lnbmVk
IGxvbmcgbG9uZyBxdW90YSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OwogCiAgICAgaWYgKHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbikgPT0gcXVvdGEpCiAgICAg
ICAgIHJldHVybjsKQEAgLTg2NCw3ICs4NjQsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVs
ZXRlT3JpZ2luKFNlY3VyCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gZGF0YWJhc2VOYW1lczsKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgICAg
ICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgICAg
IGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTg5MCw3ICs4OTAsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKFNlY3Vy
CiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1
YXJkKTsKICAgICAgICAgZGVsZXRlT3JpZ2luTG9ja0ZvcihvcmlnaW4pOwogICAgICAgICBkb25l
RGVsZXRpbmdPcmlnaW4ob3JpZ2luKTsKIApAQCAtMTA3MSw3ICsxMDcxLDcgQEAgdm9pZCBEYXRh
YmFzZVRyYWNrZXI6OmRvbmVEZWxldGluZ09yaWdpbgogYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRl
bGV0ZURhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSkK
IHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3Vh
cmQpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwog
ICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAg
ICAgICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEwODYsMTIgKzEwODYsMTIgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURh
dGFiYXNlKFNlYwogICAgIC8vIFdlIGRyb3AgdGhlIGxvY2sgaGVyZSBiZWNhdXNlIGhvbGRpbmcg
bG9ja3MgZHVyaW5nIGEgY2FsbCB0byBkZWxldGVEYXRhYmFzZUZpbGUgd2lsbCBkZWFkbG9jay4K
ICAgICBpZiAoIWRlbGV0ZURhdGFiYXNlRmlsZShvcmlnaW4sIG5hbWUpKSB7CiAgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIGRlbGV0ZSBmaWxlIGZvciBkYXRhYmFzZSAlcyBpbiBvcmlnaW4g
JXMiLCBuYW1lLmFzY2lpKCkuZGF0YSgpLCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpLmFz
Y2lpKCkuZGF0YSgpKTsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJh
c2VHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFy
ZCk7CiAgICAgICAgIGRvbmVEZWxldGluZ0RhdGFiYXNlKG9yaWdpbiwgbmFtZSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3Vh
cmQpOwogCiAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiREVMRVRF
IEZST00gRGF0YWJhc2VzIFdIRVJFIG9yaWdpbj0/IEFORCBuYW1lPT8iKTsKICAgICBpZiAoc3Rh
dGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsKQEAgLTExMzEsNyArMTEzMSw3IEBAIGJv
b2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGUKIAogI2lmbmRlZiBOREVCVUcK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAg
ICAgICBBU1NFUlQoaXNEZWxldGluZ0RhdGFiYXNlT3JPcmlnaW5Gb3Iob3JpZ2luLCBuYW1lKSk7
CiAgICAgfQogI2VuZGlmCkBAIC0xMTQyLDcgKzExNDIsNyBAQCBib29sIERhdGFiYXNlVHJhY2tl
cjo6ZGVsZXRlRGF0YWJhc2VGaWxlCiAgICAgLy8gRGF0YWJhc2U6Om1hcmtBc0RlbGV0ZWRBbmRD
bG9zZSgpLCBzaW5jZSB0aGF0IGNhbiBjYXVzZSBhIGRlYWRsb2NrCiAgICAgLy8gZHVyaW5nIHRo
ZSBzeW5jaHJvbm91cyBEYXRhYmFzZVRocmVhZCBjYWxsIGl0IHRyaWdnZXJzLgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1
YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFi
YXNlTWFwR3VhcmQpOwogICAgICAgICBpZiAobV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAg
ICAgIC8vIFRoZXJlIGFyZSBzb21lIG9wZW4gZGF0YWJhc2VzLCBsZXRzIGNoZWNrIGlmIHRoZXkg
YXJlIGZvciB0aGlzIG9yaWdpbi4KICAgICAgICAgICAgIERhdGFiYXNlTmFtZU1hcCogbmFtZU1h
cCA9IG1fb3BlbkRhdGFiYXNlTWFwLT5nZXQob3JpZ2luKTsKQEAgLTExODUsNyArMTE4NSw3IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVEZWxldGVkT3BlbmUKICAgICAKICAgICB7CiAg
ICAgICAgIC8vIEFjcXVpcmUgdGhlIGxvY2sgYmVmb3JlIGNhbGxpbmcgb3BlblRyYWNrZXJEYXRh
YmFzZS4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAg
ICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9lc05vdEV4aXN0KTsKICAgICB9
CiAKQEAgLTEyMDEsNyArMTIwMSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVEZWxl
dGVkT3BlbmUKICAgICAvLyBEYXRhYmFzZTo6bWFya0FzRGVsZXRlZEFuZENsb3NlKCksIHNpbmNl
IHRoYXQgY2FuIGNhdXNlIGEgZGVhZGxvY2sKICAgICAvLyBkdXJpbmcgdGhlIHN5bmNocm9ub3Vz
IERhdGFiYXNlVGhyZWFkIGNhbGwgaXQgdHJpZ2dlcnMuCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAg
ICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7
CiAgICAgICAgIGlmIChtX29wZW5EYXRhYmFzZU1hcCkgewogICAgICAgICAgICAgZm9yIChhdXRv
JiBvcGVuRGF0YWJhc2UgOiAqbV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAgICAgICAgICBh
dXRvJiBvcmlnaW4gPSBvcGVuRGF0YWJhc2Uua2V5OwpAQCAtMTMwNSw5ICsxMzA1LDkgQEAgYm9v
bCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZQogICAgIHJldHVybiBTUUxpdGVG
aWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiB9CiAKLU11dGV4JiBEYXRhYmFz
ZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKK0xvY2smIERhdGFiYXNlVHJhY2tlcjo6b3Bl
bkRhdGFiYXNlTXV0ZXgoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0
ZXg7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4OwogICAgIHJldHVybiBt
dXRleDsKIH0KIApAQCAtMTMzMCw5ICsxMzMwLDkgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnNl
dENsaWVudChEYXRhYmFzZQogICAgIG1fY2xpZW50ID0gY2xpZW50OwogfQogCi1zdGF0aWMgTXV0
ZXgmIG5vdGlmaWNhdGlvbk11dGV4KCkKK3N0YXRpYyBMb2NrJiBub3RpZmljYXRpb25NdXRleCgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBtdXRleDsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0x
MzQ2LDcgKzEzNDYsNyBAQCBzdGF0aWMgTm90aWZpY2F0aW9uUXVldWUmIG5vdGlmaWNhdGlvblF1
CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZChT
ZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG5vdGlmaWNhdGlvbk11dGV4KCkpOwogCiAgICAgbm90aWZpY2F0aW9uUXVldWUoKS5hcHBlbmQo
c3RkOjpwYWlyPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFN0cmluZz4ob3JpZ2luLT5pc29sYXRl
ZENvcHkoKSwgbmFtZS5pc29sYXRlZENvcHkoKSkpOwogICAgIHNjaGVkdWxlRm9yTm90aWZpY2F0
aW9uKCk7CkBAIC0xMzcyLDcgKzEzNzIsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6bm90aWZ5
RGF0YWJhc2VzQ2hhCiAKICAgICBOb3RpZmljYXRpb25RdWV1ZSBub3RpZmljYXRpb25zOwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKIAogICAgICAgICBu
b3RpZmljYXRpb25zLnN3YXAobm90aWZpY2F0aW9uUXVldWUoKSk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaAko
cmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1Ymxp
YzoKICAgICAvLyBNb2JpbGVTYWZhcmkgd2lsbCBncmFiIHRoaXMgbXV0ZXggb24gdGhlIG1haW4g
dGhyZWFkIGJlZm9yZSBkaXNwYXRjaGluZyB0aGUgdGFzayB0byAKICAgICAvLyBjbGVhbiB1cCB6
ZXJvIGJ5dGUgZGF0YWJhc2UgZmlsZXMuICBBbnkgb3BlcmF0aW9ucyB0byBvcGVuIG5ldyBkYXRh
YmFzZSB3aWxsIGhhdmUgdG8KICAgICAvLyB3YWl0IGZvciB0aGF0IHRhc2sgdG8gZmluaXNoIGJ5
IHdhaXRpbmcgb24gdGhpcyBtdXRleC4KLSAgICBzdGF0aWMgTXV0ZXgmIG9wZW5EYXRhYmFzZU11
dGV4KCk7CisgICAgc3RhdGljIExvY2smIG9wZW5EYXRhYmFzZU11dGV4KCk7CiAgICAgCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tX
aWxsQmVTY2hlZHVsZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURh
dGFiYXNlRmlsZXNSZW1vdmFsVGFza0RpZEZpbmlzaCgpOwpAQCAtMTUwLDExICsxNTAsMTEgQEAg
cHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBEYXRhYmFzZVNldCo+IERhdGFi
YXNlTmFtZU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwg
RGF0YWJhc2VOYW1lTWFwKj4gRGF0YWJhc2VPcmlnaW5NYXA7CiAKLSAgICBNdXRleCBtX29wZW5E
YXRhYmFzZU1hcEd1YXJkOworICAgIExvY2sgbV9vcGVuRGF0YWJhc2VNYXBHdWFyZDsKICAgICBt
dXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZU9yaWdpbk1hcD4gbV9vcGVuRGF0YWJhc2VN
YXA7CiAKICAgICAvLyBUaGlzIGxvY2sgcHJvdGVjdHMgbV9kYXRhYmFzZSwgbV9vcmlnaW5Mb2Nr
TWFwLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgbV9vcmlnaW5zQmVpbmdEZWxldGVkLCBtX2Jl
aW5nQ3JlYXRlZCwgYW5kIG1fYmVpbmdEZWxldGVkLgotICAgIE11dGV4IG1fZGF0YWJhc2VHdWFy
ZDsKKyAgICBMb2NrIG1fZGF0YWJhc2VHdWFyZDsKICAgICBTUUxpdGVEYXRhYmFzZSBtX2RhdGFi
YXNlOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE9yaWdpbkxvY2s+PiBP
cmlnaW5Mb2NrTWFwOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9P
cmlnaW5Mb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsy
Nyw4IEBACiAjZGVmaW5lIE9yaWdpbkxvY2tfaAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgor
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsNyArNDgsNyBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyBTdHJpbmcgbG9ja0ZpbGVOYW1lRm9yUGF0aChTdHJpbmcg
b3JpZ2luUGF0aCk7CiAKICAgICBTdHJpbmcgbV9sb2NrRmlsZU5hbWU7Ci0gICAgTXV0ZXggbV9t
dXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAjaWYgVVNFKEZJTEVfTE9DSykKICAgICBQbGF0Zm9y
bUZpbGVIYW5kbGUgbV9sb2NrSGFuZGxlOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmgJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
Q2FsbGJhY2tXcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNkZWZp
bmUgU1FMQ2FsbGJhY2tXcmFwcGVyX2gKIAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTgsNyArNTgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRQdHI7CiAgICAgICAgIFQqIGNhbGxiYWNrOwogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X211dGV4KTsKICAgICAgICAgICAgIGlmICghbV9jYWxsYmFjaykgewogICAgICAgICAgICAgICAg
IEFTU0VSVCghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICAgICAgICAgICAgICByZXR1
cm47CkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8VD4gdW53cmFw
KCkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgICAgIEFTU0VSVCghbV9jYWxsYmFjayB8
fCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKICAgICAgICAg
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIG1fY2Fs
bGJhY2sucmVsZWFzZSgpOwpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXND
YWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KIAogcHJpdmF0ZToKLSAgICBN
dXRleCBtX211dGV4OworICAgIExvY2sgbV9tdXRleDsKICAgICBSZWZQdHI8VD4gbV9jYWxsYmFj
azsKICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25CYWNrZW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25C
YWNrZW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQgU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXAoKQogCiAgICAgcmVsZWFzZU9yaWdpbkxvY2tJZk5l
ZWRlZCgpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOwogICAgIG1fc3RhdGVtZW50UXVl
dWUuY2xlYXIoKTsKIAogICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uKSB7CkBAIC00NjUsNyAr
NDY1LDcgQEAgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpTdGF0ZUZ1bmN0aW9uIFNRTAogCiB2b2lk
IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZW5xdWV1ZVN0YXRlbWVudEJhY2tlbmQoc3RkOjp1bmlx
dWVfcHRyPFNRTFN0YXRlbWVudD4gc3RhdGVtZW50QmFja2VuZCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9zdGF0ZW1lbnRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zdGF0
ZW1lbnRNdXRleCk7CiAgICAgbV9zdGF0ZW1lbnRRdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKHN0YXRl
bWVudEJhY2tlbmQpKTsKIH0KIApAQCAtNjgxLDcgKzY4MSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rp
b25CYWNrZW5kOjpnZXROZXh0U3RhdGUKIHsKICAgICBtX2N1cnJlbnRTdGF0ZW1lbnRCYWNrZW5k
ID0gbnVsbHB0cjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsKICAgICBpZiAoIW1fc3Rh
dGVtZW50UXVldWUuaXNFbXB0eSgpKQogICAgICAgICBtX2N1cnJlbnRTdGF0ZW1lbnRCYWNrZW5k
ID0gbV9zdGF0ZW1lbnRRdWV1ZS50YWtlRmlyc3QoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tl
bmQuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDEzLCAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRp
dmVzLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3JlYWRPbmx5OwogICAgIGJvb2wgbV9oYXNWZXJzaW9uTWlzbWF0Y2g7CiAK
LSAgICBNdXRleCBtX3N0YXRlbWVudE11dGV4OworICAgIExvY2sgbV9zdGF0ZW1lbnRNdXRleDsK
ICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8U1FMU3RhdGVtZW50Pj4gbV9zdGF0ZW1lbnRRdWV1
ZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTUUxpdGVUcmFuc2FjdGlvbj4gbV9zcWxpdGVUcmFu
c2FjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1
bGVFeGUKICAgICAvLyBUaGUgbXV0ZXggcHJvdmlkZXMgYSBtZW1vcnkgYmFycmllciB0byBlbnN1
cmUgdGhhdCBvbmNlCiAgICAgLy8gdGVybWluYXRpb24gaXMgc2NoZWR1bGVkLCBpc0V4ZWN1dGlv
blRlcm1pbmF0aW5nIHdpbGwKICAgICAvLyBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhhdCBzdGF0ZSB3
aGVuIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkLgotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2No
ZWR1bGVkVGVybWluYXRpb25NdXRleCk7CiAgICAgaWYgKG1fdm0tPndhdGNoZG9nKQogICAgICAg
ICBtX3ZtLT53YXRjaGRvZy0+ZmlyZSgpOwogfQpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgV29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVFeGUKIGJvb2wgV29ya2VyU2NyaXB0Q29udHJv
bGxlcjo6aXNFeGVjdXRpb25UZXJtaW5hdGluZygpIGNvbnN0CiB7CiAgICAgLy8gU2VlIGNvbW1l
bnRzIGluIHNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24gcmVnYXJkaW5nIG11dGV4IHVzYWdl
LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRleCk7CiAgICAg
aWYgKG1fdm0tPndhdGNoZG9nKQogICAgICAgICByZXR1cm4gbV92bS0+d2F0Y2hkb2ctPmRpZEZp
cmUoKTsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCShyZXZpc2lvbiAxODg1NjkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
NSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMx
LDggKzMxLDggQEAKICNpbmNsdWRlIDxkZWJ1Z2dlci9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGhl
YXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9OYWtlZFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KIAogbmFtZXNwYWNlIERlcHJlY2F0ZWQgewogY2xhc3MgU2NyaXB0VmFsdWU7CkBAIC05Nyw3
ICs5Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUq
IG1fd29ya2VyR2xvYmFsU2NvcGU7CiAgICAgICAgIEpTQzo6U3Ryb25nPEpTV29ya2VyR2xvYmFs
U2NvcGU+IG1fd29ya2VyR2xvYmFsU2NvcGVXcmFwcGVyOwogICAgICAgICBib29sIG1fZXhlY3V0
aW9uRm9yYmlkZGVuOwotICAgICAgICBtdXRhYmxlIE11dGV4IG1fc2NoZWR1bGVkVGVybWluYXRp
b25NdXRleDsKKyAgICAgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRl
eDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDcgKzg4LDcg
QEAgdm9pZCBNZXNzYWdlUG9ydENoYW5uZWw6OmRpc2VudGFuZ2xlKCkKIAogdm9pZCBNZXNzYWdl
UG9ydENoYW5uZWw6OnBvc3RNZXNzYWdlVG9SZW1vdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eT4gY2hhbm5lbHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIGlmICghbV9j
aGFubmVsLT5tX291dGdvaW5nUXVldWUpCiAgICAgICAgIHJldHVybjsKICAgICBib29sIHdhc0Vt
cHR5ID0gbV9jaGFubmVsLT5tX291dGdvaW5nUXVldWUtPmFwcGVuZEFuZENoZWNrRW1wdHkoc3Rk
OjptYWtlX3VuaXF1ZTxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhPihtZXNz
YWdlLCBXVEY6Om1vdmUoY2hhbm5lbHMpKSk7CkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgTWVzc2Fn
ZVBvcnRDaGFubmVsOjpwb3N0TWVzc2FnZVRvUmUKIAogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6
OnRyeUdldE1lc3NhZ2VGcm9tUmVtb3RlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiBt
ZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiBjaGFubmVs
cykKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CiAgICAgYXV0byByZXN1bHQgPSBtX2No
YW5uZWwtPm1faW5jb21pbmdRdWV1ZS0+dHJ5R2V0TWVzc2FnZSgpOwogICAgIGlmICghcmVzdWx0
KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMjEsMjAgKzEyMSwyMCBAQCB2b2lkIE1lc3Nh
Z2VQb3J0Q2hhbm5lbDo6Y2xvc2UoKQogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6OmlzQ29ubmVj
dGVkVG8oTWVzc2FnZVBvcnQqIHBvcnQpCiB7CiAgICAgLy8gRklYTUU6IFdoYXQgZ3VhcmFudGVl
cyB0aGF0IHRoZSByZXN1bHQgcmVtYWlucyB0aGUgc2FtZSBhZnRlciB3ZSByZWxlYXNlIHRoZSBs
b2NrPwotICAgIE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICByZXR1cm4gbV9jaGFubmVsLT5t
X3JlbW90ZVBvcnQgPT0gcG9ydDsKIH0KIAogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6Omhhc1Bl
bmRpbmdBY3Rpdml0eSgpCiB7CiAgICAgLy8gRklYTUU6IFdoYXQgZ3VhcmFudGVlcyB0aGF0IHRo
ZSByZXN1bHQgcmVtYWlucyB0aGUgc2FtZSBhZnRlciB3ZSByZWxlYXNlIHRoZSBsb2NrPwotICAg
IE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICByZXR1cm4gIW1fY2hhbm5lbC0+bV9pbmNvbWlu
Z1F1ZXVlLT5pc0VtcHR5KCk7CiB9CiAKIE1lc3NhZ2VQb3J0KiBNZXNzYWdlUG9ydENoYW5uZWw6
OmxvY2FsbHlFbnRhbmdsZWRQb3J0KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIC8vIFNlZSBpZiBib3RoIGNv
bnRleHRzIGFyZSBydW4gYnkgdGhlIHNhbWUgdGhyZWFkIChhcmUgdGhlIHNhbWUgY29udGV4dCwg
b3IgYXJlIGJvdGggZG9jdW1lbnRzKS4KICAgICBpZiAobV9jaGFubmVsLT5tX3JlbW90ZVBvcnQp
IHsKICAgICAgICAgLy8gVGhlIHJlbW90ZSBwb3J0J3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBp
cyBndWFyYW50ZWVkIG5vdCB0byBjaGFuZ2UgaGVyZSAtIE1lc3NhZ2VQb3J0Ojpjb250ZXh0RGVz
dHJveWVkKCkKQEAgLTE2NCw3ICsxNjQsNyBAQCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6
flBsYXRmb3JtTWVzCiAKIHZvaWQgUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OnNldFJlbW90
ZVBvcnQoTWVzc2FnZVBvcnQqIHBvcnQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgLy8gU2hvdWxkIG5ldmVyIHNl
dCBwb3J0IGlmIGl0IGlzIGFscmVhZHkgc2V0LgogICAgIEFTU0VSVCghcG9ydCB8fCAhbV9yZW1v
dGVQb3J0KTsKICAgICBtX3JlbW90ZVBvcnQgPSBwb3J0OwpAQCAtMTc1LDEzICsxNzUsMTMgQEAg
UGFzc1JlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gUAogICAgIC8vIEZJWE1FOiBX
aGF0IGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVzdWx0IHJlbWFpbnMgdGhlIHNhbWUgYWZ0ZXIgd2Ug
cmVsZWFzZSB0aGUgbG9jaz8KICAgICAvLyBUaGlzIGxvY2sgb25seSBndWFyYW50ZWVzIHRoYXQg
dGhlIHJldHVybmVkIHBvaW50ZXIgd2lsbCBub3QgYmUgcG9pbnRpbmcgdG8gcmVsZWFzZWQgbWVt
b3J5LAogICAgIC8vIGJ1dCBub3QgdGhhdCBpdCB3aWxsIHN0aWxsIGJlIHBvaW50aW5nIHRvIHRo
aXMgb2JqZWN0J3MgZW50YW5nbGVkIHBvcnQgY2hhbm5lbC4KLSAgICBNdXRleExvY2tlciBsb2Nr
KG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICByZXR1cm4gbV9l
bnRhbmdsZWRDaGFubmVsOwogfQogCiB2b2lkIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpj
bG9zZUludGVybmFsKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJv
bSB0aGUgb3RoZXIgZW5kLiBXZSBzdGlsbCBtYWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5j
b21pbmcgcXVldWUsIHNpbmNlIHByZXZpb3VzbHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0
aWxsIGJlIGRlbGl2ZXJlZC4KICAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOwogICAgIG1fZW50
YW5nbGVkQ2hhbm5lbCA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVs
dC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDggKzk1LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIHNldFJlbW90ZVBvcnQoTWVzc2FnZVBvcnQqKTsKICAgICAgICAg
dm9pZCBjbG9zZUludGVybmFsKCk7CiAKLSAgICAgICAgLy8gTXV0ZXggdXNlZCB0byBlbnN1cmUg
ZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgb2JqZWN0IGludGVybmFscy4KLSAgICAgICAgTXV0ZXgg
bV9tdXRleDsKKyAgICAgICAgLy8gTG9jayB1c2VkIHRvIGVuc3VyZSBleGNsdXNpdmUgYWNjZXNz
IHRvIHRoZSBvYmplY3QgaW50ZXJuYWxzLgorICAgICAgICBMb2NrIG1fbXV0ZXg7CiAKICAgICAg
ICAgLy8gUG9pbnRlciB0byBvdXIgZW50YW5nbGVkIHBhaXIgLSBjbGVhcmVkIHdoZW4gY2xvc2Uo
KSBpcyBjYWxsZWQuCiAgICAgICAgIFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4g
bV9lbnRhbmdsZWRDaGFubmVsOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODYsNyArMTg2LDcg
QEAgdm9pZCBJY29uRGF0YWJhc2U6OnJlbW92ZUFsbEljb25zKCkKICAgICAKICAgICAvLyBDbGVh
ciB0aGUgaW4tbWVtb3J5IHJlY29yZCBvZiBldmVyeSBJY29uUmVjb3JkLCBhbnl0aGluZyB3YWl0
aW5nIHRvIGJlIHJlYWQgZnJvbSBkaXNrLCBhbmQgYW55dGhpbmcgd2FpdGluZyB0byBiZSB3cml0
dGVuIHRvIGRpc2sKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAg
ICAgICAgIAogICAgICAgICAvLyBDbGVhciB0aGUgSWNvblJlY29yZHMgZm9yIGV2ZXJ5IHBhZ2Ug
VVJMIC0gUmVmQ291bnRpbmcgd2lsbCBjYXVzZSB0aGUgSWNvblJlY29yZHMgdGhlbXNlbHZlcyB0
byBiZSBkZWxldGVkCiAgICAgICAgIC8vIFdlIGRvbid0IGRlbGV0ZSB0aGUgYWN0dWFsIFBhZ2VS
ZWNvcmRzIGJlY2F1c2Ugd2UgaGF2ZSB0aGUgInJldGFpbiBpY29uIGZvciB1cmwiIGNvdW50IHRv
IGtlZXAgdHJhY2sgb2YKQEAgLTIwMCwxNCArMjAwLDE0IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpy
ZW1vdmVBbGxJY29ucygpCiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAvLyBDbGVhciBh
bGwgaW4tbWVtb3J5IHJlY29yZHMgb2YgdGhpbmdzIHRoYXQgbmVlZCB0byBiZSBzeW5jZWQgb3V0
IHRvIGRpc2sKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVu
ZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5
bmNMb2NrKTsKICAgICAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nU3luYy5jbGVhcigpOwogICAg
ICAgICAgICAgbV9pY29uc1BlbmRpbmdTeW5jLmNsZWFyKCk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIC8vIENsZWFyIGFsbCBpbi1tZW1vcnkgcmVjb3JkcyBvZiB0aGluZ3MgdGhhdCBu
ZWVkIHRvIGJlIHJlYWQgaW4gZnJvbSBkaXNrCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxz
UGVuZGluZ0ltcG9ydC5jbGVhcigpOwogICAgICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJ
bkljb25zLmNsZWFyKCk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcuY2xlYXIo
KTsKQEAgLTIyOSw3ICsyMjksNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0lj
b25Gb3JQCiAgICAgaWYgKCFpc09wZW4oKSB8fCAhZG9jdW1lbnRDYW5IYXZlSWNvbihwYWdlVVJM
T3JpZ2luYWwpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKIAogICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMoKTsKICAg
ICAKQEAgLTI0NSw3ICsyNDUsNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0lj
b25Gb3JQCiAgICAgLy8gMSAtIFRoZSBpbml0aWFsIHVybCBpbXBvcnQgaXMgaW5jb21wbGV0ZSBh
bmQgdGhpcyBwYWdlVVJMIHdhcyBtYXJrZWQgdG8gYmUgbm90aWZpZWQgb25jZSBpdCBpcyBjb21w
bGV0ZSBpZiBhbiBpY29uVVJMIGV4aXN0cwogICAgIC8vIDIgLSBUaGUgaW5pdGlhbCB1cmwgaW1w
b3J0IElTIGNvbXBsZXRlIGFuZCB0aGlzIHBhZ2VVUkwgaGFzIG5vIGljb24KICAgICBpZiAoIXBh
Z2VSZWNvcmQpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdM
b2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwog
ICAgICAgICAKICAgICAgICAgLy8gSW1wb3J0IGlzIG9uZ29pbmcsIHRoZXJlIG1pZ2h0IGJlIGFu
IGljb24uICBJbiB0aGlzIGNhc2UsIHJlZ2lzdGVyIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGlj
b24gY29tZXMgaW4KICAgICAgICAgLy8gSWYgd2UgZXZlciByZWFjaCB0aGlzIGNvbmRpdGlvbiwg
d2Uga25vdyB3ZSd2ZSBhbHJlYWR5IG1hZGUgdGhlIHBhZ2VVUkwgY29weQpAQCAtMjc2LDcgKzI3
Niw3IEBAIEltYWdlKiBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzSWNvbkZvclAKICAgICAgICAg
aWYgKHBhZ2VVUkxDb3B5LmlzTnVsbCgpKQogICAgICAgICAgICAgcGFnZVVSTENvcHkgPSBwYWdl
VVJMT3JpZ2luYWwuaXNvbGF0ZWRDb3B5KCk7CiAgICAgCi0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
cGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJbkljb25z
LmFkZChwYWdlVVJMQ29weSk7CiAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5hZGQoaWNv
blJlY29yZCk7CiAgICAgICAgIHdha2VTeW5jVGhyZWFkKCk7CkBAIC0zMDcsNyArMzA3LDcgQEAg
UGFzc05hdGl2ZUltYWdlUHRyIEljb25EYXRhYmFzZTo6c3luY2hybwogICAgIGlmICghaWNvbikK
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29u
TG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgcmV0
dXJuIGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CiB9CiAKQEAgLTMyOSw3ICsz
MjksNyBAQCBTdHJpbmcgSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25VUkxGCiAgICAgaWYg
KCFpc09wZW4oKSB8fCAhZG9jdW1lbnRDYW5IYXZlSWNvbihwYWdlVVJMT3JpZ2luYWwpKQogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKICAgICAKICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVjb3JkID0gbV9wYWdlVVJMVG9SZWNv
cmRNYXAuZ2V0KHBhZ2VVUkxPcmlnaW5hbCk7CiAgICAgaWYgKCFwYWdlUmVjb3JkKQpAQCAtNDE3
LDcgKzQxNyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpyZXRhaW5JY29uRm9yUGFnZVVSTCgKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxz
VG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxz
VG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKICAgICAgICAgbV91cmxzVG9SZXRhaW4uYWRkKHBhZ2VV
UkwuaXNvbGF0ZWRDb3B5KCkpOwogICAgICAgICBtX3JldGFpbk9yUmVsZWFzZUljb25SZXF1ZXN0
ZWQgPSB0cnVlOwogICAgIH0KQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6
cGVyZm9ybVJldGFpbkljb25Gb3JQCiAgICAgICAgIGlmICghbV9pY29uVVJMSW1wb3J0Q29tcGxl
dGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
cGVuZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3lu
Y0xvY2spOwogICAgICAgICAvLyBJZiB0aGlzIHBhZ2VVUkwgd2FpdGluZyB0byBiZSBzeW5jJ2Vk
LCB1cGRhdGUgdGhlIHN5bmMgcmVjb3JkCiAgICAgICAgIC8vIFRoaXMgc2F2ZXMgdXMgaW4gdGhl
IGNhc2Ugd2hlcmUgYSBwYWdlIHdhcyByZWFkeSB0byBiZSBkZWxldGVkIGZyb20gdGhlIGRhdGFi
YXNlIGJ1dCB3YXMganVzdCByZXRhaW5lZCAtIHNvIHRoZXJlcyBubyBuZWVkIHRvIGRlbGV0ZSBp
dCEKICAgICAgICAgaWYgKCFtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgJiYgbV9wYWdlVVJMc1Bl
bmRpbmdTeW5jLmNvbnRhaW5zKHBhZ2VVUkwpKSB7CkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnJlbGVhc2VJY29uRm9yUGFnZVVSTAogICAgICAgICByZXR1cm47CiAKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2spOwogICAgICAgICBtX3VybHNUb1JlbGVhc2UuYWRkKHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCkp
OwogICAgICAgICBtX3JldGFpbk9yUmVsZWFzZUljb25SZXF1ZXN0ZWQgPSB0cnVlOwogICAgIH0K
QEAgLTUwNiw3ICs1MDYsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29u
Rm9yCiAgICAgQVNTRVJUKCFpY29uUmVjb3JkIHx8IChpY29uUmVjb3JkICYmIG1faWNvblVSTFRv
UmVjb3JkTWFwLmdldChpY29uUmVjb3JkLT5pY29uVVJMKCkpID09IGljb25SZWNvcmQpKTsKIAog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAg
ICAKICAgICAgICAgLy8gU2luY2UgdGhpcyBwYWdlVVJMIGlzIGdvaW5nIGF3YXksIHRoZXJlJ3Mg
bm8gcmVhc29uIGFueW9uZSB3b3VsZCBldmVyIGJlIGludGVyZXN0ZWQgaW4gaXRzIHJlYWQgcmVz
dWx0cyAgICAKICAgICAgICAgaWYgKCFtX2ljb25VUkxJbXBvcnRDb21wbGV0ZSkKQEAgLTUyMiw3
ICs1MjIsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29uRm9yCiAgICAg
CiAgICAgLy8gTWFyayBzdHVmZiBmb3IgZGVsZXRpb24gZnJvbSB0aGUgZGF0YWJhc2Ugb25seSBp
ZiB3ZSdyZSBub3QgaW4gcHJpdmF0ZSBicm93c2luZwogICAgIGlmICghbV9wcml2YXRlQnJvd3Np
bmdFbmFibGVkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9j
ayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKICAgICAg
ICAgbV9wYWdlVVJMc1BlbmRpbmdTeW5jLnNldChwYWdlVVJMT3JpZ2luYWwuaXNvbGF0ZWRDb3B5
KCksIHBhZ2VSZWNvcmQtPnNuYXBzaG90KHRydWUpKTsKICAgICAKICAgICAgICAgLy8gSWYgdGhp
cyBwYWdlIGlzIHRoZSBsYXN0IHBhZ2UgdG8gcmVmZXIgdG8gYSBwYXJ0aWN1bGFyIEljb25SZWNv
cmQsIHRoYXQgSWNvblJlY29yZCBuZWVkcyB0bwpAQCAtNTQ4LDEyICs1NDgsMTIgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVSTAogICAgIAogICAgIFZlY3RvcjxTdHJp
bmc+IHBhZ2VVUkxzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsK
ICAgICAKICAgICAgICAgLy8gSWYgdGhpcyBpY29uIHdhcyBwZW5kaW5nIGEgcmVhZCwgcmVtb3Zl
IGl0IGZyb20gdGhhdCBzZXQgYmVjYXVzZSB0aGlzIG5ldyBkYXRhIHNob3VsZCBvdmVycmlkZSB3
aGF0IGlzIG9uIGRpc2sKICAgICAgICAgUmVmUHRyPEljb25SZWNvcmQ+IGljb24gPSBtX2ljb25V
UkxUb1JlY29yZE1hcC5nZXQoaWNvblVSTCk7CiAgICAgICAgIGlmIChpY29uKSB7Ci0gICAgICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAg
bV9pY29uc1BlbmRpbmdSZWFkaW5nLnJlbW92ZShpY29uLmdldCgpKTsKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBpY29uID0gZ2V0T3JDcmVhdGVJY29uUmVjb3JkKGljb25VUkwpOwpAQCAt
NTY3LDcgKzU2Nyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvckljb25VUkwK
ICAgICAgICAgCiAgICAgICAgIC8vIE1hcmsgdGhlIEljb25SZWNvcmQgYXMgcmVxdWlyaW5nIGFu
IHVwZGF0ZSB0byB0aGUgZGF0YWJhc2Ugb25seSBpZiBwcml2YXRlIGJyb3dzaW5nIGlzIGRpc2Fi
bGVkCiAgICAgICAgIGlmICghbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKSB7Ci0gICAgICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgbV9pY29uc1Bl
bmRpbmdTeW5jLnNldChpY29uVVJMLCBpY29uLT5zbmFwc2hvdCgpKTsKICAgICAgICAgfQogCkBA
IC02MDgsNyArNjA4LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJM
KAogICAgIFN0cmluZyBpY29uVVJMLCBwYWdlVVJMOwogICAgIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKIAogICAgICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVj
b3JkID0gbV9wYWdlVVJMVG9SZWNvcmRNYXAuZ2V0KHBhZ2VVUkxPcmlnaW5hbCk7CiAgICAgICAg
IApAQCAtNjM2LDEzICs2MzYsMTMgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQ
YWdlVVJMKAogICAgICAgICAgICAgQVNTRVJUKGljb25SZWNvcmQtPnJldGFpbmluZ1BhZ2VVUkxz
KCkuc2l6ZSgpID09IDApOwogICAgICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIkljb24gZm9y
IGljb24gdXJsICVzIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZCAtIHJlbW92aW5nIG1hcHBpbmcg
Zm9yIGl0IiwgdXJsRm9yTG9nZ2luZyhpY29uUmVjb3JkLT5pY29uVVJMKCkpLmFzY2lpKCkuZGF0
YSgpKTsKICAgICAgICAgICAgIG1faWNvblVSTFRvUmVjb3JkTWFwLnJlbW92ZShpY29uUmVjb3Jk
LT5pY29uVVJMKCkpOwotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1Jl
YWRpbmdMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRp
bmdMb2NrKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5yZW1vdmUoaWNvblJl
Y29yZC5nZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIEFuZCBtYXJrIHRo
aXMgbWFwcGluZyB0byBiZSBhZGRlZCB0byB0aGUgZGF0YWJhc2UKICAgICAgICAgaWYgKCFtX3By
aXZhdGVCcm93c2luZ0VuYWJsZWQpIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRp
bmdTeW5jTG9jayk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxzUGVuZGluZ1N5bmMuc2V0KHBhZ2VV
UkwsIHBhZ2VSZWNvcmQtPnNuYXBzaG90KCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAv
LyBJZiB0aGUgaWNvbiBpcyBvbiBpdHMgbGFzdCByZWYsIG1hcmsgaXQgZm9yIGRlbGV0aW9uCkBA
IC02NzQsNyArNjc0LDcgQEAgSWNvbkxvYWREZWNpc2lvbiBJY29uRGF0YWJhc2U6OnN5bmNocm9u
bwogICAgIC8vIDEgLSBXaGVuIHdlIHJlYWQgdGhlIGljb24gdXJscyBmcm9tIGRpc2ssIGdldHRp
bmcgdGhlIHRpbWVTdGFtcCBhdCB0aGUgc2FtZSB0aW1lCiAgICAgLy8gMiAtIFdoZW4gd2UgZ2V0
IGEgbmV3IGljb24gZnJvbSB0aGUgbG9hZGVyLCBpbiB3aGljaCBjYXNlIHRoZSB0aW1lc3RhbXAg
aXMgc2V0IGF0IHRoYXQgdGltZQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKICAgICAgICAgaWYgKEljb25SZWNvcmQqIGljb24gPSBtX2ljb25VUkxUb1JlY29yZE1h
cC5nZXQoaWNvblVSTCkpIHsKICAgICAgICAgICAgIExPRyhJY29uRGF0YWJhc2UsICJGb3VuZCBl
eHBpcmF0aW9uIHRpbWUgb24gYSBwcmVzZW50IGljb24gYmFzZWQgb24gZXhpc3RpbmcgSWNvblJl
Y29yZCIpOwogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oY3VycmVudFRpbWUo
KSkgLSBzdGF0aWNfY2FzdDxpbnQ+KGljb24tPmdldFRpbWVzdGFtcCgpKSA+IGljb25FeHBpcmF0
aW9uVGltZSA/IEljb25Mb2FkWWVzIDogSWNvbkxvYWRObzsKQEAgLTY4Miw3ICs2ODIsNyBAQCBJ
Y29uTG9hZERlY2lzaW9uIEljb25EYXRhYmFzZTo6c3luY2hyb25vCiAgICAgfQogICAgIAogICAg
IC8vIElmIHdlIGRvbid0IGhhdmUgYSByZWNvcmQgZm9yIGl0LCBidXQgd2UgKmhhdmUqIGltcG9y
dGVkIGFsbCBpY29uVVJMcyBmcm9tIGRpc2ssIHRoZW4gd2Ugc2hvdWxkIGxvYWQgaXQgbm93Ci0g
ICAgTXV0ZXhMb2NrZXIgcmVhZGluZ0xvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAg
TG9ja0hvbGRlciByZWFkaW5nTG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICBpZiAo
bV9pY29uVVJMSW1wb3J0Q29tcGxldGUpCiAgICAgICAgIHJldHVybiBJY29uTG9hZFllczsKICAg
ICAgICAgCkBAIC02OTksNyArNjk5LDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3Vz
SWNvbkRhdGFLbgogewogICAgIEFTU0VSVF9OT1RfU1lOQ19USFJFQUQoKTsKICAgICAKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgaWYgKEljb25SZWNvcmQqIGljb24gPSBtX2ljb25V
UkxUb1JlY29yZE1hcC5nZXQoaWNvblVSTCkpCiAgICAgICAgIHJldHVybiBpY29uLT5pbWFnZURh
dGFTdGF0dXMoKSAhPSBJbWFnZURhdGFTdGF0dXNVbmtub3duOwogCkBAIC03NTQsMjYgKzc1NCwy
NiBAQCB2b2lkIEljb25EYXRhYmFzZTo6Y2hlY2tJbnRlZ3JpdHlCZWZvcmVPCiAKIHNpemVfdCBJ
Y29uRGF0YWJhc2U6OnBhZ2VVUkxNYXBwaW5nQ291bnQoKQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKICAgICByZXR1cm4gbV9wYWdlVVJMVG9SZWNvcmRNYXAuc2l6ZSgpOwogfQogCiBz
aXplX3QgSWNvbkRhdGFiYXNlOjpyZXRhaW5lZFBhZ2VVUkxDb3VudCgpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOwogICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJh
dGlvbnMoKTsKICAgICByZXR1cm4gbV9yZXRhaW5lZFBhZ2VVUkxzLnNpemUoKTsKIH0KIAogc2l6
ZV90IEljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50KCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJ
Y29uTG9jayk7CiAgICAgcmV0dXJuIG1faWNvblVSTFRvUmVjb3JkTWFwLnNpemUoKTsKIH0KIAog
c2l6ZV90IEljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50V2l0aERhdGEoKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKICAgICBzaXplX3QgcmVzdWx0ID0gMDsKICAgICAKICAgICBI
YXNoTWFwPFN0cmluZywgSWNvblJlY29yZCo+OjppdGVyYXRvciBpID0gbV9pY29uVVJMVG9SZWNv
cmRNYXAuYmVnaW4oKTsKQEAgLTgyOSwxMyArODI5LDEzIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpu
b3RpZnlQZW5kaW5nTG9hZERlY2kKIAogdm9pZCBJY29uRGF0YWJhc2U6Ondha2VTeW5jVGhyZWFk
KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9zeW5jTG9jayk7CiAKICAgICBpZiAoIW1fZGlzYWJsZVN1ZGRlblRlcm1pbmF0
aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8pCiAgICAgICAgIG1fZGlzYWJsZVN1ZGRlblRl
cm1pbmF0aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8gPSBzdGQ6Om1ha2VfdW5pcXVlPFN1
ZGRlblRlcm1pbmF0aW9uRGlzYWJsZXI+KCk7CiAKICAgICBtX3N5bmNUaHJlYWRIYXNXb3JrVG9E
byA9IHRydWU7Ci0gICAgbV9zeW5jQ29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1fc3luY0NvbmRp
dGlvbi5ub3RpZnlPbmUoKTsKIH0KIAogdm9pZCBJY29uRGF0YWJhc2U6OnNjaGVkdWxlT3JEZWZl
clN5bmNUaW1lcigpCkBAIC04NzQsMTMgKzg3NCwxMyBAQCBib29sIEljb25EYXRhYmFzZTo6aXNP
cGVuKCkgY29uc3QKIAogYm9vbCBJY29uRGF0YWJhc2U6OmlzT3BlbkJlc2lkZXNNYWluVGhyZWFk
Q2FsbGJhY2tzKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgcmV0dXJuIG1fc3luY1Ro
cmVhZFJ1bm5pbmcgfHwgbV9zeW5jREIuaXNPcGVuKCk7CiB9CiAKIFN0cmluZyBJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3lu
Y0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgIHJldHVybiBt
X2NvbXBsZXRlRGF0YWJhc2VQYXRoLmlzb2xhdGVkQ29weSgpOwogfQogCkBAIC05MTYsNyArOTE2
LDcgQEAgUGFnZVVSTFJlY29yZCogSWNvbkRhdGFiYXNlOjpnZXRPckNyZWF0ZQogCiAgICAgUGFn
ZVVSTFJlY29yZCogcGFnZVJlY29yZCA9IG1fcGFnZVVSTFRvUmVjb3JkTWFwLmdldChwYWdlVVJM
KTsKICAgICAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICBpZiAoIW1f
aWNvblVSTEltcG9ydENvbXBsZXRlKSB7CiAgICAgICAgIC8vIElmIHRoZSBpbml0aWFsIGltcG9y
dCBvZiBhbGwgVVJMcyBoYXNuJ3QgY29tcGxldGVkIGFuZCB3ZSBoYXZlIG5vIHBhZ2UgcmVjb3Jk
LCB3ZSBhc3N1bWUgd2UgKm1pZ2h0KiBrbm93IGFib3V0IHRoaXMgbGF0ZXIgYW5kIGNyZWF0ZSBh
IHJlY29yZCBmb3IgaXQKICAgICAgICAgaWYgKCFwYWdlUmVjb3JkKSB7CkBAIC05ODUsNyArOTg1
LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6Omljb25EYXRhYmFzZVN5bmNUaHJlYQogICAgIH0KICAg
ICAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgICAgIGlmICghbV9zeW5jREIu
b3BlbihtX2NvbXBsZXRlRGF0YWJhc2VQYXRoKSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJV
bmFibGUgdG8gb3BlbiBpY29uIGRhdGFiYXNlIGF0IHBhdGggJXMgLSAlcyIsIG1fY29tcGxldGVE
YXRhYmFzZVBhdGguYXNjaWkoKS5kYXRhKCksIG1fc3luY0RCLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTExMTMsNyArMTExMyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpwZXJmb3JtT3BlbkluaXRpYWxpemEKICAgICAgICAgICAgIG1fc3luY0RCLmNsb3NlKCk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9zeW5jTG9jayk7CisgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9z
eW5jTG9jayk7CiAgICAgICAgICAgICAgICAgLy8gU2hvdWxkJ3ZlIGJlZW4gY29uc3VtZWQgYnkg
U1FMaXRlLCBkZWxldGUganVzdCB0byBtYWtlIHN1cmUgd2UgZG9uJ3Qgc2VlIGl0IGFnYWluIGlu
IHRoZSBmdXR1cmU7CiAgICAgICAgICAgICAgICAgZGVsZXRlRmlsZShtX2NvbXBsZXRlRGF0YWJh
c2VQYXRoICsgIi1qb3VybmFsIik7CiAgICAgICAgICAgICAgICAgZGVsZXRlRmlsZShtX2NvbXBs
ZXRlRGF0YWJhc2VQYXRoKTsKQEAgLTEyMTUsNyArMTIxNSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAgICAgU3RyaW5nIGljb25VUkwgPSBxdWVyeS5nZXRD
b2x1bW5UZXh0KDEpOwogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJs
QW5kSWNvbkxvY2spOwogCiAgICAgICAgICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVjb3JkID0g
bV9wYWdlVVJMVG9SZWNvcmRNYXAuZ2V0KHBhZ2VVUkwpOwogICAgICAgICAgICAgCkBAIC0xMjQ4
LDcgKzEyNDgsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAg
ICAgIC8vIG9uZSBmb3IgdGhlIFVSTCBhbmQgb25lIGZvciB0aGUgSW1hZ2UgaXRzZWxmCiAgICAg
ICAgIC8vIE5vdGUgdGhhdCBXZWJJY29uRGF0YWJhc2UgaXMgbm90IG5lY2Nlc3NhcmlseSBBUEkg
c28gd2UgbWlnaHQgYmUgYWJsZSB0byBtYWtlIHRoaXMgY2hhbmdlCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAg
ICBpZiAobV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQuY29udGFpbnMocGFnZVVSTCkpIHsKICAgICAg
ICAgICAgICAgICBkaXNwYXRjaERpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMT25NYWluVGhyZWFk
KHBhZ2VVUkwpOwogICAgICAgICAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LnJlbW92
ZShwYWdlVVJMKTsKQEAgLTEyNzEsNyArMTI3MSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJm
b3JtVVJMSW1wb3J0KCkKICAgICAvLyBidXQgYWZ0ZXIgbV9pY29uVVJMSW1wb3J0Q29tcGxldGUg
aXMgc2V0IHRvIHRydWUsIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhpcyBzZXQgYW55bW9yZQogICAg
IFZlY3RvcjxTdHJpbmc+IHVybHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRp
bmdSZWFkaW5nTG9jayk7CiAKICAgICAgICAgdXJscy5hcHBlbmRSYW5nZShtX3BhZ2VVUkxzUGVu
ZGluZ0ltcG9ydC5iZWdpbigpLCBtX3BhZ2VVUkxzUGVuZGluZ0ltcG9ydC5lbmQoKSk7CiAgICAg
ICAgIG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LmNsZWFyKCk7ICAgICAgICAKQEAgLTEyODQsNyAr
MTI4NCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAvLyBS
ZW1vdmUgdW5yZXRhaW5lZCBvbmVzIGlmIGRhdGFiYXNlIGNsZWFudXAgaXMgYWxsb3dlZAogICAg
IC8vIEtlZXAgYSBzZXQgb2Ygb25lcyB0aGF0IGFyZSByZXRhaW5lZCBhbmQgcGVuZGluZyBub3Rp
ZmljYXRpb24KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAKICAg
ICAgICAgcGVyZm9ybVBlbmRpbmdSZXRhaW5BbmRSZWxlYXNlT3BlcmF0aW9ucygpOwogCkBAIC0x
MzAxLDEyICsxMzAxLDEyIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1faWNvblVSTFRvUmVjb3JkTWFwLnJlbW92ZShpY29u
UmVjb3JkLT5pY29uVVJMKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJbkljb25zLnJlbW92ZSh1cmxzW2ld
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcucmVt
b3ZlKGljb25SZWNvcmQpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1faWNvbnNQZW5kaW5nU3luYy5zZXQoaWNvblJlY29yZC0+aWNvblVSTCgpLCBpY29u
UmVjb3JkLT5zbmFwc2hvdCh0cnVlKSk7ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMTM3MSw3ICsxMzcxLDcg
QEAgdm9pZCBJY29uRGF0YWJhc2U6OnN5bmNUaHJlYWRNYWluTG9vcCgpCiAgICAgICAgICAgICBi
cmVhazsKIAogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxB
bmRJY29uTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKICAgICAgICAgICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlv
bnMoKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTE0NTEsNyArMTQ1MSw3IEBAIHZvaWQgSWNv
bkRhdGFiYXNlOjpwZXJmb3JtUGVuZGluZ1JldGFpbkEKICAgICBIYXNoQ291bnRlZFNldDxTdHJp
bmc+IHRvUmVsZWFzZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgcGVuZGluZ1dvcmtM
b2NrZXIobV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBw
ZW5kaW5nV29ya0xvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2spOwogICAgICAgICBp
ZiAoIW1fcmV0YWluT3JSZWxlYXNlSWNvblJlcXVlc3RlZCkKICAgICAgICAgICAgIHJldHVybjsK
IApAQCAtMTQ4OCw3ICsxNDg4LDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6OnJlYWRGcm9tRGF0YWJh
c2UoKQogICAgIC8vIFRoaXMgd2F5IHdlIHdvbid0IGhvbGQgdGhlIGxvY2sgZm9yIGEgbG9uZyBw
ZXJpb2Qgb2YgdGltZQogICAgIFZlY3RvcjxJY29uUmVjb3JkKj4gaWNvbnM7CiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgIGljb25zLmFw
cGVuZFJhbmdlKG1faWNvbnNQZW5kaW5nUmVhZGluZy5iZWdpbigpLCBtX2ljb25zUGVuZGluZ1Jl
YWRpbmcuZW5kKCkpOwogICAgIH0KICAgICAKQEAgLTE1MDEsOSArMTUwMSw5IEBAIGJvb2wgSWNv
bkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKCkKIAogICAgICAgICAvLyBWZXJpZnkgdGhpcyBp
Y29uIHN0aWxsIHdhbnRzIHRvIGJlIHJlYWQgZnJvbSBkaXNrCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIE11dGV4TG9ja2VyIHVybExvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgICAg
IExvY2tIb2xkZXIgdXJsTG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIHJlYWRMb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xv
Y2spOworICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgcmVhZExvY2tlcihtX3BlbmRpbmdSZWFk
aW5nTG9jayk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKG1faWNvbnNQ
ZW5kaW5nUmVhZGluZy5jb250YWlucyhpY29uc1tpXSkpIHsKICAgICAgICAgICAgICAgICAgICAg
Ly8gU2V0IHRoZSBuZXcgZGF0YQpAQCAtMTU5MSwxMSArMTU5MSwxMSBAQCBib29sIEljb25EYXRh
YmFzZTo6d3JpdGVUb0RhdGFiYXNlKCkKICAgICAvLyB3ZSdsbCBwaWNrIGl0IHVwIG9uIHRoZSBu
ZXh0IHBhc3MuICBUaGlzIGdyZWF0bHkgc2ltcGxpZmllcyB0aGUgbG9ja2luZyBzdHJhdGVneSBm
b3IgdGhpcyBtZXRob2QgYW5kIHJlbWFpbnMgY29oZXNpdmUgd2l0aCBjaGFuZ2VzCiAgICAgLy8g
YXNrZWQgZm9yIGJ5IHRoZSBkYXRhYmFzZSBvbiB0aGUgbWFpbiB0aHJlYWQKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgICAgIFZlY3RvcjxJY29uU25hcHNo
b3Q+IGljb25TbmFwc2hvdHM7CiAgICAgICAgIFZlY3RvcjxQYWdlVVJMU25hcHNob3Q+IHBhZ2VT
bmFwc2hvdHM7CiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Bl
bmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdT
eW5jTG9jayk7CiAKICAgICAgICAgICAgIGljb25TbmFwc2hvdHMuYXBwZW5kUmFuZ2UobV9pY29u
c1BlbmRpbmdTeW5jLmJlZ2luKCkudmFsdWVzKCksIG1faWNvbnNQZW5kaW5nU3luYy5lbmQoKS52
YWx1ZXMoKSk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1N5bmMuY2xlYXIoKTsKQEAgLTE2
NTgsNyArMTY1OCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwcnVuZVVucmV0YWluZWRJY29ucygK
ICAgICAKICAgICBpbnQgcmVzdWx0OwogICAgIHdoaWxlICgocmVzdWx0ID0gcGFnZVNRTC5zdGVw
KCkpID09IFNRTElURV9ST1cpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsK
ICAgICAgICAgaWYgKCFtX3BhZ2VVUkxUb1JlY29yZE1hcC5jb250YWlucyhwYWdlU1FMLmdldENv
bHVtblRleHQoMSkpKQogICAgICAgICAgICAgcGFnZUlEc1RvRGVsZXRlLmFwcGVuZChwYWdlU1FM
LmdldENvbHVtbkludDY0KDApKTsKICAgICB9CkBAIC0xNzkxLDcgKzE3OTEsNyBAQCB2b2lkKiBJ
Y29uRGF0YWJhc2U6OmNsZWFudXBTeW5jVGhyZWFkKCkKICAgICB3cml0ZVRvRGF0YWJhc2UoKTsK
ICAgICAKICAgICAvLyBDbG9zZSB0aGUgZGF0YWJhc2UKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zeW5jTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgCiAg
ICAgbV9kYXRhYmFzZURpcmVjdG9yeSA9IFN0cmluZygpOwogICAgIG1fY29tcGxldGVEYXRhYmFz
ZVBhdGggPSBTdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2lmIEVO
QUJMRShJQ09OREFUQUJBU0UpCiAjaW5jbHVkZSAiU1FMaXRlRGF0YWJhc2UuaCIKICNpbmNsdWRl
ICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFz
aENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CkBAIC0xNDEsOCArMTQyLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNFbmFi
bGVkOwogICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkOwogCi0gICAgbXV0YWJsZSBN
dXRleCBtX3N5bmNMb2NrOwotICAgIFRocmVhZENvbmRpdGlvbiBtX3N5bmNDb25kaXRpb247Cisg
ICAgbXV0YWJsZSBMb2NrIG1fc3luY0xvY2s7CisgICAgQ29uZGl0aW9uIG1fc3luY0NvbmRpdGlv
bjsKICAgICBTdHJpbmcgbV9kYXRhYmFzZURpcmVjdG9yeTsKICAgICAvLyBIb2xkaW5nIG1fc3lu
Y0xvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9jb21wbGV0ZURhdGFiYXNlUGF0aAog
ICAgIFN0cmluZyBtX2NvbXBsZXRlRGF0YWJhc2VQYXRoOwpAQCAtMTUzLDI0ICsxNTQsMjQgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fc3luY1RocmVhZEhhc1dvcmtUb0RvOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxTdWRkZW5UZXJtaW5hdGlvbkRpc2FibGVyPiBtX2Rpc2FibGVTdWRkZW5UZXJtaW5h
dGlvbldoaWxlU3luY1RocmVhZEhhc1dvcmtUb0RvOwogCi0gICAgTXV0ZXggbV91cmxBbmRJY29u
TG9jazsKKyAgICBMb2NrIG1fdXJsQW5kSWNvbkxvY2s7CiAgICAgLy8gSG9sZGluZyBtX3VybEFu
ZEljb25Mb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUgZm9sbG93aW5n
IGRhdGEgc3RydWN0dXJlcyBvciB0aGUgb2JqZWN0cyB0aGV5IGNvbnRhaW4KICAgICBIYXNoTWFw
PFN0cmluZywgSWNvblJlY29yZCo+IG1faWNvblVSTFRvUmVjb3JkTWFwOwogICAgIEhhc2hNYXA8
U3RyaW5nLCBQYWdlVVJMUmVjb3JkKj4gbV9wYWdlVVJMVG9SZWNvcmRNYXA7CiAgICAgSGFzaFNl
dDxTdHJpbmc+IG1fcmV0YWluZWRQYWdlVVJMczsKIAotICAgIE11dGV4IG1fcGVuZGluZ1N5bmNM
b2NrOworICAgIExvY2sgbV9wZW5kaW5nU3luY0xvY2s7CiAgICAgLy8gSG9sZGluZyBtX3BlbmRp
bmdTeW5jTG9jayBpcyByZXF1aXJlZCB3aGVuIGFjY2Vzc2luZyBhbnkgb2YgdGhlIGZvbGxvd2lu
ZyBkYXRhIHN0cnVjdHVyZXMKICAgICBIYXNoTWFwPFN0cmluZywgUGFnZVVSTFNuYXBzaG90PiBt
X3BhZ2VVUkxzUGVuZGluZ1N5bmM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIEljb25TbmFwc2hvdD4g
bV9pY29uc1BlbmRpbmdTeW5jOwogICAgIAotICAgIE11dGV4IG1fcGVuZGluZ1JlYWRpbmdMb2Nr
OyAgICAKKyAgICBMb2NrIG1fcGVuZGluZ1JlYWRpbmdMb2NrOyAgICAKICAgICAvLyBIb2xkaW5n
IG1fcGVuZGluZ1N5bmNMb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUg
Zm9sbG93aW5nIGRhdGEgc3RydWN0dXJlcyAtIHdoZW4gZGVhbGluZyB3aXRoIEljb25SZWNvcmQq
cywgaG9sZGluZyBtX3VybEFuZEljb25Mb2NrIGlzIGFsc28gcmVxdWlyZWQKICAgICBIYXNoU2V0
PFN0cmluZz4gbV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQ7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1f
cGFnZVVSTHNJbnRlcmVzdGVkSW5JY29uczsKICAgICBIYXNoU2V0PEljb25SZWNvcmQqPiBtX2lj
b25zUGVuZGluZ1JlYWRpbmc7CiAKLSAgICBNdXRleCBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2s7CisgICAgTG9jayBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2s7CiAgICAgLy8gSG9sZGlu
ZyBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3Npbmcg
YW55IG9mIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzLgogICAgIEhhc2hDb3VudGVkU2V0
PFN0cmluZz4gbV91cmxzVG9SZXRhaW47CiAgICAgSGFzaENvdW50ZWRTZXQ8U3RyaW5nPiBtX3Vy
bHNUb1JlbGVhc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5
LDcgQEAgU2Nyb2xsaW5nVHJlZTo6flNjcm9sbGluZ1RyZWUoKQogYm9vbCBTY3JvbGxpbmdUcmVl
OjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseShjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgLy8gVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0
aGUgZXZlbnQgaGFuZGxpbmcgdGhyZWFkCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAKICAgICBib29sIHNob3VsZFNldExhdGNo
ID0gd2hlZWxFdmVudC5zaG91bGRDb25zaWRlckxhdGNoaW5nKCk7CiAgICAgCkBAIC0xMTUsNyAr
MTE1LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3RhdGUocwogICAgICAg
ICAmJiAocm9vdFN0YXRlTm9kZUNoYW5nZWQKICAgICAgICAgICAgIHx8IHJvb3ROb2RlLT5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6Ok5vbkZhc3RT
Y3JvbGxhYmxlUmVnaW9uKQogICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlNjcm9sbExheWVyKSkpIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwog
CiAgICAgICAgIGlmIChyb290U3RhdGVOb2RlQ2hhbmdlZCB8fCByb290Tm9kZS0+aGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5ZXIpKQogICAgICAgICAgICAg
bV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IEZsb2F0UG9pbnQoKTsKQEAgLTIwOCw3ICsyMDgs
NyBAQCBTY3JvbGxpbmdUcmVlTm9kZSogU2Nyb2xsaW5nVHJlZTo6bm9kZUZvCiAKIHZvaWQgU2Ny
b2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQsIGJv
b2wgcGlubmVkVG9UaGVSaWdodCwgYm9vbCBwaW5uZWRUb1RoZVRvcCwgYm9vbCBwaW5uZWRUb1Ro
ZUJvdHRvbSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIG1fbWFpbkZy
YW1lUGlubmVkVG9UaGVMZWZ0ID0gcGlubmVkVG9UaGVMZWZ0OwogICAgIG1fbWFpbkZyYW1lUGlu
bmVkVG9UaGVSaWdodCA9IHBpbm5lZFRvVGhlUmlnaHQ7CkBAIC0yMTgsNTQgKzIxOCw1NCBAQCB2
b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlCiAKIEZsb2F0UG9pbnQgU2Ny
b2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIHJldHVy
biBtX21haW5GcmFtZVNjcm9sbFBvc2l0aW9uOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNl
dE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQgcG9zaXRpb24pCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAg
ICAgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IHBvc2l0aW9uOwogfQogCiBib29sIFNjcm9s
bGluZ1RyZWU6OmlzUG9pbnRJbk5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKEludFBvaW50IHApCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9t
dXRleCk7CiAgICAgCiAgICAgcmV0dXJuIG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb24uY29udGFp
bnMocCk7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsgICAgCisgICAgTG9ja0hvbGRlciBs
b2NrKG1fbXV0ZXgpOyAgICAKIAogICAgIHJldHVybiBtX21haW5GcmFtZUlzUnViYmVyQmFuZGlu
ZzsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmco
Ym9vbCBpc1J1YmJlckJhbmRpbmcpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgbV9tYWluRnJhbWVJc1J1
YmJlckJhbmRpbmcgPSBpc1J1YmJlckJhbmRpbmc7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6
aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgCiAgICAgcmV0dXJuIG1fbWFp
bkZyYW1lSXNTY3JvbGxTbmFwcGluZzsKIH0KICAgICAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0
TWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyhib29sIGlzU2Nyb2xsU25hcHBpbmcpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0
ZXgpOwogICAgIAogICAgIG1fbWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyA9IGlzU2Nyb2xsU25h
cHBpbmc7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0Q2FuUnViYmVyQmFuZFN0YXRlKGJv
b2wgY2FuUnViYmVyQmFuZEF0TGVmdCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgYm9vbCBj
YW5SdWJiZXJCYW5kQXRUb3AsIGJvb2wgY2FuUnViYmVyQmFuZEF0Qm90dG9tKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgbV9ydWJiZXJCYW5kc0F0TGVmdCA9IGNhblJ1
YmJlckJhbmRBdExlZnQ7CiAgICAgbV9ydWJiZXJCYW5kc0F0UmlnaHQgPSBjYW5SdWJiZXJCYW5k
QXRSaWdodDsKQEAgLTI3NSwyOCArMjc1LDI4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0Q2Fu
UnViYmVyQmFuZFN0YXQKIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVmdCgp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRz
QXRMZWZ0OwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRSaWdodCgpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRl
ciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRzQXRS
aWdodDsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0Qm90dG9tKCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJv
dHRvbTsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdFRvcDsK
IH0KQEAgLTMwOCwxNCArMzA4LDE0IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNIYW5kbGluZ1By
b2dyYW1tYXQKIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3Io
U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHBpbm5pbmcpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N3aXBlU3RhdGVN
dXRleCk7CiAgICAgCiAgICAgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBwaW5uaW5nOwogfQog
CiBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsUGlubmluZ0JlaGF2
aW9yKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogICAgIAogICAgIHJldHVybiBtX3Nj
cm9sbFBpbm5pbmdCZWhhdmlvcjsKIH0KQEAgLTMyNSw3ICszMjUsNyBAQCBib29sIFNjcm9sbGlu
Z1RyZWU6OndpbGxXaGVlbEV2ZW50U3RhcnRTCiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSAh
PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFYKCkg
PiAwICYmIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0ICYmICFtX3J1YmJlckJhbmRzQXRMZWZ0
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTM1MSwxOSArMzUxLDE5IEBAIGJvb2wgU2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nUGVyZm9ybWFuY2UKIAogU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGlu
Z1RyZWU6OmxhdGNoZWROb2RlKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fbGF0Y2hlZE5v
ZGU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TGF0Y2hlZE5vZGUoU2Nyb2xsaW5nTm9k
ZUlEIG5vZGUpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIG1fbGF0Y2hlZE5vZGUgPSBub2RlOwogfQogCiB2
b2lkIFNjcm9sbGluZ1RyZWU6OmNsZWFyTGF0Y2hlZE5vZGUoKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICBt
X2xhdGNoZWROb2RlID0gMDsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJX
aGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBAIC0xNjAsMTEgKzE2MSwxMSBAQCBwcml2YXRl
OgogICAgIHR5cGVkZWYgSGFzaE1hcDxTY3JvbGxpbmdOb2RlSUQsIFNjcm9sbGluZ1RyZWVOb2Rl
Kj4gU2Nyb2xsaW5nVHJlZU5vZGVNYXA7CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGVNYXAgbV9ub2Rl
TWFwOwogCi0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAgICAgUmVnaW9u
IG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb247CiAgICAgRmxvYXRQb2ludCBtX21haW5GcmFtZVNj
cm9sbFBvc2l0aW9uOwogCi0gICAgTXV0ZXggbV9zd2lwZVN0YXRlTXV0ZXg7CisgICAgTG9jayBt
X3N3aXBlU3RhdGVNdXRleDsKICAgICBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5u
aW5nQmVoYXZpb3IgeyBEb05vdFBpbiB9OwogICAgIFNjcm9sbGluZ05vZGVJRCBtX2xhdGNoZWRO
b2RlIHsgMCB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4K
ICNlbGlmIE9TKExJTlVYKQogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0xMzcsNyArMTM4LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fY2xlYXJQcmVzc3VyZU9uTWVtb3J5UmVsZWFzZTsKICAgICB2
b2lkIChebV9yZWxlYXNlTWVtb3J5QmxvY2spKCk7CiAgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYg
bV9vYnNlcnZlcjsKLSAgICBNdXRleCBtX29ic2VydmVyTXV0ZXg7CisgICAgTG9jayBtX29ic2Vy
dmVyTXV0ZXg7CiAjZWxpZiBPUyhMSU5VWCkKICAgICBpbnQgbV9ldmVudEZEOwogICAgIGludCBt
X3ByZXNzdXJlTGV2ZWxGRDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZEYXRhYmFzZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgSFJURkRhdGFiYXNlTG9hZGVyOjpsb2Fk
QXN5bmNocm9ub3UKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdGhyZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aHJl
YWRMb2NrKTsKICAgICAKICAgICBpZiAoIW1faHJ0ZkRhdGFiYXNlLmdldCgpICYmICFtX2RhdGFi
YXNlTG9hZGVyVGhyZWFkKSB7CiAgICAgICAgIC8vIFN0YXJ0IHRoZSBhc3luY2hyb25vdXMgZGF0
YWJhc2UgbG9hZGluZyBwcm9jZXNzLgpAQCAtMTE3LDcgKzExNyw3IEBAIGJvb2wgSFJURkRhdGFi
YXNlTG9hZGVyOjppc0xvYWRlZCgpIGNvbnMKIAogdm9pZCBIUlRGRGF0YWJhc2VMb2FkZXI6Ondh
aXRGb3JMb2FkZXJUaHJlYWRDb21wbGV0aW9uKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90aHJlYWRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RocmVhZExvY2spOwogICAg
IAogICAgIC8vIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQg
dHdpY2UgZm9yIHRoZSBzYW1lIHRocmVhZC4KICAgICBpZiAobV9kYXRhYmFzZUxvYWRlclRocmVh
ZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRh
YmFzZUxvYWRlci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KQEAgLTc2LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8SFJURkRhdGFiYXNlPiBtX2hydGZEYXRhYmFzZTsKIAogICAgIC8vIEhvbGRpbmcgYSBtX3Ro
cmVhZExvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9kYXRhYmFzZUxvYWRlclRocmVh
ZC4KLSAgICBNdXRleCBtX3RocmVhZExvY2s7CisgICAgTG9jayBtX3RocmVhZExvY2s7CiAgICAg
VGhyZWFkSWRlbnRpZmllciBtX2RhdGFiYXNlTG9hZGVyVGhyZWFkOwogCiAgICAgZmxvYXQgbV9k
YXRhYmFzZVNhbXBsZVJhdGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQkocmV2aXNpb24g
MTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIE1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0UmVjZWl2ZWRNCiAgICAgbV91bmRlck1lbW9yeVByZXNz
dXJlID0gdHJ1ZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2JzZXJ2
ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CiAg
ICAgICAgIGlmICghbV9vYnNlcnZlcikgewogICAgICAgICAgICAgbV9vYnNlcnZlciA9IENGUnVu
TG9vcE9ic2VydmVyQ3JlYXRlKE5VTEwsIGtDRlJ1bkxvb3BCZWZvcmVXYWl0aW5nIHwga0NGUnVu
TG9vcEV4aXQsIE5PIC8qIGRvbid0IHJlcGVhdCAqLywKICAgICAgICAgICAgICAgICAwLCBXZWJD
b3JlOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUNhbGxiYWNrLCBOVUxMKTsKQEAgLTI3MiwxNCAr
MjcyLDE0IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpjbGVhck1lbW9yeVAKICAgICBt
X3VuZGVyTWVtb3J5UHJlc3N1cmUgPSBmYWxzZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
b2JzZXJ2ZXJNdXRleCk7CiAgICAgICAgIG1fbWVtb3J5UHJlc3N1cmVSZWFzb24gPSBNZW1vcnlQ
cmVzc3VyZVJlYXNvbk5vbmU7CiAgICAgfQogfQogCiBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6c2hvdWxkV2FpdEZvck1lbW9yeUNsZWFyTWVzc2FnZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vYnNlcnZl
ck11dGV4KTsKICAgICByZXR1cm4gbV9tZW1vcnlQcmVzc3VyZVJlYXNvbiAmIE1lbW9yeVByZXNz
dXJlUmVhc29uVk1TdGF0dXM7CiB9CiAKQEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtCiAgICAgQVNTRVJUKFdlYlRocmVhZElzTG9ja2Vk
T3JEaXNhYmxlZCgpKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2Jz
ZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7
CiAgICAgICAgIG1fb2JzZXJ2ZXIgPSAwOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3Iu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmUKICAgICBkb3VibGUg
bW9ub3RvbmljQW5pbWF0aW9uU3RhcnRUaW1lOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAg
ICAgIGlmICghbV9zY2hlZHVsZWQpCiAgICAgICAgICAgICArK21fdW5zY2hlZHVsZWRGaXJlQ291
bnQ7CiAgICAgICAgIGVsc2UKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIERpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlzcGxheURpZFJlCiAgICAgICAgIG1fY2xpZW50c1RvQmVOb3RpZmllZCA9IG51
bGxwdHI7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9wcmV2aW91c0ZyYW1lRG9u
ZSA9IHRydWU7CiAgICAgfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw5ICszMCw5IEBACiAKICNp
bmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1vbm90
b25pY0FuaW1hdGlvblN0YXJ0VGltZShkb3VibGUgc3RhcnRUaW1lKSB7IG1fbW9ub3RvbmljQW5p
bWF0aW9uU3RhcnRUaW1lID0gc3RhcnRUaW1lOyB9CiAKLSAgICBNdXRleCYgbXV0ZXgoKSB7IHJl
dHVybiBtX211dGV4OyB9CisgICAgTG9jayYgbXV0ZXgoKSB7IHJldHVybiBtX211dGV4OyB9CiAK
ICAgICBzdGF0aWMgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGVmYXVsdERp
c3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTg5LDcgKzg5LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcHJldmlvdXNGcmFtZURvbmU7CiAgICAgaW50IG1fdW5z
Y2hlZHVsZWRGaXJlQ291bnQ7IC8vIE51bWJlciBvZiB0aW1lcyB0aGUgZGlzcGxheSBsaW5rIGhh
cyBmaXJlZCB3aXRoIG5vIGNsaWVudHMuCiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNwbGF5
SUQ7Ci0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAKICAgICBIYXNoU2V0
PERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+IG1fY2xpZW50czsKICAgICBIYXNoU2V0PERp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+KiBtX2NsaWVudHNUb0JlTm90aWZpZWQ7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTczNSw3ICs3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6c2V0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpz
ZXREZWxheUNhbGxiYWNrcyhib29sIGRlbGF5KSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKICAg
ICBpZiAoZGVsYXkpCiAgICAgICAgICsrbV9kZWxheUNhbGxiYWNrczsKICAgICBlbHNlIHsKQEAg
LTc1NCw3ICs3NTQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bWFp
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1haW5UaHJlYWRQ
ZW5kaW5nRmxhZygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgIG1fbWFpblRocmVhZENhbGxQZW5k
aW5nID0gZmFsc2U7CiB9CiAKQEAgLTgyMCw3ICs4MjAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6ZGlzCiAKICAgICBOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uID0g
Tm90aWZpY2F0aW9uKCk7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVN
dXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgICAgICAK
ICAgICAgICAgaWYgKG1fcXVldWVkTm90aWZpY2F0aW9ucy5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiVGltZXIu
aCIKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIApAQCAtMzE3LDcgKzMxOCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IG1fcGVuZGluZ1NlZWs7CiAKICAgICBWZWN0b3I8Tm90aWZpY2F0aW9u
PiBtX3F1ZXVlZE5vdGlmaWNhdGlvbnM7Ci0gICAgbXV0YWJsZSBNdXRleCBtX3F1ZXVlTXV0ZXg7
CisgICAgbXV0YWJsZSBMb2NrIG1fcXVldWVNdXRleDsKIAogICAgIG11dGFibGUgc3RkOjp1bmlx
dWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gbV9jYWNoZWRMb2FkZWRUaW1lUmFuZ2VzOwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw3ICsxNTgsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIGlubGluZSB2b2lkKiBjYWxsYmFja0NvbnRleHQoKSBjb25zdCB7IHJl
dHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPihtX29iamVjdElEKTsgfQogCi0gICAgc3RhdGlj
IE11dGV4JiBtYXBMb2NrKCk7CisgICAgc3RhdGljIExvY2smIG1hcExvY2soKTsKICAgICBzdGF0
aWMgSGFzaE1hcDx1aW50cHRyX3QsIEFWRldyYXBwZXIqPiYgbWFwKCk7CiAgICAgc3RhdGljIEFW
RldyYXBwZXIqIGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQodm9pZCopOwogICAgIHZvaWQg
YWRkVG9NYXAoKTsKQEAgLTE0MDQsOSArMTQwNCw5IEBAIEFWRldyYXBwZXI6On5BVkZXcmFwcGVy
KCkKICAgICBtX2F2UGxheWVyID0gMDsKIH0KIAotTXV0ZXgmIEFWRldyYXBwZXI6Om1hcExvY2so
KQorTG9jayYgQVZGV3JhcHBlcjo6bWFwTG9jaygpCiB7Ci0gICAgc3RhdGljIE11dGV4IG1hcExv
Y2s7CisgICAgc3RhdGljIExvY2sgbWFwTG9jazsKICAgICByZXR1cm4gbWFwTG9jazsKIH0KIApA
QCAtMTQxOCw3ICsxNDE4LDcgQEAgSGFzaE1hcDx1aW50cHRyX3QsIEFWRldyYXBwZXIqPiYgQVZG
V3JhcAogCiB2b2lkIEFWRldyYXBwZXI6OmFkZFRvTWFwKCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAg
IAogICAgIC8vIEhhc2hNYXAgZG9lc24ndCBsaWtlIGEga2V5IG9mIDAsIGFuZCBhbHNvIG1ha2Ug
c3VyZSB3ZSBhcmVuJ3QKICAgICAvLyB1c2luZyBhbiBvYmplY3QgSUQgdGhhdCdzIGFscmVhZHkg
aW4gdXNlLgpAQCAtMTQzNCw3ICsxNDM0LDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpyZW1vdmVGcm9t
TWFwKCkgY29uc3QKIHsKICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpyZW1vdmVGcm9tTWFw
KCVwICVkKSIsIHRoaXMsIG1fb2JqZWN0SUQpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1h
cExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBtYXAoKS5y
ZW1vdmUobV9vYmplY3RJRCk7CiB9CiAKQEAgLTE2MzUsNyArMTYzNSw3IEBAIHZvaWQgQVZGV3Jh
cHBlcjo6Y3JlYXRlUGxheWVySXRlbSgpCiAKIHZvaWQgQVZGV3JhcHBlcjo6cGVyaW9kaWNUaW1l
T2JzZXJ2ZXJDYWxsYmFjayhBVkNGUGxheWVyUmVmLCBDTVRpbWUgY21UaW1lLCB2b2lkKiBjb250
ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJG
b3JDYWxsYmFja0NvbnRleHQoY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExP
RyhNZWRpYSwgIkFWRldyYXBwZXI6OnBlcmlvZGljVGltZU9ic2VydmVyQ2FsbGJhY2sgaW52b2tl
ZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KGNvbnRleHQpKTsKQEAgLTE2NjYsNyArMTY2Niw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vz
c05vdGlmaWNhdGlvbih2b2kKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxOb3RpZmljYXRpb25DYWxs
YmFja0RhdGE+IG5vdGlmaWNhdGlvbkRhdGEgeyBzdGF0aWNfY2FzdDxOb3RpZmljYXRpb25DYWxs
YmFja0RhdGEqPihjb250ZXh0KSB9OwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2so
KSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBz
ZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChub3RpZmljYXRpb25EYXRhLT5tX2Nv
bnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVy
Ojpwcm9jZXNzTm90aWZpY2F0aW9uIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xNzIxLDcgKzE3MjEs
NyBAQCB2b2lkIEFWRldyYXBwZXI6Om5vdGlmaWNhdGlvbkNhbGxiYWNrKENGCiAKIHZvaWQgQVZG
V3JhcHBlcjo6bG9hZFBsYXlhYmxlQ29tcGxldGlvbkNhbGxiYWNrKEFWQ0ZBc3NldFJlZiwgdm9p
ZCogY29udGV4dCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZX
cmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAg
ICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpsb2FkUGxheWFibGVDb21wbGV0aW9uQ2FsbGJh
Y2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE3NDksNyArMTc0OSw3IEBAIHZvaWQgQVZGV3JhcHBl
cjo6Y2hlY2tQbGF5YWJpbGl0eSgpCiAKIHZvaWQgQVZGV3JhcHBlcjo6bG9hZE1ldGFkYXRhQ29t
cGxldGlvbkNhbGxiYWNrKEFWQ0ZBc3NldFJlZiwgdm9pZCogY29udGV4dCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2Nr
KCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0
KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFw
cGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBB
VkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAg
LTE3NjksNyArMTc2OSw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6YmVnaW5Mb2FkaW5nTWV0YWRhdGEo
KQogCiB2b2lkIEFWRldyYXBwZXI6OnNlZWtDb21wbGV0ZWRDYWxsYmFjayhBVkNGUGxheWVySXRl
bVJlZiwgQm9vbGVhbiBmaW5pc2hlZCwgdm9pZCogY29udGV4dCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwog
ICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRl
eHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpz
ZWVrQ29tcGxldGVkQ2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwg
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4MTIsNyArMTgxMiw3
IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc0N1ZSh2b2lkKiBjb250ZXgKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxMZWdpYmxlT3V0cHV0RGF0YT4gbGVnaWJsZU91dHB1dERhdGEocmVpbnRlcnBy
ZXRfY2FzdDxMZWdpYmxlT3V0cHV0RGF0YSo+KGNvbnRleHQpKTsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAg
ICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQobGVnaWJs
ZU91dHB1dERhdGEtPm1fY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExPRyhN
ZWRpYSwgIkFWRldyYXBwZXI6OnByb2Nlc3NDdWUgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFw
cGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4Mjgs
NyArMTgyOCw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc0N1ZSh2b2lkKiBjb250ZXgKIHZv
aWQgQVZGV3JhcHBlcjo6bGVnaWJsZU91dHB1dENhbGxiYWNrKHZvaWQqIGNvbnRleHQsIEFWQ0ZQ
bGF5ZXJJdGVtTGVnaWJsZU91dHB1dFJlZiBsZWdpYmxlT3V0cHV0LCBDRkFycmF5UmVmIGF0dHJp
YnV0ZWRTdHJpbmdzLCBDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZUJ1ZmZlcnMsIENNVGltZSBpdGVt
VGltZSkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAg
IEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRleHQp
OwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpsZWdp
YmxlT3V0cHV0Q2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4NjYsNyArMTg2Niw3IEBA
IHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc1Nob3VsZFdhaXRGb3JMb2EKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxMb2FkUmVxdWVzdERhdGE+IGxvYWRSZXF1ZXN0RGF0YShyZWludGVycHJldF9jYXN0
PExvYWRSZXF1ZXN0RGF0YSo+KGNvbnRleHQpKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
YXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3Jh
cHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQobG9hZFJlcXVlc3REYXRh
LT5tX2NvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZX
cmFwcGVyOjpwcm9jZXNzU2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlc291cmNlIGludm9rZWQgZm9y
IGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250
ZXh0KSk7CkBAIC0xOTIyLDcgKzE5MjIsNyBAQCBib29sIEFWRldyYXBwZXI6OnNob3VsZFdhaXRG
b3JMb2FkaW5nT2ZSCiBCb29sZWFuIEFWRldyYXBwZXI6OnJlc291cmNlTG9hZGVyU2hvdWxkV2Fp
dEZvckxvYWRpbmdPZlJlcXVlc3RlZFJlc291cmNlKEFWQ0ZBc3NldFJlc291cmNlTG9hZGVyUmVm
IHJlc291cmNlTG9hZGVyLCBBVkNGQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0UmVmIGxvYWRp
bmdSZXF1ZXN0LCB2b2lkICpjb250ZXh0KQogewogICAgIEFTU0VSVChkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpICE9IGRpc3BhdGNoX2dldF9jdXJyZW50X3F1ZXVlKCkpOwotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7
CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQoY29u
dGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6
OnJlc291cmNlTG9hZGVyU2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlcXVlc3RlZFJlc291cmNlIGlu
dm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihjb250ZXh0KSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpoYQogewogICAgIG1fc2FtcGxlVGltZXJIYW5kbGVy
LmNhbmNlbCgpOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3NhbXBsZU11dGV4
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fc2FtcGxlTXV0ZXgpOwogICAgICAgICBtX3Bl
bmRpbmdTYW1wbGVzLmFwcGVuZChzYW1wbGUpOwogICAgIH0KICAgICBtX3NhbXBsZVRpbWVySGFu
ZGxlci5zY2hlZHVsZSgiW1dlYktpdF0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6
bm90aWZ5VHJhY2tPZlNhbXBsZSIsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPihzdGQ6OmJpbmQoJklu
YmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTYW1wbGUsIHRoaXMp
KSk7CkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1l
cjo6bm8KIHsKICAgICBWZWN0b3I8R1JlZlB0cjxHc3RTYW1wbGU+ID4gc2FtcGxlczsKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9zYW1wbGVNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKICAgICAgICAgbV9wZW5kaW5nU2FtcGxlcy5zd2Fw
KHNhbXBsZXMpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiR1Jl
ZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUuaCIKICNp
bmNsdWRlICJUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgiCisjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY3LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBndWxvbmcg
bV9ldmVudFByb2JlOwogICAgIFZlY3RvcjxHUmVmUHRyPEdzdFNhbXBsZT4gPiBtX3BlbmRpbmdT
YW1wbGVzOwogICAgIFN0cmluZyBtX3N0cmVhbUlkOwotICAgIE11dGV4IG1fc2FtcGxlTXV0ZXg7
CisgICAgTG9jayBtX3NhbXBsZU11dGV4OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIs
NyArMTAyLDcgQEAgdm9pZCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjp0YWdzQ2hhbgogICAg
IEdSZWZQdHI8R3N0VGFnTGlzdD4gdGFnczsKICAgICBnX29iamVjdF9nZXQobV9wYWQuZ2V0KCks
ICJ0YWdzIiwgJnRhZ3Mub3V0UHRyKCksIE5VTEwpOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtX3RhZ011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fdGFnTXV0ZXgp
OwogICAgICAgICBtX3RhZ3Muc3dhcCh0YWdzKTsKICAgICB9CiAKQEAgLTE1OCw3ICsxNTgsNyBA
QCB2b2lkIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyCiAKICAgICBHUmVmUHRy
PEdzdFRhZ0xpc3Q+IHRhZ3M7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fdGFn
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90YWdNdXRleCk7CiAgICAgICAgIHRh
Z3Muc3dhcChtX3RhZ3MpOwogICAgIH0KICAgICBpZiAoIXRhZ3MpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNl
R1N0cmVhbWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUo
VklERU8pICYmIFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShWSURFT19UUkFDSykKIAogI2luY2x1
ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1RocmVhZFNh
ZmVNYWluTG9vcFNvdXJjZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAt
NzMsNyArNzQsNyBAQCBwcml2YXRlOgogICAgIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UgbV9h
Y3RpdmVUaW1lckhhbmRsZXI7CiAgICAgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSBtX3RhZ1Rp
bWVySGFuZGxlcjsKIAotICAgIE11dGV4IG1fdGFnTXV0ZXg7CisgICAgTG9jayBtX3RhZ011dGV4
OwogICAgIEdSZWZQdHI8R3N0VGFnTGlzdD4gbV90YWdzOwogfTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NCwxNCArODQsMTQgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OnJlcXVlc3RSZQogICAgICAgICBzZXRJc0FjdGl2ZSh0cnVlKTsKICAgICB9CiAKLSAg
ICBNdXRleExvY2tlciBsb2NrKG11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgp
KTsKICAgICBzZXRJc1NjaGVkdWxlZCh0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9p
ZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQoZG91YmxlIG5vd1Nl
Y29uZHMsIGRvdWJsZSBvdXRwdXRUaW1lU2Vjb25kcykKIHsKLSAgICBNdXRleExvY2tlciBsb2Nr
KG11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgpKTsKICAgICBpZiAoIWlzUHJl
dmlvdXNGcmFtZURvbmUoKSkKICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxMiwyMSArNTEyLDIxIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjoKIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmFkZExpc3RlbmVyKE1lZGlhUGxheWVyTGlzdGVu
ZXIqIGxpc3RlbmVyKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4TGlzdGVuZXJz
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4TGlzdGVuZXJzKTsKIAogICAgIG1fbGlz
dGVuZXJzLmFkZChsaXN0ZW5lcik7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uOjpyZW1vdmVMaXN0ZW5lcihNZWRpYVBsYXllckxpc3RlbmVyKiBsaXN0ZW5lcikK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7CiAKICAgICBtX2xpc3RlbmVycy5yZW1vdmUo
bGlzdGVuZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6
bm90aWZ5RGVsZXRlZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5l
cnMpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5lcnMpOwogCiAgICAgZm9y
IChIYXNoU2V0PE1lZGlhUGxheWVyTGlzdGVuZXIqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2xp
c3RlbmVycy5iZWdpbigpOyBpdCAhPSBtX2xpc3RlbmVycy5lbmQoKTsgKytpdCkKICAgICAgICAg
KCppdCktPm9uTWVkaWFQbGF5ZXJEZWxldGVkKCk7CkBAIC03MDQsNyArNzA0LDcgQEAgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBNZWRpYVBsYXllclByaQogCiBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6QXN5bmNDYWxsYmFjazo6
SW52b2tlKF9fUlBDX19pbl9vcHQgSU1GQXN5bmNSZXN1bHQgKnBBc3luY1Jlc3VsdCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9t
dXRleCk7CiAKICAgICBpZiAoIW1fbWVkaWFQbGF5ZXIpCiAgICAgICAgIHJldHVybiBTX09LOwpA
QCAtNzE5LDcgKzcxOSw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgTWVkaWFQbGF5ZXJQ
cmkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJh
Y2s6Om9uTWVkaWFQbGF5ZXJEZWxldGVkKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBtX21lZGlhUGxh
eWVyID0gbnVsbHB0cjsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgTWVkaWFQ
bGF5ZXJMaXN0ZW5lcjsKICAgICBIYXNoU2V0PE1lZGlhUGxheWVyTGlzdGVuZXIqPiBtX2xpc3Rl
bmVyczsKLSAgICBNdXRleCBtX211dGV4TGlzdGVuZXJzOworICAgIExvY2sgbV9tdXRleExpc3Rl
bmVyczsKIAogICAgIENPTVB0cjxJTUZNZWRpYVNlc3Npb24+IG1fbWVkaWFTZXNzaW9uOwogICAg
IENPTVB0cjxJTUZTb3VyY2VSZXNvbHZlcj4gbV9zb3VyY2VSZXNvbHZlcjsKQEAgLTE0OSw3ICsx
NDksNyBAQCBwcml2YXRlOgogICAgICAgICBVTE9ORyBtX3JlZkNvdW50OwogICAgICAgICBNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24qIG1fbWVkaWFQbGF5ZXI7CiAgICAgICAgIGJv
b2wgbV9ldmVudDsKLSAgICAgICAgTXV0ZXggbV9tdXRleDsKKyAgICAgICAgTG9jayBtX211dGV4
OwogICAgIH07CiAKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5
VGlsZUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xl
Z2FjeVRpbGVDYWNoZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgpAQCAtMjExLDkgKzIxMiw5IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9wZW5kaW5nU2Nh
bGU7CiAgICAgZmxvYXQgbV9wZW5kaW5nWm9vbWVkT3V0U2NhbGU7CiAKLSAgICBtdXRhYmxlIE11
dGV4IG1fdGlsZU11dGV4OwotICAgIG11dGFibGUgTXV0ZXggbV9zYXZlZERpc3BsYXlSZWN0TXV0
ZXg7Ci0gICAgbXV0YWJsZSBNdXRleCBtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdlTXV0ZXg7Cisg
ICAgbXV0YWJsZSBMb2NrIG1fdGlsZU11dGV4OworICAgIG11dGFibGUgTG9jayBtX3NhdmVkRGlz
cGxheVJlY3RNdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9jb250ZW50UmVwbGFjZW1lbnRJbWFn
ZU11dGV4OwogCiAgICAgYm9vbCBtX3RpbGVDb250cm9sbGVyU2hvdWxkVXNlTG93U2NhbGVUaWxl
czsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hl
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxl
Q2FjaGUubW0JKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9MZWdhY3lUaWxlQ2FjaGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2
b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0VGlsZXNPcGFxdWUoYm9vCiAgICAgaWYgKG1fdGlsZXNP
cGFxdWUgPT0gb3BhcXVlKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKIAog
ICAgIG1fdGlsZXNPcGFxdWUgPSBvcGFxdWU7CiAgICAgbV96b29tZWRPdXRUaWxlR3JpZC0+dXBk
YXRlVGlsZU9wYWNpdHkoKTsKQEAgLTE2MCw3ICsxNjAsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNo
ZTo6ZG9MYXlvdXRUaWxlcygpCiAgICAgaWYgKGlzVGlsZUNyZWF0aW9uU3VzcGVuZGVkKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIExlZ2FjeVRpbGVHcmlkKiBh
Y3RpdmVHcmlkID0gYWN0aXZlVGlsZUdyaWQoKTsKICAgICAvLyBFdmVuIHRob3VnaCB3ZSBhcmVu
J3QgYWN0dWFsbHkgY3JlYXRpbmcgdGlsZXMgaW4gdGhlIGluYWN0aXZlIGdyaWQsIHdlCiAgICAg
Ly8gc3RpbGwgbmVlZCB0byBkcm9wIGludmFsaWQgdGlsZXMgaW4gcmVzcG9uc2UgdG8gYSBsYXlv
dXQuCkBAIC0yMDAsNyArMjAwLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldEN1cnJlbnRT
Y2FsZShmbAogICAgIGlmICgha2VlcHNab29tZWRPdXRUaWxlcygpICYmICFpc1RpbGVJbnZhbGlk
YXRpb25TdXNwZW5kZWQoKSkgewogICAgICAgICAvLyBUaWxlIGludmFsaWRhdGlvbiBpcyBub3Jt
YWxseSBzdXNwZW5kZWQgZHVyaW5nIHpvb21pbmcgYnkgVUlLaXQgYnV0IHNvbWUgYXBwbGljYXRp
b25zCiAgICAgICAgIC8vIHVzaW5nIGN1c3RvbSBzY3JvbGx2aWV3cyBtYXkgem9vbSB3aXRob3V0
IHRyaWdnZXJpbmcgdGhlIGNhbGxiYWNrcy4gSW52YWxpZGF0ZSB0aGUgdGlsZXMgZXhwbGljaXRs
eS4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgICAgICBhY3RpdmVUaWxlR3JpZCgpLT5k
cm9wQWxsVGlsZXMoKTsKICAgICAgICAgYWN0aXZlVGlsZUdyaWQoKS0+Y3JlYXRlVGlsZXMoQ292
ZXJWaXNpYmxlT25seSk7CiAgICAgfQpAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgTGVnYWN5VGls
ZUNhY2hlOjpjb21taXRTY2FsZUNoYW5nZSgKICAgICBBU1NFUlQobV9wZW5kaW5nWm9vbWVkT3V0
U2NhbGUgfHwgbV9wZW5kaW5nU2NhbGUpOwogICAgIEFTU0VSVChtX3RpbGluZ01vZGUgIT0gRGlz
YWJsZWQpOwogICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogCiAgICAgaWYgKG1fcGVuZGluZ1pvb21l
ZE91dFNjYWxlKSB7CiAgICAgICAgIG1fem9vbWVkT3V0VGlsZUdyaWQtPnNldFNjYWxlKG1fcGVu
ZGluZ1pvb21lZE91dFNjYWxlKTsKQEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIExlZ2FjeVRpbGVD
YWNoZTo6bGF5b3V0VGlsZXNOb3coKQogICAgIGlmIChtX3RpbGluZ01vZGUgPT0gWm9vbWluZykK
ICAgICAgICAgbV90aWxpbmdNb2RlID0gTWluaW1hbDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAg
IExlZ2FjeVRpbGVHcmlkKiBhY3RpdmVHcmlkID0gYWN0aXZlVGlsZUdyaWQoKTsKICAgICBpZiAo
YWN0aXZlR3JpZC0+Y2hlY2tEb1NpbmdsZVRpbGVMYXlvdXQoKSkgewogICAgICAgICBtX3RpbGlu
Z01vZGUgPSBzYXZlZFRpbGluZ01vZGU7CkBAIC0zMjcsMTQgKzMyNywxNCBAQCB2b2lkIExlZ2Fj
eVRpbGVDYWNoZTo6bGF5b3V0VGlsZXNOb3coKQogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmxheW91
dFRpbGVzTm93Rm9yUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIEFTU0VSVChXZWJU
aHJlYWRJc0xvY2tlZE9yRGlzYWJsZWQoKSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGls
ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAKICAgICBhY3Rp
dmVUaWxlR3JpZCgpLT5hZGRUaWxlc0NvdmVyaW5nUmVjdChyZWN0KTsKIH0KIAogdm9pZCBMZWdh
Y3lUaWxlQ2FjaGU6OnJlbW92ZUFsbE5vblZpc2libGVUaWxlcygpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRl
eCk7CiAgICAgcmVtb3ZlQWxsTm9uVmlzaWJsZVRpbGVzSW50ZXJuYWwoKTsKIH0KIApAQCAtMzU2
LDcgKzM1Niw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNpYmwKIAog
dm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUFsbFRpbGVzKCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4
KTsKICAgICBtX3pvb21lZE91dFRpbGVHcmlkLT5kcm9wQWxsVGlsZXMoKTsKICAgICBpZiAobV96
b29tZWRJblRpbGVHcmlkKQogICAgICAgICBtX3pvb21lZEluVGlsZUdyaWQtPmRyb3BBbGxUaWxl
cygpOwpAQCAtMzY0LDcgKzM2NCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxU
aWxlcygpCiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVGb3JlZ3JvdW5kVGlsZXMoKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV90aWxlTXV0ZXgpOwogICAgIGlmICgha2VlcHNab29tZWRPdXRUaWxlcygpKQogICAg
ICAgICBtX3pvb21lZE91dFRpbGVHcmlkLT5kcm9wQWxsVGlsZXMoKTsKICAgICBpZiAobV96b29t
ZWRJblRpbGVHcmlkKQpAQCAtMzczLDEzICszNzMsMTMgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6
OnJlbW92ZUZvcmVncm91bmRUaQogCiB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0Q29udGVudFJl
cGxhY2VtZW50SW1hZ2UoUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNvbnRlbnRSZXBsYWNlbWVudElt
YWdlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdl
TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2VN
dXRleCk7CiAgICAgbV9jb250ZW50UmVwbGFjZW1lbnRJbWFnZSA9IGNvbnRlbnRSZXBsYWNlbWVu
dEltYWdlOwogfQogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTGVnYWN5VGlsZUNhY2hlOjpjb250
ZW50UmVwbGFjZW1lbnRJbWFnZSgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
Y29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9j
b250ZW50UmVwbGFjZW1lbnRJbWFnZU11dGV4KTsKICAgICByZXR1cm4gbV9jb250ZW50UmVwbGFj
ZW1lbnRJbWFnZTsKIH0KIApAQCAtNDI2LDcgKzQyNiw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hl
Ojp0aWxlQ3JlYXRpb25UaW1lckYKIHsKICAgICBpZiAoaXNUaWxlQ3JlYXRpb25TdXNwZW5kZWQo
KSkKICAgICAgICAgcmV0dXJuOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIGNyZWF0ZVRpbGVzSW5B
Y3RpdmVHcmlkKENvdmVyU3BlY3VsYXRpdmUpOwogfQogCkBAIC02MjAsNyArNjIwLDcgQEAgdm9p
ZCBMZWdhY3lUaWxlQ2FjaGU6OnNjaGVkdWxlTGF5ZXJGbHVzaAogCiB2b2lkIExlZ2FjeVRpbGVD
YWNoZTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zYXZlZERpc3BsYXlSZWN0TXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4KTsKICAgICBib29sIGFkZGVk
Rmlyc3RSZWN0ID0gbV9zYXZlZERpc3BsYXlSZWN0cy5pc0VtcHR5KCk7CiAgICAgbV9zYXZlZERp
c3BsYXlSZWN0cy5hcHBlbmQoZGlydHlSZWN0KTsKICAgICBpZiAoIWFkZGVkRmlyc3RSZWN0KQpA
QCAtNjkyLDcgKzY5Miw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjp1cGRhdGVUaWxpbmdNb2Rl
KCkKICAgICAgICAgaWYgKG1fdGlsaW5nTW9kZSA9PSBEaXNhYmxlZCkKICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgICAgIGNyZWF0ZVRpbGVzSW5B
Y3RpdmVHcmlkKENvdmVyVmlzaWJsZU9ubHkpOwogCiAgICAgICAgIGlmICghbV9zYXZlZERpc3Bs
YXlSZWN0cy5pc0VtcHR5KCkpCkBAIC03MTAsNyArNzEwLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2Fj
aGU6OnNldFRpbGluZ01vZGUoVGlsaQogICAgIGlmICgobV9wZW5kaW5nWm9vbWVkT3V0U2NhbGUg
fHwgbV9wZW5kaW5nU2NhbGUpICYmIG1fdGlsaW5nTW9kZSAhPSBEaXNhYmxlZCkKICAgICAgICAg
Y29tbWl0U2NhbGVDaGFuZ2UoKTsKICAgICBlbHNlIGlmICh3YXNab29taW5nKSB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fdGlsZU11dGV4KTsKICAgICAgICAgYnJpbmdBY3RpdmVUaWxlR3JpZFRvRnJvbnQoKTsK
ICAgICB9CiAKQEAgLTc1Myw3ICs3NTMsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6ZG9QZW5k
aW5nUmVwYWludHMoCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoaXNUaWxlSW52YWxpZGF0aW9u
U3VzcGVuZGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90
aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICBmbHVz
aFNhdmVkRGlzcGxheVJlY3RzKCk7CiB9CiAKQEAgLTc2NCw3ICs3NjQsNyBAQCB2b2lkIExlZ2Fj
eVRpbGVDYWNoZTo6Zmx1c2hTYXZlZERpc3BsYXlSCiAKICAgICBWZWN0b3I8SW50UmVjdD4gcmVj
dHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zYXZlZERpc3BsYXlSZWN0
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NhdmVkRGlzcGxheVJlY3RNdXRl
eCk7CiAgICAgICAgIG1fc2F2ZWREaXNwbGF5UmVjdHMuc3dhcChyZWN0cyk7CiAgICAgfQogICAg
IHNpemVfdCBzaXplID0gcmVjdHMuc2l6ZSgpOwpAQCAtNzkyLDcgKzc5Miw3IEBAIHZvaWQgTGVn
YWN5VGlsZUNhY2hlOjpwcmVwYXJlVG9EcmF3KCkKICAgICBbW21fd2luZG93IGNvbnRlbnRWaWV3
XSB2aWV3V2lsbERyYXddOwogCiAgICAgaWYgKCFtX3NhdmVkRGlzcGxheVJlY3RzLmlzRW1wdHko
KSkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgICAgIGZsdXNoU2F2ZWREaXNwbGF5
UmVjdHMoKTsKICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVn
YWN5VGlsZUxheWVyUG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzUsNyArNzYsNyBAQCBwcml2YXRlOgog
ICAgIFZlY3RvcjxJbnRTaXplPiBtX3NpemVzSW5QcnVuZU9yZGVyOwogICAgIHVuc2lnbmVkIG1f
dG90YWxCeXRlczsKICAgICB1bnNpZ25lZCBtX2NhcGFjaXR5OwotICAgIE11dGV4IG1fbGF5ZXJQ
b29sTXV0ZXg7CisgICAgTG9jayBtX2xheWVyUG9vbE11dGV4OwogCiAgICAgZG91YmxlIG1fbGFz
dEFkZFRpbWU7CiAgICAgYm9vbCBtX25lZWRzUHJ1bmU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbQkocmV2aXNpb24gMTg4
NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBMZWdhY3lUaWxlTGF5ZXJQ
b29sOjphZGRMYXllcihjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bGF5ZXJQb29sTXV0ZXgpOwogICAgIGxpc3RPZkxheWVyc1dpdGhTaXplKGxheWVyU2l6ZSkucHJl
cGVuZChsYXllcik7CiAgICAgbV90b3RhbEJ5dGVzICs9IGJ5dGVzQmFja2luZ0xheWVyV2l0aFBp
eGVsU2l6ZShsYXllclNpemUpOwogCkBAIC05Niw3ICs5Niw3IEBAIFJldGFpblB0cjxMZWdhY3lU
aWxlTGF5ZXI+IExlZ2FjeVRpbGVMYXkKIHsKICAgICBpZiAoIWNhblJldXNlTGF5ZXJXaXRoU2l6
ZShzaXplKSkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9s
YXllclBvb2xNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7
CiAgICAgTGF5ZXJMaXN0JiByZXVzZUxpc3QgPSBsaXN0T2ZMYXllcnNXaXRoU2l6ZShzaXplLCBN
YXJrQXNVc2VkKTsKICAgICBpZiAocmV1c2VMaXN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IG5pbDsKQEAgLTEwNiw3ICsxMDYsNyBAQCBSZXRhaW5QdHI8TGVnYWN5VGlsZUxheWVyPiBMZWdh
Y3lUaWxlTGF5CiAKIHZvaWQgTGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkodW5zaWdu
ZWQgY2FwYWNpdHkpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgcmV1c2VMb2NrZXIobV9sYXllclBvb2xN
dXRleCk7CisgICAgTG9ja0hvbGRlciByZXVzZUxvY2tlcihtX2xheWVyUG9vbE11dGV4KTsKICAg
ICBpZiAoY2FwYWNpdHkgPCBtX2NhcGFjaXR5KQogICAgICAgICBzY2hlZHVsZVBydW5lKCk7CiAg
ICAgbV9jYXBhY2l0eSA9IGNhcGFjaXR5OwpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgTGVnYWN5
VGlsZUxheWVyUG9vbDo6c2NoZWR1bGVQcnVuZSgKIAogdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29s
OjpwcnVuZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwogICAgIEFTU0VSVChtX25l
ZWRzUHJ1bmUpOwogICAgIG1fbmVlZHNQcnVuZSA9IGZhbHNlOwogICAgIHVuc2lnbmVkIHNocmlu
a1RvID0gZGVjYXllZENhcGFjaXR5KCk7CkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBMZWdhY3lU
aWxlTGF5ZXJQb29sOjpwcnVuZSgpCiAKIHZvaWQgTGVnYWN5VGlsZUxheWVyUG9vbDo6ZHJhaW4o
KQogewotICAgIE11dGV4TG9ja2VyIHJldXNlTG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgcmV1c2VMb2NrZXIobV9sYXllclBvb2xNdXRleCk7CiAgICAgbV9yZXVzZUxp
c3RzLmNsZWFyKCk7CiAgICAgbV9zaXplc0luUHJ1bmVPcmRlci5jbGVhcigpOwogICAgIG1fdG90
YWxCeXRlcyA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybERvd25sb2FkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYwLDcgKzYwLDcgQEAgQ3VybERvd25sb2FkTWFuYWdlcjo6fkN1cmxEb3dubG9h
ZE1hbmFnZQogCiBib29sIEN1cmxEb3dubG9hZE1hbmFnZXI6OmFkZChDVVJMKiBjdXJsSGFuZGxl
KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX211dGV4KTsKIAogICAgIG1fcGVuZGluZ0hhbmRsZUxpc3QuYXBwZW5kKGN1cmxIYW5k
bGUpOwogICAgIHN0YXJ0VGhyZWFkSWZOZWVkZWQoKTsKQEAgLTcwLDcgKzcwLDcgQEAgYm9vbCBD
dXJsRG93bmxvYWRNYW5hZ2VyOjphZGQoQ1VSTCogY3VybAogCiBib29sIEN1cmxEb3dubG9hZE1h
bmFnZXI6OnJlbW92ZShDVVJMKiBjdXJsSGFuZGxlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIG1fcmVt
b3ZlZEhhbmRsZUxpc3QuYXBwZW5kKGN1cmxIYW5kbGUpOwogCkBAIC03OSwxMyArNzksMTMgQEAg
Ym9vbCBDdXJsRG93bmxvYWRNYW5hZ2VyOjpyZW1vdmUoQ1VSTCogYwogCiBpbnQgQ3VybERvd25s
b2FkTWFuYWdlcjo6Z2V0QWN0aXZlRG93bmxvYWRDb3VudCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwog
ICAgIHJldHVybiBtX2FjdGl2ZUhhbmRsZUxpc3Quc2l6ZSgpOwogfQogCiBpbnQgQ3VybERvd25s
b2FkTWFuYWdlcjo6Z2V0UGVuZGluZ0Rvd25sb2FkQ291bnQoKSBjb25zdAogewotICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsK
ICAgICByZXR1cm4gbV9wZW5kaW5nSGFuZGxlTGlzdC5zaXplKCk7CiB9CiAKQEAgLTExMSw3ICsx
MTEsNyBAQCB2b2lkIEN1cmxEb3dubG9hZE1hbmFnZXI6OnN0b3BUaHJlYWQoKQogCiB2b2lkIEN1
cmxEb3dubG9hZE1hbmFnZXI6OnN0b3BUaHJlYWRJZklkbGUoKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAg
IGlmICghZ2V0QWN0aXZlRG93bmxvYWRDb3VudCgpICYmICFnZXRQZW5kaW5nRG93bmxvYWRDb3Vu
dCgpKQogICAgICAgICBzZXRSdW5UaHJlYWQoZmFsc2UpOwpAQCAtMTE5LDcgKzExOSw3IEBAIHZv
aWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RvcFRocmVhZElmSWQKIAogdm9pZCBDdXJsRG93bmxv
YWRNYW5hZ2VyOjp1cGRhdGVIYW5kbGVMaXN0KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICAvLyBSZW1v
dmUgY3VybCBlYXN5IGhhbmRsZXMgZnJvbSBtdWx0aSBsaXN0IAogICAgIGludCBzaXplID0gbV9y
ZW1vdmVkSGFuZGxlTGlzdC5zaXplKCk7CkBAIC0yNDUsNyArMjQ1LDcgQEAgQ3VybERvd25sb2Fk
OjpDdXJsRG93bmxvYWQoKQogCiBDdXJsRG93bmxvYWQ6On5DdXJsRG93bmxvYWQoKQogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211
dGV4KTsKIAogICAgIGlmIChtX3VybCkKICAgICAgICAgZmFzdEZyZWUobV91cmwpOwpAQCAtMjYy
LDcgKzI2Miw3IEBAIHZvaWQgQ3VybERvd25sb2FkOjppbml0KEN1cmxEb3dubG9hZExpc3QKICAg
ICBpZiAoIWxpc3RlbmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBtX2N1
cmxIYW5kbGUgPSBjdXJsX2Vhc3lfaW5pdCgpOwogCkBAIC0yOTUsNyArMjk1LDcgQEAgdm9pZCBD
dXJsRG93bmxvYWQ6OmluaXQoQ3VybERvd25sb2FkTGlzdAogICAgIGlmICghbGlzdGVuZXIpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIFVSTCB1cmwoUGFyc2VkVVJMU3RyaW5n
LCByZXF1ZXN0LnVybCgpKTsKIApAQCAtMzE3LDI1ICszMTcsMjUgQEAgYm9vbCBDdXJsRG93bmxv
YWQ6OmNhbmNlbCgpCiAKIFN0cmluZyBDdXJsRG93bmxvYWQ6OmdldFRlbXBQYXRoKCkgY29uc3QK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fdGVtcFBhdGg7CiB9CiAKIFN0cmluZyBDdXJsRG93
bmxvYWQ6OmdldFVybCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIHJldHVybiBTdHJpbmcobV91
cmwpOwogfQogCiBSZXNvdXJjZVJlc3BvbnNlIEN1cmxEb3dubG9hZDo6Z2V0UmVzcG9uc2UoKSBj
b25zdAogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX211dGV4KTsKICAgICByZXR1cm4gbV9yZXNwb25zZTsKIH0KIAogdm9pZCBDdXJs
RG93bmxvYWQ6OmNsb3NlRmlsZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKG1fdGVtcEhhbmRs
ZSAhPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSB7CiAgICAgICAgIFdlYkNvcmU6OmNsb3Nl
RmlsZShtX3RlbXBIYW5kbGUpOwpAQCAtMzkwLDcgKzM5MCw3IEBAIHZvaWQgQ3VybERvd25sb2Fk
OjphZGRIZWFkZXJzKGNvbnN0IFJlc28KIAogdm9pZCBDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVI
ZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
bXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKGhlYWRl
ciA9PSAiXHJcbiIgfHwgaGVhZGVyID09ICJcbiIpIHsKIApAQCAtNDMwLDcgKzQzMCw3IEBAIHZv
aWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZlSGVhZGVyKGNvbnMKIAogdm9pZCBDdXJsRG93bmxv
YWQ6OmRpZFJlY2VpdmVEYXRhKHZvaWQqIGRhdGEsIGludCBzaXplKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAog
ICAgIFJlZlB0cjxDdXJsRG93bmxvYWQ+IHByb3RlY3RlZERvd25sb2FkKHRoaXMpOwogCkBAIC00
NjQsNyArNDY0LDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmRpZEZpbmlzaCgpCiAKIHZvaWQgQ3Vy
bERvd25sb2FkOjpkaWRGYWlsKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBjbG9zZUZpbGUoKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
RG93bmxvYWQuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3
IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENVUkwqPiBtX3BlbmRpbmdIYW5kbGVMaXN0OwogICAg
IFZlY3RvcjxDVVJMKj4gbV9hY3RpdmVIYW5kbGVMaXN0OwogICAgIFZlY3RvcjxDVVJMKj4gbV9y
ZW1vdmVkSGFuZGxlTGlzdDsKLSAgICBtdXRhYmxlIE11dGV4IG1fbXV0ZXg7CisgICAgbXV0YWJs
ZSBMb2NrIG1fbXV0ZXg7CiAgICAgYm9vbCBtX3J1blRocmVhZDsKIH07CiAKQEAgLTE0MCw3ICsx
NDAsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlBsYXRmb3JtRmlsZUhhbmRsZSBtX3RlbXBI
YW5kbGU7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwogICAgIGJv
b2wgbV9kZWxldGVzRmlsZVVwb25GYWlsdXJlOwotICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsK
KyAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKICAgICBDdXJsRG93bmxvYWRMaXN0ZW5lciAqbV9s
aXN0ZW5lcjsKIAogICAgIHN0YXRpYyBDdXJsRG93bmxvYWRNYW5hZ2VyIG1fZG93bmxvYWRNYW5h
Z2VyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAJKHJldmlzaW9uIDE4ODU2OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1h
bmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMsMTAgKzEzMywxMSBAQCBzdGF0aWMgY2hh
ciogY29va2llSmFyUGF0aCgpCiAjZW5kaWYKIH0KIAotc3RhdGljIE11dGV4KiBzaGFyZWRSZXNv
dXJjZU11dGV4KGN1cmxfbG9ja19kYXRhIGRhdGEpIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoTXV0ZXgsIGNvb2tpZU11dGV4LCAoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKE11dGV4LCBkbnNNdXRleCwgKCkpOwotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc2hhcmVNdXRleCwgKCkpOworc3RhdGljIExvY2sqIHNo
YXJlZFJlc291cmNlTXV0ZXgoY3VybF9sb2NrX2RhdGEgZGF0YSkKK3sKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgY29va2llTXV0ZXgsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgZG5zTXV0ZXgsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgc2hhcmVNdXRleCwgKCkpOwogCiAgICAgc3dp
dGNoIChkYXRhKSB7CiAgICAgICAgIGNhc2UgQ1VSTF9MT0NLX0RBVEFfQ09PS0lFOgpAQCAtMTkw
LDEzICsxOTEsMTMgQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlV2ViVGltaW5nSW5mb3JtYXRpbwog
Ly8gY2FjaGUuCiBzdGF0aWMgdm9pZCBjdXJsX2xvY2tfY2FsbGJhY2soQ1VSTCogLyogaGFuZGxl
ICovLCBjdXJsX2xvY2tfZGF0YSBkYXRhLCBjdXJsX2xvY2tfYWNjZXNzIC8qIGFjY2VzcyAqLywg
dm9pZCogLyogdXNlclB0ciAqLykKIHsKLSAgICBpZiAoTXV0ZXgqIG11dGV4ID0gc2hhcmVkUmVz
b3VyY2VNdXRleChkYXRhKSkKKyAgICBpZiAoTG9jayogbXV0ZXggPSBzaGFyZWRSZXNvdXJjZU11
dGV4KGRhdGEpKQogICAgICAgICBtdXRleC0+bG9jaygpOwogfQogCiBzdGF0aWMgdm9pZCBjdXJs
X3VubG9ja19jYWxsYmFjayhDVVJMKiAvKiBoYW5kbGUgKi8sIGN1cmxfbG9ja19kYXRhIGRhdGEs
IHZvaWQqIC8qIHVzZXJQdHIgKi8pCiB7Ci0gICAgaWYgKE11dGV4KiBtdXRleCA9IHNoYXJlZFJl
c291cmNlTXV0ZXgoZGF0YSkpCisgICAgaWYgKExvY2sqIG11dGV4ID0gc2hhcmVkUmVzb3VyY2VN
dXRleChkYXRhKSkKICAgICAgICAgbXV0ZXgtPnVubG9jaygpOwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xv
b2subW0JKHdvcmtpbmcgY29weSkKQEAgLTg1LDkgKzg1LDkgQEAgTlNEaWN0aW9uYXJ5ICpXZWJD
b3JlOjpRTERpcmVjdG9yeUF0dHJpYgogICAgIHJldHVybiBkaWN0aW9uYXJ5OwogfQogCi1zdGF0
aWMgTXV0ZXgmIHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpCitzdGF0aWMgTG9j
ayYgcWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8TXV0ZXg+IG11dGV4OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2Nr
PiBtdXRleDsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lk
IFdlYkNvcmU6OmFkZFFMUHJldmlld0NvbnZlcnRlcldpdGhGCiB7CiAgICAgQVNTRVJUKHVybCk7
CiAgICAgQVNTRVJUKGNvbnZlcnRlcik7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhxbFByZXZpZXdD
b252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmll
d0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKICAgICBbUUxQcmV2aWV3Q29udmVydGVyRGlj
dGlvbmFyeSgpIHNldE9iamVjdDpjb252ZXJ0ZXIgZm9yS2V5OnVybF07CiAgICAgW1FMQ29udGVu
dERpY3Rpb25hcnkoKSBzZXRPYmplY3Q6KGZpbGVOYW1lID8gZmlsZU5hbWUgOiBAIiIpIGZvcktl
eTp1cmxdOwogfQpAQCAtMTIxLDcgKzEyMSw3IEBAIE5TU3RyaW5nICpXZWJDb3JlOjpxbFByZXZp
ZXdDb252ZXJ0ZXJVVEkKIHsKICAgICBpZCBjb252ZXJ0ZXIgPSBuaWw7CiAgICAgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRl
eCgpKTsKICAgICAgICAgY29udmVydGVyID0gW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnko
KSBvYmplY3RGb3JLZXk6dXJsXTsKICAgICB9CiAgICAgaWYgKCFjb252ZXJ0ZXIpCkBAIC0xMzEs
NyArMTMxLDcgQEAgTlNTdHJpbmcgKldlYkNvcmU6OnFsUHJldmlld0NvbnZlcnRlclVUSQogCiB2
b2lkIFdlYkNvcmU6OnJlbW92ZVFMUHJldmlld0NvbnZlcnRlckZvclVSTChOU1VSTCAqdXJsKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4
KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0
ZXgoKSk7CiAgICAgW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnkoKSByZW1vdmVPYmplY3RG
b3JLZXk6dXJsXTsKIAogICAgIC8vIERlbGV0ZSB0aGUgZmlsZSB3aGVuIHdlIHJlbW92ZSB0aGUg
cHJldmlldyBjb252ZXJ0ZXIKQEAgLTE2Niw3ICsxNjYsNyBAQCBjb25zdCBVUkwgV2ViQ29yZTo6
c2FmZVFMVVJMRm9yRG9jdW1lbnRVCiAgICAgaWQgY29udmVydGVyID0gbmlsOwogICAgIE5TVVJM
ICpuc0RvY3VtZW50VVJMID0gZG9jdW1lbnRVUkw7CiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKICAgICAg
ICAgY29udmVydGVyID0gW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnkoKSBvYmplY3RGb3JL
ZXk6bnNEb2N1bWVudFVSTF07CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgICAg
IC8vIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9vcGVuaW5nVGhyZWFkKTsKICAgICAgICAg
c3FsaXRlMyogZGIgPSBtX2RiOwogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9kYXRhYmFzZUNsb3NpbmdNdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2RhdGFiYXNlQ2xvc2luZ011dGV4KTsKICAgICAgICAgICAgIG1fZGIgPSAwOwogICAg
ICAgICB9CiAgICAgICAgIHNxbGl0ZTNfY2xvc2UoZGIpOwpAQCAtMTYwLDcgKzE2MCw3IEBAIGlu
dDY0X3QgU1FMaXRlRGF0YWJhc2U6Om1heGltdW1TaXplKCkKICAgICBpbnQ2NF90IG1heFBhZ2VD
b3VudCA9IDA7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6
ZXJMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAg
ICAgICAgIGVuYWJsZUF1dGhvcml6ZXIoZmFsc2UpOwogICAgICAgICBTUUxpdGVTdGF0ZW1lbnQg
c3RhdGVtZW50KCp0aGlzLCBBU0NJSUxpdGVyYWwoIlBSQUdNQSBtYXhfcGFnZV9jb3VudCIpKTsK
ICAgICAgICAgbWF4UGFnZUNvdW50ID0gc3RhdGVtZW50LmdldENvbHVtbkludDY0KDApOwpAQCAt
MTgwLDcgKzE4MCw3IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OnNldE1heGltdW1TaXplKGludDYK
ICAgICBBU1NFUlQoY3VycmVudFBhZ2VTaXplIHx8ICFtX2RiKTsKICAgICBpbnQ2NF90IG5ld01h
eFBhZ2VDb3VudCA9IGN1cnJlbnRQYWdlU2l6ZSA/IHNpemUgLyBjdXJyZW50UGFnZVNpemUgOiAw
OwogICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICBlbmFibGVBdXRob3JpemVy
KGZhbHNlKTsKIAogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsICJQUkFHTUEg
bWF4X3BhZ2VfY291bnQgPSAiICsgU3RyaW5nOjpudW1iZXIobmV3TWF4UGFnZUNvdW50KSk7CkBA
IC0xOTcsNyArMTk3LDcgQEAgaW50IFNRTGl0ZURhdGFiYXNlOjpwYWdlU2l6ZSgpCiAgICAgLy8g
U2luY2UgdGhlIHBhZ2Ugc2l6ZSBvZiBhIGRhdGFiYXNlIGlzIGxvY2tlZCBpbiBhdCBjcmVhdGlv
biBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBkeW5hbWljLCAKICAgICAvLyB3ZSBjYW4gY2FjaGUg
dGhlIHZhbHVlIGZvciBmdXR1cmUgdXNlCiAgICAgaWYgKG1fcGFnZVNpemUgPT0gLTEpIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICAgICAgZW5hYmxlQXV0aG9yaXpl
cihmYWxzZSk7CiAgICAgICAgIAogICAgICAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KCp0
aGlzLCBBU0NJSUxpdGVyYWwoIlBSQUdNQSBwYWdlX3NpemUiKSk7CkBAIC0yMTQsNyArMjE0LDcg
QEAgaW50NjRfdCBTUUxpdGVEYXRhYmFzZTo6ZnJlZVNwYWNlU2l6ZSgpCiAgICAgaW50NjRfdCBm
cmVlbGlzdENvdW50ID0gMDsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
YXV0aG9yaXplckxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJM
b2NrKTsKICAgICAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CiAgICAgICAgIC8vIE5vdGU6
IGZyZWVsaXN0X2NvdW50IHdhcyBhZGRlZCBpbiBTUUxpdGUgMy40LjEuCiAgICAgICAgIFNRTGl0
ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsIEFTQ0lJTGl0ZXJhbCgiUFJBR01BIGZyZWVsaXN0
X2NvdW50IikpOwpAQCAtMjMwLDcgKzIzMCw3IEBAIGludDY0X3QgU1FMaXRlRGF0YWJhc2U6OnRv
dGFsU2l6ZSgpCiAgICAgaW50NjRfdCBwYWdlQ291bnQgPSAwOwogCiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwogICAgICAgICBlbmFibGVBdXRob3JpemVyKGZhbHNl
KTsKICAgICAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudCgqdGhpcywgQVNDSUlMaXRlcmFs
KCJQUkFHTUEgcGFnZV9jb3VudCIpKTsKICAgICAgICAgcGFnZUNvdW50ID0gc3RhdGVtZW50Lmdl
dENvbHVtbkludDY0KDApOwpAQCAtMzA5LDcgKzMwOSw3IEBAIGludCBTUUxpdGVEYXRhYmFzZTo6
cnVuVmFjdXVtQ29tbWFuZCgpCiAKIGludCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVtZW50YWxW
YWN1dW1Db21tYW5kKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9j
ayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAgICAgZW5hYmxl
QXV0aG9yaXplcihmYWxzZSk7CiAKICAgICBpZiAoIWV4ZWN1dGVDb21tYW5kKEFTQ0lJTGl0ZXJh
bCgiUFJBR01BIGluY3JlbWVudGFsX3ZhY3V1bSIpKSkKQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lk
IFNRTGl0ZURhdGFiYXNlOjpzZXRBdXRob3JpemVyKFBhc3NSCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAKICAgICBtX2F1dGhvcml6ZXIgPSBh
dXRoOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURh
dGFiYXNlLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nx
bC9TUUxpdGVEYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAKICNp
bmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHNxbGl0ZTMuaD4KKyNpbmNsdWRlIDx3dGYv
TG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0xMDYsNyArMTA3
LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2V0QXV0aG9yaXplcihQYXNzUmVmUHRyPERh
dGFiYXNlQXV0aG9yaXplcj4pOwogCi0gICAgTXV0ZXgmIGRhdGFiYXNlTXV0ZXgoKSB7IHJldHVy
biBtX2xvY2tpbmdNdXRleDsgfQorICAgIExvY2smIGRhdGFiYXNlTXV0ZXgoKSB7IHJldHVybiBt
X2xvY2tpbmdNdXRleDsgfQogICAgIGJvb2wgaXNBdXRvQ29tbWl0T24oKSBjb25zdDsKIAogICAg
IC8vIFRoZSBTUUxpdGUgQVVUT19WQUNVVU0gcHJhZ21hIGNhbiBiZSBlaXRoZXIgTk9ORSwgRlVM
TCwgb3IgSU5DUkVNRU5UQUwuCkBAIC0xNDcsMTMgKzE0OCwxMyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3M7CiAgICAgYm9vbCBtX3NoYXJhYmxlOwogICAgIAot
ICAgIE11dGV4IG1fYXV0aG9yaXplckxvY2s7CisgICAgTG9jayBtX2F1dGhvcml6ZXJMb2NrOwog
ICAgIFJlZlB0cjxEYXRhYmFzZUF1dGhvcml6ZXI+IG1fYXV0aG9yaXplcjsKIAotICAgIE11dGV4
IG1fbG9ja2luZ011dGV4OworICAgIExvY2sgbV9sb2NraW5nTXV0ZXg7CiAgICAgVGhyZWFkSWRl
bnRpZmllciBtX29wZW5pbmdUaHJlYWQ7CiAKLSAgICBNdXRleCBtX2RhdGFiYXNlQ2xvc2luZ011
dGV4OworICAgIExvY2sgbV9kYXRhYmFzZUNsb3NpbmdNdXRleDsKIAogICAgIGludCBtX29wZW5F
cnJvcjsKICAgICBDU3RyaW5nIG1fb3BlbkVycm9yTWVzc2FnZTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCShyZXZpc2lvbiAxODg1
NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBpbnQgU1FMaXRlU3RhdGVtZW50OjpwcmVw
YXJlKCkKIHsKICAgICBBU1NFUlQoIW1faXNQcmVwYXJlZCk7CiAKLSAgICBNdXRleExvY2tlciBk
YXRhYmFzZUxvY2sobV9kYXRhYmFzZS5kYXRhYmFzZU11dGV4KCkpOworICAgIExvY2tIb2xkZXIg
ZGF0YWJhc2VMb2NrKG1fZGF0YWJhc2UuZGF0YWJhc2VNdXRleCgpKTsKIAogICAgIENTdHJpbmcg
cXVlcnkgPSBtX3F1ZXJ5LnN0cmlwV2hpdGVTcGFjZSgpLnV0ZjgoKTsKICAgICAKQEAgLTg2LDcg
Kzg2LDcgQEAgaW50IFNRTGl0ZVN0YXRlbWVudDo6cHJlcGFyZSgpCiAKIGludCBTUUxpdGVTdGF0
ZW1lbnQ6OnN0ZXAoKQogewotICAgIE11dGV4TG9ja2VyIGRhdGFiYXNlTG9jayhtX2RhdGFiYXNl
LmRhdGFiYXNlTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBkYXRhYmFzZUxvY2sobV9kYXRhYmFz
ZS5kYXRhYmFzZU11dGV4KCkpOwogCiAgICAgaWYgKCFtX3N0YXRlbWVudCkKICAgICAgICAgcmV0
dXJuIFNRTElURV9PSzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5j
cHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3IEBAIFdvcmtlclRocmVhZDo6
fldvcmtlclRocmVhZCgpCiBib29sIFdvcmtlclRocmVhZDo6c3RhcnQoKQogewogICAgIC8vIE11
dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IG1fdGhyZWFkSUQgaXMg
aW5pdGlhbGl6ZWQgd2hlbiB0aGUgdGhyZWFkIHN0YXJ0cy4KLSAgICBNdXRleExvY2tlciBsb2Nr
KG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3Jl
YXRpb25NdXRleCk7CiAKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiAj
ZW5kaWYKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsK
ICAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKG1f
c3RhcnR1cERhdGEtPm1fc2NyaXB0VVJMLCBtX3N0YXJ0dXBEYXRhLT5tX3VzZXJBZ2VudCwgbV9z
dGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fc3RhcnR1cERhdGEtPm1fY29u
dGVudFNlY3VyaXR5UG9saWN5VHlwZSwgbV9zdGFydHVwRGF0YS0+bV90b3BPcmlnaW4ucmVsZWFz
ZSgpKTsKIAogICAgICAgICBpZiAobV9ydW5Mb29wLnRlcm1pbmF0ZWQoKSkgewpAQCAtMTg5LDcg
KzE4OSw3IEBAIHZvaWQgV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AoKQogdm9pZCBXb3JrZXJU
aHJlYWQ6OnN0b3AoKQogewogICAgIC8vIE11dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IGJl
Y2F1c2Ugc3RvcCgpIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHRoZSBjb250ZXh0IGlzIGZ1bGx5IGNy
ZWF0ZWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwogCiAgICAgLy8gRW5zdXJl
IHRoYXQgdGFza3MgYXJlIGJlaW5nIGhhbmRsZWQgYnkgdGhyZWFkIGV2ZW50IGxvb3AuIElmIHNj
cmlwdCBleGVjdXRpb24gd2VyZW4ndCBmb3JiaWRkZW4sIGEgd2hpbGUoMSkgbG9vcCBpbiBKUyBj
b3VsZCBrZWVwIHRoZSB0aHJlYWQgYWxpdmUgZm9yZXZlci4KICAgICBpZiAobV93b3JrZXJHbG9i
YWxTY29wZSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCShyZXZp
c2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgV29ya2VyUmVwb3J0aW5nUHJveHkmIG1fd29ya2VyUmVwb3J0aW5nUHJveHk7CiAKICAgICAg
ICAgUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBtX3dvcmtlckdsb2JhbFNjb3BlOwotICAgICAg
ICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CisgICAgICAgIExvY2sgbV90aHJlYWRDcmVh
dGlvbk11dGV4OwogCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJUaHJlYWRTdGFydHVw
RGF0YT4gbV9zdGFydHVwRGF0YTsKIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTkg
QEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2Nr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERhdGFi
YXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFz
ZVByb2Nlc3M6OnBvc3REYXRhYmFzZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVBy
b2Nlc3M6OnBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nl
c3MvRGF0YWJhc2VQcm9jZXNzLmg6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpzaHV0ZG93bik6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0
TWFpblRocmVhZFRhc2spOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6cGVy
Zm9ybU5leHRNYWluVGhyZWFkVGFzayk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpwb3N0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJh
c2U6OnBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2Up
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2VGcm9tU2Vjb25kYXJ5
VGhyZWFkKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6d2FpdEZvclN5bmNSZXBseSk6Cisg
ICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ1N5bmNSZXBseSk6CisgICAg
ICAgIChJUEM6OkNvbm5lY3Rpb246OmNvbm5lY3Rpb25EaWRDbG9zZSk6CisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6OmFwcGVuZFVwZGF0ZSk6CisgICAgICAgICogU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmg6CisgICAgICAgICog
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRl
Q29tcG9zaXRpbmdUaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6
OnJ1bkNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3Np
dG9yOjp0ZXJtaW5hdGVDb21wb3NpdGluZ1RocmVhZCk6CisgICAgICAgICogU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oOgor
ICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90
b2NvbE1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyOjphZGRDdXN0b21Qcm90b2NvbCk6CisgICAgICAgIChXZWJLaXQ6OkN1c3RvbVByb3RvY29s
TWFuYWdlcjo6cmVtb3ZlQ3VzdG9tUHJvdG9jb2wpOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Q
cm90b2NvbE1hbmFnZXI6OnJlZ2lzdGVyU2NoZW1lKToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyOjp1bnJlZ2lzdGVyU2NoZW1lKToKKyAgICAgICAgKFdlYktpdDo6Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyOjpzdXBwb3J0c1NjaGVtZSk6CisgICAgICAgIChXZWJLaXQ6OkN1
c3RvbVByb3RvY29sTWFuYWdlcjo6cHJvdG9jb2xGb3JJRCk6CisgICAgICAgICogU2hhcmVkL05l
dHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oOgorICAgICAgICAq
IFNoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpnZXRQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlcjo6cmVtb3ZlUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OnBsdWdpblByb2Nlc3NDcmFz
aGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6YWRkU2Nyb2xsaW5nVHJl
ZUZvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OnJlbW92ZVNjcm9s
bGluZ1RyZWVGb3JQYWdlKToKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjp3aGVl
bEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0u
Y3BwOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyk6Cisg
ICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtQWRkRGF0YSk6CisKIDIwMTUtMDgt
MTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBTcGVjdWxhdGl2ZSBHVEsgYnVpbGQgZml4IGFmdGVyIHIxODg1NTMKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCShyZXZp
c2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQ
cm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgRGF0YWJh
c2VQcm9jZXNzOjpwb3N0RGF0YWJhc2VUYXNrKHMKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwogCiAgICAgbV9kYXRh
YmFzZVRhc2tzLmFwcGVuZChXVEY6Om1vdmUodGFzaykpOwogCkBAIC0xNjYsNyArMTY2LDcgQEAg
dm9pZCBEYXRhYmFzZVByb2Nlc3M6OnBlcmZvcm1OZXh0RGF0YWJhcwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPEFzeW5jVGFzaz4gdGFzazsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRh
YmFzZVRhc2tNdXRleCk7CiAgICAgICAgIEFTU0VSVCghbV9kYXRhYmFzZVRhc2tzLmlzRW1wdHko
KSk7CiAgICAgICAgIHRhc2sgPSBtX2RhdGFiYXNlVGFza3MudGFrZUZpcnN0KCk7CiAgICAgfQpJ
bmRleDogU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nl
c3MuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgcHJp
dmF0ZToKICAgICBIYXNoTWFwPFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllciwgUmVmUHRyPFVu
aXF1ZUlEQkRhdGFiYXNlPj4gbV9pZGJEYXRhYmFzZXM7CiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1
ZV9wdHI8QXN5bmNUYXNrPj4gbV9kYXRhYmFzZVRhc2tzOwotICAgIE11dGV4IG1fZGF0YWJhc2VU
YXNrTXV0ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlVGFza011dGV4OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAkocmV2aXNpb24g
MTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9Vbmlx
dWVJREJEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpzaHV0ZG93bihVbmlxdWVJCiAgICAgcmVmKCk7CiAKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CiAgICAgICAgIG1fZGF0
YWJhc2VUYXNrcy5jbGVhcigpOwogICAgIH0KIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6cG9zdE1haW5UaHJlYWRUYQogICAgIGlmICghbV9hY2NlcHRpbmdO
ZXdSZXF1ZXN0cyAmJiB0YXNrVHlwZSA9PSBEYXRhYmFzZVRhc2tUeXBlOjpOb3JtYWwpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbWFpblRocmVhZFRhc2tNdXRleCk7CiAKICAg
ICBtX21haW5UaHJlYWRUYXNrcy5hcHBlbmQoV1RGOjptb3ZlKHRhc2spKTsKIApAQCAtMTE0Myw3
ICsxMTQzLDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybU5leHRNYWluVAogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFzazsKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0ZXgpOwogCiAgICAgICAgIC8vIFRoaXMgZGF0YWJh
c2UgbWlnaHQgYmUgc2h1dHRpbmcgZG93biwgaW4gd2hpY2ggY2FzZSB0aGUgdGFzayBxdWV1ZSBt
aWdodCBiZSBlbXB0eS4KICAgICAgICAgaWYgKG1fbWFpblRocmVhZFRhc2tzLmlzRW1wdHkoKSkK
QEAgLTExNjUsNyArMTE2NSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBvc3REYXRhYmFz
ZVRhc2sKICAgICBpZiAoIW1fYWNjZXB0aW5nTmV3UmVxdWVzdHMgJiYgdGFza1R5cGUgPT0gRGF0
YWJhc2VUYXNrVHlwZTo6Tm9ybWFsKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9k
YXRhYmFzZVRhc2tNdXRleCk7CiAKICAgICBtX2RhdGFiYXNlVGFza3MuYXBwZW5kKFdURjo6bW92
ZSh0YXNrKSk7CiAKQEAgLTExODYsNyArMTE4Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnBlcmZvcm1OZXh0RGF0YWIKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1Rhc2s+IHRhc2s7
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwogCiAgICAg
ICAgIC8vIFRoaXMgZGF0YWJhc2UgbWlnaHQgYmUgc2h1dHRpbmcgZG93biBvbiB0aGUgbWFpbiB0
aHJlYWQsIGluIHdoaWNoIGNhc2UgdGhlIHRhc2sgcXVldWUgbWlnaHQgYmUgZW1wdHkuCiAgICAg
ICAgIGlmIChtX2RhdGFiYXNlVGFza3MuaXNFbXB0eSgpKQpJbmRleDogU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0
YWJhc2UuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAs
MTAgKzIxMCwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZUJhY2tp
bmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8QXN5
bmNUYXNrPj4gbV9kYXRhYmFzZVRhc2tzOwotICAgIE11dGV4IG1fZGF0YWJhc2VUYXNrTXV0ZXg7
CisgICAgTG9jayBtX2RhdGFiYXNlVGFza011dGV4OwogCiAgICAgRGVxdWU8c3RkOjp1bmlxdWVf
cHRyPEFzeW5jVGFzaz4+IG1fbWFpblRocmVhZFRhc2tzOwotICAgIE11dGV4IG1fbWFpblRocmVh
ZFRhc2tNdXRleDsKKyAgICBMb2NrIG1fbWFpblRocmVhZFRhc2tNdXRleDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25u
ZWN0aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTksNyArNDU5LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aQogCiAgICAgLy8gUHVzaCB0aGUg
cGVuZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uIG9uIG91ciBzdGFjay4KICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogICAgICAgICBpZiAoIW1f
c2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzKSB7CiAgICAgICAgICAgICBkaWRGYWlsVG9TZW5kU3lu
Y01lc3NhZ2UoKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNDg2LDcgKzQ4Niw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAogICAgIC8vIEZp
bmFsbHksIHBvcCB0aGUgcGVuZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uLgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAgICAgICAgIEFTU0VS
VChtX3BlbmRpbmdTeW5jUmVwbGllcy5sYXN0KCkuc3luY1JlcXVlc3RJRCA9PSBzeW5jUmVxdWVz
dElEKTsKICAgICAgICAgbV9wZW5kaW5nU3luY1JlcGxpZXMucmVtb3ZlTGFzdCgpOwogICAgIH0K
QEAgLTUwOCw3ICs1MDgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5l
Y3RpCiAKICAgICAvLyBQdXNoIHRoZSBwZW5kaW5nIHN5bmMgcmVwbHkgaW5mb3JtYXRpb24gb24g
b3VyIHN0YWNrLgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5
U3RhdGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVN
dXRleCk7CiAgICAgICAgIGlmICghbV9zaG91bGRXYWl0Rm9yU3luY1JlcGxpZXMpCiAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtNTI2LDcgKzUyNiw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAogICAgIC8vIEZpbmFsbHksIHBvcCB0aGUgcGVu
ZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uLgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAgICAgICAgIEFTU0VSVChtX3NlY29uZGFyeVRocmVh
ZFBlbmRpbmdTeW5jUmVwbHlNYXAuY29udGFpbnMoc3luY1JlcXVlc3RJRCkpOwogICAgICAgICBt
X3NlY29uZGFyeVRocmVhZFBlbmRpbmdTeW5jUmVwbHlNYXAucmVtb3ZlKHN5bmNSZXF1ZXN0SUQp
OwogICAgIH0KQEAgLTU0Niw3ICs1NDYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29k
ZXI+IENvbm5lY3RpCiAgICAgICAgIFN5bmNNZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmRpc3Bh
dGNoTWVzc2FnZXMobnVsbHB0cik7CiAgICAgICAgIAogICAgICAgICB7Ci0gICAgICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAKICAgICAgICAgICAgIC8v
IFNlY29uZCwgY2hlY2sgaWYgdGhlcmUgaXMgYSBzeW5jIHJlcGx5IGF0IHRoZSB0b3Agb2YgdGhl
IHN0YWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3BlbmRpbmdTeW5jUmVwbGllcy5pc0VtcHR5
KCkpOwpAQCAtNTkyLDcgKzU5Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4g
Q29ubmVjdGkKIAogdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdTeW5jUmVwbHkoc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBkZWNvZGVyKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
c3luY1JlcGx5U3RhdGVNdXRleCk7CiAKICAgICAvLyBHbyB0aHJvdWdoIHRoZSBzdGFjayBvZiBz
eW5jIHJlcXVlc3RzIHRoYXQgaGF2ZSBwZW5kaW5nIHJlcGxpZXMgYW5kIHNlZSB3aGljaCBvbmUK
ICAgICAvLyB0aGlzIHJlcGx5IGlzIGZvci4KQEAgLTc1MCw3ICs3NTAsNyBAQCB2b2lkIENvbm5l
Y3Rpb246OmNvbm5lY3Rpb25EaWRDbG9zZSgpCiAgICAgcGxhdGZvcm1JbnZhbGlkYXRlKCk7CiAK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogCiAg
ICAgICAgIEFTU0VSVChtX3Nob3VsZFdhaXRGb3JTeW5jUmVwbGllcyk7CiAgICAgICAgIG1fc2hv
dWxkV2FpdEZvclN5bmNSZXBsaWVzID0gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcg
QEAKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvV29ya1F1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0yOTgs
NyArMjk5LDcgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBTeW5jTWVzc2FnZVN0YXRlOwogICAgIGZy
aWVuZCBjbGFzcyBTeW5jTWVzc2FnZVN0YXRlOwogCi0gICAgTXV0ZXggbV9zeW5jUmVwbHlTdGF0
ZU11dGV4OworICAgIExvY2sgbV9zeW5jUmVwbHlTdGF0ZU11dGV4OwogICAgIGJvb2wgbV9zaG91
bGRXYWl0Rm9yU3luY1JlcGxpZXM7CiAgICAgVmVjdG9yPFBlbmRpbmdTeW5jUmVwbHk+IG1fcGVu
ZGluZ1N5bmNSZXBsaWVzOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY5MCw3ICs2OTAsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6
YXBwZW5kVXBkCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcmVuZGVyUXVldWVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9yZW5kZXJRdWV1ZU11dGV4KTsKICAgICBtX3JlbmRlclF1ZXVlLmFwcGVu
ZChXVEY6Om1vdmUoZnVuY3Rpb24pKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgog
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRl
IDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0xNDUsNyAr
MTQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFJlbmRlciBxdWV1ZSBjYW4gYmUgYWNjZXNzZWQg
b255IGZyb20gbWFpbiB0aHJlYWQgb3IgdXBkYXRlUGFpbnROb2RlIGNhbGwgc3RhY2shCiAgICAg
VmVjdG9yPHN0ZDo6ZnVuY3Rpb248dm9pZCgpPj4gbV9yZW5kZXJRdWV1ZTsKLSAgICBNdXRleCBt
X3JlbmRlclF1ZXVlTXV0ZXg7CisgICAgTG9jayBtX3JlbmRlclF1ZXVlTXV0ZXg7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVyOwog
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhy
ZWFkZWRDb21wb3NpdG9yLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIFRocmVh
ZGVkQ29tcG9zaXRvcjo6Y3JlYXRlQ29tcG9zaXRpCiAgICAgaWYgKG1fdGhyZWFkSWRlbnRpZmll
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW5pdGlhbGl6
ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFs
aXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKICAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVh
dGVUaHJlYWQoY29tcG9zaXRpbmdUaHJlYWRFbnRyeSwgdGhpcywgIldlYkNvcmU6IFRocmVhZGVk
Q29tcG9zaXRvciIpOwogCiAgICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbi53YWl0KG1f
aW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CkBAIC0zMDQsNyArMzA0LDcgQEAgdm9p
ZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUNvbXBvc2l0aQogdm9pZCBUaHJlYWRlZENvbXBv
c2l0b3I6OnJ1bkNvbXBvc2l0aW5nVGhyZWFkKCkKIHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogCiAg
ICAgICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wID0gc3RkOjptYWtlX3VuaXF1ZTxDb21wb3NpdGlu
Z1J1bkxvb3A+KFsmXSB7CiAgICAgICAgICAgICByZW5kZXJMYXllclRyZWUoKTsKQEAgLTMyMSw3
ICszMjEsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cnVuQ29tcG9zaXRpbmdUCiAgICAg
bV9zY2VuZS0+cHVyZ2VHTFJlc291cmNlcygpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgICAg
IG1fY29tcG9zaXRpbmdSdW5Mb29wID0gbnVsbHB0cjsKICAgICAgICAgbV9jb250ZXh0ID0gbnVs
bHB0cjsKICAgICAgICAgbV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uLnNpZ25hbCgpOwpAQCAt
MzMyLDcgKzMzMiw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpydW5Db21wb3NpdGluZ1QK
IAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnRlcm1pbmF0ZUNvbXBvc2l0aW5nVGhyZWFkKCkK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11
dGV4KTsKIAogICAgIG1fc2NlbmUtPmRldGFjaCgpOwogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29w
LT5ydW5Mb29wKCkuc3RvcCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsOSArMTExLDkg
QEAgcHJpdmF0ZToKIAogICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJZGVudGlmaWVyOwog
ICAgIFRocmVhZENvbmRpdGlvbiBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uOwotICAgIE11
dGV4IG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKKyAgICBMb2NrIG1faW5pdGlh
bGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKICAgICBUaHJlYWRDb25kaXRpb24gbV90ZXJtaW5h
dGVSdW5Mb29wQ29uZGl0aW9uOwotICAgIE11dGV4IG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlv
bk11dGV4OworICAgIExvY2sgbV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXg7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3
b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAyLDExICsxMDIsMTEgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3JlZ2lzdGVyZWRTY2hlbWVzOwotICAgIE11dGV4
IG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleDsKKyAgICBMb2NrIG1fcmVnaXN0ZXJlZFNjaGVtZXNN
dXRleDsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmV0YWluUHRyPFdLQ3VzdG9t
UHJvdG9jb2w+PiBDdXN0b21Qcm90b2NvbE1hcDsKICAgICBDdXN0b21Qcm90b2NvbE1hcCBtX2N1
c3RvbVByb3RvY29sTWFwOwotICAgIE11dGV4IG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleDsKKyAg
ICBMb2NrIG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleDsKICAgICAKICAgICAvLyBXS0N1c3RvbVBy
b3RvY29sIG9iamVjdHMgY2FuIGJlIHJlbW92ZWQgZnJvbSB0aGUgbV9jdXN0b21Qcm90b2NvbE1h
cCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCiAgICAgLy8gV2UgcmV0dXJuIGEgUmV0YWluUHRyIGhl
cmUgYmVjYXVzZSBpdCBpcyB1bnNhZmUgdG8gcmV0dXJuIGEgcmF3IHBvaW50ZXIgc2luY2UgdGhl
IG9iamVjdCBtaWdodCBpbW1lZGlhdGVseSBiZSBkZXN0cm95ZWQgZnJvbSBhIGRpZmZlcmVudCB0
aHJlYWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVBy
b3RvY29sTWFuYWdlckNvY29hLm1tCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2NSwyOCArMTY1LDI4IEBAIHZvaWQgQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyOjppbml0aWFsaXplKGMKIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyOjphZGRDdXN0b21Qcm90b2NvbChXS0N1c3RvbVByb3RvY29sICpjdXN0b21Qcm90b2NvbCkK
IHsKICAgICBBU1NFUlQoY3VzdG9tUHJvdG9jb2wpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY3VzdG9t
UHJvdG9jb2xNYXBNdXRleCk7CiAgICAgbV9jdXN0b21Qcm90b2NvbE1hcC5hZGQoY3VzdG9tUHJv
dG9jb2wuY3VzdG9tUHJvdG9jb2xJRCwgY3VzdG9tUHJvdG9jb2wpOwogfQogCiB2b2lkIEN1c3Rv
bVByb3RvY29sTWFuYWdlcjo6cmVtb3ZlQ3VzdG9tUHJvdG9jb2woV0tDdXN0b21Qcm90b2NvbCAq
Y3VzdG9tUHJvdG9jb2wpCiB7CiAgICAgQVNTRVJUKGN1c3RvbVByb3RvY29sKTsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOwogICAgIG1fY3VzdG9tUHJvdG9jb2xN
YXAucmVtb3ZlKGN1c3RvbVByb3RvY29sLmN1c3RvbVByb3RvY29sSUQpOwogfQogICAgIAogdm9p
ZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnJlZ2lzdGVyU2NoZW1lKGNvbnN0IFN0cmluZyYgc2No
ZW1lKQogewogICAgIEFTU0VSVCghc2NoZW1lLmlzTnVsbCgpKTsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgpOwogICAgIG1fcmVnaXN0ZXJlZFNjaGVtZXMuYWRkKHNj
aGVtZSk7CiB9CiAgICAgCiB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6dW5yZWdpc3RlclNj
aGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKICAgICBBU1NFUlQoIXNjaGVtZS5pc051bGwo
KSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKICAgICBtX3Jl
Z2lzdGVyZWRTY2hlbWVzLnJlbW92ZShzY2hlbWUpOwogfQogCkBAIC0xOTUsNyArMTk1LDcgQEAg
Ym9vbCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnN1cHBvcnRzU2NoZQogICAgIGlmIChzY2hlbWUu
aXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcmVn
aXN0ZXJlZFNjaGVtZXNNdXRleCk7CiAgICAgcmV0dXJuIG1fcmVnaXN0ZXJlZFNjaGVtZXMuY29u
dGFpbnMoc2NoZW1lKTsKIH0KIApAQCAtMjc1LDcgKzI3NSw3IEBAICAgICBpZiAoIXByb3RvY29s
KQogCiBSZXRhaW5QdHI8V0tDdXN0b21Qcm90b2NvbD4gQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpw
cm90b2NvbEZvcklEKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKIAogICAgIEN1c3RvbVByb3RvY29sTWFwOjpj
b25zdF9pdGVyYXRvciBpdCA9IG1fY3VzdG9tUHJvdG9jb2xNYXAuZmluZChjdXN0b21Qcm90b2Nv
bElEKTsKICAgICBpZiAoaXQgPT0gbV9jdXN0b21Qcm90b2NvbE1hcC5lbmQoKSkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRl
cnMvU2VjY29tcEJyb2tlci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogCiAgICAgaW50IG1fc29ja2V0OwogCi0g
ICAgbXV0YWJsZSBNdXRleCBtX3NvY2tldExvY2s7CisgICAgbXV0YWJsZSBMb2NrIG1fc29ja2V0
TG9jazsKIAogICAgIC8vIE1hcHMgZmlsZXMgdGhhdCBtYXkgYmUgcmVhZCBieSBtYWxsb2MoKSB0
byBvcGVuIGZpbGUgZGVzY3JpcHRvcnMuCiAgICAgSGFzaE1hcDxTdHJpbmcsIGludD4gbV9maWxl
RGVzY3JpcHRvckNhY2hlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
ci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04Niw3ICs4Niw3IEBAIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKiBQbHVnaW5Qcm9jZXNzQ28K
ICAgICBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQocGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24pOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90b2tlbnNBbmRD
b25uZWN0aW9uc011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90b2tlbnNBbmRD
b25uZWN0aW9uc011dGV4KTsKICAgICAgICAgQVNTRVJUKCFtX3Rva2Vuc0FuZENvbm5lY3Rpb25z
LmNvbnRhaW5zKHBsdWdpblByb2Nlc3NUb2tlbikpOwogCiAgICAgICAgIG1fdG9rZW5zQW5kQ29u
bmVjdGlvbnMuc2V0KHBsdWdpblByb2Nlc3NUb2tlbiwgcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24t
PmNvbm5lY3Rpb24oKSk7CkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXI6OnJlbQogICAgIEFTU0VSVCh2ZWN0b3JJbmRleCAhPSBub3RGb3VuZCk7
CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rp
b25zTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rp
b25zTXV0ZXgpOwogICAgICAgICBBU1NFUlQobV90b2tlbnNBbmRDb25uZWN0aW9ucy5jb250YWlu
cyhwbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi0+cGx1Z2luUHJvY2Vzc1Rva2VuKCkpKTsKICAgICAg
ICAgCiAgICAgICAgIG1fdG9rZW5zQW5kQ29ubmVjdGlvbnMucmVtb3ZlKHBsdWdpblByb2Nlc3ND
b25uZWN0aW9uLT5wbHVnaW5Qcm9jZXNzVG9rZW4oKSk7CkBAIC0xMTIsNyArMTEyLDcgQEAgdm9p
ZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OnJlbQogCiB2b2lkIFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlcjo6cGx1Z2luUHJvY2Vzc0NyYXNoZWQodWludDY0X3QgcGx1Z2lu
UHJvY2Vzc1Rva2VuKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5l
Y3Rpb25zTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdG9rZW5zQW5kQ29ubmVjdGlv
bnNNdXRleCk7CiAgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uID0gbV90b2tlbnNBbmRD
b25uZWN0aW9ucy5nZXQocGx1Z2luUHJvY2Vzc1Rva2VuKTsKIAogICAgIC8vIEl0J3MgT0sgZm9y
IGNvbm5lY3Rpb24gdG8gYmUgbnVsbCBoZXJlOyBpdCB3aWxsIGhhcHBlbiBpZiB0aGlzIHdlYiBw
cm9jZXNzIGRvZXNuJ3Qga25vdwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8UmVmUHRyPFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uPj4gbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbnM7CiAKLSAgICBNdXRleCBtX3Rv
a2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXg7CisgICAgTG9jayBtX3Rva2Vuc0FuZENvbm5lY3Rpb25z
TXV0ZXg7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4+IG1f
dG9rZW5zQW5kQ29ubmVjdGlvbnM7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2aXNpb24gMTg4
NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAgRXZlbnREaXNwYXRjaGVyOjp+
RXZlbnREaXNwYXRjaGVyKCkKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogdm9pZCBFdmVu
dERpc3BhdGNoZXI6OmFkZFNjcm9sbGluZ1RyZWVGb3JQYWdlKFdlYlBhZ2UqIHdlYlBhZ2UpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKIAogICAgIEFTU0VSVCh3ZWJQ
YWdlLT5jb3JlUGFnZSgpLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKTsKICAgICBBU1NFUlQoIW1f
c2Nyb2xsaW5nVHJlZXMuY29udGFpbnMod2ViUGFnZS0+cGFnZUlEKCkpKTsKQEAgLTc2LDcgKzc2
LDcgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OmFkZFNjcm9sbGluZ1RyZWVGbwogCiB2b2lkIEV2
ZW50RGlzcGF0Y2hlcjo6cmVtb3ZlU2Nyb2xsaW5nVHJlZUZvclBhZ2UoV2ViUGFnZSogd2ViUGFn
ZSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOwogICAgIEFTU0VSVCht
X3Njcm9sbGluZ1RyZWVzLmNvbnRhaW5zKHdlYlBhZ2UtPnBhZ2VJRCgpKSk7CiAKICAgICBtX3Nj
cm9sbGluZ1RyZWVzLnJlbW92ZSh3ZWJQYWdlLT5wYWdlSUQoKSk7CkBAIC0xMzIsNyArMTMyLDcg
QEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQodWludDY0XwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Njcm9s
bGluZ1RyZWVzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNN
dXRleCk7CiAgICAgaWYgKFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHNjcm9sbGluZ1Ry
ZWUgPSBtX3Njcm9sbGluZ1RyZWVzLmdldChwYWdlSUQpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBJ
dCdzIHByZXR0eSBob3JyaWJsZSB0aGF0IHdlJ3JlIHVwZGF0aW5nIHRoZSBiYWNrL2ZvcndhcmQg
c3RhdGUgaGVyZS4KICAgICAgICAgLy8gV2ViQ29yZSBzaG91bGQgYWx3YXlzIGtub3cgdGhlIGN1
cnJlbnQgc3RhdGUgYW5kIGtub3cgd2hlbiBpdCBjaGFuZ2VzIHNvIHRoZQpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAko
cmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6
CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJ
TkcpCi0gICAgTXV0ZXggbV9zY3JvbGxpbmdUcmVlc011dGV4OworICAgIExvY2sgbV9zY3JvbGxp
bmdUcmVlc011dGV4OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpUaHJl
YWRlZFNjcm9sbGluZ1RyZWU+PiBtX3Njcm9sbGluZ1RyZWVzOwogI2VuZGlmCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OldoZWVsRXZlbnREZWx0YVRyYWNrZXI+IG1fcmVjZW50V2hlZWxF
dmVudERlbHRhVHJhY2tlcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9X
ZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRT
b3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBA
QCBzdHJ1Y3QgX1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Qcml2CiAgICAgdWludDY0X3Qg
Ynl0ZXNSZWNlaXZlZDsKICAgICB1aW50NjRfdCBieXRlc1JlYWQ7CiAKLSAgICBNdXRleCByZWFk
TG9jazsKKyAgICBMb2NrIHJlYWRMb2NrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1JlYWRE
YXRhPiBwZW5kaW5nQXN5bmNSZWFkOwogfTsKIApAQCAtODQsNyArODQsNyBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtCiAgICAgV2ViS2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbSogc3RyZWFtID0gV0VCS0lUX1NPVVBfUkVRVUVTVF9JTlBVVF9TVFJFQU0oaW5wdXRT
dHJlYW0pOwogICAgIEdSZWZQdHI8R1Rhc2s+IHRhc2sgPSBhZG9wdEdSZWYoZ190YXNrX25ldyhz
dHJlYW0sIGNhbmNlbGxhYmxlLCBjYWxsYmFjaywgdXNlckRhdGEpKTsKIAotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihzdHJlYW0tPnByaXYtPnJlYWRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihzdHJlYW0tPnByaXYtPnJlYWRMb2NrKTsKIAogICAgIGlmICghd2Via2l0U291cFJlcXVlc3RJ
bnB1dFN0cmVhbUhhc0RhdGFUb1JlYWQoc3RyZWFtKSAmJiAhd2Via2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbUlzV2FpdGluZ0ZvckRhdGEoc3RyZWFtKSkgewogICAgICAgICBnX3Rhc2tfcmV0dXJu
X2ludCh0YXNrLmdldCgpLCAwKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCB2b2lkIHdlYmtpdFNvdXBS
ZXF1ZXN0SW5wdXRTdHJlYW1BZGREYXRhCiAgICAgaWYgKHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRT
dHJlYW1GaW5pc2hlZChzdHJlYW0pKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIoc3RyZWFtLT5wcml2LT5yZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
c3RyZWFtLT5wcml2LT5yZWFkTG9jayk7CiAKICAgICBpZiAoZGF0YUxlbmd0aCkgewogICAgICAg
ICAvLyBUcnVuY2F0ZSB0aGUgZGF0YUxlbmd0aCB0byB0aGUgY29udGVudExlbmd0aCBpZiBpdCdz
IGtub3duLgpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTUtMDgtMTcgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1h
aW5pbmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZUFyZWFTeW5j
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6c3luY1RpbWVyRmlyZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjptYXJrSW1wb3J0ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpibG9ja1VudGlsSW1wb3J0Q29tcGxldGUp
OgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtU3luYyk6CisgICAg
ICAgICogU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaDoKKyAgICAgICAgKiBTdG9yYWdlL1N0b3Jh
Z2VUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzZXREYXRh
YmFzZURpcmVjdG9yeVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmZp
bmlzaGVkSW1wb3J0aW5nT3JpZ2luSWRlbnRpZmllcnMpOgorICAgICAgICAoV2ViQ29yZTo6U3Rv
cmFnZVRyYWNrZXI6OnN5bmNJbXBvcnRPcmlnaW5JZGVudGlmaWVycyk6CisgICAgICAgIChXZWJD
b3JlOjpTdG9yYWdlVHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnNldE9yaWdpbkRldGFpbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWxzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpvcmlnaW5zKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0b3JhZ2VUcmFja2VyOjpkZWxldGVBbGxPcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlQWxsT3JpZ2lucyk6CisgICAgICAgIChXZWJDb3Jl
OjpTdG9yYWdlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3Jh
Z2VUcmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VU
cmFja2VyOjpjYW5EZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNr
ZXI6OmNhbmNlbERlbGV0aW5nT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFj
a2VyOjpkaXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZVRyYWNr
ZXIuaDoKKwogMjAxNS0wOC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFtXaW4gQ01ha2VdIEFsbG93IFdlYktpdExpYnJhcmllcyBkaXJl
Y3RvcnkgdG8gYmUgc2V0IGZyb20gdGhlIGNvbW1hbmQgbGluZQpJbmRleDogU291cmNlL1dlYktp
dC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJj
ZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjQsNyArMTY0LDcgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnN5bmNUaW1lckZpcmVkKCkKIAog
ICAgIGJvb2wgcGFydGlhbFN5bmMgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9j
ayk7CiAKICAgICAgICAgLy8gRG8gbm90IHNjaGVkdWxlIGFub3RoZXIgc3luYyBpZiB3ZSdyZSBz
dGlsbCB0cnlpbmcgdG8gY29tcGxldGUgdGhlCiAgICAgICAgIC8vIHByZXZpb3VzIG9uZS4gQnV0
LCBpZiB3ZSdyZSBzaHV0dGluZyBkb3duLCBzY2hlZHVsZSBpdCBhbnl3YXkuCkBAIC0zNTIsOSAr
MzUyLDkgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnBlcmZvcm1JbXBvcnQoKQogCiB2b2lkIFN0
b3JhZ2VBcmVhU3luYzo6bWFya0ltcG9ydGVkKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9pbXBvcnRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2ltcG9ydExvY2spOwogICAg
IG1faW1wb3J0Q29tcGxldGUgPSB0cnVlOwotICAgIG1faW1wb3J0Q29uZGl0aW9uLnNpZ25hbCgp
OworICAgIG1faW1wb3J0Q29uZGl0aW9uLm5vdGlmeU9uZSgpOwogfQogCiAvLyBGSVhNRTogSW4g
dGhlIGZ1dHVyZSwgd2Ugc2hvdWxkIGFsbG93IHVzZSBvZiBTdG9yYWdlQXJlYXMgd2hpbGUgaXQn
cyBpbXBvcnRpbmcgKHdoZW4gc2FmZSB0byBkbyBzbykuCkBAIC0zNzIsNyArMzcyLDcgQEAgdm9p
ZCBTdG9yYWdlQXJlYVN5bmM6OmJsb2NrVW50aWxJbXBvcnRDbwogICAgIGlmICghbV9zdG9yYWdl
QXJlYSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW1wb3J0
TG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbXBvcnRMb2NrKTsKICAgICB3aGlsZSAo
IW1faW1wb3J0Q29tcGxldGUpCiAgICAgICAgIG1faW1wb3J0Q29uZGl0aW9uLndhaXQobV9pbXBv
cnRMb2NrKTsKICAgICBtX3N0b3JhZ2VBcmVhID0gbnVsbHB0cjsKQEAgLTQ2Nyw3ICs0NjcsNyBA
QCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMoKQogICAgIGJvb2wgY2xlYXJJdGVt
czsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBpdGVtczsKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9zeW5jTG9jayk7CiAKICAgICAgICAgQVNTRVJUKG1fc3luY1NjaGVkdWxlZCk7CiAKQEAgLTQ4
Miw3ICs0ODIsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMoKQogICAgIHN5
bmMoY2xlYXJJdGVtcywgaXRlbXMpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9zeW5jTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwog
ICAgICAgICBtX3N5bmNJblByb2dyZXNzID0gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlRGF0YWJhc2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBA
IC04NSw3ICs4Niw3IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBTdHJpbmcgbV9kYXRhYmFzZUlk
ZW50aWZpZXI7CiAKLSAgICBNdXRleCBtX3N5bmNMb2NrOworICAgIExvY2sgbV9zeW5jTG9jazsK
ICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2l0ZW1zUGVuZGluZ1N5bmM7CiAgICAgYm9v
bCBtX2NsZWFySXRlbXNXaGlsZVN5bmNpbmc7CiAgICAgYm9vbCBtX3N5bmNTY2hlZHVsZWQ7CkBA
IC05NCw4ICs5NSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fc3luY0Nsb3NlRGF0YWJhc2U7
CiAKLSAgICBtdXRhYmxlIE11dGV4IG1faW1wb3J0TG9jazsKLSAgICBUaHJlYWRDb25kaXRpb24g
bV9pbXBvcnRDb25kaXRpb247CisgICAgbXV0YWJsZSBMb2NrIG1faW1wb3J0TG9jazsKKyAgICBD
b25kaXRpb24gbV9pbXBvcnRDb25kaXRpb247CiAgICAgYm9vbCBtX2ltcG9ydENvbXBsZXRlOwog
ICAgIHZvaWQgbWFya0ltcG9ydGVkKCk7CiAgICAgdm9pZCBtaWdyYXRlSXRlbVRhYmxlSWZOZWVk
ZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIFN0b3JhZ2VUcmFja2VyOjpTdG9y
YWdlVHJhY2tlcihjb25zdCBTdHIKIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6c2V0RGF0YWJhc2VE
aXJlY3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0
ZXgpOwogCiAgICAgaWYgKG1fZGF0YWJhc2UuaXNPcGVuKCkpCiAgICAgICAgIG1fZGF0YWJhc2Uu
Y2xvc2UoKTsKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzZXREYXRh
YmFzZURpcmVjdG9yCiAgICAgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aCA9IHBhdGguaXNvbGF0ZWRD
b3B5KCk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAg
ICAgIG1fb3JpZ2luU2V0LmNsZWFyKCk7CiAgICAgfQogCkBAIC0xODUsNyArMTg1LDcgQEAgdm9p
ZCBTdG9yYWdlVHJhY2tlcjo6aW1wb3J0T3JpZ2luSWRlbnRpZgogCiB2b2lkIFN0b3JhZ2VUcmFj
a2VyOjpmaW5pc2hlZEltcG9ydGluZ09yaWdpbklkZW50aWZpZXJzKCkKIHsKLSAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2Rh
dGFiYXNlTXV0ZXgpOwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPmRpZEZp
bmlzaExvYWRpbmdPcmlnaW5zKCk7CiB9CkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBTdG9yYWdl
VHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKIAogICAgICAgICAv
LyBEb24ndCBmb3JjZSBjcmVhdGlvbiBvZiBTdG9yYWdlVHJhY2tlcidzIGRiIGp1c3QgYmVjYXVz
ZSBhIHRyYWNrZXIKICAgICAgICAgLy8gd2FzIGluaXRpYWxpemVkLiBJdCB3aWxsIGJlIGNyZWF0
ZWQgaWYgbG9jYWwgc3RvcmFnZSBkYnMgYXJlIGZvdW5kCkBAIC0yMTcsNyArMjE3LDcgQEAgdm9p
ZCBTdG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgICAgICAgICAgaW50IHJl
c3VsdDsKICAgICAgICAgICAgIAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tPcmlnaW5zKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICAgICAgICAgIExv
Y2tIb2xkZXIgbG9ja09yaWdpbnMobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgICAgICAgICAg
d2hpbGUgKChyZXN1bHQgPSBzdGF0ZW1lbnQuc3RlcCgpKSA9PSBTUUxJVEVfUk9XKQogICAgICAg
ICAgICAgICAgICAgICBtX29yaWdpblNldC5hZGQoc3RhdGVtZW50LmdldENvbHVtblRleHQoMCku
aXNvbGF0ZWRDb3B5KCkpOwogICAgICAgICAgICAgfQpAQCAtMjMyLDEwICsyMzIsMTAgQEAgdm9p
ZCBTdG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgIHN5bmNGaWxlU3lzdGVt
QW5kVHJhY2tlckRhdGFiYXNlKCk7CiAgICAgCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50
TXV0ZXgpOwogCiAgICAgICAgIGlmIChtX2NsaWVudCkgewotICAgICAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgICAgICBPcmlnaW5TZXQ6OmNvbnN0X2l0ZXJh
dG9yIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOwogICAgICAgICAgICAgZm9yIChPcmlnaW5TZXQ6
OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9vcmlnaW5TZXQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KQogICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZE1vZGlmeU9yaWdpbigqaXQp
OwpAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVt
QW5kVHIKIAogICAgIFZlY3RvcjxTdHJpbmc+IHBhdGhzOwogICAgIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fZGF0YWJhc2VNdXRleCk7CiAgICAgICAgIHBhdGhzID0gbGlzdERpcmVjdG9yeShtX3N0b3Jh
Z2VEaXJlY3RvcnlQYXRoLCAiKi5sb2NhbHN0b3JhZ2UiKTsKICAgICB9CiAKQEAgLTI2NSw3ICsy
NjUsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRmlsZVN5c3RlbUFuZFRyCiAgICAgLy8g
ZGVsZXRpb25zIGZyb20gZGlzayBhbmQgZnJvbSBtX29yaWdpblNldC4KICAgICBPcmlnaW5TZXQg
b3JpZ2luU2V0Q29weTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdp
blNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7
CiAgICAgICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fb3JpZ2luU2V0
LmJlZ2luKCksIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAg
ICAgICAgICBvcmlnaW5TZXRDb3B5LmFkZCgoKml0KS5pc29sYXRlZENvcHkoKSk7CiAgICAgfQpA
QCAtMzA2LDcgKzMwNiw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnNldE9yaWdpbkRldGFpbHMo
Y28KICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9vcmlnaW5TZXRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0
TXV0ZXgpOwogCiAgICAgICAgIGlmIChtX29yaWdpblNldC5jb250YWlucyhvcmlnaW5JZGVudGlm
aWVyKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTMzNyw3ICszMzcsNyBAQCB2b2lkIFN0b3Jh
Z2VUcmFja2VyOjpzeW5jU2V0T3JpZ2luRGV0YWlsCiAKICAgICBTUUxpdGVUcmFuc2FjdGlvbklu
UHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFi
YXNlTXV0ZXgpOwogCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZSh0cnVlKTsKICAgICAKQEAgLTM1
NywxMyArMzU3LDEzIEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWwK
ICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gZXN0YWJsaXNoIG9yaWdpbiAnJXMnIGluIHRo
ZSB0cmFja2VyIiwgb3JpZ2luSWRlbnRpZmllci5hc2NpaSgpLmRhdGEoKSk7CiAKICAgICB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgIGlmICghbV9vcmlnaW5T
ZXQuY29udGFpbnMob3JpZ2luSWRlbnRpZmllcikpCiAgICAgICAgICAgICBtX29yaWdpblNldC5h
ZGQob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xp
ZW50TXV0ZXgpOwogICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+
ZGlzcGF0Y2hEaWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpAQCAtMzc2
LDcgKzM3Niw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6Om9yaWdpbnMoVmVjdG9yPFJlZlAKICAg
ICBpZiAoIW1faXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNl
dE11dGV4KTsKIAogICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fb3Jp
Z2luU2V0LmJlZ2luKCksIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQp
CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFz
ZUlkZW50aWZpZXIoKml0KSk7CkBAIC0zOTIsNyArMzkyLDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tl
cjo6ZGVsZXRlQWxsT3JpZ2lucygpCiAgICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgd2lsbERlbGV0ZUFsbE9yaWdpbnMo
KTsKICAgICAgICAgbV9vcmlnaW5TZXQuY2xlYXIoKTsKICAgICB9CkBAIC00MTcsNyArNDE3LDcg
QEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9yaWdpbgogCiAgICAgU1FMaXRl
VHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogICAg
IAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgCiAgICAgb3BlblRyYWNrZXJEYXRhYmFz
ZShmYWxzZSk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNDM3LDcgKzQzNyw3
IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVBbGxPcmlnaW4KICAgICAgICAgZGVs
ZXRlRmlsZShzdGF0ZW1lbnQuZ2V0Q29sdW1uVGV4dCgxKSk7CiAKICAgICAgICAgewotICAgICAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgpOworICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9jbGllbnRNdXRleCk7CiAgICAgICAgICAgICBpZiAobV9jbGllbnQp
CiAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkTW9kaWZ5T3JpZ2luKHN0YXRl
bWVudC5nZXRDb2x1bW5UZXh0KDApKTsKICAgICAgICAgfQpAQCAtNDk5LDcgKzQ5OSw3IEBAIHZv
aWQgU3RvcmFnZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cmkKICAgICBTdHJpbmcgb3JpZ2lu
SWQgPSBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpOwogICAgIAogICAgIHsKLSAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgd2lsbERlbGV0ZU9yaWdpbihvcmln
aW5JZCk7CiAgICAgICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5JZCk7CiAgICAgfQpAQCAt
NTE2LDcgKzUxNiw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4oY28K
IAogICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRyYW5zYWN0aW9u
Q291bnRlcjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgCiAgICAgaWYgKCFjYW5E
ZWxldGVPcmlnaW4ob3JpZ2luSWRlbnRpZmllcikpIHsKICAgICAgICAgTE9HX0VSUk9SKCJBdHRl
bXB0ZWQgdG8gZGVsZXRlIG9yaWdpbiAnJXMnIHdoaWxlIGl0IHdhcyBiZWluZyBjcmVhdGVkXG4i
LCBvcmlnaW5JZGVudGlmaWVyLmFzY2lpKCkuZGF0YSgpKTsKQEAgLTU0OSw3ICs1NDksNyBAQCB2
b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKGNvCiAgICAgCiAgICAgYm9vbCBz
aG91bGREZWxldGVUcmFja2VyRmlsZXMgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5JZGVu
dGlmaWVyKTsKICAgICAgICAgc2hvdWxkRGVsZXRlVHJhY2tlckZpbGVzID0gbV9vcmlnaW5TZXQu
aXNFbXB0eSgpOwogICAgIH0KQEAgLTU2Niw3ICs1NjYsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2Vy
OjpzeW5jRGVsZXRlT3JpZ2luKGNvCiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xp
ZW50TXV0ZXgpOwogICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+
ZGlzcGF0Y2hEaWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpAQCAtNTky
LDcgKzU5Miw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OndpbGxEZWxldGVPcmlnaW4oY28KIGJv
b2wgU3RvcmFnZVRyYWNrZXI6OmNhbkRlbGV0ZU9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklk
ZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlTXV0ZXgudHJ5TG9jaygpKTsKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgcmV0dXJuIG1fb3JpZ2luc0JlaW5nRGVsZXRl
ZC5jb250YWlucyhvcmlnaW5JZGVudGlmaWVyKTsKIH0KIApAQCAtNjAxLDkgKzYwMSw5IEBAIHZv
aWQgU3RvcmFnZVRyYWNrZXI6OmNhbmNlbERlbGV0aW5nT3JpZ2kKICAgICBpZiAoIW1faXNBY3Rp
dmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNl
TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICBpZiAoIW1fb3JpZ2lu
c0JlaW5nRGVsZXRlZC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBtX29yaWdpbnNCZWluZ0RlbGV0
ZWQucmVtb3ZlKG9yaWdpbklkZW50aWZpZXIpOwogICAgIH0KQEAgLTY0Nyw3ICs2NDcsNyBAQCBs
b25nIGxvbmcgU3RvcmFnZVRyYWNrZXI6OmRpc2tVc2FnZUZvck9yCiAgICAgaWYgKCFtX2lzQWN0
aXZlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFi
YXNlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAKICAg
ICBTdHJpbmcgcGF0aCA9IGRhdGFiYXNlUGF0aEZvck9yaWdpbihvcmlnaW4tPmRhdGFiYXNlSWRl
bnRpZmllcigpKTsKICAgICBpZiAocGF0aC5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1N0
b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktp
dC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDE1ICs5NSwx
NSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3luY0ltcG9ydE9yaWdpbklkZW50aWZpZXJzKCk7CiAK
ICAgICAvLyBNdXRleCBmb3IgbV9kYXRhYmFzZSBhbmQgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC4K
LSAgICBNdXRleCBtX2RhdGFiYXNlTXV0ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlTXV0ZXg7CiAg
ICAgU1FMaXRlRGF0YWJhc2UgbV9kYXRhYmFzZTsKICAgICBTdHJpbmcgbV9zdG9yYWdlRGlyZWN0
b3J5UGF0aDsKIAotICAgIE11dGV4IG1fY2xpZW50TXV0ZXg7CisgICAgTG9jayBtX2NsaWVudE11
dGV4OwogICAgIFN0b3JhZ2VUcmFja2VyQ2xpZW50KiBtX2NsaWVudDsKIAogICAgIC8vIEd1YXJk
IGZvciBtX29yaWdpblNldCBhbmQgbV9vcmlnaW5zQmVpbmdEZWxldGVkLgotICAgIE11dGV4IG1f
b3JpZ2luU2V0TXV0ZXg7CisgICAgTG9jayBtX29yaWdpblNldE11dGV4OwogICAgIHR5cGVkZWYg
SGFzaFNldDxTdHJpbmc+IE9yaWdpblNldDsKICAgICBPcmlnaW5TZXQgbV9vcmlnaW5TZXQ7CiAg
ICAgT3JpZ2luU2V0IG1fb3JpZ2luc0JlaW5nRGVsZXRlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
aW9zL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RG
OjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5t
bToKKyAgICAgICAgKFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2spOgorICAgICAgICAo
LVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBzY3JvbGxPclpvb21DaGFuZ2VkOl0pOgorICAgICAg
ICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBvdmVyZmxvd1Njcm9sbFBvc2l0aW9uRm9yTGF5
ZXI6Y2hhbmdlZFRvOl0pOgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBzZXRW
aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzOnN0aWNreUNvbnRhaW5lck1hcDpdKToKKyAgICAgICAg
KC1bV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQgaGFzRml4ZWRPclN0aWNreVBvc2l0aW9uTGF5ZXJz
XSk6CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IG1pbmltdW1PZmZzZXRGcm9t
Rml4ZWRQb3NpdGlvbkxheWVyc1RvQW5jaG9yRWRnZTpvZlJlY3Q6aW5MYXllcjpdKToKKwogMjAx
NS0wOC0xMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZWZhY3RvciBhbmQgaW1wcm92ZSBUZXh0SW5kaWNhdG9yIHRvIHByZXBhcmUgZm9yIHRlc3Rz
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9u
Q29udGVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbQkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0JKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDkgKzQ4LDkgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotc3RhdGljIE11dGV4JiBXZWJGaXhlZFBvc2l0aW9uQ29u
dGVudERhdGFMb2NrKCkKK3N0YXRpYyBMb2NrJiBXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFM
b2NrKCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4
LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIG11dGV4LCAo
KSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xMDEsNyArMTAxLDcgQEAgLSAodm9pZClk
ZWFsbG9jCiAKIC0gKHZvaWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dSZWN0KXBvc2l0aW9uZWRP
YmplY3RzUmVjdAogewotICAgIE11dGV4TG9ja2VyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRl
bnREYXRhTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRl
bnREYXRhTG9jaygpKTsKIAogICAgIExheWVySW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0g
X3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5lbmQoKTsKICAgICBmb3IgKExh
eWVySW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0
cmFpbmVkTGF5ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewpAQCAtMTQwLDcgKzE0MCw3
IEBAIC0gKHZvaWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dSZWN0KXBvc2kKIAogLSAodm9pZClv
dmVyZmxvd1Njcm9sbFBvc2l0aW9uRm9yTGF5ZXI6KENBTGF5ZXIgKilzY3JvbGxMYXllciBjaGFu
Z2VkVG86KENHUG9pbnQpc2Nyb2xsUG9zaXRpb24KIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdl
YkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdl
YkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAKICAgICBMYXllckluZm9NYXA6OmNv
bnN0X2l0ZXJhdG9yIGVuZCA9IF9wcml2YXRlLT5tX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMu
ZW5kKCk7CiAgICAgZm9yIChMYXllckluZm9NYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gX3ByaXZh
dGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKQEAgLTE3Myw3ICsxNzMsNyBAQCAtICh2b2lkKWRpZEZpbmlzaFNjcm9sbGluZ09yWm9vbWlu
ZwogCiAtICh2b2lkKXNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6KFdURjo6SGFzaE1hcDxD
QUxheWVyICosIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpWaWV3cG9ydENvbnN0cmFpbnRzPj4m
KWxheWVyTWFwIHN0aWNreUNvbnRhaW5lck1hcDooV1RGOjpIYXNoTWFwPENBTGF5ZXIqLCBDQUxh
eWVyKj4mKXN0aWNreUNvbnRhaW5lcnMKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZpeGVk
UG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZpeGVk
UG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAKICAgICBfcHJpdmF0ZS0+bV92aWV3cG9ydENv
bnN0cmFpbmVkTGF5ZXJzLmNsZWFyKCk7CiAKQEAgLTE5MCw3ICsxOTAsNyBAQCAtICh2b2lkKXNl
dFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6KFdUCiAKIC0gKEJPT0wpaGFzRml4ZWRPclN0aWNr
eVBvc2l0aW9uTGF5ZXJzCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9u
Q29udGVudERhdGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9u
Q29udGVudERhdGFMb2NrKCkpOwogICAgIHJldHVybiAhX3ByaXZhdGUtPm1fdmlld3BvcnRDb25z
dHJhaW5lZExheWVycy5pc0VtcHR5KCk7CiB9CiAKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMg
Vmlld3BvcnRDb25zdHJhaW50czo6QW5jaG9yRWRnZUZsCiAKIC0gKENHRmxvYXQpbWluaW11bU9m
ZnNldEZyb21GaXhlZFBvc2l0aW9uTGF5ZXJzVG9BbmNob3JFZGdlOihXZWJGaXhlZFBvc2l0aW9u
QW5jaG9yRWRnZSlhbmNob3JFZGdlIG9mUmVjdDooQ0dSZWN0KXJlY3QgaW5MYXllcjooQ0FMYXll
ciAqKWxheWVyCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVu
dERhdGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVu
dERhdGFMb2NrKCkpOwogICAgIFZpZXdwb3J0Q29uc3RyYWludHM6OkFuY2hvckVkZ2VGbGFncyBh
bmNob3JFZGdlRmxhZ3MgPSBhbmNob3JFZGdlRmxhZ3NGb3JBbmNob3JFZGdlKGFuY2hvckVkZ2Up
OwogICAgIENHRmxvYXQgbWluaW11bU9mZnNldCA9IENHRkxPQVRfTUFYOwogICAgIExheWVySW5m
b01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5l
ZExheWVycy5lbmQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU2OSkKKysr
IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIx
IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9j
aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9y
YWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbToKKyAgICAgICAgKHRyYW5zYWN0aW9uQmFja2dyb3Vu
ZFRhc2tJZGVudGlmaWVyTG9jayk6CisgICAgICAgICgrW1dlYkRhdGFiYXNlTWFuYWdlciBzdGFy
dEJhY2tncm91bmRUYXNrXSk6CisgICAgICAgICgrW1dlYkRhdGFiYXNlTWFuYWdlciBlbmRCYWNr
Z3JvdW5kVGFza10pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V2ViVmlldyBfc3luY2hyb25pemVDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdF0pOgorICAg
ICAgICAoLVtXZWJWaWV3IF9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdEluV2ViVGhy
ZWFkOnN5bmNocm9uaXplOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zZXRDdXN0b21GaXhlZFBv
c2l0aW9uTGF5b3V0UmVjdDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZmV0Y2hDdXN0b21GaXhl
ZFBvc2l0aW9uTGF5b3V0UmVjdDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6
CisKIDIwMTUtMDgtMTMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb2NvYV0gRG93bmxvYWRzIGRvIG5vdCBzdGFydCBpZiBwb2xpY3kgZGVjaXNpb24gaXMgbWFk
ZSBhc3luY2hyb25vdXNseQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRh
YmFzZU1hbmFnZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9X
ZWJEYXRhYmFzZU1hbmFnZXIubW0JKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYs
OSArMjI2LDkgQEAgKyAodm9pZClzY2hlZHVsZUVtcHR5RGF0YWJhc2VSZW1vdmFsCiAjaWYgUExB
VEZPUk0oSU9TKQogQGltcGxlbWVudGF0aW9uIFdlYkRhdGFiYXNlTWFuYWdlciAoV2ViRGF0YWJh
c2VNYW5hZ2VySW50ZXJuYWwpCiAKLXN0YXRpYyBNdXRleCYgdHJhbnNhY3Rpb25CYWNrZ3JvdW5k
VGFza0lkZW50aWZpZXJMb2NrKCkKK3N0YXRpYyBMb2NrJiB0cmFuc2FjdGlvbkJhY2tncm91bmRU
YXNrSWRlbnRpZmllckxvY2soKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
TG9jaywgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTI2MSw3ICsyNjEs
NyBAQCArICh2b2lkKWRpZEZpbmlzaExhc3RUcmFuc2FjdGlvbgogCiArICh2b2lkKXN0YXJ0QmFj
a2dyb3VuZFRhc2sKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKHRyYW5zYWN0aW9uQmFja2dyb3Vu
ZFRhc2tJZGVudGlmaWVyTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rpb25C
YWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOwogCiAgICAgLy8gSWYgdGhlcmUncyBhbHJl
YWR5IGFuIGV4aXN0aW5nIGJhY2tncm91bmQgdGFzayBnb2luZyBvbiwgdGhlcmUncyBubyBuZWVk
IHRvIHN0YXJ0IGEgbmV3IG9uZS4KICAgICBpZiAoZ2V0VHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFz
a0lkZW50aWZpZXIoKSAhPSBpbnZhbGlkV2ViQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyKCkpCkBA
IC0yNzUsNyArMjc1LDcgQEAgKyAodm9pZClzdGFydEJhY2tncm91bmRUYXNrCiAKICsgKHZvaWQp
ZW5kQmFja2dyb3VuZFRhc2sKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKHRyYW5zYWN0aW9uQmFj
a2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNh
Y3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOwogCiAgICAgLy8gSXQgaXMgcG9z
c2libGUgdGhhdCB3ZSB3ZXJlIHVuYWJsZSB0byBzdGFydCB0aGUgYmFja2dyb3VuZCB0YXNrIHdo
ZW4gdGhlIGZpcnN0IHRyYW5zYWN0aW9uIGJlZ2FuLgogICAgIC8vIERvbid0IHRyeSB0byBlbmQg
dGhlIHRhc2sgaW4gdGhhdCBjYXNlLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNjMyLDcgKzM2MzIsNyBAQCAtICh2b2lkKV9zeW5j
aHJvbml6ZUN1c3RvbUZpeGVkUG9zaXRpb25MCiAKICAgICBJbnRSZWN0IG5ld1JlY3Q7CiAgICAg
ewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0
aW9uTGF5b3V0UmVjdE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoX3ByaXZhdGUt
PnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKICAgICAgICAgaWYgKENHUmVj
dElzTnVsbChfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KSkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgbmV3UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoX3ByaXZh
dGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCk7CkBAIC0zNjQ2LDcgKzM2NDYsNyBA
QCAtICh2b2lkKV9zeW5jaHJvbml6ZUN1c3RvbUZpeGVkUG9zaXRpb25MCiAtICh2b2lkKV9zZXRD
dXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdEluV2ViVGhyZWFkOihDR1JlY3QpcmVjdCBzeW5j
aHJvbml6ZTooQk9PTClzeW5jaHJvbml6ZQogewogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleCk7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxh
eW91dFJlY3RNdXRleCk7CiAgICAgICAgIF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxh
eW91dFJlY3QgPSByZWN0OwogICAgIH0KICAgICBpZiAoIXN5bmNocm9uaXplKQpAQCAtMzY2MCw3
ICszNjYwLDcgQEAgLSAodm9pZClfc2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlYwogewog
ICAgIEFTU0VSVChXZWJUaHJlYWRJc0xvY2tlZCgpKTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRp
b25MYXlvdXRSZWN0TXV0ZXgpOwogICAgICAgICBfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRp
b25MYXlvdXRSZWN0ID0gcmVjdDsKICAgICB9CiAgICAgW3NlbGYgX3N5bmNocm9uaXplQ3VzdG9t
Rml4ZWRQb3NpdGlvbkxheW91dFJlY3RdOwpAQCAtMzY2OCw3ICszNjY4LDcgQEAgLSAodm9pZClf
c2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlYwogCiAtIChCT09MKV9mZXRjaEN1c3RvbUZp
eGVkUG9zaXRpb25MYXlvdXRSZWN0OihOU1JlY3QqKXJlY3QKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRS
ZWN0TXV0ZXgpOwogICAgIGlmIChDR1JlY3RJc051bGwoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBv
c2l0aW9uTGF5b3V0UmVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NDksNyArMjQ5LDcgQEAgQGludGVyZmFjZSBXZWJWaWV3UHJpdmF0ZSA6IE5TT2JqZWN0IHsKICAg
ICBDR1NpemUgZml4ZWRMYXlvdXRTaXplOwogICAgIEJPT0wgbWFpblZpZXdJc1Njcm9sbGluZ09y
Wm9vbWluZzsKICAgICBpbnQzMl90IGRpZERyYXdUaWxlczsKLSAgICBXVEY6Ok11dGV4IHBlbmRp
bmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4OworICAgIFdURjo6TG9jayBwZW5kaW5nRml4
ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleDsKICAgICBDR1JlY3QgcGVuZGluZ0ZpeGVkUG9zaXRp
b25MYXlvdXRSZWN0OwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI3IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+
CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3aXRo
IFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBQbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6c2NoZWR1bGVDYWxsKToKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnJlZ2lzdGVyUGx1Z2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnVucmVnaXN0ZXJQbHVn
aW4pOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6ZGlzcGF0
Y2hDYWxsc0ZvclBsdWdpbik6CisgICAgICAgICogUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2No
ZWR1bGVyLmg6CisgICAgICAgICogV2ViSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYklj
b25EYXRhYmFzZTo6ZGlkUmVtb3ZlQWxsSWNvbnMpOgorICAgICAgICAoV2ViSWNvbkRhdGFiYXNl
OjpkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJJY29uRGF0YWJhc2U6
OmRlbGl2ZXJOb3RpZmljYXRpb25zKToKKyAgICAgICAgKiBXZWJJY29uRGF0YWJhc2UuaDoKKyAg
ICAgICAgKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwOgorICAgICAgICAobWFpbkJ1bmRsZUxv
Y1N0cmluZ3MpOgorICAgICAgICAoZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KToKKyAgICAgICAg
KGZpbmRDYWNoZWRTdHJpbmcpOgorICAgICAgICAoY2FjaGVTdHJpbmcpOgorCiAyMDE1LTA4LTE3
ICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KIAogICAgICAgICBbV2luQ2Fp
cm9dIEFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGRvZXMgbm90IHJlc3BlY3QgZGV2aWNlIHNjYWxl
IGZhY3Rvci4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmNwcAkocmV2aXNp
b24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIwLDE0ICszMjAsMTQgQEAgSEJJVE1BUCBXZWJJY29uRGF0YWJhc2U6
OmdldE9yQ3JlYXRlRGVmYQogdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJlbW92ZUFsbEljb25z
KCkKIHsKICAgICAvLyBRdWV1ZWluZyB0aGUgZW1wdHkgc3RyaW5nIGlzIGEgc3BlY2lhbCB3YXkg
b2Ygc2F5aW5nICJ0aGlzIHF1ZXVlZCBub3RpZmljYXRpb24gaXMgdGhlIGRpZFJlbW92ZUFsbElj
b25zIG5vdGlmaWNhdGlvbiIKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9ub3RpZmljYXRpb25N
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ub3RpZmljYXRpb25NdXRleCk7CiAgICAg
bV9ub3RpZmljYXRpb25RdWV1ZS5hcHBlbmQoU3RyaW5nKCkpOwogICAgIHNjaGVkdWxlTm90aWZp
Y2F0aW9uRGVsaXZlcnkoKTsKIH0KIAogdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZEltcG9ydElj
b25VUkxGb3JQYWdlVVJMKGNvbnN0IFdURjo6U3RyaW5nJiBwYWdlVVJMKQogewotICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX25vdGlmaWNhdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX25vdGlmaWNhdGlvbk11dGV4KTsKICAgICBtX25vdGlmaWNhdGlvblF1ZXVlLmFwcGVuZChw
YWdlVVJMLmlzb2xhdGVkQ29weSgpKTsKICAgICBzY2hlZHVsZU5vdGlmaWNhdGlvbkRlbGl2ZXJ5
KCk7CiB9CkBAIC00MDMsNyArNDAzLDcgQEAgdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRlbGl2ZXJO
b3RpZmljYXRpbwogCiAgICAgVmVjdG9yPFN0cmluZz4gcXVldWU7CiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9zaGFyZWRXZWJJY29uRGF0YWJhc2UtPm1fbm90aWZpY2F0aW9u
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NoYXJlZFdlYkljb25EYXRhYmFz
ZS0+bV9ub3RpZmljYXRpb25NdXRleCk7CiAgICAgICAgIHF1ZXVlLnN3YXAobV9zaGFyZWRXZWJJ
Y29uRGF0YWJhc2UtPm1fbm90aWZpY2F0aW9uUXVldWUpOwogICAgICAgICBtX3NoYXJlZFdlYklj
b25EYXRhYmFzZS0+bV9kZWxpdmVyeVJlcXVlc3RlZCA9IGZhbHNlOwogICAgIH0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2Uv
V2ViS2l0L3dpbi9XZWJJY29uRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDcgKzEx
Niw3IEBAIHByb3RlY3RlZDoKICAgICBIYXNoTWFwPEludFNpemUsIEhCSVRNQVA+IG1fZGVmYXVs
dEljb25NYXA7CiAgICAgSGFzaE1hcDxJbnRTaXplLCBIQklUTUFQPiBtX3NoYXJlZEljb25NYXA7
CiAKLSAgICBNdXRleCBtX25vdGlmaWNhdGlvbk11dGV4OworICAgIExvY2sgbV9ub3RpZmljYXRp
b25NdXRleDsKICAgICBWZWN0b3I8U3RyaW5nPiBtX25vdGlmaWNhdGlvblF1ZXVlOwogICAgIHZv
aWQgc2NoZWR1bGVOb3RpZmljYXRpb25EZWxpdmVyeSgpOwogICAgIGJvb2wgbV9kZWxpdmVyeVJl
cXVlc3RlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdz
LmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFi
bGVTdHJpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsOSArNDQsOSBAQCBXZWJMb2NhbGl6
YWJsZVN0cmluZ3NCdW5kbGUgV2ViS2l0TG9jYWxpCiAKIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcs
IExvY2FsaXplZFN0cmluZyo+IExvY2FsaXplZFN0cmluZ01hcDsKIAotc3RhdGljIE11dGV4JiBt
YWluQnVuZGxlTG9jU3RyaW5nc011dGV4KCkKK3N0YXRpYyBMb2NrJiBtYWluQnVuZGxlTG9jU3Ry
aW5nc011dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgs
IG11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIG11
dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC01Niw5ICs1Niw5IEBAIHN0YXRp
YyBMb2NhbGl6ZWRTdHJpbmdNYXAmIG1haW5CdW5kbGVMb2MKICAgICByZXR1cm4gbWFwOwogfQog
Ci1zdGF0aWMgTXV0ZXgmIGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpCitzdGF0aWMgTG9jayYg
ZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKExvY2ssIG11dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xNzUs
MTIgKzE3NSwxMiBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29weUxvY2FsaXplZFN0cmluZ0ZyCiBz
dGF0aWMgTG9jYWxpemVkU3RyaW5nKiBmaW5kQ2FjaGVkU3RyaW5nKFdlYkxvY2FsaXphYmxlU3Ry
aW5nc0J1bmRsZSogc3RyaW5nc0J1bmRsZSwgY29uc3QgU3RyaW5nJiBrZXkpCiB7CiAgICAgaWYg
KCFzdHJpbmdzQnVuZGxlKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobWFpbkJ1bmRsZUxv
Y1N0cmluZ3NNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1haW5CdW5kbGVMb2NT
dHJpbmdzTXV0ZXgoKSk7CiAgICAgICAgIHJldHVybiBtYWluQnVuZGxlTG9jU3RyaW5ncygpLmdl
dChrZXkpOwogICAgIH0KIAogICAgIGlmIChzdHJpbmdzQnVuZGxlLT5idW5kbGUgPT0gV2ViS2l0
TG9jYWxpemFibGVTdHJpbmdzQnVuZGxlLmJ1bmRsZSkgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrKGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
KGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsKICAgICAgICAgcmV0dXJuIGZyYW1ld29ya0xv
Y1N0cmluZ3MoKS5nZXQoa2V5KTsKICAgICB9CiAKQEAgLTE5MCwxMiArMTkwLDEyIEBAIHN0YXRp
YyBMb2NhbGl6ZWRTdHJpbmcqIGZpbmRDYWNoZWRTdHJpbmcKIHN0YXRpYyB2b2lkIGNhY2hlU3Ry
aW5nKFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRsZSogc3RyaW5nc0J1bmRsZSwgY29uc3QgU3Ry
aW5nJiBrZXksIExvY2FsaXplZFN0cmluZyogdmFsdWUpCiB7CiAgICAgaWYgKCFzdHJpbmdzQnVu
ZGxlKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRl
eCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgo
KSk7CiAgICAgICAgIG1haW5CdW5kbGVMb2NTdHJpbmdzKCkuc2V0KGtleSwgdmFsdWUpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhmcmFtZXdvcmtMb2NT
dHJpbmdzTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKGZyYW1ld29ya0xvY1N0cmluZ3NN
dXRleCgpKTsKICAgICBmcmFtZXdvcmtMb2NTdHJpbmdzKCkuc2V0KGtleSwgdmFsdWUpOwogfQog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luTWFp
blRocmVhZFNjaGVkdWxlci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL1BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQyLDcgKzQyLDcgQEAgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6UGx1Z2luTWFpblRo
cgogCiB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlQ2FsbChOUFAgbnBw
LCBNYWluVGhyZWFkRnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQqIHVzZXJEYXRhKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1
ZU11dGV4KTsKIAogICAgIENhbGxRdWV1ZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2NhbGxRdWV1ZU1h
cC5maW5kKG5wcCk7CiAgICAgaWYgKGl0ID09IG1fY2FsbFF1ZXVlTWFwLmVuZCgpKQpAQCAtNTgs
NyArNTgsNyBAQCB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlCiAKIHZv
aWQgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6cmVnaXN0ZXJQbHVnaW4oTlBQIG5wcCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
KG1fcXVldWVNdXRleCk7CiAKICAgICBBU1NFUlQoIW1fY2FsbFF1ZXVlTWFwLmNvbnRhaW5zKG5w
cCkpOwogICAgIG1fY2FsbFF1ZXVlTWFwLnNldChucHAsIERlcXVlPENhbGw+KCkpOwpAQCAtNjYs
NyArNjYsNyBAQCB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnJlZ2lzdGVyCiAKIHZv
aWQgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6dW5yZWdpc3RlclBsdWdpbihOUFAgbnBwKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9xdWV1ZU11dGV4KTsKIAogICAgIEFTU0VSVChtX2NhbGxRdWV1ZU1hcC5jb250YWlucyhu
cHApKTsKICAgICBtX2NhbGxRdWV1ZU1hcC5yZW1vdmUobnBwKTsKQEAgLTc3LDcgKzc3LDcgQEAg
dm9pZCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpkaXNwYXRjaAogICAgIGZvciAoYXV0byYg
Y2FsbCA6IGNhbGxzKSB7CiAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBwbHVnLWluIGhhcyBiZWVu
IGRlc3Ryb3llZC4KICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1
ZXVlTXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fcXVldWVNdXRleCk7CiAg
ICAgICAgICAgICBpZiAoIW1fY2FsbFF1ZXVlTWFwLmNvbnRhaW5zKG5wcCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5z
L1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L3dpbi9QbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaAkocmV2aXNpb24gMTg4NTY5
KQorKysgU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wg
bV9jYWxsUGVuZGluZzsKICAgICBDYWxsUXVldWVNYXAgbV9jYWxsUXVldWVNYXA7Ci0gICAgTXV0
ZXggbV9xdWV1ZU11dGV4OworICAgIExvY2sgbV9xdWV1ZU11dGV4OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBvZiBXVEY6
Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwOgor
ICAgICAgICAoamF2YVNjcmlwdFRocmVhZHNNdXRleCk6CisgICAgICAgIChydW5KYXZhU2NyaXB0
VGhyZWFkKToKKyAgICAgICAgKHN0YXJ0SmF2YVNjcmlwdFRocmVhZHMpOgorICAgICAgICAoc3Rv
cEphdmFTY3JpcHRUaHJlYWRzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9D
b25kaXRpb24uY3BwOiBGaXhlZCBhIGJ1ZyBpbiB0aGUgdGVzdCB0aGF0IEkgZm91bmQgZnJvbSB0
dXJuaW5nIHRoZSB0ZXN0IGludG8gYSBiZW5jaG1hcmsuCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNS0wOC0xNyAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtPUyBYXSBSZW1v
dmUgc3VwcG9ydCBmb3IgY29tcG9zaXRlIGZvbnRzCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVy
VHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgVG9vbHMv
RHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1p
dGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00NCw5ICs0NSw5IEBAIHN0YXRp
YyBjb25zdCBzaXplX3QgamF2YVNjcmlwdFRocmVhZHNDb3UKIHN0YXRpYyBib29sIGphdmFTY3Jp
cHRUaHJlYWRzU2hvdWxkVGVybWluYXRlOwogc3RhdGljIEpTQ29udGV4dEdyb3VwUmVmIGphdmFT
Y3JpcHRUaHJlYWRzR3JvdXA7CiAKLXN0YXRpYyBNdXRleCYgamF2YVNjcmlwdFRocmVhZHNNdXRl
eCgpCitzdGF0aWMgTG9jayYgamF2YVNjcmlwdFRocmVhZHNNdXRleCgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBzdGF0aWNNdXRleCwgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NrLCBzdGF0aWNNdXRleCwgKCkpOwogICAg
IHJldHVybiBzdGF0aWNNdXRleDsKIH0KIApAQCAtNzAsMjYgKzcxLDI2IEBAIHZvaWQgcnVuSmF2
YVNjcmlwdFRocmVhZCh2b2lkKikKIAogICAgIEpTR2xvYmFsQ29udGV4dFJlZiBjdHg7CiAgICAg
ewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAg
ICAgICAgY3R4ID0gSlNHbG9iYWxDb250ZXh0Q3JlYXRlSW5Hcm91cChqYXZhU2NyaXB0VGhyZWFk
c0dyb3VwLCAwKTsKICAgICB9CiAKICAgICBKU1N0cmluZ1JlZiBzY3JpcHRSZWY7CiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAg
ICAgc2NyaXB0UmVmID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0KTsKICAg
ICB9CiAKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExv
Y2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgICAgICAgICBKU1Zh
bHVlUmVmIGV4Y2VwdGlvbiA9IDA7CiAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGN0eCwg
c2NyaXB0UmVmLCAwLCAwLCAxLCAmZXhjZXB0aW9uKTsKICAgICAgICAgICAgIEFTU0VSVCghZXhj
ZXB0aW9uKTsKICAgICAgICAgfQogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgICAgIGNvbnN0IHNp
emVfdCB2YWx1ZXNDb3VudCA9IDEwMjQ7CiAgICAgICAgICAgICBKU1ZhbHVlUmVmIHZhbHVlc1t2
YWx1ZXNDb3VudF07CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVlc0Nv
dW50OyArK2kpCkBAIC05Nyw3ICs5OCw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lk
KikKICAgICAgICAgfQogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgICAgIGlmIChqYXZhU2NyaXB0
VGhyZWFkc1Nob3VsZFRlcm1pbmF0ZSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQpAQCAtMTA2LDcgKzEwNyw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikKICAg
ICAgICAgaWYgKHJhbmQoKSAlIDUpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgVGhyZWFk
SWRlbnRpZmllciB0aHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7CiAgICAgICAgIGRldGFjaFRocmVh
ZCh0aHJlYWQpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLnJlbW92ZSh0aHJlYWQpOwpA
QCAtMTE0LDcgKzExNSw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJl
YWRzTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRl
eCgpKTsKICAgICBKU1N0cmluZ1JlbGVhc2Uoc2NyaXB0UmVmKTsKICAgICBKU0dhcmJhZ2VDb2xs
ZWN0KGN0eCk7CiAgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShjdHgpOwpAQCAtMTI0LDcgKzEy
NSw3IEBAIHZvaWQgc3RhcnRKYXZhU2NyaXB0VGhyZWFkcygpCiB7CiAgICAgamF2YVNjcmlwdFRo
cmVhZHNHcm91cCA9IEpTQ29udGV4dEdyb3VwQ3JlYXRlKCk7CiAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihq
YXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBq
YXZhU2NyaXB0VGhyZWFkc0NvdW50OyArK2kpCiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCku
YWRkKGNyZWF0ZVRocmVhZCgmcnVuSmF2YVNjcmlwdFRocmVhZCwgMCwgMCkpOwpAQCAtMTMzLDEz
ICsxMzQsMTMgQEAgdm9pZCBzdGFydEphdmFTY3JpcHRUaHJlYWRzKCkKIHZvaWQgc3RvcEphdmFT
Y3JpcHRUaHJlYWRzKCkKIHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZh
U2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2Ny
aXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkc1Nob3VsZFRlcm1p
bmF0ZSA9IHRydWU7CiAgICAgfQogCiAgICAgVmVjdG9yPFRocmVhZElkZW50aWZpZXIsIGphdmFT
Y3JpcHRUaHJlYWRzQ291bnQ+IHRocmVhZHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgY29weVRvVmVjdG9yKGphdmFT
Y3JpcHRUaHJlYWRzKCksIHRocmVhZHMpOwogICAgICAgICBBU1NFUlQodGhyZWFkcy5zaXplKCkg
PT0gamF2YVNjcmlwdFRocmVhZHNDb3VudCk7CiAgICAgfQpAQCAtMTQ4LDcgKzE0OSw3IEBAIHZv
aWQgc3RvcEphdmFTY3JpcHRUaHJlYWRzKCkKICAgICAgICAgd2FpdEZvclRocmVhZENvbXBsZXRp
b24odGhyZWFkc1tpXSk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZh
U2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2Ny
aXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmNsZWFyKCk7
CiAgICAgfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlv
bi5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0NvbmRpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIHJ1
blRlc3QoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhc2hvdWxkQ29u
dGludWUgfHwgIXF1ZXVlLmlzRW1wdHkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICghc2hvdWxkQ29udGludWUgJiYgcXVldWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZE5vdGlmeSA9
IHF1ZXVlLnNpemUoKSA9PSBtYXhRdWV1ZVNpemU7CiAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBxdWV1ZS50YWtlRmlyc3QoKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1dvcmtRdWV1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiAr
MjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiVGVzdC5oIgorI2luY2x1
ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CiAjaW5jbHVkZSA8c3RyaW5n
PgpAQCAtNDAsOCArNDIsOCBAQCBzdGF0aWMgY29uc3QgY2hhciogZGlzcGF0Y2hBZnRlckxhYmVs
ID0gCiAgICAgCiBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKIHsKLSAgICBNdXRleCBtX2xv
Y2s7Ci0gICAgVGhyZWFkQ29uZGl0aW9uIG1fdGVzdENvbXBsZXRlZDsKKyAgICBMb2NrIG1fbG9j
azsKKyAgICBDb25kaXRpb24gbV90ZXN0Q29tcGxldGVkOwogICAgIFZlY3RvcjxzdGQ6OnN0cmlu
Zz4gbV9mdW5jdGlvbkNhbGxPcmRlcjsKIAogICAgIGJvb2wgY2FsbGVkU2ltcGxlVGVzdCA9IGZh
bHNlOwpAQCAtNTYsNyArNTgsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICBp
bnQgaW5pdGlhbFJlZkNvdW50ID0gcXVldWUtPnJlZkNvdW50KCk7CiAgICAgRVhQRUNUX0VRKDEs
IGluaXRpYWxSZWZDb3VudCk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgIHF1ZXVlLT5kaXNwYXRjaChbJl0odm9p
ZCkgewogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZChzaW1wbGVUZXN0TGFiZWwp
OwogICAgICAgICBjYWxsZWRTaW1wbGVUZXN0ID0gdHJ1ZTsKQEAgLTY5LDcgKzcxLDcgQEAgVEVT
VChXVEZfV29ya1F1ZXVlLCBTaW1wbGUpCiAgICAgfSk7CiAKICAgICBxdWV1ZS0+ZGlzcGF0Y2go
WyZdKHZvaWQpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIu
YXBwZW5kKHRoaXJkVGVzdExhYmVsKTsKICAgICAgICAgY2FsbGVkVGhpcmRUZXN0ID0gdHJ1ZTsK
IApAQCAtNzcsNyArNzksNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICAgICAg
RVhQRUNUX1RSVUUoY2FsbGVkTG9uZ1Rlc3QpOwogICAgICAgICBFWFBFQ1RfVFJVRShjYWxsZWRU
aGlyZFRlc3QpOwogICAgICAgICAKLSAgICAgICAgbV90ZXN0Q29tcGxldGVkLnNpZ25hbCgpOwor
ICAgICAgICBtX3Rlc3RDb21wbGV0ZWQubm90aWZ5T25lKCk7CiAgICAgfSk7CiAKICAgICBFWFBF
Q1RfR1QocXVldWUtPnJlZkNvdW50KCksIDEpOwpAQCAtOTYsOCArOTgsOCBAQCBURVNUKFdURl9X
b3JrUXVldWUsIFNpbXBsZSkKIAogVEVTVChXVEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMpCiB7Ci0g
ICAgTXV0ZXggbV9sb2NrOwotICAgIFRocmVhZENvbmRpdGlvbiBtX3Rlc3RRdWV1ZTFDb21wbGV0
ZWQsIG1fdGVzdFF1ZXVlMkNvbXBsZXRlZDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBDb25kaXRp
b24gbV90ZXN0UXVldWUxQ29tcGxldGVkLCBtX3Rlc3RRdWV1ZTJDb21wbGV0ZWQ7CiAgICAgVmVj
dG9yPHN0ZDo6c3RyaW5nPiBtX2Z1bmN0aW9uQ2FsbE9yZGVyOwogCiAgICAgYm9vbCBjYWxsZWRT
aW1wbGVUZXN0ID0gZmFsc2U7CkBAIC0xMTAsNyArMTEyLDcgQEAgVEVTVChXVEZfV29ya1F1ZXVl
LCBUd29RdWV1ZXMpCiAgICAgRVhQRUNUX0VRKDEsIHF1ZXVlMS0+cmVmQ291bnQoKSk7CiAgICAg
RVhQRUNUX0VRKDEsIHF1ZXVlMi0+cmVmQ291bnQoKSk7CiAKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9sb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgIAogICAgIHF1
ZXVlMS0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5h
cHBlbmQoc2ltcGxlVGVzdExhYmVsKTsKQEAgLTEyMCwyMiArMTIyLDIyIEBAIFRFU1QoV1RGX1dv
cmtRdWV1ZSwgVHdvUXVldWVzKQogICAgIHF1ZXVlMi0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKICAg
ICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29u
ZHMoNTApKTsKIAotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKIAogICAgICAgICAvLyBXaWxsIGZhaWwgaWYgcXVl
dWUyIHRvb2sgdGhlIG11dGV4IGJlZm9yZSBxdWV1ZTEuCiAgICAgICAgIEVYUEVDVF9UUlVFKGNh
bGxlZFRoaXJkVGVzdCk7CiAKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQobG9u
Z1Rlc3RMYWJlbCk7CiAgICAgICAgIGNhbGxlZExvbmdUZXN0ID0gdHJ1ZTsKLSAgICAgICAgbV90
ZXN0UXVldWUyQ29tcGxldGVkLnNpZ25hbCgpOworICAgICAgICBtX3Rlc3RRdWV1ZTJDb21wbGV0
ZWQubm90aWZ5T25lKCk7CiAgICAgfSk7CiAKICAgICBxdWV1ZTEtPmRpc3BhdGNoKFsmXSh2b2lk
KSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZCh0
aGlyZFRlc3RMYWJlbCk7CiAgICAgICAgIGNhbGxlZFRoaXJkVGVzdCA9IHRydWU7CiAgICAgICAg
IAotICAgICAgICBtX3Rlc3RRdWV1ZTFDb21wbGV0ZWQuc2lnbmFsKCk7CisgICAgICAgIG1fdGVz
dFF1ZXVlMUNvbXBsZXRlZC5ub3RpZnlPbmUoKTsKICAgICB9KTsKIAogICAgIG1fdGVzdFF1ZXVl
MUNvbXBsZXRlZC53YWl0KG1fbG9jayk7CkBAIC0xNTgsOCArMTYwLDggQEAgVEVTVChXVEZfV29y
a1F1ZXVlLCBUd29RdWV1ZXMpCiAKIFRFU1QoV1RGX1dvcmtRdWV1ZSwgRGlzcGF0Y2hBZnRlcikK
IHsKLSAgICBNdXRleCBtX2xvY2s7Ci0gICAgVGhyZWFkQ29uZGl0aW9uIG1fdGVzdENvbXBsZXRl
ZCwgbV9kaXNwYXRjaEFmdGVyVGVzdENvbXBsZXRlZDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBD
b25kaXRpb24gbV90ZXN0Q29tcGxldGVkLCBtX2Rpc3BhdGNoQWZ0ZXJUZXN0Q29tcGxldGVkOwog
ICAgIFZlY3RvcjxzdGQ6OnN0cmluZz4gbV9mdW5jdGlvbkNhbGxPcmRlcjsKIAogICAgIGJvb2wg
Y2FsbGVkU2ltcGxlVGVzdCA9IGZhbHNlOwpAQCAtMTY3LDIwICsxNjksMjAgQEAgVEVTVChXVEZf
V29ya1F1ZXVlLCBEaXNwYXRjaEFmdGVyKQogCiAgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6
Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRlciIpOwogCi0gICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsK
IAogICAgIHF1ZXVlLT5kaXNwYXRjaChbJl0odm9pZCkgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAg
ICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQoc2ltcGxlVGVzdExhYmVsKTsKICAgICAgICAg
Y2FsbGVkU2ltcGxlVGVzdCA9IHRydWU7Ci0gICAgICAgIG1fdGVzdENvbXBsZXRlZC5zaWduYWwo
KTsKKyAgICAgICAgbV90ZXN0Q29tcGxldGVkLm5vdGlmeU9uZSgpOwogICAgIH0pOwogCiAgICAg
cXVldWUtPmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApLCBbJl0o
dm9pZCkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBl
bmQoZGlzcGF0Y2hBZnRlckxhYmVsKTsKICAgICAgICAgY2FsbGVkRGlzcGF0Y2hBZnRlclRlc3Qg
PSB0cnVlOwotICAgICAgICBtX2Rpc3BhdGNoQWZ0ZXJUZXN0Q29tcGxldGVkLnNpZ25hbCgpOwor
ICAgICAgICBtX2Rpc3BhdGNoQWZ0ZXJUZXN0Q29tcGxldGVkLm5vdGlmeU9uZSgpOwogICAgIH0p
OwogCiAgICAgbV90ZXN0Q29tcGxldGVkLndhaXQobV9sb2NrKTsKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAkocmV2
aXNpb24gMTg4NTY5KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3Jr
UXVldWVHTGliLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CiBURVNUKFdURl9Xb3JrUXVldWUsIEFzeW5jSU8pCiB7CiAgICAgc3Ry
dWN0IFRlc3RpbmdDb250ZXh0IHsKLSAgICAgICAgTXV0ZXggbV9sb2NrOworICAgICAgICBMb2Nr
IG1fbG9jazsKICAgICAgICAgVGhyZWFkQ29uZGl0aW9uIG1fdGVzdENvbXBsZXRlZDsKICAgICAg
ICAgR01haW5Db250ZXh0KiBtX21haW5Db250ZXh0OwogICAgIH0gY29udGV4dDsKQEAgLTQ5LDcg
KzQ5LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBBc3luY0lPKQogICAgIEdVbmlxdWVQdHI8Y2hh
cj4gY3VycmVudERpcmVjdG9yeShnX2dldF9jdXJyZW50X2RpcigpKTsKICAgICBHUmVmUHRyPEdG
aWxlPiBmaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgoY3VycmVudERpcmVjdG9y
eS5nZXQoKSkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGNvbnRleHQubV9sb2NrKTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihjb250ZXh0Lm1fbG9jayk7CiAgICAgcXVldWUtPmRpc3BhdGNo
KFsmXSh2b2lkKSB7CiAgICAgICAgIEVYUEVDVF9UUlVFKGdfbWFpbl9jb250ZXh0X2dldF90aHJl
YWRfZGVmYXVsdCgpKTsKICAgICAgICAgRVhQRUNUX1RSVUUoZ19tYWluX2NvbnRleHRfZ2V0X3Ro
cmVhZF9kZWZhdWx0KCkgIT0gY29udGV4dC5tX21haW5Db250ZXh0KTsKQEAgLTU3LDcgKzU3LDcg
QEAgVEVTVChXVEZfV29ya1F1ZXVlLCBBc3luY0lPKQogICAgICAgICBnX2ZpbGVfcXVlcnlfaW5m
b19hc3luYyhmaWxlLmdldCgpLCBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX1NJWkUsIEdfRklM
RV9RVUVSWV9JTkZPX05PTkUsIEdfUFJJT1JJVFlfREVGQVVMVCwgbnVsbHB0ciwKICAgICAgICAg
ICAgIFtdKEdPYmplY3QqLCBHQXN5bmNSZXN1bHQqLCBncG9pbnRlciB1c2VyRGF0YSkgewogICAg
ICAgICAgICAgICAgIFRlc3RpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8VGVzdGlu
Z0NvbnRleHQqPih1c2VyRGF0YSk7Ci0gICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KGNvbnRleHQtPm1fbG9jayk7CisgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoY29u
dGV4dC0+bV9sb2NrKTsKICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoZ19tYWluX2NvbnRleHRf
Z2V0X3RocmVhZF9kZWZhdWx0KCksIGNvbnRleHQtPm1fbWFpbkNvbnRleHQpOwogICAgICAgICAg
ICAgICAgIGNvbnRleHQtPm1fdGVzdENvbXBsZXRlZC5zaWduYWwoKTsKICAgICAgICAgICAgIH0s
ICZjb250ZXh0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259250</attachid>
            <date>2015-08-17 22:41:58 -0700</date>
            <delta_ts>2015-08-17 23:18:35 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>217977</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RG
OjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBhbHNvIGJlZWZzIHVwIGFuZCByYXRpb25hbGl6ZXMgdGhlIENv
bmRpdGlvbiBBUEksIHNvIHRoYXQgaXQgY2FuIGRlYWwgd2l0aCB1bml0cyBvZiB0aW1lCisgICAg
ICAgIG90aGVyIHRoYW4ganVzdCBzdGVhZHlfY2xvY2suIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRv
IHBvcnQgVGhyZWFkQ29uZGl0aW9uIGFuZAorICAgICAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJs
ZSBjb2RlIG92ZXIgdG8gQ29uZGl0aW9uLiBUaGlzIHBhdGNoIGRvZXMgbm90IHRha2UgYSBwb3Np
dGlvbiBvbiB3aGF0CisgICAgICAgIGtpbmQgb2YgdGltZSBpcyBiZXN0OyBmcm9tIHJlYWRpbmcg
YSBsb3Qgb2YgdGhlIHVzZXMgaW4gV2ViQ29yZSwgaXQgc2VlbXMgbGlrZSBvdXIgdXNlIG9mCisg
ICAgICAgIGRvdWJsZSB0byBtZWFzdXJlIHNlY29uZHMgaXMgb2Z0ZW4gbmljZXIgdGhhbiB0aGUg
bWFueSBkaWZmZXJlbnQgY2xhc3NlcyBpbiBzdGQ6OmNocm9uby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgQ29uZGl0aW9uIHNwZWVkIHRlc3QsIHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBvZiB0aGlz
IGlzIGEgZ29vZCBpZGVhLiBBbmQgaW5kZWVkIGl0CisgICAgICAgIGlzLiBUaGUgMS1wcm9kdWNl
ci8xLWNvbnN1bWVyIHNjZW5hcmlvIHdpdGggYSAxMDAtZWxlbWVudCBxdWV1ZSBydW5zIDM2eCBm
YXN0ZXIgdXNpbmcKKyAgICAgICAgTG9jay9Db25kaXRpb24gdGhhbiBNdXRleC9UaHJlYWRDb25k
aXRpb24gd2hlbiB5b3UgdXNlIHRoZSBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBzdHlsZS4gSXQK
KyAgICAgICAgcnVucyA1OHggZmFzdGVyIHdpdGggTG9jay9Db25kaXRpb24gd2hlbiB5b3UgdXNl
IHRoZSBub3RpZnlBbGwoKS1hdC1ib3VuZGFyeSBzdHlsZS4gTm90ZSB0aGF0CisgICAgICAgIEkg
aGF2ZSBhIGJ1ZyBvcGVuIGZvciBtYWtpbmcgdGhlIG5vdGlmeU9uZSgpLXBlci1lbnF1ZXVlIHN0
eWxlIGV2ZW4gZmFzdGVyOgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MDkwLiBBbHNvLCB0aGUgMTAtY29uc3VtZXIvMTAtcHJvZHVjZXIgc2NlbmFy
aW8gd2l0aAorICAgICAgICBhIDEwMC1lbGVtZW50IHF1ZXVlIHJ1bnMgMjB4IGZhc3RlciB3aXRo
IExvY2svQ29uZGl0aW9uIGZvciBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBhbmQgMzB4CisgICAg
ICAgIGZhc3RlciB3aXRoIG5vdGlmeUFsbCgpLWF0LWJvdW5kYXJ5LiBTbywgaXQgc2VlbXMgdGhh
dCByZXBsYWNpbmcgYWxsIHVzZXMgb2Ygc3lzdGVtIG11dGV4ZXMgYW5kCisgICAgICAgIGNvbmRp
dGlvbiB2YXJpYWJsZXMgd2l0aCBvdXIgb3duIHRoaW5nIGlzIGEgZ3JlYXQgaWRlYS4KKworICAg
ICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJr
cy9Db25kaXRpb25TcGVlZFRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvQ29uZGl0aW9u
Lmg6CisgICAgICAgIChXVEY6OkNvbmRpdGlvbjo6Q29uZGl0aW9uKToKKyAgICAgICAgKFdURjo6
Q29uZGl0aW9uOjp3YWl0VW50aWwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3Ip
OgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXQpOgorICAgICAgICAoV1RGOjpDb25kaXRp
b246OndhaXRVbnRpbFdhbGxDbG9ja1NlY29uZHMpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246
OndhaXRVbnRpbE1vbm90b25pY0Nsb2NrU2Vjb25kcyk6CisgICAgICAgIChXVEY6OkNvbmRpdGlv
bjo6bm90aWZ5T25lKToKKyAgICAgICAgKFdURjo6Q29uZGl0aW9uOjpub3RpZnlBbGwpOgorICAg
ICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3JTZWNvbmRzSW1wbCk6CisgICAgICAgIChXVEY6
OkNvbmRpdGlvbjo6d2FpdEZvckltcGwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OmFic29s
dXRlRnJvbVJlbGF0aXZlKToKKyAgICAgICAgKiB3dGYvTWVzc2FnZVF1ZXVlLmg6CisgICAgICAg
IChXVEY6Ok1lc3NhZ2VRdWV1ZTo6aW5maW5pdGVUaW1lKToKKyAgICAgICAgKFdURjo6TWVzc2Fn
ZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6YXBwZW5kQW5kS2lsbCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRh
VHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHkpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8
RGF0YVR5cGU+OjpwcmVwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBl
Pjo6cmVtb3ZlSWYpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojppc0Vt
cHR5KToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbCk6CisgICAg
ICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmtpbGxlZCk6CisgICAgICAgICogd3Rm
L1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25t
ZW50OjpUaHJlYWRQcml2YXRlOjpleGVjdXRlKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZp
cm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZpbmlzaCk6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCk6CisgICAgICAg
ICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaDoKKyAgICAgICAgKiB3dGYvUGFya2luZ0xvdC5j
cHA6CisgICAgICAgIChXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KToKKyAgICAg
ICAgKiB3dGYvUGFya2luZ0xvdC5oOgorICAgICAgICAoV1RGOjpQYXJraW5nTG90Ojpjb21wYXJl
QW5kUGFyayk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAg
KFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZyk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5j
cHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHd0Zi9k
dG9hLmNwcDoKKyAgICAgICAgKFdURjo6cG93NW11bHQpOgorICAgICAgICAqIHd0Zi9kdG9hLmg6
CisKIDIwMTUtMDgtMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBCdWlsZCBEZWJ1ZyBTdWZmaXggb24gV2luZG93cyB3aXRoIENNYWtlCklu
ZGV4OiBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKy8vIE9uIE1hYywgeW91IGNhbiBidWlsZCB0aGlzIGxp
a2Ugc286CisvLyBjbGFuZysrIC1vIENvbmRpdGlvblNwZWVkVGVzdCBTb3VyY2UvV1RGL2JlbmNo
bWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RGIC1MV2ViS2l0
QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vjb3JlIC1zdGQ9
YysrMTEKKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVk
ZSA8dGhyZWFkPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvRGF0YUxvZy5o
PgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJp
bWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIHsKKworY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisKK3Vuc2lnbmVkIG51bVByb2R1Y2VyczsKK3Vuc2ln
bmVkIG51bUNvbnN1bWVyczsKK3Vuc2lnbmVkIG1heFF1ZXVlU2l6ZTsKK3Vuc2lnbmVkIG51bU1l
c3NhZ2VzUGVyUHJvZHVjZXI7CisgICAgCitOT19SRVRVUk4gdm9pZCB1c2FnZSgpCit7CisgICAg
cHJpbnRmKCJVc2FnZTogQ29uZGl0aW9uU3BlZWRUZXN0IGxvY2t8bXV0ZXh8YWxsIDxudW0gcHJv
ZHVjZXJzPiA8bnVtIGNvbnN1bWVycz4gPG1heCBxdWV1ZSBzaXplPiA8bnVtIG1lc3NhZ2VzIHBl
ciBwcm9kdWNlcj5cbiIpOworICAgIGV4aXQoMSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0b3IsIHR5cGVuYW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIExvY2tUeXBlPgordm9pZCB3
YWl0KENvbmRpdGlvblR5cGUmIGNvbmRpdGlvbiwgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IEZ1bmN0
b3ImIHByZWRpY2F0ZSkKK3sKKyAgICB3aGlsZSAoIXByZWRpY2F0ZSgpKQorICAgICAgICBjb25k
aXRpb24ud2FpdChsb2NrKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVu
YW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIE5vdGlmeUZ1bmN0b3IsIHR5cGVuYW1lIE5vdGlm
eUFsbEZ1bmN0b3I+Cit2b2lkIHJ1blRlc3QoCisgICAgdW5zaWduZWQgbnVtUHJvZHVjZXJzLAor
ICAgIHVuc2lnbmVkIG51bUNvbnN1bWVycywKKyAgICB1bnNpZ25lZCBtYXhRdWV1ZVNpemUsCisg
ICAgdW5zaWduZWQgbnVtTWVzc2FnZXNQZXJQcm9kdWNlciwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIERlcXVlPHVuc2lnbmVkPiBxdWV1ZTsKKyAgICBib29sIHNob3VsZENvbnRpbnVlID0gdHJ1
ZTsKKyAgICBMb2NrVHlwZSBsb2NrOworICAgIENvbmRpdGlvblR5cGUgZW1wdHlDb25kaXRpb247
CisgICAgQ29uZGl0aW9uVHlwZSBmdWxsQ29uZGl0aW9uOworCisgICAgVmVjdG9yPFRocmVhZElk
ZW50aWZpZXI+IGNvbnN1bWVyVGhyZWFkczsKKyAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4g
cHJvZHVjZXJUaHJlYWRzOworCisgICAgVmVjdG9yPHVuc2lnbmVkPiByZWNlaXZlZDsKKyAgICBM
b2NrVHlwZSByZWNlaXZlZExvY2s7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29u
c3VtZXJzOyBpLS07KSB7CisgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmll
ciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAg
ICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbXVz
dE5vdGlmeSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB3YWl0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5
Q29uZGl0aW9uLCBsb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZyh0b1N0cmluZyhjdXJyZW50VGhyZWFkKCks
ICI6IENoZWNraW5nIGNvbnN1bXB0aW9uIHByZWRpY2F0ZSB3aXRoIHNob3VsZENvbnRpbnVlID0g
Iiwgc2hvdWxkQ29udGludWUsICIsIHF1ZXVlLnNpemUoKSA9PSAiLCBxdWV1ZS5zaXplKCksICJc
biIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFzaG91bGRDb250
aW51ZSB8fCAhcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSAmJiBxdWV1ZS5p
c0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgICAgICAgICAgbXVzdE5vdGlmeSA9IHF1ZXVlLnNpemUoKSA9PSBtYXhRdWV1ZVNpemU7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBxdWV1ZS50YWtlRmlyc3QoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBub3RpZnkoZnVsbENvbmRp
dGlvbiwgbXVzdE5vdGlmeSk7CisKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2tUeXBlPiBsb2NrZXIocmVjZWl2ZWRMb2Nr
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkLmFwcGVuZChyZXN1bHQpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7Cisg
ICAgICAgIGNvbnN1bWVyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmllcik7CisgICAgfQor
CisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtUHJvZHVjZXJzOyBpLS07KSB7CisgICAgICAgIFRo
cmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAg
ICAgICJQcm9kdWNlciBUaHJlYWQiLAorICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQZXJQcm9kdWNlcjsgKytp
KSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgbXVzdE5vdGlmeSA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2Nr
PExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxDb25kaXRpb24sIGxvY2ssCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKHRvU3RyaW5nKGN1cnJlbnRUaHJlYWQoKSwgIjogQ2hlY2tpbmcgcHJvZHVjdGlvbiBw
cmVkaWNhdGUgd2l0aCBzaG91bGRDb250aW51ZSA9ICIsIHNob3VsZENvbnRpbnVlLCAiLCBxdWV1
ZS5zaXplKCkgPT0gIiwgcXVldWUuc2l6ZSgpLCAiXG4iKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBxdWV1ZS5zaXplKCkgPCBtYXhRdWV1ZVNpemU7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtdXN0Tm90
aWZ5ID0gcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgcXVldWUuYXBw
ZW5kKGkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5vdGlm
eShlbXB0eUNvbmRpdGlvbiwgbXVzdE5vdGlmeSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSk7CisgICAgICAgIHByb2R1Y2VyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmll
cik7CisgICAgfQorCisgICAgZm9yIChUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIg
OiBwcm9kdWNlclRocmVhZHMpCisgICAgICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVh
ZElkZW50aWZpZXIpOworCisgICAgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9ja1R5cGU+
IGxvY2tlcihsb2NrKTsKKyAgICAgICAgc2hvdWxkQ29udGludWUgPSBmYWxzZTsKKyAgICB9Cisg
ICAgbm90aWZ5QWxsKGVtcHR5Q29uZGl0aW9uKTsKKworICAgIGZvciAoVGhyZWFkSWRlbnRpZmll
ciB0aHJlYWRJZGVudGlmaWVyIDogY29uc3VtZXJUaHJlYWRzKQorICAgICAgICB3YWl0Rm9yVGhy
ZWFkQ29tcGxldGlvbih0aHJlYWRJZGVudGlmaWVyKTsKKworICAgIFJFTEVBU0VfQVNTRVJUKG51
bVByb2R1Y2VycyAqIG51bU1lc3NhZ2VzUGVyUHJvZHVjZXIgPT0gcmVjZWl2ZWQuc2l6ZSgpKTsK
KyAgICBzdGQ6OnNvcnQocmVjZWl2ZWQuYmVnaW4oKSwgcmVjZWl2ZWQuZW5kKCkpOworICAgIGZv
ciAodW5zaWduZWQgbWVzc2FnZUluZGV4ID0gMDsgbWVzc2FnZUluZGV4IDwgbnVtTWVzc2FnZXNQ
ZXJQcm9kdWNlcjsgKyttZXNzYWdlSW5kZXgpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBwcm9k
dWNlckluZGV4ID0gMDsgcHJvZHVjZXJJbmRleCA8IG51bVByb2R1Y2VyczsgKytwcm9kdWNlcklu
ZGV4KQorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobWVzc2FnZUluZGV4ID09IHJlY2VpdmVk
W21lc3NhZ2VJbmRleCAqIG51bVByb2R1Y2VycyArIHByb2R1Y2VySW5kZXhdKTsKKyAgICB9Cit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlLCB0eXBlbmFtZSBDb25kaXRpb25UeXBlLCB0
eXBlbmFtZSBOb3RpZnlGdW5jdG9yLCB0eXBlbmFtZSBOb3RpZnlBbGxGdW5jdG9yPgordm9pZCBy
dW5CZW5jaG1hcmsoCisgICAgY29uc3QgY2hhciogbmFtZSwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIGRvdWJsZSBiZWZvcmUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWVNUygpOworICAg
IAorICAgIHJ1blRlc3Q8TG9ja1R5cGUsIENvbmRpdGlvblR5cGU+KAorICAgICAgICBudW1Qcm9k
dWNlcnMsCisgICAgICAgIG51bUNvbnN1bWVycywKKyAgICAgICAgbWF4UXVldWVTaXplLAorICAg
ICAgICBudW1NZXNzYWdlc1BlclByb2R1Y2VyLAorICAgICAgICBub3RpZnksCisgICAgICAgIG5v
dGlmeUFsbCk7CisKKyAgICBkb3VibGUgYWZ0ZXIgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWVNUygpOworCisgICAgcHJpbnRmKCIlczogJS4zbGYgbXMuXG4iLCBuYW1lLCBhZnRlciAtIGJl
Zm9yZSk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitpbnQgbWFpbihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCit7CisgICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisKKyAg
ICBpZiAoYXJnYyAhPSA2CisgICAgICAgIHx8IHNzY2FuZihhcmd2WzJdLCAiJXUiLCAmbnVtUHJv
ZHVjZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzNdLCAiJXUiLCAmbnVtQ29uc3Vt
ZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzRdLCAiJXUiLCAmbWF4UXVldWVTaXpl
KSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzVdLCAiJXUiLCAmbnVtTWVzc2FnZXNQZXJQ
cm9kdWNlcikgIT0gMSkKKyAgICAgICAgdXNhZ2UoKTsKKworICAgIGJvb2wgZGlkUnVuID0gZmFs
c2U7CisgICAgaWYgKCFzdHJjbXAoYXJndlsxXSwgImxvY2siKSB8fCAhc3RyY21wKGFyZ3ZbMV0s
ICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1hcms8TG9jaywgQ29uZGl0aW9uPigKKyAgICAg
ICAgICAgICJXVEYgTG9jayBOb3RpZnlPbmUiLAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24m
IGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9u
Lm5vdGlmeU9uZSgpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0aW9u
JiBjb25kaXRpb24pIHsKKyAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgcnVuQmVuY2htYXJrPExvY2ssIENvbmRpdGlvbj4oCisg
ICAgICAgICAgICAiV1RGIExvY2sgTm90aWZ5QWxsIiwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0
aW9uJiBjb25kaXRpb24sIGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGlmICht
dXN0Tm90aWZ5KQorICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24mIGNvbmRpdGlvbikgewor
ICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICBkaWRSdW4gPSB0cnVlOworICAgIH0KKyAgICBpZiAoIXN0cmNtcChhcmd2WzFdLCAi
bXV0ZXgiKSB8fCAhc3RyY21wKGFyZ3ZbMV0sICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1h
cms8TXV0ZXgsIFRocmVhZENvbmRpdGlvbj4oCisgICAgICAgICAgICAiUGxhdGZvcm0gTXV0ZXgg
Tm90aWZ5T25lIiwKKyAgICAgICAgICAgIFsmXSAoVGhyZWFkQ29uZGl0aW9uJiBjb25kaXRpb24s
IGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5zaWduYWwoKTsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlvbiYgY29uZGl0
aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIHJ1bkJlbmNobWFyazxNdXRleCwgVGhyZWFkQ29uZGl0aW9uPigKKyAg
ICAgICAgICAgICJQbGF0Zm9ybSBNdXRleCBOb3RpZnlBbGwiLAorICAgICAgICAgICAgWyZdIChU
aHJlYWRDb25kaXRpb24mIGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAg
ICAgICAgaWYgKG11c3ROb3RpZnkpCisgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5icm9h
ZGNhc3QoKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlv
biYgY29uZGl0aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIGRpZFJ1biA9IHRydWU7CisgICAgfQorCisgICAgaWYg
KCFkaWRSdW4pCisgICAgICAgIHVzYWdlKCk7CisKKyAgICByZXR1cm4gMDsKK30KKwpJbmRleDog
U291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw2ICsyMyw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisvLyBPbiBNYWMsIHlv
dSBjYW4gYnVpbGQgdGhpcyBsaWtlIHNvOgorLy8gY2xhbmcrKyAtbyBMb2NrU3BlZWRUZXN0IFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RG
IC1MV2ViS2l0QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vj
b3JlIC1zdGQ9YysrMTEKKwogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9Db25kaXRpb24uaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93
dGYvQ29uZGl0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDI2ICsyOSw1OSBAQAogI2luY2x1
ZGUgPGNocm9ubz4KICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPG11dGV4PgorI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXJraW5nTG90Lmg+CiAK
IG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBDb25kaXRpb24gewogcHVibGljOgorICAgIHR5cGVk
ZWYgUGFya2luZ0xvdDo6Q2xvY2sgQ2xvY2s7CisgICAgCiAgICAgQ29uZGl0aW9uKCkgeyB9CiAK
ICAgICAvLyBXYWl0IG9uIGEgcGFya2luZyBxdWV1ZSB3aGlsZSByZWxlYXNpbmcgdGhlIGdpdmVu
IGxvY2suIEl0IHdpbGwgdW5sb2NrIHRoZSBsb2NrIGp1c3QgYmVmb3JlCiAgICAgLy8gcGFya2lu
ZywgYW5kIHJlbG9jayBpdCB1cG9uIHdha2V1cC4gUmV0dXJucyB0cnVlIGlmIHdlIHdva2UgdXAg
ZHVlIHRvIHNvbWUgY2FsbCB0bwotICAgIC8vIG5vdGlmeU9uZSgpIG9yIG5vdGlmeUFsbCgpLiBS
ZXR1cm5zIGZhbHNlIGlmIHdlIHdva2UgdXAgZHVlIHRvIGEgdGltZW91dC4KKyAgICAvLyBub3Rp
ZnlPbmUoKSBvciBub3RpZnlBbGwoKS4gUmV0dXJucyBmYWxzZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0
byBhIHRpbWVvdXQuIE5vdGUgdGhhdCB0aGlzIGZvcm0KKyAgICAvLyBvZiB3YWl0VW50aWwoKSBo
YXMgc29tZSBxdWlya3M6CisgICAgLy8KKyAgICAvLyBObyBzcHVyaW91cyB3YWtlLXVwOiBpbiBv
cmRlciBmb3IgdGhpcyB0byByZXR1cm4gYmVmb3JlIHRoZSB0aW1lb3V0LCBzb21lIG5vdGlmeU9u
ZSgpIG9yCisgICAgLy8gbm90aWZ5QWxsKCkgY2FsbCBtdXN0IGhhdmUgaGFwcGVuZWQuIE5vIHNj
ZW5hcmlvIG90aGVyIHRoYW4gdGltZW91dCBvciBub3RpZnkgY2FuIGxlYWQgdG8gdGhpcworICAg
IC8vIG1ldGhvZCByZXR1cm5pbmcuIFRoaXMgbWVhbnMsIGZvciBleGFtcGxlLCB0aGF0IHlvdSBj
YW4ndCB1c2UgcHRocmVhZCBjYW5jZWxhdGlvbiBvciBzaWduYWxzIHRvCisgICAgLy8gY2F1c2Ug
ZWFybHkgcmV0dXJuLgorICAgIC8vCisgICAgLy8gUGFzdCB0aW1lb3V0OiBpdCdzIHBvc3NpYmxl
IGZvciB3YWl0VW50aWwoKSB0byBiZSBjYWxsZWQgd2l0aCBhIHRpbWVvdXQgaW4gdGhlIHBhc3Qu
IEluIHRoYXQKKyAgICAvLyBjYXNlLCB3YWl0VW50aWwoKSB3aWxsIHN0aWxsIHJlbGVhc2UgdGhl
IGxvY2sgYW5kIHJlYWNxdWlyZSBpdC4gd2FpdFVudGlsKCkgd2lsbCBhbHdheXMgcmV0dXJuCisg
ICAgLy8gZmFsc2UgaW4gdGhhdCBjYXNlLiBUaGlzIGlzIHN1YnRseSBkaWZmZXJlbnQgZnJvbSBz
b21lIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSBpbXBsZW1lbnRhdGlvbnMsCisgICAgLy8gd2hp
Y2ggbWF5IG5vdCByZWxlYXNlIHRoZSBsb2NrIGZvciBwYXN0IHRpbWVvdXQuIEJ1dCwgdGhpcyBi
ZWhhdmlvciBpcyBjb25zaXN0ZW50IHdpdGggT3Blbkdyb3VwCisgICAgLy8gZG9jdW1lbnRhdGlv
biBmb3IgdGltZWR3YWl0KCkuCisgICAgLy8KKyAgICAvLyBNYXkgd2FpdCB0b28gbG9uZyBvbiBz
b21lIE9TZXM6IHRoZSBDKysgc3RhbmRhcmQgbGlicmFyeSBpbXBsZW1lbnRhdGlvbiBvZgorICAg
IC8vIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlOjp3YWl0X3VudGlsKCksIHdoaWNoIHRoaXMgdXNl
cyBpbnRlcm5hbGx5LCBtYXkgY29udmVydCB0aGUgYWJzb2x1dGUKKyAgICAvLyB0aW1lIHRvIGFu
IGFic29sdXRlIHRpbWUgYWNjb3JkaW5nIHRvIHRoZSBzeXN0ZW0gY2xvY2ssIHdoaWNoIGlzbid0
IG1vbm90b25pYy4gSXQgd2lsbCBkbyB0aGlzCisgICAgLy8gc28gdGhhdCBpdCBjYW4gdXNlIHB0
aHJlYWRfY29uZF90aW1lZHdhaXQoKS4gRGVwZW5kaW5nIG9uIHRoZSBPUyBhbmQgaWYgYW4gdW5m
b3J0dW5hdGUKKyAgICAvLyBjb21iaW5hdGlvbiBvZiB0aHJlYWQgaW50ZXJsZWF2aW5ncyBhbmQg
c3lzdGVtIHRpbWUgY2hhbmdlcyBoYXBwZW5zLCB0aGlzIG1heSBjYXVzZSB3YWl0VW50aWwoKQor
ICAgIC8vIHRvIHdhaXQgbG9uZ2VyIHRoYW4gaXQncyBzdXBwb3NlZCB0by4gSG93ZXZlciwgaXQn
cyB0eXBpY2FsIGZvciBPU2VzIHRvIHR1cm4gdGhlIGFic29sdXRlCisgICAgLy8gdGltZW91dCBp
biBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gYSByZWxhdGl2ZSB0aW1lb3V0IGJlZm9yZSBj
YWxsaW5nIGludG8gdGhlIGtlcm5lbC4gVGhpcworICAgIC8vIGlzIHdoYXQgZ2xpYmMgZG9lcywg
Zm9yIGV4YW1wbGUuCisgICAgLy8KKyAgICAvLyBUaGVzZSBxdWlya3MgYXJlIGdlbmVyYWxseSBu
b3Qgd29ydGggd29ycnlpbmcgdG9vIG11Y2ggYWJvdXQuIFRoZSBmYWN0IHRoYXQgc29tZSBPU2Vz
IHBlcmZvcm0KKyAgICAvLyBjb252ZXJzaW9ucyB0byBhbiBhYnNvbHV0ZSBub24tbW9ub3Rvbmlj
IHRpbWUgaXMgdW5saWtlbHkgdG8gY2F1c2UgaXNzdWVzIGJlY2F1c2UgdGhleSB1c3VhbGx5Cisg
ICAgLy8ganVzdCBkbyB0aGF0IGFzIHBhcnQgb2YgYSBjb252ZXJzaW9uIHRvIGEgcmVsYXRpdmUg
c2xlZXAgYW1vdW50IGluIHRoZSBrZXJuZWwuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5
cGU+Ci0gICAgYm9vbCB3YWl0VW50aWwoCi0gICAgICAgIExvY2tUeXBlJiBsb2NrLCBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCisgICAgYm9vbCB3YWl0VW50
aWwoTG9ja1R5cGUmIGxvY2ssIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiAgICAgewotICAg
ICAgICBib29sIHJlc3VsdCA9IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAotICAgICAg
ICAgICAgJm1fZHVtbXksCi0gICAgICAgICAgICBbXSAoKSAtPiBib29sIHsgcmV0dXJuIHRydWU7
IH0sCi0gICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKLSAgICAgICAg
ICAgIHRpbWVvdXQpOworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgaWYgKHRpbWVvdXQg
PCBDbG9jazo6bm93KCkpIHsKKyAgICAgICAgICAgIGxvY2sudW5sb2NrKCk7CisgICAgICAgICAg
ICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9
IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAorICAgICAgICAgICAgICAgICZtX2R1bW15
LAorICAgICAgICAgICAgICAgIFtdICgpIC0+IGJvb2wgeyByZXR1cm4gdHJ1ZTsgfSwKKyAgICAg
ICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKKyAgICAgICAgICAgICAg
ICB0aW1lb3V0KTsKKyAgICAgICAgfQogICAgICAgICBsb2NrLmxvY2soKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CkBAIC01Niw4ICs4OSw3IEBAIHB1YmxpYzoKICAgICAvLyBXYWl0
IHVudGlsIHRoZSBnaXZlbiBwcmVkaWNhdGUgaXMgc2F0aXNmaWVkLiBSZXR1cm5zIHRydWUgaWYg
aXQgaXMgc2F0aXNmaWVkIGluIHRoZSBlbmQuCiAgICAgLy8gTWF5IHJldHVybiBlYXJseSBkdWUg
dG8gdGltZW91dC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRnVu
Y3Rvcj4KLSAgICBib29sIHdhaXRVbnRpbCgKLSAgICAgICAgTG9ja1R5cGUmIGxvY2ssIHN0ZDo6
Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgdGltZW91dCwgY29uc3QgRnVuY3RvciYg
cHJlZGljYXRlKQorICAgIGJvb2wgd2FpdFVudGlsKExvY2tUeXBlJiBsb2NrLCBDbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewogICAgICAg
ICB3aGlsZSAoIXByZWRpY2F0ZSgpKSB7CiAgICAgICAgICAgICBpZiAoIXdhaXRVbnRpbChsb2Nr
LCB0aW1lb3V0KSkKQEAgLTcyLDE3ICsxMDQsMTMgQEAgcHVibGljOgogICAgIGJvb2wgd2FpdEZv
cigKICAgICAgICAgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVU
aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewotICAgICAgICBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IGFic29sdXRlVGltZW91dCA9Ci0gICAgICAg
ICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSArCi0gICAgICAgICAgICBzdGQ6
OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlv
bj4ocmVsYXRpdmVUaW1lb3V0KTsKLQotICAgICAgICByZXR1cm4gd2FpdFVudGlsKGxvY2ssIGFi
c29sdXRlVGltZW91dCwgcHJlZGljYXRlKTsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2Nr
LCBhYnNvbHV0ZUZyb21SZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpLCBwcmVkaWNhdGUpOwogICAg
IH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgogICAgIHZvaWQgd2FpdChMb2Nr
VHlwZSYgbG9jaykKICAgICB7Ci0gICAgICAgIHdhaXRVbnRpbChsb2NrLCBzdGQ6OmNocm9ubzo6
c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7CisgICAgICAgIHdhaXRVbnRpbChsb2Nr
LCBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIExvY2tUeXBlLCB0eXBlbmFtZSBGdW5jdG9yPgpAQCAtOTIsNiArMTIwLDMyIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHdhaXQobG9jayk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgTG9ja1R5cGUsIHR5cGVuYW1lIFRpbWVUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsKExvY2tU
eXBlJiBsb2NrLCBjb25zdCBUaW1lVHlwZSYgdGltZW91dCkKKyAgICB7CisgICAgICAgIGlmICh0
aW1lb3V0ID09IFRpbWVUeXBlOjptYXgoKSkgeworICAgICAgICAgICAgd2FpdChsb2NrKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB3YWl0Rm9y
SW1wbChsb2NrLCB0aW1lb3V0IC0gVGltZVR5cGU6OmNsb2NrOjpub3coKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+CisgICAgYm9vbCB3YWl0VW50aWxXYWxsQ2xv
Y2tTZWNvbmRzKExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykK
KyAgICB7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVU
aW1lb3V0U2Vjb25kcyAtIGN1cnJlbnRUaW1lKCkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIExvY2tUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsTW9ub3RvbmljQ2xvY2tTZWNvbmRz
KExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykKKyAgICB7Cisg
ICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVUaW1lb3V0U2Vj
b25kcyAtIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKKyAgICB9CisKKyAgICAvLyBG
SVhNRTogV2UgY291bGQgcmVwbGFjZSB0aGUgZHVtbXkgYnl0ZSB3aXRoIGEgYm9vbGVhbiB0byB0
ZWxsIHVzIGlmIHRoZXJlIGlzIGFueW9uZSB3YWl0aW5nCisgICAgLy8gcmlnaHQgbm93LiBUaGlz
IGNvdWxkIGJlIHVzZWQgdG8gaW1wbGVtZW50IGEgZmFzdCBwYXRoIGZvciBub3RpZnlPbmUoKSBh
bmQgbm90aWZ5QWxsKCkuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODA5MAorCiAgICAgdm9pZCBub3RpZnlPbmUoKQogICAgIHsKICAgICAgICAgUGFy
a2luZ0xvdDo6dW5wYXJrT25lKCZtX2R1bW15KTsKQEAgLTEwMyw3ICsxNTcsNTYgQEAgcHVibGlj
OgogICAgIH0KICAgICAKIHByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+
CisgICAgYm9vbCB3YWl0Rm9yU2Vjb25kc0ltcGwoTG9ja1R5cGUmIGxvY2ssIGRvdWJsZSByZWxh
dGl2ZVRpbWVvdXRTZWNvbmRzKQorICAgIHsKKyAgICAgICAgZG91YmxlIHJlbGF0aXZlVGltZW91
dE5hbm9zZWNvbmRzID0gcmVsYXRpdmVUaW1lb3V0U2Vjb25kcyAqICgxMDAwLjAgKiAxMDAwLjAg
KiAxMDAwLjApOworICAgICAgICAKKyAgICAgICAgaWYgKCEocmVsYXRpdmVUaW1lb3V0TmFub3Nl
Y29uZHMgPiAwKSkgeworICAgICAgICAgICAgLy8gVGhpcyBoYW5kbGVzIGluc3RhLXRpbWVvdXRz
IGFzIHdlbGwgYXMgTmFOLgorICAgICAgICAgICAgbG9jay51bmxvY2soKTsKKyAgICAgICAgICAg
IGxvY2subG9jaygpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHJlbGF0aXZlVGltZW91dE5hbm9zZWNvbmRzID4gc3RhdGljX2Nhc3Q8ZG91Ymxl
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptYXgoKSkpIHsKKyAgICAgICAgICAgIC8v
IElmIHRoZSB0aW1lb3V0IGluIG5hbm9zZWNvbmRzIGNhbm5vdCBiZSBleHByZXNzZWQgdXNpbmcg
YSA2NC1iaXQgaW50ZWdlciwgdGhlbiB3ZQorICAgICAgICAgICAgLy8gbWlnaHQgYXMgd2VsbCB3
YWl0IGZvcmV2ZXIuCisgICAgICAgICAgICB3YWl0KGxvY2spOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGF1dG8gcmVsYXRpdmVUaW1lb3V0
ID0KKyAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyhzdGF0aWNfY2FzdDxpbnQ2
NF90PihyZWxhdGl2ZVRpbWVvdXROYW5vc2Vjb25kcykpOworCisgICAgICAgIHJldHVybiB3YWl0
Rm9ySW1wbChsb2NrLCByZWxhdGl2ZVRpbWVvdXQpOworICAgIH0KICAgICAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRHVyYXRpb25UeXBlPgorICAgIGJvb2wgd2Fp
dEZvckltcGwoTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVUaW1l
b3V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2NrLCBhYnNvbHV0ZUZyb21S
ZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEdXJhdGlvblR5cGU+CisgICAgQ2xvY2s6OnRpbWVfcG9pbnQgYWJzb2x1dGVGcm9tUmVsYXRp
dmUoY29uc3QgRHVyYXRpb25UeXBlJiByZWxhdGl2ZVRpbWVvdXQpCisgICAgeworICAgICAgICBp
ZiAocmVsYXRpdmVUaW1lb3V0IDwgRHVyYXRpb25UeXBlOjp6ZXJvKCkpCisgICAgICAgICAgICBy
ZXR1cm4gQ2xvY2s6OnRpbWVfcG9pbnQ6Om1pbigpOworCisgICAgICAgIGlmIChyZWxhdGl2ZVRp
bWVvdXQgPiBDbG9jazo6ZHVyYXRpb246Om1heCgpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGlz
IGhpZ2hseSB1bmxpa2VseS4gQnV0IGlmIGl0IGhhcHBlbnMsIHdlIHdhbnQgdG8gbm90IGRvIGFu
eXRoaW5nIGR1bWIuIFNsZWVwaW5nCisgICAgICAgICAgICAvLyB3aXRob3V0IGEgdGltZW91dCBz
ZWVtcyBzZW5zaWJsZSB3aGVuIHRoZSB0aW1lb3V0IGR1cmF0aW9uIGlzIGdyZWF0ZXIgdGhhbiB3
aGF0IGNhbiBiZQorICAgICAgICAgICAgLy8gZXhwcmVzc2VkIHVzaW5nIHN0ZWFkeV9jbG9jay4K
KyAgICAgICAgICAgIHJldHVybiBDbG9jazo6dGltZV9wb2ludDo6bWF4KCk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIENsb2NrOjpkdXJhdGlvbiBteVJlbGF0aXZlVGltZW91dCA9Cisg
ICAgICAgICAgICBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxDbG9jazo6ZHVyYXRpb24+KHJl
bGF0aXZlVGltZW91dCk7CisKKyAgICAgICAgcmV0dXJuIENsb2NrOjpub3coKSArIG15UmVsYXRp
dmVUaW1lb3V0OworICAgIH0KKwogICAgIHVpbnQ4X3QgbV9kdW1teTsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L01lc3NhZ2VRdWV1ZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9NZXNz
YWdlUXVldWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMzIsNyArMzIsOSBAQAogCiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Nyw4ICs3OSw4IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgICAgICBzdGF0aWMgZG91YmxlIGluZmluaXRlVGltZSgpIHsg
cmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCk7IH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKKyAgICAgICAg
Q29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8RGF0
YVR5cGU+PiBtX3F1ZXVlOwogICAgICAgICBib29sIG1fa2lsbGVkOwogICAgIH07CkBAIC05MSwz
NyArOTMsMzcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKHN0ZDo6
dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAg
ICAgbV9xdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRp
b24uc2lnbmFsKCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSB2b2lkIE1lc3NhZ2VR
dWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwoc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBt
ZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEY6
Om1vdmUobWVzc2FnZSkpOwogICAgICAgICBtX2tpbGxlZCA9IHRydWU7Ci0gICAgICAgIG1fY29u
ZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsKICAg
ICB9CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHF1ZXVlIHdhcyBlbXB0eSBiZWZvcmUg
dGhlIGl0ZW0gd2FzIGFkZGVkLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAg
IGlubGluZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHko
c3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwog
ICAgICAgICBib29sIHdhc0VtcHR5ID0gbV9xdWV1ZS5pc0VtcHR5KCk7CiAgICAgICAgIG1fcXVl
dWUuYXBwZW5kKFdURjo6bW92ZShtZXNzYWdlKSk7Ci0gICAgICAgIG1fY29uZGl0aW9uLnNpZ25h
bCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICAgICAgcmV0dXJuIHdh
c0VtcHR5OwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlu
bGluZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OnByZXBlbmQoc3RkOjp1bmlxdWVfcHRy
PERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVl
LnByZXBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRpb24uc2lnbmFs
KCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERhdGFUeXBlPgpAQCAtMTM3LDcgKzEzOSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgYXV0byBNZXNz
YWdlUXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQoTWVz
c2FnZVF1ZXVlV2FpdFJlc3VsdCYgcmVzdWx0LCBQcmVkaWNhdGUmJiBwcmVkaWNhdGUsIGRvdWJs
ZSBhYnNvbHV0ZVRpbWUpIC0+IHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4KICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayht
X211dGV4KTsKICAgICAgICAgYm9vbCB0aW1lZE91dCA9IGZhbHNlOwogCiAgICAgICAgIGF1dG8g
Zm91bmQgPSBtX3F1ZXVlLmVuZCgpOwpAQCAtMTQ5LDcgKzE1MSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgICAgICAgICAgaWYgKGZvdW5kICE9IG1fcXVldWUuZW5kKCkpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHRpbWVkT3V0ID0gIW1fY29uZGl0aW9uLnRpbWVkV2Fp
dChtX211dGV4LCBhYnNvbHV0ZVRpbWUpOworICAgICAgICAgICAgdGltZWRPdXQgPSAhbV9jb25k
aXRpb24ud2FpdFVudGlsV2FsbENsb2NrU2Vjb25kcyhtX211dGV4LCBhYnNvbHV0ZVRpbWUpOwog
ICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCF0aW1lZE91dCB8fCBhYnNvbHV0ZVRpbWUgIT0g
aW5maW5pdGVUaW1lKCkpOwpAQCAtMTc0LDcgKzE3Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBhdXRvIE1lc3NhZ2VRdWV1
ZTxEYXRhVHlwZT46OnRyeUdldE1lc3NhZ2UoKSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCkBAIC0xODYs
NyArMTg4LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIGF1dG8gTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6dHJ5R2V0TWVzc2Fn
ZUlnbm9yaW5nS2lsbGVkKCkgLT4gc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbXV0ZXgpOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIApAQCAtMTk3LDcgKzE5OSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVl
dWU8RGF0YVR5cGU+OjpyZW1vdmVJZihQcmVkaWNhdGUmJiBwcmVkaWNhdGUpCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV9tdXRleCk7CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBhdXRvIGZvdW5k
ID0gbV9xdWV1ZS5maW5kSWYoWyZwcmVkaWNhdGVdKGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxEYXRh
VHlwZT4mIHB0cikgLT4gYm9vbCB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHB0cik7CkBAIC0y
MTQsNyArMjE2LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0
YVR5cGU+CiAgICAgaW5saW5lIGJvb2wgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6aXNFbXB0eSgp
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gbV9xdWV1ZS5pc0VtcHR5KCk7CkBAIC0yMjMs
MTUgKzIyNSwxNSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRh
VHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpraWxsKCkKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9raWxsZWQgPSB0cnVlOwotICAgICAgICBtX2Nv
bmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGJvb2wg
TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbGVkKCkgY29uc3QKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4
KTsKICAgICAgICAgcmV0dXJuIG1fa2lsbGVkOwogICAgIH0KIH0gLy8gbmFtZXNwYWNlIFdURgpJ
bmRleDogU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDUsMTcgKzEwNSwxNyBAQCBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVh
ZFByaXZhdGU6CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6ZXhl
Y3V0ZShUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgdm9pZCogcGFyYW1ldGVycykKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211
dGV4KTsKIAogICAgIG1fdGhyZWFkRnVuY3Rpb24gPSB0aHJlYWRGdW5jdGlvbjsKICAgICBtX3Bh
cmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgIG1fcnVubmluZyA9IHRydWU7Ci0gICAgbV90aHJl
YWRDb25kaXRpb24uc2lnbmFsKCk7CisgICAgbV90aHJlYWRDb25kaXRpb24ubm90aWZ5T25lKCk7
CiB9CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZp
bmlzaCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CiAKICAgICB3aGlsZSAobV9ydW5uaW5nKQogICAgICAgICBtX3RocmVh
ZENvbmRpdGlvbi53YWl0KG1fbXV0ZXgpOwpAQCAtMTI0LDE0ICsxMjQsMTQgQEAgdm9pZCBQYXJh
bGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOgogdm9pZCBQYXJhbGxlbEVudmlyb25tZW50
OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJUaHJlYWQodm9pZCogdGhyZWFkRGF0YSkKIHsKICAgICBU
aHJlYWRQcml2YXRlKiBzaGFyZWRUaHJlYWQgPSByZWludGVycHJldF9jYXN0PFRocmVhZFByaXZh
dGUqPih0aHJlYWREYXRhKTsKLSAgICBNdXRleExvY2tlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CiAKICAg
ICB3aGlsZSAoc2hhcmVkVGhyZWFkLT5tX3RocmVhZElEKSB7CiAgICAgICAgIGlmIChzaGFyZWRU
aHJlYWQtPm1fcnVubmluZykgewogICAgICAgICAgICAgKCpzaGFyZWRUaHJlYWQtPm1fdGhyZWFk
RnVuY3Rpb24pKHNoYXJlZFRocmVhZC0+bV9wYXJhbWV0ZXJzKTsKICAgICAgICAgICAgIHNoYXJl
ZFRocmVhZC0+bV9ydW5uaW5nID0gZmFsc2U7CiAgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1f
cGFyZW50ID0gMDsKLSAgICAgICAgICAgIHNoYXJlZFRocmVhZC0+bV90aHJlYWRDb25kaXRpb24u
c2lnbmFsKCk7CisgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1fdGhyZWFkQ29uZGl0aW9uLm5v
dGlmeU9uZSgpOwogICAgICAgICB9CiAKICAgICAgICAgc2hhcmVkVGhyZWFkLT5tX3RocmVhZENv
bmRpdGlvbi53YWl0KHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAKIAog
I2lmIEVOQUJMRShUSFJFQURJTkdfR0VORVJJQykKIAorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Niw4ICs3OCw4IEBAIHB1YmxpYzoKICAg
ICAgICAgYm9vbCBtX3J1bm5pbmc7CiAgICAgICAgIFBhcmFsbGVsRW52aXJvbm1lbnQqIG1fcGFy
ZW50OwogCi0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29u
ZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsK
KyAgICAgICAgQ29uZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOwogCiAgICAgICAgIFRocmVhZEZ1
bmN0aW9uIG1fdGhyZWFkRnVuY3Rpb247CiAgICAgICAgIHZvaWQqIG1fcGFyYW1ldGVyczsKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1BhcmtpbmdMb3QuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0
Zi9QYXJraW5nTG90LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTExLDcgKzUxMSw3IEBAIGJvb2wg
UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHkoCiAgICAgY29uc3Qgdm9pZCogYWRkcmVzcywK
ICAgICBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4gdmFsaWRhdGlvbiwKICAgICBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gYmVmb3JlU2xlZXAsCi0gICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0KQorICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiB7CiAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2codG9TdHJpbmcoY3VycmVudFRocmVhZCgpLCAi
OiBwYXJraW5nLlxuIikpOwpAQCAtNTM5LDExICs1MzksMTEgQEAgYm9vbCBQYXJraW5nTG90Ojpw
YXJrQ29uZGl0aW9uYWxseSgKICAgICBib29sIGRpZEdldERlcXVldWVkOwogICAgIHsKICAgICAg
ICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrZXIobWUtPnBhcmtpbmdMb2NrKTsK
LSAgICAgICAgd2hpbGUgKG1lLT5hZGRyZXNzICYmIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
Om5vdygpIDwgdGltZW91dCkgeworICAgICAgICB3aGlsZSAobWUtPmFkZHJlc3MgJiYgQ2xvY2s6
Om5vdygpIDwgdGltZW91dCkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyBwcmV0dHkgZnVubnku
IE9uIExpbnV4LCBpZiB5b3Ugd2FpdCB1bnRpbCB0aGUgbWF4IHRpbWUsIGl0IGltbWVkaWF0ZWx5
IHJlcG9ydHMgdGhhdCB5b3UgdGltZWQKICAgICAgICAgICAgIC8vIG91dC4gV2hhdCdzIHBhcnRp
Y3VsYXJseSBiYWQgYWJvdXQgdGhpcyBpcyB0aGF0IGl0IG5ldmVyIHJlbGVhc2VzIHRoZSBsb2Nr
IGluIHRoYXQgY2FzZS4gU28sIHlvdSBsb29wCiAgICAgICAgICAgICAvLyBmb3JldmVyIHdpdGhv
dXQgeWllbGRpbmcgdG8gdGhlIHRocmVhZCB0aGF0IHdvdWxkIHdha2UgeW91IHVwLgotICAgICAg
ICAgICAgaWYgKHRpbWVvdXQgPT0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2lu
dDo6bWF4KCkpCisgICAgICAgICAgICBpZiAodGltZW91dCA9PSBDbG9jazo6dGltZV9wb2ludDo6
bWF4KCkpCiAgICAgICAgICAgICAgICAgbWUtPnBhcmtpbmdDb25kaXRpb24ud2FpdChsb2NrZXIp
OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1lLT5wYXJraW5nQ29uZGl0aW9u
LndhaXRfdW50aWwobG9ja2VyLCB0aW1lb3V0KTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1Bhcmtp
bmdMb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmgJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNiArMzgsOCBAQCBjbGFzcyBQYXJraW5nTG90IHsKICAgICBQYXJraW5nTG90KGNv
bnN0IFBhcmtpbmdMb3QmKSA9IGRlbGV0ZTsKIAogcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jayBDbG9jazsKKyAgICAKICAgICAvLyBQYXJrcyB0aGUgdGhyZWFk
IGluIGEgcXVldWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBhZGRyZXNzLCB3aGljaCBjYW5u
b3QgYmUgbnVsbC4gVGhlCiAgICAgLy8gcGFya2luZyBvbmx5IHN1Y2NlZWRzIGlmIHRoZSB2YWxp
ZGF0aW9uIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSB3aGlsZSB0aGUgcXVldWUgbG9jayBpcyBoZWxk
LgogICAgIC8vIElmIHZhbGlkYXRpb24gcmV0dXJucyBmYWxzZSwgaXQgd2lsbCB1bmxvY2sgdGhl
IGludGVybmFsIHBhcmtpbmcgcXVldWUgYW5kIHRoZW4gaXQgd2lsbApAQCAtNTMsNyArNTUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IHZvaWQqIGFkZHJlc3MsCiAgICAgICAgIHN0ZDo6ZnVu
Y3Rpb248Ym9vbCgpPiB2YWxpZGF0aW9uLAogICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4g
YmVmb3JlU2xlZXAsCi0gICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9p
bnQgdGltZW91dCk7CisgICAgICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpOwogCiAgICAg
Ly8gU2ltcGxlIHZlcnNpb24gb2YgcGFya0NvbmRpdGlvbmFsbHkoKSB0aGF0IGNvdmVycyB0aGUg
bW9zdCBjb21tb24gY2FzZTogeW91IHdhbnQgdG8gcGFyawogICAgIC8vIGluZGVmaW5pdGVseSBz
byBsb25nIGFzIHRoZSB2YWx1ZSBhdCB0aGUgZ2l2ZW4gYWRkcmVzcyBoYXNuJ3QgY2hhbmdlZC4K
QEAgLTY3LDcgKzY5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9
PSBleHBlY3RlZDsKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICBbXSAoKSB7IH0sCi0gICAg
ICAgICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7Cisg
ICAgICAgICAgICBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIC8vIFVu
cGFya3Mgb25lIHRocmVhZCBmcm9tIHRoZSBxdWV1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVu
IGFkZHJlc3MsIHdoaWNoIGNhbm5vdCBiZSBudWxsLgpAQCAtMTAzLDcgKzEwNSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBBMSxUMSBBMixUMyBBMSxUMiBBMixUNAogICAgIC8vIEExLFQxIEEyLFQzIEEy
LFQ0IEExLFQyCiAgICAgLy8KLSAgICAvLyBBcyB3ZWxsIGFzIG1hbnkgb3RoZXIgcG9zc2libGUg
aW50ZXJsZWF2ZXMgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBi
dXQgYXJlCisgICAgLy8gQXMgd2VsbCBhcyBtYW55IG90aGVyIHBvc3NpYmxlIGludGVybGVhdmlu
Z3MgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBidXQgYXJlCiAg
ICAgLy8gb3RoZXJ3aXNlIHVuY29uc3RyYWluZWQuIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBwcmlt
YXJpbHkgZm9yIGRlYnVnZ2luZy4gSXQncyBhbHNvIHVzZWQgYnkgdW5pdAogICAgIC8vIHRlc3Rz
LgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBmb3JFYWNoKHN0ZDo6ZnVuY3Rp
b248dm9pZChUaHJlYWRJZGVudGlmaWVyLCBjb25zdCB2b2lkKik+KTsKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDcgKzEyNiw2
IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgVGhyZWFkSWRlbnRpZmllckRhdGE6
OmluaXRpYWxpemVPbmNlKCk7CiAgICAgU3RhY2tTdGF0czo6aW5pdGlhbGl6ZSgpOwogICAgIHd0
ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAgIGluaXRp
YWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHJldmlzaW9u
IDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2NSw3ICsxNjUsNiBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogICAgIHRo
cmVhZE1hcE11dGV4KCk7CiAgICAgaW5pdGlhbGl6ZVJhbmRvbU51bWJlckdlbmVyYXRvcigpOwog
ICAgIHd0ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAg
IGluaXRpYWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi93dGYvZHRvYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBA
CiAgKiBUaGUgYXV0aG9yIG9mIHRoaXMgc29mdHdhcmUgaXMgRGF2aWQgTS4gR2F5LgogICoKICAq
IENvcHlyaWdodCAoYykgMTk5MSwgMjAwMCwgMjAwMSBieSBMdWNlbnQgVGVjaG5vbG9naWVzLgot
ICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMiwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCwgMjAxMiwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwg
YW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CiAgKiBwdXJwb3NlIHdpdGhvdXQg
ZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoaXMgZW50aXJlIG5vdGljZQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImR0b2EuaCIKIAogI2luY2x1ZGUgPHN0ZGlvLmg+
CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01NCw3
ICs1NSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1NdXRleCogc19kdG9hUDVNdXRleDsKK3N0
YXRpYyBTdGF0aWNMb2NrIHNfZHRvYVA1TXV0ZXg7CiAKIHR5cGVkZWYgdW5pb24gewogICAgIGRv
dWJsZSBkOwpAQCAtMzc1LDcgKzM3Niw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93
NW11bHQoQmlnSW4KICAgICBpZiAoIShrID4+PSAyKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
c19kdG9hUDVNdXRleC0+bG9jaygpOworICAgIHNfZHRvYVA1TXV0ZXgubG9jaygpOwogICAgIFA1
Tm9kZSogcDUgPSBwNXM7CiAKICAgICBpZiAoIXA1KSB7CkBAIC0zODgsNyArMzg5LDcgQEAgc3Rh
dGljIEFMV0FZU19JTkxJTkUgdm9pZCBwb3c1bXVsdChCaWdJbgogICAgIH0KIAogICAgIGludCBw
NXNDb3VudExvY2FsID0gcDVzQ291bnQ7Ci0gICAgc19kdG9hUDVNdXRleC0+dW5sb2NrKCk7Cisg
ICAgc19kdG9hUDVNdXRleC51bmxvY2soKTsKICAgICBpbnQgcDVzVXNlZCA9IDA7CiAKICAgICBm
b3IgKDs7KSB7CkBAIC0zOTksNyArNDAwLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBw
b3c1bXVsdChCaWdJbgogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKCsrcDVzVXNl
ZCA9PSBwNXNDb3VudExvY2FsKSB7Ci0gICAgICAgICAgICBzX2R0b2FQNU11dGV4LT5sb2NrKCk7
CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LmxvY2soKTsKICAgICAgICAgICAgIGlmIChwNXNV
c2VkID09IHA1c0NvdW50KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFwNS0+bmV4dCk7CiAg
ICAgICAgICAgICAgICAgcDUtPm5leHQgPSBuZXcgUDVOb2RlOwpAQCAtNDEwLDcgKzQxMSw3IEBA
IHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93NW11bHQoQmlnSW4KICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgcDVzQ291bnRMb2NhbCA9IHA1c0NvdW50OwotICAgICAgICAgICAgc19k
dG9hUDVNdXRleC0+dW5sb2NrKCk7CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LnVubG9jaygp
OwogICAgICAgICB9CiAgICAgICAgIHA1ID0gcDUtPm5leHQ7CiAgICAgfQpJbmRleDogU291cmNl
L1dURi93dGYvZHRvYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2R0b2EuaAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93dGYvZHRvYS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCwxMCArMjgsNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotY2xhc3MgTXV0ZXg7Ci0KLWV4
dGVybiBNdXRleCogc19kdG9hUDVNdXRleDsKLQogdHlwZWRlZiBjaGFyIER0b2FCdWZmZXJbODBd
OwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdG9hKER0b2FCdWZmZXIgcmVzdWx0LCBkb3Vi
bGUgZGQsIGJvb2wmIHNpZ24sIGludCYgZXhwb25lbnQsIHVuc2lnbmVkJiBwcmVjaXNpb24pOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjc0IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5n
IHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugbm8gbmV3IGJl
aGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29k
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3ApOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbUF1ZGlvU291cmNlOjphZGRBdWRpb0NvbnN1bWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6c2V0QXVkaW9Gb3JtYXQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBs
ZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6aGFzUGVuZGluZ1RyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjp0YXNrQ29tcGxldGVkKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJl
YWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRo
cmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZXRyeUNhbkVzdGFibGlzaERh
dGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6aGFzRW50cnlGb3JP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRNYXhTaXplRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpjbG9zZUFsbERh
dGFiYXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmZ1bGxQYXRoRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpvcmlnaW5zKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZGF0YWJhc2VOYW1lc0Zvck9yaWdp
bik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmRldGFpbHNGb3JOYW1lQW5k
T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VE
ZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZG9uZUNyZWF0aW5n
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZW1vdmVPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRPcGVuRGF0YWJh
c2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3JpZ2luTG9ja0Zvcik6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnF1b3RhRm9yT3JpZ2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0UXVvdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OnJlbW92ZURlbGV0ZWRPcGVuZWREYXRhYmFzZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGVJZkVtcHR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNlTXV0ZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bm90aWZpY2F0aW9uTXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2Vy
OjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6Om5vdGlmeURhdGFiYXNlc0NoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxs
YmFja1dyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTENhbGxiYWNrV3JhcHBlcjo6Y2xl
YXIpOgorICAgICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjp1bndyYXApOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjpoYXNDYWxsYmFjayk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXApOgorICAgICAgICAo
V2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjplbnF1ZXVlU3RhdGVtZW50QmFja2VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmdldE5leHRTdGF0ZW1l
bnQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5k
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpzY2hlZHVsZUV4ZWN1dGlv
blRlcm1pbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6
OmlzRXhlY3V0aW9uVGVybWluYXRpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OnBv
c3RNZXNzYWdlVG9SZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVs
Ojp0cnlHZXRNZXNzYWdlRnJvbVJlbW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWw6OmlzQ29ubmVjdGVkVG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRD
aGFubmVsOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBv
cnRDaGFubmVsOjpsb2NhbGx5RW50YW5nbGVkUG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6c2V0UmVtb3RlUG9ydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6ZW50YW5nbGVkQ2hhbm5lbCk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y2xvc2VJbnRlcm5hbCk6Cisg
ICAgICAgICogZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaDoKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNv
bkRhdGFiYXNlOjpyZW1vdmVBbGxJY29ucyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRh
dGFiYXNlOjpzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYkNv
cmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTCk6CisgICAgICAg
IChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAgICAgICAg
KFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29uRm9yUGFnZVVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJM
KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNMb2FkRGVjaXNp
b25Gb3JJY29uVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25v
dXNJY29uRGF0YUtub3duRm9ySWNvblVSTCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnBhZ2VVUkxNYXBwaW5nQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpyZXRhaW5lZFBhZ2VVUkxDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6
Omljb25SZWNvcmRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omljb25S
ZWNvcmRDb3VudFdpdGhEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6d2Fr
ZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpzY2hlZHVsZU9y
RGVmZXJTeW5jVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjppc09wZW5C
ZXNpZGVzTWFpblRocmVhZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OmdldE9y
Q3JlYXRlUGFnZVVSTFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omlj
b25EYXRhYmFzZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpw
ZXJmb3JtT3BlbkluaXRpYWxpemF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cGVyZm9ybVVSTEltcG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnN5
bmNUaHJlYWRNYWluTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnBlcmZv
cm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SWNvbkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25E
YXRhYmFzZTo6d3JpdGVUb0RhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cHJ1bmVVbnJldGFpbmVkSWNvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpjbGVhbnVwU3luY1RocmVhZCk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25v
dXNseSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Ny
b2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aXNQb2ludElu
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjpzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZTo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1Njcm9sbFNuYXBwaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldENhblJ1YmJlckJhbmRTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVmdCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0UmlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxQaW5uaW5nQmVoYXZpb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpjbGVhckxhdGNoZWROb2RlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6d2FpdEZvckxvYWRlclRo
cmVhZENvbXBsZXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxv
YWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXRSZWNl
aXZlZE1lbW9yeVByZXNzdXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6Y2xlYXJNZW1vcnlQcmVzc3VyZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OnNob3VsZFdhaXRGb3JNZW1vcnlDbGVhck1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUlm
TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5
RGlkUmVmcmVzaCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnNldE1v
bm90b25pY0FuaW1hdGlvblN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3I6Om11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0RGVsYXlDYWxsYmFja3MpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1h
aW5UaHJlYWRQZW5kaW5nRmxhZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246OmRpc3BhdGNoTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6
OmNhbGxiYWNrQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjp+QVZGV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjptYXBMb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6OkFWRldyYXBwZXI6OmFkZFRvTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldy
YXBwZXI6OnJlbW92ZUZyb21NYXApOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cGVy
aW9kaWNUaW1lT2JzZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVy
Ojpwcm9jZXNzTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6Omxv
YWRQbGF5YWJsZUNvbXBsZXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFw
cGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
QVZGV3JhcHBlcjo6c2Vla0NvbXBsZXRlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFW
RldyYXBwZXI6OnByb2Nlc3NDdWUpOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6bGVn
aWJsZU91dHB1dENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OnByb2Nl
c3NTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6QVZG
V3JhcHBlcjo6cmVzb3VyY2VMb2FkZXJTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVxdWVzdGVkUmVz
b3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFj
a1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXI6OnRhZ3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6cmVxdWVz
dFJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjphZGRMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OnJlbW92ZUxp
c3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbjo6bm90aWZ5RGVsZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Okludm9rZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Om9u
TWVkaWFQbGF5ZXJEZWxldGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L0xlZ2FjeVRpbGVDYWNoZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2Fj
aGUubW06CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRpbGVzT3BhcXVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6ZG9MYXlvdXRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldEN1cnJlbnRTY2FsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmNvbW1pdFNjYWxlQ2hhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6bGF5b3V0VGlsZXNOb3cpOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpsYXlvdXRUaWxlc05vd0ZvclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxUaWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUZvcmVncm91bmRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldENvbnRlbnRSZXBsYWNlbWVudElt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6Y29udGVudFJlcGxhY2Vt
ZW50SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjp0aWxlQ3JlYXRp
b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0TmVl
ZHNEaXNwbGF5SW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dXBk
YXRlVGlsaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRp
bGluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpkb1BlbmRpbmdS
ZXBhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmZsdXNoU2F2ZWRE
aXNwbGF5UmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpwcmVwYXJl
VG9EcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6YWRkTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6dGFrZUxheWVyV2l0aFNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6cHJ1bmUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5
VGlsZUxheWVyUG9vbDo6ZHJhaW4pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsRG93bmxvYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnJlbW92ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjpnZXRBY3RpdmVEb3dubG9hZENv
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OmdldFBlbmRpbmdE
b3dubG9hZENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnN0
b3BUaHJlYWRJZklkbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
dXBkYXRlSGFuZGxlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6On5DdXJs
RG93bmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjppbml0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Z2V0VGVtcFBhdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybERvd25sb2FkOjpnZXRVcmwpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2Fk
OjpnZXRSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmNsb3NlRmls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVIZWFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZEZhaWwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZUph
clBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkUmVzb3VyY2VNdXRleCk6CisgICAgICAg
IChXZWJDb3JlOjpjdXJsX2xvY2tfY2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Y3VybF91
bmxvY2tfY2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9v
ay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlFMRGlyZWN0b3J5QXR0cmlidXRlcyk6CisgICAgICAg
IChxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6
YWRkUUxQcmV2aWV3Q29udmVydGVyV2l0aEZpbGVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
cWxQcmV2aWV3Q29udmVydGVyVVRJRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVFM
UHJldmlld0NvbnZlcnRlckZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpzYWZlUUxVUkxGb3JE
b2N1bWVudFVSTEFuZFJlc291cmNlVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmNsb3NlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjptYXhpbXVtU2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6c2V0TWF4aW11bVNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6OnBhZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0
ZURhdGFiYXNlOjpmcmVlU3BhY2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFi
YXNlOjp0b3RhbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnJ1bklu
Y3JlbWVudGFsVmFjdXVtQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFz
ZTo6c2V0QXV0aG9yaXplcik6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6ZGF0YWJhc2VNdXRleCk6Cisg
ICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTUUxpdGVTdGF0ZW1lbnQ6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRl
U3RhdGVtZW50OjpzdGVwKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZDo6c3RvcCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKwogMjAxNS0w
OC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCBjb25zdCB0byBjb250ZW50IGV4dGVuc2lvbiBwYXJzZXIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3Bw
CShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Fz
eW5jQXVkaW9EZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29kZXIoKQog
ewogICAgIC8vIFN0YXJ0IHdvcmtlciB0aHJlYWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3Ro
cmVhZENyZWF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOwogICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6
OnRocmVhZEVudHJ5LCB0aGlzLCAiQXVkaW8gRGVjb2RlciIpOwogfQogCkBAIC03Niw3ICs3Niw3
IEBAIHZvaWQgQXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3AoKQogCiAgICAgewogICAgICAgICAv
LyBXYWl0IGZvciB1bnRpbCB3ZSBoYXZlIG1fdGhyZWFkSUQgZXN0YWJsaXNoZWQgYmVmb3JlIHN0
YXJ0aW5nIHRoZSBydW4gbG9vcC4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENy
ZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11
dGV4KTsKICAgICB9CiAKICAgICAvLyBLZWVwIHJ1bm5pbmcgZGVjb2RpbmcgdGFza3MgdW50aWwg
d2UncmUga2lsbGVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3lu
Y0F1ZGlvRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5Mb29wKCk7CiAKICAgICBX
VEY6OlRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJRDsKLSAgICBNdXRleCBtX3RocmVhZENyZWF0
aW9uTXV0ZXg7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgTWVzc2FnZVF1
ZXVlPERlY29kaW5nVGFzaz4gbV9xdWV1ZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzgwLDcgKzM4MCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb25uZWN0
aW9uQ291bnQgeyAwIH07CiAKICAgICAvLyBHcmFwaCBsb2NraW5nLgotICAgIE11dGV4IG1fY29u
dGV4dEdyYXBoTXV0ZXg7CisgICAgTG9jayBtX2NvbnRleHRHcmFwaE11dGV4OwogICAgIHZvbGF0
aWxlIFRocmVhZElkZW50aWZpZXIgbV9hdWRpb1RocmVhZCB7IDAgfTsKICAgICB2b2xhdGlsZSBU
aHJlYWRJZGVudGlmaWVyIG1fZ3JhcGhPd25lclRocmVhZDsgLy8gaWYgdGhlIGxvY2sgaXMgaGVs
ZCB0aGVuIHRoaXMgaXMgdGhlIHRocmVhZCB3aGljaCBvd25zIGl0LCBvdGhlcndpc2UgPT0gVW5k
ZWZpbmVkVGhyZWFkSWRlbnRpZmllcgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDEzICs2MywxMyBAQCBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBNZWRpYVN0CiAKIHZvaWQgTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZTo6YWRkQXVkaW9Db25zdW1lcihQYXNzUmVmUHRyPEF1ZGlvRGVzdGluYXRpb25D
b25zdW1lcj4gY29uc3VtZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXVkaW9Db25z
dW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7
CiAgICAgbV9hdWRpb0NvbnN1bWVycy5hcHBlbmQoY29uc3VtZXIpOwogfQogCiBib29sIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIoQXVkaW9EZXN0aW5hdGlvbkNv
bnN1bWVyKiBjb25zdW1lcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdWRpb0NvbnN1
bWVyc0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsK
ICAgICBzaXplX3QgcG9zID0gbV9hdWRpb0NvbnN1bWVycy5maW5kKGNvbnN1bWVyKTsKICAgICBp
ZiAocG9zICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIG1fYXVkaW9Db25zdW1lcnMucmVtb3ZlKHBv
cyk7CkBAIC04MCwxNCArODAsMTQgQEAgYm9vbCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpyZW1v
dmVBdWRpbwogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnNldEF1ZGlvRm9ybWF0KHNp
emVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9hdWRpb0NvbnN1bWVyc0xvY2spOwogICAgIGZvciAoYXV0byYgY29uc3VtZXIgOiBtX2F1ZGlv
Q29uc3VtZXJzKQogICAgICAgICBjb25zdW1lci0+c2V0Rm9ybWF0KG51bWJlck9mQ2hhbm5lbHMs
IHNhbXBsZVJhdGUpOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVB
dWRpbyhBdWRpb0J1cyogYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CiAgICAgZm9yIChhdXRvJiBjb25zdW1lciA6IG1fYXVk
aW9Db25zdW1lcnMpCiAgICAgICAgIGNvbnN1bWVyLT5jb25zdW1lQXVkaW8oYnVzLCBudW1iZXJP
ZkZyYW1lcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvRGVzdGlu
YXRpb25Db25zdW1lci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02
NSw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpOwogCiAg
ICAgU3RyaW5nIG1fZGV2aWNlSWQ7Ci0gICAgTXV0ZXggbV9hdWRpb0NvbnN1bWVyc0xvY2s7Cisg
ICAgTG9jayBtX2F1ZGlvQ29uc3VtZXJzTG9jazsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvRGVz
dGluYXRpb25Db25zdW1lcj4+IG1fYXVkaW9Db25zdW1lcnM7CiAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlcyBtX2N1cnJlbnRTdGF0ZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysr
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xvc2UoKQogICAgIEFT
U0VSVChjdXJyZW50VGhyZWFkKCkgPT0gZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFk
KCktPmdldFRocmVhZElEKCkpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOwogCiAgICAgICAgIC8vIENsZWFuIHVwIHRy
YW5zYWN0aW9ucyB0aGF0IGhhdmUgbm90IGJlZW4gc2NoZWR1bGVkIHlldDoKICAgICAgICAgLy8g
VHJhbnNhY3Rpb24gcGhhc2UgMSBjbGVhbnVwLiBTZWUgY29tbWVudCBvbiAiV2hhdCBoYXBwZW5z
IGlmIGEKQEAgLTM1Myw3ICszNTMsNyBAQCBib29sIERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZl
cmlmeShib29sCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHsKICAgICAgICAgLy8gTWFrZSBzdXJl
IHdlIHdhaXQgdGlsbCB0aGUgYmFja2dyb3VuZCByZW1vdmFsIG9mIHRoZSBlbXB0eSBkYXRhYmFz
ZSBmaWxlcyBmaW5pc2hlZCBiZWZvcmUgdHJ5aW5nIHRvIG9wZW4gYW55IGRhdGFiYXNlLgotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIoRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRl
eCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0
YWJhc2VNdXRleCgpKTsKICAgICB9CiAjZW5kaWYKIApAQCAtNTY1LDcgKzU2NSw3IEBAIHZvaWQg
RGF0YWJhc2U6OnNjaGVkdWxlVHJhbnNhY3Rpb24oKQogCiBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0
aW9uQmFja2VuZD4gRGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FMVHJhbnNh
Y3Rpb24+IHRyYW5zYWN0aW9uLCBib29sIHJlYWRPbmx5LCBjb25zdCBDaGFuZ2VWZXJzaW9uRGF0
YSogZGF0YSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jl
c3NNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NN
dXRleCk7CiAgICAgaWYgKCFtX2lzVHJhbnNhY3Rpb25RdWV1ZUVuYWJsZWQpCiAgICAgICAgIHJl
dHVybiAwOwogCkBAIC01OTMsMTQgKzU5MywxNCBAQCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRy
YW5zYWN0aW9uU3RlcChTCiAKIHZvaWQgRGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNv
bXBsZXRlZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dy
ZXNzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dyZXNz
TXV0ZXgpOwogICAgIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzID0gZmFsc2U7CiAgICAgc2NoZWR1
bGVUcmFuc2FjdGlvbigpOwogfQogCiBib29sIERhdGFiYXNlOjpoYXNQZW5kaW5nVHJhbnNhY3Rp
b24oKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4
KTsKICAgICByZXR1cm4gbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3MgfHwgIW1fdHJhbnNhY3Rpb25R
dWV1ZS5pc0VtcHR5KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlRXJyb3IuaCIK
ICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2Miw3ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxEYXRhYmFzZUF1dGhvcml6ZXI+IG1fZGF0YWJhc2VBdXRob3JpemVyOwogCiAgICAgRGVxdWU8
UmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4+IG1fdHJhbnNhY3Rpb25RdWV1ZTsKLSAgICBN
dXRleCBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4OworICAgIExvY2sgbV90cmFuc2FjdGlv
bkluUHJvZ3Jlc3NNdXRleDsKICAgICBib29sIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzOwogICAg
IGJvb2wgbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFibGVkOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VGFzay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUzLDcgKzUz
LDcgQEAgdm9pZCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6OnRhc2tDb21wbAogewogICAgIG1f
c3luY2hyb25vdXNNdXRleC5sb2NrKCk7CiAgICAgbV90YXNrQ29tcGxldGVkID0gdHJ1ZTsKLSAg
ICBtX3N5bmNocm9ub3VzQ29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1fc3luY2hyb25vdXNDb25k
aXRpb24ubm90aWZ5T25lKCk7CiAgICAgbV9zeW5jaHJvbm91c011dGV4LnVubG9jaygpOwogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUYXNrLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMxLDggKzMxLDkgQEAKICNpbmNsdWRlICJEYXRhYmFzZUJhc2ljVHlwZXMuaCIKICNp
bmNsdWRlICJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25CYWNrZW5k
LmgiCisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC01OCw4ICs1OSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBib29sIG1fdGFza0Nv
bXBsZXRlZDsKLSAgICBNdXRleCBtX3N5bmNocm9ub3VzTXV0ZXg7Ci0gICAgVGhyZWFkQ29uZGl0
aW9uIG1fc3luY2hyb25vdXNDb25kaXRpb247CisgICAgTG9jayBtX3N5bmNocm9ub3VzTXV0ZXg7
CisgICAgQ29uZGl0aW9uIG1fc3luY2hyb25vdXNDb25kaXRpb247CiAjaWZuZGVmIE5ERUJVRwog
ICAgIGJvb2wgbV9oYXNDaGVja2VkRm9yVGVybWluYXRpb247CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBE
YXRhYmFzZVRocmVhZDo6fkRhdGFiYXNlVGhyZWFkKCkKIAogYm9vbCBEYXRhYmFzZVRocmVhZDo6
c3RhcnQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKIAogICAgIGlmICht
X3RocmVhZElEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lk
IERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZCgpCiB7CiAgICAgewogICAgICAgICAvLyBX
YWl0IGZvciBEYXRhYmFzZVRocmVhZDo6c3RhcnQoKSB0byBjb21wbGV0ZS4KLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJT
dGFydGVkIERhdGFiYXNlVGhyZWFkICVwIiwgdGhpcyk7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCShy
ZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgdm9pZCBkYXRhYmFzZVRocmVhZFN0YXJ0KHZvaWQqKTsKICAgICB2b2lkIGRh
dGFiYXNlVGhyZWFkKCk7CiAKLSAgICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CisgICAg
TG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVh
ZElEOwogICAgIFJlZlB0cjxEYXRhYmFzZVRocmVhZD4gbV9zZWxmUmVmOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNr
ZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcg
QEAgRGF0YWJhc2VUcmFja2VyOjpEYXRhYmFzZVRyYWNrZXIoY29uc3QgUwogCiB2b2lkIERhdGFi
YXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIEFTU0VSVCghbV9k
YXRhYmFzZS5pc09wZW4oKSk7CiAgICAgbV9kYXRhYmFzZURpcmVjdG9yeVBhdGggPSBwYXRoLmlz
b2xhdGVkQ29weSgpOwogfQpAQCAtMTY2LDcgKzE2Niw3IEBAIGJvb2wgRGF0YWJhc2VUcmFja2Vy
OjpjYW5Fc3RhYmxpc2hEYXRhYmEKIHsKICAgICBlcnJvciA9IERhdGFiYXNlRXJyb3I6Ok5vbmU7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIFNlY3VyaXR5T3Jp
Z2luKiBvcmlnaW4gPSBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpOwogCiAgICAgaWYgKGlzRGVs
ZXRpbmdEYXRhYmFzZU9yT3JpZ2luRm9yKG9yaWdpbiwgbmFtZSkpIHsKQEAgLTIxOCw3ICsyMTgs
NyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6cmV0cnlDYW5Fc3RhYmxpc2hECiB7CiAgICAgZXJy
b3IgPSBEYXRhYmFzZUVycm9yOjpOb25lOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNl
KG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFz
ZUd1YXJkKTsKICAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gY29udGV4dC0+c2VjdXJpdHlP
cmlnaW4oKTsKIAogICAgIC8vIFdlIGhhdmUgYWxyZWFkeSBlbGltaW5hdGVkIG90aGVyIHR5cGVz
IG9mIGVycm9ycyBpbiBjYW5Fc3RhYmxpc2hEYXRhYmFzZSgpLgpAQCAtMjU3LDcgKzI1Nyw3IEBA
IGJvb2wgRGF0YWJhc2VUcmFja2VyOjpoYXNFbnRyeUZvck9yaWdpbk4KIAogYm9vbCBEYXRhYmFz
ZVRyYWNrZXI6Omhhc0VudHJ5Rm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hv
bGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICByZXR1cm4gaGFzRW50cnlG
b3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKIH0KIApAQCAtMjg2LDcgKzI4Niw3IEBAIHVuc2lnbmVk
IGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OmdldE0KIHsKICAgICAvLyBUaGUgbWF4aW11bSBz
aXplIGZvciBhIGRhdGFiYXNlIGlzIHRoZSBmdWxsIHF1b3RhIGZvciBpdHMgb3JpZ2luLCBtaW51
cyB0aGUgY3VycmVudCB1c2FnZSB3aXRoaW4gdGhlIG9yaWdpbiwKICAgICAvLyBwbHVzIHRoZSBj
dXJyZW50IHVzYWdlIG9mIHRoZSBnaXZlbiBkYXRhYmFzZQotICAgIE11dGV4TG9ja2VyIGxvY2tE
YXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1f
ZGF0YWJhc2VHdWFyZCk7CiAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGRhdGFiYXNlLT5z
ZWN1cml0eU9yaWdpbigpOwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhID0gcXVvdGFG
b3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKQEAgLTMxMSw3ICszMTEsNyBAQCB2b2lkIERhdGFiYXNl
VHJhY2tlcjo6Y2xvc2VBbGxEYXRhYmFzZXMoCiB7CiAgICAgVmVjdG9yPFJlZjxEYXRhYmFzZT4+
IG9wZW5EYXRhYmFzZXM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBvcGVuRGF0YWJhc2VN
YXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAgICBMb2NrSG9sZGVyIG9wZW5E
YXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CiAgICAgICAgIGlmICghbV9v
cGVuRGF0YWJhc2VNYXApCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGZvciAoYXV0byYg
bmFtZU1hcCA6IG1fb3BlbkRhdGFiYXNlTWFwLT52YWx1ZXMoKSkgewpAQCAtMzg5LDEzICszODks
MTMgQEAgU3RyaW5nIERhdGFiYXNlVHJhY2tlcjo6ZnVsbFBhdGhGb3JEYXRhYgogCiBTdHJpbmcg
RGF0YWJhc2VUcmFja2VyOjpmdWxsUGF0aEZvckRhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5vdEV4aXN0cykKIHsKLSAgICBN
dXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIHJldHVybiBmdWxsUGF0aEZvckRh
dGFiYXNlTm9Mb2NrKG9yaWdpbiwgbmFtZSwgY3JlYXRlSWZOb3RFeGlzdHMpLmlzb2xhdGVkQ29w
eSgpOwogfQogCiB2b2lkIERhdGFiYXNlVHJhY2tlcjo6b3JpZ2lucyhWZWN0b3I8UmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPj4mIG9yaWdpbnNSZXN1bHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0Rh
dGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKIAogICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9l
c05vdEV4aXN0KTsKICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCkBAIC00NDgsNyArNDQ4
LDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRhdGFiYXNlTmFtZXNGb3JPcgogewogICAgIFZl
Y3RvcjxTdHJpbmc+IHRlbXA7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJh
c2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKICAgICAgICAgaWYgKCFkYXRhYmFzZU5hbWVzRm9yT3JpZ2luTm9Mb2Nr
KG9yaWdpbiwgdGVtcCkpCiAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTQ2NSw3
ICs0NjUsNyBAQCBEYXRhYmFzZURldGFpbHMgRGF0YWJhc2VUcmFja2VyOjpkZXRhaWxzCiAgICAg
aW50NjRfdCBleHBlY3RlZFVzYWdlOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
RGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJh
c2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRD
cmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkK
QEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEZXRh
aWxzCiAgICAgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIgPSBvcmlnaW4tPmRhdGFiYXNlSWRlbnRp
ZmllcigpOwogICAgIGludDY0X3QgZ3VpZCA9IDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0
YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2Rh
dGFiYXNlR3VhcmQpOwogCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShDcmVhdGVJZkRvZXNOb3RF
eGlzdCk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNTQ5LDcgKzU0OSw3IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXREYXRhYmFzZURldGFpbHMKIAogdm9pZCBEYXRhYmFz
ZVRyYWNrZXI6OmRvbmVDcmVhdGluZ0RhdGFiYXNlKERhdGFiYXNlKiBkYXRhYmFzZSkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIGRvbmVDcmVhdGluZ0RhdGFi
YXNlKGRhdGFiYXNlLT5zZWN1cml0eU9yaWdpbigpLCBkYXRhYmFzZS0+c3RyaW5nSWRlbnRpZmll
cigpKTsKIH0KIApAQCAtNTU5LDcgKzU1OSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjphZGRP
cGVuRGF0YWJhc2UoRGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAg
ICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7
CiAKICAgICAgICAgaWYgKCFtX29wZW5EYXRhYmFzZU1hcCkKICAgICAgICAgICAgIG1fb3BlbkRh
dGFiYXNlTWFwID0gc3RkOjptYWtlX3VuaXF1ZTxEYXRhYmFzZU9yaWdpbk1hcD4oKTsKQEAgLTU4
OSw3ICs1ODksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlT3BlbkRhdGFiYXNlCiAg
ICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNl
TWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVu
RGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogCiAgICAgICAgIGlmICgh
bV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtNjI5LDcgKzYyOSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVPcGVuRGF0YWJh
c2UKIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6OmdldE9wZW5EYXRhYmFzZXMoU2VjdXJpdHlPcmln
aW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBIYXNoU2V0PFJlZlB0cjxEYXRhYmFzZT4+
KiBkYXRhYmFzZXMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29w
ZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2so
bV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CiAgICAgaWYgKCFtX29wZW5EYXRhYmFzZU1hcCkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC02NDcsNyArNjQ3LDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6
OmdldE9wZW5EYXRhYmFzZXMoUwogCiBSZWZQdHI8T3JpZ2luTG9jaz4gRGF0YWJhc2VUcmFja2Vy
OjpvcmlnaW5Mb2NrRm9yKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0
YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICBTdHJpbmcgZGF0YWJhc2VJZGVudGlmaWVyID0g
b3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKTsKIAogICAgIC8vIFRoZSBvcmlnaW5Mb2NrTWFw
IGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgRGF0YWJhc2VUaHJlYWRzIHNpbmNlCkBAIC03Mjcs
MTMgKzcyNywxMyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFja2VyOjpxdW90CiAK
IHVuc2lnbmVkIGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OnF1b3RhRm9yT3JpZ2luKFNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0
YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJk
KTsKICAgICByZXR1cm4gcXVvdGFGb3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKIH0KIAogdm9pZCBE
YXRhYmFzZVRyYWNrZXI6OnNldFF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIHVuc2lnbmVk
IGxvbmcgbG9uZyBxdW90YSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OwogCiAgICAgaWYgKHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbikgPT0gcXVvdGEpCiAgICAg
ICAgIHJldHVybjsKQEAgLTg2NCw3ICs4NjQsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVs
ZXRlT3JpZ2luKFNlY3VyCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gZGF0YWJhc2VOYW1lczsKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgICAg
ICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgICAg
IGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTg5MCw3ICs4OTAsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKFNlY3Vy
CiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1
YXJkKTsKICAgICAgICAgZGVsZXRlT3JpZ2luTG9ja0ZvcihvcmlnaW4pOwogICAgICAgICBkb25l
RGVsZXRpbmdPcmlnaW4ob3JpZ2luKTsKIApAQCAtMTA3MSw3ICsxMDcxLDcgQEAgdm9pZCBEYXRh
YmFzZVRyYWNrZXI6OmRvbmVEZWxldGluZ09yaWdpbgogYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRl
bGV0ZURhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSkK
IHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3Vh
cmQpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwog
ICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAg
ICAgICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEwODYsMTIgKzEwODYsMTIgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURh
dGFiYXNlKFNlYwogICAgIC8vIFdlIGRyb3AgdGhlIGxvY2sgaGVyZSBiZWNhdXNlIGhvbGRpbmcg
bG9ja3MgZHVyaW5nIGEgY2FsbCB0byBkZWxldGVEYXRhYmFzZUZpbGUgd2lsbCBkZWFkbG9jay4K
ICAgICBpZiAoIWRlbGV0ZURhdGFiYXNlRmlsZShvcmlnaW4sIG5hbWUpKSB7CiAgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIGRlbGV0ZSBmaWxlIGZvciBkYXRhYmFzZSAlcyBpbiBvcmlnaW4g
JXMiLCBuYW1lLmFzY2lpKCkuZGF0YSgpLCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpLmFz
Y2lpKCkuZGF0YSgpKTsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJh
c2VHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFy
ZCk7CiAgICAgICAgIGRvbmVEZWxldGluZ0RhdGFiYXNlKG9yaWdpbiwgbmFtZSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3Vh
cmQpOwogCiAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiREVMRVRF
IEZST00gRGF0YWJhc2VzIFdIRVJFIG9yaWdpbj0/IEFORCBuYW1lPT8iKTsKICAgICBpZiAoc3Rh
dGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsKQEAgLTExMzEsNyArMTEzMSw3IEBAIGJv
b2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGUKIAogI2lmbmRlZiBOREVCVUcK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAg
ICAgICBBU1NFUlQoaXNEZWxldGluZ0RhdGFiYXNlT3JPcmlnaW5Gb3Iob3JpZ2luLCBuYW1lKSk7
CiAgICAgfQogI2VuZGlmCkBAIC0xMTQyLDcgKzExNDIsNyBAQCBib29sIERhdGFiYXNlVHJhY2tl
cjo6ZGVsZXRlRGF0YWJhc2VGaWxlCiAgICAgLy8gRGF0YWJhc2U6Om1hcmtBc0RlbGV0ZWRBbmRD
bG9zZSgpLCBzaW5jZSB0aGF0IGNhbiBjYXVzZSBhIGRlYWRsb2NrCiAgICAgLy8gZHVyaW5nIHRo
ZSBzeW5jaHJvbm91cyBEYXRhYmFzZVRocmVhZCBjYWxsIGl0IHRyaWdnZXJzLgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1
YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFi
YXNlTWFwR3VhcmQpOwogICAgICAgICBpZiAobV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAg
ICAgIC8vIFRoZXJlIGFyZSBzb21lIG9wZW4gZGF0YWJhc2VzLCBsZXRzIGNoZWNrIGlmIHRoZXkg
YXJlIGZvciB0aGlzIG9yaWdpbi4KICAgICAgICAgICAgIERhdGFiYXNlTmFtZU1hcCogbmFtZU1h
cCA9IG1fb3BlbkRhdGFiYXNlTWFwLT5nZXQob3JpZ2luKTsKQEAgLTExODUsNyArMTE4NSw3IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVEZWxldGVkT3BlbmUKICAgICAKICAgICB7CiAg
ICAgICAgIC8vIEFjcXVpcmUgdGhlIGxvY2sgYmVmb3JlIGNhbGxpbmcgb3BlblRyYWNrZXJEYXRh
YmFzZS4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAg
ICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9lc05vdEV4aXN0KTsKICAgICB9
CiAKQEAgLTEyMDEsNyArMTIwMSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVEZWxl
dGVkT3BlbmUKICAgICAvLyBEYXRhYmFzZTo6bWFya0FzRGVsZXRlZEFuZENsb3NlKCksIHNpbmNl
IHRoYXQgY2FuIGNhdXNlIGEgZGVhZGxvY2sKICAgICAvLyBkdXJpbmcgdGhlIHN5bmNocm9ub3Vz
IERhdGFiYXNlVGhyZWFkIGNhbGwgaXQgdHJpZ2dlcnMuCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAg
ICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7
CiAgICAgICAgIGlmIChtX29wZW5EYXRhYmFzZU1hcCkgewogICAgICAgICAgICAgZm9yIChhdXRv
JiBvcGVuRGF0YWJhc2UgOiAqbV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAgICAgICAgICBh
dXRvJiBvcmlnaW4gPSBvcGVuRGF0YWJhc2Uua2V5OwpAQCAtMTMwNSw5ICsxMzA1LDkgQEAgYm9v
bCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZQogICAgIHJldHVybiBTUUxpdGVG
aWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiB9CiAKLU11dGV4JiBEYXRhYmFz
ZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKK0xvY2smIERhdGFiYXNlVHJhY2tlcjo6b3Bl
bkRhdGFiYXNlTXV0ZXgoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0
ZXg7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4OwogICAgIHJldHVybiBt
dXRleDsKIH0KIApAQCAtMTMzMCw5ICsxMzMwLDkgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnNl
dENsaWVudChEYXRhYmFzZQogICAgIG1fY2xpZW50ID0gY2xpZW50OwogfQogCi1zdGF0aWMgTXV0
ZXgmIG5vdGlmaWNhdGlvbk11dGV4KCkKK3N0YXRpYyBMb2NrJiBub3RpZmljYXRpb25NdXRleCgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBtdXRleDsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0x
MzQ2LDcgKzEzNDYsNyBAQCBzdGF0aWMgTm90aWZpY2F0aW9uUXVldWUmIG5vdGlmaWNhdGlvblF1
CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZChT
ZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG5vdGlmaWNhdGlvbk11dGV4KCkpOwogCiAgICAgbm90aWZpY2F0aW9uUXVldWUoKS5hcHBlbmQo
c3RkOjpwYWlyPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFN0cmluZz4ob3JpZ2luLT5pc29sYXRl
ZENvcHkoKSwgbmFtZS5pc29sYXRlZENvcHkoKSkpOwogICAgIHNjaGVkdWxlRm9yTm90aWZpY2F0
aW9uKCk7CkBAIC0xMzcyLDcgKzEzNzIsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6bm90aWZ5
RGF0YWJhc2VzQ2hhCiAKICAgICBOb3RpZmljYXRpb25RdWV1ZSBub3RpZmljYXRpb25zOwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKIAogICAgICAgICBu
b3RpZmljYXRpb25zLnN3YXAobm90aWZpY2F0aW9uUXVldWUoKSk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaAko
cmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1Ymxp
YzoKICAgICAvLyBNb2JpbGVTYWZhcmkgd2lsbCBncmFiIHRoaXMgbXV0ZXggb24gdGhlIG1haW4g
dGhyZWFkIGJlZm9yZSBkaXNwYXRjaGluZyB0aGUgdGFzayB0byAKICAgICAvLyBjbGVhbiB1cCB6
ZXJvIGJ5dGUgZGF0YWJhc2UgZmlsZXMuICBBbnkgb3BlcmF0aW9ucyB0byBvcGVuIG5ldyBkYXRh
YmFzZSB3aWxsIGhhdmUgdG8KICAgICAvLyB3YWl0IGZvciB0aGF0IHRhc2sgdG8gZmluaXNoIGJ5
IHdhaXRpbmcgb24gdGhpcyBtdXRleC4KLSAgICBzdGF0aWMgTXV0ZXgmIG9wZW5EYXRhYmFzZU11
dGV4KCk7CisgICAgc3RhdGljIExvY2smIG9wZW5EYXRhYmFzZU11dGV4KCk7CiAgICAgCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tX
aWxsQmVTY2hlZHVsZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURh
dGFiYXNlRmlsZXNSZW1vdmFsVGFza0RpZEZpbmlzaCgpOwpAQCAtMTUwLDExICsxNTAsMTEgQEAg
cHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBEYXRhYmFzZVNldCo+IERhdGFi
YXNlTmFtZU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwg
RGF0YWJhc2VOYW1lTWFwKj4gRGF0YWJhc2VPcmlnaW5NYXA7CiAKLSAgICBNdXRleCBtX29wZW5E
YXRhYmFzZU1hcEd1YXJkOworICAgIExvY2sgbV9vcGVuRGF0YWJhc2VNYXBHdWFyZDsKICAgICBt
dXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZU9yaWdpbk1hcD4gbV9vcGVuRGF0YWJhc2VN
YXA7CiAKICAgICAvLyBUaGlzIGxvY2sgcHJvdGVjdHMgbV9kYXRhYmFzZSwgbV9vcmlnaW5Mb2Nr
TWFwLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgbV9vcmlnaW5zQmVpbmdEZWxldGVkLCBtX2Jl
aW5nQ3JlYXRlZCwgYW5kIG1fYmVpbmdEZWxldGVkLgotICAgIE11dGV4IG1fZGF0YWJhc2VHdWFy
ZDsKKyAgICBMb2NrIG1fZGF0YWJhc2VHdWFyZDsKICAgICBTUUxpdGVEYXRhYmFzZSBtX2RhdGFi
YXNlOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE9yaWdpbkxvY2s+PiBP
cmlnaW5Mb2NrTWFwOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9P
cmlnaW5Mb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsy
Nyw4IEBACiAjZGVmaW5lIE9yaWdpbkxvY2tfaAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgor
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsNyArNDgsNyBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyBTdHJpbmcgbG9ja0ZpbGVOYW1lRm9yUGF0aChTdHJpbmcg
b3JpZ2luUGF0aCk7CiAKICAgICBTdHJpbmcgbV9sb2NrRmlsZU5hbWU7Ci0gICAgTXV0ZXggbV9t
dXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAjaWYgVVNFKEZJTEVfTE9DSykKICAgICBQbGF0Zm9y
bUZpbGVIYW5kbGUgbV9sb2NrSGFuZGxlOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmgJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
Q2FsbGJhY2tXcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNkZWZp
bmUgU1FMQ2FsbGJhY2tXcmFwcGVyX2gKIAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTgsNyArNTgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRQdHI7CiAgICAgICAgIFQqIGNhbGxiYWNrOwogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X211dGV4KTsKICAgICAgICAgICAgIGlmICghbV9jYWxsYmFjaykgewogICAgICAgICAgICAgICAg
IEFTU0VSVCghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICAgICAgICAgICAgICByZXR1
cm47CkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8VD4gdW53cmFw
KCkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgICAgIEFTU0VSVCghbV9jYWxsYmFjayB8
fCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKICAgICAgICAg
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIG1fY2Fs
bGJhY2sucmVsZWFzZSgpOwpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXND
YWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KIAogcHJpdmF0ZToKLSAgICBN
dXRleCBtX211dGV4OworICAgIExvY2sgbV9tdXRleDsKICAgICBSZWZQdHI8VD4gbV9jYWxsYmFj
azsKICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25CYWNrZW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25C
YWNrZW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQgU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXAoKQogCiAgICAgcmVsZWFzZU9yaWdpbkxvY2tJZk5l
ZWRlZCgpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOwogICAgIG1fc3RhdGVtZW50UXVl
dWUuY2xlYXIoKTsKIAogICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uKSB7CkBAIC00NjUsNyAr
NDY1LDcgQEAgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpTdGF0ZUZ1bmN0aW9uIFNRTAogCiB2b2lk
IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZW5xdWV1ZVN0YXRlbWVudEJhY2tlbmQoc3RkOjp1bmlx
dWVfcHRyPFNRTFN0YXRlbWVudD4gc3RhdGVtZW50QmFja2VuZCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9zdGF0ZW1lbnRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zdGF0
ZW1lbnRNdXRleCk7CiAgICAgbV9zdGF0ZW1lbnRRdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKHN0YXRl
bWVudEJhY2tlbmQpKTsKIH0KIApAQCAtNjgxLDcgKzY4MSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rp
b25CYWNrZW5kOjpnZXROZXh0U3RhdGUKIHsKICAgICBtX2N1cnJlbnRTdGF0ZW1lbnRCYWNrZW5k
ID0gbnVsbHB0cjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsKICAgICBpZiAoIW1fc3Rh
dGVtZW50UXVldWUuaXNFbXB0eSgpKQogICAgICAgICBtX2N1cnJlbnRTdGF0ZW1lbnRCYWNrZW5k
ID0gbV9zdGF0ZW1lbnRRdWV1ZS50YWtlRmlyc3QoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tl
bmQuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDEzLCAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRp
dmVzLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3JlYWRPbmx5OwogICAgIGJvb2wgbV9oYXNWZXJzaW9uTWlzbWF0Y2g7CiAK
LSAgICBNdXRleCBtX3N0YXRlbWVudE11dGV4OworICAgIExvY2sgbV9zdGF0ZW1lbnRNdXRleDsK
ICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8U1FMU3RhdGVtZW50Pj4gbV9zdGF0ZW1lbnRRdWV1
ZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTUUxpdGVUcmFuc2FjdGlvbj4gbV9zcWxpdGVUcmFu
c2FjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1
bGVFeGUKICAgICAvLyBUaGUgbXV0ZXggcHJvdmlkZXMgYSBtZW1vcnkgYmFycmllciB0byBlbnN1
cmUgdGhhdCBvbmNlCiAgICAgLy8gdGVybWluYXRpb24gaXMgc2NoZWR1bGVkLCBpc0V4ZWN1dGlv
blRlcm1pbmF0aW5nIHdpbGwKICAgICAvLyBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhhdCBzdGF0ZSB3
aGVuIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkLgotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2No
ZWR1bGVkVGVybWluYXRpb25NdXRleCk7CiAgICAgaWYgKG1fdm0tPndhdGNoZG9nKQogICAgICAg
ICBtX3ZtLT53YXRjaGRvZy0+ZmlyZSgpOwogfQpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgV29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVFeGUKIGJvb2wgV29ya2VyU2NyaXB0Q29udHJv
bGxlcjo6aXNFeGVjdXRpb25UZXJtaW5hdGluZygpIGNvbnN0CiB7CiAgICAgLy8gU2VlIGNvbW1l
bnRzIGluIHNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24gcmVnYXJkaW5nIG11dGV4IHVzYWdl
LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRleCk7CiAgICAg
aWYgKG1fdm0tPndhdGNoZG9nKQogICAgICAgICByZXR1cm4gbV92bS0+d2F0Y2hkb2ctPmRpZEZp
cmUoKTsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCShyZXZpc2lvbiAxODg1NjkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
NSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMx
LDggKzMxLDggQEAKICNpbmNsdWRlIDxkZWJ1Z2dlci9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGhl
YXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9OYWtlZFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KIAogbmFtZXNwYWNlIERlcHJlY2F0ZWQgewogY2xhc3MgU2NyaXB0VmFsdWU7CkBAIC05Nyw3
ICs5Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUq
IG1fd29ya2VyR2xvYmFsU2NvcGU7CiAgICAgICAgIEpTQzo6U3Ryb25nPEpTV29ya2VyR2xvYmFs
U2NvcGU+IG1fd29ya2VyR2xvYmFsU2NvcGVXcmFwcGVyOwogICAgICAgICBib29sIG1fZXhlY3V0
aW9uRm9yYmlkZGVuOwotICAgICAgICBtdXRhYmxlIE11dGV4IG1fc2NoZWR1bGVkVGVybWluYXRp
b25NdXRleDsKKyAgICAgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRl
eDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDcgKzg4LDcg
QEAgdm9pZCBNZXNzYWdlUG9ydENoYW5uZWw6OmRpc2VudGFuZ2xlKCkKIAogdm9pZCBNZXNzYWdl
UG9ydENoYW5uZWw6OnBvc3RNZXNzYWdlVG9SZW1vdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eT4gY2hhbm5lbHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIGlmICghbV9j
aGFubmVsLT5tX291dGdvaW5nUXVldWUpCiAgICAgICAgIHJldHVybjsKICAgICBib29sIHdhc0Vt
cHR5ID0gbV9jaGFubmVsLT5tX291dGdvaW5nUXVldWUtPmFwcGVuZEFuZENoZWNrRW1wdHkoc3Rk
OjptYWtlX3VuaXF1ZTxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhPihtZXNz
YWdlLCBXVEY6Om1vdmUoY2hhbm5lbHMpKSk7CkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgTWVzc2Fn
ZVBvcnRDaGFubmVsOjpwb3N0TWVzc2FnZVRvUmUKIAogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6
OnRyeUdldE1lc3NhZ2VGcm9tUmVtb3RlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiBt
ZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiBjaGFubmVs
cykKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CiAgICAgYXV0byByZXN1bHQgPSBtX2No
YW5uZWwtPm1faW5jb21pbmdRdWV1ZS0+dHJ5R2V0TWVzc2FnZSgpOwogICAgIGlmICghcmVzdWx0
KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMjEsMjAgKzEyMSwyMCBAQCB2b2lkIE1lc3Nh
Z2VQb3J0Q2hhbm5lbDo6Y2xvc2UoKQogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6OmlzQ29ubmVj
dGVkVG8oTWVzc2FnZVBvcnQqIHBvcnQpCiB7CiAgICAgLy8gRklYTUU6IFdoYXQgZ3VhcmFudGVl
cyB0aGF0IHRoZSByZXN1bHQgcmVtYWlucyB0aGUgc2FtZSBhZnRlciB3ZSByZWxlYXNlIHRoZSBs
b2NrPwotICAgIE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICByZXR1cm4gbV9jaGFubmVsLT5t
X3JlbW90ZVBvcnQgPT0gcG9ydDsKIH0KIAogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6Omhhc1Bl
bmRpbmdBY3Rpdml0eSgpCiB7CiAgICAgLy8gRklYTUU6IFdoYXQgZ3VhcmFudGVlcyB0aGF0IHRo
ZSByZXN1bHQgcmVtYWlucyB0aGUgc2FtZSBhZnRlciB3ZSByZWxlYXNlIHRoZSBsb2NrPwotICAg
IE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICByZXR1cm4gIW1fY2hhbm5lbC0+bV9pbmNvbWlu
Z1F1ZXVlLT5pc0VtcHR5KCk7CiB9CiAKIE1lc3NhZ2VQb3J0KiBNZXNzYWdlUG9ydENoYW5uZWw6
OmxvY2FsbHlFbnRhbmdsZWRQb3J0KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIC8vIFNlZSBpZiBib3RoIGNv
bnRleHRzIGFyZSBydW4gYnkgdGhlIHNhbWUgdGhyZWFkIChhcmUgdGhlIHNhbWUgY29udGV4dCwg
b3IgYXJlIGJvdGggZG9jdW1lbnRzKS4KICAgICBpZiAobV9jaGFubmVsLT5tX3JlbW90ZVBvcnQp
IHsKICAgICAgICAgLy8gVGhlIHJlbW90ZSBwb3J0J3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBp
cyBndWFyYW50ZWVkIG5vdCB0byBjaGFuZ2UgaGVyZSAtIE1lc3NhZ2VQb3J0Ojpjb250ZXh0RGVz
dHJveWVkKCkKQEAgLTE2NCw3ICsxNjQsNyBAQCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6
flBsYXRmb3JtTWVzCiAKIHZvaWQgUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OnNldFJlbW90
ZVBvcnQoTWVzc2FnZVBvcnQqIHBvcnQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgLy8gU2hvdWxkIG5ldmVyIHNl
dCBwb3J0IGlmIGl0IGlzIGFscmVhZHkgc2V0LgogICAgIEFTU0VSVCghcG9ydCB8fCAhbV9yZW1v
dGVQb3J0KTsKICAgICBtX3JlbW90ZVBvcnQgPSBwb3J0OwpAQCAtMTc1LDEzICsxNzUsMTMgQEAg
UGFzc1JlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gUAogICAgIC8vIEZJWE1FOiBX
aGF0IGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVzdWx0IHJlbWFpbnMgdGhlIHNhbWUgYWZ0ZXIgd2Ug
cmVsZWFzZSB0aGUgbG9jaz8KICAgICAvLyBUaGlzIGxvY2sgb25seSBndWFyYW50ZWVzIHRoYXQg
dGhlIHJldHVybmVkIHBvaW50ZXIgd2lsbCBub3QgYmUgcG9pbnRpbmcgdG8gcmVsZWFzZWQgbWVt
b3J5LAogICAgIC8vIGJ1dCBub3QgdGhhdCBpdCB3aWxsIHN0aWxsIGJlIHBvaW50aW5nIHRvIHRo
aXMgb2JqZWN0J3MgZW50YW5nbGVkIHBvcnQgY2hhbm5lbC4KLSAgICBNdXRleExvY2tlciBsb2Nr
KG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICByZXR1cm4gbV9l
bnRhbmdsZWRDaGFubmVsOwogfQogCiB2b2lkIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpj
bG9zZUludGVybmFsKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJv
bSB0aGUgb3RoZXIgZW5kLiBXZSBzdGlsbCBtYWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5j
b21pbmcgcXVldWUsIHNpbmNlIHByZXZpb3VzbHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0
aWxsIGJlIGRlbGl2ZXJlZC4KICAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOwogICAgIG1fZW50
YW5nbGVkQ2hhbm5lbCA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVs
dC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDggKzk1LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIHNldFJlbW90ZVBvcnQoTWVzc2FnZVBvcnQqKTsKICAgICAgICAg
dm9pZCBjbG9zZUludGVybmFsKCk7CiAKLSAgICAgICAgLy8gTXV0ZXggdXNlZCB0byBlbnN1cmUg
ZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgb2JqZWN0IGludGVybmFscy4KLSAgICAgICAgTXV0ZXgg
bV9tdXRleDsKKyAgICAgICAgLy8gTG9jayB1c2VkIHRvIGVuc3VyZSBleGNsdXNpdmUgYWNjZXNz
IHRvIHRoZSBvYmplY3QgaW50ZXJuYWxzLgorICAgICAgICBMb2NrIG1fbXV0ZXg7CiAKICAgICAg
ICAgLy8gUG9pbnRlciB0byBvdXIgZW50YW5nbGVkIHBhaXIgLSBjbGVhcmVkIHdoZW4gY2xvc2Uo
KSBpcyBjYWxsZWQuCiAgICAgICAgIFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4g
bV9lbnRhbmdsZWRDaGFubmVsOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODYsNyArMTg2LDcg
QEAgdm9pZCBJY29uRGF0YWJhc2U6OnJlbW92ZUFsbEljb25zKCkKICAgICAKICAgICAvLyBDbGVh
ciB0aGUgaW4tbWVtb3J5IHJlY29yZCBvZiBldmVyeSBJY29uUmVjb3JkLCBhbnl0aGluZyB3YWl0
aW5nIHRvIGJlIHJlYWQgZnJvbSBkaXNrLCBhbmQgYW55dGhpbmcgd2FpdGluZyB0byBiZSB3cml0
dGVuIHRvIGRpc2sKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAg
ICAgICAgIAogICAgICAgICAvLyBDbGVhciB0aGUgSWNvblJlY29yZHMgZm9yIGV2ZXJ5IHBhZ2Ug
VVJMIC0gUmVmQ291bnRpbmcgd2lsbCBjYXVzZSB0aGUgSWNvblJlY29yZHMgdGhlbXNlbHZlcyB0
byBiZSBkZWxldGVkCiAgICAgICAgIC8vIFdlIGRvbid0IGRlbGV0ZSB0aGUgYWN0dWFsIFBhZ2VS
ZWNvcmRzIGJlY2F1c2Ugd2UgaGF2ZSB0aGUgInJldGFpbiBpY29uIGZvciB1cmwiIGNvdW50IHRv
IGtlZXAgdHJhY2sgb2YKQEAgLTIwMCwxNCArMjAwLDE0IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpy
ZW1vdmVBbGxJY29ucygpCiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAvLyBDbGVhciBh
bGwgaW4tbWVtb3J5IHJlY29yZHMgb2YgdGhpbmdzIHRoYXQgbmVlZCB0byBiZSBzeW5jZWQgb3V0
IHRvIGRpc2sKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVu
ZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5
bmNMb2NrKTsKICAgICAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nU3luYy5jbGVhcigpOwogICAg
ICAgICAgICAgbV9pY29uc1BlbmRpbmdTeW5jLmNsZWFyKCk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIC8vIENsZWFyIGFsbCBpbi1tZW1vcnkgcmVjb3JkcyBvZiB0aGluZ3MgdGhhdCBu
ZWVkIHRvIGJlIHJlYWQgaW4gZnJvbSBkaXNrCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxz
UGVuZGluZ0ltcG9ydC5jbGVhcigpOwogICAgICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJ
bkljb25zLmNsZWFyKCk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcuY2xlYXIo
KTsKQEAgLTIyOSw3ICsyMjksNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0lj
b25Gb3JQCiAgICAgaWYgKCFpc09wZW4oKSB8fCAhZG9jdW1lbnRDYW5IYXZlSWNvbihwYWdlVVJM
T3JpZ2luYWwpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKIAogICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMoKTsKICAg
ICAKQEAgLTI0NSw3ICsyNDUsNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0lj
b25Gb3JQCiAgICAgLy8gMSAtIFRoZSBpbml0aWFsIHVybCBpbXBvcnQgaXMgaW5jb21wbGV0ZSBh
bmQgdGhpcyBwYWdlVVJMIHdhcyBtYXJrZWQgdG8gYmUgbm90aWZpZWQgb25jZSBpdCBpcyBjb21w
bGV0ZSBpZiBhbiBpY29uVVJMIGV4aXN0cwogICAgIC8vIDIgLSBUaGUgaW5pdGlhbCB1cmwgaW1w
b3J0IElTIGNvbXBsZXRlIGFuZCB0aGlzIHBhZ2VVUkwgaGFzIG5vIGljb24KICAgICBpZiAoIXBh
Z2VSZWNvcmQpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdM
b2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwog
ICAgICAgICAKICAgICAgICAgLy8gSW1wb3J0IGlzIG9uZ29pbmcsIHRoZXJlIG1pZ2h0IGJlIGFu
IGljb24uICBJbiB0aGlzIGNhc2UsIHJlZ2lzdGVyIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGlj
b24gY29tZXMgaW4KICAgICAgICAgLy8gSWYgd2UgZXZlciByZWFjaCB0aGlzIGNvbmRpdGlvbiwg
d2Uga25vdyB3ZSd2ZSBhbHJlYWR5IG1hZGUgdGhlIHBhZ2VVUkwgY29weQpAQCAtMjc2LDcgKzI3
Niw3IEBAIEltYWdlKiBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzSWNvbkZvclAKICAgICAgICAg
aWYgKHBhZ2VVUkxDb3B5LmlzTnVsbCgpKQogICAgICAgICAgICAgcGFnZVVSTENvcHkgPSBwYWdl
VVJMT3JpZ2luYWwuaXNvbGF0ZWRDb3B5KCk7CiAgICAgCi0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
cGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJbkljb25z
LmFkZChwYWdlVVJMQ29weSk7CiAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5hZGQoaWNv
blJlY29yZCk7CiAgICAgICAgIHdha2VTeW5jVGhyZWFkKCk7CkBAIC0zMDcsNyArMzA3LDcgQEAg
UGFzc05hdGl2ZUltYWdlUHRyIEljb25EYXRhYmFzZTo6c3luY2hybwogICAgIGlmICghaWNvbikK
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29u
TG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgcmV0
dXJuIGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CiB9CiAKQEAgLTMyOSw3ICsz
MjksNyBAQCBTdHJpbmcgSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25VUkxGCiAgICAgaWYg
KCFpc09wZW4oKSB8fCAhZG9jdW1lbnRDYW5IYXZlSWNvbihwYWdlVVJMT3JpZ2luYWwpKQogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKICAgICAKICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVjb3JkID0gbV9wYWdlVVJMVG9SZWNv
cmRNYXAuZ2V0KHBhZ2VVUkxPcmlnaW5hbCk7CiAgICAgaWYgKCFwYWdlUmVjb3JkKQpAQCAtNDE3
LDcgKzQxNyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpyZXRhaW5JY29uRm9yUGFnZVVSTCgKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxz
VG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxz
VG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKICAgICAgICAgbV91cmxzVG9SZXRhaW4uYWRkKHBhZ2VV
UkwuaXNvbGF0ZWRDb3B5KCkpOwogICAgICAgICBtX3JldGFpbk9yUmVsZWFzZUljb25SZXF1ZXN0
ZWQgPSB0cnVlOwogICAgIH0KQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6
cGVyZm9ybVJldGFpbkljb25Gb3JQCiAgICAgICAgIGlmICghbV9pY29uVVJMSW1wb3J0Q29tcGxl
dGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
cGVuZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3lu
Y0xvY2spOwogICAgICAgICAvLyBJZiB0aGlzIHBhZ2VVUkwgd2FpdGluZyB0byBiZSBzeW5jJ2Vk
LCB1cGRhdGUgdGhlIHN5bmMgcmVjb3JkCiAgICAgICAgIC8vIFRoaXMgc2F2ZXMgdXMgaW4gdGhl
IGNhc2Ugd2hlcmUgYSBwYWdlIHdhcyByZWFkeSB0byBiZSBkZWxldGVkIGZyb20gdGhlIGRhdGFi
YXNlIGJ1dCB3YXMganVzdCByZXRhaW5lZCAtIHNvIHRoZXJlcyBubyBuZWVkIHRvIGRlbGV0ZSBp
dCEKICAgICAgICAgaWYgKCFtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgJiYgbV9wYWdlVVJMc1Bl
bmRpbmdTeW5jLmNvbnRhaW5zKHBhZ2VVUkwpKSB7CkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnJlbGVhc2VJY29uRm9yUGFnZVVSTAogICAgICAgICByZXR1cm47CiAKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2spOwogICAgICAgICBtX3VybHNUb1JlbGVhc2UuYWRkKHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCkp
OwogICAgICAgICBtX3JldGFpbk9yUmVsZWFzZUljb25SZXF1ZXN0ZWQgPSB0cnVlOwogICAgIH0K
QEAgLTUwNiw3ICs1MDYsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29u
Rm9yCiAgICAgQVNTRVJUKCFpY29uUmVjb3JkIHx8IChpY29uUmVjb3JkICYmIG1faWNvblVSTFRv
UmVjb3JkTWFwLmdldChpY29uUmVjb3JkLT5pY29uVVJMKCkpID09IGljb25SZWNvcmQpKTsKIAog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAg
ICAKICAgICAgICAgLy8gU2luY2UgdGhpcyBwYWdlVVJMIGlzIGdvaW5nIGF3YXksIHRoZXJlJ3Mg
bm8gcmVhc29uIGFueW9uZSB3b3VsZCBldmVyIGJlIGludGVyZXN0ZWQgaW4gaXRzIHJlYWQgcmVz
dWx0cyAgICAKICAgICAgICAgaWYgKCFtX2ljb25VUkxJbXBvcnRDb21wbGV0ZSkKQEAgLTUyMiw3
ICs1MjIsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29uRm9yCiAgICAg
CiAgICAgLy8gTWFyayBzdHVmZiBmb3IgZGVsZXRpb24gZnJvbSB0aGUgZGF0YWJhc2Ugb25seSBp
ZiB3ZSdyZSBub3QgaW4gcHJpdmF0ZSBicm93c2luZwogICAgIGlmICghbV9wcml2YXRlQnJvd3Np
bmdFbmFibGVkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9j
ayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKICAgICAg
ICAgbV9wYWdlVVJMc1BlbmRpbmdTeW5jLnNldChwYWdlVVJMT3JpZ2luYWwuaXNvbGF0ZWRDb3B5
KCksIHBhZ2VSZWNvcmQtPnNuYXBzaG90KHRydWUpKTsKICAgICAKICAgICAgICAgLy8gSWYgdGhp
cyBwYWdlIGlzIHRoZSBsYXN0IHBhZ2UgdG8gcmVmZXIgdG8gYSBwYXJ0aWN1bGFyIEljb25SZWNv
cmQsIHRoYXQgSWNvblJlY29yZCBuZWVkcyB0bwpAQCAtNTQ4LDEyICs1NDgsMTIgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVSTAogICAgIAogICAgIFZlY3RvcjxTdHJp
bmc+IHBhZ2VVUkxzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsK
ICAgICAKICAgICAgICAgLy8gSWYgdGhpcyBpY29uIHdhcyBwZW5kaW5nIGEgcmVhZCwgcmVtb3Zl
IGl0IGZyb20gdGhhdCBzZXQgYmVjYXVzZSB0aGlzIG5ldyBkYXRhIHNob3VsZCBvdmVycmlkZSB3
aGF0IGlzIG9uIGRpc2sKICAgICAgICAgUmVmUHRyPEljb25SZWNvcmQ+IGljb24gPSBtX2ljb25V
UkxUb1JlY29yZE1hcC5nZXQoaWNvblVSTCk7CiAgICAgICAgIGlmIChpY29uKSB7Ci0gICAgICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAg
bV9pY29uc1BlbmRpbmdSZWFkaW5nLnJlbW92ZShpY29uLmdldCgpKTsKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBpY29uID0gZ2V0T3JDcmVhdGVJY29uUmVjb3JkKGljb25VUkwpOwpAQCAt
NTY3LDcgKzU2Nyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvckljb25VUkwK
ICAgICAgICAgCiAgICAgICAgIC8vIE1hcmsgdGhlIEljb25SZWNvcmQgYXMgcmVxdWlyaW5nIGFu
IHVwZGF0ZSB0byB0aGUgZGF0YWJhc2Ugb25seSBpZiBwcml2YXRlIGJyb3dzaW5nIGlzIGRpc2Fi
bGVkCiAgICAgICAgIGlmICghbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKSB7Ci0gICAgICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgbV9pY29uc1Bl
bmRpbmdTeW5jLnNldChpY29uVVJMLCBpY29uLT5zbmFwc2hvdCgpKTsKICAgICAgICAgfQogCkBA
IC02MDgsNyArNjA4LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJM
KAogICAgIFN0cmluZyBpY29uVVJMLCBwYWdlVVJMOwogICAgIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKIAogICAgICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVj
b3JkID0gbV9wYWdlVVJMVG9SZWNvcmRNYXAuZ2V0KHBhZ2VVUkxPcmlnaW5hbCk7CiAgICAgICAg
IApAQCAtNjM2LDEzICs2MzYsMTMgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQ
YWdlVVJMKAogICAgICAgICAgICAgQVNTRVJUKGljb25SZWNvcmQtPnJldGFpbmluZ1BhZ2VVUkxz
KCkuc2l6ZSgpID09IDApOwogICAgICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIkljb24gZm9y
IGljb24gdXJsICVzIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZCAtIHJlbW92aW5nIG1hcHBpbmcg
Zm9yIGl0IiwgdXJsRm9yTG9nZ2luZyhpY29uUmVjb3JkLT5pY29uVVJMKCkpLmFzY2lpKCkuZGF0
YSgpKTsKICAgICAgICAgICAgIG1faWNvblVSTFRvUmVjb3JkTWFwLnJlbW92ZShpY29uUmVjb3Jk
LT5pY29uVVJMKCkpOwotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1Jl
YWRpbmdMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRp
bmdMb2NrKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5yZW1vdmUoaWNvblJl
Y29yZC5nZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIEFuZCBtYXJrIHRo
aXMgbWFwcGluZyB0byBiZSBhZGRlZCB0byB0aGUgZGF0YWJhc2UKICAgICAgICAgaWYgKCFtX3By
aXZhdGVCcm93c2luZ0VuYWJsZWQpIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRp
bmdTeW5jTG9jayk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxzUGVuZGluZ1N5bmMuc2V0KHBhZ2VV
UkwsIHBhZ2VSZWNvcmQtPnNuYXBzaG90KCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAv
LyBJZiB0aGUgaWNvbiBpcyBvbiBpdHMgbGFzdCByZWYsIG1hcmsgaXQgZm9yIGRlbGV0aW9uCkBA
IC02NzQsNyArNjc0LDcgQEAgSWNvbkxvYWREZWNpc2lvbiBJY29uRGF0YWJhc2U6OnN5bmNocm9u
bwogICAgIC8vIDEgLSBXaGVuIHdlIHJlYWQgdGhlIGljb24gdXJscyBmcm9tIGRpc2ssIGdldHRp
bmcgdGhlIHRpbWVTdGFtcCBhdCB0aGUgc2FtZSB0aW1lCiAgICAgLy8gMiAtIFdoZW4gd2UgZ2V0
IGEgbmV3IGljb24gZnJvbSB0aGUgbG9hZGVyLCBpbiB3aGljaCBjYXNlIHRoZSB0aW1lc3RhbXAg
aXMgc2V0IGF0IHRoYXQgdGltZQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKICAgICAgICAgaWYgKEljb25SZWNvcmQqIGljb24gPSBtX2ljb25VUkxUb1JlY29yZE1h
cC5nZXQoaWNvblVSTCkpIHsKICAgICAgICAgICAgIExPRyhJY29uRGF0YWJhc2UsICJGb3VuZCBl
eHBpcmF0aW9uIHRpbWUgb24gYSBwcmVzZW50IGljb24gYmFzZWQgb24gZXhpc3RpbmcgSWNvblJl
Y29yZCIpOwogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oY3VycmVudFRpbWUo
KSkgLSBzdGF0aWNfY2FzdDxpbnQ+KGljb24tPmdldFRpbWVzdGFtcCgpKSA+IGljb25FeHBpcmF0
aW9uVGltZSA/IEljb25Mb2FkWWVzIDogSWNvbkxvYWRObzsKQEAgLTY4Miw3ICs2ODIsNyBAQCBJ
Y29uTG9hZERlY2lzaW9uIEljb25EYXRhYmFzZTo6c3luY2hyb25vCiAgICAgfQogICAgIAogICAg
IC8vIElmIHdlIGRvbid0IGhhdmUgYSByZWNvcmQgZm9yIGl0LCBidXQgd2UgKmhhdmUqIGltcG9y
dGVkIGFsbCBpY29uVVJMcyBmcm9tIGRpc2ssIHRoZW4gd2Ugc2hvdWxkIGxvYWQgaXQgbm93Ci0g
ICAgTXV0ZXhMb2NrZXIgcmVhZGluZ0xvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAg
TG9ja0hvbGRlciByZWFkaW5nTG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICBpZiAo
bV9pY29uVVJMSW1wb3J0Q29tcGxldGUpCiAgICAgICAgIHJldHVybiBJY29uTG9hZFllczsKICAg
ICAgICAgCkBAIC02OTksNyArNjk5LDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3Vz
SWNvbkRhdGFLbgogewogICAgIEFTU0VSVF9OT1RfU1lOQ19USFJFQUQoKTsKICAgICAKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgaWYgKEljb25SZWNvcmQqIGljb24gPSBtX2ljb25V
UkxUb1JlY29yZE1hcC5nZXQoaWNvblVSTCkpCiAgICAgICAgIHJldHVybiBpY29uLT5pbWFnZURh
dGFTdGF0dXMoKSAhPSBJbWFnZURhdGFTdGF0dXNVbmtub3duOwogCkBAIC03NTQsMjYgKzc1NCwy
NiBAQCB2b2lkIEljb25EYXRhYmFzZTo6Y2hlY2tJbnRlZ3JpdHlCZWZvcmVPCiAKIHNpemVfdCBJ
Y29uRGF0YWJhc2U6OnBhZ2VVUkxNYXBwaW5nQ291bnQoKQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKICAgICByZXR1cm4gbV9wYWdlVVJMVG9SZWNvcmRNYXAuc2l6ZSgpOwogfQogCiBz
aXplX3QgSWNvbkRhdGFiYXNlOjpyZXRhaW5lZFBhZ2VVUkxDb3VudCgpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOwogICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJh
dGlvbnMoKTsKICAgICByZXR1cm4gbV9yZXRhaW5lZFBhZ2VVUkxzLnNpemUoKTsKIH0KIAogc2l6
ZV90IEljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50KCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJ
Y29uTG9jayk7CiAgICAgcmV0dXJuIG1faWNvblVSTFRvUmVjb3JkTWFwLnNpemUoKTsKIH0KIAog
c2l6ZV90IEljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50V2l0aERhdGEoKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKICAgICBzaXplX3QgcmVzdWx0ID0gMDsKICAgICAKICAgICBI
YXNoTWFwPFN0cmluZywgSWNvblJlY29yZCo+OjppdGVyYXRvciBpID0gbV9pY29uVVJMVG9SZWNv
cmRNYXAuYmVnaW4oKTsKQEAgLTgyOSwxMyArODI5LDEzIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpu
b3RpZnlQZW5kaW5nTG9hZERlY2kKIAogdm9pZCBJY29uRGF0YWJhc2U6Ondha2VTeW5jVGhyZWFk
KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9zeW5jTG9jayk7CiAKICAgICBpZiAoIW1fZGlzYWJsZVN1ZGRlblRlcm1pbmF0
aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8pCiAgICAgICAgIG1fZGlzYWJsZVN1ZGRlblRl
cm1pbmF0aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8gPSBzdGQ6Om1ha2VfdW5pcXVlPFN1
ZGRlblRlcm1pbmF0aW9uRGlzYWJsZXI+KCk7CiAKICAgICBtX3N5bmNUaHJlYWRIYXNXb3JrVG9E
byA9IHRydWU7Ci0gICAgbV9zeW5jQ29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1fc3luY0NvbmRp
dGlvbi5ub3RpZnlPbmUoKTsKIH0KIAogdm9pZCBJY29uRGF0YWJhc2U6OnNjaGVkdWxlT3JEZWZl
clN5bmNUaW1lcigpCkBAIC04NzQsMTMgKzg3NCwxMyBAQCBib29sIEljb25EYXRhYmFzZTo6aXNP
cGVuKCkgY29uc3QKIAogYm9vbCBJY29uRGF0YWJhc2U6OmlzT3BlbkJlc2lkZXNNYWluVGhyZWFk
Q2FsbGJhY2tzKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgcmV0dXJuIG1fc3luY1Ro
cmVhZFJ1bm5pbmcgfHwgbV9zeW5jREIuaXNPcGVuKCk7CiB9CiAKIFN0cmluZyBJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3lu
Y0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgIHJldHVybiBt
X2NvbXBsZXRlRGF0YWJhc2VQYXRoLmlzb2xhdGVkQ29weSgpOwogfQogCkBAIC05MTYsNyArOTE2
LDcgQEAgUGFnZVVSTFJlY29yZCogSWNvbkRhdGFiYXNlOjpnZXRPckNyZWF0ZQogCiAgICAgUGFn
ZVVSTFJlY29yZCogcGFnZVJlY29yZCA9IG1fcGFnZVVSTFRvUmVjb3JkTWFwLmdldChwYWdlVVJM
KTsKICAgICAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICBpZiAoIW1f
aWNvblVSTEltcG9ydENvbXBsZXRlKSB7CiAgICAgICAgIC8vIElmIHRoZSBpbml0aWFsIGltcG9y
dCBvZiBhbGwgVVJMcyBoYXNuJ3QgY29tcGxldGVkIGFuZCB3ZSBoYXZlIG5vIHBhZ2UgcmVjb3Jk
LCB3ZSBhc3N1bWUgd2UgKm1pZ2h0KiBrbm93IGFib3V0IHRoaXMgbGF0ZXIgYW5kIGNyZWF0ZSBh
IHJlY29yZCBmb3IgaXQKICAgICAgICAgaWYgKCFwYWdlUmVjb3JkKSB7CkBAIC05ODUsNyArOTg1
LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6Omljb25EYXRhYmFzZVN5bmNUaHJlYQogICAgIH0KICAg
ICAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgICAgIGlmICghbV9zeW5jREIu
b3BlbihtX2NvbXBsZXRlRGF0YWJhc2VQYXRoKSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJV
bmFibGUgdG8gb3BlbiBpY29uIGRhdGFiYXNlIGF0IHBhdGggJXMgLSAlcyIsIG1fY29tcGxldGVE
YXRhYmFzZVBhdGguYXNjaWkoKS5kYXRhKCksIG1fc3luY0RCLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTExMTMsNyArMTExMyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpwZXJmb3JtT3BlbkluaXRpYWxpemEKICAgICAgICAgICAgIG1fc3luY0RCLmNsb3NlKCk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9zeW5jTG9jayk7CisgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9z
eW5jTG9jayk7CiAgICAgICAgICAgICAgICAgLy8gU2hvdWxkJ3ZlIGJlZW4gY29uc3VtZWQgYnkg
U1FMaXRlLCBkZWxldGUganVzdCB0byBtYWtlIHN1cmUgd2UgZG9uJ3Qgc2VlIGl0IGFnYWluIGlu
IHRoZSBmdXR1cmU7CiAgICAgICAgICAgICAgICAgZGVsZXRlRmlsZShtX2NvbXBsZXRlRGF0YWJh
c2VQYXRoICsgIi1qb3VybmFsIik7CiAgICAgICAgICAgICAgICAgZGVsZXRlRmlsZShtX2NvbXBs
ZXRlRGF0YWJhc2VQYXRoKTsKQEAgLTEyMTUsNyArMTIxNSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAgICAgU3RyaW5nIGljb25VUkwgPSBxdWVyeS5nZXRD
b2x1bW5UZXh0KDEpOwogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJs
QW5kSWNvbkxvY2spOwogCiAgICAgICAgICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVjb3JkID0g
bV9wYWdlVVJMVG9SZWNvcmRNYXAuZ2V0KHBhZ2VVUkwpOwogICAgICAgICAgICAgCkBAIC0xMjQ4
LDcgKzEyNDgsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAg
ICAgIC8vIG9uZSBmb3IgdGhlIFVSTCBhbmQgb25lIGZvciB0aGUgSW1hZ2UgaXRzZWxmCiAgICAg
ICAgIC8vIE5vdGUgdGhhdCBXZWJJY29uRGF0YWJhc2UgaXMgbm90IG5lY2Nlc3NhcmlseSBBUEkg
c28gd2UgbWlnaHQgYmUgYWJsZSB0byBtYWtlIHRoaXMgY2hhbmdlCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAg
ICBpZiAobV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQuY29udGFpbnMocGFnZVVSTCkpIHsKICAgICAg
ICAgICAgICAgICBkaXNwYXRjaERpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMT25NYWluVGhyZWFk
KHBhZ2VVUkwpOwogICAgICAgICAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LnJlbW92
ZShwYWdlVVJMKTsKQEAgLTEyNzEsNyArMTI3MSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJm
b3JtVVJMSW1wb3J0KCkKICAgICAvLyBidXQgYWZ0ZXIgbV9pY29uVVJMSW1wb3J0Q29tcGxldGUg
aXMgc2V0IHRvIHRydWUsIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhpcyBzZXQgYW55bW9yZQogICAg
IFZlY3RvcjxTdHJpbmc+IHVybHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRp
bmdSZWFkaW5nTG9jayk7CiAKICAgICAgICAgdXJscy5hcHBlbmRSYW5nZShtX3BhZ2VVUkxzUGVu
ZGluZ0ltcG9ydC5iZWdpbigpLCBtX3BhZ2VVUkxzUGVuZGluZ0ltcG9ydC5lbmQoKSk7CiAgICAg
ICAgIG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LmNsZWFyKCk7ICAgICAgICAKQEAgLTEyODQsNyAr
MTI4NCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAvLyBS
ZW1vdmUgdW5yZXRhaW5lZCBvbmVzIGlmIGRhdGFiYXNlIGNsZWFudXAgaXMgYWxsb3dlZAogICAg
IC8vIEtlZXAgYSBzZXQgb2Ygb25lcyB0aGF0IGFyZSByZXRhaW5lZCBhbmQgcGVuZGluZyBub3Rp
ZmljYXRpb24KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAKICAg
ICAgICAgcGVyZm9ybVBlbmRpbmdSZXRhaW5BbmRSZWxlYXNlT3BlcmF0aW9ucygpOwogCkBAIC0x
MzAxLDEyICsxMzAxLDEyIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1faWNvblVSTFRvUmVjb3JkTWFwLnJlbW92ZShpY29u
UmVjb3JkLT5pY29uVVJMKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJbkljb25zLnJlbW92ZSh1cmxzW2ld
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcucmVt
b3ZlKGljb25SZWNvcmQpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1faWNvbnNQZW5kaW5nU3luYy5zZXQoaWNvblJlY29yZC0+aWNvblVSTCgpLCBpY29u
UmVjb3JkLT5zbmFwc2hvdCh0cnVlKSk7ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMTM3MSw3ICsxMzcxLDcg
QEAgdm9pZCBJY29uRGF0YWJhc2U6OnN5bmNUaHJlYWRNYWluTG9vcCgpCiAgICAgICAgICAgICBi
cmVhazsKIAogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxB
bmRJY29uTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKICAgICAgICAgICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlv
bnMoKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTE0NTEsNyArMTQ1MSw3IEBAIHZvaWQgSWNv
bkRhdGFiYXNlOjpwZXJmb3JtUGVuZGluZ1JldGFpbkEKICAgICBIYXNoQ291bnRlZFNldDxTdHJp
bmc+IHRvUmVsZWFzZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgcGVuZGluZ1dvcmtM
b2NrZXIobV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBw
ZW5kaW5nV29ya0xvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2spOwogICAgICAgICBp
ZiAoIW1fcmV0YWluT3JSZWxlYXNlSWNvblJlcXVlc3RlZCkKICAgICAgICAgICAgIHJldHVybjsK
IApAQCAtMTQ4OCw3ICsxNDg4LDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6OnJlYWRGcm9tRGF0YWJh
c2UoKQogICAgIC8vIFRoaXMgd2F5IHdlIHdvbid0IGhvbGQgdGhlIGxvY2sgZm9yIGEgbG9uZyBw
ZXJpb2Qgb2YgdGltZQogICAgIFZlY3RvcjxJY29uUmVjb3JkKj4gaWNvbnM7CiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgIGljb25zLmFw
cGVuZFJhbmdlKG1faWNvbnNQZW5kaW5nUmVhZGluZy5iZWdpbigpLCBtX2ljb25zUGVuZGluZ1Jl
YWRpbmcuZW5kKCkpOwogICAgIH0KICAgICAKQEAgLTE1MDEsOSArMTUwMSw5IEBAIGJvb2wgSWNv
bkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKCkKIAogICAgICAgICAvLyBWZXJpZnkgdGhpcyBp
Y29uIHN0aWxsIHdhbnRzIHRvIGJlIHJlYWQgZnJvbSBkaXNrCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIE11dGV4TG9ja2VyIHVybExvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgICAg
IExvY2tIb2xkZXIgdXJsTG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIHJlYWRMb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xv
Y2spOworICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgcmVhZExvY2tlcihtX3BlbmRpbmdSZWFk
aW5nTG9jayk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKG1faWNvbnNQ
ZW5kaW5nUmVhZGluZy5jb250YWlucyhpY29uc1tpXSkpIHsKICAgICAgICAgICAgICAgICAgICAg
Ly8gU2V0IHRoZSBuZXcgZGF0YQpAQCAtMTU5MSwxMSArMTU5MSwxMSBAQCBib29sIEljb25EYXRh
YmFzZTo6d3JpdGVUb0RhdGFiYXNlKCkKICAgICAvLyB3ZSdsbCBwaWNrIGl0IHVwIG9uIHRoZSBu
ZXh0IHBhc3MuICBUaGlzIGdyZWF0bHkgc2ltcGxpZmllcyB0aGUgbG9ja2luZyBzdHJhdGVneSBm
b3IgdGhpcyBtZXRob2QgYW5kIHJlbWFpbnMgY29oZXNpdmUgd2l0aCBjaGFuZ2VzCiAgICAgLy8g
YXNrZWQgZm9yIGJ5IHRoZSBkYXRhYmFzZSBvbiB0aGUgbWFpbiB0aHJlYWQKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgICAgIFZlY3RvcjxJY29uU25hcHNo
b3Q+IGljb25TbmFwc2hvdHM7CiAgICAgICAgIFZlY3RvcjxQYWdlVVJMU25hcHNob3Q+IHBhZ2VT
bmFwc2hvdHM7CiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Bl
bmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdT
eW5jTG9jayk7CiAKICAgICAgICAgICAgIGljb25TbmFwc2hvdHMuYXBwZW5kUmFuZ2UobV9pY29u
c1BlbmRpbmdTeW5jLmJlZ2luKCkudmFsdWVzKCksIG1faWNvbnNQZW5kaW5nU3luYy5lbmQoKS52
YWx1ZXMoKSk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1N5bmMuY2xlYXIoKTsKQEAgLTE2
NTgsNyArMTY1OCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwcnVuZVVucmV0YWluZWRJY29ucygK
ICAgICAKICAgICBpbnQgcmVzdWx0OwogICAgIHdoaWxlICgocmVzdWx0ID0gcGFnZVNRTC5zdGVw
KCkpID09IFNRTElURV9ST1cpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsK
ICAgICAgICAgaWYgKCFtX3BhZ2VVUkxUb1JlY29yZE1hcC5jb250YWlucyhwYWdlU1FMLmdldENv
bHVtblRleHQoMSkpKQogICAgICAgICAgICAgcGFnZUlEc1RvRGVsZXRlLmFwcGVuZChwYWdlU1FM
LmdldENvbHVtbkludDY0KDApKTsKICAgICB9CkBAIC0xNzkxLDcgKzE3OTEsNyBAQCB2b2lkKiBJ
Y29uRGF0YWJhc2U6OmNsZWFudXBTeW5jVGhyZWFkKCkKICAgICB3cml0ZVRvRGF0YWJhc2UoKTsK
ICAgICAKICAgICAvLyBDbG9zZSB0aGUgZGF0YWJhc2UKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zeW5jTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgCiAg
ICAgbV9kYXRhYmFzZURpcmVjdG9yeSA9IFN0cmluZygpOwogICAgIG1fY29tcGxldGVEYXRhYmFz
ZVBhdGggPSBTdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2lmIEVO
QUJMRShJQ09OREFUQUJBU0UpCiAjaW5jbHVkZSAiU1FMaXRlRGF0YWJhc2UuaCIKICNpbmNsdWRl
ICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFz
aENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CkBAIC0xNDEsOCArMTQyLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNFbmFi
bGVkOwogICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkOwogCi0gICAgbXV0YWJsZSBN
dXRleCBtX3N5bmNMb2NrOwotICAgIFRocmVhZENvbmRpdGlvbiBtX3N5bmNDb25kaXRpb247Cisg
ICAgbXV0YWJsZSBMb2NrIG1fc3luY0xvY2s7CisgICAgQ29uZGl0aW9uIG1fc3luY0NvbmRpdGlv
bjsKICAgICBTdHJpbmcgbV9kYXRhYmFzZURpcmVjdG9yeTsKICAgICAvLyBIb2xkaW5nIG1fc3lu
Y0xvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9jb21wbGV0ZURhdGFiYXNlUGF0aAog
ICAgIFN0cmluZyBtX2NvbXBsZXRlRGF0YWJhc2VQYXRoOwpAQCAtMTUzLDI0ICsxNTQsMjQgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fc3luY1RocmVhZEhhc1dvcmtUb0RvOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxTdWRkZW5UZXJtaW5hdGlvbkRpc2FibGVyPiBtX2Rpc2FibGVTdWRkZW5UZXJtaW5h
dGlvbldoaWxlU3luY1RocmVhZEhhc1dvcmtUb0RvOwogCi0gICAgTXV0ZXggbV91cmxBbmRJY29u
TG9jazsKKyAgICBMb2NrIG1fdXJsQW5kSWNvbkxvY2s7CiAgICAgLy8gSG9sZGluZyBtX3VybEFu
ZEljb25Mb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUgZm9sbG93aW5n
IGRhdGEgc3RydWN0dXJlcyBvciB0aGUgb2JqZWN0cyB0aGV5IGNvbnRhaW4KICAgICBIYXNoTWFw
PFN0cmluZywgSWNvblJlY29yZCo+IG1faWNvblVSTFRvUmVjb3JkTWFwOwogICAgIEhhc2hNYXA8
U3RyaW5nLCBQYWdlVVJMUmVjb3JkKj4gbV9wYWdlVVJMVG9SZWNvcmRNYXA7CiAgICAgSGFzaFNl
dDxTdHJpbmc+IG1fcmV0YWluZWRQYWdlVVJMczsKIAotICAgIE11dGV4IG1fcGVuZGluZ1N5bmNM
b2NrOworICAgIExvY2sgbV9wZW5kaW5nU3luY0xvY2s7CiAgICAgLy8gSG9sZGluZyBtX3BlbmRp
bmdTeW5jTG9jayBpcyByZXF1aXJlZCB3aGVuIGFjY2Vzc2luZyBhbnkgb2YgdGhlIGZvbGxvd2lu
ZyBkYXRhIHN0cnVjdHVyZXMKICAgICBIYXNoTWFwPFN0cmluZywgUGFnZVVSTFNuYXBzaG90PiBt
X3BhZ2VVUkxzUGVuZGluZ1N5bmM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIEljb25TbmFwc2hvdD4g
bV9pY29uc1BlbmRpbmdTeW5jOwogICAgIAotICAgIE11dGV4IG1fcGVuZGluZ1JlYWRpbmdMb2Nr
OyAgICAKKyAgICBMb2NrIG1fcGVuZGluZ1JlYWRpbmdMb2NrOyAgICAKICAgICAvLyBIb2xkaW5n
IG1fcGVuZGluZ1N5bmNMb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUg
Zm9sbG93aW5nIGRhdGEgc3RydWN0dXJlcyAtIHdoZW4gZGVhbGluZyB3aXRoIEljb25SZWNvcmQq
cywgaG9sZGluZyBtX3VybEFuZEljb25Mb2NrIGlzIGFsc28gcmVxdWlyZWQKICAgICBIYXNoU2V0
PFN0cmluZz4gbV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQ7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1f
cGFnZVVSTHNJbnRlcmVzdGVkSW5JY29uczsKICAgICBIYXNoU2V0PEljb25SZWNvcmQqPiBtX2lj
b25zUGVuZGluZ1JlYWRpbmc7CiAKLSAgICBNdXRleCBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2s7CisgICAgTG9jayBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2s7CiAgICAgLy8gSG9sZGlu
ZyBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3Npbmcg
YW55IG9mIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzLgogICAgIEhhc2hDb3VudGVkU2V0
PFN0cmluZz4gbV91cmxzVG9SZXRhaW47CiAgICAgSGFzaENvdW50ZWRTZXQ8U3RyaW5nPiBtX3Vy
bHNUb1JlbGVhc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5
LDcgQEAgU2Nyb2xsaW5nVHJlZTo6flNjcm9sbGluZ1RyZWUoKQogYm9vbCBTY3JvbGxpbmdUcmVl
OjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseShjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgLy8gVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0
aGUgZXZlbnQgaGFuZGxpbmcgdGhyZWFkCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAKICAgICBib29sIHNob3VsZFNldExhdGNo
ID0gd2hlZWxFdmVudC5zaG91bGRDb25zaWRlckxhdGNoaW5nKCk7CiAgICAgCkBAIC0xMTUsNyAr
MTE1LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3RhdGUocwogICAgICAg
ICAmJiAocm9vdFN0YXRlTm9kZUNoYW5nZWQKICAgICAgICAgICAgIHx8IHJvb3ROb2RlLT5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6Ok5vbkZhc3RT
Y3JvbGxhYmxlUmVnaW9uKQogICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlNjcm9sbExheWVyKSkpIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwog
CiAgICAgICAgIGlmIChyb290U3RhdGVOb2RlQ2hhbmdlZCB8fCByb290Tm9kZS0+aGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5ZXIpKQogICAgICAgICAgICAg
bV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IEZsb2F0UG9pbnQoKTsKQEAgLTIwOCw3ICsyMDgs
NyBAQCBTY3JvbGxpbmdUcmVlTm9kZSogU2Nyb2xsaW5nVHJlZTo6bm9kZUZvCiAKIHZvaWQgU2Ny
b2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQsIGJv
b2wgcGlubmVkVG9UaGVSaWdodCwgYm9vbCBwaW5uZWRUb1RoZVRvcCwgYm9vbCBwaW5uZWRUb1Ro
ZUJvdHRvbSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIG1fbWFpbkZy
YW1lUGlubmVkVG9UaGVMZWZ0ID0gcGlubmVkVG9UaGVMZWZ0OwogICAgIG1fbWFpbkZyYW1lUGlu
bmVkVG9UaGVSaWdodCA9IHBpbm5lZFRvVGhlUmlnaHQ7CkBAIC0yMTgsNTQgKzIxOCw1NCBAQCB2
b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlCiAKIEZsb2F0UG9pbnQgU2Ny
b2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIHJldHVy
biBtX21haW5GcmFtZVNjcm9sbFBvc2l0aW9uOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNl
dE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQgcG9zaXRpb24pCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAg
ICAgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IHBvc2l0aW9uOwogfQogCiBib29sIFNjcm9s
bGluZ1RyZWU6OmlzUG9pbnRJbk5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKEludFBvaW50IHApCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9t
dXRleCk7CiAgICAgCiAgICAgcmV0dXJuIG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb24uY29udGFp
bnMocCk7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsgICAgCisgICAgTG9ja0hvbGRlciBs
b2NrKG1fbXV0ZXgpOyAgICAKIAogICAgIHJldHVybiBtX21haW5GcmFtZUlzUnViYmVyQmFuZGlu
ZzsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmco
Ym9vbCBpc1J1YmJlckJhbmRpbmcpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgbV9tYWluRnJhbWVJc1J1
YmJlckJhbmRpbmcgPSBpc1J1YmJlckJhbmRpbmc7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6
aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgCiAgICAgcmV0dXJuIG1fbWFp
bkZyYW1lSXNTY3JvbGxTbmFwcGluZzsKIH0KICAgICAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0
TWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyhib29sIGlzU2Nyb2xsU25hcHBpbmcpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0
ZXgpOwogICAgIAogICAgIG1fbWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyA9IGlzU2Nyb2xsU25h
cHBpbmc7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0Q2FuUnViYmVyQmFuZFN0YXRlKGJv
b2wgY2FuUnViYmVyQmFuZEF0TGVmdCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgYm9vbCBj
YW5SdWJiZXJCYW5kQXRUb3AsIGJvb2wgY2FuUnViYmVyQmFuZEF0Qm90dG9tKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgbV9ydWJiZXJCYW5kc0F0TGVmdCA9IGNhblJ1
YmJlckJhbmRBdExlZnQ7CiAgICAgbV9ydWJiZXJCYW5kc0F0UmlnaHQgPSBjYW5SdWJiZXJCYW5k
QXRSaWdodDsKQEAgLTI3NSwyOCArMjc1LDI4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0Q2Fu
UnViYmVyQmFuZFN0YXQKIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVmdCgp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRz
QXRMZWZ0OwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRSaWdodCgpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRl
ciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRzQXRS
aWdodDsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0Qm90dG9tKCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJv
dHRvbTsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdFRvcDsK
IH0KQEAgLTMwOCwxNCArMzA4LDE0IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNIYW5kbGluZ1By
b2dyYW1tYXQKIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3Io
U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHBpbm5pbmcpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N3aXBlU3RhdGVN
dXRleCk7CiAgICAgCiAgICAgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBwaW5uaW5nOwogfQog
CiBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsUGlubmluZ0JlaGF2
aW9yKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogICAgIAogICAgIHJldHVybiBtX3Nj
cm9sbFBpbm5pbmdCZWhhdmlvcjsKIH0KQEAgLTMyNSw3ICszMjUsNyBAQCBib29sIFNjcm9sbGlu
Z1RyZWU6OndpbGxXaGVlbEV2ZW50U3RhcnRTCiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSAh
PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFYKCkg
PiAwICYmIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0ICYmICFtX3J1YmJlckJhbmRzQXRMZWZ0
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTM1MSwxOSArMzUxLDE5IEBAIGJvb2wgU2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nUGVyZm9ybWFuY2UKIAogU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGlu
Z1RyZWU6OmxhdGNoZWROb2RlKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fbGF0Y2hlZE5v
ZGU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TGF0Y2hlZE5vZGUoU2Nyb2xsaW5nTm9k
ZUlEIG5vZGUpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIG1fbGF0Y2hlZE5vZGUgPSBub2RlOwogfQogCiB2
b2lkIFNjcm9sbGluZ1RyZWU6OmNsZWFyTGF0Y2hlZE5vZGUoKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICBt
X2xhdGNoZWROb2RlID0gMDsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJX
aGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBAIC0xNjAsMTEgKzE2MSwxMSBAQCBwcml2YXRl
OgogICAgIHR5cGVkZWYgSGFzaE1hcDxTY3JvbGxpbmdOb2RlSUQsIFNjcm9sbGluZ1RyZWVOb2Rl
Kj4gU2Nyb2xsaW5nVHJlZU5vZGVNYXA7CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGVNYXAgbV9ub2Rl
TWFwOwogCi0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAgICAgUmVnaW9u
IG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb247CiAgICAgRmxvYXRQb2ludCBtX21haW5GcmFtZVNj
cm9sbFBvc2l0aW9uOwogCi0gICAgTXV0ZXggbV9zd2lwZVN0YXRlTXV0ZXg7CisgICAgTG9jayBt
X3N3aXBlU3RhdGVNdXRleDsKICAgICBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5u
aW5nQmVoYXZpb3IgeyBEb05vdFBpbiB9OwogICAgIFNjcm9sbGluZ05vZGVJRCBtX2xhdGNoZWRO
b2RlIHsgMCB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4K
ICNlbGlmIE9TKExJTlVYKQogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0xMzcsNyArMTM4LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fY2xlYXJQcmVzc3VyZU9uTWVtb3J5UmVsZWFzZTsKICAgICB2
b2lkIChebV9yZWxlYXNlTWVtb3J5QmxvY2spKCk7CiAgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYg
bV9vYnNlcnZlcjsKLSAgICBNdXRleCBtX29ic2VydmVyTXV0ZXg7CisgICAgTG9jayBtX29ic2Vy
dmVyTXV0ZXg7CiAjZWxpZiBPUyhMSU5VWCkKICAgICBpbnQgbV9ldmVudEZEOwogICAgIGludCBt
X3ByZXNzdXJlTGV2ZWxGRDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZEYXRhYmFzZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgSFJURkRhdGFiYXNlTG9hZGVyOjpsb2Fk
QXN5bmNocm9ub3UKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdGhyZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aHJl
YWRMb2NrKTsKICAgICAKICAgICBpZiAoIW1faHJ0ZkRhdGFiYXNlLmdldCgpICYmICFtX2RhdGFi
YXNlTG9hZGVyVGhyZWFkKSB7CiAgICAgICAgIC8vIFN0YXJ0IHRoZSBhc3luY2hyb25vdXMgZGF0
YWJhc2UgbG9hZGluZyBwcm9jZXNzLgpAQCAtMTE3LDcgKzExNyw3IEBAIGJvb2wgSFJURkRhdGFi
YXNlTG9hZGVyOjppc0xvYWRlZCgpIGNvbnMKIAogdm9pZCBIUlRGRGF0YWJhc2VMb2FkZXI6Ondh
aXRGb3JMb2FkZXJUaHJlYWRDb21wbGV0aW9uKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90aHJlYWRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RocmVhZExvY2spOwogICAg
IAogICAgIC8vIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQg
dHdpY2UgZm9yIHRoZSBzYW1lIHRocmVhZC4KICAgICBpZiAobV9kYXRhYmFzZUxvYWRlclRocmVh
ZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRh
YmFzZUxvYWRlci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KQEAgLTc2LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8SFJURkRhdGFiYXNlPiBtX2hydGZEYXRhYmFzZTsKIAogICAgIC8vIEhvbGRpbmcgYSBtX3Ro
cmVhZExvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9kYXRhYmFzZUxvYWRlclRocmVh
ZC4KLSAgICBNdXRleCBtX3RocmVhZExvY2s7CisgICAgTG9jayBtX3RocmVhZExvY2s7CiAgICAg
VGhyZWFkSWRlbnRpZmllciBtX2RhdGFiYXNlTG9hZGVyVGhyZWFkOwogCiAgICAgZmxvYXQgbV9k
YXRhYmFzZVNhbXBsZVJhdGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQkocmV2aXNpb24g
MTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIE1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0UmVjZWl2ZWRNCiAgICAgbV91bmRlck1lbW9yeVByZXNz
dXJlID0gdHJ1ZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2JzZXJ2
ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CiAg
ICAgICAgIGlmICghbV9vYnNlcnZlcikgewogICAgICAgICAgICAgbV9vYnNlcnZlciA9IENGUnVu
TG9vcE9ic2VydmVyQ3JlYXRlKE5VTEwsIGtDRlJ1bkxvb3BCZWZvcmVXYWl0aW5nIHwga0NGUnVu
TG9vcEV4aXQsIE5PIC8qIGRvbid0IHJlcGVhdCAqLywKICAgICAgICAgICAgICAgICAwLCBXZWJD
b3JlOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUNhbGxiYWNrLCBOVUxMKTsKQEAgLTI3MiwxNCAr
MjcyLDE0IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpjbGVhck1lbW9yeVAKICAgICBt
X3VuZGVyTWVtb3J5UHJlc3N1cmUgPSBmYWxzZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
b2JzZXJ2ZXJNdXRleCk7CiAgICAgICAgIG1fbWVtb3J5UHJlc3N1cmVSZWFzb24gPSBNZW1vcnlQ
cmVzc3VyZVJlYXNvbk5vbmU7CiAgICAgfQogfQogCiBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6c2hvdWxkV2FpdEZvck1lbW9yeUNsZWFyTWVzc2FnZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vYnNlcnZl
ck11dGV4KTsKICAgICByZXR1cm4gbV9tZW1vcnlQcmVzc3VyZVJlYXNvbiAmIE1lbW9yeVByZXNz
dXJlUmVhc29uVk1TdGF0dXM7CiB9CiAKQEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtCiAgICAgQVNTRVJUKFdlYlRocmVhZElzTG9ja2Vk
T3JEaXNhYmxlZCgpKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2Jz
ZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7
CiAgICAgICAgIG1fb2JzZXJ2ZXIgPSAwOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3Iu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmUKICAgICBkb3VibGUg
bW9ub3RvbmljQW5pbWF0aW9uU3RhcnRUaW1lOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAg
ICAgIGlmICghbV9zY2hlZHVsZWQpCiAgICAgICAgICAgICArK21fdW5zY2hlZHVsZWRGaXJlQ291
bnQ7CiAgICAgICAgIGVsc2UKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIERpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlzcGxheURpZFJlCiAgICAgICAgIG1fY2xpZW50c1RvQmVOb3RpZmllZCA9IG51
bGxwdHI7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9wcmV2aW91c0ZyYW1lRG9u
ZSA9IHRydWU7CiAgICAgfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw5ICszMCw5IEBACiAKICNp
bmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1vbm90
b25pY0FuaW1hdGlvblN0YXJ0VGltZShkb3VibGUgc3RhcnRUaW1lKSB7IG1fbW9ub3RvbmljQW5p
bWF0aW9uU3RhcnRUaW1lID0gc3RhcnRUaW1lOyB9CiAKLSAgICBNdXRleCYgbXV0ZXgoKSB7IHJl
dHVybiBtX211dGV4OyB9CisgICAgTG9jayYgbXV0ZXgoKSB7IHJldHVybiBtX211dGV4OyB9CiAK
ICAgICBzdGF0aWMgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGVmYXVsdERp
c3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTg5LDcgKzg5LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcHJldmlvdXNGcmFtZURvbmU7CiAgICAgaW50IG1fdW5z
Y2hlZHVsZWRGaXJlQ291bnQ7IC8vIE51bWJlciBvZiB0aW1lcyB0aGUgZGlzcGxheSBsaW5rIGhh
cyBmaXJlZCB3aXRoIG5vIGNsaWVudHMuCiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNwbGF5
SUQ7Ci0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAKICAgICBIYXNoU2V0
PERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+IG1fY2xpZW50czsKICAgICBIYXNoU2V0PERp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+KiBtX2NsaWVudHNUb0JlTm90aWZpZWQ7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTczNSw3ICs3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6c2V0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpz
ZXREZWxheUNhbGxiYWNrcyhib29sIGRlbGF5KSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKICAg
ICBpZiAoZGVsYXkpCiAgICAgICAgICsrbV9kZWxheUNhbGxiYWNrczsKICAgICBlbHNlIHsKQEAg
LTc1NCw3ICs3NTQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bWFp
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1haW5UaHJlYWRQ
ZW5kaW5nRmxhZygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgIG1fbWFpblRocmVhZENhbGxQZW5k
aW5nID0gZmFsc2U7CiB9CiAKQEAgLTgyMCw3ICs4MjAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6ZGlzCiAKICAgICBOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uID0g
Tm90aWZpY2F0aW9uKCk7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVN
dXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgICAgICAK
ICAgICAgICAgaWYgKG1fcXVldWVkTm90aWZpY2F0aW9ucy5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiVGltZXIu
aCIKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIApAQCAtMzE3LDcgKzMxOCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IG1fcGVuZGluZ1NlZWs7CiAKICAgICBWZWN0b3I8Tm90aWZpY2F0aW9u
PiBtX3F1ZXVlZE5vdGlmaWNhdGlvbnM7Ci0gICAgbXV0YWJsZSBNdXRleCBtX3F1ZXVlTXV0ZXg7
CisgICAgbXV0YWJsZSBMb2NrIG1fcXVldWVNdXRleDsKIAogICAgIG11dGFibGUgc3RkOjp1bmlx
dWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gbV9jYWNoZWRMb2FkZWRUaW1lUmFuZ2VzOwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw3ICsxNTgsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIGlubGluZSB2b2lkKiBjYWxsYmFja0NvbnRleHQoKSBjb25zdCB7IHJl
dHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPihtX29iamVjdElEKTsgfQogCi0gICAgc3RhdGlj
IE11dGV4JiBtYXBMb2NrKCk7CisgICAgc3RhdGljIExvY2smIG1hcExvY2soKTsKICAgICBzdGF0
aWMgSGFzaE1hcDx1aW50cHRyX3QsIEFWRldyYXBwZXIqPiYgbWFwKCk7CiAgICAgc3RhdGljIEFW
RldyYXBwZXIqIGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQodm9pZCopOwogICAgIHZvaWQg
YWRkVG9NYXAoKTsKQEAgLTE0MDQsOSArMTQwNCw5IEBAIEFWRldyYXBwZXI6On5BVkZXcmFwcGVy
KCkKICAgICBtX2F2UGxheWVyID0gMDsKIH0KIAotTXV0ZXgmIEFWRldyYXBwZXI6Om1hcExvY2so
KQorTG9jayYgQVZGV3JhcHBlcjo6bWFwTG9jaygpCiB7Ci0gICAgc3RhdGljIE11dGV4IG1hcExv
Y2s7CisgICAgc3RhdGljIExvY2sgbWFwTG9jazsKICAgICByZXR1cm4gbWFwTG9jazsKIH0KIApA
QCAtMTQxOCw3ICsxNDE4LDcgQEAgSGFzaE1hcDx1aW50cHRyX3QsIEFWRldyYXBwZXIqPiYgQVZG
V3JhcAogCiB2b2lkIEFWRldyYXBwZXI6OmFkZFRvTWFwKCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAg
IAogICAgIC8vIEhhc2hNYXAgZG9lc24ndCBsaWtlIGEga2V5IG9mIDAsIGFuZCBhbHNvIG1ha2Ug
c3VyZSB3ZSBhcmVuJ3QKICAgICAvLyB1c2luZyBhbiBvYmplY3QgSUQgdGhhdCdzIGFscmVhZHkg
aW4gdXNlLgpAQCAtMTQzNCw3ICsxNDM0LDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpyZW1vdmVGcm9t
TWFwKCkgY29uc3QKIHsKICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpyZW1vdmVGcm9tTWFw
KCVwICVkKSIsIHRoaXMsIG1fb2JqZWN0SUQpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1h
cExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBtYXAoKS5y
ZW1vdmUobV9vYmplY3RJRCk7CiB9CiAKQEAgLTE2MzUsNyArMTYzNSw3IEBAIHZvaWQgQVZGV3Jh
cHBlcjo6Y3JlYXRlUGxheWVySXRlbSgpCiAKIHZvaWQgQVZGV3JhcHBlcjo6cGVyaW9kaWNUaW1l
T2JzZXJ2ZXJDYWxsYmFjayhBVkNGUGxheWVyUmVmLCBDTVRpbWUgY21UaW1lLCB2b2lkKiBjb250
ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJG
b3JDYWxsYmFja0NvbnRleHQoY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExP
RyhNZWRpYSwgIkFWRldyYXBwZXI6OnBlcmlvZGljVGltZU9ic2VydmVyQ2FsbGJhY2sgaW52b2tl
ZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KGNvbnRleHQpKTsKQEAgLTE2NjYsNyArMTY2Niw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vz
c05vdGlmaWNhdGlvbih2b2kKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxOb3RpZmljYXRpb25DYWxs
YmFja0RhdGE+IG5vdGlmaWNhdGlvbkRhdGEgeyBzdGF0aWNfY2FzdDxOb3RpZmljYXRpb25DYWxs
YmFja0RhdGEqPihjb250ZXh0KSB9OwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2so
KSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBz
ZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChub3RpZmljYXRpb25EYXRhLT5tX2Nv
bnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVy
Ojpwcm9jZXNzTm90aWZpY2F0aW9uIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xNzIxLDcgKzE3MjEs
NyBAQCB2b2lkIEFWRldyYXBwZXI6Om5vdGlmaWNhdGlvbkNhbGxiYWNrKENGCiAKIHZvaWQgQVZG
V3JhcHBlcjo6bG9hZFBsYXlhYmxlQ29tcGxldGlvbkNhbGxiYWNrKEFWQ0ZBc3NldFJlZiwgdm9p
ZCogY29udGV4dCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZX
cmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAg
ICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpsb2FkUGxheWFibGVDb21wbGV0aW9uQ2FsbGJh
Y2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE3NDksNyArMTc0OSw3IEBAIHZvaWQgQVZGV3JhcHBl
cjo6Y2hlY2tQbGF5YWJpbGl0eSgpCiAKIHZvaWQgQVZGV3JhcHBlcjo6bG9hZE1ldGFkYXRhQ29t
cGxldGlvbkNhbGxiYWNrKEFWQ0ZBc3NldFJlZiwgdm9pZCogY29udGV4dCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2Nr
KCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0
KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFw
cGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBB
VkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAg
LTE3NjksNyArMTc2OSw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6YmVnaW5Mb2FkaW5nTWV0YWRhdGEo
KQogCiB2b2lkIEFWRldyYXBwZXI6OnNlZWtDb21wbGV0ZWRDYWxsYmFjayhBVkNGUGxheWVySXRl
bVJlZiwgQm9vbGVhbiBmaW5pc2hlZCwgdm9pZCogY29udGV4dCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwog
ICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRl
eHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpz
ZWVrQ29tcGxldGVkQ2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwg
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4MTIsNyArMTgxMiw3
IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc0N1ZSh2b2lkKiBjb250ZXgKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxMZWdpYmxlT3V0cHV0RGF0YT4gbGVnaWJsZU91dHB1dERhdGEocmVpbnRlcnBy
ZXRfY2FzdDxMZWdpYmxlT3V0cHV0RGF0YSo+KGNvbnRleHQpKTsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAg
ICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQobGVnaWJs
ZU91dHB1dERhdGEtPm1fY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExPRyhN
ZWRpYSwgIkFWRldyYXBwZXI6OnByb2Nlc3NDdWUgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFw
cGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4Mjgs
NyArMTgyOCw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc0N1ZSh2b2lkKiBjb250ZXgKIHZv
aWQgQVZGV3JhcHBlcjo6bGVnaWJsZU91dHB1dENhbGxiYWNrKHZvaWQqIGNvbnRleHQsIEFWQ0ZQ
bGF5ZXJJdGVtTGVnaWJsZU91dHB1dFJlZiBsZWdpYmxlT3V0cHV0LCBDRkFycmF5UmVmIGF0dHJp
YnV0ZWRTdHJpbmdzLCBDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZUJ1ZmZlcnMsIENNVGltZSBpdGVt
VGltZSkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAg
IEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRleHQp
OwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpsZWdp
YmxlT3V0cHV0Q2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4NjYsNyArMTg2Niw3IEBA
IHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc1Nob3VsZFdhaXRGb3JMb2EKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxMb2FkUmVxdWVzdERhdGE+IGxvYWRSZXF1ZXN0RGF0YShyZWludGVycHJldF9jYXN0
PExvYWRSZXF1ZXN0RGF0YSo+KGNvbnRleHQpKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
YXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3Jh
cHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQobG9hZFJlcXVlc3REYXRh
LT5tX2NvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZX
cmFwcGVyOjpwcm9jZXNzU2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlc291cmNlIGludm9rZWQgZm9y
IGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250
ZXh0KSk7CkBAIC0xOTIyLDcgKzE5MjIsNyBAQCBib29sIEFWRldyYXBwZXI6OnNob3VsZFdhaXRG
b3JMb2FkaW5nT2ZSCiBCb29sZWFuIEFWRldyYXBwZXI6OnJlc291cmNlTG9hZGVyU2hvdWxkV2Fp
dEZvckxvYWRpbmdPZlJlcXVlc3RlZFJlc291cmNlKEFWQ0ZBc3NldFJlc291cmNlTG9hZGVyUmVm
IHJlc291cmNlTG9hZGVyLCBBVkNGQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0UmVmIGxvYWRp
bmdSZXF1ZXN0LCB2b2lkICpjb250ZXh0KQogewogICAgIEFTU0VSVChkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpICE9IGRpc3BhdGNoX2dldF9jdXJyZW50X3F1ZXVlKCkpOwotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7
CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQoY29u
dGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6
OnJlc291cmNlTG9hZGVyU2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlcXVlc3RlZFJlc291cmNlIGlu
dm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihjb250ZXh0KSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpoYQogewogICAgIG1fc2FtcGxlVGltZXJIYW5kbGVy
LmNhbmNlbCgpOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3NhbXBsZU11dGV4
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fc2FtcGxlTXV0ZXgpOwogICAgICAgICBtX3Bl
bmRpbmdTYW1wbGVzLmFwcGVuZChzYW1wbGUpOwogICAgIH0KICAgICBtX3NhbXBsZVRpbWVySGFu
ZGxlci5zY2hlZHVsZSgiW1dlYktpdF0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6
bm90aWZ5VHJhY2tPZlNhbXBsZSIsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPihzdGQ6OmJpbmQoJklu
YmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTYW1wbGUsIHRoaXMp
KSk7CkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1l
cjo6bm8KIHsKICAgICBWZWN0b3I8R1JlZlB0cjxHc3RTYW1wbGU+ID4gc2FtcGxlczsKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9zYW1wbGVNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKICAgICAgICAgbV9wZW5kaW5nU2FtcGxlcy5zd2Fw
KHNhbXBsZXMpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiR1Jl
ZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUuaCIKICNp
bmNsdWRlICJUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgiCisjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY3LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBndWxvbmcg
bV9ldmVudFByb2JlOwogICAgIFZlY3RvcjxHUmVmUHRyPEdzdFNhbXBsZT4gPiBtX3BlbmRpbmdT
YW1wbGVzOwogICAgIFN0cmluZyBtX3N0cmVhbUlkOwotICAgIE11dGV4IG1fc2FtcGxlTXV0ZXg7
CisgICAgTG9jayBtX3NhbXBsZU11dGV4OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIs
NyArMTAyLDcgQEAgdm9pZCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjp0YWdzQ2hhbgogICAg
IEdSZWZQdHI8R3N0VGFnTGlzdD4gdGFnczsKICAgICBnX29iamVjdF9nZXQobV9wYWQuZ2V0KCks
ICJ0YWdzIiwgJnRhZ3Mub3V0UHRyKCksIE5VTEwpOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtX3RhZ011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fdGFnTXV0ZXgp
OwogICAgICAgICBtX3RhZ3Muc3dhcCh0YWdzKTsKICAgICB9CiAKQEAgLTE1OCw3ICsxNTgsNyBA
QCB2b2lkIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyCiAKICAgICBHUmVmUHRy
PEdzdFRhZ0xpc3Q+IHRhZ3M7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fdGFn
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90YWdNdXRleCk7CiAgICAgICAgIHRh
Z3Muc3dhcChtX3RhZ3MpOwogICAgIH0KICAgICBpZiAoIXRhZ3MpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNl
R1N0cmVhbWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUo
VklERU8pICYmIFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShWSURFT19UUkFDSykKIAogI2luY2x1
ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1RocmVhZFNh
ZmVNYWluTG9vcFNvdXJjZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAt
NzMsNyArNzQsNyBAQCBwcml2YXRlOgogICAgIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UgbV9h
Y3RpdmVUaW1lckhhbmRsZXI7CiAgICAgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSBtX3RhZ1Rp
bWVySGFuZGxlcjsKIAotICAgIE11dGV4IG1fdGFnTXV0ZXg7CisgICAgTG9jayBtX3RhZ011dGV4
OwogICAgIEdSZWZQdHI8R3N0VGFnTGlzdD4gbV90YWdzOwogfTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NCwxNCArODQsMTQgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OnJlcXVlc3RSZQogICAgICAgICBzZXRJc0FjdGl2ZSh0cnVlKTsKICAgICB9CiAKLSAg
ICBNdXRleExvY2tlciBsb2NrKG11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgp
KTsKICAgICBzZXRJc1NjaGVkdWxlZCh0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9p
ZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQoZG91YmxlIG5vd1Nl
Y29uZHMsIGRvdWJsZSBvdXRwdXRUaW1lU2Vjb25kcykKIHsKLSAgICBNdXRleExvY2tlciBsb2Nr
KG11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgpKTsKICAgICBpZiAoIWlzUHJl
dmlvdXNGcmFtZURvbmUoKSkKICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxMiwyMSArNTEyLDIxIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjoKIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmFkZExpc3RlbmVyKE1lZGlhUGxheWVyTGlzdGVu
ZXIqIGxpc3RlbmVyKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4TGlzdGVuZXJz
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4TGlzdGVuZXJzKTsKIAogICAgIG1fbGlz
dGVuZXJzLmFkZChsaXN0ZW5lcik7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uOjpyZW1vdmVMaXN0ZW5lcihNZWRpYVBsYXllckxpc3RlbmVyKiBsaXN0ZW5lcikK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7CiAKICAgICBtX2xpc3RlbmVycy5yZW1vdmUo
bGlzdGVuZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6
bm90aWZ5RGVsZXRlZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5l
cnMpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5lcnMpOwogCiAgICAgZm9y
IChIYXNoU2V0PE1lZGlhUGxheWVyTGlzdGVuZXIqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2xp
c3RlbmVycy5iZWdpbigpOyBpdCAhPSBtX2xpc3RlbmVycy5lbmQoKTsgKytpdCkKICAgICAgICAg
KCppdCktPm9uTWVkaWFQbGF5ZXJEZWxldGVkKCk7CkBAIC03MDQsNyArNzA0LDcgQEAgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBNZWRpYVBsYXllclByaQogCiBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6QXN5bmNDYWxsYmFjazo6
SW52b2tlKF9fUlBDX19pbl9vcHQgSU1GQXN5bmNSZXN1bHQgKnBBc3luY1Jlc3VsdCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9t
dXRleCk7CiAKICAgICBpZiAoIW1fbWVkaWFQbGF5ZXIpCiAgICAgICAgIHJldHVybiBTX09LOwpA
QCAtNzE5LDcgKzcxOSw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgTWVkaWFQbGF5ZXJQ
cmkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJh
Y2s6Om9uTWVkaWFQbGF5ZXJEZWxldGVkKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBtX21lZGlhUGxh
eWVyID0gbnVsbHB0cjsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgTWVkaWFQ
bGF5ZXJMaXN0ZW5lcjsKICAgICBIYXNoU2V0PE1lZGlhUGxheWVyTGlzdGVuZXIqPiBtX2xpc3Rl
bmVyczsKLSAgICBNdXRleCBtX211dGV4TGlzdGVuZXJzOworICAgIExvY2sgbV9tdXRleExpc3Rl
bmVyczsKIAogICAgIENPTVB0cjxJTUZNZWRpYVNlc3Npb24+IG1fbWVkaWFTZXNzaW9uOwogICAg
IENPTVB0cjxJTUZTb3VyY2VSZXNvbHZlcj4gbV9zb3VyY2VSZXNvbHZlcjsKQEAgLTE0OSw3ICsx
NDksNyBAQCBwcml2YXRlOgogICAgICAgICBVTE9ORyBtX3JlZkNvdW50OwogICAgICAgICBNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24qIG1fbWVkaWFQbGF5ZXI7CiAgICAgICAgIGJv
b2wgbV9ldmVudDsKLSAgICAgICAgTXV0ZXggbV9tdXRleDsKKyAgICAgICAgTG9jayBtX211dGV4
OwogICAgIH07CiAKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5
VGlsZUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xl
Z2FjeVRpbGVDYWNoZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgpAQCAtMjExLDkgKzIxMiw5IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9wZW5kaW5nU2Nh
bGU7CiAgICAgZmxvYXQgbV9wZW5kaW5nWm9vbWVkT3V0U2NhbGU7CiAKLSAgICBtdXRhYmxlIE11
dGV4IG1fdGlsZU11dGV4OwotICAgIG11dGFibGUgTXV0ZXggbV9zYXZlZERpc3BsYXlSZWN0TXV0
ZXg7Ci0gICAgbXV0YWJsZSBNdXRleCBtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdlTXV0ZXg7Cisg
ICAgbXV0YWJsZSBMb2NrIG1fdGlsZU11dGV4OworICAgIG11dGFibGUgTG9jayBtX3NhdmVkRGlz
cGxheVJlY3RNdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9jb250ZW50UmVwbGFjZW1lbnRJbWFn
ZU11dGV4OwogCiAgICAgYm9vbCBtX3RpbGVDb250cm9sbGVyU2hvdWxkVXNlTG93U2NhbGVUaWxl
czsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hl
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxl
Q2FjaGUubW0JKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9MZWdhY3lUaWxlQ2FjaGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2
b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0VGlsZXNPcGFxdWUoYm9vCiAgICAgaWYgKG1fdGlsZXNP
cGFxdWUgPT0gb3BhcXVlKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKIAog
ICAgIG1fdGlsZXNPcGFxdWUgPSBvcGFxdWU7CiAgICAgbV96b29tZWRPdXRUaWxlR3JpZC0+dXBk
YXRlVGlsZU9wYWNpdHkoKTsKQEAgLTE2MCw3ICsxNjAsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNo
ZTo6ZG9MYXlvdXRUaWxlcygpCiAgICAgaWYgKGlzVGlsZUNyZWF0aW9uU3VzcGVuZGVkKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIExlZ2FjeVRpbGVHcmlkKiBh
Y3RpdmVHcmlkID0gYWN0aXZlVGlsZUdyaWQoKTsKICAgICAvLyBFdmVuIHRob3VnaCB3ZSBhcmVu
J3QgYWN0dWFsbHkgY3JlYXRpbmcgdGlsZXMgaW4gdGhlIGluYWN0aXZlIGdyaWQsIHdlCiAgICAg
Ly8gc3RpbGwgbmVlZCB0byBkcm9wIGludmFsaWQgdGlsZXMgaW4gcmVzcG9uc2UgdG8gYSBsYXlv
dXQuCkBAIC0yMDAsNyArMjAwLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldEN1cnJlbnRT
Y2FsZShmbAogICAgIGlmICgha2VlcHNab29tZWRPdXRUaWxlcygpICYmICFpc1RpbGVJbnZhbGlk
YXRpb25TdXNwZW5kZWQoKSkgewogICAgICAgICAvLyBUaWxlIGludmFsaWRhdGlvbiBpcyBub3Jt
YWxseSBzdXNwZW5kZWQgZHVyaW5nIHpvb21pbmcgYnkgVUlLaXQgYnV0IHNvbWUgYXBwbGljYXRp
b25zCiAgICAgICAgIC8vIHVzaW5nIGN1c3RvbSBzY3JvbGx2aWV3cyBtYXkgem9vbSB3aXRob3V0
IHRyaWdnZXJpbmcgdGhlIGNhbGxiYWNrcy4gSW52YWxpZGF0ZSB0aGUgdGlsZXMgZXhwbGljaXRs
eS4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgICAgICBhY3RpdmVUaWxlR3JpZCgpLT5k
cm9wQWxsVGlsZXMoKTsKICAgICAgICAgYWN0aXZlVGlsZUdyaWQoKS0+Y3JlYXRlVGlsZXMoQ292
ZXJWaXNpYmxlT25seSk7CiAgICAgfQpAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgTGVnYWN5VGls
ZUNhY2hlOjpjb21taXRTY2FsZUNoYW5nZSgKICAgICBBU1NFUlQobV9wZW5kaW5nWm9vbWVkT3V0
U2NhbGUgfHwgbV9wZW5kaW5nU2NhbGUpOwogICAgIEFTU0VSVChtX3RpbGluZ01vZGUgIT0gRGlz
YWJsZWQpOwogICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogCiAgICAgaWYgKG1fcGVuZGluZ1pvb21l
ZE91dFNjYWxlKSB7CiAgICAgICAgIG1fem9vbWVkT3V0VGlsZUdyaWQtPnNldFNjYWxlKG1fcGVu
ZGluZ1pvb21lZE91dFNjYWxlKTsKQEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIExlZ2FjeVRpbGVD
YWNoZTo6bGF5b3V0VGlsZXNOb3coKQogICAgIGlmIChtX3RpbGluZ01vZGUgPT0gWm9vbWluZykK
ICAgICAgICAgbV90aWxpbmdNb2RlID0gTWluaW1hbDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAg
IExlZ2FjeVRpbGVHcmlkKiBhY3RpdmVHcmlkID0gYWN0aXZlVGlsZUdyaWQoKTsKICAgICBpZiAo
YWN0aXZlR3JpZC0+Y2hlY2tEb1NpbmdsZVRpbGVMYXlvdXQoKSkgewogICAgICAgICBtX3RpbGlu
Z01vZGUgPSBzYXZlZFRpbGluZ01vZGU7CkBAIC0zMjcsMTQgKzMyNywxNCBAQCB2b2lkIExlZ2Fj
eVRpbGVDYWNoZTo6bGF5b3V0VGlsZXNOb3coKQogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmxheW91
dFRpbGVzTm93Rm9yUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIEFTU0VSVChXZWJU
aHJlYWRJc0xvY2tlZE9yRGlzYWJsZWQoKSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGls
ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAKICAgICBhY3Rp
dmVUaWxlR3JpZCgpLT5hZGRUaWxlc0NvdmVyaW5nUmVjdChyZWN0KTsKIH0KIAogdm9pZCBMZWdh
Y3lUaWxlQ2FjaGU6OnJlbW92ZUFsbE5vblZpc2libGVUaWxlcygpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRl
eCk7CiAgICAgcmVtb3ZlQWxsTm9uVmlzaWJsZVRpbGVzSW50ZXJuYWwoKTsKIH0KIApAQCAtMzU2
LDcgKzM1Niw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNpYmwKIAog
dm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUFsbFRpbGVzKCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4
KTsKICAgICBtX3pvb21lZE91dFRpbGVHcmlkLT5kcm9wQWxsVGlsZXMoKTsKICAgICBpZiAobV96
b29tZWRJblRpbGVHcmlkKQogICAgICAgICBtX3pvb21lZEluVGlsZUdyaWQtPmRyb3BBbGxUaWxl
cygpOwpAQCAtMzY0LDcgKzM2NCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxU
aWxlcygpCiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVGb3JlZ3JvdW5kVGlsZXMoKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV90aWxlTXV0ZXgpOwogICAgIGlmICgha2VlcHNab29tZWRPdXRUaWxlcygpKQogICAg
ICAgICBtX3pvb21lZE91dFRpbGVHcmlkLT5kcm9wQWxsVGlsZXMoKTsKICAgICBpZiAobV96b29t
ZWRJblRpbGVHcmlkKQpAQCAtMzczLDEzICszNzMsMTMgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6
OnJlbW92ZUZvcmVncm91bmRUaQogCiB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0Q29udGVudFJl
cGxhY2VtZW50SW1hZ2UoUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNvbnRlbnRSZXBsYWNlbWVudElt
YWdlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdl
TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2VN
dXRleCk7CiAgICAgbV9jb250ZW50UmVwbGFjZW1lbnRJbWFnZSA9IGNvbnRlbnRSZXBsYWNlbWVu
dEltYWdlOwogfQogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTGVnYWN5VGlsZUNhY2hlOjpjb250
ZW50UmVwbGFjZW1lbnRJbWFnZSgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
Y29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9j
b250ZW50UmVwbGFjZW1lbnRJbWFnZU11dGV4KTsKICAgICByZXR1cm4gbV9jb250ZW50UmVwbGFj
ZW1lbnRJbWFnZTsKIH0KIApAQCAtNDI2LDcgKzQyNiw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hl
Ojp0aWxlQ3JlYXRpb25UaW1lckYKIHsKICAgICBpZiAoaXNUaWxlQ3JlYXRpb25TdXNwZW5kZWQo
KSkKICAgICAgICAgcmV0dXJuOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIGNyZWF0ZVRpbGVzSW5B
Y3RpdmVHcmlkKENvdmVyU3BlY3VsYXRpdmUpOwogfQogCkBAIC02MjAsNyArNjIwLDcgQEAgdm9p
ZCBMZWdhY3lUaWxlQ2FjaGU6OnNjaGVkdWxlTGF5ZXJGbHVzaAogCiB2b2lkIExlZ2FjeVRpbGVD
YWNoZTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zYXZlZERpc3BsYXlSZWN0TXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4KTsKICAgICBib29sIGFkZGVk
Rmlyc3RSZWN0ID0gbV9zYXZlZERpc3BsYXlSZWN0cy5pc0VtcHR5KCk7CiAgICAgbV9zYXZlZERp
c3BsYXlSZWN0cy5hcHBlbmQoZGlydHlSZWN0KTsKICAgICBpZiAoIWFkZGVkRmlyc3RSZWN0KQpA
QCAtNjkyLDcgKzY5Miw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjp1cGRhdGVUaWxpbmdNb2Rl
KCkKICAgICAgICAgaWYgKG1fdGlsaW5nTW9kZSA9PSBEaXNhYmxlZCkKICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgICAgIGNyZWF0ZVRpbGVzSW5B
Y3RpdmVHcmlkKENvdmVyVmlzaWJsZU9ubHkpOwogCiAgICAgICAgIGlmICghbV9zYXZlZERpc3Bs
YXlSZWN0cy5pc0VtcHR5KCkpCkBAIC03MTAsNyArNzEwLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2Fj
aGU6OnNldFRpbGluZ01vZGUoVGlsaQogICAgIGlmICgobV9wZW5kaW5nWm9vbWVkT3V0U2NhbGUg
fHwgbV9wZW5kaW5nU2NhbGUpICYmIG1fdGlsaW5nTW9kZSAhPSBEaXNhYmxlZCkKICAgICAgICAg
Y29tbWl0U2NhbGVDaGFuZ2UoKTsKICAgICBlbHNlIGlmICh3YXNab29taW5nKSB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fdGlsZU11dGV4KTsKICAgICAgICAgYnJpbmdBY3RpdmVUaWxlR3JpZFRvRnJvbnQoKTsK
ICAgICB9CiAKQEAgLTc1Myw3ICs3NTMsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6ZG9QZW5k
aW5nUmVwYWludHMoCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoaXNUaWxlSW52YWxpZGF0aW9u
U3VzcGVuZGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90
aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICBmbHVz
aFNhdmVkRGlzcGxheVJlY3RzKCk7CiB9CiAKQEAgLTc2NCw3ICs3NjQsNyBAQCB2b2lkIExlZ2Fj
eVRpbGVDYWNoZTo6Zmx1c2hTYXZlZERpc3BsYXlSCiAKICAgICBWZWN0b3I8SW50UmVjdD4gcmVj
dHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zYXZlZERpc3BsYXlSZWN0
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NhdmVkRGlzcGxheVJlY3RNdXRl
eCk7CiAgICAgICAgIG1fc2F2ZWREaXNwbGF5UmVjdHMuc3dhcChyZWN0cyk7CiAgICAgfQogICAg
IHNpemVfdCBzaXplID0gcmVjdHMuc2l6ZSgpOwpAQCAtNzkyLDcgKzc5Miw3IEBAIHZvaWQgTGVn
YWN5VGlsZUNhY2hlOjpwcmVwYXJlVG9EcmF3KCkKICAgICBbW21fd2luZG93IGNvbnRlbnRWaWV3
XSB2aWV3V2lsbERyYXddOwogCiAgICAgaWYgKCFtX3NhdmVkRGlzcGxheVJlY3RzLmlzRW1wdHko
KSkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgICAgIGZsdXNoU2F2ZWREaXNwbGF5
UmVjdHMoKTsKICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVn
YWN5VGlsZUxheWVyUG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzUsNyArNzYsNyBAQCBwcml2YXRlOgog
ICAgIFZlY3RvcjxJbnRTaXplPiBtX3NpemVzSW5QcnVuZU9yZGVyOwogICAgIHVuc2lnbmVkIG1f
dG90YWxCeXRlczsKICAgICB1bnNpZ25lZCBtX2NhcGFjaXR5OwotICAgIE11dGV4IG1fbGF5ZXJQ
b29sTXV0ZXg7CisgICAgTG9jayBtX2xheWVyUG9vbE11dGV4OwogCiAgICAgZG91YmxlIG1fbGFz
dEFkZFRpbWU7CiAgICAgYm9vbCBtX25lZWRzUHJ1bmU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbQkocmV2aXNpb24gMTg4
NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBMZWdhY3lUaWxlTGF5ZXJQ
b29sOjphZGRMYXllcihjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bGF5ZXJQb29sTXV0ZXgpOwogICAgIGxpc3RPZkxheWVyc1dpdGhTaXplKGxheWVyU2l6ZSkucHJl
cGVuZChsYXllcik7CiAgICAgbV90b3RhbEJ5dGVzICs9IGJ5dGVzQmFja2luZ0xheWVyV2l0aFBp
eGVsU2l6ZShsYXllclNpemUpOwogCkBAIC05Niw3ICs5Niw3IEBAIFJldGFpblB0cjxMZWdhY3lU
aWxlTGF5ZXI+IExlZ2FjeVRpbGVMYXkKIHsKICAgICBpZiAoIWNhblJldXNlTGF5ZXJXaXRoU2l6
ZShzaXplKSkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9s
YXllclBvb2xNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7
CiAgICAgTGF5ZXJMaXN0JiByZXVzZUxpc3QgPSBsaXN0T2ZMYXllcnNXaXRoU2l6ZShzaXplLCBN
YXJrQXNVc2VkKTsKICAgICBpZiAocmV1c2VMaXN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IG5pbDsKQEAgLTEwNiw3ICsxMDYsNyBAQCBSZXRhaW5QdHI8TGVnYWN5VGlsZUxheWVyPiBMZWdh
Y3lUaWxlTGF5CiAKIHZvaWQgTGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkodW5zaWdu
ZWQgY2FwYWNpdHkpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgcmV1c2VMb2NrZXIobV9sYXllclBvb2xN
dXRleCk7CisgICAgTG9ja0hvbGRlciByZXVzZUxvY2tlcihtX2xheWVyUG9vbE11dGV4KTsKICAg
ICBpZiAoY2FwYWNpdHkgPCBtX2NhcGFjaXR5KQogICAgICAgICBzY2hlZHVsZVBydW5lKCk7CiAg
ICAgbV9jYXBhY2l0eSA9IGNhcGFjaXR5OwpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgTGVnYWN5
VGlsZUxheWVyUG9vbDo6c2NoZWR1bGVQcnVuZSgKIAogdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29s
OjpwcnVuZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwogICAgIEFTU0VSVChtX25l
ZWRzUHJ1bmUpOwogICAgIG1fbmVlZHNQcnVuZSA9IGZhbHNlOwogICAgIHVuc2lnbmVkIHNocmlu
a1RvID0gZGVjYXllZENhcGFjaXR5KCk7CkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBMZWdhY3lU
aWxlTGF5ZXJQb29sOjpwcnVuZSgpCiAKIHZvaWQgTGVnYWN5VGlsZUxheWVyUG9vbDo6ZHJhaW4o
KQogewotICAgIE11dGV4TG9ja2VyIHJldXNlTG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgcmV1c2VMb2NrZXIobV9sYXllclBvb2xNdXRleCk7CiAgICAgbV9yZXVzZUxp
c3RzLmNsZWFyKCk7CiAgICAgbV9zaXplc0luUHJ1bmVPcmRlci5jbGVhcigpOwogICAgIG1fdG90
YWxCeXRlcyA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybERvd25sb2FkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYwLDcgKzYwLDcgQEAgQ3VybERvd25sb2FkTWFuYWdlcjo6fkN1cmxEb3dubG9h
ZE1hbmFnZQogCiBib29sIEN1cmxEb3dubG9hZE1hbmFnZXI6OmFkZChDVVJMKiBjdXJsSGFuZGxl
KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX211dGV4KTsKIAogICAgIG1fcGVuZGluZ0hhbmRsZUxpc3QuYXBwZW5kKGN1cmxIYW5k
bGUpOwogICAgIHN0YXJ0VGhyZWFkSWZOZWVkZWQoKTsKQEAgLTcwLDcgKzcwLDcgQEAgYm9vbCBD
dXJsRG93bmxvYWRNYW5hZ2VyOjphZGQoQ1VSTCogY3VybAogCiBib29sIEN1cmxEb3dubG9hZE1h
bmFnZXI6OnJlbW92ZShDVVJMKiBjdXJsSGFuZGxlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIG1fcmVt
b3ZlZEhhbmRsZUxpc3QuYXBwZW5kKGN1cmxIYW5kbGUpOwogCkBAIC03OSwxMyArNzksMTMgQEAg
Ym9vbCBDdXJsRG93bmxvYWRNYW5hZ2VyOjpyZW1vdmUoQ1VSTCogYwogCiBpbnQgQ3VybERvd25s
b2FkTWFuYWdlcjo6Z2V0QWN0aXZlRG93bmxvYWRDb3VudCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwog
ICAgIHJldHVybiBtX2FjdGl2ZUhhbmRsZUxpc3Quc2l6ZSgpOwogfQogCiBpbnQgQ3VybERvd25s
b2FkTWFuYWdlcjo6Z2V0UGVuZGluZ0Rvd25sb2FkQ291bnQoKSBjb25zdAogewotICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsK
ICAgICByZXR1cm4gbV9wZW5kaW5nSGFuZGxlTGlzdC5zaXplKCk7CiB9CiAKQEAgLTExMSw3ICsx
MTEsNyBAQCB2b2lkIEN1cmxEb3dubG9hZE1hbmFnZXI6OnN0b3BUaHJlYWQoKQogCiB2b2lkIEN1
cmxEb3dubG9hZE1hbmFnZXI6OnN0b3BUaHJlYWRJZklkbGUoKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAg
IGlmICghZ2V0QWN0aXZlRG93bmxvYWRDb3VudCgpICYmICFnZXRQZW5kaW5nRG93bmxvYWRDb3Vu
dCgpKQogICAgICAgICBzZXRSdW5UaHJlYWQoZmFsc2UpOwpAQCAtMTE5LDcgKzExOSw3IEBAIHZv
aWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RvcFRocmVhZElmSWQKIAogdm9pZCBDdXJsRG93bmxv
YWRNYW5hZ2VyOjp1cGRhdGVIYW5kbGVMaXN0KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICAvLyBSZW1v
dmUgY3VybCBlYXN5IGhhbmRsZXMgZnJvbSBtdWx0aSBsaXN0IAogICAgIGludCBzaXplID0gbV9y
ZW1vdmVkSGFuZGxlTGlzdC5zaXplKCk7CkBAIC0yNDUsNyArMjQ1LDcgQEAgQ3VybERvd25sb2Fk
OjpDdXJsRG93bmxvYWQoKQogCiBDdXJsRG93bmxvYWQ6On5DdXJsRG93bmxvYWQoKQogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211
dGV4KTsKIAogICAgIGlmIChtX3VybCkKICAgICAgICAgZmFzdEZyZWUobV91cmwpOwpAQCAtMjYy
LDcgKzI2Miw3IEBAIHZvaWQgQ3VybERvd25sb2FkOjppbml0KEN1cmxEb3dubG9hZExpc3QKICAg
ICBpZiAoIWxpc3RlbmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBtX2N1
cmxIYW5kbGUgPSBjdXJsX2Vhc3lfaW5pdCgpOwogCkBAIC0yOTUsNyArMjk1LDcgQEAgdm9pZCBD
dXJsRG93bmxvYWQ6OmluaXQoQ3VybERvd25sb2FkTGlzdAogICAgIGlmICghbGlzdGVuZXIpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIFVSTCB1cmwoUGFyc2VkVVJMU3RyaW5n
LCByZXF1ZXN0LnVybCgpKTsKIApAQCAtMzE3LDI1ICszMTcsMjUgQEAgYm9vbCBDdXJsRG93bmxv
YWQ6OmNhbmNlbCgpCiAKIFN0cmluZyBDdXJsRG93bmxvYWQ6OmdldFRlbXBQYXRoKCkgY29uc3QK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fdGVtcFBhdGg7CiB9CiAKIFN0cmluZyBDdXJsRG93
bmxvYWQ6OmdldFVybCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIHJldHVybiBTdHJpbmcobV91
cmwpOwogfQogCiBSZXNvdXJjZVJlc3BvbnNlIEN1cmxEb3dubG9hZDo6Z2V0UmVzcG9uc2UoKSBj
b25zdAogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX211dGV4KTsKICAgICByZXR1cm4gbV9yZXNwb25zZTsKIH0KIAogdm9pZCBDdXJs
RG93bmxvYWQ6OmNsb3NlRmlsZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKG1fdGVtcEhhbmRs
ZSAhPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSB7CiAgICAgICAgIFdlYkNvcmU6OmNsb3Nl
RmlsZShtX3RlbXBIYW5kbGUpOwpAQCAtMzkwLDcgKzM5MCw3IEBAIHZvaWQgQ3VybERvd25sb2Fk
OjphZGRIZWFkZXJzKGNvbnN0IFJlc28KIAogdm9pZCBDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVI
ZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
bXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKGhlYWRl
ciA9PSAiXHJcbiIgfHwgaGVhZGVyID09ICJcbiIpIHsKIApAQCAtNDMwLDcgKzQzMCw3IEBAIHZv
aWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZlSGVhZGVyKGNvbnMKIAogdm9pZCBDdXJsRG93bmxv
YWQ6OmRpZFJlY2VpdmVEYXRhKHZvaWQqIGRhdGEsIGludCBzaXplKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAog
ICAgIFJlZlB0cjxDdXJsRG93bmxvYWQ+IHByb3RlY3RlZERvd25sb2FkKHRoaXMpOwogCkBAIC00
NjQsNyArNDY0LDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmRpZEZpbmlzaCgpCiAKIHZvaWQgQ3Vy
bERvd25sb2FkOjpkaWRGYWlsKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBjbG9zZUZpbGUoKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
RG93bmxvYWQuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3
IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENVUkwqPiBtX3BlbmRpbmdIYW5kbGVMaXN0OwogICAg
IFZlY3RvcjxDVVJMKj4gbV9hY3RpdmVIYW5kbGVMaXN0OwogICAgIFZlY3RvcjxDVVJMKj4gbV9y
ZW1vdmVkSGFuZGxlTGlzdDsKLSAgICBtdXRhYmxlIE11dGV4IG1fbXV0ZXg7CisgICAgbXV0YWJs
ZSBMb2NrIG1fbXV0ZXg7CiAgICAgYm9vbCBtX3J1blRocmVhZDsKIH07CiAKQEAgLTE0MCw3ICsx
NDAsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlBsYXRmb3JtRmlsZUhhbmRsZSBtX3RlbXBI
YW5kbGU7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwogICAgIGJv
b2wgbV9kZWxldGVzRmlsZVVwb25GYWlsdXJlOwotICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsK
KyAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKICAgICBDdXJsRG93bmxvYWRMaXN0ZW5lciAqbV9s
aXN0ZW5lcjsKIAogICAgIHN0YXRpYyBDdXJsRG93bmxvYWRNYW5hZ2VyIG1fZG93bmxvYWRNYW5h
Z2VyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAJKHJldmlzaW9uIDE4ODU2OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1h
bmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMsMTAgKzEzMywxMSBAQCBzdGF0aWMgY2hh
ciogY29va2llSmFyUGF0aCgpCiAjZW5kaWYKIH0KIAotc3RhdGljIE11dGV4KiBzaGFyZWRSZXNv
dXJjZU11dGV4KGN1cmxfbG9ja19kYXRhIGRhdGEpIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoTXV0ZXgsIGNvb2tpZU11dGV4LCAoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKE11dGV4LCBkbnNNdXRleCwgKCkpOwotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc2hhcmVNdXRleCwgKCkpOworc3RhdGljIExvY2sqIHNo
YXJlZFJlc291cmNlTXV0ZXgoY3VybF9sb2NrX2RhdGEgZGF0YSkKK3sKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgY29va2llTXV0ZXgsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgZG5zTXV0ZXgsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgc2hhcmVNdXRleCwgKCkpOwogCiAgICAgc3dp
dGNoIChkYXRhKSB7CiAgICAgICAgIGNhc2UgQ1VSTF9MT0NLX0RBVEFfQ09PS0lFOgpAQCAtMTkw
LDEzICsxOTEsMTMgQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlV2ViVGltaW5nSW5mb3JtYXRpbwog
Ly8gY2FjaGUuCiBzdGF0aWMgdm9pZCBjdXJsX2xvY2tfY2FsbGJhY2soQ1VSTCogLyogaGFuZGxl
ICovLCBjdXJsX2xvY2tfZGF0YSBkYXRhLCBjdXJsX2xvY2tfYWNjZXNzIC8qIGFjY2VzcyAqLywg
dm9pZCogLyogdXNlclB0ciAqLykKIHsKLSAgICBpZiAoTXV0ZXgqIG11dGV4ID0gc2hhcmVkUmVz
b3VyY2VNdXRleChkYXRhKSkKKyAgICBpZiAoTG9jayogbXV0ZXggPSBzaGFyZWRSZXNvdXJjZU11
dGV4KGRhdGEpKQogICAgICAgICBtdXRleC0+bG9jaygpOwogfQogCiBzdGF0aWMgdm9pZCBjdXJs
X3VubG9ja19jYWxsYmFjayhDVVJMKiAvKiBoYW5kbGUgKi8sIGN1cmxfbG9ja19kYXRhIGRhdGEs
IHZvaWQqIC8qIHVzZXJQdHIgKi8pCiB7Ci0gICAgaWYgKE11dGV4KiBtdXRleCA9IHNoYXJlZFJl
c291cmNlTXV0ZXgoZGF0YSkpCisgICAgaWYgKExvY2sqIG11dGV4ID0gc2hhcmVkUmVzb3VyY2VN
dXRleChkYXRhKSkKICAgICAgICAgbXV0ZXgtPnVubG9jaygpOwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xv
b2subW0JKHdvcmtpbmcgY29weSkKQEAgLTg1LDkgKzg1LDkgQEAgTlNEaWN0aW9uYXJ5ICpXZWJD
b3JlOjpRTERpcmVjdG9yeUF0dHJpYgogICAgIHJldHVybiBkaWN0aW9uYXJ5OwogfQogCi1zdGF0
aWMgTXV0ZXgmIHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpCitzdGF0aWMgTG9j
ayYgcWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8TXV0ZXg+IG11dGV4OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2Nr
PiBtdXRleDsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lk
IFdlYkNvcmU6OmFkZFFMUHJldmlld0NvbnZlcnRlcldpdGhGCiB7CiAgICAgQVNTRVJUKHVybCk7
CiAgICAgQVNTRVJUKGNvbnZlcnRlcik7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhxbFByZXZpZXdD
b252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmll
d0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKICAgICBbUUxQcmV2aWV3Q29udmVydGVyRGlj
dGlvbmFyeSgpIHNldE9iamVjdDpjb252ZXJ0ZXIgZm9yS2V5OnVybF07CiAgICAgW1FMQ29udGVu
dERpY3Rpb25hcnkoKSBzZXRPYmplY3Q6KGZpbGVOYW1lID8gZmlsZU5hbWUgOiBAIiIpIGZvcktl
eTp1cmxdOwogfQpAQCAtMTIxLDcgKzEyMSw3IEBAIE5TU3RyaW5nICpXZWJDb3JlOjpxbFByZXZp
ZXdDb252ZXJ0ZXJVVEkKIHsKICAgICBpZCBjb252ZXJ0ZXIgPSBuaWw7CiAgICAgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRl
eCgpKTsKICAgICAgICAgY29udmVydGVyID0gW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnko
KSBvYmplY3RGb3JLZXk6dXJsXTsKICAgICB9CiAgICAgaWYgKCFjb252ZXJ0ZXIpCkBAIC0xMzEs
NyArMTMxLDcgQEAgTlNTdHJpbmcgKldlYkNvcmU6OnFsUHJldmlld0NvbnZlcnRlclVUSQogCiB2
b2lkIFdlYkNvcmU6OnJlbW92ZVFMUHJldmlld0NvbnZlcnRlckZvclVSTChOU1VSTCAqdXJsKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4
KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0
ZXgoKSk7CiAgICAgW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnkoKSByZW1vdmVPYmplY3RG
b3JLZXk6dXJsXTsKIAogICAgIC8vIERlbGV0ZSB0aGUgZmlsZSB3aGVuIHdlIHJlbW92ZSB0aGUg
cHJldmlldyBjb252ZXJ0ZXIKQEAgLTE2Niw3ICsxNjYsNyBAQCBjb25zdCBVUkwgV2ViQ29yZTo6
c2FmZVFMVVJMRm9yRG9jdW1lbnRVCiAgICAgaWQgY29udmVydGVyID0gbmlsOwogICAgIE5TVVJM
ICpuc0RvY3VtZW50VVJMID0gZG9jdW1lbnRVUkw7CiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKICAgICAg
ICAgY29udmVydGVyID0gW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnkoKSBvYmplY3RGb3JL
ZXk6bnNEb2N1bWVudFVSTF07CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgICAg
IC8vIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9vcGVuaW5nVGhyZWFkKTsKICAgICAgICAg
c3FsaXRlMyogZGIgPSBtX2RiOwogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9kYXRhYmFzZUNsb3NpbmdNdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2RhdGFiYXNlQ2xvc2luZ011dGV4KTsKICAgICAgICAgICAgIG1fZGIgPSAwOwogICAg
ICAgICB9CiAgICAgICAgIHNxbGl0ZTNfY2xvc2UoZGIpOwpAQCAtMTYwLDcgKzE2MCw3IEBAIGlu
dDY0X3QgU1FMaXRlRGF0YWJhc2U6Om1heGltdW1TaXplKCkKICAgICBpbnQ2NF90IG1heFBhZ2VD
b3VudCA9IDA7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6
ZXJMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAg
ICAgICAgIGVuYWJsZUF1dGhvcml6ZXIoZmFsc2UpOwogICAgICAgICBTUUxpdGVTdGF0ZW1lbnQg
c3RhdGVtZW50KCp0aGlzLCBBU0NJSUxpdGVyYWwoIlBSQUdNQSBtYXhfcGFnZV9jb3VudCIpKTsK
ICAgICAgICAgbWF4UGFnZUNvdW50ID0gc3RhdGVtZW50LmdldENvbHVtbkludDY0KDApOwpAQCAt
MTgwLDcgKzE4MCw3IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OnNldE1heGltdW1TaXplKGludDYK
ICAgICBBU1NFUlQoY3VycmVudFBhZ2VTaXplIHx8ICFtX2RiKTsKICAgICBpbnQ2NF90IG5ld01h
eFBhZ2VDb3VudCA9IGN1cnJlbnRQYWdlU2l6ZSA/IHNpemUgLyBjdXJyZW50UGFnZVNpemUgOiAw
OwogICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICBlbmFibGVBdXRob3JpemVy
KGZhbHNlKTsKIAogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsICJQUkFHTUEg
bWF4X3BhZ2VfY291bnQgPSAiICsgU3RyaW5nOjpudW1iZXIobmV3TWF4UGFnZUNvdW50KSk7CkBA
IC0xOTcsNyArMTk3LDcgQEAgaW50IFNRTGl0ZURhdGFiYXNlOjpwYWdlU2l6ZSgpCiAgICAgLy8g
U2luY2UgdGhlIHBhZ2Ugc2l6ZSBvZiBhIGRhdGFiYXNlIGlzIGxvY2tlZCBpbiBhdCBjcmVhdGlv
biBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBkeW5hbWljLCAKICAgICAvLyB3ZSBjYW4gY2FjaGUg
dGhlIHZhbHVlIGZvciBmdXR1cmUgdXNlCiAgICAgaWYgKG1fcGFnZVNpemUgPT0gLTEpIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICAgICAgZW5hYmxlQXV0aG9yaXpl
cihmYWxzZSk7CiAgICAgICAgIAogICAgICAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KCp0
aGlzLCBBU0NJSUxpdGVyYWwoIlBSQUdNQSBwYWdlX3NpemUiKSk7CkBAIC0yMTQsNyArMjE0LDcg
QEAgaW50NjRfdCBTUUxpdGVEYXRhYmFzZTo6ZnJlZVNwYWNlU2l6ZSgpCiAgICAgaW50NjRfdCBm
cmVlbGlzdENvdW50ID0gMDsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
YXV0aG9yaXplckxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJM
b2NrKTsKICAgICAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CiAgICAgICAgIC8vIE5vdGU6
IGZyZWVsaXN0X2NvdW50IHdhcyBhZGRlZCBpbiBTUUxpdGUgMy40LjEuCiAgICAgICAgIFNRTGl0
ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsIEFTQ0lJTGl0ZXJhbCgiUFJBR01BIGZyZWVsaXN0
X2NvdW50IikpOwpAQCAtMjMwLDcgKzIzMCw3IEBAIGludDY0X3QgU1FMaXRlRGF0YWJhc2U6OnRv
dGFsU2l6ZSgpCiAgICAgaW50NjRfdCBwYWdlQ291bnQgPSAwOwogCiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwogICAgICAgICBlbmFibGVBdXRob3JpemVyKGZhbHNl
KTsKICAgICAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudCgqdGhpcywgQVNDSUlMaXRlcmFs
KCJQUkFHTUEgcGFnZV9jb3VudCIpKTsKICAgICAgICAgcGFnZUNvdW50ID0gc3RhdGVtZW50Lmdl
dENvbHVtbkludDY0KDApOwpAQCAtMzA5LDcgKzMwOSw3IEBAIGludCBTUUxpdGVEYXRhYmFzZTo6
cnVuVmFjdXVtQ29tbWFuZCgpCiAKIGludCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVtZW50YWxW
YWN1dW1Db21tYW5kKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9j
ayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAgICAgZW5hYmxl
QXV0aG9yaXplcihmYWxzZSk7CiAKICAgICBpZiAoIWV4ZWN1dGVDb21tYW5kKEFTQ0lJTGl0ZXJh
bCgiUFJBR01BIGluY3JlbWVudGFsX3ZhY3V1bSIpKSkKQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lk
IFNRTGl0ZURhdGFiYXNlOjpzZXRBdXRob3JpemVyKFBhc3NSCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAKICAgICBtX2F1dGhvcml6ZXIgPSBh
dXRoOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURh
dGFiYXNlLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nx
bC9TUUxpdGVEYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAKICNp
bmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHNxbGl0ZTMuaD4KKyNpbmNsdWRlIDx3dGYv
TG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0xMDYsNyArMTA3
LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2V0QXV0aG9yaXplcihQYXNzUmVmUHRyPERh
dGFiYXNlQXV0aG9yaXplcj4pOwogCi0gICAgTXV0ZXgmIGRhdGFiYXNlTXV0ZXgoKSB7IHJldHVy
biBtX2xvY2tpbmdNdXRleDsgfQorICAgIExvY2smIGRhdGFiYXNlTXV0ZXgoKSB7IHJldHVybiBt
X2xvY2tpbmdNdXRleDsgfQogICAgIGJvb2wgaXNBdXRvQ29tbWl0T24oKSBjb25zdDsKIAogICAg
IC8vIFRoZSBTUUxpdGUgQVVUT19WQUNVVU0gcHJhZ21hIGNhbiBiZSBlaXRoZXIgTk9ORSwgRlVM
TCwgb3IgSU5DUkVNRU5UQUwuCkBAIC0xNDcsMTMgKzE0OCwxMyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3M7CiAgICAgYm9vbCBtX3NoYXJhYmxlOwogICAgIAot
ICAgIE11dGV4IG1fYXV0aG9yaXplckxvY2s7CisgICAgTG9jayBtX2F1dGhvcml6ZXJMb2NrOwog
ICAgIFJlZlB0cjxEYXRhYmFzZUF1dGhvcml6ZXI+IG1fYXV0aG9yaXplcjsKIAotICAgIE11dGV4
IG1fbG9ja2luZ011dGV4OworICAgIExvY2sgbV9sb2NraW5nTXV0ZXg7CiAgICAgVGhyZWFkSWRl
bnRpZmllciBtX29wZW5pbmdUaHJlYWQ7CiAKLSAgICBNdXRleCBtX2RhdGFiYXNlQ2xvc2luZ011
dGV4OworICAgIExvY2sgbV9kYXRhYmFzZUNsb3NpbmdNdXRleDsKIAogICAgIGludCBtX29wZW5F
cnJvcjsKICAgICBDU3RyaW5nIG1fb3BlbkVycm9yTWVzc2FnZTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCShyZXZpc2lvbiAxODg1
NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBpbnQgU1FMaXRlU3RhdGVtZW50OjpwcmVw
YXJlKCkKIHsKICAgICBBU1NFUlQoIW1faXNQcmVwYXJlZCk7CiAKLSAgICBNdXRleExvY2tlciBk
YXRhYmFzZUxvY2sobV9kYXRhYmFzZS5kYXRhYmFzZU11dGV4KCkpOworICAgIExvY2tIb2xkZXIg
ZGF0YWJhc2VMb2NrKG1fZGF0YWJhc2UuZGF0YWJhc2VNdXRleCgpKTsKIAogICAgIENTdHJpbmcg
cXVlcnkgPSBtX3F1ZXJ5LnN0cmlwV2hpdGVTcGFjZSgpLnV0ZjgoKTsKICAgICAKQEAgLTg2LDcg
Kzg2LDcgQEAgaW50IFNRTGl0ZVN0YXRlbWVudDo6cHJlcGFyZSgpCiAKIGludCBTUUxpdGVTdGF0
ZW1lbnQ6OnN0ZXAoKQogewotICAgIE11dGV4TG9ja2VyIGRhdGFiYXNlTG9jayhtX2RhdGFiYXNl
LmRhdGFiYXNlTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBkYXRhYmFzZUxvY2sobV9kYXRhYmFz
ZS5kYXRhYmFzZU11dGV4KCkpOwogCiAgICAgaWYgKCFtX3N0YXRlbWVudCkKICAgICAgICAgcmV0
dXJuIFNRTElURV9PSzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5j
cHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3IEBAIFdvcmtlclRocmVhZDo6
fldvcmtlclRocmVhZCgpCiBib29sIFdvcmtlclRocmVhZDo6c3RhcnQoKQogewogICAgIC8vIE11
dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IG1fdGhyZWFkSUQgaXMg
aW5pdGlhbGl6ZWQgd2hlbiB0aGUgdGhyZWFkIHN0YXJ0cy4KLSAgICBNdXRleExvY2tlciBsb2Nr
KG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3Jl
YXRpb25NdXRleCk7CiAKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiAj
ZW5kaWYKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsK
ICAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKG1f
c3RhcnR1cERhdGEtPm1fc2NyaXB0VVJMLCBtX3N0YXJ0dXBEYXRhLT5tX3VzZXJBZ2VudCwgbV9z
dGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fc3RhcnR1cERhdGEtPm1fY29u
dGVudFNlY3VyaXR5UG9saWN5VHlwZSwgbV9zdGFydHVwRGF0YS0+bV90b3BPcmlnaW4ucmVsZWFz
ZSgpKTsKIAogICAgICAgICBpZiAobV9ydW5Mb29wLnRlcm1pbmF0ZWQoKSkgewpAQCAtMTg5LDcg
KzE4OSw3IEBAIHZvaWQgV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AoKQogdm9pZCBXb3JrZXJU
aHJlYWQ6OnN0b3AoKQogewogICAgIC8vIE11dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IGJl
Y2F1c2Ugc3RvcCgpIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHRoZSBjb250ZXh0IGlzIGZ1bGx5IGNy
ZWF0ZWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwogCiAgICAgLy8gRW5zdXJl
IHRoYXQgdGFza3MgYXJlIGJlaW5nIGhhbmRsZWQgYnkgdGhyZWFkIGV2ZW50IGxvb3AuIElmIHNj
cmlwdCBleGVjdXRpb24gd2VyZW4ndCBmb3JiaWRkZW4sIGEgd2hpbGUoMSkgbG9vcCBpbiBKUyBj
b3VsZCBrZWVwIHRoZSB0aHJlYWQgYWxpdmUgZm9yZXZlci4KICAgICBpZiAobV93b3JrZXJHbG9i
YWxTY29wZSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCShyZXZp
c2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgV29ya2VyUmVwb3J0aW5nUHJveHkmIG1fd29ya2VyUmVwb3J0aW5nUHJveHk7CiAKICAgICAg
ICAgUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBtX3dvcmtlckdsb2JhbFNjb3BlOwotICAgICAg
ICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CisgICAgICAgIExvY2sgbV90aHJlYWRDcmVh
dGlvbk11dGV4OwogCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJUaHJlYWRTdGFydHVw
RGF0YT4gbV9zdGFydHVwRGF0YTsKIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTkg
QEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2Nr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERhdGFi
YXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFz
ZVByb2Nlc3M6OnBvc3REYXRhYmFzZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVBy
b2Nlc3M6OnBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nl
c3MvRGF0YWJhc2VQcm9jZXNzLmg6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpzaHV0ZG93bik6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0
TWFpblRocmVhZFRhc2spOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6cGVy
Zm9ybU5leHRNYWluVGhyZWFkVGFzayk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpwb3N0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJh
c2U6OnBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2Up
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2VGcm9tU2Vjb25kYXJ5
VGhyZWFkKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6d2FpdEZvclN5bmNSZXBseSk6Cisg
ICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ1N5bmNSZXBseSk6CisgICAg
ICAgIChJUEM6OkNvbm5lY3Rpb246OmNvbm5lY3Rpb25EaWRDbG9zZSk6CisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6OmFwcGVuZFVwZGF0ZSk6CisgICAgICAgICogU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmg6CisgICAgICAgICog
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRl
Q29tcG9zaXRpbmdUaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6
OnJ1bkNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3Np
dG9yOjp0ZXJtaW5hdGVDb21wb3NpdGluZ1RocmVhZCk6CisgICAgICAgICogU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oOgor
ICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90
b2NvbE1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyOjphZGRDdXN0b21Qcm90b2NvbCk6CisgICAgICAgIChXZWJLaXQ6OkN1c3RvbVByb3RvY29s
TWFuYWdlcjo6cmVtb3ZlQ3VzdG9tUHJvdG9jb2wpOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Q
cm90b2NvbE1hbmFnZXI6OnJlZ2lzdGVyU2NoZW1lKToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyOjp1bnJlZ2lzdGVyU2NoZW1lKToKKyAgICAgICAgKFdlYktpdDo6Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyOjpzdXBwb3J0c1NjaGVtZSk6CisgICAgICAgIChXZWJLaXQ6OkN1
c3RvbVByb3RvY29sTWFuYWdlcjo6cHJvdG9jb2xGb3JJRCk6CisgICAgICAgICogU2hhcmVkL05l
dHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oOgorICAgICAgICAq
IFNoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpnZXRQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlcjo6cmVtb3ZlUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OnBsdWdpblByb2Nlc3NDcmFz
aGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6YWRkU2Nyb2xsaW5nVHJl
ZUZvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OnJlbW92ZVNjcm9s
bGluZ1RyZWVGb3JQYWdlKToKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjp3aGVl
bEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0u
Y3BwOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyk6Cisg
ICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtQWRkRGF0YSk6CisKIDIwMTUtMDgt
MTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBTcGVjdWxhdGl2ZSBHVEsgYnVpbGQgZml4IGFmdGVyIHIxODg1NTMKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCShyZXZp
c2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQ
cm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgRGF0YWJh
c2VQcm9jZXNzOjpwb3N0RGF0YWJhc2VUYXNrKHMKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwogCiAgICAgbV9kYXRh
YmFzZVRhc2tzLmFwcGVuZChXVEY6Om1vdmUodGFzaykpOwogCkBAIC0xNjYsNyArMTY2LDcgQEAg
dm9pZCBEYXRhYmFzZVByb2Nlc3M6OnBlcmZvcm1OZXh0RGF0YWJhcwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPEFzeW5jVGFzaz4gdGFzazsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRh
YmFzZVRhc2tNdXRleCk7CiAgICAgICAgIEFTU0VSVCghbV9kYXRhYmFzZVRhc2tzLmlzRW1wdHko
KSk7CiAgICAgICAgIHRhc2sgPSBtX2RhdGFiYXNlVGFza3MudGFrZUZpcnN0KCk7CiAgICAgfQpJ
bmRleDogU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nl
c3MuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgcHJp
dmF0ZToKICAgICBIYXNoTWFwPFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllciwgUmVmUHRyPFVu
aXF1ZUlEQkRhdGFiYXNlPj4gbV9pZGJEYXRhYmFzZXM7CiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1
ZV9wdHI8QXN5bmNUYXNrPj4gbV9kYXRhYmFzZVRhc2tzOwotICAgIE11dGV4IG1fZGF0YWJhc2VU
YXNrTXV0ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlVGFza011dGV4OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAkocmV2aXNpb24g
MTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9Vbmlx
dWVJREJEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpzaHV0ZG93bihVbmlxdWVJCiAgICAgcmVmKCk7CiAKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CiAgICAgICAgIG1fZGF0
YWJhc2VUYXNrcy5jbGVhcigpOwogICAgIH0KIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6cG9zdE1haW5UaHJlYWRUYQogICAgIGlmICghbV9hY2NlcHRpbmdO
ZXdSZXF1ZXN0cyAmJiB0YXNrVHlwZSA9PSBEYXRhYmFzZVRhc2tUeXBlOjpOb3JtYWwpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbWFpblRocmVhZFRhc2tNdXRleCk7CiAKICAg
ICBtX21haW5UaHJlYWRUYXNrcy5hcHBlbmQoV1RGOjptb3ZlKHRhc2spKTsKIApAQCAtMTE0Myw3
ICsxMTQzLDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybU5leHRNYWluVAogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFzazsKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0ZXgpOwogCiAgICAgICAgIC8vIFRoaXMgZGF0YWJh
c2UgbWlnaHQgYmUgc2h1dHRpbmcgZG93biwgaW4gd2hpY2ggY2FzZSB0aGUgdGFzayBxdWV1ZSBt
aWdodCBiZSBlbXB0eS4KICAgICAgICAgaWYgKG1fbWFpblRocmVhZFRhc2tzLmlzRW1wdHkoKSkK
QEAgLTExNjUsNyArMTE2NSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBvc3REYXRhYmFz
ZVRhc2sKICAgICBpZiAoIW1fYWNjZXB0aW5nTmV3UmVxdWVzdHMgJiYgdGFza1R5cGUgPT0gRGF0
YWJhc2VUYXNrVHlwZTo6Tm9ybWFsKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9k
YXRhYmFzZVRhc2tNdXRleCk7CiAKICAgICBtX2RhdGFiYXNlVGFza3MuYXBwZW5kKFdURjo6bW92
ZSh0YXNrKSk7CiAKQEAgLTExODYsNyArMTE4Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnBlcmZvcm1OZXh0RGF0YWIKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1Rhc2s+IHRhc2s7
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwogCiAgICAg
ICAgIC8vIFRoaXMgZGF0YWJhc2UgbWlnaHQgYmUgc2h1dHRpbmcgZG93biBvbiB0aGUgbWFpbiB0
aHJlYWQsIGluIHdoaWNoIGNhc2UgdGhlIHRhc2sgcXVldWUgbWlnaHQgYmUgZW1wdHkuCiAgICAg
ICAgIGlmIChtX2RhdGFiYXNlVGFza3MuaXNFbXB0eSgpKQpJbmRleDogU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0
YWJhc2UuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAs
MTAgKzIxMCwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZUJhY2tp
bmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8QXN5
bmNUYXNrPj4gbV9kYXRhYmFzZVRhc2tzOwotICAgIE11dGV4IG1fZGF0YWJhc2VUYXNrTXV0ZXg7
CisgICAgTG9jayBtX2RhdGFiYXNlVGFza011dGV4OwogCiAgICAgRGVxdWU8c3RkOjp1bmlxdWVf
cHRyPEFzeW5jVGFzaz4+IG1fbWFpblRocmVhZFRhc2tzOwotICAgIE11dGV4IG1fbWFpblRocmVh
ZFRhc2tNdXRleDsKKyAgICBMb2NrIG1fbWFpblRocmVhZFRhc2tNdXRleDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25u
ZWN0aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTksNyArNDU5LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aQogCiAgICAgLy8gUHVzaCB0aGUg
cGVuZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uIG9uIG91ciBzdGFjay4KICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogICAgICAgICBpZiAoIW1f
c2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzKSB7CiAgICAgICAgICAgICBkaWRGYWlsVG9TZW5kU3lu
Y01lc3NhZ2UoKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNDg2LDcgKzQ4Niw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAogICAgIC8vIEZp
bmFsbHksIHBvcCB0aGUgcGVuZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uLgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAgICAgICAgIEFTU0VS
VChtX3BlbmRpbmdTeW5jUmVwbGllcy5sYXN0KCkuc3luY1JlcXVlc3RJRCA9PSBzeW5jUmVxdWVz
dElEKTsKICAgICAgICAgbV9wZW5kaW5nU3luY1JlcGxpZXMucmVtb3ZlTGFzdCgpOwogICAgIH0K
QEAgLTUwOCw3ICs1MDgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5l
Y3RpCiAKICAgICAvLyBQdXNoIHRoZSBwZW5kaW5nIHN5bmMgcmVwbHkgaW5mb3JtYXRpb24gb24g
b3VyIHN0YWNrLgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5
U3RhdGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVN
dXRleCk7CiAgICAgICAgIGlmICghbV9zaG91bGRXYWl0Rm9yU3luY1JlcGxpZXMpCiAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtNTI2LDcgKzUyNiw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAogICAgIC8vIEZpbmFsbHksIHBvcCB0aGUgcGVu
ZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uLgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAgICAgICAgIEFTU0VSVChtX3NlY29uZGFyeVRocmVh
ZFBlbmRpbmdTeW5jUmVwbHlNYXAuY29udGFpbnMoc3luY1JlcXVlc3RJRCkpOwogICAgICAgICBt
X3NlY29uZGFyeVRocmVhZFBlbmRpbmdTeW5jUmVwbHlNYXAucmVtb3ZlKHN5bmNSZXF1ZXN0SUQp
OwogICAgIH0KQEAgLTU0Niw3ICs1NDYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29k
ZXI+IENvbm5lY3RpCiAgICAgICAgIFN5bmNNZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmRpc3Bh
dGNoTWVzc2FnZXMobnVsbHB0cik7CiAgICAgICAgIAogICAgICAgICB7Ci0gICAgICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAKICAgICAgICAgICAgIC8v
IFNlY29uZCwgY2hlY2sgaWYgdGhlcmUgaXMgYSBzeW5jIHJlcGx5IGF0IHRoZSB0b3Agb2YgdGhl
IHN0YWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3BlbmRpbmdTeW5jUmVwbGllcy5pc0VtcHR5
KCkpOwpAQCAtNTkyLDcgKzU5Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4g
Q29ubmVjdGkKIAogdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdTeW5jUmVwbHkoc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBkZWNvZGVyKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
c3luY1JlcGx5U3RhdGVNdXRleCk7CiAKICAgICAvLyBHbyB0aHJvdWdoIHRoZSBzdGFjayBvZiBz
eW5jIHJlcXVlc3RzIHRoYXQgaGF2ZSBwZW5kaW5nIHJlcGxpZXMgYW5kIHNlZSB3aGljaCBvbmUK
ICAgICAvLyB0aGlzIHJlcGx5IGlzIGZvci4KQEAgLTc1MCw3ICs3NTAsNyBAQCB2b2lkIENvbm5l
Y3Rpb246OmNvbm5lY3Rpb25EaWRDbG9zZSgpCiAgICAgcGxhdGZvcm1JbnZhbGlkYXRlKCk7CiAK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogCiAg
ICAgICAgIEFTU0VSVChtX3Nob3VsZFdhaXRGb3JTeW5jUmVwbGllcyk7CiAgICAgICAgIG1fc2hv
dWxkV2FpdEZvclN5bmNSZXBsaWVzID0gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcg
QEAKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvV29ya1F1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0yOTgs
NyArMjk5LDcgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBTeW5jTWVzc2FnZVN0YXRlOwogICAgIGZy
aWVuZCBjbGFzcyBTeW5jTWVzc2FnZVN0YXRlOwogCi0gICAgTXV0ZXggbV9zeW5jUmVwbHlTdGF0
ZU11dGV4OworICAgIExvY2sgbV9zeW5jUmVwbHlTdGF0ZU11dGV4OwogICAgIGJvb2wgbV9zaG91
bGRXYWl0Rm9yU3luY1JlcGxpZXM7CiAgICAgVmVjdG9yPFBlbmRpbmdTeW5jUmVwbHk+IG1fcGVu
ZGluZ1N5bmNSZXBsaWVzOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY5MCw3ICs2OTAsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6
YXBwZW5kVXBkCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcmVuZGVyUXVldWVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9yZW5kZXJRdWV1ZU11dGV4KTsKICAgICBtX3JlbmRlclF1ZXVlLmFwcGVu
ZChXVEY6Om1vdmUoZnVuY3Rpb24pKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgog
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRl
IDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0xNDUsNyAr
MTQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFJlbmRlciBxdWV1ZSBjYW4gYmUgYWNjZXNzZWQg
b255IGZyb20gbWFpbiB0aHJlYWQgb3IgdXBkYXRlUGFpbnROb2RlIGNhbGwgc3RhY2shCiAgICAg
VmVjdG9yPHN0ZDo6ZnVuY3Rpb248dm9pZCgpPj4gbV9yZW5kZXJRdWV1ZTsKLSAgICBNdXRleCBt
X3JlbmRlclF1ZXVlTXV0ZXg7CisgICAgTG9jayBtX3JlbmRlclF1ZXVlTXV0ZXg7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVyOwog
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhy
ZWFkZWRDb21wb3NpdG9yLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIFRocmVh
ZGVkQ29tcG9zaXRvcjo6Y3JlYXRlQ29tcG9zaXRpCiAgICAgaWYgKG1fdGhyZWFkSWRlbnRpZmll
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW5pdGlhbGl6
ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFs
aXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKICAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVh
dGVUaHJlYWQoY29tcG9zaXRpbmdUaHJlYWRFbnRyeSwgdGhpcywgIldlYkNvcmU6IFRocmVhZGVk
Q29tcG9zaXRvciIpOwogCiAgICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbi53YWl0KG1f
aW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CkBAIC0zMDQsNyArMzA0LDcgQEAgdm9p
ZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUNvbXBvc2l0aQogdm9pZCBUaHJlYWRlZENvbXBv
c2l0b3I6OnJ1bkNvbXBvc2l0aW5nVGhyZWFkKCkKIHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogCiAg
ICAgICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wID0gc3RkOjptYWtlX3VuaXF1ZTxDb21wb3NpdGlu
Z1J1bkxvb3A+KFsmXSB7CiAgICAgICAgICAgICByZW5kZXJMYXllclRyZWUoKTsKQEAgLTMyMSw3
ICszMjEsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cnVuQ29tcG9zaXRpbmdUCiAgICAg
bV9zY2VuZS0+cHVyZ2VHTFJlc291cmNlcygpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgICAg
IG1fY29tcG9zaXRpbmdSdW5Mb29wID0gbnVsbHB0cjsKICAgICAgICAgbV9jb250ZXh0ID0gbnVs
bHB0cjsKICAgICAgICAgbV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uLnNpZ25hbCgpOwpAQCAt
MzMyLDcgKzMzMiw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpydW5Db21wb3NpdGluZ1QK
IAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnRlcm1pbmF0ZUNvbXBvc2l0aW5nVGhyZWFkKCkK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11
dGV4KTsKIAogICAgIG1fc2NlbmUtPmRldGFjaCgpOwogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29w
LT5ydW5Mb29wKCkuc3RvcCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsOSArMTExLDkg
QEAgcHJpdmF0ZToKIAogICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJZGVudGlmaWVyOwog
ICAgIFRocmVhZENvbmRpdGlvbiBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uOwotICAgIE11
dGV4IG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKKyAgICBMb2NrIG1faW5pdGlh
bGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKICAgICBUaHJlYWRDb25kaXRpb24gbV90ZXJtaW5h
dGVSdW5Mb29wQ29uZGl0aW9uOwotICAgIE11dGV4IG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlv
bk11dGV4OworICAgIExvY2sgbV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXg7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3
b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAyLDExICsxMDIsMTEgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3JlZ2lzdGVyZWRTY2hlbWVzOwotICAgIE11dGV4
IG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleDsKKyAgICBMb2NrIG1fcmVnaXN0ZXJlZFNjaGVtZXNN
dXRleDsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmV0YWluUHRyPFdLQ3VzdG9t
UHJvdG9jb2w+PiBDdXN0b21Qcm90b2NvbE1hcDsKICAgICBDdXN0b21Qcm90b2NvbE1hcCBtX2N1
c3RvbVByb3RvY29sTWFwOwotICAgIE11dGV4IG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleDsKKyAg
ICBMb2NrIG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleDsKICAgICAKICAgICAvLyBXS0N1c3RvbVBy
b3RvY29sIG9iamVjdHMgY2FuIGJlIHJlbW92ZWQgZnJvbSB0aGUgbV9jdXN0b21Qcm90b2NvbE1h
cCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCiAgICAgLy8gV2UgcmV0dXJuIGEgUmV0YWluUHRyIGhl
cmUgYmVjYXVzZSBpdCBpcyB1bnNhZmUgdG8gcmV0dXJuIGEgcmF3IHBvaW50ZXIgc2luY2UgdGhl
IG9iamVjdCBtaWdodCBpbW1lZGlhdGVseSBiZSBkZXN0cm95ZWQgZnJvbSBhIGRpZmZlcmVudCB0
aHJlYWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVBy
b3RvY29sTWFuYWdlckNvY29hLm1tCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2NSwyOCArMTY1LDI4IEBAIHZvaWQgQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyOjppbml0aWFsaXplKGMKIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyOjphZGRDdXN0b21Qcm90b2NvbChXS0N1c3RvbVByb3RvY29sICpjdXN0b21Qcm90b2NvbCkK
IHsKICAgICBBU1NFUlQoY3VzdG9tUHJvdG9jb2wpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY3VzdG9t
UHJvdG9jb2xNYXBNdXRleCk7CiAgICAgbV9jdXN0b21Qcm90b2NvbE1hcC5hZGQoY3VzdG9tUHJv
dG9jb2wuY3VzdG9tUHJvdG9jb2xJRCwgY3VzdG9tUHJvdG9jb2wpOwogfQogCiB2b2lkIEN1c3Rv
bVByb3RvY29sTWFuYWdlcjo6cmVtb3ZlQ3VzdG9tUHJvdG9jb2woV0tDdXN0b21Qcm90b2NvbCAq
Y3VzdG9tUHJvdG9jb2wpCiB7CiAgICAgQVNTRVJUKGN1c3RvbVByb3RvY29sKTsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOwogICAgIG1fY3VzdG9tUHJvdG9jb2xN
YXAucmVtb3ZlKGN1c3RvbVByb3RvY29sLmN1c3RvbVByb3RvY29sSUQpOwogfQogICAgIAogdm9p
ZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnJlZ2lzdGVyU2NoZW1lKGNvbnN0IFN0cmluZyYgc2No
ZW1lKQogewogICAgIEFTU0VSVCghc2NoZW1lLmlzTnVsbCgpKTsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgpOwogICAgIG1fcmVnaXN0ZXJlZFNjaGVtZXMuYWRkKHNj
aGVtZSk7CiB9CiAgICAgCiB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6dW5yZWdpc3RlclNj
aGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKICAgICBBU1NFUlQoIXNjaGVtZS5pc051bGwo
KSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKICAgICBtX3Jl
Z2lzdGVyZWRTY2hlbWVzLnJlbW92ZShzY2hlbWUpOwogfQogCkBAIC0xOTUsNyArMTk1LDcgQEAg
Ym9vbCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnN1cHBvcnRzU2NoZQogICAgIGlmIChzY2hlbWUu
aXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcmVn
aXN0ZXJlZFNjaGVtZXNNdXRleCk7CiAgICAgcmV0dXJuIG1fcmVnaXN0ZXJlZFNjaGVtZXMuY29u
dGFpbnMoc2NoZW1lKTsKIH0KIApAQCAtMjc1LDcgKzI3NSw3IEBAICAgICBpZiAoIXByb3RvY29s
KQogCiBSZXRhaW5QdHI8V0tDdXN0b21Qcm90b2NvbD4gQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpw
cm90b2NvbEZvcklEKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKIAogICAgIEN1c3RvbVByb3RvY29sTWFwOjpj
b25zdF9pdGVyYXRvciBpdCA9IG1fY3VzdG9tUHJvdG9jb2xNYXAuZmluZChjdXN0b21Qcm90b2Nv
bElEKTsKICAgICBpZiAoaXQgPT0gbV9jdXN0b21Qcm90b2NvbE1hcC5lbmQoKSkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRl
cnMvU2VjY29tcEJyb2tlci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogCiAgICAgaW50IG1fc29ja2V0OwogCi0g
ICAgbXV0YWJsZSBNdXRleCBtX3NvY2tldExvY2s7CisgICAgbXV0YWJsZSBMb2NrIG1fc29ja2V0
TG9jazsKIAogICAgIC8vIE1hcHMgZmlsZXMgdGhhdCBtYXkgYmUgcmVhZCBieSBtYWxsb2MoKSB0
byBvcGVuIGZpbGUgZGVzY3JpcHRvcnMuCiAgICAgSGFzaE1hcDxTdHJpbmcsIGludD4gbV9maWxl
RGVzY3JpcHRvckNhY2hlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
ci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04Niw3ICs4Niw3IEBAIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKiBQbHVnaW5Qcm9jZXNzQ28K
ICAgICBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQocGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24pOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90b2tlbnNBbmRD
b25uZWN0aW9uc011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90b2tlbnNBbmRD
b25uZWN0aW9uc011dGV4KTsKICAgICAgICAgQVNTRVJUKCFtX3Rva2Vuc0FuZENvbm5lY3Rpb25z
LmNvbnRhaW5zKHBsdWdpblByb2Nlc3NUb2tlbikpOwogCiAgICAgICAgIG1fdG9rZW5zQW5kQ29u
bmVjdGlvbnMuc2V0KHBsdWdpblByb2Nlc3NUb2tlbiwgcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24t
PmNvbm5lY3Rpb24oKSk7CkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXI6OnJlbQogICAgIEFTU0VSVCh2ZWN0b3JJbmRleCAhPSBub3RGb3VuZCk7
CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rp
b25zTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rp
b25zTXV0ZXgpOwogICAgICAgICBBU1NFUlQobV90b2tlbnNBbmRDb25uZWN0aW9ucy5jb250YWlu
cyhwbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi0+cGx1Z2luUHJvY2Vzc1Rva2VuKCkpKTsKICAgICAg
ICAgCiAgICAgICAgIG1fdG9rZW5zQW5kQ29ubmVjdGlvbnMucmVtb3ZlKHBsdWdpblByb2Nlc3ND
b25uZWN0aW9uLT5wbHVnaW5Qcm9jZXNzVG9rZW4oKSk7CkBAIC0xMTIsNyArMTEyLDcgQEAgdm9p
ZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OnJlbQogCiB2b2lkIFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlcjo6cGx1Z2luUHJvY2Vzc0NyYXNoZWQodWludDY0X3QgcGx1Z2lu
UHJvY2Vzc1Rva2VuKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5l
Y3Rpb25zTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdG9rZW5zQW5kQ29ubmVjdGlv
bnNNdXRleCk7CiAgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uID0gbV90b2tlbnNBbmRD
b25uZWN0aW9ucy5nZXQocGx1Z2luUHJvY2Vzc1Rva2VuKTsKIAogICAgIC8vIEl0J3MgT0sgZm9y
IGNvbm5lY3Rpb24gdG8gYmUgbnVsbCBoZXJlOyBpdCB3aWxsIGhhcHBlbiBpZiB0aGlzIHdlYiBw
cm9jZXNzIGRvZXNuJ3Qga25vdwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8UmVmUHRyPFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uPj4gbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbnM7CiAKLSAgICBNdXRleCBtX3Rv
a2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXg7CisgICAgTG9jayBtX3Rva2Vuc0FuZENvbm5lY3Rpb25z
TXV0ZXg7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4+IG1f
dG9rZW5zQW5kQ29ubmVjdGlvbnM7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2aXNpb24gMTg4
NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAgRXZlbnREaXNwYXRjaGVyOjp+
RXZlbnREaXNwYXRjaGVyKCkKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogdm9pZCBFdmVu
dERpc3BhdGNoZXI6OmFkZFNjcm9sbGluZ1RyZWVGb3JQYWdlKFdlYlBhZ2UqIHdlYlBhZ2UpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKIAogICAgIEFTU0VSVCh3ZWJQ
YWdlLT5jb3JlUGFnZSgpLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKTsKICAgICBBU1NFUlQoIW1f
c2Nyb2xsaW5nVHJlZXMuY29udGFpbnMod2ViUGFnZS0+cGFnZUlEKCkpKTsKQEAgLTc2LDcgKzc2
LDcgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OmFkZFNjcm9sbGluZ1RyZWVGbwogCiB2b2lkIEV2
ZW50RGlzcGF0Y2hlcjo6cmVtb3ZlU2Nyb2xsaW5nVHJlZUZvclBhZ2UoV2ViUGFnZSogd2ViUGFn
ZSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOwogICAgIEFTU0VSVCht
X3Njcm9sbGluZ1RyZWVzLmNvbnRhaW5zKHdlYlBhZ2UtPnBhZ2VJRCgpKSk7CiAKICAgICBtX3Nj
cm9sbGluZ1RyZWVzLnJlbW92ZSh3ZWJQYWdlLT5wYWdlSUQoKSk7CkBAIC0xMzIsNyArMTMyLDcg
QEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQodWludDY0XwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Njcm9s
bGluZ1RyZWVzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNN
dXRleCk7CiAgICAgaWYgKFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHNjcm9sbGluZ1Ry
ZWUgPSBtX3Njcm9sbGluZ1RyZWVzLmdldChwYWdlSUQpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBJ
dCdzIHByZXR0eSBob3JyaWJsZSB0aGF0IHdlJ3JlIHVwZGF0aW5nIHRoZSBiYWNrL2ZvcndhcmQg
c3RhdGUgaGVyZS4KICAgICAgICAgLy8gV2ViQ29yZSBzaG91bGQgYWx3YXlzIGtub3cgdGhlIGN1
cnJlbnQgc3RhdGUgYW5kIGtub3cgd2hlbiBpdCBjaGFuZ2VzIHNvIHRoZQpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAko
cmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6
CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJ
TkcpCi0gICAgTXV0ZXggbV9zY3JvbGxpbmdUcmVlc011dGV4OworICAgIExvY2sgbV9zY3JvbGxp
bmdUcmVlc011dGV4OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpUaHJl
YWRlZFNjcm9sbGluZ1RyZWU+PiBtX3Njcm9sbGluZ1RyZWVzOwogI2VuZGlmCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OldoZWVsRXZlbnREZWx0YVRyYWNrZXI+IG1fcmVjZW50V2hlZWxF
dmVudERlbHRhVHJhY2tlcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9X
ZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRT
b3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAsNiArMjAsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFNvdXBSZXF1ZXN0SW5wdXRT
dHJlYW0uaCIKIAorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIApAQCAtNDEsNyArNDIsNyBAQCBz
dHJ1Y3QgX1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Qcml2CiAgICAgdWludDY0X3QgYnl0
ZXNSZWNlaXZlZDsKICAgICB1aW50NjRfdCBieXRlc1JlYWQ7CiAKLSAgICBNdXRleCByZWFkTG9j
azsKKyAgICBMb2NrIHJlYWRMb2NrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1JlYWREYXRh
PiBwZW5kaW5nQXN5bmNSZWFkOwogfTsKIApAQCAtODQsNyArODUsNyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtCiAgICAgV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0
cmVhbSogc3RyZWFtID0gV0VCS0lUX1NPVVBfUkVRVUVTVF9JTlBVVF9TVFJFQU0oaW5wdXRTdHJl
YW0pOwogICAgIEdSZWZQdHI8R1Rhc2s+IHRhc2sgPSBhZG9wdEdSZWYoZ190YXNrX25ldyhzdHJl
YW0sIGNhbmNlbGxhYmxlLCBjYWxsYmFjaywgdXNlckRhdGEpKTsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihzdHJlYW0tPnByaXYtPnJlYWRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihz
dHJlYW0tPnByaXYtPnJlYWRMb2NrKTsKIAogICAgIGlmICghd2Via2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbUhhc0RhdGFUb1JlYWQoc3RyZWFtKSAmJiAhd2Via2l0U291cFJlcXVlc3RJbnB1dFN0
cmVhbUlzV2FpdGluZ0ZvckRhdGEoc3RyZWFtKSkgewogICAgICAgICBnX3Rhc2tfcmV0dXJuX2lu
dCh0YXNrLmdldCgpLCAwKTsKQEAgLTE0Myw3ICsxNDQsNyBAQCB2b2lkIHdlYmtpdFNvdXBSZXF1
ZXN0SW5wdXRTdHJlYW1BZGREYXRhCiAgICAgaWYgKHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJl
YW1GaW5pc2hlZChzdHJlYW0pKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIoc3RyZWFtLT5wcml2LT5yZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIoc3Ry
ZWFtLT5wcml2LT5yZWFkTG9jayk7CiAKICAgICBpZiAoZGF0YUxlbmd0aCkgewogICAgICAgICAv
LyBUcnVuY2F0ZSB0aGUgZGF0YUxlbmd0aCB0byB0aGUgY29udGVudExlbmd0aCBpZiBpdCdzIGtu
b3duLgpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTUtMDgtMTcgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5p
bmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6c3luY1RpbWVyRmlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjptYXJrSW1wb3J0ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpibG9ja1VudGlsSW1wb3J0Q29tcGxldGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtU3luYyk6CisgICAgICAg
ICogU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaDoKKyAgICAgICAgKiBTdG9yYWdlL1N0b3JhZ2VU
cmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzZXREYXRhYmFz
ZURpcmVjdG9yeVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmZpbmlz
aGVkSW1wb3J0aW5nT3JpZ2luSWRlbnRpZmllcnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFn
ZVRyYWNrZXI6OnN5bmNJbXBvcnRPcmlnaW5JZGVudGlmaWVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTdG9yYWdlVHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnNldE9yaWdpbkRldGFpbHMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWxzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpvcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VUcmFja2VyOjpkZWxldGVBbGxPcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlQWxsT3JpZ2lucyk6CisgICAgICAgIChXZWJDb3JlOjpT
dG9yYWdlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VU
cmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFj
a2VyOjpjYW5EZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6
OmNhbmNlbERlbGV0aW5nT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2Vy
OjpkaXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIu
aDoKKwogMjAxNS0wOC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtXaW4gQ01ha2VdIEFsbG93IFdlYktpdExpYnJhcmllcyBkaXJlY3Rv
cnkgdG8gYmUgc2V0IGZyb20gdGhlIGNvbW1hbmQgbGluZQpJbmRleDogU291cmNlL1dlYktpdC9T
dG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9T
dG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9X
ZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQs
NyArMTY0LDcgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnN5bmNUaW1lckZpcmVkKCkKIAogICAg
IGJvb2wgcGFydGlhbFN5bmMgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7
CiAKICAgICAgICAgLy8gRG8gbm90IHNjaGVkdWxlIGFub3RoZXIgc3luYyBpZiB3ZSdyZSBzdGls
bCB0cnlpbmcgdG8gY29tcGxldGUgdGhlCiAgICAgICAgIC8vIHByZXZpb3VzIG9uZS4gQnV0LCBp
ZiB3ZSdyZSBzaHV0dGluZyBkb3duLCBzY2hlZHVsZSBpdCBhbnl3YXkuCkBAIC0zNTIsOSArMzUy
LDkgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnBlcmZvcm1JbXBvcnQoKQogCiB2b2lkIFN0b3Jh
Z2VBcmVhU3luYzo6bWFya0ltcG9ydGVkKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9p
bXBvcnRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2ltcG9ydExvY2spOwogICAgIG1f
aW1wb3J0Q29tcGxldGUgPSB0cnVlOwotICAgIG1faW1wb3J0Q29uZGl0aW9uLnNpZ25hbCgpOwor
ICAgIG1faW1wb3J0Q29uZGl0aW9uLm5vdGlmeU9uZSgpOwogfQogCiAvLyBGSVhNRTogSW4gdGhl
IGZ1dHVyZSwgd2Ugc2hvdWxkIGFsbG93IHVzZSBvZiBTdG9yYWdlQXJlYXMgd2hpbGUgaXQncyBp
bXBvcnRpbmcgKHdoZW4gc2FmZSB0byBkbyBzbykuCkBAIC0zNzIsNyArMzcyLDcgQEAgdm9pZCBT
dG9yYWdlQXJlYVN5bmM6OmJsb2NrVW50aWxJbXBvcnRDbwogICAgIGlmICghbV9zdG9yYWdlQXJl
YSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW1wb3J0TG9j
ayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbXBvcnRMb2NrKTsKICAgICB3aGlsZSAoIW1f
aW1wb3J0Q29tcGxldGUpCiAgICAgICAgIG1faW1wb3J0Q29uZGl0aW9uLndhaXQobV9pbXBvcnRM
b2NrKTsKICAgICBtX3N0b3JhZ2VBcmVhID0gbnVsbHB0cjsKQEAgLTQ2Nyw3ICs0NjcsNyBAQCB2
b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMoKQogICAgIGJvb2wgY2xlYXJJdGVtczsK
ICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBpdGVtczsKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9z
eW5jTG9jayk7CiAKICAgICAgICAgQVNTRVJUKG1fc3luY1NjaGVkdWxlZCk7CiAKQEAgLTQ4Miw3
ICs0ODIsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMoKQogICAgIHN5bmMo
Y2xlYXJJdGVtcywgaXRlbXMpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zeW5jTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAg
ICAgICBtX3N5bmNJblByb2dyZXNzID0gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2Uv
V2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlRGF0YWJhc2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC04
NSw3ICs4Niw3IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBTdHJpbmcgbV9kYXRhYmFzZUlkZW50
aWZpZXI7CiAKLSAgICBNdXRleCBtX3N5bmNMb2NrOworICAgIExvY2sgbV9zeW5jTG9jazsKICAg
ICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2l0ZW1zUGVuZGluZ1N5bmM7CiAgICAgYm9vbCBt
X2NsZWFySXRlbXNXaGlsZVN5bmNpbmc7CiAgICAgYm9vbCBtX3N5bmNTY2hlZHVsZWQ7CkBAIC05
NCw4ICs5NSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fc3luY0Nsb3NlRGF0YWJhc2U7CiAK
LSAgICBtdXRhYmxlIE11dGV4IG1faW1wb3J0TG9jazsKLSAgICBUaHJlYWRDb25kaXRpb24gbV9p
bXBvcnRDb25kaXRpb247CisgICAgbXV0YWJsZSBMb2NrIG1faW1wb3J0TG9jazsKKyAgICBDb25k
aXRpb24gbV9pbXBvcnRDb25kaXRpb247CiAgICAgYm9vbCBtX2ltcG9ydENvbXBsZXRlOwogICAg
IHZvaWQgbWFya0ltcG9ydGVkKCk7CiAgICAgdm9pZCBtaWdyYXRlSXRlbVRhYmxlSWZOZWVkZWQo
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAkocmV2aXNp
b24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIFN0b3JhZ2VUcmFja2VyOjpTdG9yYWdl
VHJhY2tlcihjb25zdCBTdHIKIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgp
OwogCiAgICAgaWYgKG1fZGF0YWJhc2UuaXNPcGVuKCkpCiAgICAgICAgIG1fZGF0YWJhc2UuY2xv
c2UoKTsKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzZXREYXRhYmFz
ZURpcmVjdG9yCiAgICAgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aCA9IHBhdGguaXNvbGF0ZWRDb3B5
KCk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAg
IG1fb3JpZ2luU2V0LmNsZWFyKCk7CiAgICAgfQogCkBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBT
dG9yYWdlVHJhY2tlcjo6aW1wb3J0T3JpZ2luSWRlbnRpZgogCiB2b2lkIFN0b3JhZ2VUcmFja2Vy
OjpmaW5pc2hlZEltcG9ydGluZ09yaWdpbklkZW50aWZpZXJzKCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFi
YXNlTXV0ZXgpOwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPmRpZEZpbmlz
aExvYWRpbmdPcmlnaW5zKCk7CiB9CkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBTdG9yYWdlVHJh
Y2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwog
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKIAogICAgICAgICAvLyBE
b24ndCBmb3JjZSBjcmVhdGlvbiBvZiBTdG9yYWdlVHJhY2tlcidzIGRiIGp1c3QgYmVjYXVzZSBh
IHRyYWNrZXIKICAgICAgICAgLy8gd2FzIGluaXRpYWxpemVkLiBJdCB3aWxsIGJlIGNyZWF0ZWQg
aWYgbG9jYWwgc3RvcmFnZSBkYnMgYXJlIGZvdW5kCkBAIC0yMTcsNyArMjE3LDcgQEAgdm9pZCBT
dG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgICAgICAgICAgaW50IHJlc3Vs
dDsKICAgICAgICAgICAgIAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIE11dGV4TG9j
a2VyIGxvY2tPcmlnaW5zKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICAgICAgICAgIExvY2tI
b2xkZXIgbG9ja09yaWdpbnMobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgICAgICAgICAgd2hp
bGUgKChyZXN1bHQgPSBzdGF0ZW1lbnQuc3RlcCgpKSA9PSBTUUxJVEVfUk9XKQogICAgICAgICAg
ICAgICAgICAgICBtX29yaWdpblNldC5hZGQoc3RhdGVtZW50LmdldENvbHVtblRleHQoMCkuaXNv
bGF0ZWRDb3B5KCkpOwogICAgICAgICAgICAgfQpAQCAtMjMyLDEwICsyMzIsMTAgQEAgdm9pZCBT
dG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgIHN5bmNGaWxlU3lzdGVtQW5k
VHJhY2tlckRhdGFiYXNlKCk7CiAgICAgCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50TXV0
ZXgpOwogCiAgICAgICAgIGlmIChtX2NsaWVudCkgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgICAgICBPcmlnaW5TZXQ6OmNvbnN0X2l0ZXJhdG9y
IGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOwogICAgICAgICAgICAgZm9yIChPcmlnaW5TZXQ6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gbV9vcmlnaW5TZXQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQog
ICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZE1vZGlmeU9yaWdpbigqaXQpOwpA
QCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVtQW5k
VHIKIAogICAgIFZlY3RvcjxTdHJpbmc+IHBhdGhzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
ZGF0YWJhc2VNdXRleCk7CiAgICAgICAgIHBhdGhzID0gbGlzdERpcmVjdG9yeShtX3N0b3JhZ2VE
aXJlY3RvcnlQYXRoLCAiKi5sb2NhbHN0b3JhZ2UiKTsKICAgICB9CiAKQEAgLTI2NSw3ICsyNjUs
NyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRmlsZVN5c3RlbUFuZFRyCiAgICAgLy8gZGVs
ZXRpb25zIGZyb20gZGlzayBhbmQgZnJvbSBtX29yaWdpblNldC4KICAgICBPcmlnaW5TZXQgb3Jp
Z2luU2V0Q29weTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNl
dE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAg
ICAgICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fb3JpZ2luU2V0LmJl
Z2luKCksIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAg
ICAgICBvcmlnaW5TZXRDb3B5LmFkZCgoKml0KS5pc29sYXRlZENvcHkoKSk7CiAgICAgfQpAQCAt
MzA2LDcgKzMwNiw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnNldE9yaWdpbkRldGFpbHMoY28K
ICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9v
cmlnaW5TZXRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0
ZXgpOwogCiAgICAgICAgIGlmIChtX29yaWdpblNldC5jb250YWlucyhvcmlnaW5JZGVudGlmaWVy
KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTMzNyw3ICszMzcsNyBAQCB2b2lkIFN0b3JhZ2VU
cmFja2VyOjpzeW5jU2V0T3JpZ2luRGV0YWlsCiAKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJv
Z3Jlc3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNl
TXV0ZXgpOwogCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZSh0cnVlKTsKICAgICAKQEAgLTM1Nywx
MyArMzU3LDEzIEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWwKICAg
ICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gZXN0YWJsaXNoIG9yaWdpbiAnJXMnIGluIHRoZSB0
cmFja2VyIiwgb3JpZ2luSWRlbnRpZmllci5hc2NpaSgpLmRhdGEoKSk7CiAKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgIGlmICghbV9vcmlnaW5TZXQu
Y29udGFpbnMob3JpZ2luSWRlbnRpZmllcikpCiAgICAgICAgICAgICBtX29yaWdpblNldC5hZGQo
b3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50
TXV0ZXgpOwogICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlz
cGF0Y2hEaWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpAQCAtMzc2LDcg
KzM3Niw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6Om9yaWdpbnMoVmVjdG9yPFJlZlAKICAgICBp
ZiAoIW1faXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX29yaWdpblNldE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11
dGV4KTsKIAogICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fb3JpZ2lu
U2V0LmJlZ2luKCksIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlk
ZW50aWZpZXIoKml0KSk7CkBAIC0zOTIsNyArMzkyLDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6
ZGVsZXRlQWxsT3JpZ2lucygpCiAgICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgd2lsbERlbGV0ZUFsbE9yaWdpbnMoKTsK
ICAgICAgICAgbV9vcmlnaW5TZXQuY2xlYXIoKTsKICAgICB9CkBAIC00MTcsNyArNDE3LDcgQEAg
dm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9yaWdpbgogCiAgICAgU1FMaXRlVHJh
bnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogICAgIAot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShm
YWxzZSk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNDM3LDcgKzQzNyw3IEBA
IHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVBbGxPcmlnaW4KICAgICAgICAgZGVsZXRl
RmlsZShzdGF0ZW1lbnQuZ2V0Q29sdW1uVGV4dCgxKSk7CiAKICAgICAgICAgewotICAgICAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgpOworICAgICAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9jbGllbnRNdXRleCk7CiAgICAgICAgICAgICBpZiAobV9jbGllbnQpCiAg
ICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkTW9kaWZ5T3JpZ2luKHN0YXRlbWVu
dC5nZXRDb2x1bW5UZXh0KDApKTsKICAgICAgICAgfQpAQCAtNDk5LDcgKzQ5OSw3IEBAIHZvaWQg
U3RvcmFnZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cmkKICAgICBTdHJpbmcgb3JpZ2luSWQg
PSBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpOwogICAgIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgd2lsbERlbGV0ZU9yaWdpbihvcmlnaW5J
ZCk7CiAgICAgICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5JZCk7CiAgICAgfQpAQCAtNTE2
LDcgKzUxNiw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4oY28KIAog
ICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291
bnRlcjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgCiAgICAgaWYgKCFjYW5EZWxl
dGVPcmlnaW4ob3JpZ2luSWRlbnRpZmllcikpIHsKICAgICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0
ZWQgdG8gZGVsZXRlIG9yaWdpbiAnJXMnIHdoaWxlIGl0IHdhcyBiZWluZyBjcmVhdGVkXG4iLCBv
cmlnaW5JZGVudGlmaWVyLmFzY2lpKCkuZGF0YSgpKTsKQEAgLTU0OSw3ICs1NDksNyBAQCB2b2lk
IFN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKGNvCiAgICAgCiAgICAgYm9vbCBzaG91
bGREZWxldGVUcmFja2VyRmlsZXMgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9v
cmlnaW5TZXRNdXRleCk7CiAgICAgICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5JZGVudGlm
aWVyKTsKICAgICAgICAgc2hvdWxkRGVsZXRlVHJhY2tlckZpbGVzID0gbV9vcmlnaW5TZXQuaXNF
bXB0eSgpOwogICAgIH0KQEAgLTU2Niw3ICs1NjYsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpz
eW5jRGVsZXRlT3JpZ2luKGNvCiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50
TXV0ZXgpOwogICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlz
cGF0Y2hEaWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpAQCAtNTkyLDcg
KzU5Miw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OndpbGxEZWxldGVPcmlnaW4oY28KIGJvb2wg
U3RvcmFnZVRyYWNrZXI6OmNhbkRlbGV0ZU9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlTXV0ZXgudHJ5TG9jaygpKTsKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgcmV0dXJuIG1fb3JpZ2luc0JlaW5nRGVsZXRlZC5j
b250YWlucyhvcmlnaW5JZGVudGlmaWVyKTsKIH0KIApAQCAtNjAxLDkgKzYwMSw5IEBAIHZvaWQg
U3RvcmFnZVRyYWNrZXI6OmNhbmNlbERlbGV0aW5nT3JpZ2kKICAgICBpZiAoIW1faXNBY3RpdmUp
CiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICBpZiAoIW1fb3JpZ2luc0Jl
aW5nRGVsZXRlZC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBtX29yaWdpbnNCZWluZ0RlbGV0ZWQu
cmVtb3ZlKG9yaWdpbklkZW50aWZpZXIpOwogICAgIH0KQEAgLTY0Nyw3ICs2NDcsNyBAQCBsb25n
IGxvbmcgU3RvcmFnZVRyYWNrZXI6OmRpc2tVc2FnZUZvck9yCiAgICAgaWYgKCFtX2lzQWN0aXZl
KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNl
TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAKICAgICBT
dHJpbmcgcGF0aCA9IGRhdGFiYXNlUGF0aEZvck9yaWdpbihvcmlnaW4tPmRhdGFiYXNlSWRlbnRp
ZmllcigpKTsKICAgICBpZiAocGF0aC5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1N0
b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1N0b3Jh
Z2UvU3RvcmFnZVRyYWNrZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9T
dG9yYWdlL1N0b3JhZ2VUcmFja2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDE1ICs5NSwxNSBA
QCBwcml2YXRlOgogICAgIHZvaWQgc3luY0ltcG9ydE9yaWdpbklkZW50aWZpZXJzKCk7CiAKICAg
ICAvLyBNdXRleCBmb3IgbV9kYXRhYmFzZSBhbmQgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC4KLSAg
ICBNdXRleCBtX2RhdGFiYXNlTXV0ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlTXV0ZXg7CiAgICAg
U1FMaXRlRGF0YWJhc2UgbV9kYXRhYmFzZTsKICAgICBTdHJpbmcgbV9zdG9yYWdlRGlyZWN0b3J5
UGF0aDsKIAotICAgIE11dGV4IG1fY2xpZW50TXV0ZXg7CisgICAgTG9jayBtX2NsaWVudE11dGV4
OwogICAgIFN0b3JhZ2VUcmFja2VyQ2xpZW50KiBtX2NsaWVudDsKIAogICAgIC8vIEd1YXJkIGZv
ciBtX29yaWdpblNldCBhbmQgbV9vcmlnaW5zQmVpbmdEZWxldGVkLgotICAgIE11dGV4IG1fb3Jp
Z2luU2V0TXV0ZXg7CisgICAgTG9jayBtX29yaWdpblNldE11dGV4OwogICAgIHR5cGVkZWYgSGFz
aFNldDxTdHJpbmc+IE9yaWdpblNldDsKICAgICBPcmlnaW5TZXQgbV9vcmlnaW5TZXQ7CiAgICAg
T3JpZ2luU2V0IG1fb3JpZ2luc0JlaW5nRGVsZXRlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9z
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpN
dXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbToK
KyAgICAgICAgKFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2spOgorICAgICAgICAoLVtX
ZWJGaXhlZFBvc2l0aW9uQ29udGVudCBzY3JvbGxPclpvb21DaGFuZ2VkOl0pOgorICAgICAgICAo
LVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBvdmVyZmxvd1Njcm9sbFBvc2l0aW9uRm9yTGF5ZXI6
Y2hhbmdlZFRvOl0pOgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBzZXRWaWV3
cG9ydENvbnN0cmFpbmVkTGF5ZXJzOnN0aWNreUNvbnRhaW5lck1hcDpdKToKKyAgICAgICAgKC1b
V2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQgaGFzRml4ZWRPclN0aWNreVBvc2l0aW9uTGF5ZXJzXSk6
CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IG1pbmltdW1PZmZzZXRGcm9tRml4
ZWRQb3NpdGlvbkxheWVyc1RvQW5jaG9yRWRnZTpvZlJlY3Q6aW5MYXllcjpdKToKKwogMjAxNS0w
OC0xMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWZhY3RvciBhbmQgaW1wcm92ZSBUZXh0SW5kaWNhdG9yIHRvIHByZXBhcmUgZm9yIHRlc3RzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29u
dGVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbQkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dl
YktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0JKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDkgKzQ4LDkgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIAotc3RhdGljIE11dGV4JiBXZWJGaXhlZFBvc2l0aW9uQ29udGVu
dERhdGFMb2NrKCkKK3N0YXRpYyBMb2NrJiBXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2Nr
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIG11dGV4LCAoKSk7
CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xMDEsNyArMTAxLDcgQEAgLSAodm9pZClkZWFs
bG9jCiAKIC0gKHZvaWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dSZWN0KXBvc2l0aW9uZWRPYmpl
Y3RzUmVjdAogewotICAgIE11dGV4TG9ja2VyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnRE
YXRhTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnRE
YXRhTG9jaygpKTsKIAogICAgIExheWVySW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gX3By
aXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5lbmQoKTsKICAgICBmb3IgKExheWVy
SW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFp
bmVkTGF5ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewpAQCAtMTQwLDcgKzE0MCw3IEBA
IC0gKHZvaWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dSZWN0KXBvc2kKIAogLSAodm9pZClvdmVy
Zmxvd1Njcm9sbFBvc2l0aW9uRm9yTGF5ZXI6KENBTGF5ZXIgKilzY3JvbGxMYXllciBjaGFuZ2Vk
VG86KENHUG9pbnQpc2Nyb2xsUG9zaXRpb24KIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZp
eGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZp
eGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAKICAgICBMYXllckluZm9NYXA6OmNvbnN0
X2l0ZXJhdG9yIGVuZCA9IF9wcml2YXRlLT5tX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuZW5k
KCk7CiAgICAgZm9yIChMYXllckluZm9NYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gX3ByaXZhdGUt
Pm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsK
QEAgLTE3Myw3ICsxNzMsNyBAQCAtICh2b2lkKWRpZEZpbmlzaFNjcm9sbGluZ09yWm9vbWluZwog
CiAtICh2b2lkKXNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6KFdURjo6SGFzaE1hcDxDQUxh
eWVyICosIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpWaWV3cG9ydENvbnN0cmFpbnRzPj4mKWxh
eWVyTWFwIHN0aWNreUNvbnRhaW5lck1hcDooV1RGOjpIYXNoTWFwPENBTGF5ZXIqLCBDQUxheWVy
Kj4mKXN0aWNreUNvbnRhaW5lcnMKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZpeGVkUG9z
aXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZpeGVkUG9z
aXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAKICAgICBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0
cmFpbmVkTGF5ZXJzLmNsZWFyKCk7CiAKQEAgLTE5MCw3ICsxOTAsNyBAQCAtICh2b2lkKXNldFZp
ZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6KFdUCiAKIC0gKEJPT0wpaGFzRml4ZWRPclN0aWNreVBv
c2l0aW9uTGF5ZXJzCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29u
dGVudERhdGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29u
dGVudERhdGFMb2NrKCkpOwogICAgIHJldHVybiAhX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJh
aW5lZExheWVycy5pc0VtcHR5KCk7CiB9CiAKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgVmll
d3BvcnRDb25zdHJhaW50czo6QW5jaG9yRWRnZUZsCiAKIC0gKENHRmxvYXQpbWluaW11bU9mZnNl
dEZyb21GaXhlZFBvc2l0aW9uTGF5ZXJzVG9BbmNob3JFZGdlOihXZWJGaXhlZFBvc2l0aW9uQW5j
aG9yRWRnZSlhbmNob3JFZGdlIG9mUmVjdDooQ0dSZWN0KXJlY3QgaW5MYXllcjooQ0FMYXllciAq
KWxheWVyCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERh
dGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERh
dGFMb2NrKCkpOwogICAgIFZpZXdwb3J0Q29uc3RyYWludHM6OkFuY2hvckVkZ2VGbGFncyBhbmNo
b3JFZGdlRmxhZ3MgPSBhbmNob3JFZGdlRmxhZ3NGb3JBbmNob3JFZGdlKGFuY2hvckVkZ2UpOwog
ICAgIENHRmxvYXQgbWluaW11bU9mZnNldCA9IENHRkxPQVRfTUFYOwogICAgIExheWVySW5mb01h
cDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExh
eWVycy5lbmQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jawor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9yYWdl
L1dlYkRhdGFiYXNlTWFuYWdlci5tbToKKyAgICAgICAgKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRh
c2tJZGVudGlmaWVyTG9jayk6CisgICAgICAgICgrW1dlYkRhdGFiYXNlTWFuYWdlciBzdGFydEJh
Y2tncm91bmRUYXNrXSk6CisgICAgICAgICgrW1dlYkRhdGFiYXNlTWFuYWdlciBlbmRCYWNrZ3Jv
dW5kVGFza10pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBfc3luY2hyb25pemVDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdF0pOgorICAgICAg
ICAoLVtXZWJWaWV3IF9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdEluV2ViVGhyZWFk
OnN5bmNocm9uaXplOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zZXRDdXN0b21GaXhlZFBvc2l0
aW9uTGF5b3V0UmVjdDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZmV0Y2hDdXN0b21GaXhlZFBv
c2l0aW9uTGF5b3V0UmVjdDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisK
IDIwMTUtMDgtMTMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtD
b2NvYV0gRG93bmxvYWRzIGRvIG5vdCBzdGFydCBpZiBwb2xpY3kgZGVjaXNpb24gaXMgbWFkZSBh
c3luY2hyb25vdXNseQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFz
ZU1hbmFnZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJE
YXRhYmFzZU1hbmFnZXIubW0JKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYsOSAr
MjI2LDkgQEAgKyAodm9pZClzY2hlZHVsZUVtcHR5RGF0YWJhc2VSZW1vdmFsCiAjaWYgUExBVEZP
Uk0oSU9TKQogQGltcGxlbWVudGF0aW9uIFdlYkRhdGFiYXNlTWFuYWdlciAoV2ViRGF0YWJhc2VN
YW5hZ2VySW50ZXJuYWwpCiAKLXN0YXRpYyBNdXRleCYgdHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFz
a0lkZW50aWZpZXJMb2NrKCkKK3N0YXRpYyBMb2NrJiB0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNr
SWRlbnRpZmllckxvY2soKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChN
dXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9j
aywgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBA
QCArICh2b2lkKWRpZEZpbmlzaExhc3RUcmFuc2FjdGlvbgogCiArICh2b2lkKXN0YXJ0QmFja2dy
b3VuZFRhc2sKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRh
c2tJZGVudGlmaWVyTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rpb25CYWNr
Z3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOwogCiAgICAgLy8gSWYgdGhlcmUncyBhbHJlYWR5
IGFuIGV4aXN0aW5nIGJhY2tncm91bmQgdGFzayBnb2luZyBvbiwgdGhlcmUncyBubyBuZWVkIHRv
IHN0YXJ0IGEgbmV3IG9uZS4KICAgICBpZiAoZ2V0VHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lk
ZW50aWZpZXIoKSAhPSBpbnZhbGlkV2ViQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyKCkpCkBAIC0y
NzUsNyArMjc1LDcgQEAgKyAodm9pZClzdGFydEJhY2tncm91bmRUYXNrCiAKICsgKHZvaWQpZW5k
QmFja2dyb3VuZFRhc2sKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKHRyYW5zYWN0aW9uQmFja2dy
b3VuZFRhc2tJZGVudGlmaWVyTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rp
b25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOwogCiAgICAgLy8gSXQgaXMgcG9zc2li
bGUgdGhhdCB3ZSB3ZXJlIHVuYWJsZSB0byBzdGFydCB0aGUgYmFja2dyb3VuZCB0YXNrIHdoZW4g
dGhlIGZpcnN0IHRyYW5zYWN0aW9uIGJlZ2FuLgogICAgIC8vIERvbid0IHRyeSB0byBlbmQgdGhl
IHRhc2sgaW4gdGhhdCBjYXNlLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNjMyLDcgKzM2MzIsNyBAQCAtICh2b2lkKV9zeW5jaHJv
bml6ZUN1c3RvbUZpeGVkUG9zaXRpb25MCiAKICAgICBJbnRSZWN0IG5ld1JlY3Q7CiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9u
TGF5b3V0UmVjdE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoX3ByaXZhdGUtPnBl
bmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKICAgICAgICAgaWYgKENHUmVjdElz
TnVsbChfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgbmV3UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoX3ByaXZhdGUt
PnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCk7CkBAIC0zNjQ2LDcgKzM2NDYsNyBAQCAt
ICh2b2lkKV9zeW5jaHJvbml6ZUN1c3RvbUZpeGVkUG9zaXRpb25MCiAtICh2b2lkKV9zZXRDdXN0
b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdEluV2ViVGhyZWFkOihDR1JlY3QpcmVjdCBzeW5jaHJv
bml6ZTooQk9PTClzeW5jaHJvbml6ZQogewogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91
dFJlY3RNdXRleCk7CiAgICAgICAgIF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91
dFJlY3QgPSByZWN0OwogICAgIH0KICAgICBpZiAoIXN5bmNocm9uaXplKQpAQCAtMzY2MCw3ICsz
NjYwLDcgQEAgLSAodm9pZClfc2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlYwogewogICAg
IEFTU0VSVChXZWJUaHJlYWRJc0xvY2tlZCgpKTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25M
YXlvdXRSZWN0TXV0ZXgpOwogICAgICAgICBfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25M
YXlvdXRSZWN0ID0gcmVjdDsKICAgICB9CiAgICAgW3NlbGYgX3N5bmNocm9uaXplQ3VzdG9tRml4
ZWRQb3NpdGlvbkxheW91dFJlY3RdOwpAQCAtMzY2OCw3ICszNjY4LDcgQEAgLSAodm9pZClfc2V0
Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlYwogCiAtIChCT09MKV9mZXRjaEN1c3RvbUZpeGVk
UG9zaXRpb25MYXlvdXRSZWN0OihOU1JlY3QqKXJlY3QKIHsKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0
TXV0ZXgpOwogICAgIGlmIChDR1JlY3RJc051bGwoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0
aW9uTGF5b3V0UmVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDks
NyArMjQ5LDcgQEAgQGludGVyZmFjZSBXZWJWaWV3UHJpdmF0ZSA6IE5TT2JqZWN0IHsKICAgICBD
R1NpemUgZml4ZWRMYXlvdXRTaXplOwogICAgIEJPT0wgbWFpblZpZXdJc1Njcm9sbGluZ09yWm9v
bWluZzsKICAgICBpbnQzMl90IGRpZERyYXdUaWxlczsKLSAgICBXVEY6Ok11dGV4IHBlbmRpbmdG
aXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4OworICAgIFdURjo6TG9jayBwZW5kaW5nRml4ZWRQ
b3NpdGlvbkxheW91dFJlY3RNdXRleDsKICAgICBDR1JlY3QgcGVuZGluZ0ZpeGVkUG9zaXRpb25M
YXlvdXRSZWN0OwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI3IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdU
Rjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBQbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6c2NoZWR1bGVDYWxsKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnJlZ2lzdGVyUGx1Z2luKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnVucmVnaXN0ZXJQbHVnaW4p
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6ZGlzcGF0Y2hD
YWxsc0ZvclBsdWdpbik6CisgICAgICAgICogUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1
bGVyLmg6CisgICAgICAgICogV2ViSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkljb25E
YXRhYmFzZTo6ZGlkUmVtb3ZlQWxsSWNvbnMpOgorICAgICAgICAoV2ViSWNvbkRhdGFiYXNlOjpk
aWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJJY29uRGF0YWJhc2U6OmRl
bGl2ZXJOb3RpZmljYXRpb25zKToKKyAgICAgICAgKiBXZWJJY29uRGF0YWJhc2UuaDoKKyAgICAg
ICAgKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwOgorICAgICAgICAobWFpbkJ1bmRsZUxvY1N0
cmluZ3MpOgorICAgICAgICAoZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KToKKyAgICAgICAgKGZp
bmRDYWNoZWRTdHJpbmcpOgorICAgICAgICAoY2FjaGVTdHJpbmcpOgorCiAyMDE1LTA4LTE3ICBQ
ZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9d
IEFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGRvZXMgbm90IHJlc3BlY3QgZGV2aWNlIHNjYWxlIGZh
Y3Rvci4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmNwcAkocmV2aXNpb24g
MTg4NTY5KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIwLDE0ICszMjAsMTQgQEAgSEJJVE1BUCBXZWJJY29uRGF0YWJhc2U6Omdl
dE9yQ3JlYXRlRGVmYQogdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJlbW92ZUFsbEljb25zKCkK
IHsKICAgICAvLyBRdWV1ZWluZyB0aGUgZW1wdHkgc3RyaW5nIGlzIGEgc3BlY2lhbCB3YXkgb2Yg
c2F5aW5nICJ0aGlzIHF1ZXVlZCBub3RpZmljYXRpb24gaXMgdGhlIGRpZFJlbW92ZUFsbEljb25z
IG5vdGlmaWNhdGlvbiIKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9ub3RpZmljYXRpb25NdXRl
eCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ub3RpZmljYXRpb25NdXRleCk7CiAgICAgbV9u
b3RpZmljYXRpb25RdWV1ZS5hcHBlbmQoU3RyaW5nKCkpOwogICAgIHNjaGVkdWxlTm90aWZpY2F0
aW9uRGVsaXZlcnkoKTsKIH0KIAogdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZEltcG9ydEljb25V
UkxGb3JQYWdlVVJMKGNvbnN0IFdURjo6U3RyaW5nJiBwYWdlVVJMKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX25vdGlmaWNhdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X25vdGlmaWNhdGlvbk11dGV4KTsKICAgICBtX25vdGlmaWNhdGlvblF1ZXVlLmFwcGVuZChwYWdl
VVJMLmlzb2xhdGVkQ29weSgpKTsKICAgICBzY2hlZHVsZU5vdGlmaWNhdGlvbkRlbGl2ZXJ5KCk7
CiB9CkBAIC00MDMsNyArNDAzLDcgQEAgdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRlbGl2ZXJOb3Rp
ZmljYXRpbwogCiAgICAgVmVjdG9yPFN0cmluZz4gcXVldWU7CiAgICAgewotICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9zaGFyZWRXZWJJY29uRGF0YWJhc2UtPm1fbm90aWZpY2F0aW9uTXV0
ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NoYXJlZFdlYkljb25EYXRhYmFzZS0+
bV9ub3RpZmljYXRpb25NdXRleCk7CiAgICAgICAgIHF1ZXVlLnN3YXAobV9zaGFyZWRXZWJJY29u
RGF0YWJhc2UtPm1fbm90aWZpY2F0aW9uUXVldWUpOwogICAgICAgICBtX3NoYXJlZFdlYkljb25E
YXRhYmFzZS0+bV9kZWxpdmVyeVJlcXVlc3RlZCA9IGZhbHNlOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvd2luL1dlYkljb25EYXRhYmFzZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
S2l0L3dpbi9XZWJJY29uRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDcgKzExNiw3
IEBAIHByb3RlY3RlZDoKICAgICBIYXNoTWFwPEludFNpemUsIEhCSVRNQVA+IG1fZGVmYXVsdElj
b25NYXA7CiAgICAgSGFzaE1hcDxJbnRTaXplLCBIQklUTUFQPiBtX3NoYXJlZEljb25NYXA7CiAK
LSAgICBNdXRleCBtX25vdGlmaWNhdGlvbk11dGV4OworICAgIExvY2sgbV9ub3RpZmljYXRpb25N
dXRleDsKICAgICBWZWN0b3I8U3RyaW5nPiBtX25vdGlmaWNhdGlvblF1ZXVlOwogICAgIHZvaWQg
c2NoZWR1bGVOb3RpZmljYXRpb25EZWxpdmVyeSgpOwogICAgIGJvb2wgbV9kZWxpdmVyeVJlcXVl
c3RlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNw
cAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVT
dHJpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsOSArNDQsOSBAQCBXZWJMb2NhbGl6YWJs
ZVN0cmluZ3NCdW5kbGUgV2ViS2l0TG9jYWxpCiAKIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIExv
Y2FsaXplZFN0cmluZyo+IExvY2FsaXplZFN0cmluZ01hcDsKIAotc3RhdGljIE11dGV4JiBtYWlu
QnVuZGxlTG9jU3RyaW5nc011dGV4KCkKK3N0YXRpYyBMb2NrJiBtYWluQnVuZGxlTG9jU3RyaW5n
c011dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11
dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIG11dGV4
LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC01Niw5ICs1Niw5IEBAIHN0YXRpYyBM
b2NhbGl6ZWRTdHJpbmdNYXAmIG1haW5CdW5kbGVMb2MKICAgICByZXR1cm4gbWFwOwogfQogCi1z
dGF0aWMgTXV0ZXgmIGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpCitzdGF0aWMgTG9jayYgZnJh
bWV3b3JrTG9jU3RyaW5nc011dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKExvY2ssIG11dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xNzUsMTIg
KzE3NSwxMiBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29weUxvY2FsaXplZFN0cmluZ0ZyCiBzdGF0
aWMgTG9jYWxpemVkU3RyaW5nKiBmaW5kQ2FjaGVkU3RyaW5nKFdlYkxvY2FsaXphYmxlU3RyaW5n
c0J1bmRsZSogc3RyaW5nc0J1bmRsZSwgY29uc3QgU3RyaW5nJiBrZXkpCiB7CiAgICAgaWYgKCFz
dHJpbmdzQnVuZGxlKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobWFpbkJ1bmRsZUxvY1N0
cmluZ3NNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1haW5CdW5kbGVMb2NTdHJp
bmdzTXV0ZXgoKSk7CiAgICAgICAgIHJldHVybiBtYWluQnVuZGxlTG9jU3RyaW5ncygpLmdldChr
ZXkpOwogICAgIH0KIAogICAgIGlmIChzdHJpbmdzQnVuZGxlLT5idW5kbGUgPT0gV2ViS2l0TG9j
YWxpemFibGVTdHJpbmdzQnVuZGxlLmJ1bmRsZSkgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
KGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKGZy
YW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsKICAgICAgICAgcmV0dXJuIGZyYW1ld29ya0xvY1N0
cmluZ3MoKS5nZXQoa2V5KTsKICAgICB9CiAKQEAgLTE5MCwxMiArMTkwLDEyIEBAIHN0YXRpYyBM
b2NhbGl6ZWRTdHJpbmcqIGZpbmRDYWNoZWRTdHJpbmcKIHN0YXRpYyB2b2lkIGNhY2hlU3RyaW5n
KFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRsZSogc3RyaW5nc0J1bmRsZSwgY29uc3QgU3RyaW5n
JiBrZXksIExvY2FsaXplZFN0cmluZyogdmFsdWUpCiB7CiAgICAgaWYgKCFzdHJpbmdzQnVuZGxl
KSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgp
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgoKSk7
CiAgICAgICAgIG1haW5CdW5kbGVMb2NTdHJpbmdzKCkuc2V0KGtleSwgdmFsdWUpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhmcmFtZXdvcmtMb2NTdHJp
bmdzTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKGZyYW1ld29ya0xvY1N0cmluZ3NNdXRl
eCgpKTsKICAgICBmcmFtZXdvcmtMb2NTdHJpbmdzKCkuc2V0KGtleSwgdmFsdWUpOwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luTWFpblRo
cmVhZFNjaGVkdWxlci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvd2lu
L1BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQyLDcgKzQyLDcgQEAgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6UGx1Z2luTWFpblRocgog
CiB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlQ2FsbChOUFAgbnBwLCBN
YWluVGhyZWFkRnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQqIHVzZXJEYXRhKQogewotICAgIE11dGV4
TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11
dGV4KTsKIAogICAgIENhbGxRdWV1ZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2NhbGxRdWV1ZU1hcC5m
aW5kKG5wcCk7CiAgICAgaWYgKGl0ID09IG1fY2FsbFF1ZXVlTWFwLmVuZCgpKQpAQCAtNTgsNyAr
NTgsNyBAQCB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlCiAKIHZvaWQg
UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6cmVnaXN0ZXJQbHVnaW4oTlBQIG5wcCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1f
cXVldWVNdXRleCk7CiAKICAgICBBU1NFUlQoIW1fY2FsbFF1ZXVlTWFwLmNvbnRhaW5zKG5wcCkp
OwogICAgIG1fY2FsbFF1ZXVlTWFwLnNldChucHAsIERlcXVlPENhbGw+KCkpOwpAQCAtNjYsNyAr
NjYsNyBAQCB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnJlZ2lzdGVyCiAKIHZvaWQg
UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6dW5yZWdpc3RlclBsdWdpbihOUFAgbnBwKQogewot
ICAgIE11dGV4TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2so
bV9xdWV1ZU11dGV4KTsKIAogICAgIEFTU0VSVChtX2NhbGxRdWV1ZU1hcC5jb250YWlucyhucHAp
KTsKICAgICBtX2NhbGxRdWV1ZU1hcC5yZW1vdmUobnBwKTsKQEAgLTc3LDcgKzc3LDcgQEAgdm9p
ZCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpkaXNwYXRjaAogICAgIGZvciAoYXV0byYgY2Fs
bCA6IGNhbGxzKSB7CiAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBwbHVnLWluIGhhcyBiZWVuIGRl
c3Ryb3llZC4KICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVl
TXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fcXVldWVNdXRleCk7CiAgICAg
ICAgICAgICBpZiAoIW1fY2FsbFF1ZXVlTWFwLmNvbnRhaW5zKG5wcCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1Bs
dWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dp
bi9QbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9j
YWxsUGVuZGluZzsKICAgICBDYWxsUXVldWVNYXAgbV9jYWxsUXVldWVNYXA7Ci0gICAgTXV0ZXgg
bV9xdWV1ZU11dGV4OworICAgIExvY2sgbV9xdWV1ZU11dGV4OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0No
YW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBvZiBXVEY6Ok11
dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwOgorICAg
ICAgICAoamF2YVNjcmlwdFRocmVhZHNNdXRleCk6CisgICAgICAgIChydW5KYXZhU2NyaXB0VGhy
ZWFkKToKKyAgICAgICAgKHN0YXJ0SmF2YVNjcmlwdFRocmVhZHMpOgorICAgICAgICAoc3RvcEph
dmFTY3JpcHRUaHJlYWRzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25k
aXRpb24uY3BwOiBGaXhlZCBhIGJ1ZyBpbiB0aGUgdGVzdCB0aGF0IEkgZm91bmQgZnJvbSB0dXJu
aW5nIHRoZSB0ZXN0IGludG8gYSBiZW5jaG1hcmsuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNS0wOC0xNyAgTXlsZXMgQy4g
TWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtPUyBYXSBSZW1vdmUg
c3VwcG9ydCBmb3IgY29tcG9zaXRlIGZvbnRzCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9K
YXZhU2NyaXB0VGhyZWFkaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJl
ZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgVG9vbHMvRHVt
cFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNp
bmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2
ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00NCw5ICs0NSw5IEBAIHN0YXRpYyBj
b25zdCBzaXplX3QgamF2YVNjcmlwdFRocmVhZHNDb3UKIHN0YXRpYyBib29sIGphdmFTY3JpcHRU
aHJlYWRzU2hvdWxkVGVybWluYXRlOwogc3RhdGljIEpTQ29udGV4dEdyb3VwUmVmIGphdmFTY3Jp
cHRUaHJlYWRzR3JvdXA7CiAKLXN0YXRpYyBNdXRleCYgamF2YVNjcmlwdFRocmVhZHNNdXRleCgp
CitzdGF0aWMgTG9jayYgamF2YVNjcmlwdFRocmVhZHNNdXRleCgpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBzdGF0aWNNdXRleCwgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMb2NrLCBzdGF0aWNNdXRleCwgKCkpOwogICAgIHJl
dHVybiBzdGF0aWNNdXRleDsKIH0KIApAQCAtNzAsMjYgKzcxLDI2IEBAIHZvaWQgcnVuSmF2YVNj
cmlwdFRocmVhZCh2b2lkKikKIAogICAgIEpTR2xvYmFsQ29udGV4dFJlZiBjdHg7CiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAg
ICAgY3R4ID0gSlNHbG9iYWxDb250ZXh0Q3JlYXRlSW5Hcm91cChqYXZhU2NyaXB0VGhyZWFkc0dy
b3VwLCAwKTsKICAgICB9CiAKICAgICBKU1N0cmluZ1JlZiBzY3JpcHRSZWY7CiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAg
c2NyaXB0UmVmID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0KTsKICAgICB9
CiAKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgICAgICAgICBKU1ZhbHVl
UmVmIGV4Y2VwdGlvbiA9IDA7CiAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGN0eCwgc2Ny
aXB0UmVmLCAwLCAwLCAxLCAmZXhjZXB0aW9uKTsKICAgICAgICAgICAgIEFTU0VSVCghZXhjZXB0
aW9uKTsKICAgICAgICAgfQogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgICAgIGNvbnN0IHNpemVf
dCB2YWx1ZXNDb3VudCA9IDEwMjQ7CiAgICAgICAgICAgICBKU1ZhbHVlUmVmIHZhbHVlc1t2YWx1
ZXNDb3VudF07CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVlc0NvdW50
OyArK2kpCkBAIC05Nyw3ICs5OCw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikK
ICAgICAgICAgfQogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihq
YXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
amF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgICAgIGlmIChqYXZhU2NyaXB0VGhy
ZWFkc1Nob3VsZFRlcm1pbmF0ZSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpA
QCAtMTA2LDcgKzEwNyw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikKICAgICAg
ICAgaWYgKHJhbmQoKSAlIDUpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgVGhyZWFkSWRl
bnRpZmllciB0aHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7CiAgICAgICAgIGRldGFjaFRocmVhZCh0
aHJlYWQpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLnJlbW92ZSh0aHJlYWQpOwpAQCAt
MTE0LDcgKzExNSw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikKICAgICAgICAg
YnJlYWs7CiAgICAgfQogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRz
TXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgp
KTsKICAgICBKU1N0cmluZ1JlbGVhc2Uoc2NyaXB0UmVmKTsKICAgICBKU0dhcmJhZ2VDb2xsZWN0
KGN0eCk7CiAgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShjdHgpOwpAQCAtMTI0LDcgKzEyNSw3
IEBAIHZvaWQgc3RhcnRKYXZhU2NyaXB0VGhyZWFkcygpCiB7CiAgICAgamF2YVNjcmlwdFRocmVh
ZHNHcm91cCA9IEpTQ29udGV4dEdyb3VwQ3JlYXRlKCk7CiAKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZh
U2NyaXB0VGhyZWFkc011dGV4KCkpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBqYXZh
U2NyaXB0VGhyZWFkc0NvdW50OyArK2kpCiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkuYWRk
KGNyZWF0ZVRocmVhZCgmcnVuSmF2YVNjcmlwdFRocmVhZCwgMCwgMCkpOwpAQCAtMTMzLDEzICsx
MzQsMTMgQEAgdm9pZCBzdGFydEphdmFTY3JpcHRUaHJlYWRzKCkKIHZvaWQgc3RvcEphdmFTY3Jp
cHRUaHJlYWRzKCkKIHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2Ny
aXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0
VGhyZWFkc011dGV4KCkpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkc1Nob3VsZFRlcm1pbmF0
ZSA9IHRydWU7CiAgICAgfQogCiAgICAgVmVjdG9yPFRocmVhZElkZW50aWZpZXIsIGphdmFTY3Jp
cHRUaHJlYWRzQ291bnQ+IHRocmVhZHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
amF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgY29weVRvVmVjdG9yKGphdmFTY3Jp
cHRUaHJlYWRzKCksIHRocmVhZHMpOwogICAgICAgICBBU1NFUlQodGhyZWFkcy5zaXplKCkgPT0g
amF2YVNjcmlwdFRocmVhZHNDb3VudCk7CiAgICAgfQpAQCAtMTQ4LDcgKzE0OSw3IEBAIHZvaWQg
c3RvcEphdmFTY3JpcHRUaHJlYWRzKCkKICAgICAgICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24o
dGhyZWFkc1tpXSk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2Ny
aXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0
VGhyZWFkc011dGV4KCkpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmNsZWFyKCk7CiAg
ICAgfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5j
cHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nv
bmRpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIHJ1blRl
c3QoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhc2hvdWxkQ29udGlu
dWUgfHwgIXF1ZXVlLmlzRW1wdHkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCFzaG91bGRDb250aW51ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgh
c2hvdWxkQ29udGludWUgJiYgcXVldWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZE5vdGlmeSA9IHF1
ZXVlLnNpemUoKSA9PSBtYXhRdWV1ZVNpemU7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXN1
bHQgPSBxdWV1ZS50YWtlRmlyc3QoKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1dvcmtRdWV1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvV29ya1F1ZXVlLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYs
OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiVGVzdC5oIgorI2luY2x1ZGUg
PHd0Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CiAjaW5jbHVkZSA8c3RyaW5nPgpA
QCAtNDAsOCArNDIsOCBAQCBzdGF0aWMgY29uc3QgY2hhciogZGlzcGF0Y2hBZnRlckxhYmVsID0g
CiAgICAgCiBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKIHsKLSAgICBNdXRleCBtX2xvY2s7
Ci0gICAgVGhyZWFkQ29uZGl0aW9uIG1fdGVzdENvbXBsZXRlZDsKKyAgICBMb2NrIG1fbG9jazsK
KyAgICBDb25kaXRpb24gbV90ZXN0Q29tcGxldGVkOwogICAgIFZlY3RvcjxzdGQ6OnN0cmluZz4g
bV9mdW5jdGlvbkNhbGxPcmRlcjsKIAogICAgIGJvb2wgY2FsbGVkU2ltcGxlVGVzdCA9IGZhbHNl
OwpAQCAtNTYsNyArNTgsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICBpbnQg
aW5pdGlhbFJlZkNvdW50ID0gcXVldWUtPnJlZkNvdW50KCk7CiAgICAgRVhQRUNUX0VRKDEsIGlu
aXRpYWxSZWZDb3VudCk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgIHF1ZXVlLT5kaXNwYXRjaChbJl0odm9pZCkg
ewogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZChzaW1wbGVUZXN0TGFiZWwpOwog
ICAgICAgICBjYWxsZWRTaW1wbGVUZXN0ID0gdHJ1ZTsKQEAgLTY5LDcgKzcxLDcgQEAgVEVTVChX
VEZfV29ya1F1ZXVlLCBTaW1wbGUpCiAgICAgfSk7CiAKICAgICBxdWV1ZS0+ZGlzcGF0Y2goWyZd
KHZvaWQpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIuYXBw
ZW5kKHRoaXJkVGVzdExhYmVsKTsKICAgICAgICAgY2FsbGVkVGhpcmRUZXN0ID0gdHJ1ZTsKIApA
QCAtNzcsNyArNzksNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICAgICAgRVhQ
RUNUX1RSVUUoY2FsbGVkTG9uZ1Rlc3QpOwogICAgICAgICBFWFBFQ1RfVFJVRShjYWxsZWRUaGly
ZFRlc3QpOwogICAgICAgICAKLSAgICAgICAgbV90ZXN0Q29tcGxldGVkLnNpZ25hbCgpOworICAg
ICAgICBtX3Rlc3RDb21wbGV0ZWQubm90aWZ5T25lKCk7CiAgICAgfSk7CiAKICAgICBFWFBFQ1Rf
R1QocXVldWUtPnJlZkNvdW50KCksIDEpOwpAQCAtOTYsOCArOTgsOCBAQCBURVNUKFdURl9Xb3Jr
UXVldWUsIFNpbXBsZSkKIAogVEVTVChXVEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMpCiB7Ci0gICAg
TXV0ZXggbV9sb2NrOwotICAgIFRocmVhZENvbmRpdGlvbiBtX3Rlc3RRdWV1ZTFDb21wbGV0ZWQs
IG1fdGVzdFF1ZXVlMkNvbXBsZXRlZDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBDb25kaXRpb24g
bV90ZXN0UXVldWUxQ29tcGxldGVkLCBtX3Rlc3RRdWV1ZTJDb21wbGV0ZWQ7CiAgICAgVmVjdG9y
PHN0ZDo6c3RyaW5nPiBtX2Z1bmN0aW9uQ2FsbE9yZGVyOwogCiAgICAgYm9vbCBjYWxsZWRTaW1w
bGVUZXN0ID0gZmFsc2U7CkBAIC0xMTAsNyArMTEyLDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBU
d29RdWV1ZXMpCiAgICAgRVhQRUNUX0VRKDEsIHF1ZXVlMS0+cmVmQ291bnQoKSk7CiAgICAgRVhQ
RUNUX0VRKDEsIHF1ZXVlMi0+cmVmQ291bnQoKSk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9sb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgIAogICAgIHF1ZXVl
MS0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBl
bmQoc2ltcGxlVGVzdExhYmVsKTsKQEAgLTEyMCwyMiArMTIyLDIyIEBAIFRFU1QoV1RGX1dvcmtR
dWV1ZSwgVHdvUXVldWVzKQogICAgIHF1ZXVlMi0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKICAgICAg
ICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMo
NTApKTsKIAotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb2NrKTsKIAogICAgICAgICAvLyBXaWxsIGZhaWwgaWYgcXVldWUy
IHRvb2sgdGhlIG11dGV4IGJlZm9yZSBxdWV1ZTEuCiAgICAgICAgIEVYUEVDVF9UUlVFKGNhbGxl
ZFRoaXJkVGVzdCk7CiAKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQobG9uZ1Rl
c3RMYWJlbCk7CiAgICAgICAgIGNhbGxlZExvbmdUZXN0ID0gdHJ1ZTsKLSAgICAgICAgbV90ZXN0
UXVldWUyQ29tcGxldGVkLnNpZ25hbCgpOworICAgICAgICBtX3Rlc3RRdWV1ZTJDb21wbGV0ZWQu
bm90aWZ5T25lKCk7CiAgICAgfSk7CiAKICAgICBxdWV1ZTEtPmRpc3BhdGNoKFsmXSh2b2lkKSB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX2xvY2spOwogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZCh0aGly
ZFRlc3RMYWJlbCk7CiAgICAgICAgIGNhbGxlZFRoaXJkVGVzdCA9IHRydWU7CiAgICAgICAgIAot
ICAgICAgICBtX3Rlc3RRdWV1ZTFDb21wbGV0ZWQuc2lnbmFsKCk7CisgICAgICAgIG1fdGVzdFF1
ZXVlMUNvbXBsZXRlZC5ub3RpZnlPbmUoKTsKICAgICB9KTsKIAogICAgIG1fdGVzdFF1ZXVlMUNv
bXBsZXRlZC53YWl0KG1fbG9jayk7CkBAIC0xNTgsOCArMTYwLDggQEAgVEVTVChXVEZfV29ya1F1
ZXVlLCBUd29RdWV1ZXMpCiAKIFRFU1QoV1RGX1dvcmtRdWV1ZSwgRGlzcGF0Y2hBZnRlcikKIHsK
LSAgICBNdXRleCBtX2xvY2s7Ci0gICAgVGhyZWFkQ29uZGl0aW9uIG1fdGVzdENvbXBsZXRlZCwg
bV9kaXNwYXRjaEFmdGVyVGVzdENvbXBsZXRlZDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBDb25k
aXRpb24gbV90ZXN0Q29tcGxldGVkLCBtX2Rpc3BhdGNoQWZ0ZXJUZXN0Q29tcGxldGVkOwogICAg
IFZlY3RvcjxzdGQ6OnN0cmluZz4gbV9mdW5jdGlvbkNhbGxPcmRlcjsKIAogICAgIGJvb2wgY2Fs
bGVkU2ltcGxlVGVzdCA9IGZhbHNlOwpAQCAtMTY3LDIwICsxNjksMjAgQEAgVEVTVChXVEZfV29y
a1F1ZXVlLCBEaXNwYXRjaEFmdGVyKQogCiAgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3Jl
YXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRlciIpOwogCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKIAog
ICAgIHF1ZXVlLT5kaXNwYXRjaChbJl0odm9pZCkgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAg
bV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQoc2ltcGxlVGVzdExhYmVsKTsKICAgICAgICAgY2Fs
bGVkU2ltcGxlVGVzdCA9IHRydWU7Ci0gICAgICAgIG1fdGVzdENvbXBsZXRlZC5zaWduYWwoKTsK
KyAgICAgICAgbV90ZXN0Q29tcGxldGVkLm5vdGlmeU9uZSgpOwogICAgIH0pOwogCiAgICAgcXVl
dWUtPmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApLCBbJl0odm9p
ZCkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQo
ZGlzcGF0Y2hBZnRlckxhYmVsKTsKICAgICAgICAgY2FsbGVkRGlzcGF0Y2hBZnRlclRlc3QgPSB0
cnVlOwotICAgICAgICBtX2Rpc3BhdGNoQWZ0ZXJUZXN0Q29tcGxldGVkLnNpZ25hbCgpOworICAg
ICAgICBtX2Rpc3BhdGNoQWZ0ZXJUZXN0Q29tcGxldGVkLm5vdGlmeU9uZSgpOwogICAgIH0pOwog
CiAgICAgbV90ZXN0Q29tcGxldGVkLndhaXQobV9sb2NrKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAkocmV2aXNp
b24gMTg4NTY5KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVl
dWVHTGliLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CiBURVNUKFdURl9Xb3JrUXVldWUsIEFzeW5jSU8pCiB7CiAgICAgc3RydWN0
IFRlc3RpbmdDb250ZXh0IHsKLSAgICAgICAgTXV0ZXggbV9sb2NrOworICAgICAgICBMb2NrIG1f
bG9jazsKICAgICAgICAgVGhyZWFkQ29uZGl0aW9uIG1fdGVzdENvbXBsZXRlZDsKICAgICAgICAg
R01haW5Db250ZXh0KiBtX21haW5Db250ZXh0OwogICAgIH0gY29udGV4dDsKQEAgLTQ5LDcgKzQ5
LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBBc3luY0lPKQogICAgIEdVbmlxdWVQdHI8Y2hhcj4g
Y3VycmVudERpcmVjdG9yeShnX2dldF9jdXJyZW50X2RpcigpKTsKICAgICBHUmVmUHRyPEdGaWxl
PiBmaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgoY3VycmVudERpcmVjdG9yeS5n
ZXQoKSkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGNvbnRleHQubV9sb2NrKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihjb250ZXh0Lm1fbG9jayk7CiAgICAgcXVldWUtPmRpc3BhdGNoKFsm
XSh2b2lkKSB7CiAgICAgICAgIEVYUEVDVF9UUlVFKGdfbWFpbl9jb250ZXh0X2dldF90aHJlYWRf
ZGVmYXVsdCgpKTsKICAgICAgICAgRVhQRUNUX1RSVUUoZ19tYWluX2NvbnRleHRfZ2V0X3RocmVh
ZF9kZWZhdWx0KCkgIT0gY29udGV4dC5tX21haW5Db250ZXh0KTsKQEAgLTU3LDcgKzU3LDcgQEAg
VEVTVChXVEZfV29ya1F1ZXVlLCBBc3luY0lPKQogICAgICAgICBnX2ZpbGVfcXVlcnlfaW5mb19h
c3luYyhmaWxlLmdldCgpLCBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX1NJWkUsIEdfRklMRV9R
VUVSWV9JTkZPX05PTkUsIEdfUFJJT1JJVFlfREVGQVVMVCwgbnVsbHB0ciwKICAgICAgICAgICAg
IFtdKEdPYmplY3QqLCBHQXN5bmNSZXN1bHQqLCBncG9pbnRlciB1c2VyRGF0YSkgewogICAgICAg
ICAgICAgICAgIFRlc3RpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8VGVzdGluZ0Nv
bnRleHQqPih1c2VyRGF0YSk7Ci0gICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGNv
bnRleHQtPm1fbG9jayk7CisgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoY29udGV4
dC0+bV9sb2NrKTsKICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoZ19tYWluX2NvbnRleHRfZ2V0
X3RocmVhZF9kZWZhdWx0KCksIGNvbnRleHQtPm1fbWFpbkNvbnRleHQpOwogICAgICAgICAgICAg
ICAgIGNvbnRleHQtPm1fdGVzdENvbXBsZXRlZC5zaWduYWwoKTsKICAgICAgICAgICAgIH0sICZj
b250ZXh0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259252</attachid>
            <date>2015-08-17 23:18:35 -0700</date>
            <delta_ts>2015-08-17 23:46:27 -0700</delta_ts>
            <desc>fix even more builds</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>218380</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RG
OjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBhbHNvIGJlZWZzIHVwIGFuZCByYXRpb25hbGl6ZXMgdGhlIENv
bmRpdGlvbiBBUEksIHNvIHRoYXQgaXQgY2FuIGRlYWwgd2l0aCB1bml0cyBvZiB0aW1lCisgICAg
ICAgIG90aGVyIHRoYW4ganVzdCBzdGVhZHlfY2xvY2suIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRv
IHBvcnQgVGhyZWFkQ29uZGl0aW9uIGFuZAorICAgICAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJs
ZSBjb2RlIG92ZXIgdG8gQ29uZGl0aW9uLiBUaGlzIHBhdGNoIGRvZXMgbm90IHRha2UgYSBwb3Np
dGlvbiBvbiB3aGF0CisgICAgICAgIGtpbmQgb2YgdGltZSBpcyBiZXN0OyBmcm9tIHJlYWRpbmcg
YSBsb3Qgb2YgdGhlIHVzZXMgaW4gV2ViQ29yZSwgaXQgc2VlbXMgbGlrZSBvdXIgdXNlIG9mCisg
ICAgICAgIGRvdWJsZSB0byBtZWFzdXJlIHNlY29uZHMgaXMgb2Z0ZW4gbmljZXIgdGhhbiB0aGUg
bWFueSBkaWZmZXJlbnQgY2xhc3NlcyBpbiBzdGQ6OmNocm9uby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgQ29uZGl0aW9uIHNwZWVkIHRlc3QsIHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBvZiB0aGlz
IGlzIGEgZ29vZCBpZGVhLiBBbmQgaW5kZWVkIGl0CisgICAgICAgIGlzLiBUaGUgMS1wcm9kdWNl
ci8xLWNvbnN1bWVyIHNjZW5hcmlvIHdpdGggYSAxMDAtZWxlbWVudCBxdWV1ZSBydW5zIDM2eCBm
YXN0ZXIgdXNpbmcKKyAgICAgICAgTG9jay9Db25kaXRpb24gdGhhbiBNdXRleC9UaHJlYWRDb25k
aXRpb24gd2hlbiB5b3UgdXNlIHRoZSBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBzdHlsZS4gSXQK
KyAgICAgICAgcnVucyA1OHggZmFzdGVyIHdpdGggTG9jay9Db25kaXRpb24gd2hlbiB5b3UgdXNl
IHRoZSBub3RpZnlBbGwoKS1hdC1ib3VuZGFyeSBzdHlsZS4gTm90ZSB0aGF0CisgICAgICAgIEkg
aGF2ZSBhIGJ1ZyBvcGVuIGZvciBtYWtpbmcgdGhlIG5vdGlmeU9uZSgpLXBlci1lbnF1ZXVlIHN0
eWxlIGV2ZW4gZmFzdGVyOgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MDkwLiBBbHNvLCB0aGUgMTAtY29uc3VtZXIvMTAtcHJvZHVjZXIgc2NlbmFy
aW8gd2l0aAorICAgICAgICBhIDEwMC1lbGVtZW50IHF1ZXVlIHJ1bnMgMjB4IGZhc3RlciB3aXRo
IExvY2svQ29uZGl0aW9uIGZvciBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBhbmQgMzB4CisgICAg
ICAgIGZhc3RlciB3aXRoIG5vdGlmeUFsbCgpLWF0LWJvdW5kYXJ5LiBTbywgaXQgc2VlbXMgdGhh
dCByZXBsYWNpbmcgYWxsIHVzZXMgb2Ygc3lzdGVtIG11dGV4ZXMgYW5kCisgICAgICAgIGNvbmRp
dGlvbiB2YXJpYWJsZXMgd2l0aCBvdXIgb3duIHRoaW5nIGlzIGEgZ3JlYXQgaWRlYS4KKworICAg
ICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJr
cy9Db25kaXRpb25TcGVlZFRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvQ29uZGl0aW9u
Lmg6CisgICAgICAgIChXVEY6OkNvbmRpdGlvbjo6Q29uZGl0aW9uKToKKyAgICAgICAgKFdURjo6
Q29uZGl0aW9uOjp3YWl0VW50aWwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3Ip
OgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXQpOgorICAgICAgICAoV1RGOjpDb25kaXRp
b246OndhaXRVbnRpbFdhbGxDbG9ja1NlY29uZHMpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246
OndhaXRVbnRpbE1vbm90b25pY0Nsb2NrU2Vjb25kcyk6CisgICAgICAgIChXVEY6OkNvbmRpdGlv
bjo6bm90aWZ5T25lKToKKyAgICAgICAgKFdURjo6Q29uZGl0aW9uOjpub3RpZnlBbGwpOgorICAg
ICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3JTZWNvbmRzSW1wbCk6CisgICAgICAgIChXVEY6
OkNvbmRpdGlvbjo6d2FpdEZvckltcGwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OmFic29s
dXRlRnJvbVJlbGF0aXZlKToKKyAgICAgICAgKiB3dGYvTWVzc2FnZVF1ZXVlLmg6CisgICAgICAg
IChXVEY6Ok1lc3NhZ2VRdWV1ZTo6aW5maW5pdGVUaW1lKToKKyAgICAgICAgKFdURjo6TWVzc2Fn
ZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6YXBwZW5kQW5kS2lsbCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRh
VHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHkpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8
RGF0YVR5cGU+OjpwcmVwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBl
Pjo6cmVtb3ZlSWYpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojppc0Vt
cHR5KToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbCk6CisgICAg
ICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmtpbGxlZCk6CisgICAgICAgICogd3Rm
L1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25t
ZW50OjpUaHJlYWRQcml2YXRlOjpleGVjdXRlKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZp
cm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZpbmlzaCk6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCk6CisgICAgICAg
ICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaDoKKyAgICAgICAgKiB3dGYvUGFya2luZ0xvdC5j
cHA6CisgICAgICAgIChXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KToKKyAgICAg
ICAgKiB3dGYvUGFya2luZ0xvdC5oOgorICAgICAgICAoV1RGOjpQYXJraW5nTG90Ojpjb21wYXJl
QW5kUGFyayk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAg
KFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZyk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5j
cHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHd0Zi9k
dG9hLmNwcDoKKyAgICAgICAgKFdURjo6cG93NW11bHQpOgorICAgICAgICAqIHd0Zi9kdG9hLmg6
CisKIDIwMTUtMDgtMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBCdWlsZCBEZWJ1ZyBTdWZmaXggb24gV2luZG93cyB3aXRoIENNYWtlCklu
ZGV4OiBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKy8vIE9uIE1hYywgeW91IGNhbiBidWlsZCB0aGlzIGxp
a2Ugc286CisvLyBjbGFuZysrIC1vIENvbmRpdGlvblNwZWVkVGVzdCBTb3VyY2UvV1RGL2JlbmNo
bWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RGIC1MV2ViS2l0
QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vjb3JlIC1zdGQ9
YysrMTEKKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVk
ZSA8dGhyZWFkPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvRGF0YUxvZy5o
PgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJp
bWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIHsKKworY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisKK3Vuc2lnbmVkIG51bVByb2R1Y2VyczsKK3Vuc2ln
bmVkIG51bUNvbnN1bWVyczsKK3Vuc2lnbmVkIG1heFF1ZXVlU2l6ZTsKK3Vuc2lnbmVkIG51bU1l
c3NhZ2VzUGVyUHJvZHVjZXI7CisgICAgCitOT19SRVRVUk4gdm9pZCB1c2FnZSgpCit7CisgICAg
cHJpbnRmKCJVc2FnZTogQ29uZGl0aW9uU3BlZWRUZXN0IGxvY2t8bXV0ZXh8YWxsIDxudW0gcHJv
ZHVjZXJzPiA8bnVtIGNvbnN1bWVycz4gPG1heCBxdWV1ZSBzaXplPiA8bnVtIG1lc3NhZ2VzIHBl
ciBwcm9kdWNlcj5cbiIpOworICAgIGV4aXQoMSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0b3IsIHR5cGVuYW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIExvY2tUeXBlPgordm9pZCB3
YWl0KENvbmRpdGlvblR5cGUmIGNvbmRpdGlvbiwgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IEZ1bmN0
b3ImIHByZWRpY2F0ZSkKK3sKKyAgICB3aGlsZSAoIXByZWRpY2F0ZSgpKQorICAgICAgICBjb25k
aXRpb24ud2FpdChsb2NrKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVu
YW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIE5vdGlmeUZ1bmN0b3IsIHR5cGVuYW1lIE5vdGlm
eUFsbEZ1bmN0b3I+Cit2b2lkIHJ1blRlc3QoCisgICAgdW5zaWduZWQgbnVtUHJvZHVjZXJzLAor
ICAgIHVuc2lnbmVkIG51bUNvbnN1bWVycywKKyAgICB1bnNpZ25lZCBtYXhRdWV1ZVNpemUsCisg
ICAgdW5zaWduZWQgbnVtTWVzc2FnZXNQZXJQcm9kdWNlciwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIERlcXVlPHVuc2lnbmVkPiBxdWV1ZTsKKyAgICBib29sIHNob3VsZENvbnRpbnVlID0gdHJ1
ZTsKKyAgICBMb2NrVHlwZSBsb2NrOworICAgIENvbmRpdGlvblR5cGUgZW1wdHlDb25kaXRpb247
CisgICAgQ29uZGl0aW9uVHlwZSBmdWxsQ29uZGl0aW9uOworCisgICAgVmVjdG9yPFRocmVhZElk
ZW50aWZpZXI+IGNvbnN1bWVyVGhyZWFkczsKKyAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4g
cHJvZHVjZXJUaHJlYWRzOworCisgICAgVmVjdG9yPHVuc2lnbmVkPiByZWNlaXZlZDsKKyAgICBM
b2NrVHlwZSByZWNlaXZlZExvY2s7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29u
c3VtZXJzOyBpLS07KSB7CisgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmll
ciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAg
ICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbXVz
dE5vdGlmeSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB3YWl0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5
Q29uZGl0aW9uLCBsb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZyh0b1N0cmluZyhjdXJyZW50VGhyZWFkKCks
ICI6IENoZWNraW5nIGNvbnN1bXB0aW9uIHByZWRpY2F0ZSB3aXRoIHNob3VsZENvbnRpbnVlID0g
Iiwgc2hvdWxkQ29udGludWUsICIsIHF1ZXVlLnNpemUoKSA9PSAiLCBxdWV1ZS5zaXplKCksICJc
biIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFzaG91bGRDb250
aW51ZSB8fCAhcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSAmJiBxdWV1ZS5p
c0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgICAgICAgICAgbXVzdE5vdGlmeSA9IHF1ZXVlLnNpemUoKSA9PSBtYXhRdWV1ZVNpemU7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBxdWV1ZS50YWtlRmlyc3QoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBub3RpZnkoZnVsbENvbmRp
dGlvbiwgbXVzdE5vdGlmeSk7CisKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2tUeXBlPiBsb2NrZXIocmVjZWl2ZWRMb2Nr
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkLmFwcGVuZChyZXN1bHQpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7Cisg
ICAgICAgIGNvbnN1bWVyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmllcik7CisgICAgfQor
CisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtUHJvZHVjZXJzOyBpLS07KSB7CisgICAgICAgIFRo
cmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAg
ICAgICJQcm9kdWNlciBUaHJlYWQiLAorICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQZXJQcm9kdWNlcjsgKytp
KSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgbXVzdE5vdGlmeSA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2Nr
PExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxDb25kaXRpb24sIGxvY2ssCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKHRvU3RyaW5nKGN1cnJlbnRUaHJlYWQoKSwgIjogQ2hlY2tpbmcgcHJvZHVjdGlvbiBw
cmVkaWNhdGUgd2l0aCBzaG91bGRDb250aW51ZSA9ICIsIHNob3VsZENvbnRpbnVlLCAiLCBxdWV1
ZS5zaXplKCkgPT0gIiwgcXVldWUuc2l6ZSgpLCAiXG4iKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBxdWV1ZS5zaXplKCkgPCBtYXhRdWV1ZVNpemU7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtdXN0Tm90
aWZ5ID0gcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgcXVldWUuYXBw
ZW5kKGkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5vdGlm
eShlbXB0eUNvbmRpdGlvbiwgbXVzdE5vdGlmeSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSk7CisgICAgICAgIHByb2R1Y2VyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmll
cik7CisgICAgfQorCisgICAgZm9yIChUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIg
OiBwcm9kdWNlclRocmVhZHMpCisgICAgICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVh
ZElkZW50aWZpZXIpOworCisgICAgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9ja1R5cGU+
IGxvY2tlcihsb2NrKTsKKyAgICAgICAgc2hvdWxkQ29udGludWUgPSBmYWxzZTsKKyAgICB9Cisg
ICAgbm90aWZ5QWxsKGVtcHR5Q29uZGl0aW9uKTsKKworICAgIGZvciAoVGhyZWFkSWRlbnRpZmll
ciB0aHJlYWRJZGVudGlmaWVyIDogY29uc3VtZXJUaHJlYWRzKQorICAgICAgICB3YWl0Rm9yVGhy
ZWFkQ29tcGxldGlvbih0aHJlYWRJZGVudGlmaWVyKTsKKworICAgIFJFTEVBU0VfQVNTRVJUKG51
bVByb2R1Y2VycyAqIG51bU1lc3NhZ2VzUGVyUHJvZHVjZXIgPT0gcmVjZWl2ZWQuc2l6ZSgpKTsK
KyAgICBzdGQ6OnNvcnQocmVjZWl2ZWQuYmVnaW4oKSwgcmVjZWl2ZWQuZW5kKCkpOworICAgIGZv
ciAodW5zaWduZWQgbWVzc2FnZUluZGV4ID0gMDsgbWVzc2FnZUluZGV4IDwgbnVtTWVzc2FnZXNQ
ZXJQcm9kdWNlcjsgKyttZXNzYWdlSW5kZXgpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBwcm9k
dWNlckluZGV4ID0gMDsgcHJvZHVjZXJJbmRleCA8IG51bVByb2R1Y2VyczsgKytwcm9kdWNlcklu
ZGV4KQorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobWVzc2FnZUluZGV4ID09IHJlY2VpdmVk
W21lc3NhZ2VJbmRleCAqIG51bVByb2R1Y2VycyArIHByb2R1Y2VySW5kZXhdKTsKKyAgICB9Cit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlLCB0eXBlbmFtZSBDb25kaXRpb25UeXBlLCB0
eXBlbmFtZSBOb3RpZnlGdW5jdG9yLCB0eXBlbmFtZSBOb3RpZnlBbGxGdW5jdG9yPgordm9pZCBy
dW5CZW5jaG1hcmsoCisgICAgY29uc3QgY2hhciogbmFtZSwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIGRvdWJsZSBiZWZvcmUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWVNUygpOworICAg
IAorICAgIHJ1blRlc3Q8TG9ja1R5cGUsIENvbmRpdGlvblR5cGU+KAorICAgICAgICBudW1Qcm9k
dWNlcnMsCisgICAgICAgIG51bUNvbnN1bWVycywKKyAgICAgICAgbWF4UXVldWVTaXplLAorICAg
ICAgICBudW1NZXNzYWdlc1BlclByb2R1Y2VyLAorICAgICAgICBub3RpZnksCisgICAgICAgIG5v
dGlmeUFsbCk7CisKKyAgICBkb3VibGUgYWZ0ZXIgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWVNUygpOworCisgICAgcHJpbnRmKCIlczogJS4zbGYgbXMuXG4iLCBuYW1lLCBhZnRlciAtIGJl
Zm9yZSk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitpbnQgbWFpbihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCit7CisgICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisKKyAg
ICBpZiAoYXJnYyAhPSA2CisgICAgICAgIHx8IHNzY2FuZihhcmd2WzJdLCAiJXUiLCAmbnVtUHJv
ZHVjZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzNdLCAiJXUiLCAmbnVtQ29uc3Vt
ZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzRdLCAiJXUiLCAmbWF4UXVldWVTaXpl
KSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzVdLCAiJXUiLCAmbnVtTWVzc2FnZXNQZXJQ
cm9kdWNlcikgIT0gMSkKKyAgICAgICAgdXNhZ2UoKTsKKworICAgIGJvb2wgZGlkUnVuID0gZmFs
c2U7CisgICAgaWYgKCFzdHJjbXAoYXJndlsxXSwgImxvY2siKSB8fCAhc3RyY21wKGFyZ3ZbMV0s
ICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1hcms8TG9jaywgQ29uZGl0aW9uPigKKyAgICAg
ICAgICAgICJXVEYgTG9jayBOb3RpZnlPbmUiLAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24m
IGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9u
Lm5vdGlmeU9uZSgpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0aW9u
JiBjb25kaXRpb24pIHsKKyAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgcnVuQmVuY2htYXJrPExvY2ssIENvbmRpdGlvbj4oCisg
ICAgICAgICAgICAiV1RGIExvY2sgTm90aWZ5QWxsIiwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0
aW9uJiBjb25kaXRpb24sIGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGlmICht
dXN0Tm90aWZ5KQorICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24mIGNvbmRpdGlvbikgewor
ICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICBkaWRSdW4gPSB0cnVlOworICAgIH0KKyAgICBpZiAoIXN0cmNtcChhcmd2WzFdLCAi
bXV0ZXgiKSB8fCAhc3RyY21wKGFyZ3ZbMV0sICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1h
cms8TXV0ZXgsIFRocmVhZENvbmRpdGlvbj4oCisgICAgICAgICAgICAiUGxhdGZvcm0gTXV0ZXgg
Tm90aWZ5T25lIiwKKyAgICAgICAgICAgIFsmXSAoVGhyZWFkQ29uZGl0aW9uJiBjb25kaXRpb24s
IGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5zaWduYWwoKTsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlvbiYgY29uZGl0
aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIHJ1bkJlbmNobWFyazxNdXRleCwgVGhyZWFkQ29uZGl0aW9uPigKKyAg
ICAgICAgICAgICJQbGF0Zm9ybSBNdXRleCBOb3RpZnlBbGwiLAorICAgICAgICAgICAgWyZdIChU
aHJlYWRDb25kaXRpb24mIGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAg
ICAgICAgaWYgKG11c3ROb3RpZnkpCisgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5icm9h
ZGNhc3QoKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlv
biYgY29uZGl0aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIGRpZFJ1biA9IHRydWU7CisgICAgfQorCisgICAgaWYg
KCFkaWRSdW4pCisgICAgICAgIHVzYWdlKCk7CisKKyAgICByZXR1cm4gMDsKK30KKwpJbmRleDog
U291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw2ICsyMyw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisvLyBPbiBNYWMsIHlv
dSBjYW4gYnVpbGQgdGhpcyBsaWtlIHNvOgorLy8gY2xhbmcrKyAtbyBMb2NrU3BlZWRUZXN0IFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RG
IC1MV2ViS2l0QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vj
b3JlIC1zdGQ9YysrMTEKKwogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9Db25kaXRpb24uaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93
dGYvQ29uZGl0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDI2ICsyOSw1OSBAQAogI2luY2x1
ZGUgPGNocm9ubz4KICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPG11dGV4PgorI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXJraW5nTG90Lmg+CiAK
IG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBDb25kaXRpb24gewogcHVibGljOgorICAgIHR5cGVk
ZWYgUGFya2luZ0xvdDo6Q2xvY2sgQ2xvY2s7CisgICAgCiAgICAgQ29uZGl0aW9uKCkgeyB9CiAK
ICAgICAvLyBXYWl0IG9uIGEgcGFya2luZyBxdWV1ZSB3aGlsZSByZWxlYXNpbmcgdGhlIGdpdmVu
IGxvY2suIEl0IHdpbGwgdW5sb2NrIHRoZSBsb2NrIGp1c3QgYmVmb3JlCiAgICAgLy8gcGFya2lu
ZywgYW5kIHJlbG9jayBpdCB1cG9uIHdha2V1cC4gUmV0dXJucyB0cnVlIGlmIHdlIHdva2UgdXAg
ZHVlIHRvIHNvbWUgY2FsbCB0bwotICAgIC8vIG5vdGlmeU9uZSgpIG9yIG5vdGlmeUFsbCgpLiBS
ZXR1cm5zIGZhbHNlIGlmIHdlIHdva2UgdXAgZHVlIHRvIGEgdGltZW91dC4KKyAgICAvLyBub3Rp
ZnlPbmUoKSBvciBub3RpZnlBbGwoKS4gUmV0dXJucyBmYWxzZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0
byBhIHRpbWVvdXQuIE5vdGUgdGhhdCB0aGlzIGZvcm0KKyAgICAvLyBvZiB3YWl0VW50aWwoKSBo
YXMgc29tZSBxdWlya3M6CisgICAgLy8KKyAgICAvLyBObyBzcHVyaW91cyB3YWtlLXVwOiBpbiBv
cmRlciBmb3IgdGhpcyB0byByZXR1cm4gYmVmb3JlIHRoZSB0aW1lb3V0LCBzb21lIG5vdGlmeU9u
ZSgpIG9yCisgICAgLy8gbm90aWZ5QWxsKCkgY2FsbCBtdXN0IGhhdmUgaGFwcGVuZWQuIE5vIHNj
ZW5hcmlvIG90aGVyIHRoYW4gdGltZW91dCBvciBub3RpZnkgY2FuIGxlYWQgdG8gdGhpcworICAg
IC8vIG1ldGhvZCByZXR1cm5pbmcuIFRoaXMgbWVhbnMsIGZvciBleGFtcGxlLCB0aGF0IHlvdSBj
YW4ndCB1c2UgcHRocmVhZCBjYW5jZWxhdGlvbiBvciBzaWduYWxzIHRvCisgICAgLy8gY2F1c2Ug
ZWFybHkgcmV0dXJuLgorICAgIC8vCisgICAgLy8gUGFzdCB0aW1lb3V0OiBpdCdzIHBvc3NpYmxl
IGZvciB3YWl0VW50aWwoKSB0byBiZSBjYWxsZWQgd2l0aCBhIHRpbWVvdXQgaW4gdGhlIHBhc3Qu
IEluIHRoYXQKKyAgICAvLyBjYXNlLCB3YWl0VW50aWwoKSB3aWxsIHN0aWxsIHJlbGVhc2UgdGhl
IGxvY2sgYW5kIHJlYWNxdWlyZSBpdC4gd2FpdFVudGlsKCkgd2lsbCBhbHdheXMgcmV0dXJuCisg
ICAgLy8gZmFsc2UgaW4gdGhhdCBjYXNlLiBUaGlzIGlzIHN1YnRseSBkaWZmZXJlbnQgZnJvbSBz
b21lIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSBpbXBsZW1lbnRhdGlvbnMsCisgICAgLy8gd2hp
Y2ggbWF5IG5vdCByZWxlYXNlIHRoZSBsb2NrIGZvciBwYXN0IHRpbWVvdXQuIEJ1dCwgdGhpcyBi
ZWhhdmlvciBpcyBjb25zaXN0ZW50IHdpdGggT3Blbkdyb3VwCisgICAgLy8gZG9jdW1lbnRhdGlv
biBmb3IgdGltZWR3YWl0KCkuCisgICAgLy8KKyAgICAvLyBNYXkgd2FpdCB0b28gbG9uZyBvbiBz
b21lIE9TZXM6IHRoZSBDKysgc3RhbmRhcmQgbGlicmFyeSBpbXBsZW1lbnRhdGlvbiBvZgorICAg
IC8vIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlOjp3YWl0X3VudGlsKCksIHdoaWNoIHRoaXMgdXNl
cyBpbnRlcm5hbGx5LCBtYXkgY29udmVydCB0aGUgYWJzb2x1dGUKKyAgICAvLyB0aW1lIHRvIGFu
IGFic29sdXRlIHRpbWUgYWNjb3JkaW5nIHRvIHRoZSBzeXN0ZW0gY2xvY2ssIHdoaWNoIGlzbid0
IG1vbm90b25pYy4gSXQgd2lsbCBkbyB0aGlzCisgICAgLy8gc28gdGhhdCBpdCBjYW4gdXNlIHB0
aHJlYWRfY29uZF90aW1lZHdhaXQoKS4gRGVwZW5kaW5nIG9uIHRoZSBPUyBhbmQgaWYgYW4gdW5m
b3J0dW5hdGUKKyAgICAvLyBjb21iaW5hdGlvbiBvZiB0aHJlYWQgaW50ZXJsZWF2aW5ncyBhbmQg
c3lzdGVtIHRpbWUgY2hhbmdlcyBoYXBwZW5zLCB0aGlzIG1heSBjYXVzZSB3YWl0VW50aWwoKQor
ICAgIC8vIHRvIHdhaXQgbG9uZ2VyIHRoYW4gaXQncyBzdXBwb3NlZCB0by4gSG93ZXZlciwgaXQn
cyB0eXBpY2FsIGZvciBPU2VzIHRvIHR1cm4gdGhlIGFic29sdXRlCisgICAgLy8gdGltZW91dCBp
biBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gYSByZWxhdGl2ZSB0aW1lb3V0IGJlZm9yZSBj
YWxsaW5nIGludG8gdGhlIGtlcm5lbC4gVGhpcworICAgIC8vIGlzIHdoYXQgZ2xpYmMgZG9lcywg
Zm9yIGV4YW1wbGUuCisgICAgLy8KKyAgICAvLyBUaGVzZSBxdWlya3MgYXJlIGdlbmVyYWxseSBu
b3Qgd29ydGggd29ycnlpbmcgdG9vIG11Y2ggYWJvdXQuIFRoZSBmYWN0IHRoYXQgc29tZSBPU2Vz
IHBlcmZvcm0KKyAgICAvLyBjb252ZXJzaW9ucyB0byBhbiBhYnNvbHV0ZSBub24tbW9ub3Rvbmlj
IHRpbWUgaXMgdW5saWtlbHkgdG8gY2F1c2UgaXNzdWVzIGJlY2F1c2UgdGhleSB1c3VhbGx5Cisg
ICAgLy8ganVzdCBkbyB0aGF0IGFzIHBhcnQgb2YgYSBjb252ZXJzaW9uIHRvIGEgcmVsYXRpdmUg
c2xlZXAgYW1vdW50IGluIHRoZSBrZXJuZWwuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5
cGU+Ci0gICAgYm9vbCB3YWl0VW50aWwoCi0gICAgICAgIExvY2tUeXBlJiBsb2NrLCBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCisgICAgYm9vbCB3YWl0VW50
aWwoTG9ja1R5cGUmIGxvY2ssIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiAgICAgewotICAg
ICAgICBib29sIHJlc3VsdCA9IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAotICAgICAg
ICAgICAgJm1fZHVtbXksCi0gICAgICAgICAgICBbXSAoKSAtPiBib29sIHsgcmV0dXJuIHRydWU7
IH0sCi0gICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKLSAgICAgICAg
ICAgIHRpbWVvdXQpOworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgaWYgKHRpbWVvdXQg
PCBDbG9jazo6bm93KCkpIHsKKyAgICAgICAgICAgIGxvY2sudW5sb2NrKCk7CisgICAgICAgICAg
ICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9
IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAorICAgICAgICAgICAgICAgICZtX2R1bW15
LAorICAgICAgICAgICAgICAgIFtdICgpIC0+IGJvb2wgeyByZXR1cm4gdHJ1ZTsgfSwKKyAgICAg
ICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKKyAgICAgICAgICAgICAg
ICB0aW1lb3V0KTsKKyAgICAgICAgfQogICAgICAgICBsb2NrLmxvY2soKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CkBAIC01Niw4ICs4OSw3IEBAIHB1YmxpYzoKICAgICAvLyBXYWl0
IHVudGlsIHRoZSBnaXZlbiBwcmVkaWNhdGUgaXMgc2F0aXNmaWVkLiBSZXR1cm5zIHRydWUgaWYg
aXQgaXMgc2F0aXNmaWVkIGluIHRoZSBlbmQuCiAgICAgLy8gTWF5IHJldHVybiBlYXJseSBkdWUg
dG8gdGltZW91dC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRnVu
Y3Rvcj4KLSAgICBib29sIHdhaXRVbnRpbCgKLSAgICAgICAgTG9ja1R5cGUmIGxvY2ssIHN0ZDo6
Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgdGltZW91dCwgY29uc3QgRnVuY3RvciYg
cHJlZGljYXRlKQorICAgIGJvb2wgd2FpdFVudGlsKExvY2tUeXBlJiBsb2NrLCBDbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewogICAgICAg
ICB3aGlsZSAoIXByZWRpY2F0ZSgpKSB7CiAgICAgICAgICAgICBpZiAoIXdhaXRVbnRpbChsb2Nr
LCB0aW1lb3V0KSkKQEAgLTcyLDE3ICsxMDQsMTMgQEAgcHVibGljOgogICAgIGJvb2wgd2FpdEZv
cigKICAgICAgICAgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVU
aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewotICAgICAgICBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IGFic29sdXRlVGltZW91dCA9Ci0gICAgICAg
ICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSArCi0gICAgICAgICAgICBzdGQ6
OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlv
bj4ocmVsYXRpdmVUaW1lb3V0KTsKLQotICAgICAgICByZXR1cm4gd2FpdFVudGlsKGxvY2ssIGFi
c29sdXRlVGltZW91dCwgcHJlZGljYXRlKTsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2Nr
LCBhYnNvbHV0ZUZyb21SZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpLCBwcmVkaWNhdGUpOwogICAg
IH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgogICAgIHZvaWQgd2FpdChMb2Nr
VHlwZSYgbG9jaykKICAgICB7Ci0gICAgICAgIHdhaXRVbnRpbChsb2NrLCBzdGQ6OmNocm9ubzo6
c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7CisgICAgICAgIHdhaXRVbnRpbChsb2Nr
LCBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIExvY2tUeXBlLCB0eXBlbmFtZSBGdW5jdG9yPgpAQCAtOTIsNiArMTIwLDMyIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHdhaXQobG9jayk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgTG9ja1R5cGUsIHR5cGVuYW1lIFRpbWVUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsKExvY2tU
eXBlJiBsb2NrLCBjb25zdCBUaW1lVHlwZSYgdGltZW91dCkKKyAgICB7CisgICAgICAgIGlmICh0
aW1lb3V0ID09IFRpbWVUeXBlOjptYXgoKSkgeworICAgICAgICAgICAgd2FpdChsb2NrKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB3YWl0Rm9y
SW1wbChsb2NrLCB0aW1lb3V0IC0gVGltZVR5cGU6OmNsb2NrOjpub3coKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+CisgICAgYm9vbCB3YWl0VW50aWxXYWxsQ2xv
Y2tTZWNvbmRzKExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykK
KyAgICB7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVU
aW1lb3V0U2Vjb25kcyAtIGN1cnJlbnRUaW1lKCkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIExvY2tUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsTW9ub3RvbmljQ2xvY2tTZWNvbmRz
KExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykKKyAgICB7Cisg
ICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVUaW1lb3V0U2Vj
b25kcyAtIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKKyAgICB9CisKKyAgICAvLyBG
SVhNRTogV2UgY291bGQgcmVwbGFjZSB0aGUgZHVtbXkgYnl0ZSB3aXRoIGEgYm9vbGVhbiB0byB0
ZWxsIHVzIGlmIHRoZXJlIGlzIGFueW9uZSB3YWl0aW5nCisgICAgLy8gcmlnaHQgbm93LiBUaGlz
IGNvdWxkIGJlIHVzZWQgdG8gaW1wbGVtZW50IGEgZmFzdCBwYXRoIGZvciBub3RpZnlPbmUoKSBh
bmQgbm90aWZ5QWxsKCkuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODA5MAorCiAgICAgdm9pZCBub3RpZnlPbmUoKQogICAgIHsKICAgICAgICAgUGFy
a2luZ0xvdDo6dW5wYXJrT25lKCZtX2R1bW15KTsKQEAgLTEwMyw3ICsxNTcsNTYgQEAgcHVibGlj
OgogICAgIH0KICAgICAKIHByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+
CisgICAgYm9vbCB3YWl0Rm9yU2Vjb25kc0ltcGwoTG9ja1R5cGUmIGxvY2ssIGRvdWJsZSByZWxh
dGl2ZVRpbWVvdXRTZWNvbmRzKQorICAgIHsKKyAgICAgICAgZG91YmxlIHJlbGF0aXZlVGltZW91
dE5hbm9zZWNvbmRzID0gcmVsYXRpdmVUaW1lb3V0U2Vjb25kcyAqICgxMDAwLjAgKiAxMDAwLjAg
KiAxMDAwLjApOworICAgICAgICAKKyAgICAgICAgaWYgKCEocmVsYXRpdmVUaW1lb3V0TmFub3Nl
Y29uZHMgPiAwKSkgeworICAgICAgICAgICAgLy8gVGhpcyBoYW5kbGVzIGluc3RhLXRpbWVvdXRz
IGFzIHdlbGwgYXMgTmFOLgorICAgICAgICAgICAgbG9jay51bmxvY2soKTsKKyAgICAgICAgICAg
IGxvY2subG9jaygpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHJlbGF0aXZlVGltZW91dE5hbm9zZWNvbmRzID4gc3RhdGljX2Nhc3Q8ZG91Ymxl
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptYXgoKSkpIHsKKyAgICAgICAgICAgIC8v
IElmIHRoZSB0aW1lb3V0IGluIG5hbm9zZWNvbmRzIGNhbm5vdCBiZSBleHByZXNzZWQgdXNpbmcg
YSA2NC1iaXQgaW50ZWdlciwgdGhlbiB3ZQorICAgICAgICAgICAgLy8gbWlnaHQgYXMgd2VsbCB3
YWl0IGZvcmV2ZXIuCisgICAgICAgICAgICB3YWl0KGxvY2spOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGF1dG8gcmVsYXRpdmVUaW1lb3V0
ID0KKyAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyhzdGF0aWNfY2FzdDxpbnQ2
NF90PihyZWxhdGl2ZVRpbWVvdXROYW5vc2Vjb25kcykpOworCisgICAgICAgIHJldHVybiB3YWl0
Rm9ySW1wbChsb2NrLCByZWxhdGl2ZVRpbWVvdXQpOworICAgIH0KICAgICAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRHVyYXRpb25UeXBlPgorICAgIGJvb2wgd2Fp
dEZvckltcGwoTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVUaW1l
b3V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2NrLCBhYnNvbHV0ZUZyb21S
ZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEdXJhdGlvblR5cGU+CisgICAgQ2xvY2s6OnRpbWVfcG9pbnQgYWJzb2x1dGVGcm9tUmVsYXRp
dmUoY29uc3QgRHVyYXRpb25UeXBlJiByZWxhdGl2ZVRpbWVvdXQpCisgICAgeworICAgICAgICBp
ZiAocmVsYXRpdmVUaW1lb3V0IDwgRHVyYXRpb25UeXBlOjp6ZXJvKCkpCisgICAgICAgICAgICBy
ZXR1cm4gQ2xvY2s6OnRpbWVfcG9pbnQ6Om1pbigpOworCisgICAgICAgIGlmIChyZWxhdGl2ZVRp
bWVvdXQgPiBDbG9jazo6ZHVyYXRpb246Om1heCgpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGlz
IGhpZ2hseSB1bmxpa2VseS4gQnV0IGlmIGl0IGhhcHBlbnMsIHdlIHdhbnQgdG8gbm90IGRvIGFu
eXRoaW5nIGR1bWIuIFNsZWVwaW5nCisgICAgICAgICAgICAvLyB3aXRob3V0IGEgdGltZW91dCBz
ZWVtcyBzZW5zaWJsZSB3aGVuIHRoZSB0aW1lb3V0IGR1cmF0aW9uIGlzIGdyZWF0ZXIgdGhhbiB3
aGF0IGNhbiBiZQorICAgICAgICAgICAgLy8gZXhwcmVzc2VkIHVzaW5nIHN0ZWFkeV9jbG9jay4K
KyAgICAgICAgICAgIHJldHVybiBDbG9jazo6dGltZV9wb2ludDo6bWF4KCk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIENsb2NrOjpkdXJhdGlvbiBteVJlbGF0aXZlVGltZW91dCA9Cisg
ICAgICAgICAgICBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxDbG9jazo6ZHVyYXRpb24+KHJl
bGF0aXZlVGltZW91dCk7CisKKyAgICAgICAgcmV0dXJuIENsb2NrOjpub3coKSArIG15UmVsYXRp
dmVUaW1lb3V0OworICAgIH0KKwogICAgIHVpbnQ4X3QgbV9kdW1teTsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L01lc3NhZ2VRdWV1ZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9NZXNz
YWdlUXVldWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMzIsNyArMzIsOSBAQAogCiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Nyw4ICs3OSw4IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgICAgICBzdGF0aWMgZG91YmxlIGluZmluaXRlVGltZSgpIHsg
cmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCk7IH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKKyAgICAgICAg
Q29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8RGF0
YVR5cGU+PiBtX3F1ZXVlOwogICAgICAgICBib29sIG1fa2lsbGVkOwogICAgIH07CkBAIC05MSwz
NyArOTMsMzcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKHN0ZDo6
dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAg
ICAgbV9xdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRp
b24uc2lnbmFsKCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSB2b2lkIE1lc3NhZ2VR
dWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwoc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBt
ZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEY6
Om1vdmUobWVzc2FnZSkpOwogICAgICAgICBtX2tpbGxlZCA9IHRydWU7Ci0gICAgICAgIG1fY29u
ZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsKICAg
ICB9CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHF1ZXVlIHdhcyBlbXB0eSBiZWZvcmUg
dGhlIGl0ZW0gd2FzIGFkZGVkLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAg
IGlubGluZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHko
c3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwog
ICAgICAgICBib29sIHdhc0VtcHR5ID0gbV9xdWV1ZS5pc0VtcHR5KCk7CiAgICAgICAgIG1fcXVl
dWUuYXBwZW5kKFdURjo6bW92ZShtZXNzYWdlKSk7Ci0gICAgICAgIG1fY29uZGl0aW9uLnNpZ25h
bCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICAgICAgcmV0dXJuIHdh
c0VtcHR5OwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlu
bGluZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OnByZXBlbmQoc3RkOjp1bmlxdWVfcHRy
PERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVl
LnByZXBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRpb24uc2lnbmFs
KCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERhdGFUeXBlPgpAQCAtMTM3LDcgKzEzOSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgYXV0byBNZXNz
YWdlUXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQoTWVz
c2FnZVF1ZXVlV2FpdFJlc3VsdCYgcmVzdWx0LCBQcmVkaWNhdGUmJiBwcmVkaWNhdGUsIGRvdWJs
ZSBhYnNvbHV0ZVRpbWUpIC0+IHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4KICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayht
X211dGV4KTsKICAgICAgICAgYm9vbCB0aW1lZE91dCA9IGZhbHNlOwogCiAgICAgICAgIGF1dG8g
Zm91bmQgPSBtX3F1ZXVlLmVuZCgpOwpAQCAtMTQ5LDcgKzE1MSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgICAgICAgICAgaWYgKGZvdW5kICE9IG1fcXVldWUuZW5kKCkpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHRpbWVkT3V0ID0gIW1fY29uZGl0aW9uLnRpbWVkV2Fp
dChtX211dGV4LCBhYnNvbHV0ZVRpbWUpOworICAgICAgICAgICAgdGltZWRPdXQgPSAhbV9jb25k
aXRpb24ud2FpdFVudGlsV2FsbENsb2NrU2Vjb25kcyhtX211dGV4LCBhYnNvbHV0ZVRpbWUpOwog
ICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCF0aW1lZE91dCB8fCBhYnNvbHV0ZVRpbWUgIT0g
aW5maW5pdGVUaW1lKCkpOwpAQCAtMTc0LDcgKzE3Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBhdXRvIE1lc3NhZ2VRdWV1
ZTxEYXRhVHlwZT46OnRyeUdldE1lc3NhZ2UoKSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCkBAIC0xODYs
NyArMTg4LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIGF1dG8gTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6dHJ5R2V0TWVzc2Fn
ZUlnbm9yaW5nS2lsbGVkKCkgLT4gc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbXV0ZXgpOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIApAQCAtMTk3LDcgKzE5OSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVl
dWU8RGF0YVR5cGU+OjpyZW1vdmVJZihQcmVkaWNhdGUmJiBwcmVkaWNhdGUpCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV9tdXRleCk7CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBhdXRvIGZvdW5k
ID0gbV9xdWV1ZS5maW5kSWYoWyZwcmVkaWNhdGVdKGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxEYXRh
VHlwZT4mIHB0cikgLT4gYm9vbCB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHB0cik7CkBAIC0y
MTQsNyArMjE2LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0
YVR5cGU+CiAgICAgaW5saW5lIGJvb2wgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6aXNFbXB0eSgp
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gbV9xdWV1ZS5pc0VtcHR5KCk7CkBAIC0yMjMs
MTUgKzIyNSwxNSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRh
VHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpraWxsKCkKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9raWxsZWQgPSB0cnVlOwotICAgICAgICBtX2Nv
bmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGJvb2wg
TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbGVkKCkgY29uc3QKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4
KTsKICAgICAgICAgcmV0dXJuIG1fa2lsbGVkOwogICAgIH0KIH0gLy8gbmFtZXNwYWNlIFdURgpJ
bmRleDogU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDUsMTcgKzEwNSwxNyBAQCBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVh
ZFByaXZhdGU6CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6ZXhl
Y3V0ZShUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgdm9pZCogcGFyYW1ldGVycykKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211
dGV4KTsKIAogICAgIG1fdGhyZWFkRnVuY3Rpb24gPSB0aHJlYWRGdW5jdGlvbjsKICAgICBtX3Bh
cmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgIG1fcnVubmluZyA9IHRydWU7Ci0gICAgbV90aHJl
YWRDb25kaXRpb24uc2lnbmFsKCk7CisgICAgbV90aHJlYWRDb25kaXRpb24ubm90aWZ5T25lKCk7
CiB9CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZp
bmlzaCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CiAKICAgICB3aGlsZSAobV9ydW5uaW5nKQogICAgICAgICBtX3RocmVh
ZENvbmRpdGlvbi53YWl0KG1fbXV0ZXgpOwpAQCAtMTI0LDE0ICsxMjQsMTQgQEAgdm9pZCBQYXJh
bGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOgogdm9pZCBQYXJhbGxlbEVudmlyb25tZW50
OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJUaHJlYWQodm9pZCogdGhyZWFkRGF0YSkKIHsKICAgICBU
aHJlYWRQcml2YXRlKiBzaGFyZWRUaHJlYWQgPSByZWludGVycHJldF9jYXN0PFRocmVhZFByaXZh
dGUqPih0aHJlYWREYXRhKTsKLSAgICBNdXRleExvY2tlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CiAKICAg
ICB3aGlsZSAoc2hhcmVkVGhyZWFkLT5tX3RocmVhZElEKSB7CiAgICAgICAgIGlmIChzaGFyZWRU
aHJlYWQtPm1fcnVubmluZykgewogICAgICAgICAgICAgKCpzaGFyZWRUaHJlYWQtPm1fdGhyZWFk
RnVuY3Rpb24pKHNoYXJlZFRocmVhZC0+bV9wYXJhbWV0ZXJzKTsKICAgICAgICAgICAgIHNoYXJl
ZFRocmVhZC0+bV9ydW5uaW5nID0gZmFsc2U7CiAgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1f
cGFyZW50ID0gMDsKLSAgICAgICAgICAgIHNoYXJlZFRocmVhZC0+bV90aHJlYWRDb25kaXRpb24u
c2lnbmFsKCk7CisgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1fdGhyZWFkQ29uZGl0aW9uLm5v
dGlmeU9uZSgpOwogICAgICAgICB9CiAKICAgICAgICAgc2hhcmVkVGhyZWFkLT5tX3RocmVhZENv
bmRpdGlvbi53YWl0KHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAKIAog
I2lmIEVOQUJMRShUSFJFQURJTkdfR0VORVJJQykKIAorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Niw4ICs3OCw4IEBAIHB1YmxpYzoKICAg
ICAgICAgYm9vbCBtX3J1bm5pbmc7CiAgICAgICAgIFBhcmFsbGVsRW52aXJvbm1lbnQqIG1fcGFy
ZW50OwogCi0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29u
ZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsK
KyAgICAgICAgQ29uZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOwogCiAgICAgICAgIFRocmVhZEZ1
bmN0aW9uIG1fdGhyZWFkRnVuY3Rpb247CiAgICAgICAgIHZvaWQqIG1fcGFyYW1ldGVyczsKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1BhcmtpbmdMb3QuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0
Zi9QYXJraW5nTG90LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTExLDcgKzUxMSw3IEBAIGJvb2wg
UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHkoCiAgICAgY29uc3Qgdm9pZCogYWRkcmVzcywK
ICAgICBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4gdmFsaWRhdGlvbiwKICAgICBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gYmVmb3JlU2xlZXAsCi0gICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0KQorICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiB7CiAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2codG9TdHJpbmcoY3VycmVudFRocmVhZCgpLCAi
OiBwYXJraW5nLlxuIikpOwpAQCAtNTM5LDExICs1MzksMTEgQEAgYm9vbCBQYXJraW5nTG90Ojpw
YXJrQ29uZGl0aW9uYWxseSgKICAgICBib29sIGRpZEdldERlcXVldWVkOwogICAgIHsKICAgICAg
ICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrZXIobWUtPnBhcmtpbmdMb2NrKTsK
LSAgICAgICAgd2hpbGUgKG1lLT5hZGRyZXNzICYmIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
Om5vdygpIDwgdGltZW91dCkgeworICAgICAgICB3aGlsZSAobWUtPmFkZHJlc3MgJiYgQ2xvY2s6
Om5vdygpIDwgdGltZW91dCkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyBwcmV0dHkgZnVubnku
IE9uIExpbnV4LCBpZiB5b3Ugd2FpdCB1bnRpbCB0aGUgbWF4IHRpbWUsIGl0IGltbWVkaWF0ZWx5
IHJlcG9ydHMgdGhhdCB5b3UgdGltZWQKICAgICAgICAgICAgIC8vIG91dC4gV2hhdCdzIHBhcnRp
Y3VsYXJseSBiYWQgYWJvdXQgdGhpcyBpcyB0aGF0IGl0IG5ldmVyIHJlbGVhc2VzIHRoZSBsb2Nr
IGluIHRoYXQgY2FzZS4gU28sIHlvdSBsb29wCiAgICAgICAgICAgICAvLyBmb3JldmVyIHdpdGhv
dXQgeWllbGRpbmcgdG8gdGhlIHRocmVhZCB0aGF0IHdvdWxkIHdha2UgeW91IHVwLgotICAgICAg
ICAgICAgaWYgKHRpbWVvdXQgPT0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2lu
dDo6bWF4KCkpCisgICAgICAgICAgICBpZiAodGltZW91dCA9PSBDbG9jazo6dGltZV9wb2ludDo6
bWF4KCkpCiAgICAgICAgICAgICAgICAgbWUtPnBhcmtpbmdDb25kaXRpb24ud2FpdChsb2NrZXIp
OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1lLT5wYXJraW5nQ29uZGl0aW9u
LndhaXRfdW50aWwobG9ja2VyLCB0aW1lb3V0KTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1Bhcmtp
bmdMb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmgJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNiArMzgsOCBAQCBjbGFzcyBQYXJraW5nTG90IHsKICAgICBQYXJraW5nTG90KGNv
bnN0IFBhcmtpbmdMb3QmKSA9IGRlbGV0ZTsKIAogcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jayBDbG9jazsKKyAgICAKICAgICAvLyBQYXJrcyB0aGUgdGhyZWFk
IGluIGEgcXVldWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBhZGRyZXNzLCB3aGljaCBjYW5u
b3QgYmUgbnVsbC4gVGhlCiAgICAgLy8gcGFya2luZyBvbmx5IHN1Y2NlZWRzIGlmIHRoZSB2YWxp
ZGF0aW9uIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSB3aGlsZSB0aGUgcXVldWUgbG9jayBpcyBoZWxk
LgogICAgIC8vIElmIHZhbGlkYXRpb24gcmV0dXJucyBmYWxzZSwgaXQgd2lsbCB1bmxvY2sgdGhl
IGludGVybmFsIHBhcmtpbmcgcXVldWUgYW5kIHRoZW4gaXQgd2lsbApAQCAtNTMsNyArNTUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IHZvaWQqIGFkZHJlc3MsCiAgICAgICAgIHN0ZDo6ZnVu
Y3Rpb248Ym9vbCgpPiB2YWxpZGF0aW9uLAogICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4g
YmVmb3JlU2xlZXAsCi0gICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9p
bnQgdGltZW91dCk7CisgICAgICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpOwogCiAgICAg
Ly8gU2ltcGxlIHZlcnNpb24gb2YgcGFya0NvbmRpdGlvbmFsbHkoKSB0aGF0IGNvdmVycyB0aGUg
bW9zdCBjb21tb24gY2FzZTogeW91IHdhbnQgdG8gcGFyawogICAgIC8vIGluZGVmaW5pdGVseSBz
byBsb25nIGFzIHRoZSB2YWx1ZSBhdCB0aGUgZ2l2ZW4gYWRkcmVzcyBoYXNuJ3QgY2hhbmdlZC4K
QEAgLTY3LDcgKzY5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9
PSBleHBlY3RlZDsKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICBbXSAoKSB7IH0sCi0gICAg
ICAgICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7Cisg
ICAgICAgICAgICBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIC8vIFVu
cGFya3Mgb25lIHRocmVhZCBmcm9tIHRoZSBxdWV1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVu
IGFkZHJlc3MsIHdoaWNoIGNhbm5vdCBiZSBudWxsLgpAQCAtMTAzLDcgKzEwNSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBBMSxUMSBBMixUMyBBMSxUMiBBMixUNAogICAgIC8vIEExLFQxIEEyLFQzIEEy
LFQ0IEExLFQyCiAgICAgLy8KLSAgICAvLyBBcyB3ZWxsIGFzIG1hbnkgb3RoZXIgcG9zc2libGUg
aW50ZXJsZWF2ZXMgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBi
dXQgYXJlCisgICAgLy8gQXMgd2VsbCBhcyBtYW55IG90aGVyIHBvc3NpYmxlIGludGVybGVhdmlu
Z3MgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBidXQgYXJlCiAg
ICAgLy8gb3RoZXJ3aXNlIHVuY29uc3RyYWluZWQuIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBwcmlt
YXJpbHkgZm9yIGRlYnVnZ2luZy4gSXQncyBhbHNvIHVzZWQgYnkgdW5pdAogICAgIC8vIHRlc3Rz
LgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBmb3JFYWNoKHN0ZDo6ZnVuY3Rp
b248dm9pZChUaHJlYWRJZGVudGlmaWVyLCBjb25zdCB2b2lkKik+KTsKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDcgKzEyNiw2
IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgVGhyZWFkSWRlbnRpZmllckRhdGE6
OmluaXRpYWxpemVPbmNlKCk7CiAgICAgU3RhY2tTdGF0czo6aW5pdGlhbGl6ZSgpOwogICAgIHd0
ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAgIGluaXRp
YWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHJldmlzaW9u
IDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2NSw3ICsxNjUsNiBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogICAgIHRo
cmVhZE1hcE11dGV4KCk7CiAgICAgaW5pdGlhbGl6ZVJhbmRvbU51bWJlckdlbmVyYXRvcigpOwog
ICAgIHd0ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAg
IGluaXRpYWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi93dGYvZHRvYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBA
CiAgKiBUaGUgYXV0aG9yIG9mIHRoaXMgc29mdHdhcmUgaXMgRGF2aWQgTS4gR2F5LgogICoKICAq
IENvcHlyaWdodCAoYykgMTk5MSwgMjAwMCwgMjAwMSBieSBMdWNlbnQgVGVjaG5vbG9naWVzLgot
ICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMiwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCwgMjAxMiwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwg
YW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CiAgKiBwdXJwb3NlIHdpdGhvdXQg
ZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoaXMgZW50aXJlIG5vdGljZQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImR0b2EuaCIKIAogI2luY2x1ZGUgPHN0ZGlvLmg+
CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01NCw3
ICs1NSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1NdXRleCogc19kdG9hUDVNdXRleDsKK3N0
YXRpYyBTdGF0aWNMb2NrIHNfZHRvYVA1TXV0ZXg7CiAKIHR5cGVkZWYgdW5pb24gewogICAgIGRv
dWJsZSBkOwpAQCAtMzc1LDcgKzM3Niw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93
NW11bHQoQmlnSW4KICAgICBpZiAoIShrID4+PSAyKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
c19kdG9hUDVNdXRleC0+bG9jaygpOworICAgIHNfZHRvYVA1TXV0ZXgubG9jaygpOwogICAgIFA1
Tm9kZSogcDUgPSBwNXM7CiAKICAgICBpZiAoIXA1KSB7CkBAIC0zODgsNyArMzg5LDcgQEAgc3Rh
dGljIEFMV0FZU19JTkxJTkUgdm9pZCBwb3c1bXVsdChCaWdJbgogICAgIH0KIAogICAgIGludCBw
NXNDb3VudExvY2FsID0gcDVzQ291bnQ7Ci0gICAgc19kdG9hUDVNdXRleC0+dW5sb2NrKCk7Cisg
ICAgc19kdG9hUDVNdXRleC51bmxvY2soKTsKICAgICBpbnQgcDVzVXNlZCA9IDA7CiAKICAgICBm
b3IgKDs7KSB7CkBAIC0zOTksNyArNDAwLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBw
b3c1bXVsdChCaWdJbgogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKCsrcDVzVXNl
ZCA9PSBwNXNDb3VudExvY2FsKSB7Ci0gICAgICAgICAgICBzX2R0b2FQNU11dGV4LT5sb2NrKCk7
CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LmxvY2soKTsKICAgICAgICAgICAgIGlmIChwNXNV
c2VkID09IHA1c0NvdW50KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFwNS0+bmV4dCk7CiAg
ICAgICAgICAgICAgICAgcDUtPm5leHQgPSBuZXcgUDVOb2RlOwpAQCAtNDEwLDcgKzQxMSw3IEBA
IHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93NW11bHQoQmlnSW4KICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgcDVzQ291bnRMb2NhbCA9IHA1c0NvdW50OwotICAgICAgICAgICAgc19k
dG9hUDVNdXRleC0+dW5sb2NrKCk7CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LnVubG9jaygp
OwogICAgICAgICB9CiAgICAgICAgIHA1ID0gcDUtPm5leHQ7CiAgICAgfQpJbmRleDogU291cmNl
L1dURi93dGYvZHRvYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2R0b2EuaAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93dGYvZHRvYS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCwxMCArMjgsNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotY2xhc3MgTXV0ZXg7Ci0KLWV4
dGVybiBNdXRleCogc19kdG9hUDVNdXRleDsKLQogdHlwZWRlZiBjaGFyIER0b2FCdWZmZXJbODBd
OwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdG9hKER0b2FCdWZmZXIgcmVzdWx0LCBkb3Vi
bGUgZGQsIGJvb2wmIHNpZ24sIGludCYgZXhwb25lbnQsIHVuc2lnbmVkJiBwcmVjaXNpb24pOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjc0IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5n
IHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugbm8gbmV3IGJl
aGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29k
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3ApOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbUF1ZGlvU291cmNlOjphZGRBdWRpb0NvbnN1bWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6c2V0QXVkaW9Gb3JtYXQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBs
ZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6aGFzUGVuZGluZ1RyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjp0YXNrQ29tcGxldGVkKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJl
YWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRo
cmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZXRyeUNhbkVzdGFibGlzaERh
dGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6aGFzRW50cnlGb3JP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRNYXhTaXplRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpjbG9zZUFsbERh
dGFiYXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmZ1bGxQYXRoRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpvcmlnaW5zKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZGF0YWJhc2VOYW1lc0Zvck9yaWdp
bik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmRldGFpbHNGb3JOYW1lQW5k
T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VE
ZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZG9uZUNyZWF0aW5n
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZW1vdmVPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRPcGVuRGF0YWJh
c2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3JpZ2luTG9ja0Zvcik6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnF1b3RhRm9yT3JpZ2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0UXVvdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OnJlbW92ZURlbGV0ZWRPcGVuZWREYXRhYmFzZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGVJZkVtcHR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNlTXV0ZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bm90aWZpY2F0aW9uTXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2Vy
OjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6Om5vdGlmeURhdGFiYXNlc0NoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxs
YmFja1dyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTENhbGxiYWNrV3JhcHBlcjo6Y2xl
YXIpOgorICAgICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjp1bndyYXApOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjpoYXNDYWxsYmFjayk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXApOgorICAgICAgICAo
V2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjplbnF1ZXVlU3RhdGVtZW50QmFja2VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmdldE5leHRTdGF0ZW1l
bnQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5k
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpzY2hlZHVsZUV4ZWN1dGlv
blRlcm1pbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6
OmlzRXhlY3V0aW9uVGVybWluYXRpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OnBv
c3RNZXNzYWdlVG9SZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVs
Ojp0cnlHZXRNZXNzYWdlRnJvbVJlbW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWw6OmlzQ29ubmVjdGVkVG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRD
aGFubmVsOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBv
cnRDaGFubmVsOjpsb2NhbGx5RW50YW5nbGVkUG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6c2V0UmVtb3RlUG9ydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6ZW50YW5nbGVkQ2hhbm5lbCk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y2xvc2VJbnRlcm5hbCk6Cisg
ICAgICAgICogZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaDoKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNv
bkRhdGFiYXNlOjpyZW1vdmVBbGxJY29ucyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRh
dGFiYXNlOjpzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYkNv
cmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTCk6CisgICAgICAg
IChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAgICAgICAg
KFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29uRm9yUGFnZVVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJM
KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNMb2FkRGVjaXNp
b25Gb3JJY29uVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25v
dXNJY29uRGF0YUtub3duRm9ySWNvblVSTCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnBhZ2VVUkxNYXBwaW5nQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpyZXRhaW5lZFBhZ2VVUkxDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6
Omljb25SZWNvcmRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omljb25S
ZWNvcmRDb3VudFdpdGhEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6d2Fr
ZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpzY2hlZHVsZU9y
RGVmZXJTeW5jVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjppc09wZW5C
ZXNpZGVzTWFpblRocmVhZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OmdldE9y
Q3JlYXRlUGFnZVVSTFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omlj
b25EYXRhYmFzZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpw
ZXJmb3JtT3BlbkluaXRpYWxpemF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cGVyZm9ybVVSTEltcG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnN5
bmNUaHJlYWRNYWluTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnBlcmZv
cm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SWNvbkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25E
YXRhYmFzZTo6d3JpdGVUb0RhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cHJ1bmVVbnJldGFpbmVkSWNvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpjbGVhbnVwU3luY1RocmVhZCk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25v
dXNseSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Ny
b2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aXNQb2ludElu
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjpzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZTo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1Njcm9sbFNuYXBwaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldENhblJ1YmJlckJhbmRTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVmdCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0UmlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxQaW5uaW5nQmVoYXZpb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpjbGVhckxhdGNoZWROb2RlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6d2FpdEZvckxvYWRlclRo
cmVhZENvbXBsZXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxv
YWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXRSZWNl
aXZlZE1lbW9yeVByZXNzdXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6Y2xlYXJNZW1vcnlQcmVzc3VyZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OnNob3VsZFdhaXRGb3JNZW1vcnlDbGVhck1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUlm
TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5
RGlkUmVmcmVzaCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnNldE1v
bm90b25pY0FuaW1hdGlvblN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3I6Om11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0RGVsYXlDYWxsYmFja3MpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1h
aW5UaHJlYWRQZW5kaW5nRmxhZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246OmRpc3BhdGNoTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6
OmNhbGxiYWNrQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjp+QVZGV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjptYXBMb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6OkFWRldyYXBwZXI6OmFkZFRvTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldy
YXBwZXI6OnJlbW92ZUZyb21NYXApOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cGVy
aW9kaWNUaW1lT2JzZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVy
Ojpwcm9jZXNzTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6Omxv
YWRQbGF5YWJsZUNvbXBsZXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFw
cGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
QVZGV3JhcHBlcjo6c2Vla0NvbXBsZXRlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFW
RldyYXBwZXI6OnByb2Nlc3NDdWUpOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6bGVn
aWJsZU91dHB1dENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OnByb2Nl
c3NTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6QVZG
V3JhcHBlcjo6cmVzb3VyY2VMb2FkZXJTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVxdWVzdGVkUmVz
b3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFj
a1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXI6OnRhZ3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6cmVxdWVz
dFJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjphZGRMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OnJlbW92ZUxp
c3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbjo6bm90aWZ5RGVsZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Okludm9rZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Om9u
TWVkaWFQbGF5ZXJEZWxldGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L0xlZ2FjeVRpbGVDYWNoZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2Fj
aGUubW06CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRpbGVzT3BhcXVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6ZG9MYXlvdXRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldEN1cnJlbnRTY2FsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmNvbW1pdFNjYWxlQ2hhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6bGF5b3V0VGlsZXNOb3cpOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpsYXlvdXRUaWxlc05vd0ZvclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxUaWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUZvcmVncm91bmRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldENvbnRlbnRSZXBsYWNlbWVudElt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6Y29udGVudFJlcGxhY2Vt
ZW50SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjp0aWxlQ3JlYXRp
b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0TmVl
ZHNEaXNwbGF5SW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dXBk
YXRlVGlsaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRp
bGluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpkb1BlbmRpbmdS
ZXBhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmZsdXNoU2F2ZWRE
aXNwbGF5UmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpwcmVwYXJl
VG9EcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6YWRkTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6dGFrZUxheWVyV2l0aFNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6cHJ1bmUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5
VGlsZUxheWVyUG9vbDo6ZHJhaW4pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsRG93bmxvYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnJlbW92ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjpnZXRBY3RpdmVEb3dubG9hZENv
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OmdldFBlbmRpbmdE
b3dubG9hZENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnN0
b3BUaHJlYWRJZklkbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
dXBkYXRlSGFuZGxlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6On5DdXJs
RG93bmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjppbml0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Z2V0VGVtcFBhdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybERvd25sb2FkOjpnZXRVcmwpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2Fk
OjpnZXRSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmNsb3NlRmls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVIZWFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZEZhaWwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZUph
clBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkUmVzb3VyY2VNdXRleCk6CisgICAgICAg
IChXZWJDb3JlOjpjdXJsX2xvY2tfY2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Y3VybF91
bmxvY2tfY2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9v
ay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlFMRGlyZWN0b3J5QXR0cmlidXRlcyk6CisgICAgICAg
IChxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6
YWRkUUxQcmV2aWV3Q29udmVydGVyV2l0aEZpbGVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
cWxQcmV2aWV3Q29udmVydGVyVVRJRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVFM
UHJldmlld0NvbnZlcnRlckZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpzYWZlUUxVUkxGb3JE
b2N1bWVudFVSTEFuZFJlc291cmNlVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmNsb3NlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjptYXhpbXVtU2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6c2V0TWF4aW11bVNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6OnBhZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0
ZURhdGFiYXNlOjpmcmVlU3BhY2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFi
YXNlOjp0b3RhbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnJ1bklu
Y3JlbWVudGFsVmFjdXVtQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFz
ZTo6c2V0QXV0aG9yaXplcik6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6ZGF0YWJhc2VNdXRleCk6Cisg
ICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTUUxpdGVTdGF0ZW1lbnQ6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRl
U3RhdGVtZW50OjpzdGVwKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZDo6c3RvcCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKwogMjAxNS0w
OC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCBjb25zdCB0byBjb250ZW50IGV4dGVuc2lvbiBwYXJzZXIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3Bw
CShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Fz
eW5jQXVkaW9EZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29kZXIoKQog
ewogICAgIC8vIFN0YXJ0IHdvcmtlciB0aHJlYWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3Ro
cmVhZENyZWF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOwogICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6
OnRocmVhZEVudHJ5LCB0aGlzLCAiQXVkaW8gRGVjb2RlciIpOwogfQogCkBAIC03Niw3ICs3Niw3
IEBAIHZvaWQgQXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3AoKQogCiAgICAgewogICAgICAgICAv
LyBXYWl0IGZvciB1bnRpbCB3ZSBoYXZlIG1fdGhyZWFkSUQgZXN0YWJsaXNoZWQgYmVmb3JlIHN0
YXJ0aW5nIHRoZSBydW4gbG9vcC4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENy
ZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11
dGV4KTsKICAgICB9CiAKICAgICAvLyBLZWVwIHJ1bm5pbmcgZGVjb2RpbmcgdGFza3MgdW50aWwg
d2UncmUga2lsbGVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3lu
Y0F1ZGlvRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5Mb29wKCk7CiAKICAgICBX
VEY6OlRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJRDsKLSAgICBNdXRleCBtX3RocmVhZENyZWF0
aW9uTXV0ZXg7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgTWVzc2FnZVF1
ZXVlPERlY29kaW5nVGFzaz4gbV9xdWV1ZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzgwLDcgKzM4MCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb25uZWN0
aW9uQ291bnQgeyAwIH07CiAKICAgICAvLyBHcmFwaCBsb2NraW5nLgotICAgIE11dGV4IG1fY29u
dGV4dEdyYXBoTXV0ZXg7CisgICAgTG9jayBtX2NvbnRleHRHcmFwaE11dGV4OwogICAgIHZvbGF0
aWxlIFRocmVhZElkZW50aWZpZXIgbV9hdWRpb1RocmVhZCB7IDAgfTsKICAgICB2b2xhdGlsZSBU
aHJlYWRJZGVudGlmaWVyIG1fZ3JhcGhPd25lclRocmVhZDsgLy8gaWYgdGhlIGxvY2sgaXMgaGVs
ZCB0aGVuIHRoaXMgaXMgdGhlIHRocmVhZCB3aGljaCBvd25zIGl0LCBvdGhlcndpc2UgPT0gVW5k
ZWZpbmVkVGhyZWFkSWRlbnRpZmllcgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDEzICs2MywxMyBAQCBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBNZWRpYVN0CiAKIHZvaWQgTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZTo6YWRkQXVkaW9Db25zdW1lcihQYXNzUmVmUHRyPEF1ZGlvRGVzdGluYXRpb25D
b25zdW1lcj4gY29uc3VtZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXVkaW9Db25z
dW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7
CiAgICAgbV9hdWRpb0NvbnN1bWVycy5hcHBlbmQoY29uc3VtZXIpOwogfQogCiBib29sIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIoQXVkaW9EZXN0aW5hdGlvbkNv
bnN1bWVyKiBjb25zdW1lcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdWRpb0NvbnN1
bWVyc0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsK
ICAgICBzaXplX3QgcG9zID0gbV9hdWRpb0NvbnN1bWVycy5maW5kKGNvbnN1bWVyKTsKICAgICBp
ZiAocG9zICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIG1fYXVkaW9Db25zdW1lcnMucmVtb3ZlKHBv
cyk7CkBAIC04MCwxNCArODAsMTQgQEAgYm9vbCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpyZW1v
dmVBdWRpbwogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnNldEF1ZGlvRm9ybWF0KHNp
emVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9hdWRpb0NvbnN1bWVyc0xvY2spOwogICAgIGZvciAoYXV0byYgY29uc3VtZXIgOiBtX2F1ZGlv
Q29uc3VtZXJzKQogICAgICAgICBjb25zdW1lci0+c2V0Rm9ybWF0KG51bWJlck9mQ2hhbm5lbHMs
IHNhbXBsZVJhdGUpOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVB
dWRpbyhBdWRpb0J1cyogYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CiAgICAgZm9yIChhdXRvJiBjb25zdW1lciA6IG1fYXVk
aW9Db25zdW1lcnMpCiAgICAgICAgIGNvbnN1bWVyLT5jb25zdW1lQXVkaW8oYnVzLCBudW1iZXJP
ZkZyYW1lcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvRGVzdGlu
YXRpb25Db25zdW1lci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02
NSw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpOwogCiAg
ICAgU3RyaW5nIG1fZGV2aWNlSWQ7Ci0gICAgTXV0ZXggbV9hdWRpb0NvbnN1bWVyc0xvY2s7Cisg
ICAgTG9jayBtX2F1ZGlvQ29uc3VtZXJzTG9jazsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvRGVz
dGluYXRpb25Db25zdW1lcj4+IG1fYXVkaW9Db25zdW1lcnM7CiAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlcyBtX2N1cnJlbnRTdGF0ZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysr
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xvc2UoKQogICAgIEFT
U0VSVChjdXJyZW50VGhyZWFkKCkgPT0gZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFk
KCktPmdldFRocmVhZElEKCkpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOwogCiAgICAgICAgIC8vIENsZWFuIHVwIHRy
YW5zYWN0aW9ucyB0aGF0IGhhdmUgbm90IGJlZW4gc2NoZWR1bGVkIHlldDoKICAgICAgICAgLy8g
VHJhbnNhY3Rpb24gcGhhc2UgMSBjbGVhbnVwLiBTZWUgY29tbWVudCBvbiAiV2hhdCBoYXBwZW5z
IGlmIGEKQEAgLTM1Myw3ICszNTMsNyBAQCBib29sIERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZl
cmlmeShib29sCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHsKICAgICAgICAgLy8gTWFrZSBzdXJl
IHdlIHdhaXQgdGlsbCB0aGUgYmFja2dyb3VuZCByZW1vdmFsIG9mIHRoZSBlbXB0eSBkYXRhYmFz
ZSBmaWxlcyBmaW5pc2hlZCBiZWZvcmUgdHJ5aW5nIHRvIG9wZW4gYW55IGRhdGFiYXNlLgotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIoRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRl
eCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0
YWJhc2VNdXRleCgpKTsKICAgICB9CiAjZW5kaWYKIApAQCAtNTY1LDcgKzU2NSw3IEBAIHZvaWQg
RGF0YWJhc2U6OnNjaGVkdWxlVHJhbnNhY3Rpb24oKQogCiBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0
aW9uQmFja2VuZD4gRGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FMVHJhbnNh
Y3Rpb24+IHRyYW5zYWN0aW9uLCBib29sIHJlYWRPbmx5LCBjb25zdCBDaGFuZ2VWZXJzaW9uRGF0
YSogZGF0YSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jl
c3NNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NN
dXRleCk7CiAgICAgaWYgKCFtX2lzVHJhbnNhY3Rpb25RdWV1ZUVuYWJsZWQpCiAgICAgICAgIHJl
dHVybiAwOwogCkBAIC01OTMsMTQgKzU5MywxNCBAQCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRy
YW5zYWN0aW9uU3RlcChTCiAKIHZvaWQgRGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNv
bXBsZXRlZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dy
ZXNzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dyZXNz
TXV0ZXgpOwogICAgIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzID0gZmFsc2U7CiAgICAgc2NoZWR1
bGVUcmFuc2FjdGlvbigpOwogfQogCiBib29sIERhdGFiYXNlOjpoYXNQZW5kaW5nVHJhbnNhY3Rp
b24oKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4
KTsKICAgICByZXR1cm4gbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3MgfHwgIW1fdHJhbnNhY3Rpb25R
dWV1ZS5pc0VtcHR5KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlRXJyb3IuaCIK
ICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2Miw3ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxEYXRhYmFzZUF1dGhvcml6ZXI+IG1fZGF0YWJhc2VBdXRob3JpemVyOwogCiAgICAgRGVxdWU8
UmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4+IG1fdHJhbnNhY3Rpb25RdWV1ZTsKLSAgICBN
dXRleCBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4OworICAgIExvY2sgbV90cmFuc2FjdGlv
bkluUHJvZ3Jlc3NNdXRleDsKICAgICBib29sIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzOwogICAg
IGJvb2wgbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFibGVkOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VGFzay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUzLDcgKzUz
LDcgQEAgdm9pZCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6OnRhc2tDb21wbAogewogICAgIG1f
c3luY2hyb25vdXNNdXRleC5sb2NrKCk7CiAgICAgbV90YXNrQ29tcGxldGVkID0gdHJ1ZTsKLSAg
ICBtX3N5bmNocm9ub3VzQ29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1fc3luY2hyb25vdXNDb25k
aXRpb24ubm90aWZ5T25lKCk7CiAgICAgbV9zeW5jaHJvbm91c011dGV4LnVubG9jaygpOwogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUYXNrLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMxLDggKzMxLDkgQEAKICNpbmNsdWRlICJEYXRhYmFzZUJhc2ljVHlwZXMuaCIKICNp
bmNsdWRlICJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25CYWNrZW5k
LmgiCisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC01OCw4ICs1OSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBib29sIG1fdGFza0Nv
bXBsZXRlZDsKLSAgICBNdXRleCBtX3N5bmNocm9ub3VzTXV0ZXg7Ci0gICAgVGhyZWFkQ29uZGl0
aW9uIG1fc3luY2hyb25vdXNDb25kaXRpb247CisgICAgTG9jayBtX3N5bmNocm9ub3VzTXV0ZXg7
CisgICAgQ29uZGl0aW9uIG1fc3luY2hyb25vdXNDb25kaXRpb247CiAjaWZuZGVmIE5ERUJVRwog
ICAgIGJvb2wgbV9oYXNDaGVja2VkRm9yVGVybWluYXRpb247CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBE
YXRhYmFzZVRocmVhZDo6fkRhdGFiYXNlVGhyZWFkKCkKIAogYm9vbCBEYXRhYmFzZVRocmVhZDo6
c3RhcnQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKIAogICAgIGlmICht
X3RocmVhZElEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lk
IERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZCgpCiB7CiAgICAgewogICAgICAgICAvLyBX
YWl0IGZvciBEYXRhYmFzZVRocmVhZDo6c3RhcnQoKSB0byBjb21wbGV0ZS4KLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJT
dGFydGVkIERhdGFiYXNlVGhyZWFkICVwIiwgdGhpcyk7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCShy
ZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgdm9pZCBkYXRhYmFzZVRocmVhZFN0YXJ0KHZvaWQqKTsKICAgICB2b2lkIGRh
dGFiYXNlVGhyZWFkKCk7CiAKLSAgICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CisgICAg
TG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVh
ZElEOwogICAgIFJlZlB0cjxEYXRhYmFzZVRocmVhZD4gbV9zZWxmUmVmOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNr
ZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcg
QEAgRGF0YWJhc2VUcmFja2VyOjpEYXRhYmFzZVRyYWNrZXIoY29uc3QgUwogCiB2b2lkIERhdGFi
YXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIEFTU0VSVCghbV9k
YXRhYmFzZS5pc09wZW4oKSk7CiAgICAgbV9kYXRhYmFzZURpcmVjdG9yeVBhdGggPSBwYXRoLmlz
b2xhdGVkQ29weSgpOwogfQpAQCAtMTY2LDcgKzE2Niw3IEBAIGJvb2wgRGF0YWJhc2VUcmFja2Vy
OjpjYW5Fc3RhYmxpc2hEYXRhYmEKIHsKICAgICBlcnJvciA9IERhdGFiYXNlRXJyb3I6Ok5vbmU7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIFNlY3VyaXR5T3Jp
Z2luKiBvcmlnaW4gPSBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpOwogCiAgICAgaWYgKGlzRGVs
ZXRpbmdEYXRhYmFzZU9yT3JpZ2luRm9yKG9yaWdpbiwgbmFtZSkpIHsKQEAgLTIxOCw3ICsyMTgs
NyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6cmV0cnlDYW5Fc3RhYmxpc2hECiB7CiAgICAgZXJy
b3IgPSBEYXRhYmFzZUVycm9yOjpOb25lOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNl
KG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFz
ZUd1YXJkKTsKICAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gY29udGV4dC0+c2VjdXJpdHlP
cmlnaW4oKTsKIAogICAgIC8vIFdlIGhhdmUgYWxyZWFkeSBlbGltaW5hdGVkIG90aGVyIHR5cGVz
IG9mIGVycm9ycyBpbiBjYW5Fc3RhYmxpc2hEYXRhYmFzZSgpLgpAQCAtMjU3LDcgKzI1Nyw3IEBA
IGJvb2wgRGF0YWJhc2VUcmFja2VyOjpoYXNFbnRyeUZvck9yaWdpbk4KIAogYm9vbCBEYXRhYmFz
ZVRyYWNrZXI6Omhhc0VudHJ5Rm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hv
bGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICByZXR1cm4gaGFzRW50cnlG
b3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKIH0KIApAQCAtMjg2LDcgKzI4Niw3IEBAIHVuc2lnbmVk
IGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OmdldE0KIHsKICAgICAvLyBUaGUgbWF4aW11bSBz
aXplIGZvciBhIGRhdGFiYXNlIGlzIHRoZSBmdWxsIHF1b3RhIGZvciBpdHMgb3JpZ2luLCBtaW51
cyB0aGUgY3VycmVudCB1c2FnZSB3aXRoaW4gdGhlIG9yaWdpbiwKICAgICAvLyBwbHVzIHRoZSBj
dXJyZW50IHVzYWdlIG9mIHRoZSBnaXZlbiBkYXRhYmFzZQotICAgIE11dGV4TG9ja2VyIGxvY2tE
YXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1f
ZGF0YWJhc2VHdWFyZCk7CiAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGRhdGFiYXNlLT5z
ZWN1cml0eU9yaWdpbigpOwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhID0gcXVvdGFG
b3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKQEAgLTMxMSw3ICszMTEsNyBAQCB2b2lkIERhdGFiYXNl
VHJhY2tlcjo6Y2xvc2VBbGxEYXRhYmFzZXMoCiB7CiAgICAgVmVjdG9yPFJlZjxEYXRhYmFzZT4+
IG9wZW5EYXRhYmFzZXM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBvcGVuRGF0YWJhc2VN
YXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAgICBMb2NrSG9sZGVyIG9wZW5E
YXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CiAgICAgICAgIGlmICghbV9v
cGVuRGF0YWJhc2VNYXApCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGZvciAoYXV0byYg
bmFtZU1hcCA6IG1fb3BlbkRhdGFiYXNlTWFwLT52YWx1ZXMoKSkgewpAQCAtMzg5LDEzICszODks
MTMgQEAgU3RyaW5nIERhdGFiYXNlVHJhY2tlcjo6ZnVsbFBhdGhGb3JEYXRhYgogCiBTdHJpbmcg
RGF0YWJhc2VUcmFja2VyOjpmdWxsUGF0aEZvckRhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5vdEV4aXN0cykKIHsKLSAgICBN
dXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIHJldHVybiBmdWxsUGF0aEZvckRh
dGFiYXNlTm9Mb2NrKG9yaWdpbiwgbmFtZSwgY3JlYXRlSWZOb3RFeGlzdHMpLmlzb2xhdGVkQ29w
eSgpOwogfQogCiB2b2lkIERhdGFiYXNlVHJhY2tlcjo6b3JpZ2lucyhWZWN0b3I8UmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPj4mIG9yaWdpbnNSZXN1bHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0Rh
dGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKIAogICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9l
c05vdEV4aXN0KTsKICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCkBAIC00NDgsNyArNDQ4
LDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRhdGFiYXNlTmFtZXNGb3JPcgogewogICAgIFZl
Y3RvcjxTdHJpbmc+IHRlbXA7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJh
c2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKICAgICAgICAgaWYgKCFkYXRhYmFzZU5hbWVzRm9yT3JpZ2luTm9Mb2Nr
KG9yaWdpbiwgdGVtcCkpCiAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTQ2NSw3
ICs0NjUsNyBAQCBEYXRhYmFzZURldGFpbHMgRGF0YWJhc2VUcmFja2VyOjpkZXRhaWxzCiAgICAg
aW50NjRfdCBleHBlY3RlZFVzYWdlOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
RGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJh
c2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRD
cmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkK
QEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEZXRh
aWxzCiAgICAgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIgPSBvcmlnaW4tPmRhdGFiYXNlSWRlbnRp
ZmllcigpOwogICAgIGludDY0X3QgZ3VpZCA9IDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0
YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2Rh
dGFiYXNlR3VhcmQpOwogCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShDcmVhdGVJZkRvZXNOb3RF
eGlzdCk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNTQ5LDcgKzU0OSw3IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXREYXRhYmFzZURldGFpbHMKIAogdm9pZCBEYXRhYmFz
ZVRyYWNrZXI6OmRvbmVDcmVhdGluZ0RhdGFiYXNlKERhdGFiYXNlKiBkYXRhYmFzZSkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIGRvbmVDcmVhdGluZ0RhdGFi
YXNlKGRhdGFiYXNlLT5zZWN1cml0eU9yaWdpbigpLCBkYXRhYmFzZS0+c3RyaW5nSWRlbnRpZmll
cigpKTsKIH0KIApAQCAtNTU5LDcgKzU1OSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjphZGRP
cGVuRGF0YWJhc2UoRGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAg
ICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7
CiAKICAgICAgICAgaWYgKCFtX29wZW5EYXRhYmFzZU1hcCkKICAgICAgICAgICAgIG1fb3BlbkRh
dGFiYXNlTWFwID0gc3RkOjptYWtlX3VuaXF1ZTxEYXRhYmFzZU9yaWdpbk1hcD4oKTsKQEAgLTU4
OSw3ICs1ODksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlT3BlbkRhdGFiYXNlCiAg
ICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNl
TWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVu
RGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogCiAgICAgICAgIGlmICgh
bV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtNjI5LDcgKzYyOSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVPcGVuRGF0YWJh
c2UKIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6OmdldE9wZW5EYXRhYmFzZXMoU2VjdXJpdHlPcmln
aW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBIYXNoU2V0PFJlZlB0cjxEYXRhYmFzZT4+
KiBkYXRhYmFzZXMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29w
ZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2so
bV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CiAgICAgaWYgKCFtX29wZW5EYXRhYmFzZU1hcCkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC02NDcsNyArNjQ3LDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6
OmdldE9wZW5EYXRhYmFzZXMoUwogCiBSZWZQdHI8T3JpZ2luTG9jaz4gRGF0YWJhc2VUcmFja2Vy
OjpvcmlnaW5Mb2NrRm9yKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0
YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICBTdHJpbmcgZGF0YWJhc2VJZGVudGlmaWVyID0g
b3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKTsKIAogICAgIC8vIFRoZSBvcmlnaW5Mb2NrTWFw
IGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgRGF0YWJhc2VUaHJlYWRzIHNpbmNlCkBAIC03Mjcs
MTMgKzcyNywxMyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFja2VyOjpxdW90CiAK
IHVuc2lnbmVkIGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OnF1b3RhRm9yT3JpZ2luKFNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0
YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJk
KTsKICAgICByZXR1cm4gcXVvdGFGb3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKIH0KIAogdm9pZCBE
YXRhYmFzZVRyYWNrZXI6OnNldFF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIHVuc2lnbmVk
IGxvbmcgbG9uZyBxdW90YSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OwogCiAgICAgaWYgKHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbikgPT0gcXVvdGEpCiAgICAg
ICAgIHJldHVybjsKQEAgLTg2NCw3ICs4NjQsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVs
ZXRlT3JpZ2luKFNlY3VyCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gZGF0YWJhc2VOYW1lczsKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgICAg
ICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgICAg
IGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTg5MCw3ICs4OTAsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKFNlY3Vy
CiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1
YXJkKTsKICAgICAgICAgZGVsZXRlT3JpZ2luTG9ja0ZvcihvcmlnaW4pOwogICAgICAgICBkb25l
RGVsZXRpbmdPcmlnaW4ob3JpZ2luKTsKIApAQCAtMTA3MSw3ICsxMDcxLDcgQEAgdm9pZCBEYXRh
YmFzZVRyYWNrZXI6OmRvbmVEZWxldGluZ09yaWdpbgogYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRl
bGV0ZURhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSkK
IHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3Vh
cmQpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwog
ICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAg
ICAgICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEwODYsMTIgKzEwODYsMTIgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURh
dGFiYXNlKFNlYwogICAgIC8vIFdlIGRyb3AgdGhlIGxvY2sgaGVyZSBiZWNhdXNlIGhvbGRpbmcg
bG9ja3MgZHVyaW5nIGEgY2FsbCB0byBkZWxldGVEYXRhYmFzZUZpbGUgd2lsbCBkZWFkbG9jay4K
ICAgICBpZiAoIWRlbGV0ZURhdGFiYXNlRmlsZShvcmlnaW4sIG5hbWUpKSB7CiAgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIGRlbGV0ZSBmaWxlIGZvciBkYXRhYmFzZSAlcyBpbiBvcmlnaW4g
JXMiLCBuYW1lLmFzY2lpKCkuZGF0YSgpLCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpLmFz
Y2lpKCkuZGF0YSgpKTsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJh
c2VHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFy
ZCk7CiAgICAgICAgIGRvbmVEZWxldGluZ0RhdGFiYXNlKG9yaWdpbiwgbmFtZSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3Vh
cmQpOwogCiAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiREVMRVRF
IEZST00gRGF0YWJhc2VzIFdIRVJFIG9yaWdpbj0/IEFORCBuYW1lPT8iKTsKICAgICBpZiAoc3Rh
dGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsKQEAgLTExMzEsNyArMTEzMSw3IEBAIGJv
b2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGUKIAogI2lmbmRlZiBOREVCVUcK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAg
ICAgICBBU1NFUlQoaXNEZWxldGluZ0RhdGFiYXNlT3JPcmlnaW5Gb3Iob3JpZ2luLCBuYW1lKSk7
CiAgICAgfQogI2VuZGlmCkBAIC0xMTQyLDcgKzExNDIsNyBAQCBib29sIERhdGFiYXNlVHJhY2tl
cjo6ZGVsZXRlRGF0YWJhc2VGaWxlCiAgICAgLy8gRGF0YWJhc2U6Om1hcmtBc0RlbGV0ZWRBbmRD
bG9zZSgpLCBzaW5jZSB0aGF0IGNhbiBjYXVzZSBhIGRlYWRsb2NrCiAgICAgLy8gZHVyaW5nIHRo
ZSBzeW5jaHJvbm91cyBEYXRhYmFzZVRocmVhZCBjYWxsIGl0IHRyaWdnZXJzLgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1
YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFi
YXNlTWFwR3VhcmQpOwogICAgICAgICBpZiAobV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAg
ICAgIC8vIFRoZXJlIGFyZSBzb21lIG9wZW4gZGF0YWJhc2VzLCBsZXRzIGNoZWNrIGlmIHRoZXkg
YXJlIGZvciB0aGlzIG9yaWdpbi4KICAgICAgICAgICAgIERhdGFiYXNlTmFtZU1hcCogbmFtZU1h
cCA9IG1fb3BlbkRhdGFiYXNlTWFwLT5nZXQob3JpZ2luKTsKQEAgLTExODUsNyArMTE4NSw3IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVEZWxldGVkT3BlbmUKICAgICAKICAgICB7CiAg
ICAgICAgIC8vIEFjcXVpcmUgdGhlIGxvY2sgYmVmb3JlIGNhbGxpbmcgb3BlblRyYWNrZXJEYXRh
YmFzZS4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAg
ICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9lc05vdEV4aXN0KTsKICAgICB9
CiAKQEAgLTEyMDEsNyArMTIwMSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVEZWxl
dGVkT3BlbmUKICAgICAvLyBEYXRhYmFzZTo6bWFya0FzRGVsZXRlZEFuZENsb3NlKCksIHNpbmNl
IHRoYXQgY2FuIGNhdXNlIGEgZGVhZGxvY2sKICAgICAvLyBkdXJpbmcgdGhlIHN5bmNocm9ub3Vz
IERhdGFiYXNlVGhyZWFkIGNhbGwgaXQgdHJpZ2dlcnMuCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAg
ICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7
CiAgICAgICAgIGlmIChtX29wZW5EYXRhYmFzZU1hcCkgewogICAgICAgICAgICAgZm9yIChhdXRv
JiBvcGVuRGF0YWJhc2UgOiAqbV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAgICAgICAgICBh
dXRvJiBvcmlnaW4gPSBvcGVuRGF0YWJhc2Uua2V5OwpAQCAtMTMwNSw5ICsxMzA1LDkgQEAgYm9v
bCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZQogICAgIHJldHVybiBTUUxpdGVG
aWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiB9CiAKLU11dGV4JiBEYXRhYmFz
ZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKK0xvY2smIERhdGFiYXNlVHJhY2tlcjo6b3Bl
bkRhdGFiYXNlTXV0ZXgoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0
ZXg7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4OwogICAgIHJldHVybiBt
dXRleDsKIH0KIApAQCAtMTMzMCw5ICsxMzMwLDkgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnNl
dENsaWVudChEYXRhYmFzZQogICAgIG1fY2xpZW50ID0gY2xpZW50OwogfQogCi1zdGF0aWMgTXV0
ZXgmIG5vdGlmaWNhdGlvbk11dGV4KCkKK3N0YXRpYyBMb2NrJiBub3RpZmljYXRpb25NdXRleCgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBtdXRleDsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0x
MzQ2LDcgKzEzNDYsNyBAQCBzdGF0aWMgTm90aWZpY2F0aW9uUXVldWUmIG5vdGlmaWNhdGlvblF1
CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZChT
ZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG5vdGlmaWNhdGlvbk11dGV4KCkpOwogCiAgICAgbm90aWZpY2F0aW9uUXVldWUoKS5hcHBlbmQo
c3RkOjpwYWlyPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFN0cmluZz4ob3JpZ2luLT5pc29sYXRl
ZENvcHkoKSwgbmFtZS5pc29sYXRlZENvcHkoKSkpOwogICAgIHNjaGVkdWxlRm9yTm90aWZpY2F0
aW9uKCk7CkBAIC0xMzcyLDcgKzEzNzIsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6bm90aWZ5
RGF0YWJhc2VzQ2hhCiAKICAgICBOb3RpZmljYXRpb25RdWV1ZSBub3RpZmljYXRpb25zOwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKIAogICAgICAgICBu
b3RpZmljYXRpb25zLnN3YXAobm90aWZpY2F0aW9uUXVldWUoKSk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaAko
cmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1Ymxp
YzoKICAgICAvLyBNb2JpbGVTYWZhcmkgd2lsbCBncmFiIHRoaXMgbXV0ZXggb24gdGhlIG1haW4g
dGhyZWFkIGJlZm9yZSBkaXNwYXRjaGluZyB0aGUgdGFzayB0byAKICAgICAvLyBjbGVhbiB1cCB6
ZXJvIGJ5dGUgZGF0YWJhc2UgZmlsZXMuICBBbnkgb3BlcmF0aW9ucyB0byBvcGVuIG5ldyBkYXRh
YmFzZSB3aWxsIGhhdmUgdG8KICAgICAvLyB3YWl0IGZvciB0aGF0IHRhc2sgdG8gZmluaXNoIGJ5
IHdhaXRpbmcgb24gdGhpcyBtdXRleC4KLSAgICBzdGF0aWMgTXV0ZXgmIG9wZW5EYXRhYmFzZU11
dGV4KCk7CisgICAgc3RhdGljIExvY2smIG9wZW5EYXRhYmFzZU11dGV4KCk7CiAgICAgCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tX
aWxsQmVTY2hlZHVsZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURh
dGFiYXNlRmlsZXNSZW1vdmFsVGFza0RpZEZpbmlzaCgpOwpAQCAtMTUwLDExICsxNTAsMTEgQEAg
cHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBEYXRhYmFzZVNldCo+IERhdGFi
YXNlTmFtZU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwg
RGF0YWJhc2VOYW1lTWFwKj4gRGF0YWJhc2VPcmlnaW5NYXA7CiAKLSAgICBNdXRleCBtX29wZW5E
YXRhYmFzZU1hcEd1YXJkOworICAgIExvY2sgbV9vcGVuRGF0YWJhc2VNYXBHdWFyZDsKICAgICBt
dXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZU9yaWdpbk1hcD4gbV9vcGVuRGF0YWJhc2VN
YXA7CiAKICAgICAvLyBUaGlzIGxvY2sgcHJvdGVjdHMgbV9kYXRhYmFzZSwgbV9vcmlnaW5Mb2Nr
TWFwLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgbV9vcmlnaW5zQmVpbmdEZWxldGVkLCBtX2Jl
aW5nQ3JlYXRlZCwgYW5kIG1fYmVpbmdEZWxldGVkLgotICAgIE11dGV4IG1fZGF0YWJhc2VHdWFy
ZDsKKyAgICBMb2NrIG1fZGF0YWJhc2VHdWFyZDsKICAgICBTUUxpdGVEYXRhYmFzZSBtX2RhdGFi
YXNlOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE9yaWdpbkxvY2s+PiBP
cmlnaW5Mb2NrTWFwOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9P
cmlnaW5Mb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsy
Nyw4IEBACiAjZGVmaW5lIE9yaWdpbkxvY2tfaAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgor
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsNyArNDgsNyBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyBTdHJpbmcgbG9ja0ZpbGVOYW1lRm9yUGF0aChTdHJpbmcg
b3JpZ2luUGF0aCk7CiAKICAgICBTdHJpbmcgbV9sb2NrRmlsZU5hbWU7Ci0gICAgTXV0ZXggbV9t
dXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAjaWYgVVNFKEZJTEVfTE9DSykKICAgICBQbGF0Zm9y
bUZpbGVIYW5kbGUgbV9sb2NrSGFuZGxlOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmgJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
Q2FsbGJhY2tXcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNkZWZp
bmUgU1FMQ2FsbGJhY2tXcmFwcGVyX2gKIAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTgsNyArNTgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRQdHI7CiAgICAgICAgIFQqIGNhbGxiYWNrOwogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X211dGV4KTsKICAgICAgICAgICAgIGlmICghbV9jYWxsYmFjaykgewogICAgICAgICAgICAgICAg
IEFTU0VSVCghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICAgICAgICAgICAgICByZXR1
cm47CkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8VD4gdW53cmFw
KCkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgICAgIEFTU0VSVCghbV9jYWxsYmFjayB8
fCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKICAgICAgICAg
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIG1fY2Fs
bGJhY2sucmVsZWFzZSgpOwpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXND
YWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KIAogcHJpdmF0ZToKLSAgICBN
dXRleCBtX211dGV4OworICAgIExvY2sgbV9tdXRleDsKICAgICBSZWZQdHI8VD4gbV9jYWxsYmFj
azsKICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25CYWNrZW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25C
YWNrZW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQgU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXAoKQogCiAgICAgcmVsZWFzZU9yaWdpbkxvY2tJZk5l
ZWRlZCgpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOwogICAgIG1fc3RhdGVtZW50UXVl
dWUuY2xlYXIoKTsKIAogICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uKSB7CkBAIC00NjUsNyAr
NDY1LDcgQEAgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpTdGF0ZUZ1bmN0aW9uIFNRTAogCiB2b2lk
IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZW5xdWV1ZVN0YXRlbWVudEJhY2tlbmQoc3RkOjp1bmlx
dWVfcHRyPFNRTFN0YXRlbWVudD4gc3RhdGVtZW50QmFja2VuZCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9zdGF0ZW1lbnRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zdGF0
ZW1lbnRNdXRleCk7CiAgICAgbV9zdGF0ZW1lbnRRdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKHN0YXRl
bWVudEJhY2tlbmQpKTsKIH0KIApAQCAtNjgxLDcgKzY4MSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rp
b25CYWNrZW5kOjpnZXROZXh0U3RhdGUKIHsKICAgICBtX2N1cnJlbnRTdGF0ZW1lbnRCYWNrZW5k
ID0gbnVsbHB0cjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsKICAgICBpZiAoIW1fc3Rh
dGVtZW50UXVldWUuaXNFbXB0eSgpKQogICAgICAgICBtX2N1cnJlbnRTdGF0ZW1lbnRCYWNrZW5k
ID0gbV9zdGF0ZW1lbnRRdWV1ZS50YWtlRmlyc3QoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tl
bmQuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDEzLCAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRp
dmVzLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3JlYWRPbmx5OwogICAgIGJvb2wgbV9oYXNWZXJzaW9uTWlzbWF0Y2g7CiAK
LSAgICBNdXRleCBtX3N0YXRlbWVudE11dGV4OworICAgIExvY2sgbV9zdGF0ZW1lbnRNdXRleDsK
ICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8U1FMU3RhdGVtZW50Pj4gbV9zdGF0ZW1lbnRRdWV1
ZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTUUxpdGVUcmFuc2FjdGlvbj4gbV9zcWxpdGVUcmFu
c2FjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1
bGVFeGUKICAgICAvLyBUaGUgbXV0ZXggcHJvdmlkZXMgYSBtZW1vcnkgYmFycmllciB0byBlbnN1
cmUgdGhhdCBvbmNlCiAgICAgLy8gdGVybWluYXRpb24gaXMgc2NoZWR1bGVkLCBpc0V4ZWN1dGlv
blRlcm1pbmF0aW5nIHdpbGwKICAgICAvLyBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhhdCBzdGF0ZSB3
aGVuIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkLgotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2No
ZWR1bGVkVGVybWluYXRpb25NdXRleCk7CiAgICAgaWYgKG1fdm0tPndhdGNoZG9nKQogICAgICAg
ICBtX3ZtLT53YXRjaGRvZy0+ZmlyZSgpOwogfQpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgV29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVFeGUKIGJvb2wgV29ya2VyU2NyaXB0Q29udHJv
bGxlcjo6aXNFeGVjdXRpb25UZXJtaW5hdGluZygpIGNvbnN0CiB7CiAgICAgLy8gU2VlIGNvbW1l
bnRzIGluIHNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24gcmVnYXJkaW5nIG11dGV4IHVzYWdl
LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRleCk7CiAgICAg
aWYgKG1fdm0tPndhdGNoZG9nKQogICAgICAgICByZXR1cm4gbV92bS0+d2F0Y2hkb2ctPmRpZEZp
cmUoKTsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCShyZXZpc2lvbiAxODg1NjkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
NSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMx
LDggKzMxLDggQEAKICNpbmNsdWRlIDxkZWJ1Z2dlci9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGhl
YXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9OYWtlZFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KIAogbmFtZXNwYWNlIERlcHJlY2F0ZWQgewogY2xhc3MgU2NyaXB0VmFsdWU7CkBAIC05Nyw3
ICs5Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUq
IG1fd29ya2VyR2xvYmFsU2NvcGU7CiAgICAgICAgIEpTQzo6U3Ryb25nPEpTV29ya2VyR2xvYmFs
U2NvcGU+IG1fd29ya2VyR2xvYmFsU2NvcGVXcmFwcGVyOwogICAgICAgICBib29sIG1fZXhlY3V0
aW9uRm9yYmlkZGVuOwotICAgICAgICBtdXRhYmxlIE11dGV4IG1fc2NoZWR1bGVkVGVybWluYXRp
b25NdXRleDsKKyAgICAgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRl
eDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDcgKzg4LDcg
QEAgdm9pZCBNZXNzYWdlUG9ydENoYW5uZWw6OmRpc2VudGFuZ2xlKCkKIAogdm9pZCBNZXNzYWdl
UG9ydENoYW5uZWw6OnBvc3RNZXNzYWdlVG9SZW1vdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eT4gY2hhbm5lbHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIGlmICghbV9j
aGFubmVsLT5tX291dGdvaW5nUXVldWUpCiAgICAgICAgIHJldHVybjsKICAgICBib29sIHdhc0Vt
cHR5ID0gbV9jaGFubmVsLT5tX291dGdvaW5nUXVldWUtPmFwcGVuZEFuZENoZWNrRW1wdHkoc3Rk
OjptYWtlX3VuaXF1ZTxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhPihtZXNz
YWdlLCBXVEY6Om1vdmUoY2hhbm5lbHMpKSk7CkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgTWVzc2Fn
ZVBvcnRDaGFubmVsOjpwb3N0TWVzc2FnZVRvUmUKIAogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6
OnRyeUdldE1lc3NhZ2VGcm9tUmVtb3RlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiBt
ZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiBjaGFubmVs
cykKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CiAgICAgYXV0byByZXN1bHQgPSBtX2No
YW5uZWwtPm1faW5jb21pbmdRdWV1ZS0+dHJ5R2V0TWVzc2FnZSgpOwogICAgIGlmICghcmVzdWx0
KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMjEsMjAgKzEyMSwyMCBAQCB2b2lkIE1lc3Nh
Z2VQb3J0Q2hhbm5lbDo6Y2xvc2UoKQogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6OmlzQ29ubmVj
dGVkVG8oTWVzc2FnZVBvcnQqIHBvcnQpCiB7CiAgICAgLy8gRklYTUU6IFdoYXQgZ3VhcmFudGVl
cyB0aGF0IHRoZSByZXN1bHQgcmVtYWlucyB0aGUgc2FtZSBhZnRlciB3ZSByZWxlYXNlIHRoZSBs
b2NrPwotICAgIE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICByZXR1cm4gbV9jaGFubmVsLT5t
X3JlbW90ZVBvcnQgPT0gcG9ydDsKIH0KIAogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6Omhhc1Bl
bmRpbmdBY3Rpdml0eSgpCiB7CiAgICAgLy8gRklYTUU6IFdoYXQgZ3VhcmFudGVlcyB0aGF0IHRo
ZSByZXN1bHQgcmVtYWlucyB0aGUgc2FtZSBhZnRlciB3ZSByZWxlYXNlIHRoZSBsb2NrPwotICAg
IE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICByZXR1cm4gIW1fY2hhbm5lbC0+bV9pbmNvbWlu
Z1F1ZXVlLT5pc0VtcHR5KCk7CiB9CiAKIE1lc3NhZ2VQb3J0KiBNZXNzYWdlUG9ydENoYW5uZWw6
OmxvY2FsbHlFbnRhbmdsZWRQb3J0KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIC8vIFNlZSBpZiBib3RoIGNv
bnRleHRzIGFyZSBydW4gYnkgdGhlIHNhbWUgdGhyZWFkIChhcmUgdGhlIHNhbWUgY29udGV4dCwg
b3IgYXJlIGJvdGggZG9jdW1lbnRzKS4KICAgICBpZiAobV9jaGFubmVsLT5tX3JlbW90ZVBvcnQp
IHsKICAgICAgICAgLy8gVGhlIHJlbW90ZSBwb3J0J3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBp
cyBndWFyYW50ZWVkIG5vdCB0byBjaGFuZ2UgaGVyZSAtIE1lc3NhZ2VQb3J0Ojpjb250ZXh0RGVz
dHJveWVkKCkKQEAgLTE2NCw3ICsxNjQsNyBAQCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6
flBsYXRmb3JtTWVzCiAKIHZvaWQgUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OnNldFJlbW90
ZVBvcnQoTWVzc2FnZVBvcnQqIHBvcnQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgLy8gU2hvdWxkIG5ldmVyIHNl
dCBwb3J0IGlmIGl0IGlzIGFscmVhZHkgc2V0LgogICAgIEFTU0VSVCghcG9ydCB8fCAhbV9yZW1v
dGVQb3J0KTsKICAgICBtX3JlbW90ZVBvcnQgPSBwb3J0OwpAQCAtMTc1LDEzICsxNzUsMTMgQEAg
UGFzc1JlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gUAogICAgIC8vIEZJWE1FOiBX
aGF0IGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVzdWx0IHJlbWFpbnMgdGhlIHNhbWUgYWZ0ZXIgd2Ug
cmVsZWFzZSB0aGUgbG9jaz8KICAgICAvLyBUaGlzIGxvY2sgb25seSBndWFyYW50ZWVzIHRoYXQg
dGhlIHJldHVybmVkIHBvaW50ZXIgd2lsbCBub3QgYmUgcG9pbnRpbmcgdG8gcmVsZWFzZWQgbWVt
b3J5LAogICAgIC8vIGJ1dCBub3QgdGhhdCBpdCB3aWxsIHN0aWxsIGJlIHBvaW50aW5nIHRvIHRo
aXMgb2JqZWN0J3MgZW50YW5nbGVkIHBvcnQgY2hhbm5lbC4KLSAgICBNdXRleExvY2tlciBsb2Nr
KG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICByZXR1cm4gbV9l
bnRhbmdsZWRDaGFubmVsOwogfQogCiB2b2lkIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpj
bG9zZUludGVybmFsKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJv
bSB0aGUgb3RoZXIgZW5kLiBXZSBzdGlsbCBtYWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5j
b21pbmcgcXVldWUsIHNpbmNlIHByZXZpb3VzbHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0
aWxsIGJlIGRlbGl2ZXJlZC4KICAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOwogICAgIG1fZW50
YW5nbGVkQ2hhbm5lbCA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVs
dC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDggKzk1LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIHNldFJlbW90ZVBvcnQoTWVzc2FnZVBvcnQqKTsKICAgICAgICAg
dm9pZCBjbG9zZUludGVybmFsKCk7CiAKLSAgICAgICAgLy8gTXV0ZXggdXNlZCB0byBlbnN1cmUg
ZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgb2JqZWN0IGludGVybmFscy4KLSAgICAgICAgTXV0ZXgg
bV9tdXRleDsKKyAgICAgICAgLy8gTG9jayB1c2VkIHRvIGVuc3VyZSBleGNsdXNpdmUgYWNjZXNz
IHRvIHRoZSBvYmplY3QgaW50ZXJuYWxzLgorICAgICAgICBMb2NrIG1fbXV0ZXg7CiAKICAgICAg
ICAgLy8gUG9pbnRlciB0byBvdXIgZW50YW5nbGVkIHBhaXIgLSBjbGVhcmVkIHdoZW4gY2xvc2Uo
KSBpcyBjYWxsZWQuCiAgICAgICAgIFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4g
bV9lbnRhbmdsZWRDaGFubmVsOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODYsNyArMTg2LDcg
QEAgdm9pZCBJY29uRGF0YWJhc2U6OnJlbW92ZUFsbEljb25zKCkKICAgICAKICAgICAvLyBDbGVh
ciB0aGUgaW4tbWVtb3J5IHJlY29yZCBvZiBldmVyeSBJY29uUmVjb3JkLCBhbnl0aGluZyB3YWl0
aW5nIHRvIGJlIHJlYWQgZnJvbSBkaXNrLCBhbmQgYW55dGhpbmcgd2FpdGluZyB0byBiZSB3cml0
dGVuIHRvIGRpc2sKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAg
ICAgICAgIAogICAgICAgICAvLyBDbGVhciB0aGUgSWNvblJlY29yZHMgZm9yIGV2ZXJ5IHBhZ2Ug
VVJMIC0gUmVmQ291bnRpbmcgd2lsbCBjYXVzZSB0aGUgSWNvblJlY29yZHMgdGhlbXNlbHZlcyB0
byBiZSBkZWxldGVkCiAgICAgICAgIC8vIFdlIGRvbid0IGRlbGV0ZSB0aGUgYWN0dWFsIFBhZ2VS
ZWNvcmRzIGJlY2F1c2Ugd2UgaGF2ZSB0aGUgInJldGFpbiBpY29uIGZvciB1cmwiIGNvdW50IHRv
IGtlZXAgdHJhY2sgb2YKQEAgLTIwMCwxNCArMjAwLDE0IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpy
ZW1vdmVBbGxJY29ucygpCiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAvLyBDbGVhciBh
bGwgaW4tbWVtb3J5IHJlY29yZHMgb2YgdGhpbmdzIHRoYXQgbmVlZCB0byBiZSBzeW5jZWQgb3V0
IHRvIGRpc2sKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVu
ZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5
bmNMb2NrKTsKICAgICAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nU3luYy5jbGVhcigpOwogICAg
ICAgICAgICAgbV9pY29uc1BlbmRpbmdTeW5jLmNsZWFyKCk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIC8vIENsZWFyIGFsbCBpbi1tZW1vcnkgcmVjb3JkcyBvZiB0aGluZ3MgdGhhdCBu
ZWVkIHRvIGJlIHJlYWQgaW4gZnJvbSBkaXNrCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxz
UGVuZGluZ0ltcG9ydC5jbGVhcigpOwogICAgICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJ
bkljb25zLmNsZWFyKCk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcuY2xlYXIo
KTsKQEAgLTIyOSw3ICsyMjksNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0lj
b25Gb3JQCiAgICAgaWYgKCFpc09wZW4oKSB8fCAhZG9jdW1lbnRDYW5IYXZlSWNvbihwYWdlVVJM
T3JpZ2luYWwpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKIAogICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMoKTsKICAg
ICAKQEAgLTI0NSw3ICsyNDUsNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0lj
b25Gb3JQCiAgICAgLy8gMSAtIFRoZSBpbml0aWFsIHVybCBpbXBvcnQgaXMgaW5jb21wbGV0ZSBh
bmQgdGhpcyBwYWdlVVJMIHdhcyBtYXJrZWQgdG8gYmUgbm90aWZpZWQgb25jZSBpdCBpcyBjb21w
bGV0ZSBpZiBhbiBpY29uVVJMIGV4aXN0cwogICAgIC8vIDIgLSBUaGUgaW5pdGlhbCB1cmwgaW1w
b3J0IElTIGNvbXBsZXRlIGFuZCB0aGlzIHBhZ2VVUkwgaGFzIG5vIGljb24KICAgICBpZiAoIXBh
Z2VSZWNvcmQpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdM
b2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwog
ICAgICAgICAKICAgICAgICAgLy8gSW1wb3J0IGlzIG9uZ29pbmcsIHRoZXJlIG1pZ2h0IGJlIGFu
IGljb24uICBJbiB0aGlzIGNhc2UsIHJlZ2lzdGVyIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGlj
b24gY29tZXMgaW4KICAgICAgICAgLy8gSWYgd2UgZXZlciByZWFjaCB0aGlzIGNvbmRpdGlvbiwg
d2Uga25vdyB3ZSd2ZSBhbHJlYWR5IG1hZGUgdGhlIHBhZ2VVUkwgY29weQpAQCAtMjc2LDcgKzI3
Niw3IEBAIEltYWdlKiBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzSWNvbkZvclAKICAgICAgICAg
aWYgKHBhZ2VVUkxDb3B5LmlzTnVsbCgpKQogICAgICAgICAgICAgcGFnZVVSTENvcHkgPSBwYWdl
VVJMT3JpZ2luYWwuaXNvbGF0ZWRDb3B5KCk7CiAgICAgCi0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
cGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJbkljb25z
LmFkZChwYWdlVVJMQ29weSk7CiAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5hZGQoaWNv
blJlY29yZCk7CiAgICAgICAgIHdha2VTeW5jVGhyZWFkKCk7CkBAIC0zMDcsNyArMzA3LDcgQEAg
UGFzc05hdGl2ZUltYWdlUHRyIEljb25EYXRhYmFzZTo6c3luY2hybwogICAgIGlmICghaWNvbikK
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29u
TG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgcmV0
dXJuIGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CiB9CiAKQEAgLTMyOSw3ICsz
MjksNyBAQCBTdHJpbmcgSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25VUkxGCiAgICAgaWYg
KCFpc09wZW4oKSB8fCAhZG9jdW1lbnRDYW5IYXZlSWNvbihwYWdlVVJMT3JpZ2luYWwpKQogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKICAgICAKICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVjb3JkID0gbV9wYWdlVVJMVG9SZWNv
cmRNYXAuZ2V0KHBhZ2VVUkxPcmlnaW5hbCk7CiAgICAgaWYgKCFwYWdlUmVjb3JkKQpAQCAtNDE3
LDcgKzQxNyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpyZXRhaW5JY29uRm9yUGFnZVVSTCgKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxz
VG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxz
VG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKICAgICAgICAgbV91cmxzVG9SZXRhaW4uYWRkKHBhZ2VV
UkwuaXNvbGF0ZWRDb3B5KCkpOwogICAgICAgICBtX3JldGFpbk9yUmVsZWFzZUljb25SZXF1ZXN0
ZWQgPSB0cnVlOwogICAgIH0KQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6
cGVyZm9ybVJldGFpbkljb25Gb3JQCiAgICAgICAgIGlmICghbV9pY29uVVJMSW1wb3J0Q29tcGxl
dGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
cGVuZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3lu
Y0xvY2spOwogICAgICAgICAvLyBJZiB0aGlzIHBhZ2VVUkwgd2FpdGluZyB0byBiZSBzeW5jJ2Vk
LCB1cGRhdGUgdGhlIHN5bmMgcmVjb3JkCiAgICAgICAgIC8vIFRoaXMgc2F2ZXMgdXMgaW4gdGhl
IGNhc2Ugd2hlcmUgYSBwYWdlIHdhcyByZWFkeSB0byBiZSBkZWxldGVkIGZyb20gdGhlIGRhdGFi
YXNlIGJ1dCB3YXMganVzdCByZXRhaW5lZCAtIHNvIHRoZXJlcyBubyBuZWVkIHRvIGRlbGV0ZSBp
dCEKICAgICAgICAgaWYgKCFtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgJiYgbV9wYWdlVVJMc1Bl
bmRpbmdTeW5jLmNvbnRhaW5zKHBhZ2VVUkwpKSB7CkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnJlbGVhc2VJY29uRm9yUGFnZVVSTAogICAgICAgICByZXR1cm47CiAKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2spOwogICAgICAgICBtX3VybHNUb1JlbGVhc2UuYWRkKHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCkp
OwogICAgICAgICBtX3JldGFpbk9yUmVsZWFzZUljb25SZXF1ZXN0ZWQgPSB0cnVlOwogICAgIH0K
QEAgLTUwNiw3ICs1MDYsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29u
Rm9yCiAgICAgQVNTRVJUKCFpY29uUmVjb3JkIHx8IChpY29uUmVjb3JkICYmIG1faWNvblVSTFRv
UmVjb3JkTWFwLmdldChpY29uUmVjb3JkLT5pY29uVVJMKCkpID09IGljb25SZWNvcmQpKTsKIAog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAg
ICAKICAgICAgICAgLy8gU2luY2UgdGhpcyBwYWdlVVJMIGlzIGdvaW5nIGF3YXksIHRoZXJlJ3Mg
bm8gcmVhc29uIGFueW9uZSB3b3VsZCBldmVyIGJlIGludGVyZXN0ZWQgaW4gaXRzIHJlYWQgcmVz
dWx0cyAgICAKICAgICAgICAgaWYgKCFtX2ljb25VUkxJbXBvcnRDb21wbGV0ZSkKQEAgLTUyMiw3
ICs1MjIsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29uRm9yCiAgICAg
CiAgICAgLy8gTWFyayBzdHVmZiBmb3IgZGVsZXRpb24gZnJvbSB0aGUgZGF0YWJhc2Ugb25seSBp
ZiB3ZSdyZSBub3QgaW4gcHJpdmF0ZSBicm93c2luZwogICAgIGlmICghbV9wcml2YXRlQnJvd3Np
bmdFbmFibGVkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9j
ayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKICAgICAg
ICAgbV9wYWdlVVJMc1BlbmRpbmdTeW5jLnNldChwYWdlVVJMT3JpZ2luYWwuaXNvbGF0ZWRDb3B5
KCksIHBhZ2VSZWNvcmQtPnNuYXBzaG90KHRydWUpKTsKICAgICAKICAgICAgICAgLy8gSWYgdGhp
cyBwYWdlIGlzIHRoZSBsYXN0IHBhZ2UgdG8gcmVmZXIgdG8gYSBwYXJ0aWN1bGFyIEljb25SZWNv
cmQsIHRoYXQgSWNvblJlY29yZCBuZWVkcyB0bwpAQCAtNTQ4LDEyICs1NDgsMTIgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVSTAogICAgIAogICAgIFZlY3RvcjxTdHJp
bmc+IHBhZ2VVUkxzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsK
ICAgICAKICAgICAgICAgLy8gSWYgdGhpcyBpY29uIHdhcyBwZW5kaW5nIGEgcmVhZCwgcmVtb3Zl
IGl0IGZyb20gdGhhdCBzZXQgYmVjYXVzZSB0aGlzIG5ldyBkYXRhIHNob3VsZCBvdmVycmlkZSB3
aGF0IGlzIG9uIGRpc2sKICAgICAgICAgUmVmUHRyPEljb25SZWNvcmQ+IGljb24gPSBtX2ljb25V
UkxUb1JlY29yZE1hcC5nZXQoaWNvblVSTCk7CiAgICAgICAgIGlmIChpY29uKSB7Ci0gICAgICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAg
bV9pY29uc1BlbmRpbmdSZWFkaW5nLnJlbW92ZShpY29uLmdldCgpKTsKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBpY29uID0gZ2V0T3JDcmVhdGVJY29uUmVjb3JkKGljb25VUkwpOwpAQCAt
NTY3LDcgKzU2Nyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvckljb25VUkwK
ICAgICAgICAgCiAgICAgICAgIC8vIE1hcmsgdGhlIEljb25SZWNvcmQgYXMgcmVxdWlyaW5nIGFu
IHVwZGF0ZSB0byB0aGUgZGF0YWJhc2Ugb25seSBpZiBwcml2YXRlIGJyb3dzaW5nIGlzIGRpc2Fi
bGVkCiAgICAgICAgIGlmICghbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKSB7Ci0gICAgICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgbV9pY29uc1Bl
bmRpbmdTeW5jLnNldChpY29uVVJMLCBpY29uLT5zbmFwc2hvdCgpKTsKICAgICAgICAgfQogCkBA
IC02MDgsNyArNjA4LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJM
KAogICAgIFN0cmluZyBpY29uVVJMLCBwYWdlVVJMOwogICAgIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKIAogICAgICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVj
b3JkID0gbV9wYWdlVVJMVG9SZWNvcmRNYXAuZ2V0KHBhZ2VVUkxPcmlnaW5hbCk7CiAgICAgICAg
IApAQCAtNjM2LDEzICs2MzYsMTMgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQ
YWdlVVJMKAogICAgICAgICAgICAgQVNTRVJUKGljb25SZWNvcmQtPnJldGFpbmluZ1BhZ2VVUkxz
KCkuc2l6ZSgpID09IDApOwogICAgICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIkljb24gZm9y
IGljb24gdXJsICVzIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZCAtIHJlbW92aW5nIG1hcHBpbmcg
Zm9yIGl0IiwgdXJsRm9yTG9nZ2luZyhpY29uUmVjb3JkLT5pY29uVVJMKCkpLmFzY2lpKCkuZGF0
YSgpKTsKICAgICAgICAgICAgIG1faWNvblVSTFRvUmVjb3JkTWFwLnJlbW92ZShpY29uUmVjb3Jk
LT5pY29uVVJMKCkpOwotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1Jl
YWRpbmdMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRp
bmdMb2NrKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5yZW1vdmUoaWNvblJl
Y29yZC5nZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIEFuZCBtYXJrIHRo
aXMgbWFwcGluZyB0byBiZSBhZGRlZCB0byB0aGUgZGF0YWJhc2UKICAgICAgICAgaWYgKCFtX3By
aXZhdGVCcm93c2luZ0VuYWJsZWQpIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRp
bmdTeW5jTG9jayk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxzUGVuZGluZ1N5bmMuc2V0KHBhZ2VV
UkwsIHBhZ2VSZWNvcmQtPnNuYXBzaG90KCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAv
LyBJZiB0aGUgaWNvbiBpcyBvbiBpdHMgbGFzdCByZWYsIG1hcmsgaXQgZm9yIGRlbGV0aW9uCkBA
IC02NzQsNyArNjc0LDcgQEAgSWNvbkxvYWREZWNpc2lvbiBJY29uRGF0YWJhc2U6OnN5bmNocm9u
bwogICAgIC8vIDEgLSBXaGVuIHdlIHJlYWQgdGhlIGljb24gdXJscyBmcm9tIGRpc2ssIGdldHRp
bmcgdGhlIHRpbWVTdGFtcCBhdCB0aGUgc2FtZSB0aW1lCiAgICAgLy8gMiAtIFdoZW4gd2UgZ2V0
IGEgbmV3IGljb24gZnJvbSB0aGUgbG9hZGVyLCBpbiB3aGljaCBjYXNlIHRoZSB0aW1lc3RhbXAg
aXMgc2V0IGF0IHRoYXQgdGltZQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKICAgICAgICAgaWYgKEljb25SZWNvcmQqIGljb24gPSBtX2ljb25VUkxUb1JlY29yZE1h
cC5nZXQoaWNvblVSTCkpIHsKICAgICAgICAgICAgIExPRyhJY29uRGF0YWJhc2UsICJGb3VuZCBl
eHBpcmF0aW9uIHRpbWUgb24gYSBwcmVzZW50IGljb24gYmFzZWQgb24gZXhpc3RpbmcgSWNvblJl
Y29yZCIpOwogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oY3VycmVudFRpbWUo
KSkgLSBzdGF0aWNfY2FzdDxpbnQ+KGljb24tPmdldFRpbWVzdGFtcCgpKSA+IGljb25FeHBpcmF0
aW9uVGltZSA/IEljb25Mb2FkWWVzIDogSWNvbkxvYWRObzsKQEAgLTY4Miw3ICs2ODIsNyBAQCBJ
Y29uTG9hZERlY2lzaW9uIEljb25EYXRhYmFzZTo6c3luY2hyb25vCiAgICAgfQogICAgIAogICAg
IC8vIElmIHdlIGRvbid0IGhhdmUgYSByZWNvcmQgZm9yIGl0LCBidXQgd2UgKmhhdmUqIGltcG9y
dGVkIGFsbCBpY29uVVJMcyBmcm9tIGRpc2ssIHRoZW4gd2Ugc2hvdWxkIGxvYWQgaXQgbm93Ci0g
ICAgTXV0ZXhMb2NrZXIgcmVhZGluZ0xvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAg
TG9ja0hvbGRlciByZWFkaW5nTG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICBpZiAo
bV9pY29uVVJMSW1wb3J0Q29tcGxldGUpCiAgICAgICAgIHJldHVybiBJY29uTG9hZFllczsKICAg
ICAgICAgCkBAIC02OTksNyArNjk5LDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3Vz
SWNvbkRhdGFLbgogewogICAgIEFTU0VSVF9OT1RfU1lOQ19USFJFQUQoKTsKICAgICAKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgaWYgKEljb25SZWNvcmQqIGljb24gPSBtX2ljb25V
UkxUb1JlY29yZE1hcC5nZXQoaWNvblVSTCkpCiAgICAgICAgIHJldHVybiBpY29uLT5pbWFnZURh
dGFTdGF0dXMoKSAhPSBJbWFnZURhdGFTdGF0dXNVbmtub3duOwogCkBAIC03NTQsMjYgKzc1NCwy
NiBAQCB2b2lkIEljb25EYXRhYmFzZTo6Y2hlY2tJbnRlZ3JpdHlCZWZvcmVPCiAKIHNpemVfdCBJ
Y29uRGF0YWJhc2U6OnBhZ2VVUkxNYXBwaW5nQ291bnQoKQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKICAgICByZXR1cm4gbV9wYWdlVVJMVG9SZWNvcmRNYXAuc2l6ZSgpOwogfQogCiBz
aXplX3QgSWNvbkRhdGFiYXNlOjpyZXRhaW5lZFBhZ2VVUkxDb3VudCgpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOwogICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJh
dGlvbnMoKTsKICAgICByZXR1cm4gbV9yZXRhaW5lZFBhZ2VVUkxzLnNpemUoKTsKIH0KIAogc2l6
ZV90IEljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50KCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJ
Y29uTG9jayk7CiAgICAgcmV0dXJuIG1faWNvblVSTFRvUmVjb3JkTWFwLnNpemUoKTsKIH0KIAog
c2l6ZV90IEljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50V2l0aERhdGEoKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKICAgICBzaXplX3QgcmVzdWx0ID0gMDsKICAgICAKICAgICBI
YXNoTWFwPFN0cmluZywgSWNvblJlY29yZCo+OjppdGVyYXRvciBpID0gbV9pY29uVVJMVG9SZWNv
cmRNYXAuYmVnaW4oKTsKQEAgLTgyOSwxMyArODI5LDEzIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpu
b3RpZnlQZW5kaW5nTG9hZERlY2kKIAogdm9pZCBJY29uRGF0YWJhc2U6Ondha2VTeW5jVGhyZWFk
KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9zeW5jTG9jayk7CiAKICAgICBpZiAoIW1fZGlzYWJsZVN1ZGRlblRlcm1pbmF0
aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8pCiAgICAgICAgIG1fZGlzYWJsZVN1ZGRlblRl
cm1pbmF0aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8gPSBzdGQ6Om1ha2VfdW5pcXVlPFN1
ZGRlblRlcm1pbmF0aW9uRGlzYWJsZXI+KCk7CiAKICAgICBtX3N5bmNUaHJlYWRIYXNXb3JrVG9E
byA9IHRydWU7Ci0gICAgbV9zeW5jQ29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1fc3luY0NvbmRp
dGlvbi5ub3RpZnlPbmUoKTsKIH0KIAogdm9pZCBJY29uRGF0YWJhc2U6OnNjaGVkdWxlT3JEZWZl
clN5bmNUaW1lcigpCkBAIC04NzQsMTMgKzg3NCwxMyBAQCBib29sIEljb25EYXRhYmFzZTo6aXNP
cGVuKCkgY29uc3QKIAogYm9vbCBJY29uRGF0YWJhc2U6OmlzT3BlbkJlc2lkZXNNYWluVGhyZWFk
Q2FsbGJhY2tzKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgcmV0dXJuIG1fc3luY1Ro
cmVhZFJ1bm5pbmcgfHwgbV9zeW5jREIuaXNPcGVuKCk7CiB9CiAKIFN0cmluZyBJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3lu
Y0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgIHJldHVybiBt
X2NvbXBsZXRlRGF0YWJhc2VQYXRoLmlzb2xhdGVkQ29weSgpOwogfQogCkBAIC05MTYsNyArOTE2
LDcgQEAgUGFnZVVSTFJlY29yZCogSWNvbkRhdGFiYXNlOjpnZXRPckNyZWF0ZQogCiAgICAgUGFn
ZVVSTFJlY29yZCogcGFnZVJlY29yZCA9IG1fcGFnZVVSTFRvUmVjb3JkTWFwLmdldChwYWdlVVJM
KTsKICAgICAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICBpZiAoIW1f
aWNvblVSTEltcG9ydENvbXBsZXRlKSB7CiAgICAgICAgIC8vIElmIHRoZSBpbml0aWFsIGltcG9y
dCBvZiBhbGwgVVJMcyBoYXNuJ3QgY29tcGxldGVkIGFuZCB3ZSBoYXZlIG5vIHBhZ2UgcmVjb3Jk
LCB3ZSBhc3N1bWUgd2UgKm1pZ2h0KiBrbm93IGFib3V0IHRoaXMgbGF0ZXIgYW5kIGNyZWF0ZSBh
IHJlY29yZCBmb3IgaXQKICAgICAgICAgaWYgKCFwYWdlUmVjb3JkKSB7CkBAIC05ODUsNyArOTg1
LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6Omljb25EYXRhYmFzZVN5bmNUaHJlYQogICAgIH0KICAg
ICAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgICAgIGlmICghbV9zeW5jREIu
b3BlbihtX2NvbXBsZXRlRGF0YWJhc2VQYXRoKSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJV
bmFibGUgdG8gb3BlbiBpY29uIGRhdGFiYXNlIGF0IHBhdGggJXMgLSAlcyIsIG1fY29tcGxldGVE
YXRhYmFzZVBhdGguYXNjaWkoKS5kYXRhKCksIG1fc3luY0RCLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTExMTMsNyArMTExMyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpwZXJmb3JtT3BlbkluaXRpYWxpemEKICAgICAgICAgICAgIG1fc3luY0RCLmNsb3NlKCk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9zeW5jTG9jayk7CisgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9z
eW5jTG9jayk7CiAgICAgICAgICAgICAgICAgLy8gU2hvdWxkJ3ZlIGJlZW4gY29uc3VtZWQgYnkg
U1FMaXRlLCBkZWxldGUganVzdCB0byBtYWtlIHN1cmUgd2UgZG9uJ3Qgc2VlIGl0IGFnYWluIGlu
IHRoZSBmdXR1cmU7CiAgICAgICAgICAgICAgICAgZGVsZXRlRmlsZShtX2NvbXBsZXRlRGF0YWJh
c2VQYXRoICsgIi1qb3VybmFsIik7CiAgICAgICAgICAgICAgICAgZGVsZXRlRmlsZShtX2NvbXBs
ZXRlRGF0YWJhc2VQYXRoKTsKQEAgLTEyMTUsNyArMTIxNSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAgICAgU3RyaW5nIGljb25VUkwgPSBxdWVyeS5nZXRD
b2x1bW5UZXh0KDEpOwogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJs
QW5kSWNvbkxvY2spOwogCiAgICAgICAgICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVjb3JkID0g
bV9wYWdlVVJMVG9SZWNvcmRNYXAuZ2V0KHBhZ2VVUkwpOwogICAgICAgICAgICAgCkBAIC0xMjQ4
LDcgKzEyNDgsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAg
ICAgIC8vIG9uZSBmb3IgdGhlIFVSTCBhbmQgb25lIGZvciB0aGUgSW1hZ2UgaXRzZWxmCiAgICAg
ICAgIC8vIE5vdGUgdGhhdCBXZWJJY29uRGF0YWJhc2UgaXMgbm90IG5lY2Nlc3NhcmlseSBBUEkg
c28gd2UgbWlnaHQgYmUgYWJsZSB0byBtYWtlIHRoaXMgY2hhbmdlCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAg
ICBpZiAobV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQuY29udGFpbnMocGFnZVVSTCkpIHsKICAgICAg
ICAgICAgICAgICBkaXNwYXRjaERpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMT25NYWluVGhyZWFk
KHBhZ2VVUkwpOwogICAgICAgICAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LnJlbW92
ZShwYWdlVVJMKTsKQEAgLTEyNzEsNyArMTI3MSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJm
b3JtVVJMSW1wb3J0KCkKICAgICAvLyBidXQgYWZ0ZXIgbV9pY29uVVJMSW1wb3J0Q29tcGxldGUg
aXMgc2V0IHRvIHRydWUsIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhpcyBzZXQgYW55bW9yZQogICAg
IFZlY3RvcjxTdHJpbmc+IHVybHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRp
bmdSZWFkaW5nTG9jayk7CiAKICAgICAgICAgdXJscy5hcHBlbmRSYW5nZShtX3BhZ2VVUkxzUGVu
ZGluZ0ltcG9ydC5iZWdpbigpLCBtX3BhZ2VVUkxzUGVuZGluZ0ltcG9ydC5lbmQoKSk7CiAgICAg
ICAgIG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LmNsZWFyKCk7ICAgICAgICAKQEAgLTEyODQsNyAr
MTI4NCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAvLyBS
ZW1vdmUgdW5yZXRhaW5lZCBvbmVzIGlmIGRhdGFiYXNlIGNsZWFudXAgaXMgYWxsb3dlZAogICAg
IC8vIEtlZXAgYSBzZXQgb2Ygb25lcyB0aGF0IGFyZSByZXRhaW5lZCBhbmQgcGVuZGluZyBub3Rp
ZmljYXRpb24KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAKICAg
ICAgICAgcGVyZm9ybVBlbmRpbmdSZXRhaW5BbmRSZWxlYXNlT3BlcmF0aW9ucygpOwogCkBAIC0x
MzAxLDEyICsxMzAxLDEyIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1faWNvblVSTFRvUmVjb3JkTWFwLnJlbW92ZShpY29u
UmVjb3JkLT5pY29uVVJMKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJbkljb25zLnJlbW92ZSh1cmxzW2ld
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcucmVt
b3ZlKGljb25SZWNvcmQpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1faWNvbnNQZW5kaW5nU3luYy5zZXQoaWNvblJlY29yZC0+aWNvblVSTCgpLCBpY29u
UmVjb3JkLT5zbmFwc2hvdCh0cnVlKSk7ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMTM3MSw3ICsxMzcxLDcg
QEAgdm9pZCBJY29uRGF0YWJhc2U6OnN5bmNUaHJlYWRNYWluTG9vcCgpCiAgICAgICAgICAgICBi
cmVhazsKIAogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxB
bmRJY29uTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKICAgICAgICAgICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlv
bnMoKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTE0NTEsNyArMTQ1MSw3IEBAIHZvaWQgSWNv
bkRhdGFiYXNlOjpwZXJmb3JtUGVuZGluZ1JldGFpbkEKICAgICBIYXNoQ291bnRlZFNldDxTdHJp
bmc+IHRvUmVsZWFzZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgcGVuZGluZ1dvcmtM
b2NrZXIobV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBw
ZW5kaW5nV29ya0xvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2spOwogICAgICAgICBp
ZiAoIW1fcmV0YWluT3JSZWxlYXNlSWNvblJlcXVlc3RlZCkKICAgICAgICAgICAgIHJldHVybjsK
IApAQCAtMTQ4OCw3ICsxNDg4LDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6OnJlYWRGcm9tRGF0YWJh
c2UoKQogICAgIC8vIFRoaXMgd2F5IHdlIHdvbid0IGhvbGQgdGhlIGxvY2sgZm9yIGEgbG9uZyBw
ZXJpb2Qgb2YgdGltZQogICAgIFZlY3RvcjxJY29uUmVjb3JkKj4gaWNvbnM7CiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgIGljb25zLmFw
cGVuZFJhbmdlKG1faWNvbnNQZW5kaW5nUmVhZGluZy5iZWdpbigpLCBtX2ljb25zUGVuZGluZ1Jl
YWRpbmcuZW5kKCkpOwogICAgIH0KICAgICAKQEAgLTE1MDEsOSArMTUwMSw5IEBAIGJvb2wgSWNv
bkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKCkKIAogICAgICAgICAvLyBWZXJpZnkgdGhpcyBp
Y29uIHN0aWxsIHdhbnRzIHRvIGJlIHJlYWQgZnJvbSBkaXNrCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIE11dGV4TG9ja2VyIHVybExvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgICAg
IExvY2tIb2xkZXIgdXJsTG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIHJlYWRMb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xv
Y2spOworICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgcmVhZExvY2tlcihtX3BlbmRpbmdSZWFk
aW5nTG9jayk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKG1faWNvbnNQ
ZW5kaW5nUmVhZGluZy5jb250YWlucyhpY29uc1tpXSkpIHsKICAgICAgICAgICAgICAgICAgICAg
Ly8gU2V0IHRoZSBuZXcgZGF0YQpAQCAtMTU5MSwxMSArMTU5MSwxMSBAQCBib29sIEljb25EYXRh
YmFzZTo6d3JpdGVUb0RhdGFiYXNlKCkKICAgICAvLyB3ZSdsbCBwaWNrIGl0IHVwIG9uIHRoZSBu
ZXh0IHBhc3MuICBUaGlzIGdyZWF0bHkgc2ltcGxpZmllcyB0aGUgbG9ja2luZyBzdHJhdGVneSBm
b3IgdGhpcyBtZXRob2QgYW5kIHJlbWFpbnMgY29oZXNpdmUgd2l0aCBjaGFuZ2VzCiAgICAgLy8g
YXNrZWQgZm9yIGJ5IHRoZSBkYXRhYmFzZSBvbiB0aGUgbWFpbiB0aHJlYWQKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgICAgIFZlY3RvcjxJY29uU25hcHNo
b3Q+IGljb25TbmFwc2hvdHM7CiAgICAgICAgIFZlY3RvcjxQYWdlVVJMU25hcHNob3Q+IHBhZ2VT
bmFwc2hvdHM7CiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Bl
bmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdT
eW5jTG9jayk7CiAKICAgICAgICAgICAgIGljb25TbmFwc2hvdHMuYXBwZW5kUmFuZ2UobV9pY29u
c1BlbmRpbmdTeW5jLmJlZ2luKCkudmFsdWVzKCksIG1faWNvbnNQZW5kaW5nU3luYy5lbmQoKS52
YWx1ZXMoKSk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1N5bmMuY2xlYXIoKTsKQEAgLTE2
NTgsNyArMTY1OCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwcnVuZVVucmV0YWluZWRJY29ucygK
ICAgICAKICAgICBpbnQgcmVzdWx0OwogICAgIHdoaWxlICgocmVzdWx0ID0gcGFnZVNRTC5zdGVw
KCkpID09IFNRTElURV9ST1cpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsK
ICAgICAgICAgaWYgKCFtX3BhZ2VVUkxUb1JlY29yZE1hcC5jb250YWlucyhwYWdlU1FMLmdldENv
bHVtblRleHQoMSkpKQogICAgICAgICAgICAgcGFnZUlEc1RvRGVsZXRlLmFwcGVuZChwYWdlU1FM
LmdldENvbHVtbkludDY0KDApKTsKICAgICB9CkBAIC0xNzkxLDcgKzE3OTEsNyBAQCB2b2lkKiBJ
Y29uRGF0YWJhc2U6OmNsZWFudXBTeW5jVGhyZWFkKCkKICAgICB3cml0ZVRvRGF0YWJhc2UoKTsK
ICAgICAKICAgICAvLyBDbG9zZSB0aGUgZGF0YWJhc2UKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zeW5jTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgCiAg
ICAgbV9kYXRhYmFzZURpcmVjdG9yeSA9IFN0cmluZygpOwogICAgIG1fY29tcGxldGVEYXRhYmFz
ZVBhdGggPSBTdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2lmIEVO
QUJMRShJQ09OREFUQUJBU0UpCiAjaW5jbHVkZSAiU1FMaXRlRGF0YWJhc2UuaCIKICNpbmNsdWRl
ICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFz
aENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CkBAIC0xNDEsOCArMTQyLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNFbmFi
bGVkOwogICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkOwogCi0gICAgbXV0YWJsZSBN
dXRleCBtX3N5bmNMb2NrOwotICAgIFRocmVhZENvbmRpdGlvbiBtX3N5bmNDb25kaXRpb247Cisg
ICAgbXV0YWJsZSBMb2NrIG1fc3luY0xvY2s7CisgICAgQ29uZGl0aW9uIG1fc3luY0NvbmRpdGlv
bjsKICAgICBTdHJpbmcgbV9kYXRhYmFzZURpcmVjdG9yeTsKICAgICAvLyBIb2xkaW5nIG1fc3lu
Y0xvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9jb21wbGV0ZURhdGFiYXNlUGF0aAog
ICAgIFN0cmluZyBtX2NvbXBsZXRlRGF0YWJhc2VQYXRoOwpAQCAtMTUzLDI0ICsxNTQsMjQgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fc3luY1RocmVhZEhhc1dvcmtUb0RvOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxTdWRkZW5UZXJtaW5hdGlvbkRpc2FibGVyPiBtX2Rpc2FibGVTdWRkZW5UZXJtaW5h
dGlvbldoaWxlU3luY1RocmVhZEhhc1dvcmtUb0RvOwogCi0gICAgTXV0ZXggbV91cmxBbmRJY29u
TG9jazsKKyAgICBMb2NrIG1fdXJsQW5kSWNvbkxvY2s7CiAgICAgLy8gSG9sZGluZyBtX3VybEFu
ZEljb25Mb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUgZm9sbG93aW5n
IGRhdGEgc3RydWN0dXJlcyBvciB0aGUgb2JqZWN0cyB0aGV5IGNvbnRhaW4KICAgICBIYXNoTWFw
PFN0cmluZywgSWNvblJlY29yZCo+IG1faWNvblVSTFRvUmVjb3JkTWFwOwogICAgIEhhc2hNYXA8
U3RyaW5nLCBQYWdlVVJMUmVjb3JkKj4gbV9wYWdlVVJMVG9SZWNvcmRNYXA7CiAgICAgSGFzaFNl
dDxTdHJpbmc+IG1fcmV0YWluZWRQYWdlVVJMczsKIAotICAgIE11dGV4IG1fcGVuZGluZ1N5bmNM
b2NrOworICAgIExvY2sgbV9wZW5kaW5nU3luY0xvY2s7CiAgICAgLy8gSG9sZGluZyBtX3BlbmRp
bmdTeW5jTG9jayBpcyByZXF1aXJlZCB3aGVuIGFjY2Vzc2luZyBhbnkgb2YgdGhlIGZvbGxvd2lu
ZyBkYXRhIHN0cnVjdHVyZXMKICAgICBIYXNoTWFwPFN0cmluZywgUGFnZVVSTFNuYXBzaG90PiBt
X3BhZ2VVUkxzUGVuZGluZ1N5bmM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIEljb25TbmFwc2hvdD4g
bV9pY29uc1BlbmRpbmdTeW5jOwogICAgIAotICAgIE11dGV4IG1fcGVuZGluZ1JlYWRpbmdMb2Nr
OyAgICAKKyAgICBMb2NrIG1fcGVuZGluZ1JlYWRpbmdMb2NrOyAgICAKICAgICAvLyBIb2xkaW5n
IG1fcGVuZGluZ1N5bmNMb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUg
Zm9sbG93aW5nIGRhdGEgc3RydWN0dXJlcyAtIHdoZW4gZGVhbGluZyB3aXRoIEljb25SZWNvcmQq
cywgaG9sZGluZyBtX3VybEFuZEljb25Mb2NrIGlzIGFsc28gcmVxdWlyZWQKICAgICBIYXNoU2V0
PFN0cmluZz4gbV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQ7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1f
cGFnZVVSTHNJbnRlcmVzdGVkSW5JY29uczsKICAgICBIYXNoU2V0PEljb25SZWNvcmQqPiBtX2lj
b25zUGVuZGluZ1JlYWRpbmc7CiAKLSAgICBNdXRleCBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2s7CisgICAgTG9jayBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2s7CiAgICAgLy8gSG9sZGlu
ZyBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3Npbmcg
YW55IG9mIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzLgogICAgIEhhc2hDb3VudGVkU2V0
PFN0cmluZz4gbV91cmxzVG9SZXRhaW47CiAgICAgSGFzaENvdW50ZWRTZXQ8U3RyaW5nPiBtX3Vy
bHNUb1JlbGVhc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5
LDcgQEAgU2Nyb2xsaW5nVHJlZTo6flNjcm9sbGluZ1RyZWUoKQogYm9vbCBTY3JvbGxpbmdUcmVl
OjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseShjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgLy8gVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0
aGUgZXZlbnQgaGFuZGxpbmcgdGhyZWFkCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAKICAgICBib29sIHNob3VsZFNldExhdGNo
ID0gd2hlZWxFdmVudC5zaG91bGRDb25zaWRlckxhdGNoaW5nKCk7CiAgICAgCkBAIC0xMTUsNyAr
MTE1LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3RhdGUocwogICAgICAg
ICAmJiAocm9vdFN0YXRlTm9kZUNoYW5nZWQKICAgICAgICAgICAgIHx8IHJvb3ROb2RlLT5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6Ok5vbkZhc3RT
Y3JvbGxhYmxlUmVnaW9uKQogICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlNjcm9sbExheWVyKSkpIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwog
CiAgICAgICAgIGlmIChyb290U3RhdGVOb2RlQ2hhbmdlZCB8fCByb290Tm9kZS0+aGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5ZXIpKQogICAgICAgICAgICAg
bV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IEZsb2F0UG9pbnQoKTsKQEAgLTIwOCw3ICsyMDgs
NyBAQCBTY3JvbGxpbmdUcmVlTm9kZSogU2Nyb2xsaW5nVHJlZTo6bm9kZUZvCiAKIHZvaWQgU2Ny
b2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQsIGJv
b2wgcGlubmVkVG9UaGVSaWdodCwgYm9vbCBwaW5uZWRUb1RoZVRvcCwgYm9vbCBwaW5uZWRUb1Ro
ZUJvdHRvbSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIG1fbWFpbkZy
YW1lUGlubmVkVG9UaGVMZWZ0ID0gcGlubmVkVG9UaGVMZWZ0OwogICAgIG1fbWFpbkZyYW1lUGlu
bmVkVG9UaGVSaWdodCA9IHBpbm5lZFRvVGhlUmlnaHQ7CkBAIC0yMTgsNTQgKzIxOCw1NCBAQCB2
b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlCiAKIEZsb2F0UG9pbnQgU2Ny
b2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIHJldHVy
biBtX21haW5GcmFtZVNjcm9sbFBvc2l0aW9uOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNl
dE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQgcG9zaXRpb24pCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAg
ICAgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IHBvc2l0aW9uOwogfQogCiBib29sIFNjcm9s
bGluZ1RyZWU6OmlzUG9pbnRJbk5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKEludFBvaW50IHApCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9t
dXRleCk7CiAgICAgCiAgICAgcmV0dXJuIG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb24uY29udGFp
bnMocCk7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsgICAgCisgICAgTG9ja0hvbGRlciBs
b2NrKG1fbXV0ZXgpOyAgICAKIAogICAgIHJldHVybiBtX21haW5GcmFtZUlzUnViYmVyQmFuZGlu
ZzsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmco
Ym9vbCBpc1J1YmJlckJhbmRpbmcpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgbV9tYWluRnJhbWVJc1J1
YmJlckJhbmRpbmcgPSBpc1J1YmJlckJhbmRpbmc7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6
aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgCiAgICAgcmV0dXJuIG1fbWFp
bkZyYW1lSXNTY3JvbGxTbmFwcGluZzsKIH0KICAgICAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0
TWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyhib29sIGlzU2Nyb2xsU25hcHBpbmcpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0
ZXgpOwogICAgIAogICAgIG1fbWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyA9IGlzU2Nyb2xsU25h
cHBpbmc7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0Q2FuUnViYmVyQmFuZFN0YXRlKGJv
b2wgY2FuUnViYmVyQmFuZEF0TGVmdCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgYm9vbCBj
YW5SdWJiZXJCYW5kQXRUb3AsIGJvb2wgY2FuUnViYmVyQmFuZEF0Qm90dG9tKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgbV9ydWJiZXJCYW5kc0F0TGVmdCA9IGNhblJ1
YmJlckJhbmRBdExlZnQ7CiAgICAgbV9ydWJiZXJCYW5kc0F0UmlnaHQgPSBjYW5SdWJiZXJCYW5k
QXRSaWdodDsKQEAgLTI3NSwyOCArMjc1LDI4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0Q2Fu
UnViYmVyQmFuZFN0YXQKIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVmdCgp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRz
QXRMZWZ0OwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRSaWdodCgpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRl
ciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRzQXRS
aWdodDsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0Qm90dG9tKCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJv
dHRvbTsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdFRvcDsK
IH0KQEAgLTMwOCwxNCArMzA4LDE0IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNIYW5kbGluZ1By
b2dyYW1tYXQKIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3Io
U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHBpbm5pbmcpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N3aXBlU3RhdGVN
dXRleCk7CiAgICAgCiAgICAgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBwaW5uaW5nOwogfQog
CiBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsUGlubmluZ0JlaGF2
aW9yKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogICAgIAogICAgIHJldHVybiBtX3Nj
cm9sbFBpbm5pbmdCZWhhdmlvcjsKIH0KQEAgLTMyNSw3ICszMjUsNyBAQCBib29sIFNjcm9sbGlu
Z1RyZWU6OndpbGxXaGVlbEV2ZW50U3RhcnRTCiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSAh
PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFYKCkg
PiAwICYmIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0ICYmICFtX3J1YmJlckJhbmRzQXRMZWZ0
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTM1MSwxOSArMzUxLDE5IEBAIGJvb2wgU2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nUGVyZm9ybWFuY2UKIAogU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGlu
Z1RyZWU6OmxhdGNoZWROb2RlKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fbGF0Y2hlZE5v
ZGU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TGF0Y2hlZE5vZGUoU2Nyb2xsaW5nTm9k
ZUlEIG5vZGUpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIG1fbGF0Y2hlZE5vZGUgPSBub2RlOwogfQogCiB2
b2lkIFNjcm9sbGluZ1RyZWU6OmNsZWFyTGF0Y2hlZE5vZGUoKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICBt
X2xhdGNoZWROb2RlID0gMDsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJX
aGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBAIC0xNjAsMTEgKzE2MSwxMSBAQCBwcml2YXRl
OgogICAgIHR5cGVkZWYgSGFzaE1hcDxTY3JvbGxpbmdOb2RlSUQsIFNjcm9sbGluZ1RyZWVOb2Rl
Kj4gU2Nyb2xsaW5nVHJlZU5vZGVNYXA7CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGVNYXAgbV9ub2Rl
TWFwOwogCi0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAgICAgUmVnaW9u
IG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb247CiAgICAgRmxvYXRQb2ludCBtX21haW5GcmFtZVNj
cm9sbFBvc2l0aW9uOwogCi0gICAgTXV0ZXggbV9zd2lwZVN0YXRlTXV0ZXg7CisgICAgTG9jayBt
X3N3aXBlU3RhdGVNdXRleDsKICAgICBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5u
aW5nQmVoYXZpb3IgeyBEb05vdFBpbiB9OwogICAgIFNjcm9sbGluZ05vZGVJRCBtX2xhdGNoZWRO
b2RlIHsgMCB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4K
ICNlbGlmIE9TKExJTlVYKQogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0xMzcsNyArMTM4LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fY2xlYXJQcmVzc3VyZU9uTWVtb3J5UmVsZWFzZTsKICAgICB2
b2lkIChebV9yZWxlYXNlTWVtb3J5QmxvY2spKCk7CiAgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYg
bV9vYnNlcnZlcjsKLSAgICBNdXRleCBtX29ic2VydmVyTXV0ZXg7CisgICAgTG9jayBtX29ic2Vy
dmVyTXV0ZXg7CiAjZWxpZiBPUyhMSU5VWCkKICAgICBpbnQgbV9ldmVudEZEOwogICAgIGludCBt
X3ByZXNzdXJlTGV2ZWxGRDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZEYXRhYmFzZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgSFJURkRhdGFiYXNlTG9hZGVyOjpsb2Fk
QXN5bmNocm9ub3UKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdGhyZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aHJl
YWRMb2NrKTsKICAgICAKICAgICBpZiAoIW1faHJ0ZkRhdGFiYXNlLmdldCgpICYmICFtX2RhdGFi
YXNlTG9hZGVyVGhyZWFkKSB7CiAgICAgICAgIC8vIFN0YXJ0IHRoZSBhc3luY2hyb25vdXMgZGF0
YWJhc2UgbG9hZGluZyBwcm9jZXNzLgpAQCAtMTE3LDcgKzExNyw3IEBAIGJvb2wgSFJURkRhdGFi
YXNlTG9hZGVyOjppc0xvYWRlZCgpIGNvbnMKIAogdm9pZCBIUlRGRGF0YWJhc2VMb2FkZXI6Ondh
aXRGb3JMb2FkZXJUaHJlYWRDb21wbGV0aW9uKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90aHJlYWRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RocmVhZExvY2spOwogICAg
IAogICAgIC8vIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQg
dHdpY2UgZm9yIHRoZSBzYW1lIHRocmVhZC4KICAgICBpZiAobV9kYXRhYmFzZUxvYWRlclRocmVh
ZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRh
YmFzZUxvYWRlci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KQEAgLTc2LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8SFJURkRhdGFiYXNlPiBtX2hydGZEYXRhYmFzZTsKIAogICAgIC8vIEhvbGRpbmcgYSBtX3Ro
cmVhZExvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9kYXRhYmFzZUxvYWRlclRocmVh
ZC4KLSAgICBNdXRleCBtX3RocmVhZExvY2s7CisgICAgTG9jayBtX3RocmVhZExvY2s7CiAgICAg
VGhyZWFkSWRlbnRpZmllciBtX2RhdGFiYXNlTG9hZGVyVGhyZWFkOwogCiAgICAgZmxvYXQgbV9k
YXRhYmFzZVNhbXBsZVJhdGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQkocmV2aXNpb24g
MTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIE1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0UmVjZWl2ZWRNCiAgICAgbV91bmRlck1lbW9yeVByZXNz
dXJlID0gdHJ1ZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2JzZXJ2
ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CiAg
ICAgICAgIGlmICghbV9vYnNlcnZlcikgewogICAgICAgICAgICAgbV9vYnNlcnZlciA9IENGUnVu
TG9vcE9ic2VydmVyQ3JlYXRlKE5VTEwsIGtDRlJ1bkxvb3BCZWZvcmVXYWl0aW5nIHwga0NGUnVu
TG9vcEV4aXQsIE5PIC8qIGRvbid0IHJlcGVhdCAqLywKICAgICAgICAgICAgICAgICAwLCBXZWJD
b3JlOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUNhbGxiYWNrLCBOVUxMKTsKQEAgLTI3MiwxNCAr
MjcyLDE0IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpjbGVhck1lbW9yeVAKICAgICBt
X3VuZGVyTWVtb3J5UHJlc3N1cmUgPSBmYWxzZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
b2JzZXJ2ZXJNdXRleCk7CiAgICAgICAgIG1fbWVtb3J5UHJlc3N1cmVSZWFzb24gPSBNZW1vcnlQ
cmVzc3VyZVJlYXNvbk5vbmU7CiAgICAgfQogfQogCiBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6c2hvdWxkV2FpdEZvck1lbW9yeUNsZWFyTWVzc2FnZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vYnNlcnZl
ck11dGV4KTsKICAgICByZXR1cm4gbV9tZW1vcnlQcmVzc3VyZVJlYXNvbiAmIE1lbW9yeVByZXNz
dXJlUmVhc29uVk1TdGF0dXM7CiB9CiAKQEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtCiAgICAgQVNTRVJUKFdlYlRocmVhZElzTG9ja2Vk
T3JEaXNhYmxlZCgpKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2Jz
ZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7
CiAgICAgICAgIG1fb2JzZXJ2ZXIgPSAwOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3Iu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmUKICAgICBkb3VibGUg
bW9ub3RvbmljQW5pbWF0aW9uU3RhcnRUaW1lOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAg
ICAgIGlmICghbV9zY2hlZHVsZWQpCiAgICAgICAgICAgICArK21fdW5zY2hlZHVsZWRGaXJlQ291
bnQ7CiAgICAgICAgIGVsc2UKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIERpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlzcGxheURpZFJlCiAgICAgICAgIG1fY2xpZW50c1RvQmVOb3RpZmllZCA9IG51
bGxwdHI7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9wcmV2aW91c0ZyYW1lRG9u
ZSA9IHRydWU7CiAgICAgfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw5ICszMCw5IEBACiAKICNp
bmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1vbm90
b25pY0FuaW1hdGlvblN0YXJ0VGltZShkb3VibGUgc3RhcnRUaW1lKSB7IG1fbW9ub3RvbmljQW5p
bWF0aW9uU3RhcnRUaW1lID0gc3RhcnRUaW1lOyB9CiAKLSAgICBNdXRleCYgbXV0ZXgoKSB7IHJl
dHVybiBtX211dGV4OyB9CisgICAgTG9jayYgbXV0ZXgoKSB7IHJldHVybiBtX211dGV4OyB9CiAK
ICAgICBzdGF0aWMgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGVmYXVsdERp
c3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTg5LDcgKzg5LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcHJldmlvdXNGcmFtZURvbmU7CiAgICAgaW50IG1fdW5z
Y2hlZHVsZWRGaXJlQ291bnQ7IC8vIE51bWJlciBvZiB0aW1lcyB0aGUgZGlzcGxheSBsaW5rIGhh
cyBmaXJlZCB3aXRoIG5vIGNsaWVudHMuCiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNwbGF5
SUQ7Ci0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAKICAgICBIYXNoU2V0
PERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+IG1fY2xpZW50czsKICAgICBIYXNoU2V0PERp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+KiBtX2NsaWVudHNUb0JlTm90aWZpZWQ7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTczNSw3ICs3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6c2V0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpz
ZXREZWxheUNhbGxiYWNrcyhib29sIGRlbGF5KSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKICAg
ICBpZiAoZGVsYXkpCiAgICAgICAgICsrbV9kZWxheUNhbGxiYWNrczsKICAgICBlbHNlIHsKQEAg
LTc1NCw3ICs3NTQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bWFp
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1haW5UaHJlYWRQ
ZW5kaW5nRmxhZygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgIG1fbWFpblRocmVhZENhbGxQZW5k
aW5nID0gZmFsc2U7CiB9CiAKQEAgLTgyMCw3ICs4MjAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6ZGlzCiAKICAgICBOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uID0g
Tm90aWZpY2F0aW9uKCk7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVN
dXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgICAgICAK
ICAgICAgICAgaWYgKG1fcXVldWVkTm90aWZpY2F0aW9ucy5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiVGltZXIu
aCIKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIApAQCAtMzE3LDcgKzMxOCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IG1fcGVuZGluZ1NlZWs7CiAKICAgICBWZWN0b3I8Tm90aWZpY2F0aW9u
PiBtX3F1ZXVlZE5vdGlmaWNhdGlvbnM7Ci0gICAgbXV0YWJsZSBNdXRleCBtX3F1ZXVlTXV0ZXg7
CisgICAgbXV0YWJsZSBMb2NrIG1fcXVldWVNdXRleDsKIAogICAgIG11dGFibGUgc3RkOjp1bmlx
dWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gbV9jYWNoZWRMb2FkZWRUaW1lUmFuZ2VzOwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw3ICsxNTgsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIGlubGluZSB2b2lkKiBjYWxsYmFja0NvbnRleHQoKSBjb25zdCB7IHJl
dHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPihtX29iamVjdElEKTsgfQogCi0gICAgc3RhdGlj
IE11dGV4JiBtYXBMb2NrKCk7CisgICAgc3RhdGljIExvY2smIG1hcExvY2soKTsKICAgICBzdGF0
aWMgSGFzaE1hcDx1aW50cHRyX3QsIEFWRldyYXBwZXIqPiYgbWFwKCk7CiAgICAgc3RhdGljIEFW
RldyYXBwZXIqIGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQodm9pZCopOwogICAgIHZvaWQg
YWRkVG9NYXAoKTsKQEAgLTE0MDQsOSArMTQwNCw5IEBAIEFWRldyYXBwZXI6On5BVkZXcmFwcGVy
KCkKICAgICBtX2F2UGxheWVyID0gMDsKIH0KIAotTXV0ZXgmIEFWRldyYXBwZXI6Om1hcExvY2so
KQorTG9jayYgQVZGV3JhcHBlcjo6bWFwTG9jaygpCiB7Ci0gICAgc3RhdGljIE11dGV4IG1hcExv
Y2s7CisgICAgc3RhdGljIExvY2sgbWFwTG9jazsKICAgICByZXR1cm4gbWFwTG9jazsKIH0KIApA
QCAtMTQxOCw3ICsxNDE4LDcgQEAgSGFzaE1hcDx1aW50cHRyX3QsIEFWRldyYXBwZXIqPiYgQVZG
V3JhcAogCiB2b2lkIEFWRldyYXBwZXI6OmFkZFRvTWFwKCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAg
IAogICAgIC8vIEhhc2hNYXAgZG9lc24ndCBsaWtlIGEga2V5IG9mIDAsIGFuZCBhbHNvIG1ha2Ug
c3VyZSB3ZSBhcmVuJ3QKICAgICAvLyB1c2luZyBhbiBvYmplY3QgSUQgdGhhdCdzIGFscmVhZHkg
aW4gdXNlLgpAQCAtMTQzNCw3ICsxNDM0LDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpyZW1vdmVGcm9t
TWFwKCkgY29uc3QKIHsKICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpyZW1vdmVGcm9tTWFw
KCVwICVkKSIsIHRoaXMsIG1fb2JqZWN0SUQpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1h
cExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBtYXAoKS5y
ZW1vdmUobV9vYmplY3RJRCk7CiB9CiAKQEAgLTE2MzUsNyArMTYzNSw3IEBAIHZvaWQgQVZGV3Jh
cHBlcjo6Y3JlYXRlUGxheWVySXRlbSgpCiAKIHZvaWQgQVZGV3JhcHBlcjo6cGVyaW9kaWNUaW1l
T2JzZXJ2ZXJDYWxsYmFjayhBVkNGUGxheWVyUmVmLCBDTVRpbWUgY21UaW1lLCB2b2lkKiBjb250
ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJG
b3JDYWxsYmFja0NvbnRleHQoY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExP
RyhNZWRpYSwgIkFWRldyYXBwZXI6OnBlcmlvZGljVGltZU9ic2VydmVyQ2FsbGJhY2sgaW52b2tl
ZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KGNvbnRleHQpKTsKQEAgLTE2NjYsNyArMTY2Niw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vz
c05vdGlmaWNhdGlvbih2b2kKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxOb3RpZmljYXRpb25DYWxs
YmFja0RhdGE+IG5vdGlmaWNhdGlvbkRhdGEgeyBzdGF0aWNfY2FzdDxOb3RpZmljYXRpb25DYWxs
YmFja0RhdGEqPihjb250ZXh0KSB9OwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2so
KSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBz
ZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChub3RpZmljYXRpb25EYXRhLT5tX2Nv
bnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVy
Ojpwcm9jZXNzTm90aWZpY2F0aW9uIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xNzIxLDcgKzE3MjEs
NyBAQCB2b2lkIEFWRldyYXBwZXI6Om5vdGlmaWNhdGlvbkNhbGxiYWNrKENGCiAKIHZvaWQgQVZG
V3JhcHBlcjo6bG9hZFBsYXlhYmxlQ29tcGxldGlvbkNhbGxiYWNrKEFWQ0ZBc3NldFJlZiwgdm9p
ZCogY29udGV4dCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZX
cmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAg
ICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpsb2FkUGxheWFibGVDb21wbGV0aW9uQ2FsbGJh
Y2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE3NDksNyArMTc0OSw3IEBAIHZvaWQgQVZGV3JhcHBl
cjo6Y2hlY2tQbGF5YWJpbGl0eSgpCiAKIHZvaWQgQVZGV3JhcHBlcjo6bG9hZE1ldGFkYXRhQ29t
cGxldGlvbkNhbGxiYWNrKEFWQ0ZBc3NldFJlZiwgdm9pZCogY29udGV4dCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2Nr
KCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0
KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFw
cGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBB
VkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAg
LTE3NjksNyArMTc2OSw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6YmVnaW5Mb2FkaW5nTWV0YWRhdGEo
KQogCiB2b2lkIEFWRldyYXBwZXI6OnNlZWtDb21wbGV0ZWRDYWxsYmFjayhBVkNGUGxheWVySXRl
bVJlZiwgQm9vbGVhbiBmaW5pc2hlZCwgdm9pZCogY29udGV4dCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwog
ICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRl
eHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpz
ZWVrQ29tcGxldGVkQ2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwg
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4MTIsNyArMTgxMiw3
IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc0N1ZSh2b2lkKiBjb250ZXgKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxMZWdpYmxlT3V0cHV0RGF0YT4gbGVnaWJsZU91dHB1dERhdGEocmVpbnRlcnBy
ZXRfY2FzdDxMZWdpYmxlT3V0cHV0RGF0YSo+KGNvbnRleHQpKTsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAg
ICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQobGVnaWJs
ZU91dHB1dERhdGEtPm1fY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExPRyhN
ZWRpYSwgIkFWRldyYXBwZXI6OnByb2Nlc3NDdWUgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFw
cGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4Mjgs
NyArMTgyOCw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc0N1ZSh2b2lkKiBjb250ZXgKIHZv
aWQgQVZGV3JhcHBlcjo6bGVnaWJsZU91dHB1dENhbGxiYWNrKHZvaWQqIGNvbnRleHQsIEFWQ0ZQ
bGF5ZXJJdGVtTGVnaWJsZU91dHB1dFJlZiBsZWdpYmxlT3V0cHV0LCBDRkFycmF5UmVmIGF0dHJp
YnV0ZWRTdHJpbmdzLCBDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZUJ1ZmZlcnMsIENNVGltZSBpdGVt
VGltZSkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAg
IEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRleHQp
OwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpsZWdp
YmxlT3V0cHV0Q2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4NjYsNyArMTg2Niw3IEBA
IHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc1Nob3VsZFdhaXRGb3JMb2EKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxMb2FkUmVxdWVzdERhdGE+IGxvYWRSZXF1ZXN0RGF0YShyZWludGVycHJldF9jYXN0
PExvYWRSZXF1ZXN0RGF0YSo+KGNvbnRleHQpKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
YXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3Jh
cHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQobG9hZFJlcXVlc3REYXRh
LT5tX2NvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZX
cmFwcGVyOjpwcm9jZXNzU2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlc291cmNlIGludm9rZWQgZm9y
IGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250
ZXh0KSk7CkBAIC0xOTIyLDcgKzE5MjIsNyBAQCBib29sIEFWRldyYXBwZXI6OnNob3VsZFdhaXRG
b3JMb2FkaW5nT2ZSCiBCb29sZWFuIEFWRldyYXBwZXI6OnJlc291cmNlTG9hZGVyU2hvdWxkV2Fp
dEZvckxvYWRpbmdPZlJlcXVlc3RlZFJlc291cmNlKEFWQ0ZBc3NldFJlc291cmNlTG9hZGVyUmVm
IHJlc291cmNlTG9hZGVyLCBBVkNGQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0UmVmIGxvYWRp
bmdSZXF1ZXN0LCB2b2lkICpjb250ZXh0KQogewogICAgIEFTU0VSVChkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpICE9IGRpc3BhdGNoX2dldF9jdXJyZW50X3F1ZXVlKCkpOwotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7
CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQoY29u
dGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6
OnJlc291cmNlTG9hZGVyU2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlcXVlc3RlZFJlc291cmNlIGlu
dm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihjb250ZXh0KSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpoYQogewogICAgIG1fc2FtcGxlVGltZXJIYW5kbGVy
LmNhbmNlbCgpOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3NhbXBsZU11dGV4
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fc2FtcGxlTXV0ZXgpOwogICAgICAgICBtX3Bl
bmRpbmdTYW1wbGVzLmFwcGVuZChzYW1wbGUpOwogICAgIH0KICAgICBtX3NhbXBsZVRpbWVySGFu
ZGxlci5zY2hlZHVsZSgiW1dlYktpdF0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6
bm90aWZ5VHJhY2tPZlNhbXBsZSIsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPihzdGQ6OmJpbmQoJklu
YmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTYW1wbGUsIHRoaXMp
KSk7CkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1l
cjo6bm8KIHsKICAgICBWZWN0b3I8R1JlZlB0cjxHc3RTYW1wbGU+ID4gc2FtcGxlczsKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9zYW1wbGVNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKICAgICAgICAgbV9wZW5kaW5nU2FtcGxlcy5zd2Fw
KHNhbXBsZXMpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiR1Jl
ZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUuaCIKICNp
bmNsdWRlICJUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgiCisjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY3LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBndWxvbmcg
bV9ldmVudFByb2JlOwogICAgIFZlY3RvcjxHUmVmUHRyPEdzdFNhbXBsZT4gPiBtX3BlbmRpbmdT
YW1wbGVzOwogICAgIFN0cmluZyBtX3N0cmVhbUlkOwotICAgIE11dGV4IG1fc2FtcGxlTXV0ZXg7
CisgICAgTG9jayBtX3NhbXBsZU11dGV4OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIs
NyArMTAyLDcgQEAgdm9pZCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjp0YWdzQ2hhbgogICAg
IEdSZWZQdHI8R3N0VGFnTGlzdD4gdGFnczsKICAgICBnX29iamVjdF9nZXQobV9wYWQuZ2V0KCks
ICJ0YWdzIiwgJnRhZ3Mub3V0UHRyKCksIE5VTEwpOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtX3RhZ011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fdGFnTXV0ZXgp
OwogICAgICAgICBtX3RhZ3Muc3dhcCh0YWdzKTsKICAgICB9CiAKQEAgLTE1OCw3ICsxNTgsNyBA
QCB2b2lkIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyCiAKICAgICBHUmVmUHRy
PEdzdFRhZ0xpc3Q+IHRhZ3M7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fdGFn
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90YWdNdXRleCk7CiAgICAgICAgIHRh
Z3Muc3dhcChtX3RhZ3MpOwogICAgIH0KICAgICBpZiAoIXRhZ3MpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNl
R1N0cmVhbWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUo
VklERU8pICYmIFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShWSURFT19UUkFDSykKIAogI2luY2x1
ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1RocmVhZFNh
ZmVNYWluTG9vcFNvdXJjZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAt
NzMsNyArNzQsNyBAQCBwcml2YXRlOgogICAgIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UgbV9h
Y3RpdmVUaW1lckhhbmRsZXI7CiAgICAgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSBtX3RhZ1Rp
bWVySGFuZGxlcjsKIAotICAgIE11dGV4IG1fdGFnTXV0ZXg7CisgICAgTG9jayBtX3RhZ011dGV4
OwogICAgIEdSZWZQdHI8R3N0VGFnTGlzdD4gbV90YWdzOwogfTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NCwxNCArODQsMTQgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OnJlcXVlc3RSZQogICAgICAgICBzZXRJc0FjdGl2ZSh0cnVlKTsKICAgICB9CiAKLSAg
ICBNdXRleExvY2tlciBsb2NrKG11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgp
KTsKICAgICBzZXRJc1NjaGVkdWxlZCh0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9p
ZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQoZG91YmxlIG5vd1Nl
Y29uZHMsIGRvdWJsZSBvdXRwdXRUaW1lU2Vjb25kcykKIHsKLSAgICBNdXRleExvY2tlciBsb2Nr
KG11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgpKTsKICAgICBpZiAoIWlzUHJl
dmlvdXNGcmFtZURvbmUoKSkKICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxMiwyMSArNTEyLDIxIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjoKIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmFkZExpc3RlbmVyKE1lZGlhUGxheWVyTGlzdGVu
ZXIqIGxpc3RlbmVyKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4TGlzdGVuZXJz
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4TGlzdGVuZXJzKTsKIAogICAgIG1fbGlz
dGVuZXJzLmFkZChsaXN0ZW5lcik7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uOjpyZW1vdmVMaXN0ZW5lcihNZWRpYVBsYXllckxpc3RlbmVyKiBsaXN0ZW5lcikK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7CiAKICAgICBtX2xpc3RlbmVycy5yZW1vdmUo
bGlzdGVuZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6
bm90aWZ5RGVsZXRlZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5l
cnMpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5lcnMpOwogCiAgICAgZm9y
IChIYXNoU2V0PE1lZGlhUGxheWVyTGlzdGVuZXIqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2xp
c3RlbmVycy5iZWdpbigpOyBpdCAhPSBtX2xpc3RlbmVycy5lbmQoKTsgKytpdCkKICAgICAgICAg
KCppdCktPm9uTWVkaWFQbGF5ZXJEZWxldGVkKCk7CkBAIC03MDQsNyArNzA0LDcgQEAgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBNZWRpYVBsYXllclByaQogCiBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6QXN5bmNDYWxsYmFjazo6
SW52b2tlKF9fUlBDX19pbl9vcHQgSU1GQXN5bmNSZXN1bHQgKnBBc3luY1Jlc3VsdCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9t
dXRleCk7CiAKICAgICBpZiAoIW1fbWVkaWFQbGF5ZXIpCiAgICAgICAgIHJldHVybiBTX09LOwpA
QCAtNzE5LDcgKzcxOSw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgTWVkaWFQbGF5ZXJQ
cmkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJh
Y2s6Om9uTWVkaWFQbGF5ZXJEZWxldGVkKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBtX21lZGlhUGxh
eWVyID0gbnVsbHB0cjsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgTWVkaWFQ
bGF5ZXJMaXN0ZW5lcjsKICAgICBIYXNoU2V0PE1lZGlhUGxheWVyTGlzdGVuZXIqPiBtX2xpc3Rl
bmVyczsKLSAgICBNdXRleCBtX211dGV4TGlzdGVuZXJzOworICAgIExvY2sgbV9tdXRleExpc3Rl
bmVyczsKIAogICAgIENPTVB0cjxJTUZNZWRpYVNlc3Npb24+IG1fbWVkaWFTZXNzaW9uOwogICAg
IENPTVB0cjxJTUZTb3VyY2VSZXNvbHZlcj4gbV9zb3VyY2VSZXNvbHZlcjsKQEAgLTE0OSw3ICsx
NDksNyBAQCBwcml2YXRlOgogICAgICAgICBVTE9ORyBtX3JlZkNvdW50OwogICAgICAgICBNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24qIG1fbWVkaWFQbGF5ZXI7CiAgICAgICAgIGJv
b2wgbV9ldmVudDsKLSAgICAgICAgTXV0ZXggbV9tdXRleDsKKyAgICAgICAgTG9jayBtX211dGV4
OwogICAgIH07CiAKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5
VGlsZUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xl
Z2FjeVRpbGVDYWNoZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgpAQCAtMjExLDkgKzIxMiw5IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9wZW5kaW5nU2Nh
bGU7CiAgICAgZmxvYXQgbV9wZW5kaW5nWm9vbWVkT3V0U2NhbGU7CiAKLSAgICBtdXRhYmxlIE11
dGV4IG1fdGlsZU11dGV4OwotICAgIG11dGFibGUgTXV0ZXggbV9zYXZlZERpc3BsYXlSZWN0TXV0
ZXg7Ci0gICAgbXV0YWJsZSBNdXRleCBtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdlTXV0ZXg7Cisg
ICAgbXV0YWJsZSBMb2NrIG1fdGlsZU11dGV4OworICAgIG11dGFibGUgTG9jayBtX3NhdmVkRGlz
cGxheVJlY3RNdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9jb250ZW50UmVwbGFjZW1lbnRJbWFn
ZU11dGV4OwogCiAgICAgYm9vbCBtX3RpbGVDb250cm9sbGVyU2hvdWxkVXNlTG93U2NhbGVUaWxl
czsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hl
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxl
Q2FjaGUubW0JKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9MZWdhY3lUaWxlQ2FjaGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2
b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0VGlsZXNPcGFxdWUoYm9vCiAgICAgaWYgKG1fdGlsZXNP
cGFxdWUgPT0gb3BhcXVlKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKIAog
ICAgIG1fdGlsZXNPcGFxdWUgPSBvcGFxdWU7CiAgICAgbV96b29tZWRPdXRUaWxlR3JpZC0+dXBk
YXRlVGlsZU9wYWNpdHkoKTsKQEAgLTE2MCw3ICsxNjAsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNo
ZTo6ZG9MYXlvdXRUaWxlcygpCiAgICAgaWYgKGlzVGlsZUNyZWF0aW9uU3VzcGVuZGVkKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIExlZ2FjeVRpbGVHcmlkKiBh
Y3RpdmVHcmlkID0gYWN0aXZlVGlsZUdyaWQoKTsKICAgICAvLyBFdmVuIHRob3VnaCB3ZSBhcmVu
J3QgYWN0dWFsbHkgY3JlYXRpbmcgdGlsZXMgaW4gdGhlIGluYWN0aXZlIGdyaWQsIHdlCiAgICAg
Ly8gc3RpbGwgbmVlZCB0byBkcm9wIGludmFsaWQgdGlsZXMgaW4gcmVzcG9uc2UgdG8gYSBsYXlv
dXQuCkBAIC0yMDAsNyArMjAwLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldEN1cnJlbnRT
Y2FsZShmbAogICAgIGlmICgha2VlcHNab29tZWRPdXRUaWxlcygpICYmICFpc1RpbGVJbnZhbGlk
YXRpb25TdXNwZW5kZWQoKSkgewogICAgICAgICAvLyBUaWxlIGludmFsaWRhdGlvbiBpcyBub3Jt
YWxseSBzdXNwZW5kZWQgZHVyaW5nIHpvb21pbmcgYnkgVUlLaXQgYnV0IHNvbWUgYXBwbGljYXRp
b25zCiAgICAgICAgIC8vIHVzaW5nIGN1c3RvbSBzY3JvbGx2aWV3cyBtYXkgem9vbSB3aXRob3V0
IHRyaWdnZXJpbmcgdGhlIGNhbGxiYWNrcy4gSW52YWxpZGF0ZSB0aGUgdGlsZXMgZXhwbGljaXRs
eS4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgICAgICBhY3RpdmVUaWxlR3JpZCgpLT5k
cm9wQWxsVGlsZXMoKTsKICAgICAgICAgYWN0aXZlVGlsZUdyaWQoKS0+Y3JlYXRlVGlsZXMoQ292
ZXJWaXNpYmxlT25seSk7CiAgICAgfQpAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgTGVnYWN5VGls
ZUNhY2hlOjpjb21taXRTY2FsZUNoYW5nZSgKICAgICBBU1NFUlQobV9wZW5kaW5nWm9vbWVkT3V0
U2NhbGUgfHwgbV9wZW5kaW5nU2NhbGUpOwogICAgIEFTU0VSVChtX3RpbGluZ01vZGUgIT0gRGlz
YWJsZWQpOwogICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogCiAgICAgaWYgKG1fcGVuZGluZ1pvb21l
ZE91dFNjYWxlKSB7CiAgICAgICAgIG1fem9vbWVkT3V0VGlsZUdyaWQtPnNldFNjYWxlKG1fcGVu
ZGluZ1pvb21lZE91dFNjYWxlKTsKQEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIExlZ2FjeVRpbGVD
YWNoZTo6bGF5b3V0VGlsZXNOb3coKQogICAgIGlmIChtX3RpbGluZ01vZGUgPT0gWm9vbWluZykK
ICAgICAgICAgbV90aWxpbmdNb2RlID0gTWluaW1hbDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAg
IExlZ2FjeVRpbGVHcmlkKiBhY3RpdmVHcmlkID0gYWN0aXZlVGlsZUdyaWQoKTsKICAgICBpZiAo
YWN0aXZlR3JpZC0+Y2hlY2tEb1NpbmdsZVRpbGVMYXlvdXQoKSkgewogICAgICAgICBtX3RpbGlu
Z01vZGUgPSBzYXZlZFRpbGluZ01vZGU7CkBAIC0zMjcsMTQgKzMyNywxNCBAQCB2b2lkIExlZ2Fj
eVRpbGVDYWNoZTo6bGF5b3V0VGlsZXNOb3coKQogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmxheW91
dFRpbGVzTm93Rm9yUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIEFTU0VSVChXZWJU
aHJlYWRJc0xvY2tlZE9yRGlzYWJsZWQoKSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGls
ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAKICAgICBhY3Rp
dmVUaWxlR3JpZCgpLT5hZGRUaWxlc0NvdmVyaW5nUmVjdChyZWN0KTsKIH0KIAogdm9pZCBMZWdh
Y3lUaWxlQ2FjaGU6OnJlbW92ZUFsbE5vblZpc2libGVUaWxlcygpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRl
eCk7CiAgICAgcmVtb3ZlQWxsTm9uVmlzaWJsZVRpbGVzSW50ZXJuYWwoKTsKIH0KIApAQCAtMzU2
LDcgKzM1Niw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNpYmwKIAog
dm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUFsbFRpbGVzKCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4
KTsKICAgICBtX3pvb21lZE91dFRpbGVHcmlkLT5kcm9wQWxsVGlsZXMoKTsKICAgICBpZiAobV96
b29tZWRJblRpbGVHcmlkKQogICAgICAgICBtX3pvb21lZEluVGlsZUdyaWQtPmRyb3BBbGxUaWxl
cygpOwpAQCAtMzY0LDcgKzM2NCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxU
aWxlcygpCiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVGb3JlZ3JvdW5kVGlsZXMoKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV90aWxlTXV0ZXgpOwogICAgIGlmICgha2VlcHNab29tZWRPdXRUaWxlcygpKQogICAg
ICAgICBtX3pvb21lZE91dFRpbGVHcmlkLT5kcm9wQWxsVGlsZXMoKTsKICAgICBpZiAobV96b29t
ZWRJblRpbGVHcmlkKQpAQCAtMzczLDEzICszNzMsMTMgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6
OnJlbW92ZUZvcmVncm91bmRUaQogCiB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0Q29udGVudFJl
cGxhY2VtZW50SW1hZ2UoUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNvbnRlbnRSZXBsYWNlbWVudElt
YWdlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdl
TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2VN
dXRleCk7CiAgICAgbV9jb250ZW50UmVwbGFjZW1lbnRJbWFnZSA9IGNvbnRlbnRSZXBsYWNlbWVu
dEltYWdlOwogfQogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTGVnYWN5VGlsZUNhY2hlOjpjb250
ZW50UmVwbGFjZW1lbnRJbWFnZSgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
Y29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9j
b250ZW50UmVwbGFjZW1lbnRJbWFnZU11dGV4KTsKICAgICByZXR1cm4gbV9jb250ZW50UmVwbGFj
ZW1lbnRJbWFnZTsKIH0KIApAQCAtNDI2LDcgKzQyNiw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hl
Ojp0aWxlQ3JlYXRpb25UaW1lckYKIHsKICAgICBpZiAoaXNUaWxlQ3JlYXRpb25TdXNwZW5kZWQo
KSkKICAgICAgICAgcmV0dXJuOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIGNyZWF0ZVRpbGVzSW5B
Y3RpdmVHcmlkKENvdmVyU3BlY3VsYXRpdmUpOwogfQogCkBAIC02MjAsNyArNjIwLDcgQEAgdm9p
ZCBMZWdhY3lUaWxlQ2FjaGU6OnNjaGVkdWxlTGF5ZXJGbHVzaAogCiB2b2lkIExlZ2FjeVRpbGVD
YWNoZTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zYXZlZERpc3BsYXlSZWN0TXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4KTsKICAgICBib29sIGFkZGVk
Rmlyc3RSZWN0ID0gbV9zYXZlZERpc3BsYXlSZWN0cy5pc0VtcHR5KCk7CiAgICAgbV9zYXZlZERp
c3BsYXlSZWN0cy5hcHBlbmQoZGlydHlSZWN0KTsKICAgICBpZiAoIWFkZGVkRmlyc3RSZWN0KQpA
QCAtNjkyLDcgKzY5Miw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjp1cGRhdGVUaWxpbmdNb2Rl
KCkKICAgICAgICAgaWYgKG1fdGlsaW5nTW9kZSA9PSBEaXNhYmxlZCkKICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgICAgIGNyZWF0ZVRpbGVzSW5B
Y3RpdmVHcmlkKENvdmVyVmlzaWJsZU9ubHkpOwogCiAgICAgICAgIGlmICghbV9zYXZlZERpc3Bs
YXlSZWN0cy5pc0VtcHR5KCkpCkBAIC03MTAsNyArNzEwLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2Fj
aGU6OnNldFRpbGluZ01vZGUoVGlsaQogICAgIGlmICgobV9wZW5kaW5nWm9vbWVkT3V0U2NhbGUg
fHwgbV9wZW5kaW5nU2NhbGUpICYmIG1fdGlsaW5nTW9kZSAhPSBEaXNhYmxlZCkKICAgICAgICAg
Y29tbWl0U2NhbGVDaGFuZ2UoKTsKICAgICBlbHNlIGlmICh3YXNab29taW5nKSB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fdGlsZU11dGV4KTsKICAgICAgICAgYnJpbmdBY3RpdmVUaWxlR3JpZFRvRnJvbnQoKTsK
ICAgICB9CiAKQEAgLTc1Myw3ICs3NTMsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6ZG9QZW5k
aW5nUmVwYWludHMoCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoaXNUaWxlSW52YWxpZGF0aW9u
U3VzcGVuZGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90
aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICBmbHVz
aFNhdmVkRGlzcGxheVJlY3RzKCk7CiB9CiAKQEAgLTc2NCw3ICs3NjQsNyBAQCB2b2lkIExlZ2Fj
eVRpbGVDYWNoZTo6Zmx1c2hTYXZlZERpc3BsYXlSCiAKICAgICBWZWN0b3I8SW50UmVjdD4gcmVj
dHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zYXZlZERpc3BsYXlSZWN0
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NhdmVkRGlzcGxheVJlY3RNdXRl
eCk7CiAgICAgICAgIG1fc2F2ZWREaXNwbGF5UmVjdHMuc3dhcChyZWN0cyk7CiAgICAgfQogICAg
IHNpemVfdCBzaXplID0gcmVjdHMuc2l6ZSgpOwpAQCAtNzkyLDcgKzc5Miw3IEBAIHZvaWQgTGVn
YWN5VGlsZUNhY2hlOjpwcmVwYXJlVG9EcmF3KCkKICAgICBbW21fd2luZG93IGNvbnRlbnRWaWV3
XSB2aWV3V2lsbERyYXddOwogCiAgICAgaWYgKCFtX3NhdmVkRGlzcGxheVJlY3RzLmlzRW1wdHko
KSkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgICAgIGZsdXNoU2F2ZWREaXNwbGF5
UmVjdHMoKTsKICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVn
YWN5VGlsZUxheWVyUG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzUsNyArNzYsNyBAQCBwcml2YXRlOgog
ICAgIFZlY3RvcjxJbnRTaXplPiBtX3NpemVzSW5QcnVuZU9yZGVyOwogICAgIHVuc2lnbmVkIG1f
dG90YWxCeXRlczsKICAgICB1bnNpZ25lZCBtX2NhcGFjaXR5OwotICAgIE11dGV4IG1fbGF5ZXJQ
b29sTXV0ZXg7CisgICAgTG9jayBtX2xheWVyUG9vbE11dGV4OwogCiAgICAgZG91YmxlIG1fbGFz
dEFkZFRpbWU7CiAgICAgYm9vbCBtX25lZWRzUHJ1bmU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbQkocmV2aXNpb24gMTg4
NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBMZWdhY3lUaWxlTGF5ZXJQ
b29sOjphZGRMYXllcihjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bGF5ZXJQb29sTXV0ZXgpOwogICAgIGxpc3RPZkxheWVyc1dpdGhTaXplKGxheWVyU2l6ZSkucHJl
cGVuZChsYXllcik7CiAgICAgbV90b3RhbEJ5dGVzICs9IGJ5dGVzQmFja2luZ0xheWVyV2l0aFBp
eGVsU2l6ZShsYXllclNpemUpOwogCkBAIC05Niw3ICs5Niw3IEBAIFJldGFpblB0cjxMZWdhY3lU
aWxlTGF5ZXI+IExlZ2FjeVRpbGVMYXkKIHsKICAgICBpZiAoIWNhblJldXNlTGF5ZXJXaXRoU2l6
ZShzaXplKSkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9s
YXllclBvb2xNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7
CiAgICAgTGF5ZXJMaXN0JiByZXVzZUxpc3QgPSBsaXN0T2ZMYXllcnNXaXRoU2l6ZShzaXplLCBN
YXJrQXNVc2VkKTsKICAgICBpZiAocmV1c2VMaXN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IG5pbDsKQEAgLTEwNiw3ICsxMDYsNyBAQCBSZXRhaW5QdHI8TGVnYWN5VGlsZUxheWVyPiBMZWdh
Y3lUaWxlTGF5CiAKIHZvaWQgTGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkodW5zaWdu
ZWQgY2FwYWNpdHkpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgcmV1c2VMb2NrZXIobV9sYXllclBvb2xN
dXRleCk7CisgICAgTG9ja0hvbGRlciByZXVzZUxvY2tlcihtX2xheWVyUG9vbE11dGV4KTsKICAg
ICBpZiAoY2FwYWNpdHkgPCBtX2NhcGFjaXR5KQogICAgICAgICBzY2hlZHVsZVBydW5lKCk7CiAg
ICAgbV9jYXBhY2l0eSA9IGNhcGFjaXR5OwpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgTGVnYWN5
VGlsZUxheWVyUG9vbDo6c2NoZWR1bGVQcnVuZSgKIAogdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29s
OjpwcnVuZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwogICAgIEFTU0VSVChtX25l
ZWRzUHJ1bmUpOwogICAgIG1fbmVlZHNQcnVuZSA9IGZhbHNlOwogICAgIHVuc2lnbmVkIHNocmlu
a1RvID0gZGVjYXllZENhcGFjaXR5KCk7CkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBMZWdhY3lU
aWxlTGF5ZXJQb29sOjpwcnVuZSgpCiAKIHZvaWQgTGVnYWN5VGlsZUxheWVyUG9vbDo6ZHJhaW4o
KQogewotICAgIE11dGV4TG9ja2VyIHJldXNlTG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgcmV1c2VMb2NrZXIobV9sYXllclBvb2xNdXRleCk7CiAgICAgbV9yZXVzZUxp
c3RzLmNsZWFyKCk7CiAgICAgbV9zaXplc0luUHJ1bmVPcmRlci5jbGVhcigpOwogICAgIG1fdG90
YWxCeXRlcyA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybERvd25sb2FkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYwLDcgKzYwLDcgQEAgQ3VybERvd25sb2FkTWFuYWdlcjo6fkN1cmxEb3dubG9h
ZE1hbmFnZQogCiBib29sIEN1cmxEb3dubG9hZE1hbmFnZXI6OmFkZChDVVJMKiBjdXJsSGFuZGxl
KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX211dGV4KTsKIAogICAgIG1fcGVuZGluZ0hhbmRsZUxpc3QuYXBwZW5kKGN1cmxIYW5k
bGUpOwogICAgIHN0YXJ0VGhyZWFkSWZOZWVkZWQoKTsKQEAgLTcwLDcgKzcwLDcgQEAgYm9vbCBD
dXJsRG93bmxvYWRNYW5hZ2VyOjphZGQoQ1VSTCogY3VybAogCiBib29sIEN1cmxEb3dubG9hZE1h
bmFnZXI6OnJlbW92ZShDVVJMKiBjdXJsSGFuZGxlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIG1fcmVt
b3ZlZEhhbmRsZUxpc3QuYXBwZW5kKGN1cmxIYW5kbGUpOwogCkBAIC03OSwxMyArNzksMTMgQEAg
Ym9vbCBDdXJsRG93bmxvYWRNYW5hZ2VyOjpyZW1vdmUoQ1VSTCogYwogCiBpbnQgQ3VybERvd25s
b2FkTWFuYWdlcjo6Z2V0QWN0aXZlRG93bmxvYWRDb3VudCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwog
ICAgIHJldHVybiBtX2FjdGl2ZUhhbmRsZUxpc3Quc2l6ZSgpOwogfQogCiBpbnQgQ3VybERvd25s
b2FkTWFuYWdlcjo6Z2V0UGVuZGluZ0Rvd25sb2FkQ291bnQoKSBjb25zdAogewotICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsK
ICAgICByZXR1cm4gbV9wZW5kaW5nSGFuZGxlTGlzdC5zaXplKCk7CiB9CiAKQEAgLTExMSw3ICsx
MTEsNyBAQCB2b2lkIEN1cmxEb3dubG9hZE1hbmFnZXI6OnN0b3BUaHJlYWQoKQogCiB2b2lkIEN1
cmxEb3dubG9hZE1hbmFnZXI6OnN0b3BUaHJlYWRJZklkbGUoKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAg
IGlmICghZ2V0QWN0aXZlRG93bmxvYWRDb3VudCgpICYmICFnZXRQZW5kaW5nRG93bmxvYWRDb3Vu
dCgpKQogICAgICAgICBzZXRSdW5UaHJlYWQoZmFsc2UpOwpAQCAtMTE5LDcgKzExOSw3IEBAIHZv
aWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RvcFRocmVhZElmSWQKIAogdm9pZCBDdXJsRG93bmxv
YWRNYW5hZ2VyOjp1cGRhdGVIYW5kbGVMaXN0KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICAvLyBSZW1v
dmUgY3VybCBlYXN5IGhhbmRsZXMgZnJvbSBtdWx0aSBsaXN0IAogICAgIGludCBzaXplID0gbV9y
ZW1vdmVkSGFuZGxlTGlzdC5zaXplKCk7CkBAIC0yNDUsNyArMjQ1LDcgQEAgQ3VybERvd25sb2Fk
OjpDdXJsRG93bmxvYWQoKQogCiBDdXJsRG93bmxvYWQ6On5DdXJsRG93bmxvYWQoKQogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211
dGV4KTsKIAogICAgIGlmIChtX3VybCkKICAgICAgICAgZmFzdEZyZWUobV91cmwpOwpAQCAtMjYy
LDcgKzI2Miw3IEBAIHZvaWQgQ3VybERvd25sb2FkOjppbml0KEN1cmxEb3dubG9hZExpc3QKICAg
ICBpZiAoIWxpc3RlbmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBtX2N1
cmxIYW5kbGUgPSBjdXJsX2Vhc3lfaW5pdCgpOwogCkBAIC0yOTUsNyArMjk1LDcgQEAgdm9pZCBD
dXJsRG93bmxvYWQ6OmluaXQoQ3VybERvd25sb2FkTGlzdAogICAgIGlmICghbGlzdGVuZXIpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIFVSTCB1cmwoUGFyc2VkVVJMU3RyaW5n
LCByZXF1ZXN0LnVybCgpKTsKIApAQCAtMzE3LDI1ICszMTcsMjUgQEAgYm9vbCBDdXJsRG93bmxv
YWQ6OmNhbmNlbCgpCiAKIFN0cmluZyBDdXJsRG93bmxvYWQ6OmdldFRlbXBQYXRoKCkgY29uc3QK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fdGVtcFBhdGg7CiB9CiAKIFN0cmluZyBDdXJsRG93
bmxvYWQ6OmdldFVybCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIHJldHVybiBTdHJpbmcobV91
cmwpOwogfQogCiBSZXNvdXJjZVJlc3BvbnNlIEN1cmxEb3dubG9hZDo6Z2V0UmVzcG9uc2UoKSBj
b25zdAogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX211dGV4KTsKICAgICByZXR1cm4gbV9yZXNwb25zZTsKIH0KIAogdm9pZCBDdXJs
RG93bmxvYWQ6OmNsb3NlRmlsZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKG1fdGVtcEhhbmRs
ZSAhPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSB7CiAgICAgICAgIFdlYkNvcmU6OmNsb3Nl
RmlsZShtX3RlbXBIYW5kbGUpOwpAQCAtMzkwLDcgKzM5MCw3IEBAIHZvaWQgQ3VybERvd25sb2Fk
OjphZGRIZWFkZXJzKGNvbnN0IFJlc28KIAogdm9pZCBDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVI
ZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
bXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKGhlYWRl
ciA9PSAiXHJcbiIgfHwgaGVhZGVyID09ICJcbiIpIHsKIApAQCAtNDMwLDcgKzQzMCw3IEBAIHZv
aWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZlSGVhZGVyKGNvbnMKIAogdm9pZCBDdXJsRG93bmxv
YWQ6OmRpZFJlY2VpdmVEYXRhKHZvaWQqIGRhdGEsIGludCBzaXplKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAog
ICAgIFJlZlB0cjxDdXJsRG93bmxvYWQ+IHByb3RlY3RlZERvd25sb2FkKHRoaXMpOwogCkBAIC00
NjQsNyArNDY0LDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmRpZEZpbmlzaCgpCiAKIHZvaWQgQ3Vy
bERvd25sb2FkOjpkaWRGYWlsKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBjbG9zZUZpbGUoKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
RG93bmxvYWQuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3
IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENVUkwqPiBtX3BlbmRpbmdIYW5kbGVMaXN0OwogICAg
IFZlY3RvcjxDVVJMKj4gbV9hY3RpdmVIYW5kbGVMaXN0OwogICAgIFZlY3RvcjxDVVJMKj4gbV9y
ZW1vdmVkSGFuZGxlTGlzdDsKLSAgICBtdXRhYmxlIE11dGV4IG1fbXV0ZXg7CisgICAgbXV0YWJs
ZSBMb2NrIG1fbXV0ZXg7CiAgICAgYm9vbCBtX3J1blRocmVhZDsKIH07CiAKQEAgLTE0MCw3ICsx
NDAsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlBsYXRmb3JtRmlsZUhhbmRsZSBtX3RlbXBI
YW5kbGU7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwogICAgIGJv
b2wgbV9kZWxldGVzRmlsZVVwb25GYWlsdXJlOwotICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsK
KyAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKICAgICBDdXJsRG93bmxvYWRMaXN0ZW5lciAqbV9s
aXN0ZW5lcjsKIAogICAgIHN0YXRpYyBDdXJsRG93bmxvYWRNYW5hZ2VyIG1fZG93bmxvYWRNYW5h
Z2VyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAJKHJldmlzaW9uIDE4ODU2OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1h
bmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMsMTAgKzEzMywxMSBAQCBzdGF0aWMgY2hh
ciogY29va2llSmFyUGF0aCgpCiAjZW5kaWYKIH0KIAotc3RhdGljIE11dGV4KiBzaGFyZWRSZXNv
dXJjZU11dGV4KGN1cmxfbG9ja19kYXRhIGRhdGEpIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoTXV0ZXgsIGNvb2tpZU11dGV4LCAoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKE11dGV4LCBkbnNNdXRleCwgKCkpOwotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc2hhcmVNdXRleCwgKCkpOworc3RhdGljIExvY2sqIHNo
YXJlZFJlc291cmNlTXV0ZXgoY3VybF9sb2NrX2RhdGEgZGF0YSkKK3sKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgY29va2llTXV0ZXgsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgZG5zTXV0ZXgsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgc2hhcmVNdXRleCwgKCkpOwogCiAgICAgc3dp
dGNoIChkYXRhKSB7CiAgICAgICAgIGNhc2UgQ1VSTF9MT0NLX0RBVEFfQ09PS0lFOgpAQCAtMTkw
LDEzICsxOTEsMTMgQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlV2ViVGltaW5nSW5mb3JtYXRpbwog
Ly8gY2FjaGUuCiBzdGF0aWMgdm9pZCBjdXJsX2xvY2tfY2FsbGJhY2soQ1VSTCogLyogaGFuZGxl
ICovLCBjdXJsX2xvY2tfZGF0YSBkYXRhLCBjdXJsX2xvY2tfYWNjZXNzIC8qIGFjY2VzcyAqLywg
dm9pZCogLyogdXNlclB0ciAqLykKIHsKLSAgICBpZiAoTXV0ZXgqIG11dGV4ID0gc2hhcmVkUmVz
b3VyY2VNdXRleChkYXRhKSkKKyAgICBpZiAoTG9jayogbXV0ZXggPSBzaGFyZWRSZXNvdXJjZU11
dGV4KGRhdGEpKQogICAgICAgICBtdXRleC0+bG9jaygpOwogfQogCiBzdGF0aWMgdm9pZCBjdXJs
X3VubG9ja19jYWxsYmFjayhDVVJMKiAvKiBoYW5kbGUgKi8sIGN1cmxfbG9ja19kYXRhIGRhdGEs
IHZvaWQqIC8qIHVzZXJQdHIgKi8pCiB7Ci0gICAgaWYgKE11dGV4KiBtdXRleCA9IHNoYXJlZFJl
c291cmNlTXV0ZXgoZGF0YSkpCisgICAgaWYgKExvY2sqIG11dGV4ID0gc2hhcmVkUmVzb3VyY2VN
dXRleChkYXRhKSkKICAgICAgICAgbXV0ZXgtPnVubG9jaygpOwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xv
b2subW0JKHdvcmtpbmcgY29weSkKQEAgLTg1LDkgKzg1LDkgQEAgTlNEaWN0aW9uYXJ5ICpXZWJD
b3JlOjpRTERpcmVjdG9yeUF0dHJpYgogICAgIHJldHVybiBkaWN0aW9uYXJ5OwogfQogCi1zdGF0
aWMgTXV0ZXgmIHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpCitzdGF0aWMgTG9j
ayYgcWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8TXV0ZXg+IG11dGV4OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2Nr
PiBtdXRleDsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lk
IFdlYkNvcmU6OmFkZFFMUHJldmlld0NvbnZlcnRlcldpdGhGCiB7CiAgICAgQVNTRVJUKHVybCk7
CiAgICAgQVNTRVJUKGNvbnZlcnRlcik7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhxbFByZXZpZXdD
b252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmll
d0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKICAgICBbUUxQcmV2aWV3Q29udmVydGVyRGlj
dGlvbmFyeSgpIHNldE9iamVjdDpjb252ZXJ0ZXIgZm9yS2V5OnVybF07CiAgICAgW1FMQ29udGVu
dERpY3Rpb25hcnkoKSBzZXRPYmplY3Q6KGZpbGVOYW1lID8gZmlsZU5hbWUgOiBAIiIpIGZvcktl
eTp1cmxdOwogfQpAQCAtMTIxLDcgKzEyMSw3IEBAIE5TU3RyaW5nICpXZWJDb3JlOjpxbFByZXZp
ZXdDb252ZXJ0ZXJVVEkKIHsKICAgICBpZCBjb252ZXJ0ZXIgPSBuaWw7CiAgICAgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRl
eCgpKTsKICAgICAgICAgY29udmVydGVyID0gW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnko
KSBvYmplY3RGb3JLZXk6dXJsXTsKICAgICB9CiAgICAgaWYgKCFjb252ZXJ0ZXIpCkBAIC0xMzEs
NyArMTMxLDcgQEAgTlNTdHJpbmcgKldlYkNvcmU6OnFsUHJldmlld0NvbnZlcnRlclVUSQogCiB2
b2lkIFdlYkNvcmU6OnJlbW92ZVFMUHJldmlld0NvbnZlcnRlckZvclVSTChOU1VSTCAqdXJsKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4
KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0
ZXgoKSk7CiAgICAgW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnkoKSByZW1vdmVPYmplY3RG
b3JLZXk6dXJsXTsKIAogICAgIC8vIERlbGV0ZSB0aGUgZmlsZSB3aGVuIHdlIHJlbW92ZSB0aGUg
cHJldmlldyBjb252ZXJ0ZXIKQEAgLTE2Niw3ICsxNjYsNyBAQCBjb25zdCBVUkwgV2ViQ29yZTo6
c2FmZVFMVVJMRm9yRG9jdW1lbnRVCiAgICAgaWQgY29udmVydGVyID0gbmlsOwogICAgIE5TVVJM
ICpuc0RvY3VtZW50VVJMID0gZG9jdW1lbnRVUkw7CiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKICAgICAg
ICAgY29udmVydGVyID0gW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnkoKSBvYmplY3RGb3JL
ZXk6bnNEb2N1bWVudFVSTF07CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgICAg
IC8vIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9vcGVuaW5nVGhyZWFkKTsKICAgICAgICAg
c3FsaXRlMyogZGIgPSBtX2RiOwogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9kYXRhYmFzZUNsb3NpbmdNdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2RhdGFiYXNlQ2xvc2luZ011dGV4KTsKICAgICAgICAgICAgIG1fZGIgPSAwOwogICAg
ICAgICB9CiAgICAgICAgIHNxbGl0ZTNfY2xvc2UoZGIpOwpAQCAtMTYwLDcgKzE2MCw3IEBAIGlu
dDY0X3QgU1FMaXRlRGF0YWJhc2U6Om1heGltdW1TaXplKCkKICAgICBpbnQ2NF90IG1heFBhZ2VD
b3VudCA9IDA7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6
ZXJMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAg
ICAgICAgIGVuYWJsZUF1dGhvcml6ZXIoZmFsc2UpOwogICAgICAgICBTUUxpdGVTdGF0ZW1lbnQg
c3RhdGVtZW50KCp0aGlzLCBBU0NJSUxpdGVyYWwoIlBSQUdNQSBtYXhfcGFnZV9jb3VudCIpKTsK
ICAgICAgICAgbWF4UGFnZUNvdW50ID0gc3RhdGVtZW50LmdldENvbHVtbkludDY0KDApOwpAQCAt
MTgwLDcgKzE4MCw3IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OnNldE1heGltdW1TaXplKGludDYK
ICAgICBBU1NFUlQoY3VycmVudFBhZ2VTaXplIHx8ICFtX2RiKTsKICAgICBpbnQ2NF90IG5ld01h
eFBhZ2VDb3VudCA9IGN1cnJlbnRQYWdlU2l6ZSA/IHNpemUgLyBjdXJyZW50UGFnZVNpemUgOiAw
OwogICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICBlbmFibGVBdXRob3JpemVy
KGZhbHNlKTsKIAogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsICJQUkFHTUEg
bWF4X3BhZ2VfY291bnQgPSAiICsgU3RyaW5nOjpudW1iZXIobmV3TWF4UGFnZUNvdW50KSk7CkBA
IC0xOTcsNyArMTk3LDcgQEAgaW50IFNRTGl0ZURhdGFiYXNlOjpwYWdlU2l6ZSgpCiAgICAgLy8g
U2luY2UgdGhlIHBhZ2Ugc2l6ZSBvZiBhIGRhdGFiYXNlIGlzIGxvY2tlZCBpbiBhdCBjcmVhdGlv
biBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBkeW5hbWljLCAKICAgICAvLyB3ZSBjYW4gY2FjaGUg
dGhlIHZhbHVlIGZvciBmdXR1cmUgdXNlCiAgICAgaWYgKG1fcGFnZVNpemUgPT0gLTEpIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICAgICAgZW5hYmxlQXV0aG9yaXpl
cihmYWxzZSk7CiAgICAgICAgIAogICAgICAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KCp0
aGlzLCBBU0NJSUxpdGVyYWwoIlBSQUdNQSBwYWdlX3NpemUiKSk7CkBAIC0yMTQsNyArMjE0LDcg
QEAgaW50NjRfdCBTUUxpdGVEYXRhYmFzZTo6ZnJlZVNwYWNlU2l6ZSgpCiAgICAgaW50NjRfdCBm
cmVlbGlzdENvdW50ID0gMDsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
YXV0aG9yaXplckxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJM
b2NrKTsKICAgICAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CiAgICAgICAgIC8vIE5vdGU6
IGZyZWVsaXN0X2NvdW50IHdhcyBhZGRlZCBpbiBTUUxpdGUgMy40LjEuCiAgICAgICAgIFNRTGl0
ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsIEFTQ0lJTGl0ZXJhbCgiUFJBR01BIGZyZWVsaXN0
X2NvdW50IikpOwpAQCAtMjMwLDcgKzIzMCw3IEBAIGludDY0X3QgU1FMaXRlRGF0YWJhc2U6OnRv
dGFsU2l6ZSgpCiAgICAgaW50NjRfdCBwYWdlQ291bnQgPSAwOwogCiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwogICAgICAgICBlbmFibGVBdXRob3JpemVyKGZhbHNl
KTsKICAgICAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudCgqdGhpcywgQVNDSUlMaXRlcmFs
KCJQUkFHTUEgcGFnZV9jb3VudCIpKTsKICAgICAgICAgcGFnZUNvdW50ID0gc3RhdGVtZW50Lmdl
dENvbHVtbkludDY0KDApOwpAQCAtMzA5LDcgKzMwOSw3IEBAIGludCBTUUxpdGVEYXRhYmFzZTo6
cnVuVmFjdXVtQ29tbWFuZCgpCiAKIGludCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVtZW50YWxW
YWN1dW1Db21tYW5kKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9j
ayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAgICAgZW5hYmxl
QXV0aG9yaXplcihmYWxzZSk7CiAKICAgICBpZiAoIWV4ZWN1dGVDb21tYW5kKEFTQ0lJTGl0ZXJh
bCgiUFJBR01BIGluY3JlbWVudGFsX3ZhY3V1bSIpKSkKQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lk
IFNRTGl0ZURhdGFiYXNlOjpzZXRBdXRob3JpemVyKFBhc3NSCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAKICAgICBtX2F1dGhvcml6ZXIgPSBh
dXRoOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURh
dGFiYXNlLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nx
bC9TUUxpdGVEYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAKICNp
bmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHNxbGl0ZTMuaD4KKyNpbmNsdWRlIDx3dGYv
TG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0xMDYsNyArMTA3
LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2V0QXV0aG9yaXplcihQYXNzUmVmUHRyPERh
dGFiYXNlQXV0aG9yaXplcj4pOwogCi0gICAgTXV0ZXgmIGRhdGFiYXNlTXV0ZXgoKSB7IHJldHVy
biBtX2xvY2tpbmdNdXRleDsgfQorICAgIExvY2smIGRhdGFiYXNlTXV0ZXgoKSB7IHJldHVybiBt
X2xvY2tpbmdNdXRleDsgfQogICAgIGJvb2wgaXNBdXRvQ29tbWl0T24oKSBjb25zdDsKIAogICAg
IC8vIFRoZSBTUUxpdGUgQVVUT19WQUNVVU0gcHJhZ21hIGNhbiBiZSBlaXRoZXIgTk9ORSwgRlVM
TCwgb3IgSU5DUkVNRU5UQUwuCkBAIC0xNDcsMTMgKzE0OCwxMyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3M7CiAgICAgYm9vbCBtX3NoYXJhYmxlOwogICAgIAot
ICAgIE11dGV4IG1fYXV0aG9yaXplckxvY2s7CisgICAgTG9jayBtX2F1dGhvcml6ZXJMb2NrOwog
ICAgIFJlZlB0cjxEYXRhYmFzZUF1dGhvcml6ZXI+IG1fYXV0aG9yaXplcjsKIAotICAgIE11dGV4
IG1fbG9ja2luZ011dGV4OworICAgIExvY2sgbV9sb2NraW5nTXV0ZXg7CiAgICAgVGhyZWFkSWRl
bnRpZmllciBtX29wZW5pbmdUaHJlYWQ7CiAKLSAgICBNdXRleCBtX2RhdGFiYXNlQ2xvc2luZ011
dGV4OworICAgIExvY2sgbV9kYXRhYmFzZUNsb3NpbmdNdXRleDsKIAogICAgIGludCBtX29wZW5F
cnJvcjsKICAgICBDU3RyaW5nIG1fb3BlbkVycm9yTWVzc2FnZTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCShyZXZpc2lvbiAxODg1
NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBpbnQgU1FMaXRlU3RhdGVtZW50OjpwcmVw
YXJlKCkKIHsKICAgICBBU1NFUlQoIW1faXNQcmVwYXJlZCk7CiAKLSAgICBNdXRleExvY2tlciBk
YXRhYmFzZUxvY2sobV9kYXRhYmFzZS5kYXRhYmFzZU11dGV4KCkpOworICAgIExvY2tIb2xkZXIg
ZGF0YWJhc2VMb2NrKG1fZGF0YWJhc2UuZGF0YWJhc2VNdXRleCgpKTsKIAogICAgIENTdHJpbmcg
cXVlcnkgPSBtX3F1ZXJ5LnN0cmlwV2hpdGVTcGFjZSgpLnV0ZjgoKTsKICAgICAKQEAgLTg2LDcg
Kzg2LDcgQEAgaW50IFNRTGl0ZVN0YXRlbWVudDo6cHJlcGFyZSgpCiAKIGludCBTUUxpdGVTdGF0
ZW1lbnQ6OnN0ZXAoKQogewotICAgIE11dGV4TG9ja2VyIGRhdGFiYXNlTG9jayhtX2RhdGFiYXNl
LmRhdGFiYXNlTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBkYXRhYmFzZUxvY2sobV9kYXRhYmFz
ZS5kYXRhYmFzZU11dGV4KCkpOwogCiAgICAgaWYgKCFtX3N0YXRlbWVudCkKICAgICAgICAgcmV0
dXJuIFNRTElURV9PSzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5j
cHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3IEBAIFdvcmtlclRocmVhZDo6
fldvcmtlclRocmVhZCgpCiBib29sIFdvcmtlclRocmVhZDo6c3RhcnQoKQogewogICAgIC8vIE11
dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IG1fdGhyZWFkSUQgaXMg
aW5pdGlhbGl6ZWQgd2hlbiB0aGUgdGhyZWFkIHN0YXJ0cy4KLSAgICBNdXRleExvY2tlciBsb2Nr
KG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3Jl
YXRpb25NdXRleCk7CiAKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiAj
ZW5kaWYKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsK
ICAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKG1f
c3RhcnR1cERhdGEtPm1fc2NyaXB0VVJMLCBtX3N0YXJ0dXBEYXRhLT5tX3VzZXJBZ2VudCwgbV9z
dGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fc3RhcnR1cERhdGEtPm1fY29u
dGVudFNlY3VyaXR5UG9saWN5VHlwZSwgbV9zdGFydHVwRGF0YS0+bV90b3BPcmlnaW4ucmVsZWFz
ZSgpKTsKIAogICAgICAgICBpZiAobV9ydW5Mb29wLnRlcm1pbmF0ZWQoKSkgewpAQCAtMTg5LDcg
KzE4OSw3IEBAIHZvaWQgV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AoKQogdm9pZCBXb3JrZXJU
aHJlYWQ6OnN0b3AoKQogewogICAgIC8vIE11dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IGJl
Y2F1c2Ugc3RvcCgpIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHRoZSBjb250ZXh0IGlzIGZ1bGx5IGNy
ZWF0ZWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwogCiAgICAgLy8gRW5zdXJl
IHRoYXQgdGFza3MgYXJlIGJlaW5nIGhhbmRsZWQgYnkgdGhyZWFkIGV2ZW50IGxvb3AuIElmIHNj
cmlwdCBleGVjdXRpb24gd2VyZW4ndCBmb3JiaWRkZW4sIGEgd2hpbGUoMSkgbG9vcCBpbiBKUyBj
b3VsZCBrZWVwIHRoZSB0aHJlYWQgYWxpdmUgZm9yZXZlci4KICAgICBpZiAobV93b3JrZXJHbG9i
YWxTY29wZSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCShyZXZp
c2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgV29ya2VyUmVwb3J0aW5nUHJveHkmIG1fd29ya2VyUmVwb3J0aW5nUHJveHk7CiAKICAgICAg
ICAgUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBtX3dvcmtlckdsb2JhbFNjb3BlOwotICAgICAg
ICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CisgICAgICAgIExvY2sgbV90aHJlYWRDcmVh
dGlvbk11dGV4OwogCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJUaHJlYWRTdGFydHVw
RGF0YT4gbV9zdGFydHVwRGF0YTsKIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTkg
QEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2Nr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERhdGFi
YXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFz
ZVByb2Nlc3M6OnBvc3REYXRhYmFzZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVBy
b2Nlc3M6OnBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nl
c3MvRGF0YWJhc2VQcm9jZXNzLmg6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpzaHV0ZG93bik6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0
TWFpblRocmVhZFRhc2spOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6cGVy
Zm9ybU5leHRNYWluVGhyZWFkVGFzayk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpwb3N0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJh
c2U6OnBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2Up
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2VGcm9tU2Vjb25kYXJ5
VGhyZWFkKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6d2FpdEZvclN5bmNSZXBseSk6Cisg
ICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ1N5bmNSZXBseSk6CisgICAg
ICAgIChJUEM6OkNvbm5lY3Rpb246OmNvbm5lY3Rpb25EaWRDbG9zZSk6CisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6OmFwcGVuZFVwZGF0ZSk6CisgICAgICAgICogU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmg6CisgICAgICAgICog
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRl
Q29tcG9zaXRpbmdUaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6
OnJ1bkNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3Np
dG9yOjp0ZXJtaW5hdGVDb21wb3NpdGluZ1RocmVhZCk6CisgICAgICAgICogU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oOgor
ICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90
b2NvbE1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyOjphZGRDdXN0b21Qcm90b2NvbCk6CisgICAgICAgIChXZWJLaXQ6OkN1c3RvbVByb3RvY29s
TWFuYWdlcjo6cmVtb3ZlQ3VzdG9tUHJvdG9jb2wpOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Q
cm90b2NvbE1hbmFnZXI6OnJlZ2lzdGVyU2NoZW1lKToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyOjp1bnJlZ2lzdGVyU2NoZW1lKToKKyAgICAgICAgKFdlYktpdDo6Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyOjpzdXBwb3J0c1NjaGVtZSk6CisgICAgICAgIChXZWJLaXQ6OkN1
c3RvbVByb3RvY29sTWFuYWdlcjo6cHJvdG9jb2xGb3JJRCk6CisgICAgICAgICogU2hhcmVkL05l
dHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oOgorICAgICAgICAq
IFNoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpnZXRQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlcjo6cmVtb3ZlUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OnBsdWdpblByb2Nlc3NDcmFz
aGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6YWRkU2Nyb2xsaW5nVHJl
ZUZvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OnJlbW92ZVNjcm9s
bGluZ1RyZWVGb3JQYWdlKToKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjp3aGVl
bEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0u
Y3BwOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyk6Cisg
ICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtQWRkRGF0YSk6CisKIDIwMTUtMDgt
MTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBTcGVjdWxhdGl2ZSBHVEsgYnVpbGQgZml4IGFmdGVyIHIxODg1NTMKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCShyZXZp
c2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQ
cm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgRGF0YWJh
c2VQcm9jZXNzOjpwb3N0RGF0YWJhc2VUYXNrKHMKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwogCiAgICAgbV9kYXRh
YmFzZVRhc2tzLmFwcGVuZChXVEY6Om1vdmUodGFzaykpOwogCkBAIC0xNjYsNyArMTY2LDcgQEAg
dm9pZCBEYXRhYmFzZVByb2Nlc3M6OnBlcmZvcm1OZXh0RGF0YWJhcwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPEFzeW5jVGFzaz4gdGFzazsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRh
YmFzZVRhc2tNdXRleCk7CiAgICAgICAgIEFTU0VSVCghbV9kYXRhYmFzZVRhc2tzLmlzRW1wdHko
KSk7CiAgICAgICAgIHRhc2sgPSBtX2RhdGFiYXNlVGFza3MudGFrZUZpcnN0KCk7CiAgICAgfQpJ
bmRleDogU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nl
c3MuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgcHJp
dmF0ZToKICAgICBIYXNoTWFwPFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllciwgUmVmUHRyPFVu
aXF1ZUlEQkRhdGFiYXNlPj4gbV9pZGJEYXRhYmFzZXM7CiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1
ZV9wdHI8QXN5bmNUYXNrPj4gbV9kYXRhYmFzZVRhc2tzOwotICAgIE11dGV4IG1fZGF0YWJhc2VU
YXNrTXV0ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlVGFza011dGV4OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAkocmV2aXNpb24g
MTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9Vbmlx
dWVJREJEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpzaHV0ZG93bihVbmlxdWVJCiAgICAgcmVmKCk7CiAKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CiAgICAgICAgIG1fZGF0
YWJhc2VUYXNrcy5jbGVhcigpOwogICAgIH0KIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6cG9zdE1haW5UaHJlYWRUYQogICAgIGlmICghbV9hY2NlcHRpbmdO
ZXdSZXF1ZXN0cyAmJiB0YXNrVHlwZSA9PSBEYXRhYmFzZVRhc2tUeXBlOjpOb3JtYWwpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbWFpblRocmVhZFRhc2tNdXRleCk7CiAKICAg
ICBtX21haW5UaHJlYWRUYXNrcy5hcHBlbmQoV1RGOjptb3ZlKHRhc2spKTsKIApAQCAtMTE0Myw3
ICsxMTQzLDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybU5leHRNYWluVAogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFzazsKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0ZXgpOwogCiAgICAgICAgIC8vIFRoaXMgZGF0YWJh
c2UgbWlnaHQgYmUgc2h1dHRpbmcgZG93biwgaW4gd2hpY2ggY2FzZSB0aGUgdGFzayBxdWV1ZSBt
aWdodCBiZSBlbXB0eS4KICAgICAgICAgaWYgKG1fbWFpblRocmVhZFRhc2tzLmlzRW1wdHkoKSkK
QEAgLTExNjUsNyArMTE2NSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBvc3REYXRhYmFz
ZVRhc2sKICAgICBpZiAoIW1fYWNjZXB0aW5nTmV3UmVxdWVzdHMgJiYgdGFza1R5cGUgPT0gRGF0
YWJhc2VUYXNrVHlwZTo6Tm9ybWFsKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9k
YXRhYmFzZVRhc2tNdXRleCk7CiAKICAgICBtX2RhdGFiYXNlVGFza3MuYXBwZW5kKFdURjo6bW92
ZSh0YXNrKSk7CiAKQEAgLTExODYsNyArMTE4Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnBlcmZvcm1OZXh0RGF0YWIKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1Rhc2s+IHRhc2s7
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwogCiAgICAg
ICAgIC8vIFRoaXMgZGF0YWJhc2UgbWlnaHQgYmUgc2h1dHRpbmcgZG93biBvbiB0aGUgbWFpbiB0
aHJlYWQsIGluIHdoaWNoIGNhc2UgdGhlIHRhc2sgcXVldWUgbWlnaHQgYmUgZW1wdHkuCiAgICAg
ICAgIGlmIChtX2RhdGFiYXNlVGFza3MuaXNFbXB0eSgpKQpJbmRleDogU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0
YWJhc2UuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAs
MTAgKzIxMCwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZUJhY2tp
bmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8QXN5
bmNUYXNrPj4gbV9kYXRhYmFzZVRhc2tzOwotICAgIE11dGV4IG1fZGF0YWJhc2VUYXNrTXV0ZXg7
CisgICAgTG9jayBtX2RhdGFiYXNlVGFza011dGV4OwogCiAgICAgRGVxdWU8c3RkOjp1bmlxdWVf
cHRyPEFzeW5jVGFzaz4+IG1fbWFpblRocmVhZFRhc2tzOwotICAgIE11dGV4IG1fbWFpblRocmVh
ZFRhc2tNdXRleDsKKyAgICBMb2NrIG1fbWFpblRocmVhZFRhc2tNdXRleDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25u
ZWN0aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTksNyArNDU5LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aQogCiAgICAgLy8gUHVzaCB0aGUg
cGVuZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uIG9uIG91ciBzdGFjay4KICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogICAgICAgICBpZiAoIW1f
c2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzKSB7CiAgICAgICAgICAgICBkaWRGYWlsVG9TZW5kU3lu
Y01lc3NhZ2UoKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNDg2LDcgKzQ4Niw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAogICAgIC8vIEZp
bmFsbHksIHBvcCB0aGUgcGVuZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uLgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAgICAgICAgIEFTU0VS
VChtX3BlbmRpbmdTeW5jUmVwbGllcy5sYXN0KCkuc3luY1JlcXVlc3RJRCA9PSBzeW5jUmVxdWVz
dElEKTsKICAgICAgICAgbV9wZW5kaW5nU3luY1JlcGxpZXMucmVtb3ZlTGFzdCgpOwogICAgIH0K
QEAgLTUwOCw3ICs1MDgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5l
Y3RpCiAKICAgICAvLyBQdXNoIHRoZSBwZW5kaW5nIHN5bmMgcmVwbHkgaW5mb3JtYXRpb24gb24g
b3VyIHN0YWNrLgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5
U3RhdGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVN
dXRleCk7CiAgICAgICAgIGlmICghbV9zaG91bGRXYWl0Rm9yU3luY1JlcGxpZXMpCiAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtNTI2LDcgKzUyNiw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAogICAgIC8vIEZpbmFsbHksIHBvcCB0aGUgcGVu
ZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uLgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAgICAgICAgIEFTU0VSVChtX3NlY29uZGFyeVRocmVh
ZFBlbmRpbmdTeW5jUmVwbHlNYXAuY29udGFpbnMoc3luY1JlcXVlc3RJRCkpOwogICAgICAgICBt
X3NlY29uZGFyeVRocmVhZFBlbmRpbmdTeW5jUmVwbHlNYXAucmVtb3ZlKHN5bmNSZXF1ZXN0SUQp
OwogICAgIH0KQEAgLTU0Niw3ICs1NDYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29k
ZXI+IENvbm5lY3RpCiAgICAgICAgIFN5bmNNZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmRpc3Bh
dGNoTWVzc2FnZXMobnVsbHB0cik7CiAgICAgICAgIAogICAgICAgICB7Ci0gICAgICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAKICAgICAgICAgICAgIC8v
IFNlY29uZCwgY2hlY2sgaWYgdGhlcmUgaXMgYSBzeW5jIHJlcGx5IGF0IHRoZSB0b3Agb2YgdGhl
IHN0YWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3BlbmRpbmdTeW5jUmVwbGllcy5pc0VtcHR5
KCkpOwpAQCAtNTkyLDcgKzU5Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4g
Q29ubmVjdGkKIAogdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdTeW5jUmVwbHkoc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBkZWNvZGVyKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
c3luY1JlcGx5U3RhdGVNdXRleCk7CiAKICAgICAvLyBHbyB0aHJvdWdoIHRoZSBzdGFjayBvZiBz
eW5jIHJlcXVlc3RzIHRoYXQgaGF2ZSBwZW5kaW5nIHJlcGxpZXMgYW5kIHNlZSB3aGljaCBvbmUK
ICAgICAvLyB0aGlzIHJlcGx5IGlzIGZvci4KQEAgLTc1MCw3ICs3NTAsNyBAQCB2b2lkIENvbm5l
Y3Rpb246OmNvbm5lY3Rpb25EaWRDbG9zZSgpCiAgICAgcGxhdGZvcm1JbnZhbGlkYXRlKCk7CiAK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogCiAg
ICAgICAgIEFTU0VSVChtX3Nob3VsZFdhaXRGb3JTeW5jUmVwbGllcyk7CiAgICAgICAgIG1fc2hv
dWxkV2FpdEZvclN5bmNSZXBsaWVzID0gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcg
QEAKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvV29ya1F1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0yOTgs
NyArMjk5LDcgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBTeW5jTWVzc2FnZVN0YXRlOwogICAgIGZy
aWVuZCBjbGFzcyBTeW5jTWVzc2FnZVN0YXRlOwogCi0gICAgTXV0ZXggbV9zeW5jUmVwbHlTdGF0
ZU11dGV4OworICAgIExvY2sgbV9zeW5jUmVwbHlTdGF0ZU11dGV4OwogICAgIGJvb2wgbV9zaG91
bGRXYWl0Rm9yU3luY1JlcGxpZXM7CiAgICAgVmVjdG9yPFBlbmRpbmdTeW5jUmVwbHk+IG1fcGVu
ZGluZ1N5bmNSZXBsaWVzOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY5MCw3ICs2OTAsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6
YXBwZW5kVXBkCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcmVuZGVyUXVldWVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9yZW5kZXJRdWV1ZU11dGV4KTsKICAgICBtX3JlbmRlclF1ZXVlLmFwcGVu
ZChXVEY6Om1vdmUoZnVuY3Rpb24pKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgog
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRl
IDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0xNDUsNyAr
MTQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFJlbmRlciBxdWV1ZSBjYW4gYmUgYWNjZXNzZWQg
b255IGZyb20gbWFpbiB0aHJlYWQgb3IgdXBkYXRlUGFpbnROb2RlIGNhbGwgc3RhY2shCiAgICAg
VmVjdG9yPHN0ZDo6ZnVuY3Rpb248dm9pZCgpPj4gbV9yZW5kZXJRdWV1ZTsKLSAgICBNdXRleCBt
X3JlbmRlclF1ZXVlTXV0ZXg7CisgICAgTG9jayBtX3JlbmRlclF1ZXVlTXV0ZXg7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVyOwog
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhy
ZWFkZWRDb21wb3NpdG9yLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIFRocmVh
ZGVkQ29tcG9zaXRvcjo6Y3JlYXRlQ29tcG9zaXRpCiAgICAgaWYgKG1fdGhyZWFkSWRlbnRpZmll
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW5pdGlhbGl6
ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFs
aXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKICAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVh
dGVUaHJlYWQoY29tcG9zaXRpbmdUaHJlYWRFbnRyeSwgdGhpcywgIldlYkNvcmU6IFRocmVhZGVk
Q29tcG9zaXRvciIpOwogCiAgICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbi53YWl0KG1f
aW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CkBAIC0zMDQsNyArMzA0LDcgQEAgdm9p
ZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUNvbXBvc2l0aQogdm9pZCBUaHJlYWRlZENvbXBv
c2l0b3I6OnJ1bkNvbXBvc2l0aW5nVGhyZWFkKCkKIHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogCiAg
ICAgICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wID0gc3RkOjptYWtlX3VuaXF1ZTxDb21wb3NpdGlu
Z1J1bkxvb3A+KFsmXSB7CiAgICAgICAgICAgICByZW5kZXJMYXllclRyZWUoKTsKQEAgLTMyMSw3
ICszMjEsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cnVuQ29tcG9zaXRpbmdUCiAgICAg
bV9zY2VuZS0+cHVyZ2VHTFJlc291cmNlcygpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgICAg
IG1fY29tcG9zaXRpbmdSdW5Mb29wID0gbnVsbHB0cjsKICAgICAgICAgbV9jb250ZXh0ID0gbnVs
bHB0cjsKICAgICAgICAgbV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uLnNpZ25hbCgpOwpAQCAt
MzMyLDcgKzMzMiw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpydW5Db21wb3NpdGluZ1QK
IAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnRlcm1pbmF0ZUNvbXBvc2l0aW5nVGhyZWFkKCkK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11
dGV4KTsKIAogICAgIG1fc2NlbmUtPmRldGFjaCgpOwogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29w
LT5ydW5Mb29wKCkuc3RvcCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsOSArMTExLDkg
QEAgcHJpdmF0ZToKIAogICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJZGVudGlmaWVyOwog
ICAgIFRocmVhZENvbmRpdGlvbiBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uOwotICAgIE11
dGV4IG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKKyAgICBMb2NrIG1faW5pdGlh
bGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKICAgICBUaHJlYWRDb25kaXRpb24gbV90ZXJtaW5h
dGVSdW5Mb29wQ29uZGl0aW9uOwotICAgIE11dGV4IG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlv
bk11dGV4OworICAgIExvY2sgbV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXg7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3
b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAyLDExICsxMDIsMTEgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3JlZ2lzdGVyZWRTY2hlbWVzOwotICAgIE11dGV4
IG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleDsKKyAgICBMb2NrIG1fcmVnaXN0ZXJlZFNjaGVtZXNN
dXRleDsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmV0YWluUHRyPFdLQ3VzdG9t
UHJvdG9jb2w+PiBDdXN0b21Qcm90b2NvbE1hcDsKICAgICBDdXN0b21Qcm90b2NvbE1hcCBtX2N1
c3RvbVByb3RvY29sTWFwOwotICAgIE11dGV4IG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleDsKKyAg
ICBMb2NrIG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleDsKICAgICAKICAgICAvLyBXS0N1c3RvbVBy
b3RvY29sIG9iamVjdHMgY2FuIGJlIHJlbW92ZWQgZnJvbSB0aGUgbV9jdXN0b21Qcm90b2NvbE1h
cCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCiAgICAgLy8gV2UgcmV0dXJuIGEgUmV0YWluUHRyIGhl
cmUgYmVjYXVzZSBpdCBpcyB1bnNhZmUgdG8gcmV0dXJuIGEgcmF3IHBvaW50ZXIgc2luY2UgdGhl
IG9iamVjdCBtaWdodCBpbW1lZGlhdGVseSBiZSBkZXN0cm95ZWQgZnJvbSBhIGRpZmZlcmVudCB0
aHJlYWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVBy
b3RvY29sTWFuYWdlckNvY29hLm1tCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2NSwyOCArMTY1LDI4IEBAIHZvaWQgQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyOjppbml0aWFsaXplKGMKIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyOjphZGRDdXN0b21Qcm90b2NvbChXS0N1c3RvbVByb3RvY29sICpjdXN0b21Qcm90b2NvbCkK
IHsKICAgICBBU1NFUlQoY3VzdG9tUHJvdG9jb2wpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY3VzdG9t
UHJvdG9jb2xNYXBNdXRleCk7CiAgICAgbV9jdXN0b21Qcm90b2NvbE1hcC5hZGQoY3VzdG9tUHJv
dG9jb2wuY3VzdG9tUHJvdG9jb2xJRCwgY3VzdG9tUHJvdG9jb2wpOwogfQogCiB2b2lkIEN1c3Rv
bVByb3RvY29sTWFuYWdlcjo6cmVtb3ZlQ3VzdG9tUHJvdG9jb2woV0tDdXN0b21Qcm90b2NvbCAq
Y3VzdG9tUHJvdG9jb2wpCiB7CiAgICAgQVNTRVJUKGN1c3RvbVByb3RvY29sKTsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOwogICAgIG1fY3VzdG9tUHJvdG9jb2xN
YXAucmVtb3ZlKGN1c3RvbVByb3RvY29sLmN1c3RvbVByb3RvY29sSUQpOwogfQogICAgIAogdm9p
ZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnJlZ2lzdGVyU2NoZW1lKGNvbnN0IFN0cmluZyYgc2No
ZW1lKQogewogICAgIEFTU0VSVCghc2NoZW1lLmlzTnVsbCgpKTsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgpOwogICAgIG1fcmVnaXN0ZXJlZFNjaGVtZXMuYWRkKHNj
aGVtZSk7CiB9CiAgICAgCiB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6dW5yZWdpc3RlclNj
aGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKICAgICBBU1NFUlQoIXNjaGVtZS5pc051bGwo
KSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKICAgICBtX3Jl
Z2lzdGVyZWRTY2hlbWVzLnJlbW92ZShzY2hlbWUpOwogfQogCkBAIC0xOTUsNyArMTk1LDcgQEAg
Ym9vbCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnN1cHBvcnRzU2NoZQogICAgIGlmIChzY2hlbWUu
aXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcmVn
aXN0ZXJlZFNjaGVtZXNNdXRleCk7CiAgICAgcmV0dXJuIG1fcmVnaXN0ZXJlZFNjaGVtZXMuY29u
dGFpbnMoc2NoZW1lKTsKIH0KIApAQCAtMjc1LDcgKzI3NSw3IEBAICAgICBpZiAoIXByb3RvY29s
KQogCiBSZXRhaW5QdHI8V0tDdXN0b21Qcm90b2NvbD4gQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpw
cm90b2NvbEZvcklEKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKIAogICAgIEN1c3RvbVByb3RvY29sTWFwOjpj
b25zdF9pdGVyYXRvciBpdCA9IG1fY3VzdG9tUHJvdG9jb2xNYXAuZmluZChjdXN0b21Qcm90b2Nv
bElEKTsKICAgICBpZiAoaXQgPT0gbV9jdXN0b21Qcm90b2NvbE1hcC5lbmQoKSkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRl
cnMvU2VjY29tcEJyb2tlci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogCiAgICAgaW50IG1fc29ja2V0OwogCi0g
ICAgbXV0YWJsZSBNdXRleCBtX3NvY2tldExvY2s7CisgICAgbXV0YWJsZSBMb2NrIG1fc29ja2V0
TG9jazsKIAogICAgIC8vIE1hcHMgZmlsZXMgdGhhdCBtYXkgYmUgcmVhZCBieSBtYWxsb2MoKSB0
byBvcGVuIGZpbGUgZGVzY3JpcHRvcnMuCiAgICAgSGFzaE1hcDxTdHJpbmcsIGludD4gbV9maWxl
RGVzY3JpcHRvckNhY2hlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
ci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04Niw3ICs4Niw3IEBAIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKiBQbHVnaW5Qcm9jZXNzQ28K
ICAgICBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQocGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24pOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90b2tlbnNBbmRD
b25uZWN0aW9uc011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90b2tlbnNBbmRD
b25uZWN0aW9uc011dGV4KTsKICAgICAgICAgQVNTRVJUKCFtX3Rva2Vuc0FuZENvbm5lY3Rpb25z
LmNvbnRhaW5zKHBsdWdpblByb2Nlc3NUb2tlbikpOwogCiAgICAgICAgIG1fdG9rZW5zQW5kQ29u
bmVjdGlvbnMuc2V0KHBsdWdpblByb2Nlc3NUb2tlbiwgcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24t
PmNvbm5lY3Rpb24oKSk7CkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXI6OnJlbQogICAgIEFTU0VSVCh2ZWN0b3JJbmRleCAhPSBub3RGb3VuZCk7
CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rp
b25zTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rp
b25zTXV0ZXgpOwogICAgICAgICBBU1NFUlQobV90b2tlbnNBbmRDb25uZWN0aW9ucy5jb250YWlu
cyhwbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi0+cGx1Z2luUHJvY2Vzc1Rva2VuKCkpKTsKICAgICAg
ICAgCiAgICAgICAgIG1fdG9rZW5zQW5kQ29ubmVjdGlvbnMucmVtb3ZlKHBsdWdpblByb2Nlc3ND
b25uZWN0aW9uLT5wbHVnaW5Qcm9jZXNzVG9rZW4oKSk7CkBAIC0xMTIsNyArMTEyLDcgQEAgdm9p
ZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OnJlbQogCiB2b2lkIFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlcjo6cGx1Z2luUHJvY2Vzc0NyYXNoZWQodWludDY0X3QgcGx1Z2lu
UHJvY2Vzc1Rva2VuKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5l
Y3Rpb25zTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdG9rZW5zQW5kQ29ubmVjdGlv
bnNNdXRleCk7CiAgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uID0gbV90b2tlbnNBbmRD
b25uZWN0aW9ucy5nZXQocGx1Z2luUHJvY2Vzc1Rva2VuKTsKIAogICAgIC8vIEl0J3MgT0sgZm9y
IGNvbm5lY3Rpb24gdG8gYmUgbnVsbCBoZXJlOyBpdCB3aWxsIGhhcHBlbiBpZiB0aGlzIHdlYiBw
cm9jZXNzIGRvZXNuJ3Qga25vdwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8UmVmUHRyPFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uPj4gbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbnM7CiAKLSAgICBNdXRleCBtX3Rv
a2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXg7CisgICAgTG9jayBtX3Rva2Vuc0FuZENvbm5lY3Rpb25z
TXV0ZXg7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4+IG1f
dG9rZW5zQW5kQ29ubmVjdGlvbnM7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2aXNpb24gMTg4
NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAgRXZlbnREaXNwYXRjaGVyOjp+
RXZlbnREaXNwYXRjaGVyKCkKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogdm9pZCBFdmVu
dERpc3BhdGNoZXI6OmFkZFNjcm9sbGluZ1RyZWVGb3JQYWdlKFdlYlBhZ2UqIHdlYlBhZ2UpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKIAogICAgIEFTU0VSVCh3ZWJQ
YWdlLT5jb3JlUGFnZSgpLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKTsKICAgICBBU1NFUlQoIW1f
c2Nyb2xsaW5nVHJlZXMuY29udGFpbnMod2ViUGFnZS0+cGFnZUlEKCkpKTsKQEAgLTc2LDcgKzc2
LDcgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OmFkZFNjcm9sbGluZ1RyZWVGbwogCiB2b2lkIEV2
ZW50RGlzcGF0Y2hlcjo6cmVtb3ZlU2Nyb2xsaW5nVHJlZUZvclBhZ2UoV2ViUGFnZSogd2ViUGFn
ZSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOwogICAgIEFTU0VSVCht
X3Njcm9sbGluZ1RyZWVzLmNvbnRhaW5zKHdlYlBhZ2UtPnBhZ2VJRCgpKSk7CiAKICAgICBtX3Nj
cm9sbGluZ1RyZWVzLnJlbW92ZSh3ZWJQYWdlLT5wYWdlSUQoKSk7CkBAIC0xMzIsNyArMTMyLDcg
QEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQodWludDY0XwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Njcm9s
bGluZ1RyZWVzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNN
dXRleCk7CiAgICAgaWYgKFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHNjcm9sbGluZ1Ry
ZWUgPSBtX3Njcm9sbGluZ1RyZWVzLmdldChwYWdlSUQpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBJ
dCdzIHByZXR0eSBob3JyaWJsZSB0aGF0IHdlJ3JlIHVwZGF0aW5nIHRoZSBiYWNrL2ZvcndhcmQg
c3RhdGUgaGVyZS4KICAgICAgICAgLy8gV2ViQ29yZSBzaG91bGQgYWx3YXlzIGtub3cgdGhlIGN1
cnJlbnQgc3RhdGUgYW5kIGtub3cgd2hlbiBpdCBjaGFuZ2VzIHNvIHRoZQpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAko
cmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6
CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJ
TkcpCi0gICAgTXV0ZXggbV9zY3JvbGxpbmdUcmVlc011dGV4OworICAgIExvY2sgbV9zY3JvbGxp
bmdUcmVlc011dGV4OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpUaHJl
YWRlZFNjcm9sbGluZ1RyZWU+PiBtX3Njcm9sbGluZ1RyZWVzOwogI2VuZGlmCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OldoZWVsRXZlbnREZWx0YVRyYWNrZXI+IG1fcmVjZW50V2hlZWxF
dmVudERlbHRhVHJhY2tlcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9X
ZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRT
b3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAsNiArMjAsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFNvdXBSZXF1ZXN0SW5wdXRT
dHJlYW0uaCIKIAorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIApAQCAtNDEsNyArNDIsNyBAQCBz
dHJ1Y3QgX1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Qcml2CiAgICAgdWludDY0X3QgYnl0
ZXNSZWNlaXZlZDsKICAgICB1aW50NjRfdCBieXRlc1JlYWQ7CiAKLSAgICBNdXRleCByZWFkTG9j
azsKKyAgICBMb2NrIHJlYWRMb2NrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1JlYWREYXRh
PiBwZW5kaW5nQXN5bmNSZWFkOwogfTsKIApAQCAtODQsNyArODUsNyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtCiAgICAgV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0
cmVhbSogc3RyZWFtID0gV0VCS0lUX1NPVVBfUkVRVUVTVF9JTlBVVF9TVFJFQU0oaW5wdXRTdHJl
YW0pOwogICAgIEdSZWZQdHI8R1Rhc2s+IHRhc2sgPSBhZG9wdEdSZWYoZ190YXNrX25ldyhzdHJl
YW0sIGNhbmNlbGxhYmxlLCBjYWxsYmFjaywgdXNlckRhdGEpKTsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihzdHJlYW0tPnByaXYtPnJlYWRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihz
dHJlYW0tPnByaXYtPnJlYWRMb2NrKTsKIAogICAgIGlmICghd2Via2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbUhhc0RhdGFUb1JlYWQoc3RyZWFtKSAmJiAhd2Via2l0U291cFJlcXVlc3RJbnB1dFN0
cmVhbUlzV2FpdGluZ0ZvckRhdGEoc3RyZWFtKSkgewogICAgICAgICBnX3Rhc2tfcmV0dXJuX2lu
dCh0YXNrLmdldCgpLCAwKTsKQEAgLTE0Myw3ICsxNDQsNyBAQCB2b2lkIHdlYmtpdFNvdXBSZXF1
ZXN0SW5wdXRTdHJlYW1BZGREYXRhCiAgICAgaWYgKHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJl
YW1GaW5pc2hlZChzdHJlYW0pKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIoc3RyZWFtLT5wcml2LT5yZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIoc3Ry
ZWFtLT5wcml2LT5yZWFkTG9jayk7CiAKICAgICBpZiAoZGF0YUxlbmd0aCkgewogICAgICAgICAv
LyBUcnVuY2F0ZSB0aGUgZGF0YUxlbmd0aCB0byB0aGUgY29udGVudExlbmd0aCBpZiBpdCdzIGtu
b3duLgpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTUtMDgtMTcgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5p
bmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6c3luY1RpbWVyRmlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjptYXJrSW1wb3J0ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpibG9ja1VudGlsSW1wb3J0Q29tcGxldGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtU3luYyk6CisgICAgICAg
ICogU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaDoKKyAgICAgICAgKiBTdG9yYWdlL1N0b3JhZ2VU
cmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzZXREYXRhYmFz
ZURpcmVjdG9yeVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmZpbmlz
aGVkSW1wb3J0aW5nT3JpZ2luSWRlbnRpZmllcnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFn
ZVRyYWNrZXI6OnN5bmNJbXBvcnRPcmlnaW5JZGVudGlmaWVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTdG9yYWdlVHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnNldE9yaWdpbkRldGFpbHMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWxzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpvcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VUcmFja2VyOjpkZWxldGVBbGxPcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlQWxsT3JpZ2lucyk6CisgICAgICAgIChXZWJDb3JlOjpT
dG9yYWdlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VU
cmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFj
a2VyOjpjYW5EZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6
OmNhbmNlbERlbGV0aW5nT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2Vy
OjpkaXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIu
aDoKKwogMjAxNS0wOC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtXaW4gQ01ha2VdIEFsbG93IFdlYktpdExpYnJhcmllcyBkaXJlY3Rv
cnkgdG8gYmUgc2V0IGZyb20gdGhlIGNvbW1hbmQgbGluZQpJbmRleDogU291cmNlL1dlYktpdC9T
dG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9T
dG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9X
ZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQs
NyArMTY0LDcgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnN5bmNUaW1lckZpcmVkKCkKIAogICAg
IGJvb2wgcGFydGlhbFN5bmMgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7
CiAKICAgICAgICAgLy8gRG8gbm90IHNjaGVkdWxlIGFub3RoZXIgc3luYyBpZiB3ZSdyZSBzdGls
bCB0cnlpbmcgdG8gY29tcGxldGUgdGhlCiAgICAgICAgIC8vIHByZXZpb3VzIG9uZS4gQnV0LCBp
ZiB3ZSdyZSBzaHV0dGluZyBkb3duLCBzY2hlZHVsZSBpdCBhbnl3YXkuCkBAIC0zNTIsOSArMzUy
LDkgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnBlcmZvcm1JbXBvcnQoKQogCiB2b2lkIFN0b3Jh
Z2VBcmVhU3luYzo6bWFya0ltcG9ydGVkKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9p
bXBvcnRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2ltcG9ydExvY2spOwogICAgIG1f
aW1wb3J0Q29tcGxldGUgPSB0cnVlOwotICAgIG1faW1wb3J0Q29uZGl0aW9uLnNpZ25hbCgpOwor
ICAgIG1faW1wb3J0Q29uZGl0aW9uLm5vdGlmeU9uZSgpOwogfQogCiAvLyBGSVhNRTogSW4gdGhl
IGZ1dHVyZSwgd2Ugc2hvdWxkIGFsbG93IHVzZSBvZiBTdG9yYWdlQXJlYXMgd2hpbGUgaXQncyBp
bXBvcnRpbmcgKHdoZW4gc2FmZSB0byBkbyBzbykuCkBAIC0zNzIsNyArMzcyLDcgQEAgdm9pZCBT
dG9yYWdlQXJlYVN5bmM6OmJsb2NrVW50aWxJbXBvcnRDbwogICAgIGlmICghbV9zdG9yYWdlQXJl
YSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW1wb3J0TG9j
ayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbXBvcnRMb2NrKTsKICAgICB3aGlsZSAoIW1f
aW1wb3J0Q29tcGxldGUpCiAgICAgICAgIG1faW1wb3J0Q29uZGl0aW9uLndhaXQobV9pbXBvcnRM
b2NrKTsKICAgICBtX3N0b3JhZ2VBcmVhID0gbnVsbHB0cjsKQEAgLTQ2Nyw3ICs0NjcsNyBAQCB2
b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMoKQogICAgIGJvb2wgY2xlYXJJdGVtczsK
ICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBpdGVtczsKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9z
eW5jTG9jayk7CiAKICAgICAgICAgQVNTRVJUKG1fc3luY1NjaGVkdWxlZCk7CiAKQEAgLTQ4Miw3
ICs0ODIsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMoKQogICAgIHN5bmMo
Y2xlYXJJdGVtcywgaXRlbXMpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zeW5jTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAg
ICAgICBtX3N5bmNJblByb2dyZXNzID0gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2Uv
V2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlRGF0YWJhc2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC04
NSw3ICs4Niw3IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBTdHJpbmcgbV9kYXRhYmFzZUlkZW50
aWZpZXI7CiAKLSAgICBNdXRleCBtX3N5bmNMb2NrOworICAgIExvY2sgbV9zeW5jTG9jazsKICAg
ICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2l0ZW1zUGVuZGluZ1N5bmM7CiAgICAgYm9vbCBt
X2NsZWFySXRlbXNXaGlsZVN5bmNpbmc7CiAgICAgYm9vbCBtX3N5bmNTY2hlZHVsZWQ7CkBAIC05
NCw4ICs5NSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fc3luY0Nsb3NlRGF0YWJhc2U7CiAK
LSAgICBtdXRhYmxlIE11dGV4IG1faW1wb3J0TG9jazsKLSAgICBUaHJlYWRDb25kaXRpb24gbV9p
bXBvcnRDb25kaXRpb247CisgICAgbXV0YWJsZSBMb2NrIG1faW1wb3J0TG9jazsKKyAgICBDb25k
aXRpb24gbV9pbXBvcnRDb25kaXRpb247CiAgICAgYm9vbCBtX2ltcG9ydENvbXBsZXRlOwogICAg
IHZvaWQgbWFya0ltcG9ydGVkKCk7CiAgICAgdm9pZCBtaWdyYXRlSXRlbVRhYmxlSWZOZWVkZWQo
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAkocmV2aXNp
b24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIFN0b3JhZ2VUcmFja2VyOjpTdG9yYWdl
VHJhY2tlcihjb25zdCBTdHIKIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgp
OwogCiAgICAgaWYgKG1fZGF0YWJhc2UuaXNPcGVuKCkpCiAgICAgICAgIG1fZGF0YWJhc2UuY2xv
c2UoKTsKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzZXREYXRhYmFz
ZURpcmVjdG9yCiAgICAgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aCA9IHBhdGguaXNvbGF0ZWRDb3B5
KCk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAg
IG1fb3JpZ2luU2V0LmNsZWFyKCk7CiAgICAgfQogCkBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBT
dG9yYWdlVHJhY2tlcjo6aW1wb3J0T3JpZ2luSWRlbnRpZgogCiB2b2lkIFN0b3JhZ2VUcmFja2Vy
OjpmaW5pc2hlZEltcG9ydGluZ09yaWdpbklkZW50aWZpZXJzKCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFi
YXNlTXV0ZXgpOwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPmRpZEZpbmlz
aExvYWRpbmdPcmlnaW5zKCk7CiB9CkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBTdG9yYWdlVHJh
Y2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwog
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKIAogICAgICAgICAvLyBE
b24ndCBmb3JjZSBjcmVhdGlvbiBvZiBTdG9yYWdlVHJhY2tlcidzIGRiIGp1c3QgYmVjYXVzZSBh
IHRyYWNrZXIKICAgICAgICAgLy8gd2FzIGluaXRpYWxpemVkLiBJdCB3aWxsIGJlIGNyZWF0ZWQg
aWYgbG9jYWwgc3RvcmFnZSBkYnMgYXJlIGZvdW5kCkBAIC0yMTcsNyArMjE3LDcgQEAgdm9pZCBT
dG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgICAgICAgICAgaW50IHJlc3Vs
dDsKICAgICAgICAgICAgIAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIE11dGV4TG9j
a2VyIGxvY2tPcmlnaW5zKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICAgICAgICAgIExvY2tI
b2xkZXIgbG9ja09yaWdpbnMobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgICAgICAgICAgd2hp
bGUgKChyZXN1bHQgPSBzdGF0ZW1lbnQuc3RlcCgpKSA9PSBTUUxJVEVfUk9XKQogICAgICAgICAg
ICAgICAgICAgICBtX29yaWdpblNldC5hZGQoc3RhdGVtZW50LmdldENvbHVtblRleHQoMCkuaXNv
bGF0ZWRDb3B5KCkpOwogICAgICAgICAgICAgfQpAQCAtMjMyLDEwICsyMzIsMTAgQEAgdm9pZCBT
dG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgIHN5bmNGaWxlU3lzdGVtQW5k
VHJhY2tlckRhdGFiYXNlKCk7CiAgICAgCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50TXV0
ZXgpOwogCiAgICAgICAgIGlmIChtX2NsaWVudCkgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgICAgICBPcmlnaW5TZXQ6OmNvbnN0X2l0ZXJhdG9y
IGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOwogICAgICAgICAgICAgZm9yIChPcmlnaW5TZXQ6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gbV9vcmlnaW5TZXQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQog
ICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZE1vZGlmeU9yaWdpbigqaXQpOwpA
QCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVtQW5k
VHIKIAogICAgIFZlY3RvcjxTdHJpbmc+IHBhdGhzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
ZGF0YWJhc2VNdXRleCk7CiAgICAgICAgIHBhdGhzID0gbGlzdERpcmVjdG9yeShtX3N0b3JhZ2VE
aXJlY3RvcnlQYXRoLCAiKi5sb2NhbHN0b3JhZ2UiKTsKICAgICB9CiAKQEAgLTI2NSw3ICsyNjUs
NyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRmlsZVN5c3RlbUFuZFRyCiAgICAgLy8gZGVs
ZXRpb25zIGZyb20gZGlzayBhbmQgZnJvbSBtX29yaWdpblNldC4KICAgICBPcmlnaW5TZXQgb3Jp
Z2luU2V0Q29weTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNl
dE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAg
ICAgICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fb3JpZ2luU2V0LmJl
Z2luKCksIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAg
ICAgICBvcmlnaW5TZXRDb3B5LmFkZCgoKml0KS5pc29sYXRlZENvcHkoKSk7CiAgICAgfQpAQCAt
MzA2LDcgKzMwNiw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnNldE9yaWdpbkRldGFpbHMoY28K
ICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9v
cmlnaW5TZXRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0
ZXgpOwogCiAgICAgICAgIGlmIChtX29yaWdpblNldC5jb250YWlucyhvcmlnaW5JZGVudGlmaWVy
KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTMzNyw3ICszMzcsNyBAQCB2b2lkIFN0b3JhZ2VU
cmFja2VyOjpzeW5jU2V0T3JpZ2luRGV0YWlsCiAKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJv
Z3Jlc3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNl
TXV0ZXgpOwogCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZSh0cnVlKTsKICAgICAKQEAgLTM1Nywx
MyArMzU3LDEzIEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWwKICAg
ICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gZXN0YWJsaXNoIG9yaWdpbiAnJXMnIGluIHRoZSB0
cmFja2VyIiwgb3JpZ2luSWRlbnRpZmllci5hc2NpaSgpLmRhdGEoKSk7CiAKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgIGlmICghbV9vcmlnaW5TZXQu
Y29udGFpbnMob3JpZ2luSWRlbnRpZmllcikpCiAgICAgICAgICAgICBtX29yaWdpblNldC5hZGQo
b3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50
TXV0ZXgpOwogICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlz
cGF0Y2hEaWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpAQCAtMzc2LDcg
KzM3Niw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6Om9yaWdpbnMoVmVjdG9yPFJlZlAKICAgICBp
ZiAoIW1faXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX29yaWdpblNldE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11
dGV4KTsKIAogICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fb3JpZ2lu
U2V0LmJlZ2luKCksIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlk
ZW50aWZpZXIoKml0KSk7CkBAIC0zOTIsNyArMzkyLDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6
ZGVsZXRlQWxsT3JpZ2lucygpCiAgICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgd2lsbERlbGV0ZUFsbE9yaWdpbnMoKTsK
ICAgICAgICAgbV9vcmlnaW5TZXQuY2xlYXIoKTsKICAgICB9CkBAIC00MTcsNyArNDE3LDcgQEAg
dm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9yaWdpbgogCiAgICAgU1FMaXRlVHJh
bnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogICAgIAot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShm
YWxzZSk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNDM3LDcgKzQzNyw3IEBA
IHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVBbGxPcmlnaW4KICAgICAgICAgZGVsZXRl
RmlsZShzdGF0ZW1lbnQuZ2V0Q29sdW1uVGV4dCgxKSk7CiAKICAgICAgICAgewotICAgICAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgpOworICAgICAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9jbGllbnRNdXRleCk7CiAgICAgICAgICAgICBpZiAobV9jbGllbnQpCiAg
ICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkTW9kaWZ5T3JpZ2luKHN0YXRlbWVu
dC5nZXRDb2x1bW5UZXh0KDApKTsKICAgICAgICAgfQpAQCAtNDk5LDcgKzQ5OSw3IEBAIHZvaWQg
U3RvcmFnZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cmkKICAgICBTdHJpbmcgb3JpZ2luSWQg
PSBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpOwogICAgIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgd2lsbERlbGV0ZU9yaWdpbihvcmlnaW5J
ZCk7CiAgICAgICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5JZCk7CiAgICAgfQpAQCAtNTE2
LDcgKzUxNiw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4oY28KIAog
ICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291
bnRlcjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgCiAgICAgaWYgKCFjYW5EZWxl
dGVPcmlnaW4ob3JpZ2luSWRlbnRpZmllcikpIHsKICAgICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0
ZWQgdG8gZGVsZXRlIG9yaWdpbiAnJXMnIHdoaWxlIGl0IHdhcyBiZWluZyBjcmVhdGVkXG4iLCBv
cmlnaW5JZGVudGlmaWVyLmFzY2lpKCkuZGF0YSgpKTsKQEAgLTU0OSw3ICs1NDksNyBAQCB2b2lk
IFN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKGNvCiAgICAgCiAgICAgYm9vbCBzaG91
bGREZWxldGVUcmFja2VyRmlsZXMgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9v
cmlnaW5TZXRNdXRleCk7CiAgICAgICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5JZGVudGlm
aWVyKTsKICAgICAgICAgc2hvdWxkRGVsZXRlVHJhY2tlckZpbGVzID0gbV9vcmlnaW5TZXQuaXNF
bXB0eSgpOwogICAgIH0KQEAgLTU2Niw3ICs1NjYsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpz
eW5jRGVsZXRlT3JpZ2luKGNvCiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50
TXV0ZXgpOwogICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlz
cGF0Y2hEaWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpAQCAtNTkyLDcg
KzU5Miw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OndpbGxEZWxldGVPcmlnaW4oY28KIGJvb2wg
U3RvcmFnZVRyYWNrZXI6OmNhbkRlbGV0ZU9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlTXV0ZXgudHJ5TG9jaygpKTsKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgcmV0dXJuIG1fb3JpZ2luc0JlaW5nRGVsZXRlZC5j
b250YWlucyhvcmlnaW5JZGVudGlmaWVyKTsKIH0KIApAQCAtNjAxLDkgKzYwMSw5IEBAIHZvaWQg
U3RvcmFnZVRyYWNrZXI6OmNhbmNlbERlbGV0aW5nT3JpZ2kKICAgICBpZiAoIW1faXNBY3RpdmUp
CiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICBpZiAoIW1fb3JpZ2luc0Jl
aW5nRGVsZXRlZC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBtX29yaWdpbnNCZWluZ0RlbGV0ZWQu
cmVtb3ZlKG9yaWdpbklkZW50aWZpZXIpOwogICAgIH0KQEAgLTY0Nyw3ICs2NDcsNyBAQCBsb25n
IGxvbmcgU3RvcmFnZVRyYWNrZXI6OmRpc2tVc2FnZUZvck9yCiAgICAgaWYgKCFtX2lzQWN0aXZl
KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNl
TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAKICAgICBT
dHJpbmcgcGF0aCA9IGRhdGFiYXNlUGF0aEZvck9yaWdpbihvcmlnaW4tPmRhdGFiYXNlSWRlbnRp
ZmllcigpKTsKICAgICBpZiAocGF0aC5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1N0
b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1N0b3Jh
Z2UvU3RvcmFnZVRyYWNrZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9T
dG9yYWdlL1N0b3JhZ2VUcmFja2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDE1ICs5NSwxNSBA
QCBwcml2YXRlOgogICAgIHZvaWQgc3luY0ltcG9ydE9yaWdpbklkZW50aWZpZXJzKCk7CiAKICAg
ICAvLyBNdXRleCBmb3IgbV9kYXRhYmFzZSBhbmQgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC4KLSAg
ICBNdXRleCBtX2RhdGFiYXNlTXV0ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlTXV0ZXg7CiAgICAg
U1FMaXRlRGF0YWJhc2UgbV9kYXRhYmFzZTsKICAgICBTdHJpbmcgbV9zdG9yYWdlRGlyZWN0b3J5
UGF0aDsKIAotICAgIE11dGV4IG1fY2xpZW50TXV0ZXg7CisgICAgTG9jayBtX2NsaWVudE11dGV4
OwogICAgIFN0b3JhZ2VUcmFja2VyQ2xpZW50KiBtX2NsaWVudDsKIAogICAgIC8vIEd1YXJkIGZv
ciBtX29yaWdpblNldCBhbmQgbV9vcmlnaW5zQmVpbmdEZWxldGVkLgotICAgIE11dGV4IG1fb3Jp
Z2luU2V0TXV0ZXg7CisgICAgTG9jayBtX29yaWdpblNldE11dGV4OwogICAgIHR5cGVkZWYgSGFz
aFNldDxTdHJpbmc+IE9yaWdpblNldDsKICAgICBPcmlnaW5TZXQgbV9vcmlnaW5TZXQ7CiAgICAg
T3JpZ2luU2V0IG1fb3JpZ2luc0JlaW5nRGVsZXRlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9z
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpN
dXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbToK
KyAgICAgICAgKFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2spOgorICAgICAgICAoLVtX
ZWJGaXhlZFBvc2l0aW9uQ29udGVudCBzY3JvbGxPclpvb21DaGFuZ2VkOl0pOgorICAgICAgICAo
LVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBvdmVyZmxvd1Njcm9sbFBvc2l0aW9uRm9yTGF5ZXI6
Y2hhbmdlZFRvOl0pOgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBzZXRWaWV3
cG9ydENvbnN0cmFpbmVkTGF5ZXJzOnN0aWNreUNvbnRhaW5lck1hcDpdKToKKyAgICAgICAgKC1b
V2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQgaGFzRml4ZWRPclN0aWNreVBvc2l0aW9uTGF5ZXJzXSk6
CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IG1pbmltdW1PZmZzZXRGcm9tRml4
ZWRQb3NpdGlvbkxheWVyc1RvQW5jaG9yRWRnZTpvZlJlY3Q6aW5MYXllcjpdKToKKwogMjAxNS0w
OC0xMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWZhY3RvciBhbmQgaW1wcm92ZSBUZXh0SW5kaWNhdG9yIHRvIHByZXBhcmUgZm9yIHRlc3RzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29u
dGVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbQkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dl
YktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0JKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDkgKzQ4LDkgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIAotc3RhdGljIE11dGV4JiBXZWJGaXhlZFBvc2l0aW9uQ29udGVu
dERhdGFMb2NrKCkKK3N0YXRpYyBMb2NrJiBXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2Nr
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIG11dGV4LCAoKSk7
CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xMDEsNyArMTAxLDcgQEAgLSAodm9pZClkZWFs
bG9jCiAKIC0gKHZvaWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dSZWN0KXBvc2l0aW9uZWRPYmpl
Y3RzUmVjdAogewotICAgIE11dGV4TG9ja2VyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnRE
YXRhTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnRE
YXRhTG9jaygpKTsKIAogICAgIExheWVySW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gX3By
aXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5lbmQoKTsKICAgICBmb3IgKExheWVy
SW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFp
bmVkTGF5ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewpAQCAtMTQwLDcgKzE0MCw3IEBA
IC0gKHZvaWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dSZWN0KXBvc2kKIAogLSAodm9pZClvdmVy
Zmxvd1Njcm9sbFBvc2l0aW9uRm9yTGF5ZXI6KENBTGF5ZXIgKilzY3JvbGxMYXllciBjaGFuZ2Vk
VG86KENHUG9pbnQpc2Nyb2xsUG9zaXRpb24KIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZp
eGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZp
eGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAKICAgICBMYXllckluZm9NYXA6OmNvbnN0
X2l0ZXJhdG9yIGVuZCA9IF9wcml2YXRlLT5tX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuZW5k
KCk7CiAgICAgZm9yIChMYXllckluZm9NYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gX3ByaXZhdGUt
Pm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsK
QEAgLTE3Myw3ICsxNzMsNyBAQCAtICh2b2lkKWRpZEZpbmlzaFNjcm9sbGluZ09yWm9vbWluZwog
CiAtICh2b2lkKXNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6KFdURjo6SGFzaE1hcDxDQUxh
eWVyICosIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpWaWV3cG9ydENvbnN0cmFpbnRzPj4mKWxh
eWVyTWFwIHN0aWNreUNvbnRhaW5lck1hcDooV1RGOjpIYXNoTWFwPENBTGF5ZXIqLCBDQUxheWVy
Kj4mKXN0aWNreUNvbnRhaW5lcnMKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZpeGVkUG9z
aXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZpeGVkUG9z
aXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAKICAgICBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0
cmFpbmVkTGF5ZXJzLmNsZWFyKCk7CiAKQEAgLTE5MCw3ICsxOTAsNyBAQCAtICh2b2lkKXNldFZp
ZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6KFdUCiAKIC0gKEJPT0wpaGFzRml4ZWRPclN0aWNreVBv
c2l0aW9uTGF5ZXJzCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29u
dGVudERhdGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29u
dGVudERhdGFMb2NrKCkpOwogICAgIHJldHVybiAhX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJh
aW5lZExheWVycy5pc0VtcHR5KCk7CiB9CiAKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgVmll
d3BvcnRDb25zdHJhaW50czo6QW5jaG9yRWRnZUZsCiAKIC0gKENHRmxvYXQpbWluaW11bU9mZnNl
dEZyb21GaXhlZFBvc2l0aW9uTGF5ZXJzVG9BbmNob3JFZGdlOihXZWJGaXhlZFBvc2l0aW9uQW5j
aG9yRWRnZSlhbmNob3JFZGdlIG9mUmVjdDooQ0dSZWN0KXJlY3QgaW5MYXllcjooQ0FMYXllciAq
KWxheWVyCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERh
dGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERh
dGFMb2NrKCkpOwogICAgIFZpZXdwb3J0Q29uc3RyYWludHM6OkFuY2hvckVkZ2VGbGFncyBhbmNo
b3JFZGdlRmxhZ3MgPSBhbmNob3JFZGdlRmxhZ3NGb3JBbmNob3JFZGdlKGFuY2hvckVkZ2UpOwog
ICAgIENHRmxvYXQgbWluaW11bU9mZnNldCA9IENHRkxPQVRfTUFYOwogICAgIExheWVySW5mb01h
cDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExh
eWVycy5lbmQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jawor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9yYWdl
L1dlYkRhdGFiYXNlTWFuYWdlci5tbToKKyAgICAgICAgKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRh
c2tJZGVudGlmaWVyTG9jayk6CisgICAgICAgICgrW1dlYkRhdGFiYXNlTWFuYWdlciBzdGFydEJh
Y2tncm91bmRUYXNrXSk6CisgICAgICAgICgrW1dlYkRhdGFiYXNlTWFuYWdlciBlbmRCYWNrZ3Jv
dW5kVGFza10pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBfc3luY2hyb25pemVDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdF0pOgorICAgICAg
ICAoLVtXZWJWaWV3IF9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdEluV2ViVGhyZWFk
OnN5bmNocm9uaXplOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zZXRDdXN0b21GaXhlZFBvc2l0
aW9uTGF5b3V0UmVjdDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZmV0Y2hDdXN0b21GaXhlZFBv
c2l0aW9uTGF5b3V0UmVjdDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisK
IDIwMTUtMDgtMTMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtD
b2NvYV0gRG93bmxvYWRzIGRvIG5vdCBzdGFydCBpZiBwb2xpY3kgZGVjaXNpb24gaXMgbWFkZSBh
c3luY2hyb25vdXNseQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFz
ZU1hbmFnZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJE
YXRhYmFzZU1hbmFnZXIubW0JKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYsOSAr
MjI2LDkgQEAgKyAodm9pZClzY2hlZHVsZUVtcHR5RGF0YWJhc2VSZW1vdmFsCiAjaWYgUExBVEZP
Uk0oSU9TKQogQGltcGxlbWVudGF0aW9uIFdlYkRhdGFiYXNlTWFuYWdlciAoV2ViRGF0YWJhc2VN
YW5hZ2VySW50ZXJuYWwpCiAKLXN0YXRpYyBNdXRleCYgdHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFz
a0lkZW50aWZpZXJMb2NrKCkKK3N0YXRpYyBMb2NrJiB0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNr
SWRlbnRpZmllckxvY2soKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChN
dXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9j
aywgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBA
QCArICh2b2lkKWRpZEZpbmlzaExhc3RUcmFuc2FjdGlvbgogCiArICh2b2lkKXN0YXJ0QmFja2dy
b3VuZFRhc2sKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRh
c2tJZGVudGlmaWVyTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rpb25CYWNr
Z3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOwogCiAgICAgLy8gSWYgdGhlcmUncyBhbHJlYWR5
IGFuIGV4aXN0aW5nIGJhY2tncm91bmQgdGFzayBnb2luZyBvbiwgdGhlcmUncyBubyBuZWVkIHRv
IHN0YXJ0IGEgbmV3IG9uZS4KICAgICBpZiAoZ2V0VHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lk
ZW50aWZpZXIoKSAhPSBpbnZhbGlkV2ViQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyKCkpCkBAIC0y
NzUsNyArMjc1LDcgQEAgKyAodm9pZClzdGFydEJhY2tncm91bmRUYXNrCiAKICsgKHZvaWQpZW5k
QmFja2dyb3VuZFRhc2sKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKHRyYW5zYWN0aW9uQmFja2dy
b3VuZFRhc2tJZGVudGlmaWVyTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rp
b25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOwogCiAgICAgLy8gSXQgaXMgcG9zc2li
bGUgdGhhdCB3ZSB3ZXJlIHVuYWJsZSB0byBzdGFydCB0aGUgYmFja2dyb3VuZCB0YXNrIHdoZW4g
dGhlIGZpcnN0IHRyYW5zYWN0aW9uIGJlZ2FuLgogICAgIC8vIERvbid0IHRyeSB0byBlbmQgdGhl
IHRhc2sgaW4gdGhhdCBjYXNlLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNjMyLDcgKzM2MzIsNyBAQCAtICh2b2lkKV9zeW5jaHJv
bml6ZUN1c3RvbUZpeGVkUG9zaXRpb25MCiAKICAgICBJbnRSZWN0IG5ld1JlY3Q7CiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9u
TGF5b3V0UmVjdE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoX3ByaXZhdGUtPnBl
bmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKICAgICAgICAgaWYgKENHUmVjdElz
TnVsbChfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgbmV3UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoX3ByaXZhdGUt
PnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCk7CkBAIC0zNjQ2LDcgKzM2NDYsNyBAQCAt
ICh2b2lkKV9zeW5jaHJvbml6ZUN1c3RvbUZpeGVkUG9zaXRpb25MCiAtICh2b2lkKV9zZXRDdXN0
b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdEluV2ViVGhyZWFkOihDR1JlY3QpcmVjdCBzeW5jaHJv
bml6ZTooQk9PTClzeW5jaHJvbml6ZQogewogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91
dFJlY3RNdXRleCk7CiAgICAgICAgIF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91
dFJlY3QgPSByZWN0OwogICAgIH0KICAgICBpZiAoIXN5bmNocm9uaXplKQpAQCAtMzY2MCw3ICsz
NjYwLDcgQEAgLSAodm9pZClfc2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlYwogewogICAg
IEFTU0VSVChXZWJUaHJlYWRJc0xvY2tlZCgpKTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25M
YXlvdXRSZWN0TXV0ZXgpOwogICAgICAgICBfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25M
YXlvdXRSZWN0ID0gcmVjdDsKICAgICB9CiAgICAgW3NlbGYgX3N5bmNocm9uaXplQ3VzdG9tRml4
ZWRQb3NpdGlvbkxheW91dFJlY3RdOwpAQCAtMzY2OCw3ICszNjY4LDcgQEAgLSAodm9pZClfc2V0
Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlYwogCiAtIChCT09MKV9mZXRjaEN1c3RvbUZpeGVk
UG9zaXRpb25MYXlvdXRSZWN0OihOU1JlY3QqKXJlY3QKIHsKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0
TXV0ZXgpOwogICAgIGlmIChDR1JlY3RJc051bGwoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0
aW9uTGF5b3V0UmVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW1wb3J0IDx3dGYv
SGFzaE1hcC5oPgorI2ltcG9ydCA8d3RmL0xvY2suaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KICNpbXBvcnQgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAjaW1wb3J0IDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KQEAgLTI0OSw3ICsyNTAsNyBAQCBAaW50ZXJmYWNlIFdlYlZpZXdQcml2
YXRlIDogTlNPYmplY3QgewogICAgIENHU2l6ZSBmaXhlZExheW91dFNpemU7CiAgICAgQk9PTCBt
YWluVmlld0lzU2Nyb2xsaW5nT3Jab29taW5nOwogICAgIGludDMyX3QgZGlkRHJhd1RpbGVzOwot
ICAgIFdURjo6TXV0ZXggcGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXg7CisgICAg
V1RGOjpMb2NrIHBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4OwogICAgIENHUmVj
dCBwZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3Q7CiAjZW5kaWYKIApJbmRleDogU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNl
cyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hl
ZHVsZUNhbGwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6
cmVnaXN0ZXJQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlcjo6dW5yZWdpc3RlclBsdWdpbik6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5NYWluVGhy
ZWFkU2NoZWR1bGVyOjpkaXNwYXRjaENhbGxzRm9yUGx1Z2luKToKKyAgICAgICAgKiBQbHVnaW5z
L1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaDoKKyAgICAgICAgKiBXZWJJY29uRGF0YWJhc2Uu
Y3BwOgorICAgICAgICAoV2ViSWNvbkRhdGFiYXNlOjpkaWRSZW1vdmVBbGxJY29ucyk6CisgICAg
ICAgIChXZWJJY29uRGF0YWJhc2U6OmRpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMKToKKyAgICAg
ICAgKFdlYkljb25EYXRhYmFzZTo6ZGVsaXZlck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAqIFdl
Ykljb25EYXRhYmFzZS5oOgorICAgICAgICAqIFdlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHA6Cisg
ICAgICAgIChtYWluQnVuZGxlTG9jU3RyaW5ncyk6CisgICAgICAgIChmcmFtZXdvcmtMb2NTdHJp
bmdzTXV0ZXgpOgorICAgICAgICAoZmluZENhY2hlZFN0cmluZyk6CisgICAgICAgIChjYWNoZVN0
cmluZyk6CisKIDIwMTUtMDgtMTcgIFBlciBBcm5lIFZvbGxhbiAgPHBlYXZvQG91dGxvb2suY29t
PgogCiAgICAgICAgIFtXaW5DYWlyb10gQWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgZG9lcyBub3Qg
cmVzcGVjdCBkZXZpY2Ugc2NhbGUgZmFjdG9yLgpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2Vi
SWNvbkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJJY29u
RGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJJ
Y29uRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjAsMTQgKzMyMCwxNCBAQCBIQklU
TUFQIFdlYkljb25EYXRhYmFzZTo6Z2V0T3JDcmVhdGVEZWZhCiB2b2lkIFdlYkljb25EYXRhYmFz
ZTo6ZGlkUmVtb3ZlQWxsSWNvbnMoKQogewogICAgIC8vIFF1ZXVlaW5nIHRoZSBlbXB0eSBzdHJp
bmcgaXMgYSBzcGVjaWFsIHdheSBvZiBzYXlpbmcgInRoaXMgcXVldWVkIG5vdGlmaWNhdGlvbiBp
cyB0aGUgZGlkUmVtb3ZlQWxsSWNvbnMgbm90aWZpY2F0aW9uIgotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX25vdGlmaWNhdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25vdGlm
aWNhdGlvbk11dGV4KTsKICAgICBtX25vdGlmaWNhdGlvblF1ZXVlLmFwcGVuZChTdHJpbmcoKSk7
CiAgICAgc2NoZWR1bGVOb3RpZmljYXRpb25EZWxpdmVyeSgpOwogfQogCiB2b2lkIFdlYkljb25E
YXRhYmFzZTo6ZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgV1RGOjpTdHJpbmcmIHBh
Z2VVUkwpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbm90aWZpY2F0aW9uTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbm90aWZpY2F0aW9uTXV0ZXgpOwogICAgIG1fbm90aWZp
Y2F0aW9uUXVldWUuYXBwZW5kKHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNjaGVkdWxl
Tm90aWZpY2F0aW9uRGVsaXZlcnkoKTsKIH0KQEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lkIFdlYklj
b25EYXRhYmFzZTo6ZGVsaXZlck5vdGlmaWNhdGlvCiAKICAgICBWZWN0b3I8U3RyaW5nPiBxdWV1
ZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3NoYXJlZFdlYkljb25EYXRh
YmFzZS0+bV9ub3RpZmljYXRpb25NdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
c2hhcmVkV2ViSWNvbkRhdGFiYXNlLT5tX25vdGlmaWNhdGlvbk11dGV4KTsKICAgICAgICAgcXVl
dWUuc3dhcChtX3NoYXJlZFdlYkljb25EYXRhYmFzZS0+bV9ub3RpZmljYXRpb25RdWV1ZSk7CiAg
ICAgICAgIG1fc2hhcmVkV2ViSWNvbkRhdGFiYXNlLT5tX2RlbGl2ZXJ5UmVxdWVzdGVkID0gZmFs
c2U7CiAgICAgfQpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmgJKHJldmlzaW9u
IDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJvdGVjdGVkOgogICAgIEhhc2hNYXA8SW50U2l6
ZSwgSEJJVE1BUD4gbV9kZWZhdWx0SWNvbk1hcDsKICAgICBIYXNoTWFwPEludFNpemUsIEhCSVRN
QVA+IG1fc2hhcmVkSWNvbk1hcDsKIAotICAgIE11dGV4IG1fbm90aWZpY2F0aW9uTXV0ZXg7Cisg
ICAgTG9jayBtX25vdGlmaWNhdGlvbk11dGV4OwogICAgIFZlY3RvcjxTdHJpbmc+IG1fbm90aWZp
Y2F0aW9uUXVldWU7CiAgICAgdm9pZCBzY2hlZHVsZU5vdGlmaWNhdGlvbkRlbGl2ZXJ5KCk7CiAg
ICAgYm9vbCBtX2RlbGl2ZXJ5UmVxdWVzdGVkOwpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2Vi
TG9jYWxpemFibGVTdHJpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9X
ZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
S2l0L3dpbi9XZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw5
ICs0NCw5IEBAIFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRsZSBXZWJLaXRMb2NhbGkKIAogdHlw
ZWRlZiBIYXNoTWFwPFN0cmluZywgTG9jYWxpemVkU3RyaW5nKj4gTG9jYWxpemVkU3RyaW5nTWFw
OwogCi1zdGF0aWMgTXV0ZXgmIG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgoKQorc3RhdGljIExv
Y2smIG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgoKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoTG9jaywgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAg
LTU2LDkgKzU2LDkgQEAgc3RhdGljIExvY2FsaXplZFN0cmluZ01hcCYgbWFpbkJ1bmRsZUxvYwog
ICAgIHJldHVybiBtYXA7CiB9CiAKLXN0YXRpYyBNdXRleCYgZnJhbWV3b3JrTG9jU3RyaW5nc011
dGV4KCkKK3N0YXRpYyBMb2NrJiBmcmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgoKQogewotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgbXV0ZXgsICgpKTsKICAgICByZXR1cm4g
bXV0ZXg7CiB9CiAKQEAgLTE3NSwxMiArMTc1LDEyIEBAIHN0YXRpYyBDRlN0cmluZ1JlZiBjb3B5
TG9jYWxpemVkU3RyaW5nRnIKIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmcqIGZpbmRDYWNoZWRTdHJp
bmcoV2ViTG9jYWxpemFibGVTdHJpbmdzQnVuZGxlKiBzdHJpbmdzQnVuZGxlLCBjb25zdCBTdHJp
bmcmIGtleSkKIHsKICAgICBpZiAoIXN0cmluZ3NCdW5kbGUpIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtYWluQnVuZGxlTG9jU3RyaW5nc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgpKTsKICAgICAgICAgcmV0dXJuIG1haW5C
dW5kbGVMb2NTdHJpbmdzKCkuZ2V0KGtleSk7CiAgICAgfQogCiAgICAgaWYgKHN0cmluZ3NCdW5k
bGUtPmJ1bmRsZSA9PSBXZWJLaXRMb2NhbGl6YWJsZVN0cmluZ3NCdW5kbGUuYnVuZGxlKSB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2soZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2soZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkpOwogICAgICAg
ICByZXR1cm4gZnJhbWV3b3JrTG9jU3RyaW5ncygpLmdldChrZXkpOwogICAgIH0KIApAQCAtMTkw
LDEyICsxOTAsMTIgQEAgc3RhdGljIExvY2FsaXplZFN0cmluZyogZmluZENhY2hlZFN0cmluZwog
c3RhdGljIHZvaWQgY2FjaGVTdHJpbmcoV2ViTG9jYWxpemFibGVTdHJpbmdzQnVuZGxlKiBzdHJp
bmdzQnVuZGxlLCBjb25zdCBTdHJpbmcmIGtleSwgTG9jYWxpemVkU3RyaW5nKiB2YWx1ZSkKIHsK
ICAgICBpZiAoIXN0cmluZ3NCdW5kbGUpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtYWlu
QnVuZGxlTG9jU3RyaW5nc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobWFpbkJ1
bmRsZUxvY1N0cmluZ3NNdXRleCgpKTsKICAgICAgICAgbWFpbkJ1bmRsZUxvY1N0cmluZ3MoKS5z
ZXQoa2V5LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBNdXRleExvY2tl
ciBsb2NrKGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2so
ZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkpOwogICAgIGZyYW1ld29ya0xvY1N0cmluZ3MoKS5z
ZXQoa2V5LCB2YWx1ZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1
Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93
aW4vUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcAkocmV2aXNpb24gMTg4NTY5
KQorKysgU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBQbHVnaW5NYWluVGhyZWFkU2No
ZWR1bGVyOjpQbHVnaW5NYWluVGhyCiAKIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6
c2NoZWR1bGVDYWxsKE5QUCBucHAsIE1haW5UaHJlYWRGdW5jdGlvbiBmdW5jdGlvbiwgdm9pZCog
dXNlckRhdGEpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogCiAgICAgQ2FsbFF1ZXVlTWFwOjppdGVyYXRv
ciBpdCA9IG1fY2FsbFF1ZXVlTWFwLmZpbmQobnBwKTsKICAgICBpZiAoaXQgPT0gbV9jYWxsUXVl
dWVNYXAuZW5kKCkpCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlcjo6c2NoZWR1bGUKIAogdm9pZCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpyZWdpc3Rl
clBsdWdpbihOUFAgbnBwKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKIAogICAgIEFTU0VSVCghbV9jYWxs
UXVldWVNYXAuY29udGFpbnMobnBwKSk7CiAgICAgbV9jYWxsUXVldWVNYXAuc2V0KG5wcCwgRGVx
dWU8Q2FsbD4oKSk7CkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlcjo6cmVnaXN0ZXIKIAogdm9pZCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjp1bnJlZ2lz
dGVyUGx1Z2luKE5QUCBucHApCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogCiAgICAgQVNTRVJUKG1fY2Fs
bFF1ZXVlTWFwLmNvbnRhaW5zKG5wcCkpOwogICAgIG1fY2FsbFF1ZXVlTWFwLnJlbW92ZShucHAp
OwpAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OmRpc3Bh
dGNoCiAgICAgZm9yIChhdXRvJiBjYWxsIDogY2FsbHMpIHsKICAgICAgICAgLy8gQ2hlY2sgaWYg
dGhlIHBsdWctaW4gaGFzIGJlZW4gZGVzdHJveWVkLgogICAgICAgICB7Ci0gICAgICAgICAgICBN
dXRleExvY2tlciBsb2NrKG1fcXVldWVNdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxv
Y2sobV9xdWV1ZU11dGV4KTsKICAgICAgICAgICAgIGlmICghbV9jYWxsUXVldWVNYXAuY29udGFp
bnMobnBwKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxl
ci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdp
bk1haW5UaHJlYWRTY2hlZHVsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgogCkBAIC03OSw3ICs4MCw3IEBAIHByaXZhdGU6CiAKICAgICBib29s
IG1fY2FsbFBlbmRpbmc7CiAgICAgQ2FsbFF1ZXVlTWFwIG1fY2FsbFF1ZXVlTWFwOwotICAgIE11
dGV4IG1fcXVldWVNdXRleDsKKyAgICBMb2NrIG1fcXVldWVNdXRleDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU2OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RG
OjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcDoK
KyAgICAgICAgKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgpOgorICAgICAgICAocnVuSmF2YVNjcmlw
dFRocmVhZCk6CisgICAgICAgIChzdGFydEphdmFTY3JpcHRUaHJlYWRzKToKKyAgICAgICAgKHN0
b3BKYXZhU2NyaXB0VGhyZWFkcyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q29uZGl0aW9uLmNwcDogRml4ZWQgYSBidWcgaW4gdGhlIHRlc3QgdGhhdCBJIGZvdW5kIGZyb20g
dHVybmluZyB0aGUgdGVzdCBpbnRvIGEgYmVuY2htYXJrLgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTUtMDgtMTcgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbT1MgWF0gUmVt
b3ZlIHN1cHBvcnQgZm9yIGNvbXBvc2l0ZSBmb250cwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRl
clRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmlt
aXRpdmVzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDQsOSArNDUsOSBAQCBzdGF0
aWMgY29uc3Qgc2l6ZV90IGphdmFTY3JpcHRUaHJlYWRzQ291CiBzdGF0aWMgYm9vbCBqYXZhU2Ny
aXB0VGhyZWFkc1Nob3VsZFRlcm1pbmF0ZTsKIHN0YXRpYyBKU0NvbnRleHRHcm91cFJlZiBqYXZh
U2NyaXB0VGhyZWFkc0dyb3VwOwogCi1zdGF0aWMgTXV0ZXgmIGphdmFTY3JpcHRUaHJlYWRzTXV0
ZXgoKQorc3RhdGljIExvY2smIGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc3RhdGljTXV0ZXgsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgc3RhdGljTXV0ZXgsICgpKTsKICAg
ICByZXR1cm4gc3RhdGljTXV0ZXg7CiB9CiAKQEAgLTcwLDI2ICs3MSwyNiBAQCB2b2lkIHJ1bkph
dmFTY3JpcHRUaHJlYWQodm9pZCopCiAKICAgICBKU0dsb2JhbENvbnRleHRSZWYgY3R4OwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAg
ICAgICAgIGN0eCA9IEpTR2xvYmFsQ29udGV4dENyZWF0ZUluR3JvdXAoamF2YVNjcmlwdFRocmVh
ZHNHcm91cCwgMCk7CiAgICAgfQogCiAgICAgSlNTdHJpbmdSZWYgc2NyaXB0UmVmOwogICAgIHsK
LSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAg
ICAgIHNjcmlwdFJlZiA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdCk7CiAg
ICAgfQogCiAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICAgICAgSlNW
YWx1ZVJlZiBleGNlcHRpb24gPSAwOwogICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjdHgs
IHNjcmlwdFJlZiwgMCwgMCwgMSwgJmV4Y2VwdGlvbik7CiAgICAgICAgICAgICBBU1NFUlQoIWV4
Y2VwdGlvbik7CiAgICAgICAgIH0KIAogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgICAgICAgICBjb25zdCBz
aXplX3QgdmFsdWVzQ291bnQgPSAxMDI0OwogICAgICAgICAgICAgSlNWYWx1ZVJlZiB2YWx1ZXNb
dmFsdWVzQ291bnRdOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YWx1ZXND
b3VudDsgKytpKQpAQCAtOTcsNyArOTgsNyBAQCB2b2lkIHJ1bkphdmFTY3JpcHRUaHJlYWQodm9p
ZCopCiAgICAgICAgIH0KIAogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgICAgICAgICBpZiAoamF2YVNjcmlw
dFRocmVhZHNTaG91bGRUZXJtaW5hdGUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KQEAgLTEwNiw3ICsxMDcsNyBAQCB2b2lkIHJ1bkphdmFTY3JpcHRUaHJlYWQodm9pZCopCiAg
ICAgICAgIGlmIChyYW5kKCkgJSA1KQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgICAgIFRocmVh
ZElkZW50aWZpZXIgdGhyZWFkID0gY3VycmVudFRocmVhZCgpOwogICAgICAgICBkZXRhY2hUaHJl
YWQodGhyZWFkKTsKICAgICAgICAgamF2YVNjcmlwdFRocmVhZHMoKS5yZW1vdmUodGhyZWFkKTsK
QEAgLTExNCw3ICsxMTUsNyBAQCB2b2lkIHJ1bkphdmFTY3JpcHRUaHJlYWQodm9pZCopCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhy
ZWFkc011dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0
ZXgoKSk7CiAgICAgSlNTdHJpbmdSZWxlYXNlKHNjcmlwdFJlZik7CiAgICAgSlNHYXJiYWdlQ29s
bGVjdChjdHgpOwogICAgIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UoY3R4KTsKQEAgLTEyNCw3ICsx
MjUsNyBAQCB2b2lkIHN0YXJ0SmF2YVNjcmlwdFRocmVhZHMoKQogewogICAgIGphdmFTY3JpcHRU
aHJlYWRzR3JvdXAgPSBKU0NvbnRleHRHcm91cENyZWF0ZSgpOwogCi0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
amF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
amF2YVNjcmlwdFRocmVhZHNDb3VudDsgKytpKQogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygp
LmFkZChjcmVhdGVUaHJlYWQoJnJ1bkphdmFTY3JpcHRUaHJlYWQsIDAsIDApKTsKQEAgLTEzMywx
MyArMTM0LDEzIEBAIHZvaWQgc3RhcnRKYXZhU2NyaXB0VGhyZWFkcygpCiB2b2lkIHN0b3BKYXZh
U2NyaXB0VGhyZWFkcygpCiB7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoamF2
YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNj
cmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgamF2YVNjcmlwdFRocmVhZHNTaG91bGRUZXJt
aW5hdGUgPSB0cnVlOwogICAgIH0KIAogICAgIFZlY3RvcjxUaHJlYWRJZGVudGlmaWVyLCBqYXZh
U2NyaXB0VGhyZWFkc0NvdW50PiB0aHJlYWRzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CiAgICAgICAgIGNvcHlUb1ZlY3RvcihqYXZh
U2NyaXB0VGhyZWFkcygpLCB0aHJlYWRzKTsKICAgICAgICAgQVNTRVJUKHRocmVhZHMuc2l6ZSgp
ID09IGphdmFTY3JpcHRUaHJlYWRzQ291bnQpOwogICAgIH0KQEAgLTE0OCw3ICsxNDksNyBAQCB2
b2lkIHN0b3BKYXZhU2NyaXB0VGhyZWFkcygpCiAgICAgICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0
aW9uKHRocmVhZHNbaV0pOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoamF2
YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNj
cmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgamF2YVNjcmlwdFRocmVhZHMoKS5jbGVhcigp
OwogICAgIH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRp
b24uY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9Db25kaXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBy
dW5UZXN0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIXNob3VsZENv
bnRpbnVlIHx8ICFxdWV1ZS5pc0VtcHR5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0KTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICghc2hvdWxkQ29udGludWUpCisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIXNob3VsZENvbnRpbnVlICYmIHF1ZXVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGROb3RpZnkg
PSBxdWV1ZS5zaXplKCkgPT0gbWF4UXVldWVTaXplOwogICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0ID0gcXVldWUudGFrZUZpcnN0KCk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9Xb3JrUXVldWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYg
KzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgIlRlc3QuaCIKKyNpbmNs
dWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgogI2luY2x1ZGUgPHN0cmlu
Zz4KQEAgLTQwLDggKzQyLDggQEAgc3RhdGljIGNvbnN0IGNoYXIqIGRpc3BhdGNoQWZ0ZXJMYWJl
bCA9IAogICAgIAogVEVTVChXVEZfV29ya1F1ZXVlLCBTaW1wbGUpCiB7Ci0gICAgTXV0ZXggbV9s
b2NrOwotICAgIFRocmVhZENvbmRpdGlvbiBtX3Rlc3RDb21wbGV0ZWQ7CisgICAgTG9jayBtX2xv
Y2s7CisgICAgQ29uZGl0aW9uIG1fdGVzdENvbXBsZXRlZDsKICAgICBWZWN0b3I8c3RkOjpzdHJp
bmc+IG1fZnVuY3Rpb25DYWxsT3JkZXI7CiAKICAgICBib29sIGNhbGxlZFNpbXBsZVRlc3QgPSBm
YWxzZTsKQEAgLTU2LDcgKzU4LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBTaW1wbGUpCiAgICAg
aW50IGluaXRpYWxSZWZDb3VudCA9IHF1ZXVlLT5yZWZDb3VudCgpOwogICAgIEVYUEVDVF9FUSgx
LCBpbml0aWFsUmVmQ291bnQpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICBxdWV1ZS0+ZGlzcGF0Y2goWyZdKHZv
aWQpIHsKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQoc2ltcGxlVGVzdExhYmVs
KTsKICAgICAgICAgY2FsbGVkU2ltcGxlVGVzdCA9IHRydWU7CkBAIC02OSw3ICs3MSw3IEBAIFRF
U1QoV1RGX1dvcmtRdWV1ZSwgU2ltcGxlKQogICAgIH0pOwogCiAgICAgcXVldWUtPmRpc3BhdGNo
KFsmXSh2b2lkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9yZGVy
LmFwcGVuZCh0aGlyZFRlc3RMYWJlbCk7CiAgICAgICAgIGNhbGxlZFRoaXJkVGVzdCA9IHRydWU7
CiAKQEAgLTc3LDcgKzc5LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBTaW1wbGUpCiAgICAgICAg
IEVYUEVDVF9UUlVFKGNhbGxlZExvbmdUZXN0KTsKICAgICAgICAgRVhQRUNUX1RSVUUoY2FsbGVk
VGhpcmRUZXN0KTsKICAgICAgICAgCi0gICAgICAgIG1fdGVzdENvbXBsZXRlZC5zaWduYWwoKTsK
KyAgICAgICAgbV90ZXN0Q29tcGxldGVkLm5vdGlmeU9uZSgpOwogICAgIH0pOwogCiAgICAgRVhQ
RUNUX0dUKHF1ZXVlLT5yZWZDb3VudCgpLCAxKTsKQEAgLTk2LDggKzk4LDggQEAgVEVTVChXVEZf
V29ya1F1ZXVlLCBTaW1wbGUpCiAKIFRFU1QoV1RGX1dvcmtRdWV1ZSwgVHdvUXVldWVzKQogewot
ICAgIE11dGV4IG1fbG9jazsKLSAgICBUaHJlYWRDb25kaXRpb24gbV90ZXN0UXVldWUxQ29tcGxl
dGVkLCBtX3Rlc3RRdWV1ZTJDb21wbGV0ZWQ7CisgICAgTG9jayBtX2xvY2s7CisgICAgQ29uZGl0
aW9uIG1fdGVzdFF1ZXVlMUNvbXBsZXRlZCwgbV90ZXN0UXVldWUyQ29tcGxldGVkOwogICAgIFZl
Y3RvcjxzdGQ6OnN0cmluZz4gbV9mdW5jdGlvbkNhbGxPcmRlcjsKIAogICAgIGJvb2wgY2FsbGVk
U2ltcGxlVGVzdCA9IGZhbHNlOwpAQCAtMTEwLDcgKzExMiw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1
ZSwgVHdvUXVldWVzKQogICAgIEVYUEVDVF9FUSgxLCBxdWV1ZTEtPnJlZkNvdW50KCkpOwogICAg
IEVYUEVDVF9FUSgxLCBxdWV1ZTItPnJlZkNvdW50KCkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fbG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAKICAgICBx
dWV1ZTEtPmRpc3BhdGNoKFsmXSh2b2lkKSB7CiAgICAgICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIu
YXBwZW5kKHNpbXBsZVRlc3RMYWJlbCk7CkBAIC0xMjAsMjIgKzEyMiwyMiBAQCBURVNUKFdURl9X
b3JrUXVldWUsIFR3b1F1ZXVlcykKICAgICBxdWV1ZTItPmRpc3BhdGNoKFsmXSh2b2lkKSB7CiAg
ICAgICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzKDUwKSk7CiAKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAKICAgICAgICAgLy8gV2lsbCBmYWlsIGlmIHF1
ZXVlMiB0b29rIHRoZSBtdXRleCBiZWZvcmUgcXVldWUxLgogICAgICAgICBFWFBFQ1RfVFJVRShj
YWxsZWRUaGlyZFRlc3QpOwogCiAgICAgICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIuYXBwZW5kKGxv
bmdUZXN0TGFiZWwpOwogICAgICAgICBjYWxsZWRMb25nVGVzdCA9IHRydWU7Ci0gICAgICAgIG1f
dGVzdFF1ZXVlMkNvbXBsZXRlZC5zaWduYWwoKTsKKyAgICAgICAgbV90ZXN0UXVldWUyQ29tcGxl
dGVkLm5vdGlmeU9uZSgpOwogICAgIH0pOwogCiAgICAgcXVldWUxLT5kaXNwYXRjaChbJl0odm9p
ZCkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQo
dGhpcmRUZXN0TGFiZWwpOwogICAgICAgICBjYWxsZWRUaGlyZFRlc3QgPSB0cnVlOwogICAgICAg
ICAKLSAgICAgICAgbV90ZXN0UXVldWUxQ29tcGxldGVkLnNpZ25hbCgpOworICAgICAgICBtX3Rl
c3RRdWV1ZTFDb21wbGV0ZWQubm90aWZ5T25lKCk7CiAgICAgfSk7CiAKICAgICBtX3Rlc3RRdWV1
ZTFDb21wbGV0ZWQud2FpdChtX2xvY2spOwpAQCAtMTU4LDggKzE2MCw4IEBAIFRFU1QoV1RGX1dv
cmtRdWV1ZSwgVHdvUXVldWVzKQogCiBURVNUKFdURl9Xb3JrUXVldWUsIERpc3BhdGNoQWZ0ZXIp
CiB7Ci0gICAgTXV0ZXggbV9sb2NrOwotICAgIFRocmVhZENvbmRpdGlvbiBtX3Rlc3RDb21wbGV0
ZWQsIG1fZGlzcGF0Y2hBZnRlclRlc3RDb21wbGV0ZWQ7CisgICAgTG9jayBtX2xvY2s7CisgICAg
Q29uZGl0aW9uIG1fdGVzdENvbXBsZXRlZCwgbV9kaXNwYXRjaEFmdGVyVGVzdENvbXBsZXRlZDsK
ICAgICBWZWN0b3I8c3RkOjpzdHJpbmc+IG1fZnVuY3Rpb25DYWxsT3JkZXI7CiAKICAgICBib29s
IGNhbGxlZFNpbXBsZVRlc3QgPSBmYWxzZTsKQEAgLTE2NywyMCArMTY5LDIwIEBAIFRFU1QoV1RG
X1dvcmtRdWV1ZSwgRGlzcGF0Y2hBZnRlcikKIAogICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5UZXN0LmRpc3BhdGNoQWZ0ZXIiKTsKIAotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7
CiAKICAgICBxdWV1ZS0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fbG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAgICAg
ICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIuYXBwZW5kKHNpbXBsZVRlc3RMYWJlbCk7CiAgICAgICAg
IGNhbGxlZFNpbXBsZVRlc3QgPSB0cnVlOwotICAgICAgICBtX3Rlc3RDb21wbGV0ZWQuc2lnbmFs
KCk7CisgICAgICAgIG1fdGVzdENvbXBsZXRlZC5ub3RpZnlPbmUoKTsKICAgICB9KTsKIAogICAg
IHF1ZXVlLT5kaXNwYXRjaEFmdGVyKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTAwKSwgWyZd
KHZvaWQpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIuYXBw
ZW5kKGRpc3BhdGNoQWZ0ZXJMYWJlbCk7CiAgICAgICAgIGNhbGxlZERpc3BhdGNoQWZ0ZXJUZXN0
ID0gdHJ1ZTsKLSAgICAgICAgbV9kaXNwYXRjaEFmdGVyVGVzdENvbXBsZXRlZC5zaWduYWwoKTsK
KyAgICAgICAgbV9kaXNwYXRjaEFmdGVyVGVzdENvbXBsZXRlZC5ub3RpZnlPbmUoKTsKICAgICB9
KTsKIAogICAgIG1fdGVzdENvbXBsZXRlZC53YWl0KG1fbG9jayk7CkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29y
a1F1ZXVlR0xpYi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewogVEVTVChXVEZfV29ya1F1ZXVlLCBBc3luY0lPKQogewogICAgIHN0
cnVjdCBUZXN0aW5nQ29udGV4dCB7Ci0gICAgICAgIE11dGV4IG1fbG9jazsKKyAgICAgICAgTG9j
ayBtX2xvY2s7CiAgICAgICAgIFRocmVhZENvbmRpdGlvbiBtX3Rlc3RDb21wbGV0ZWQ7CiAgICAg
ICAgIEdNYWluQ29udGV4dCogbV9tYWluQ29udGV4dDsKICAgICB9IGNvbnRleHQ7CkBAIC00OSw3
ICs0OSw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgQXN5bmNJTykKICAgICBHVW5pcXVlUHRyPGNo
YXI+IGN1cnJlbnREaXJlY3RvcnkoZ19nZXRfY3VycmVudF9kaXIoKSk7CiAgICAgR1JlZlB0cjxH
RmlsZT4gZmlsZSA9IGFkb3B0R1JlZihnX2ZpbGVfbmV3X2Zvcl9wYXRoKGN1cnJlbnREaXJlY3Rv
cnkuZ2V0KCkpKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihjb250ZXh0Lm1fbG9jayk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIoY29udGV4dC5tX2xvY2spOwogICAgIHF1ZXVlLT5kaXNwYXRj
aChbJl0odm9pZCkgewogICAgICAgICBFWFBFQ1RfVFJVRShnX21haW5fY29udGV4dF9nZXRfdGhy
ZWFkX2RlZmF1bHQoKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKGdfbWFpbl9jb250ZXh0X2dldF90
aHJlYWRfZGVmYXVsdCgpICE9IGNvbnRleHQubV9tYWluQ29udGV4dCk7CkBAIC01Nyw3ICs1Nyw3
IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgQXN5bmNJTykKICAgICAgICAgZ19maWxlX3F1ZXJ5X2lu
Zm9fYXN5bmMoZmlsZS5nZXQoKSwgR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9TSVpFLCBHX0ZJ
TEVfUVVFUllfSU5GT19OT05FLCBHX1BSSU9SSVRZX0RFRkFVTFQsIG51bGxwdHIsCiAgICAgICAg
ICAgICBbXShHT2JqZWN0KiwgR0FzeW5jUmVzdWx0KiwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKICAg
ICAgICAgICAgICAgICBUZXN0aW5nQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0PFRlc3Rp
bmdDb250ZXh0Kj4odXNlckRhdGEpOwotICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihjb250ZXh0LT5tX2xvY2spOworICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGNv
bnRleHQtPm1fbG9jayk7CiAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKGdfbWFpbl9jb250ZXh0
X2dldF90aHJlYWRfZGVmYXVsdCgpLCBjb250ZXh0LT5tX21haW5Db250ZXh0KTsKICAgICAgICAg
ICAgICAgICBjb250ZXh0LT5tX3Rlc3RDb21wbGV0ZWQuc2lnbmFsKCk7CiAgICAgICAgICAgICB9
LCAmY29udGV4dCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259254</attachid>
            <date>2015-08-17 23:46:27 -0700</date>
            <delta_ts>2015-08-18 10:14:53 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>218825</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RG
OjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBhbHNvIGJlZWZzIHVwIGFuZCByYXRpb25hbGl6ZXMgdGhlIENv
bmRpdGlvbiBBUEksIHNvIHRoYXQgaXQgY2FuIGRlYWwgd2l0aCB1bml0cyBvZiB0aW1lCisgICAg
ICAgIG90aGVyIHRoYW4ganVzdCBzdGVhZHlfY2xvY2suIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRv
IHBvcnQgVGhyZWFkQ29uZGl0aW9uIGFuZAorICAgICAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJs
ZSBjb2RlIG92ZXIgdG8gQ29uZGl0aW9uLiBUaGlzIHBhdGNoIGRvZXMgbm90IHRha2UgYSBwb3Np
dGlvbiBvbiB3aGF0CisgICAgICAgIGtpbmQgb2YgdGltZSBpcyBiZXN0OyBmcm9tIHJlYWRpbmcg
YSBsb3Qgb2YgdGhlIHVzZXMgaW4gV2ViQ29yZSwgaXQgc2VlbXMgbGlrZSBvdXIgdXNlIG9mCisg
ICAgICAgIGRvdWJsZSB0byBtZWFzdXJlIHNlY29uZHMgaXMgb2Z0ZW4gbmljZXIgdGhhbiB0aGUg
bWFueSBkaWZmZXJlbnQgY2xhc3NlcyBpbiBzdGQ6OmNocm9uby4KKworICAgICAgICBBbHNvIGFk
ZGVkIGEgQ29uZGl0aW9uIHNwZWVkIHRlc3QsIHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBvZiB0aGlz
IGlzIGEgZ29vZCBpZGVhLiBBbmQgaW5kZWVkIGl0CisgICAgICAgIGlzLiBUaGUgMS1wcm9kdWNl
ci8xLWNvbnN1bWVyIHNjZW5hcmlvIHdpdGggYSAxMDAtZWxlbWVudCBxdWV1ZSBydW5zIDM2eCBm
YXN0ZXIgdXNpbmcKKyAgICAgICAgTG9jay9Db25kaXRpb24gdGhhbiBNdXRleC9UaHJlYWRDb25k
aXRpb24gd2hlbiB5b3UgdXNlIHRoZSBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBzdHlsZS4gSXQK
KyAgICAgICAgcnVucyA1OHggZmFzdGVyIHdpdGggTG9jay9Db25kaXRpb24gd2hlbiB5b3UgdXNl
IHRoZSBub3RpZnlBbGwoKS1hdC1ib3VuZGFyeSBzdHlsZS4gTm90ZSB0aGF0CisgICAgICAgIEkg
aGF2ZSBhIGJ1ZyBvcGVuIGZvciBtYWtpbmcgdGhlIG5vdGlmeU9uZSgpLXBlci1lbnF1ZXVlIHN0
eWxlIGV2ZW4gZmFzdGVyOgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MDkwLiBBbHNvLCB0aGUgMTAtY29uc3VtZXIvMTAtcHJvZHVjZXIgc2NlbmFy
aW8gd2l0aAorICAgICAgICBhIDEwMC1lbGVtZW50IHF1ZXVlIHJ1bnMgMjB4IGZhc3RlciB3aXRo
IExvY2svQ29uZGl0aW9uIGZvciBub3RpZnlPbmUoKS1wZXItZW5xdWV1ZSBhbmQgMzB4CisgICAg
ICAgIGZhc3RlciB3aXRoIG5vdGlmeUFsbCgpLWF0LWJvdW5kYXJ5LiBTbywgaXQgc2VlbXMgdGhh
dCByZXBsYWNpbmcgYWxsIHVzZXMgb2Ygc3lzdGVtIG11dGV4ZXMgYW5kCisgICAgICAgIGNvbmRp
dGlvbiB2YXJpYWJsZXMgd2l0aCBvdXIgb3duIHRoaW5nIGlzIGEgZ3JlYXQgaWRlYS4KKworICAg
ICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJr
cy9Db25kaXRpb25TcGVlZFRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvQ29uZGl0aW9u
Lmg6CisgICAgICAgIChXVEY6OkNvbmRpdGlvbjo6Q29uZGl0aW9uKToKKyAgICAgICAgKFdURjo6
Q29uZGl0aW9uOjp3YWl0VW50aWwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3Ip
OgorICAgICAgICAoV1RGOjpDb25kaXRpb246OndhaXQpOgorICAgICAgICAoV1RGOjpDb25kaXRp
b246OndhaXRVbnRpbFdhbGxDbG9ja1NlY29uZHMpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246
OndhaXRVbnRpbE1vbm90b25pY0Nsb2NrU2Vjb25kcyk6CisgICAgICAgIChXVEY6OkNvbmRpdGlv
bjo6bm90aWZ5T25lKToKKyAgICAgICAgKFdURjo6Q29uZGl0aW9uOjpub3RpZnlBbGwpOgorICAg
ICAgICAoV1RGOjpDb25kaXRpb246OndhaXRGb3JTZWNvbmRzSW1wbCk6CisgICAgICAgIChXVEY6
OkNvbmRpdGlvbjo6d2FpdEZvckltcGwpOgorICAgICAgICAoV1RGOjpDb25kaXRpb246OmFic29s
dXRlRnJvbVJlbGF0aXZlKToKKyAgICAgICAgKiB3dGYvTWVzc2FnZVF1ZXVlLmg6CisgICAgICAg
IChXVEY6Ok1lc3NhZ2VRdWV1ZTo6aW5maW5pdGVUaW1lKToKKyAgICAgICAgKFdURjo6TWVzc2Fn
ZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6YXBwZW5kQW5kS2lsbCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRh
VHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHkpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8
RGF0YVR5cGU+OjpwcmVwZW5kKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBl
Pjo6cmVtb3ZlSWYpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojppc0Vt
cHR5KToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbCk6CisgICAg
ICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmtpbGxlZCk6CisgICAgICAgICogd3Rm
L1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25t
ZW50OjpUaHJlYWRQcml2YXRlOjpleGVjdXRlKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZp
cm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZpbmlzaCk6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCk6CisgICAgICAg
ICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaDoKKyAgICAgICAgKiB3dGYvUGFya2luZ0xvdC5j
cHA6CisgICAgICAgIChXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KToKKyAgICAg
ICAgKiB3dGYvUGFya2luZ0xvdC5oOgorICAgICAgICAoV1RGOjpQYXJraW5nTG90Ojpjb21wYXJl
QW5kUGFyayk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAg
KFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZyk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5j
cHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHd0Zi9k
dG9hLmNwcDoKKyAgICAgICAgKFdURjo6cG93NW11bHQpOgorICAgICAgICAqIHd0Zi9kdG9hLmg6
CisKIDIwMTUtMDgtMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBCdWlsZCBEZWJ1ZyBTdWZmaXggb24gV2luZG93cyB3aXRoIENNYWtlCklu
ZGV4OiBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKy8vIE9uIE1hYywgeW91IGNhbiBidWlsZCB0aGlzIGxp
a2Ugc286CisvLyBjbGFuZysrIC1vIENvbmRpdGlvblNwZWVkVGVzdCBTb3VyY2UvV1RGL2JlbmNo
bWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RGIC1MV2ViS2l0
QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vjb3JlIC1zdGQ9
YysrMTEKKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVk
ZSA8dGhyZWFkPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvRGF0YUxvZy5o
PgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJp
bWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIHsKKworY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisKK3Vuc2lnbmVkIG51bVByb2R1Y2VyczsKK3Vuc2ln
bmVkIG51bUNvbnN1bWVyczsKK3Vuc2lnbmVkIG1heFF1ZXVlU2l6ZTsKK3Vuc2lnbmVkIG51bU1l
c3NhZ2VzUGVyUHJvZHVjZXI7CisgICAgCitOT19SRVRVUk4gdm9pZCB1c2FnZSgpCit7CisgICAg
cHJpbnRmKCJVc2FnZTogQ29uZGl0aW9uU3BlZWRUZXN0IGxvY2t8bXV0ZXh8YWxsIDxudW0gcHJv
ZHVjZXJzPiA8bnVtIGNvbnN1bWVycz4gPG1heCBxdWV1ZSBzaXplPiA8bnVtIG1lc3NhZ2VzIHBl
ciBwcm9kdWNlcj5cbiIpOworICAgIGV4aXQoMSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0b3IsIHR5cGVuYW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIExvY2tUeXBlPgordm9pZCB3
YWl0KENvbmRpdGlvblR5cGUmIGNvbmRpdGlvbiwgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IEZ1bmN0
b3ImIHByZWRpY2F0ZSkKK3sKKyAgICB3aGlsZSAoIXByZWRpY2F0ZSgpKQorICAgICAgICBjb25k
aXRpb24ud2FpdChsb2NrKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVu
YW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIE5vdGlmeUZ1bmN0b3IsIHR5cGVuYW1lIE5vdGlm
eUFsbEZ1bmN0b3I+Cit2b2lkIHJ1blRlc3QoCisgICAgdW5zaWduZWQgbnVtUHJvZHVjZXJzLAor
ICAgIHVuc2lnbmVkIG51bUNvbnN1bWVycywKKyAgICB1bnNpZ25lZCBtYXhRdWV1ZVNpemUsCisg
ICAgdW5zaWduZWQgbnVtTWVzc2FnZXNQZXJQcm9kdWNlciwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIERlcXVlPHVuc2lnbmVkPiBxdWV1ZTsKKyAgICBib29sIHNob3VsZENvbnRpbnVlID0gdHJ1
ZTsKKyAgICBMb2NrVHlwZSBsb2NrOworICAgIENvbmRpdGlvblR5cGUgZW1wdHlDb25kaXRpb247
CisgICAgQ29uZGl0aW9uVHlwZSBmdWxsQ29uZGl0aW9uOworCisgICAgVmVjdG9yPFRocmVhZElk
ZW50aWZpZXI+IGNvbnN1bWVyVGhyZWFkczsKKyAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4g
cHJvZHVjZXJUaHJlYWRzOworCisgICAgVmVjdG9yPHVuc2lnbmVkPiByZWNlaXZlZDsKKyAgICBM
b2NrVHlwZSByZWNlaXZlZExvY2s7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29u
c3VtZXJzOyBpLS07KSB7CisgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmll
ciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAg
ICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbXVz
dE5vdGlmeSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB3YWl0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5
Q29uZGl0aW9uLCBsb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZyh0b1N0cmluZyhjdXJyZW50VGhyZWFkKCks
ICI6IENoZWNraW5nIGNvbnN1bXB0aW9uIHByZWRpY2F0ZSB3aXRoIHNob3VsZENvbnRpbnVlID0g
Iiwgc2hvdWxkQ29udGludWUsICIsIHF1ZXVlLnNpemUoKSA9PSAiLCBxdWV1ZS5zaXplKCksICJc
biIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFzaG91bGRDb250
aW51ZSB8fCAhcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSAmJiBxdWV1ZS5p
c0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgICAgICAgICAgbXVzdE5vdGlmeSA9IHF1ZXVlLnNpemUoKSA9PSBtYXhRdWV1ZVNpemU7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBxdWV1ZS50YWtlRmlyc3QoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBub3RpZnkoZnVsbENvbmRp
dGlvbiwgbXVzdE5vdGlmeSk7CisKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2tUeXBlPiBsb2NrZXIocmVjZWl2ZWRMb2Nr
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkLmFwcGVuZChyZXN1bHQpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7Cisg
ICAgICAgIGNvbnN1bWVyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmllcik7CisgICAgfQor
CisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtUHJvZHVjZXJzOyBpLS07KSB7CisgICAgICAgIFRo
cmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCgKKyAgICAgICAg
ICAgICJQcm9kdWNlciBUaHJlYWQiLAorICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQZXJQcm9kdWNlcjsgKytp
KSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgbXVzdE5vdGlmeSA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2Nr
PExvY2tUeXBlPiBsb2NrZXIobG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxDb25kaXRpb24sIGxvY2ssCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKHRvU3RyaW5nKGN1cnJlbnRUaHJlYWQoKSwgIjogQ2hlY2tpbmcgcHJvZHVjdGlvbiBw
cmVkaWNhdGUgd2l0aCBzaG91bGRDb250aW51ZSA9ICIsIHNob3VsZENvbnRpbnVlLCAiLCBxdWV1
ZS5zaXplKCkgPT0gIiwgcXVldWUuc2l6ZSgpLCAiXG4iKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBxdWV1ZS5zaXplKCkgPCBtYXhRdWV1ZVNpemU7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtdXN0Tm90
aWZ5ID0gcXVldWUuaXNFbXB0eSgpOworICAgICAgICAgICAgICAgICAgICAgICAgcXVldWUuYXBw
ZW5kKGkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5vdGlm
eShlbXB0eUNvbmRpdGlvbiwgbXVzdE5vdGlmeSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSk7CisgICAgICAgIHByb2R1Y2VyVGhyZWFkcy5hcHBlbmQodGhyZWFkSWRlbnRpZmll
cik7CisgICAgfQorCisgICAgZm9yIChUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIg
OiBwcm9kdWNlclRocmVhZHMpCisgICAgICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVh
ZElkZW50aWZpZXIpOworCisgICAgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9ja1R5cGU+
IGxvY2tlcihsb2NrKTsKKyAgICAgICAgc2hvdWxkQ29udGludWUgPSBmYWxzZTsKKyAgICB9Cisg
ICAgbm90aWZ5QWxsKGVtcHR5Q29uZGl0aW9uKTsKKworICAgIGZvciAoVGhyZWFkSWRlbnRpZmll
ciB0aHJlYWRJZGVudGlmaWVyIDogY29uc3VtZXJUaHJlYWRzKQorICAgICAgICB3YWl0Rm9yVGhy
ZWFkQ29tcGxldGlvbih0aHJlYWRJZGVudGlmaWVyKTsKKworICAgIFJFTEVBU0VfQVNTRVJUKG51
bVByb2R1Y2VycyAqIG51bU1lc3NhZ2VzUGVyUHJvZHVjZXIgPT0gcmVjZWl2ZWQuc2l6ZSgpKTsK
KyAgICBzdGQ6OnNvcnQocmVjZWl2ZWQuYmVnaW4oKSwgcmVjZWl2ZWQuZW5kKCkpOworICAgIGZv
ciAodW5zaWduZWQgbWVzc2FnZUluZGV4ID0gMDsgbWVzc2FnZUluZGV4IDwgbnVtTWVzc2FnZXNQ
ZXJQcm9kdWNlcjsgKyttZXNzYWdlSW5kZXgpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBwcm9k
dWNlckluZGV4ID0gMDsgcHJvZHVjZXJJbmRleCA8IG51bVByb2R1Y2VyczsgKytwcm9kdWNlcklu
ZGV4KQorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobWVzc2FnZUluZGV4ID09IHJlY2VpdmVk
W21lc3NhZ2VJbmRleCAqIG51bVByb2R1Y2VycyArIHByb2R1Y2VySW5kZXhdKTsKKyAgICB9Cit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlLCB0eXBlbmFtZSBDb25kaXRpb25UeXBlLCB0
eXBlbmFtZSBOb3RpZnlGdW5jdG9yLCB0eXBlbmFtZSBOb3RpZnlBbGxGdW5jdG9yPgordm9pZCBy
dW5CZW5jaG1hcmsoCisgICAgY29uc3QgY2hhciogbmFtZSwKKyAgICBjb25zdCBOb3RpZnlGdW5j
dG9yJiBub3RpZnksCisgICAgY29uc3QgTm90aWZ5QWxsRnVuY3RvciYgbm90aWZ5QWxsKQorewor
ICAgIGRvdWJsZSBiZWZvcmUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWVNUygpOworICAg
IAorICAgIHJ1blRlc3Q8TG9ja1R5cGUsIENvbmRpdGlvblR5cGU+KAorICAgICAgICBudW1Qcm9k
dWNlcnMsCisgICAgICAgIG51bUNvbnN1bWVycywKKyAgICAgICAgbWF4UXVldWVTaXplLAorICAg
ICAgICBudW1NZXNzYWdlc1BlclByb2R1Y2VyLAorICAgICAgICBub3RpZnksCisgICAgICAgIG5v
dGlmeUFsbCk7CisKKyAgICBkb3VibGUgYWZ0ZXIgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWVNUygpOworCisgICAgcHJpbnRmKCIlczogJS4zbGYgbXMuXG4iLCBuYW1lLCBhZnRlciAtIGJl
Zm9yZSk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitpbnQgbWFpbihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCit7CisgICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisKKyAg
ICBpZiAoYXJnYyAhPSA2CisgICAgICAgIHx8IHNzY2FuZihhcmd2WzJdLCAiJXUiLCAmbnVtUHJv
ZHVjZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzNdLCAiJXUiLCAmbnVtQ29uc3Vt
ZXJzKSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzRdLCAiJXUiLCAmbWF4UXVldWVTaXpl
KSAhPSAxCisgICAgICAgIHx8IHNzY2FuZihhcmd2WzVdLCAiJXUiLCAmbnVtTWVzc2FnZXNQZXJQ
cm9kdWNlcikgIT0gMSkKKyAgICAgICAgdXNhZ2UoKTsKKworICAgIGJvb2wgZGlkUnVuID0gZmFs
c2U7CisgICAgaWYgKCFzdHJjbXAoYXJndlsxXSwgImxvY2siKSB8fCAhc3RyY21wKGFyZ3ZbMV0s
ICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1hcms8TG9jaywgQ29uZGl0aW9uPigKKyAgICAg
ICAgICAgICJXVEYgTG9jayBOb3RpZnlPbmUiLAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24m
IGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9u
Lm5vdGlmeU9uZSgpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0aW9u
JiBjb25kaXRpb24pIHsKKyAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgcnVuQmVuY2htYXJrPExvY2ssIENvbmRpdGlvbj4oCisg
ICAgICAgICAgICAiV1RGIExvY2sgTm90aWZ5QWxsIiwKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0
aW9uJiBjb25kaXRpb24sIGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGlmICht
dXN0Tm90aWZ5KQorICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5QWxsKCk7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChDb25kaXRpb24mIGNvbmRpdGlvbikgewor
ICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICBkaWRSdW4gPSB0cnVlOworICAgIH0KKyAgICBpZiAoIXN0cmNtcChhcmd2WzFdLCAi
bXV0ZXgiKSB8fCAhc3RyY21wKGFyZ3ZbMV0sICJhbGwiKSkgeworICAgICAgICBydW5CZW5jaG1h
cms8TXV0ZXgsIFRocmVhZENvbmRpdGlvbj4oCisgICAgICAgICAgICAiUGxhdGZvcm0gTXV0ZXgg
Tm90aWZ5T25lIiwKKyAgICAgICAgICAgIFsmXSAoVGhyZWFkQ29uZGl0aW9uJiBjb25kaXRpb24s
IGJvb2wgbXVzdE5vdGlmeSkgeworICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5zaWduYWwoKTsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlvbiYgY29uZGl0
aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIHJ1bkJlbmNobWFyazxNdXRleCwgVGhyZWFkQ29uZGl0aW9uPigKKyAg
ICAgICAgICAgICJQbGF0Zm9ybSBNdXRleCBOb3RpZnlBbGwiLAorICAgICAgICAgICAgWyZdIChU
aHJlYWRDb25kaXRpb24mIGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgICAg
ICAgICAgaWYgKG11c3ROb3RpZnkpCisgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5icm9h
ZGNhc3QoKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJl0gKFRocmVhZENvbmRpdGlv
biYgY29uZGl0aW9uKSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIGRpZFJ1biA9IHRydWU7CisgICAgfQorCisgICAgaWYg
KCFkaWRSdW4pCisgICAgICAgIHVzYWdlKCk7CisKKyAgICByZXR1cm4gMDsKK30KKwpJbmRleDog
U291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw2ICsyMyw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisvLyBPbiBNYWMsIHlv
dSBjYW4gYnVpbGQgdGhpcyBsaWtlIHNvOgorLy8gY2xhbmcrKyAtbyBMb2NrU3BlZWRUZXN0IFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RG
IC1MV2ViS2l0QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vj
b3JlIC1zdGQ9YysrMTEKKwogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9Db25kaXRpb24uaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93
dGYvQ29uZGl0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDI2ICsyOSw1OSBAQAogI2luY2x1
ZGUgPGNocm9ubz4KICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPG11dGV4PgorI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXJraW5nTG90Lmg+CiAK
IG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBDb25kaXRpb24gewogcHVibGljOgorICAgIHR5cGVk
ZWYgUGFya2luZ0xvdDo6Q2xvY2sgQ2xvY2s7CisgICAgCiAgICAgQ29uZGl0aW9uKCkgeyB9CiAK
ICAgICAvLyBXYWl0IG9uIGEgcGFya2luZyBxdWV1ZSB3aGlsZSByZWxlYXNpbmcgdGhlIGdpdmVu
IGxvY2suIEl0IHdpbGwgdW5sb2NrIHRoZSBsb2NrIGp1c3QgYmVmb3JlCiAgICAgLy8gcGFya2lu
ZywgYW5kIHJlbG9jayBpdCB1cG9uIHdha2V1cC4gUmV0dXJucyB0cnVlIGlmIHdlIHdva2UgdXAg
ZHVlIHRvIHNvbWUgY2FsbCB0bwotICAgIC8vIG5vdGlmeU9uZSgpIG9yIG5vdGlmeUFsbCgpLiBS
ZXR1cm5zIGZhbHNlIGlmIHdlIHdva2UgdXAgZHVlIHRvIGEgdGltZW91dC4KKyAgICAvLyBub3Rp
ZnlPbmUoKSBvciBub3RpZnlBbGwoKS4gUmV0dXJucyBmYWxzZSBpZiB3ZSB3b2tlIHVwIGR1ZSB0
byBhIHRpbWVvdXQuIE5vdGUgdGhhdCB0aGlzIGZvcm0KKyAgICAvLyBvZiB3YWl0VW50aWwoKSBo
YXMgc29tZSBxdWlya3M6CisgICAgLy8KKyAgICAvLyBObyBzcHVyaW91cyB3YWtlLXVwOiBpbiBv
cmRlciBmb3IgdGhpcyB0byByZXR1cm4gYmVmb3JlIHRoZSB0aW1lb3V0LCBzb21lIG5vdGlmeU9u
ZSgpIG9yCisgICAgLy8gbm90aWZ5QWxsKCkgY2FsbCBtdXN0IGhhdmUgaGFwcGVuZWQuIE5vIHNj
ZW5hcmlvIG90aGVyIHRoYW4gdGltZW91dCBvciBub3RpZnkgY2FuIGxlYWQgdG8gdGhpcworICAg
IC8vIG1ldGhvZCByZXR1cm5pbmcuIFRoaXMgbWVhbnMsIGZvciBleGFtcGxlLCB0aGF0IHlvdSBj
YW4ndCB1c2UgcHRocmVhZCBjYW5jZWxhdGlvbiBvciBzaWduYWxzIHRvCisgICAgLy8gY2F1c2Ug
ZWFybHkgcmV0dXJuLgorICAgIC8vCisgICAgLy8gUGFzdCB0aW1lb3V0OiBpdCdzIHBvc3NpYmxl
IGZvciB3YWl0VW50aWwoKSB0byBiZSBjYWxsZWQgd2l0aCBhIHRpbWVvdXQgaW4gdGhlIHBhc3Qu
IEluIHRoYXQKKyAgICAvLyBjYXNlLCB3YWl0VW50aWwoKSB3aWxsIHN0aWxsIHJlbGVhc2UgdGhl
IGxvY2sgYW5kIHJlYWNxdWlyZSBpdC4gd2FpdFVudGlsKCkgd2lsbCBhbHdheXMgcmV0dXJuCisg
ICAgLy8gZmFsc2UgaW4gdGhhdCBjYXNlLiBUaGlzIGlzIHN1YnRseSBkaWZmZXJlbnQgZnJvbSBz
b21lIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSBpbXBsZW1lbnRhdGlvbnMsCisgICAgLy8gd2hp
Y2ggbWF5IG5vdCByZWxlYXNlIHRoZSBsb2NrIGZvciBwYXN0IHRpbWVvdXQuIEJ1dCwgdGhpcyBi
ZWhhdmlvciBpcyBjb25zaXN0ZW50IHdpdGggT3Blbkdyb3VwCisgICAgLy8gZG9jdW1lbnRhdGlv
biBmb3IgdGltZWR3YWl0KCkuCisgICAgLy8KKyAgICAvLyBNYXkgd2FpdCB0b28gbG9uZyBvbiBz
b21lIE9TZXM6IHRoZSBDKysgc3RhbmRhcmQgbGlicmFyeSBpbXBsZW1lbnRhdGlvbiBvZgorICAg
IC8vIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlOjp3YWl0X3VudGlsKCksIHdoaWNoIHRoaXMgdXNl
cyBpbnRlcm5hbGx5LCBtYXkgY29udmVydCB0aGUgYWJzb2x1dGUKKyAgICAvLyB0aW1lIHRvIGFu
IGFic29sdXRlIHRpbWUgYWNjb3JkaW5nIHRvIHRoZSBzeXN0ZW0gY2xvY2ssIHdoaWNoIGlzbid0
IG1vbm90b25pYy4gSXQgd2lsbCBkbyB0aGlzCisgICAgLy8gc28gdGhhdCBpdCBjYW4gdXNlIHB0
aHJlYWRfY29uZF90aW1lZHdhaXQoKS4gRGVwZW5kaW5nIG9uIHRoZSBPUyBhbmQgaWYgYW4gdW5m
b3J0dW5hdGUKKyAgICAvLyBjb21iaW5hdGlvbiBvZiB0aHJlYWQgaW50ZXJsZWF2aW5ncyBhbmQg
c3lzdGVtIHRpbWUgY2hhbmdlcyBoYXBwZW5zLCB0aGlzIG1heSBjYXVzZSB3YWl0VW50aWwoKQor
ICAgIC8vIHRvIHdhaXQgbG9uZ2VyIHRoYW4gaXQncyBzdXBwb3NlZCB0by4gSG93ZXZlciwgaXQn
cyB0eXBpY2FsIGZvciBPU2VzIHRvIHR1cm4gdGhlIGFic29sdXRlCisgICAgLy8gdGltZW91dCBp
biBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gYSByZWxhdGl2ZSB0aW1lb3V0IGJlZm9yZSBj
YWxsaW5nIGludG8gdGhlIGtlcm5lbC4gVGhpcworICAgIC8vIGlzIHdoYXQgZ2xpYmMgZG9lcywg
Zm9yIGV4YW1wbGUuCisgICAgLy8KKyAgICAvLyBUaGVzZSBxdWlya3MgYXJlIGdlbmVyYWxseSBu
b3Qgd29ydGggd29ycnlpbmcgdG9vIG11Y2ggYWJvdXQuIFRoZSBmYWN0IHRoYXQgc29tZSBPU2Vz
IHBlcmZvcm0KKyAgICAvLyBjb252ZXJzaW9ucyB0byBhbiBhYnNvbHV0ZSBub24tbW9ub3Rvbmlj
IHRpbWUgaXMgdW5saWtlbHkgdG8gY2F1c2UgaXNzdWVzIGJlY2F1c2UgdGhleSB1c3VhbGx5Cisg
ICAgLy8ganVzdCBkbyB0aGF0IGFzIHBhcnQgb2YgYSBjb252ZXJzaW9uIHRvIGEgcmVsYXRpdmUg
c2xlZXAgYW1vdW50IGluIHRoZSBrZXJuZWwuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5
cGU+Ci0gICAgYm9vbCB3YWl0VW50aWwoCi0gICAgICAgIExvY2tUeXBlJiBsb2NrLCBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCisgICAgYm9vbCB3YWl0VW50
aWwoTG9ja1R5cGUmIGxvY2ssIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiAgICAgewotICAg
ICAgICBib29sIHJlc3VsdCA9IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAotICAgICAg
ICAgICAgJm1fZHVtbXksCi0gICAgICAgICAgICBbXSAoKSAtPiBib29sIHsgcmV0dXJuIHRydWU7
IH0sCi0gICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKLSAgICAgICAg
ICAgIHRpbWVvdXQpOworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgaWYgKHRpbWVvdXQg
PCBDbG9jazo6bm93KCkpIHsKKyAgICAgICAgICAgIGxvY2sudW5sb2NrKCk7CisgICAgICAgICAg
ICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9
IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAorICAgICAgICAgICAgICAgICZtX2R1bW15
LAorICAgICAgICAgICAgICAgIFtdICgpIC0+IGJvb2wgeyByZXR1cm4gdHJ1ZTsgfSwKKyAgICAg
ICAgICAgICAgICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKKyAgICAgICAgICAgICAg
ICB0aW1lb3V0KTsKKyAgICAgICAgfQogICAgICAgICBsb2NrLmxvY2soKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CkBAIC01Niw4ICs4OSw3IEBAIHB1YmxpYzoKICAgICAvLyBXYWl0
IHVudGlsIHRoZSBnaXZlbiBwcmVkaWNhdGUgaXMgc2F0aXNmaWVkLiBSZXR1cm5zIHRydWUgaWYg
aXQgaXMgc2F0aXNmaWVkIGluIHRoZSBlbmQuCiAgICAgLy8gTWF5IHJldHVybiBlYXJseSBkdWUg
dG8gdGltZW91dC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRnVu
Y3Rvcj4KLSAgICBib29sIHdhaXRVbnRpbCgKLSAgICAgICAgTG9ja1R5cGUmIGxvY2ssIHN0ZDo6
Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgdGltZW91dCwgY29uc3QgRnVuY3RvciYg
cHJlZGljYXRlKQorICAgIGJvb2wgd2FpdFVudGlsKExvY2tUeXBlJiBsb2NrLCBDbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewogICAgICAg
ICB3aGlsZSAoIXByZWRpY2F0ZSgpKSB7CiAgICAgICAgICAgICBpZiAoIXdhaXRVbnRpbChsb2Nr
LCB0aW1lb3V0KSkKQEAgLTcyLDE3ICsxMDQsMTMgQEAgcHVibGljOgogICAgIGJvb2wgd2FpdEZv
cigKICAgICAgICAgTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVU
aW1lb3V0LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewotICAgICAgICBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IGFic29sdXRlVGltZW91dCA9Ci0gICAgICAg
ICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSArCi0gICAgICAgICAgICBzdGQ6
OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlv
bj4ocmVsYXRpdmVUaW1lb3V0KTsKLQotICAgICAgICByZXR1cm4gd2FpdFVudGlsKGxvY2ssIGFi
c29sdXRlVGltZW91dCwgcHJlZGljYXRlKTsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2Nr
LCBhYnNvbHV0ZUZyb21SZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpLCBwcmVkaWNhdGUpOwogICAg
IH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgogICAgIHZvaWQgd2FpdChMb2Nr
VHlwZSYgbG9jaykKICAgICB7Ci0gICAgICAgIHdhaXRVbnRpbChsb2NrLCBzdGQ6OmNocm9ubzo6
c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7CisgICAgICAgIHdhaXRVbnRpbChsb2Nr
LCBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIExvY2tUeXBlLCB0eXBlbmFtZSBGdW5jdG9yPgpAQCAtOTIsNiArMTIwLDMyIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHdhaXQobG9jayk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgTG9ja1R5cGUsIHR5cGVuYW1lIFRpbWVUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsKExvY2tU
eXBlJiBsb2NrLCBjb25zdCBUaW1lVHlwZSYgdGltZW91dCkKKyAgICB7CisgICAgICAgIGlmICh0
aW1lb3V0ID09IFRpbWVUeXBlOjptYXgoKSkgeworICAgICAgICAgICAgd2FpdChsb2NrKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB3YWl0Rm9y
SW1wbChsb2NrLCB0aW1lb3V0IC0gVGltZVR5cGU6OmNsb2NrOjpub3coKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+CisgICAgYm9vbCB3YWl0VW50aWxXYWxsQ2xv
Y2tTZWNvbmRzKExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykK
KyAgICB7CisgICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVU
aW1lb3V0U2Vjb25kcyAtIGN1cnJlbnRUaW1lKCkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIExvY2tUeXBlPgorICAgIGJvb2wgd2FpdFVudGlsTW9ub3RvbmljQ2xvY2tTZWNvbmRz
KExvY2tUeXBlJiBsb2NrLCBkb3VibGUgYWJzb2x1dGVUaW1lb3V0U2Vjb25kcykKKyAgICB7Cisg
ICAgICAgIHJldHVybiB3YWl0Rm9yU2Vjb25kc0ltcGwobG9jaywgYWJzb2x1dGVUaW1lb3V0U2Vj
b25kcyAtIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKKyAgICB9CisKKyAgICAvLyBG
SVhNRTogV2UgY291bGQgcmVwbGFjZSB0aGUgZHVtbXkgYnl0ZSB3aXRoIGEgYm9vbGVhbiB0byB0
ZWxsIHVzIGlmIHRoZXJlIGlzIGFueW9uZSB3YWl0aW5nCisgICAgLy8gcmlnaHQgbm93LiBUaGlz
IGNvdWxkIGJlIHVzZWQgdG8gaW1wbGVtZW50IGEgZmFzdCBwYXRoIGZvciBub3RpZnlPbmUoKSBh
bmQgbm90aWZ5QWxsKCkuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODA5MAorCiAgICAgdm9pZCBub3RpZnlPbmUoKQogICAgIHsKICAgICAgICAgUGFy
a2luZ0xvdDo6dW5wYXJrT25lKCZtX2R1bW15KTsKQEAgLTEwMyw3ICsxNTcsNTYgQEAgcHVibGlj
OgogICAgIH0KICAgICAKIHByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+
CisgICAgYm9vbCB3YWl0Rm9yU2Vjb25kc0ltcGwoTG9ja1R5cGUmIGxvY2ssIGRvdWJsZSByZWxh
dGl2ZVRpbWVvdXRTZWNvbmRzKQorICAgIHsKKyAgICAgICAgZG91YmxlIHJlbGF0aXZlVGltZW91
dE5hbm9zZWNvbmRzID0gcmVsYXRpdmVUaW1lb3V0U2Vjb25kcyAqICgxMDAwLjAgKiAxMDAwLjAg
KiAxMDAwLjApOworICAgICAgICAKKyAgICAgICAgaWYgKCEocmVsYXRpdmVUaW1lb3V0TmFub3Nl
Y29uZHMgPiAwKSkgeworICAgICAgICAgICAgLy8gVGhpcyBoYW5kbGVzIGluc3RhLXRpbWVvdXRz
IGFzIHdlbGwgYXMgTmFOLgorICAgICAgICAgICAgbG9jay51bmxvY2soKTsKKyAgICAgICAgICAg
IGxvY2subG9jaygpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHJlbGF0aXZlVGltZW91dE5hbm9zZWNvbmRzID4gc3RhdGljX2Nhc3Q8ZG91Ymxl
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptYXgoKSkpIHsKKyAgICAgICAgICAgIC8v
IElmIHRoZSB0aW1lb3V0IGluIG5hbm9zZWNvbmRzIGNhbm5vdCBiZSBleHByZXNzZWQgdXNpbmcg
YSA2NC1iaXQgaW50ZWdlciwgdGhlbiB3ZQorICAgICAgICAgICAgLy8gbWlnaHQgYXMgd2VsbCB3
YWl0IGZvcmV2ZXIuCisgICAgICAgICAgICB3YWl0KGxvY2spOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGF1dG8gcmVsYXRpdmVUaW1lb3V0
ID0KKyAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyhzdGF0aWNfY2FzdDxpbnQ2
NF90PihyZWxhdGl2ZVRpbWVvdXROYW5vc2Vjb25kcykpOworCisgICAgICAgIHJldHVybiB3YWl0
Rm9ySW1wbChsb2NrLCByZWxhdGl2ZVRpbWVvdXQpOworICAgIH0KICAgICAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRHVyYXRpb25UeXBlPgorICAgIGJvb2wgd2Fp
dEZvckltcGwoTG9ja1R5cGUmIGxvY2ssIGNvbnN0IER1cmF0aW9uVHlwZSYgcmVsYXRpdmVUaW1l
b3V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChsb2NrLCBhYnNvbHV0ZUZyb21S
ZWxhdGl2ZShyZWxhdGl2ZVRpbWVvdXQpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEdXJhdGlvblR5cGU+CisgICAgQ2xvY2s6OnRpbWVfcG9pbnQgYWJzb2x1dGVGcm9tUmVsYXRp
dmUoY29uc3QgRHVyYXRpb25UeXBlJiByZWxhdGl2ZVRpbWVvdXQpCisgICAgeworICAgICAgICBp
ZiAocmVsYXRpdmVUaW1lb3V0IDwgRHVyYXRpb25UeXBlOjp6ZXJvKCkpCisgICAgICAgICAgICBy
ZXR1cm4gQ2xvY2s6OnRpbWVfcG9pbnQ6Om1pbigpOworCisgICAgICAgIGlmIChyZWxhdGl2ZVRp
bWVvdXQgPiBDbG9jazo6ZHVyYXRpb246Om1heCgpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGlz
IGhpZ2hseSB1bmxpa2VseS4gQnV0IGlmIGl0IGhhcHBlbnMsIHdlIHdhbnQgdG8gbm90IGRvIGFu
eXRoaW5nIGR1bWIuIFNsZWVwaW5nCisgICAgICAgICAgICAvLyB3aXRob3V0IGEgdGltZW91dCBz
ZWVtcyBzZW5zaWJsZSB3aGVuIHRoZSB0aW1lb3V0IGR1cmF0aW9uIGlzIGdyZWF0ZXIgdGhhbiB3
aGF0IGNhbiBiZQorICAgICAgICAgICAgLy8gZXhwcmVzc2VkIHVzaW5nIHN0ZWFkeV9jbG9jay4K
KyAgICAgICAgICAgIHJldHVybiBDbG9jazo6dGltZV9wb2ludDo6bWF4KCk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIENsb2NrOjpkdXJhdGlvbiBteVJlbGF0aXZlVGltZW91dCA9Cisg
ICAgICAgICAgICBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxDbG9jazo6ZHVyYXRpb24+KHJl
bGF0aXZlVGltZW91dCk7CisKKyAgICAgICAgcmV0dXJuIENsb2NrOjpub3coKSArIG15UmVsYXRp
dmVUaW1lb3V0OworICAgIH0KKwogICAgIHVpbnQ4X3QgbV9kdW1teTsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L01lc3NhZ2VRdWV1ZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9NZXNz
YWdlUXVldWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMzIsNyArMzIsOSBAQAogCiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Nyw4ICs3OSw4IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgICAgICBzdGF0aWMgZG91YmxlIGluZmluaXRlVGltZSgpIHsg
cmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCk7IH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKKyAgICAgICAg
Q29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8RGF0
YVR5cGU+PiBtX3F1ZXVlOwogICAgICAgICBib29sIG1fa2lsbGVkOwogICAgIH07CkBAIC05MSwz
NyArOTMsMzcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKHN0ZDo6
dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAg
ICAgbV9xdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRp
b24uc2lnbmFsKCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSB2b2lkIE1lc3NhZ2VR
dWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwoc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBt
ZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEY6
Om1vdmUobWVzc2FnZSkpOwogICAgICAgICBtX2tpbGxlZCA9IHRydWU7Ci0gICAgICAgIG1fY29u
ZGl0aW9uLmJyb2FkY2FzdCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsKICAg
ICB9CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHF1ZXVlIHdhcyBlbXB0eSBiZWZvcmUg
dGhlIGl0ZW0gd2FzIGFkZGVkLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAg
IGlubGluZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZENoZWNrRW1wdHko
c3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwog
ICAgICAgICBib29sIHdhc0VtcHR5ID0gbV9xdWV1ZS5pc0VtcHR5KCk7CiAgICAgICAgIG1fcXVl
dWUuYXBwZW5kKFdURjo6bW92ZShtZXNzYWdlKSk7Ci0gICAgICAgIG1fY29uZGl0aW9uLnNpZ25h
bCgpOworICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICAgICAgcmV0dXJuIHdh
c0VtcHR5OwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlu
bGluZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OnByZXBlbmQoc3RkOjp1bmlxdWVfcHRy
PERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211
dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBtX3F1ZXVl
LnByZXBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKLSAgICAgICAgbV9jb25kaXRpb24uc2lnbmFs
KCk7CisgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERhdGFUeXBlPgpAQCAtMTM3LDcgKzEzOSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgYXV0byBNZXNz
YWdlUXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQoTWVz
c2FnZVF1ZXVlV2FpdFJlc3VsdCYgcmVzdWx0LCBQcmVkaWNhdGUmJiBwcmVkaWNhdGUsIGRvdWJs
ZSBhYnNvbHV0ZVRpbWUpIC0+IHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4KICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayht
X211dGV4KTsKICAgICAgICAgYm9vbCB0aW1lZE91dCA9IGZhbHNlOwogCiAgICAgICAgIGF1dG8g
Zm91bmQgPSBtX3F1ZXVlLmVuZCgpOwpAQCAtMTQ5LDcgKzE1MSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgICAgICAgICAgaWYgKGZvdW5kICE9IG1fcXVldWUuZW5kKCkpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHRpbWVkT3V0ID0gIW1fY29uZGl0aW9uLnRpbWVkV2Fp
dChtX211dGV4LCBhYnNvbHV0ZVRpbWUpOworICAgICAgICAgICAgdGltZWRPdXQgPSAhbV9jb25k
aXRpb24ud2FpdFVudGlsV2FsbENsb2NrU2Vjb25kcyhtX211dGV4LCBhYnNvbHV0ZVRpbWUpOwog
ICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCF0aW1lZE91dCB8fCBhYnNvbHV0ZVRpbWUgIT0g
aW5maW5pdGVUaW1lKCkpOwpAQCAtMTc0LDcgKzE3Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBhdXRvIE1lc3NhZ2VRdWV1
ZTxEYXRhVHlwZT46OnRyeUdldE1lc3NhZ2UoKSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCkBAIC0xODYs
NyArMTg4LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIGF1dG8gTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6dHJ5R2V0TWVzc2Fn
ZUlnbm9yaW5nS2lsbGVkKCkgLT4gc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbXV0ZXgpOwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIApAQCAtMTk3LDcgKzE5OSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVl
dWU8RGF0YVR5cGU+OjpyZW1vdmVJZihQcmVkaWNhdGUmJiBwcmVkaWNhdGUpCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2so
bV9tdXRleCk7CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBhdXRvIGZvdW5k
ID0gbV9xdWV1ZS5maW5kSWYoWyZwcmVkaWNhdGVdKGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxEYXRh
VHlwZT4mIHB0cikgLT4gYm9vbCB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHB0cik7CkBAIC0y
MTQsNyArMjE2LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0
YVR5cGU+CiAgICAgaW5saW5lIGJvb2wgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6aXNFbXB0eSgp
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gbV9xdWV1ZS5pc0VtcHR5KCk7CkBAIC0yMjMs
MTUgKzIyNSwxNSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRh
VHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpraWxsKCkKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9raWxsZWQgPSB0cnVlOwotICAgICAgICBtX2Nv
bmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGJvb2wg
TWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6a2lsbGVkKCkgY29uc3QKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4
KTsKICAgICAgICAgcmV0dXJuIG1fa2lsbGVkOwogICAgIH0KIH0gLy8gbmFtZXNwYWNlIFdURgpJ
bmRleDogU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDUsMTcgKzEwNSwxNyBAQCBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVh
ZFByaXZhdGU6CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6ZXhl
Y3V0ZShUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwgdm9pZCogcGFyYW1ldGVycykKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211
dGV4KTsKIAogICAgIG1fdGhyZWFkRnVuY3Rpb24gPSB0aHJlYWRGdW5jdGlvbjsKICAgICBtX3Bh
cmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgIG1fcnVubmluZyA9IHRydWU7Ci0gICAgbV90aHJl
YWRDb25kaXRpb24uc2lnbmFsKCk7CisgICAgbV90aHJlYWRDb25kaXRpb24ubm90aWZ5T25lKCk7
CiB9CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZp
bmlzaCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CiAKICAgICB3aGlsZSAobV9ydW5uaW5nKQogICAgICAgICBtX3RocmVh
ZENvbmRpdGlvbi53YWl0KG1fbXV0ZXgpOwpAQCAtMTI0LDE0ICsxMjQsMTQgQEAgdm9pZCBQYXJh
bGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOgogdm9pZCBQYXJhbGxlbEVudmlyb25tZW50
OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJUaHJlYWQodm9pZCogdGhyZWFkRGF0YSkKIHsKICAgICBU
aHJlYWRQcml2YXRlKiBzaGFyZWRUaHJlYWQgPSByZWludGVycHJldF9jYXN0PFRocmVhZFByaXZh
dGUqPih0aHJlYWREYXRhKTsKLSAgICBNdXRleExvY2tlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CiAKICAg
ICB3aGlsZSAoc2hhcmVkVGhyZWFkLT5tX3RocmVhZElEKSB7CiAgICAgICAgIGlmIChzaGFyZWRU
aHJlYWQtPm1fcnVubmluZykgewogICAgICAgICAgICAgKCpzaGFyZWRUaHJlYWQtPm1fdGhyZWFk
RnVuY3Rpb24pKHNoYXJlZFRocmVhZC0+bV9wYXJhbWV0ZXJzKTsKICAgICAgICAgICAgIHNoYXJl
ZFRocmVhZC0+bV9ydW5uaW5nID0gZmFsc2U7CiAgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1f
cGFyZW50ID0gMDsKLSAgICAgICAgICAgIHNoYXJlZFRocmVhZC0+bV90aHJlYWRDb25kaXRpb24u
c2lnbmFsKCk7CisgICAgICAgICAgICBzaGFyZWRUaHJlYWQtPm1fdGhyZWFkQ29uZGl0aW9uLm5v
dGlmeU9uZSgpOwogICAgICAgICB9CiAKICAgICAgICAgc2hhcmVkVGhyZWFkLT5tX3RocmVhZENv
bmRpdGlvbi53YWl0KHNoYXJlZFRocmVhZC0+bV9tdXRleCk7CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAKIAog
I2lmIEVOQUJMRShUSFJFQURJTkdfR0VORVJJQykKIAorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC03Niw4ICs3OCw4IEBAIHB1YmxpYzoKICAg
ICAgICAgYm9vbCBtX3J1bm5pbmc7CiAgICAgICAgIFBhcmFsbGVsRW52aXJvbm1lbnQqIG1fcGFy
ZW50OwogCi0gICAgICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsKLSAgICAgICAgVGhyZWFkQ29u
ZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOworICAgICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsK
KyAgICAgICAgQ29uZGl0aW9uIG1fdGhyZWFkQ29uZGl0aW9uOwogCiAgICAgICAgIFRocmVhZEZ1
bmN0aW9uIG1fdGhyZWFkRnVuY3Rpb247CiAgICAgICAgIHZvaWQqIG1fcGFyYW1ldGVyczsKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1BhcmtpbmdMb3QuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV1RGL3d0
Zi9QYXJraW5nTG90LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTExLDcgKzUxMSw3IEBAIGJvb2wg
UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHkoCiAgICAgY29uc3Qgdm9pZCogYWRkcmVzcywK
ICAgICBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4gdmFsaWRhdGlvbiwKICAgICBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gYmVmb3JlU2xlZXAsCi0gICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGlt
ZV9wb2ludCB0aW1lb3V0KQorICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpCiB7CiAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2codG9TdHJpbmcoY3VycmVudFRocmVhZCgpLCAi
OiBwYXJraW5nLlxuIikpOwpAQCAtNTM5LDExICs1MzksMTEgQEAgYm9vbCBQYXJraW5nTG90Ojpw
YXJrQ29uZGl0aW9uYWxseSgKICAgICBib29sIGRpZEdldERlcXVldWVkOwogICAgIHsKICAgICAg
ICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrZXIobWUtPnBhcmtpbmdMb2NrKTsK
LSAgICAgICAgd2hpbGUgKG1lLT5hZGRyZXNzICYmIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
Om5vdygpIDwgdGltZW91dCkgeworICAgICAgICB3aGlsZSAobWUtPmFkZHJlc3MgJiYgQ2xvY2s6
Om5vdygpIDwgdGltZW91dCkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyBwcmV0dHkgZnVubnku
IE9uIExpbnV4LCBpZiB5b3Ugd2FpdCB1bnRpbCB0aGUgbWF4IHRpbWUsIGl0IGltbWVkaWF0ZWx5
IHJlcG9ydHMgdGhhdCB5b3UgdGltZWQKICAgICAgICAgICAgIC8vIG91dC4gV2hhdCdzIHBhcnRp
Y3VsYXJseSBiYWQgYWJvdXQgdGhpcyBpcyB0aGF0IGl0IG5ldmVyIHJlbGVhc2VzIHRoZSBsb2Nr
IGluIHRoYXQgY2FzZS4gU28sIHlvdSBsb29wCiAgICAgICAgICAgICAvLyBmb3JldmVyIHdpdGhv
dXQgeWllbGRpbmcgdG8gdGhlIHRocmVhZCB0aGF0IHdvdWxkIHdha2UgeW91IHVwLgotICAgICAg
ICAgICAgaWYgKHRpbWVvdXQgPT0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2lu
dDo6bWF4KCkpCisgICAgICAgICAgICBpZiAodGltZW91dCA9PSBDbG9jazo6dGltZV9wb2ludDo6
bWF4KCkpCiAgICAgICAgICAgICAgICAgbWUtPnBhcmtpbmdDb25kaXRpb24ud2FpdChsb2NrZXIp
OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1lLT5wYXJraW5nQ29uZGl0aW9u
LndhaXRfdW50aWwobG9ja2VyLCB0aW1lb3V0KTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1Bhcmtp
bmdMb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmgJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNiArMzgsOCBAQCBjbGFzcyBQYXJraW5nTG90IHsKICAgICBQYXJraW5nTG90KGNv
bnN0IFBhcmtpbmdMb3QmKSA9IGRlbGV0ZTsKIAogcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jayBDbG9jazsKKyAgICAKICAgICAvLyBQYXJrcyB0aGUgdGhyZWFk
IGluIGEgcXVldWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBhZGRyZXNzLCB3aGljaCBjYW5u
b3QgYmUgbnVsbC4gVGhlCiAgICAgLy8gcGFya2luZyBvbmx5IHN1Y2NlZWRzIGlmIHRoZSB2YWxp
ZGF0aW9uIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSB3aGlsZSB0aGUgcXVldWUgbG9jayBpcyBoZWxk
LgogICAgIC8vIElmIHZhbGlkYXRpb24gcmV0dXJucyBmYWxzZSwgaXQgd2lsbCB1bmxvY2sgdGhl
IGludGVybmFsIHBhcmtpbmcgcXVldWUgYW5kIHRoZW4gaXQgd2lsbApAQCAtNTMsNyArNTUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IHZvaWQqIGFkZHJlc3MsCiAgICAgICAgIHN0ZDo6ZnVu
Y3Rpb248Ym9vbCgpPiB2YWxpZGF0aW9uLAogICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4g
YmVmb3JlU2xlZXAsCi0gICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9p
bnQgdGltZW91dCk7CisgICAgICAgIENsb2NrOjp0aW1lX3BvaW50IHRpbWVvdXQpOwogCiAgICAg
Ly8gU2ltcGxlIHZlcnNpb24gb2YgcGFya0NvbmRpdGlvbmFsbHkoKSB0aGF0IGNvdmVycyB0aGUg
bW9zdCBjb21tb24gY2FzZTogeW91IHdhbnQgdG8gcGFyawogICAgIC8vIGluZGVmaW5pdGVseSBz
byBsb25nIGFzIHRoZSB2YWx1ZSBhdCB0aGUgZ2l2ZW4gYWRkcmVzcyBoYXNuJ3QgY2hhbmdlZC4K
QEAgLTY3LDcgKzY5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9
PSBleHBlY3RlZDsKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICBbXSAoKSB7IH0sCi0gICAg
ICAgICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50OjptYXgoKSk7Cisg
ICAgICAgICAgICBDbG9jazo6dGltZV9wb2ludDo6bWF4KCkpOwogICAgIH0KIAogICAgIC8vIFVu
cGFya3Mgb25lIHRocmVhZCBmcm9tIHRoZSBxdWV1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVu
IGFkZHJlc3MsIHdoaWNoIGNhbm5vdCBiZSBudWxsLgpAQCAtMTAzLDcgKzEwNSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBBMSxUMSBBMixUMyBBMSxUMiBBMixUNAogICAgIC8vIEExLFQxIEEyLFQzIEEy
LFQ0IEExLFQyCiAgICAgLy8KLSAgICAvLyBBcyB3ZWxsIGFzIG1hbnkgb3RoZXIgcG9zc2libGUg
aW50ZXJsZWF2ZXMgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBi
dXQgYXJlCisgICAgLy8gQXMgd2VsbCBhcyBtYW55IG90aGVyIHBvc3NpYmxlIGludGVybGVhdmlu
Z3MgdGhhdCBhbGwgaGF2ZSBUMSBiZWZvcmUgVDIgYW5kIFQzIGJlZm9yZSBUNCBidXQgYXJlCiAg
ICAgLy8gb3RoZXJ3aXNlIHVuY29uc3RyYWluZWQuIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBwcmlt
YXJpbHkgZm9yIGRlYnVnZ2luZy4gSXQncyBhbHNvIHVzZWQgYnkgdW5pdAogICAgIC8vIHRlc3Rz
LgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBmb3JFYWNoKHN0ZDo6ZnVuY3Rp
b248dm9pZChUaHJlYWRJZGVudGlmaWVyLCBjb25zdCB2b2lkKik+KTsKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDcgKzEyNiw2
IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgVGhyZWFkSWRlbnRpZmllckRhdGE6
OmluaXRpYWxpemVPbmNlKCk7CiAgICAgU3RhY2tTdGF0czo6aW5pdGlhbGl6ZSgpOwogICAgIHd0
ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAgIGluaXRp
YWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHJldmlzaW9u
IDE4ODU2OSkKKysrIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2NSw3ICsxNjUsNiBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogICAgIHRo
cmVhZE1hcE11dGV4KCk7CiAgICAgaW5pdGlhbGl6ZVJhbmRvbU51bWJlckdlbmVyYXRvcigpOwog
ICAgIHd0ZlRocmVhZERhdGEoKTsKLSAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAg
IGluaXRpYWxpemVEYXRlcygpOwogfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dURi93dGYvZHRvYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBA
CiAgKiBUaGUgYXV0aG9yIG9mIHRoaXMgc29mdHdhcmUgaXMgRGF2aWQgTS4gR2F5LgogICoKICAq
IENvcHlyaWdodCAoYykgMTk5MSwgMjAwMCwgMjAwMSBieSBMdWNlbnQgVGVjaG5vbG9naWVzLgot
ICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMiwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCwgMjAxMiwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwg
YW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CiAgKiBwdXJwb3NlIHdpdGhvdXQg
ZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoaXMgZW50aXJlIG5vdGljZQpA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImR0b2EuaCIKIAogI2luY2x1ZGUgPHN0ZGlvLmg+
CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01NCw3
ICs1NSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1NdXRleCogc19kdG9hUDVNdXRleDsKK3N0
YXRpYyBTdGF0aWNMb2NrIHNfZHRvYVA1TXV0ZXg7CiAKIHR5cGVkZWYgdW5pb24gewogICAgIGRv
dWJsZSBkOwpAQCAtMzc1LDcgKzM3Niw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93
NW11bHQoQmlnSW4KICAgICBpZiAoIShrID4+PSAyKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
c19kdG9hUDVNdXRleC0+bG9jaygpOworICAgIHNfZHRvYVA1TXV0ZXgubG9jaygpOwogICAgIFA1
Tm9kZSogcDUgPSBwNXM7CiAKICAgICBpZiAoIXA1KSB7CkBAIC0zODgsNyArMzg5LDcgQEAgc3Rh
dGljIEFMV0FZU19JTkxJTkUgdm9pZCBwb3c1bXVsdChCaWdJbgogICAgIH0KIAogICAgIGludCBw
NXNDb3VudExvY2FsID0gcDVzQ291bnQ7Ci0gICAgc19kdG9hUDVNdXRleC0+dW5sb2NrKCk7Cisg
ICAgc19kdG9hUDVNdXRleC51bmxvY2soKTsKICAgICBpbnQgcDVzVXNlZCA9IDA7CiAKICAgICBm
b3IgKDs7KSB7CkBAIC0zOTksNyArNDAwLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBw
b3c1bXVsdChCaWdJbgogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKCsrcDVzVXNl
ZCA9PSBwNXNDb3VudExvY2FsKSB7Ci0gICAgICAgICAgICBzX2R0b2FQNU11dGV4LT5sb2NrKCk7
CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LmxvY2soKTsKICAgICAgICAgICAgIGlmIChwNXNV
c2VkID09IHA1c0NvdW50KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFwNS0+bmV4dCk7CiAg
ICAgICAgICAgICAgICAgcDUtPm5leHQgPSBuZXcgUDVOb2RlOwpAQCAtNDEwLDcgKzQxMSw3IEBA
IHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgcG93NW11bHQoQmlnSW4KICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgcDVzQ291bnRMb2NhbCA9IHA1c0NvdW50OwotICAgICAgICAgICAgc19k
dG9hUDVNdXRleC0+dW5sb2NrKCk7CisgICAgICAgICAgICBzX2R0b2FQNU11dGV4LnVubG9jaygp
OwogICAgICAgICB9CiAgICAgICAgIHA1ID0gcDUtPm5leHQ7CiAgICAgfQpJbmRleDogU291cmNl
L1dURi93dGYvZHRvYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2R0b2EuaAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dURi93dGYvZHRvYS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCwxMCArMjgsNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotY2xhc3MgTXV0ZXg7Ci0KLWV4
dGVybiBNdXRleCogc19kdG9hUDVNdXRleDsKLQogdHlwZWRlZiBjaGFyIER0b2FCdWZmZXJbODBd
OwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdG9hKER0b2FCdWZmZXIgcmVzdWx0LCBkb3Vi
bGUgZGQsIGJvb2wmIHNpZ24sIGludCYgZXhwb25lbnQsIHVuc2lnbmVkJiBwcmVjaXNpb24pOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjc0IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5n
IHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugbm8gbmV3IGJl
aGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29k
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3ApOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbUF1ZGlvU291cmNlOjphZGRBdWRpb0NvbnN1bWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6c2V0QXVkaW9Gb3JtYXQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y29uc3VtZUF1ZGlvKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBs
ZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6aGFzUGVuZGluZ1RyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUYXNrU3luY2hyb25pemVyOjp0YXNrQ29tcGxldGVkKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJl
YWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRo
cmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZXRyeUNhbkVzdGFibGlzaERh
dGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6aGFzRW50cnlGb3JP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRNYXhTaXplRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpjbG9zZUFsbERh
dGFiYXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmZ1bGxQYXRoRm9y
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpvcmlnaW5zKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZGF0YWJhc2VOYW1lc0Zvck9yaWdp
bik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmRldGFpbHNGb3JOYW1lQW5k
T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VE
ZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZG9uZUNyZWF0aW5n
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpyZW1vdmVPcGVuRGF0
YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpnZXRPcGVuRGF0YWJh
c2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3JpZ2luTG9ja0Zvcik6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnF1b3RhRm9yT3JpZ2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0UXVvdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OnJlbW92ZURlbGV0ZWRPcGVuZWREYXRhYmFzZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGVJZkVtcHR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNlTXV0ZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bm90aWZpY2F0aW9uTXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2Vy
OjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6Om5vdGlmeURhdGFiYXNlc0NoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxs
YmFja1dyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTENhbGxiYWNrV3JhcHBlcjo6Y2xl
YXIpOgorICAgICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjp1bndyYXApOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjpoYXNDYWxsYmFjayk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXApOgorICAgICAgICAo
V2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjplbnF1ZXVlU3RhdGVtZW50QmFja2VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmdldE5leHRTdGF0ZW1l
bnQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5k
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpzY2hlZHVsZUV4ZWN1dGlv
blRlcm1pbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6
OmlzRXhlY3V0aW9uVGVybWluYXRpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OnBv
c3RNZXNzYWdlVG9SZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVs
Ojp0cnlHZXRNZXNzYWdlRnJvbVJlbW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWw6OmlzQ29ubmVjdGVkVG8pOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRD
aGFubmVsOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBv
cnRDaGFubmVsOjpsb2NhbGx5RW50YW5nbGVkUG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6c2V0UmVtb3RlUG9ydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6ZW50YW5nbGVkQ2hhbm5lbCk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y2xvc2VJbnRlcm5hbCk6Cisg
ICAgICAgICogZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaDoKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNv
bkRhdGFiYXNlOjpyZW1vdmVBbGxJY29ucyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRh
dGFiYXNlOjpzeW5jaHJvbm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYkNv
cmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTCk6CisgICAgICAg
IChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAgICAgICAg
KFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJldGFpbkljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29uRm9yUGFnZVVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJM
KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNMb2FkRGVjaXNp
b25Gb3JJY29uVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6c3luY2hyb25v
dXNJY29uRGF0YUtub3duRm9ySWNvblVSTCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OnBhZ2VVUkxNYXBwaW5nQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpyZXRhaW5lZFBhZ2VVUkxDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6
Omljb25SZWNvcmRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omljb25S
ZWNvcmRDb3VudFdpdGhEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6d2Fr
ZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpzY2hlZHVsZU9y
RGVmZXJTeW5jVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjppc09wZW5C
ZXNpZGVzTWFpblRocmVhZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OmdldE9y
Q3JlYXRlUGFnZVVSTFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Omlj
b25EYXRhYmFzZVN5bmNUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpw
ZXJmb3JtT3BlbkluaXRpYWxpemF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cGVyZm9ybVVSTEltcG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnN5
bmNUaHJlYWRNYWluTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnBlcmZv
cm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SWNvbkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25E
YXRhYmFzZTo6d3JpdGVUb0RhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFz
ZTo6cHJ1bmVVbnJldGFpbmVkSWNvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpjbGVhbnVwU3luY1RocmVhZCk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25v
dXNseSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Ny
b2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aXNQb2ludElu
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjpzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZTo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1Njcm9sbFNuYXBwaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldENhblJ1YmJlckJhbmRTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVmdCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0UmlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxQaW5uaW5nQmVoYXZpb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpjbGVhckxhdGNoZWROb2RlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6d2FpdEZvckxvYWRlclRo
cmVhZENvbXBsZXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxv
YWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXRSZWNl
aXZlZE1lbW9yeVByZXNzdXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6Y2xlYXJNZW1vcnlQcmVzc3VyZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OnNob3VsZFdhaXRGb3JNZW1vcnlDbGVhck1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUlm
TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5
RGlkUmVmcmVzaCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnNldE1v
bm90b25pY0FuaW1hdGlvblN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3I6Om11dGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0RGVsYXlDYWxsYmFja3MpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1h
aW5UaHJlYWRQZW5kaW5nRmxhZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246OmRpc3BhdGNoTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6
OmNhbGxiYWNrQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjp+QVZGV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjptYXBMb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6OkFWRldyYXBwZXI6OmFkZFRvTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldy
YXBwZXI6OnJlbW92ZUZyb21NYXApOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cGVy
aW9kaWNUaW1lT2JzZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVy
Ojpwcm9jZXNzTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6Omxv
YWRQbGF5YWJsZUNvbXBsZXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFw
cGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
QVZGV3JhcHBlcjo6c2Vla0NvbXBsZXRlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFW
RldyYXBwZXI6OnByb2Nlc3NDdWUpOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6bGVn
aWJsZU91dHB1dENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OnByb2Nl
c3NTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6QVZG
V3JhcHBlcjo6cmVzb3VyY2VMb2FkZXJTaG91bGRXYWl0Rm9yTG9hZGluZ09mUmVxdWVzdGVkUmVz
b3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFj
a1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXI6OnRhZ3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6cmVxdWVz
dFJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjphZGRMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OnJlbW92ZUxp
c3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbjo6bm90aWZ5RGVsZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Okludm9rZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJhY2s6Om9u
TWVkaWFQbGF5ZXJEZWxldGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L0xlZ2FjeVRpbGVDYWNoZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2Fj
aGUubW06CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRpbGVzT3BhcXVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6ZG9MYXlvdXRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldEN1cnJlbnRTY2FsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmNvbW1pdFNjYWxlQ2hhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6bGF5b3V0VGlsZXNOb3cpOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpsYXlvdXRUaWxlc05vd0ZvclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxUaWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUZvcmVncm91bmRUaWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldENvbnRlbnRSZXBsYWNlbWVudElt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6Y29udGVudFJlcGxhY2Vt
ZW50SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjp0aWxlQ3JlYXRp
b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0TmVl
ZHNEaXNwbGF5SW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dXBk
YXRlVGlsaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNldFRp
bGluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpkb1BlbmRpbmdS
ZXBhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OmZsdXNoU2F2ZWRE
aXNwbGF5UmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUNhY2hlOjpwcmVwYXJl
VG9EcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6YWRkTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6dGFrZUxheWVyV2l0aFNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6cHJ1bmUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5
VGlsZUxheWVyUG9vbDo6ZHJhaW4pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsRG93bmxvYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnJlbW92ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjpnZXRBY3RpdmVEb3dubG9hZENv
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OmdldFBlbmRpbmdE
b3dubG9hZENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnN0
b3BUaHJlYWRJZklkbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkTWFuYWdlcjo6
dXBkYXRlSGFuZGxlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6On5DdXJs
RG93bmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjppbml0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Z2V0VGVtcFBhdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybERvd25sb2FkOjpnZXRVcmwpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2Fk
OjpnZXRSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmNsb3NlRmls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVIZWFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZEZhaWwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZUph
clBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkUmVzb3VyY2VNdXRleCk6CisgICAgICAg
IChXZWJDb3JlOjpjdXJsX2xvY2tfY2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Y3VybF91
bmxvY2tfY2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9v
ay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlFMRGlyZWN0b3J5QXR0cmlidXRlcyk6CisgICAgICAg
IChxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgpOgorICAgICAgICAoV2ViQ29yZTo6
YWRkUUxQcmV2aWV3Q29udmVydGVyV2l0aEZpbGVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
cWxQcmV2aWV3Q29udmVydGVyVVRJRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVFM
UHJldmlld0NvbnZlcnRlckZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpzYWZlUUxVUkxGb3JE
b2N1bWVudFVSTEFuZFJlc291cmNlVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmNsb3NlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjptYXhpbXVtU2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6c2V0TWF4aW11bVNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6OnBhZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0
ZURhdGFiYXNlOjpmcmVlU3BhY2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFi
YXNlOjp0b3RhbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnJ1bklu
Y3JlbWVudGFsVmFjdXVtQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFz
ZTo6c2V0QXV0aG9yaXplcik6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6ZGF0YWJhc2VNdXRleCk6Cisg
ICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTUUxpdGVTdGF0ZW1lbnQ6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRl
U3RhdGVtZW50OjpzdGVwKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZDo6c3RvcCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKwogMjAxNS0w
OC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCBjb25zdCB0byBjb250ZW50IGV4dGVuc2lvbiBwYXJzZXIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3Bw
CShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Fz
eW5jQXVkaW9EZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29kZXIoKQog
ewogICAgIC8vIFN0YXJ0IHdvcmtlciB0aHJlYWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3Ro
cmVhZENyZWF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOwogICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6
OnRocmVhZEVudHJ5LCB0aGlzLCAiQXVkaW8gRGVjb2RlciIpOwogfQogCkBAIC03Niw3ICs3Niw3
IEBAIHZvaWQgQXN5bmNBdWRpb0RlY29kZXI6OnJ1bkxvb3AoKQogCiAgICAgewogICAgICAgICAv
LyBXYWl0IGZvciB1bnRpbCB3ZSBoYXZlIG1fdGhyZWFkSUQgZXN0YWJsaXNoZWQgYmVmb3JlIHN0
YXJ0aW5nIHRoZSBydW4gbG9vcC4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENy
ZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11
dGV4KTsKICAgICB9CiAKICAgICAvLyBLZWVwIHJ1bm5pbmcgZGVjb2RpbmcgdGFza3MgdW50aWwg
d2UncmUga2lsbGVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3lu
Y0F1ZGlvRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5Mb29wKCk7CiAKICAgICBX
VEY6OlRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJRDsKLSAgICBNdXRleCBtX3RocmVhZENyZWF0
aW9uTXV0ZXg7CisgICAgTG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgTWVzc2FnZVF1
ZXVlPERlY29kaW5nVGFzaz4gbV9xdWV1ZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzgwLDcgKzM4MCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb25uZWN0
aW9uQ291bnQgeyAwIH07CiAKICAgICAvLyBHcmFwaCBsb2NraW5nLgotICAgIE11dGV4IG1fY29u
dGV4dEdyYXBoTXV0ZXg7CisgICAgTG9jayBtX2NvbnRleHRHcmFwaE11dGV4OwogICAgIHZvbGF0
aWxlIFRocmVhZElkZW50aWZpZXIgbV9hdWRpb1RocmVhZCB7IDAgfTsKICAgICB2b2xhdGlsZSBU
aHJlYWRJZGVudGlmaWVyIG1fZ3JhcGhPd25lclRocmVhZDsgLy8gaWYgdGhlIGxvY2sgaXMgaGVs
ZCB0aGVuIHRoaXMgaXMgdGhlIHRocmVhZCB3aGljaCBvd25zIGl0LCBvdGhlcndpc2UgPT0gVW5k
ZWZpbmVkVGhyZWFkSWRlbnRpZmllcgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHJldmlz
aW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDEzICs2MywxMyBAQCBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBNZWRpYVN0CiAKIHZvaWQgTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZTo6YWRkQXVkaW9Db25zdW1lcihQYXNzUmVmUHRyPEF1ZGlvRGVzdGluYXRpb25D
b25zdW1lcj4gY29uc3VtZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXVkaW9Db25z
dW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7
CiAgICAgbV9hdWRpb0NvbnN1bWVycy5hcHBlbmQoY29uc3VtZXIpOwogfQogCiBib29sIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2U6OnJlbW92ZUF1ZGlvQ29uc3VtZXIoQXVkaW9EZXN0aW5hdGlvbkNv
bnN1bWVyKiBjb25zdW1lcikKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdWRpb0NvbnN1
bWVyc0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsK
ICAgICBzaXplX3QgcG9zID0gbV9hdWRpb0NvbnN1bWVycy5maW5kKGNvbnN1bWVyKTsKICAgICBp
ZiAocG9zICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIG1fYXVkaW9Db25zdW1lcnMucmVtb3ZlKHBv
cyk7CkBAIC04MCwxNCArODAsMTQgQEAgYm9vbCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpyZW1v
dmVBdWRpbwogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OnNldEF1ZGlvRm9ybWF0KHNp
emVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9hdWRpb0NvbnN1bWVyc0xvY2spOwogICAgIGZvciAoYXV0byYgY29uc3VtZXIgOiBtX2F1ZGlv
Q29uc3VtZXJzKQogICAgICAgICBjb25zdW1lci0+c2V0Rm9ybWF0KG51bWJlck9mQ2hhbm5lbHMs
IHNhbXBsZVJhdGUpOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVB
dWRpbyhBdWRpb0J1cyogYnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fYXVkaW9Db25zdW1lcnNMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2F1ZGlvQ29uc3VtZXJzTG9jayk7CiAgICAgZm9yIChhdXRvJiBjb25zdW1lciA6IG1fYXVk
aW9Db25zdW1lcnMpCiAgICAgICAgIGNvbnN1bWVyLT5jb25zdW1lQXVkaW8oYnVzLCBudW1iZXJP
ZkZyYW1lcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvRGVzdGlu
YXRpb25Db25zdW1lci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02
NSw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpOwogCiAg
ICAgU3RyaW5nIG1fZGV2aWNlSWQ7Ci0gICAgTXV0ZXggbV9hdWRpb0NvbnN1bWVyc0xvY2s7Cisg
ICAgTG9jayBtX2F1ZGlvQ29uc3VtZXJzTG9jazsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvRGVz
dGluYXRpb25Db25zdW1lcj4+IG1fYXVkaW9Db25zdW1lcnM7CiAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlcyBtX2N1cnJlbnRTdGF0ZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysr
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xvc2UoKQogICAgIEFT
U0VSVChjdXJyZW50VGhyZWFkKCkgPT0gZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFk
KCktPmdldFRocmVhZElEKCkpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOwogCiAgICAgICAgIC8vIENsZWFuIHVwIHRy
YW5zYWN0aW9ucyB0aGF0IGhhdmUgbm90IGJlZW4gc2NoZWR1bGVkIHlldDoKICAgICAgICAgLy8g
VHJhbnNhY3Rpb24gcGhhc2UgMSBjbGVhbnVwLiBTZWUgY29tbWVudCBvbiAiV2hhdCBoYXBwZW5z
IGlmIGEKQEAgLTM1Myw3ICszNTMsNyBAQCBib29sIERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZl
cmlmeShib29sCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHsKICAgICAgICAgLy8gTWFrZSBzdXJl
IHdlIHdhaXQgdGlsbCB0aGUgYmFja2dyb3VuZCByZW1vdmFsIG9mIHRoZSBlbXB0eSBkYXRhYmFz
ZSBmaWxlcyBmaW5pc2hlZCBiZWZvcmUgdHJ5aW5nIHRvIG9wZW4gYW55IGRhdGFiYXNlLgotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIoRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRl
eCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0
YWJhc2VNdXRleCgpKTsKICAgICB9CiAjZW5kaWYKIApAQCAtNTY1LDcgKzU2NSw3IEBAIHZvaWQg
RGF0YWJhc2U6OnNjaGVkdWxlVHJhbnNhY3Rpb24oKQogCiBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0
aW9uQmFja2VuZD4gRGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FMVHJhbnNh
Y3Rpb24+IHRyYW5zYWN0aW9uLCBib29sIHJlYWRPbmx5LCBjb25zdCBDaGFuZ2VWZXJzaW9uRGF0
YSogZGF0YSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jl
c3NNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NN
dXRleCk7CiAgICAgaWYgKCFtX2lzVHJhbnNhY3Rpb25RdWV1ZUVuYWJsZWQpCiAgICAgICAgIHJl
dHVybiAwOwogCkBAIC01OTMsMTQgKzU5MywxNCBAQCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRy
YW5zYWN0aW9uU3RlcChTCiAKIHZvaWQgRGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNv
bXBsZXRlZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dy
ZXNzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dyZXNz
TXV0ZXgpOwogICAgIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzID0gZmFsc2U7CiAgICAgc2NoZWR1
bGVUcmFuc2FjdGlvbigpOwogfQogCiBib29sIERhdGFiYXNlOjpoYXNQZW5kaW5nVHJhbnNhY3Rp
b24oKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011
dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4
KTsKICAgICByZXR1cm4gbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3MgfHwgIW1fdHJhbnNhY3Rpb25R
dWV1ZS5pc0VtcHR5KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlRXJyb3IuaCIK
ICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2Miw3ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxEYXRhYmFzZUF1dGhvcml6ZXI+IG1fZGF0YWJhc2VBdXRob3JpemVyOwogCiAgICAgRGVxdWU8
UmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4+IG1fdHJhbnNhY3Rpb25RdWV1ZTsKLSAgICBN
dXRleCBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4OworICAgIExvY2sgbV90cmFuc2FjdGlv
bkluUHJvZ3Jlc3NNdXRleDsKICAgICBib29sIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzOwogICAg
IGJvb2wgbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFibGVkOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VGFzay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUzLDcgKzUz
LDcgQEAgdm9pZCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXI6OnRhc2tDb21wbAogewogICAgIG1f
c3luY2hyb25vdXNNdXRleC5sb2NrKCk7CiAgICAgbV90YXNrQ29tcGxldGVkID0gdHJ1ZTsKLSAg
ICBtX3N5bmNocm9ub3VzQ29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1fc3luY2hyb25vdXNDb25k
aXRpb24ubm90aWZ5T25lKCk7CiAgICAgbV9zeW5jaHJvbm91c011dGV4LnVubG9jaygpOwogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUYXNrLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMxLDggKzMxLDkgQEAKICNpbmNsdWRlICJEYXRhYmFzZUJhc2ljVHlwZXMuaCIKICNp
bmNsdWRlICJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25CYWNrZW5k
LmgiCisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC01OCw4ICs1OSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBib29sIG1fdGFza0Nv
bXBsZXRlZDsKLSAgICBNdXRleCBtX3N5bmNocm9ub3VzTXV0ZXg7Ci0gICAgVGhyZWFkQ29uZGl0
aW9uIG1fc3luY2hyb25vdXNDb25kaXRpb247CisgICAgTG9jayBtX3N5bmNocm9ub3VzTXV0ZXg7
CisgICAgQ29uZGl0aW9uIG1fc3luY2hyb25vdXNDb25kaXRpb247CiAjaWZuZGVmIE5ERUJVRwog
ICAgIGJvb2wgbV9oYXNDaGVja2VkRm9yVGVybWluYXRpb247CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBE
YXRhYmFzZVRocmVhZDo6fkRhdGFiYXNlVGhyZWFkKCkKIAogYm9vbCBEYXRhYmFzZVRocmVhZDo6
c3RhcnQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKIAogICAgIGlmICht
X3RocmVhZElEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lk
IERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZCgpCiB7CiAgICAgewogICAgICAgICAvLyBX
YWl0IGZvciBEYXRhYmFzZVRocmVhZDo6c3RhcnQoKSB0byBjb21wbGV0ZS4KLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJT
dGFydGVkIERhdGFiYXNlVGhyZWFkICVwIiwgdGhpcyk7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCShy
ZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgdm9pZCBkYXRhYmFzZVRocmVhZFN0YXJ0KHZvaWQqKTsKICAgICB2b2lkIGRh
dGFiYXNlVGhyZWFkKCk7CiAKLSAgICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CisgICAg
TG9jayBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CiAgICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVh
ZElEOwogICAgIFJlZlB0cjxEYXRhYmFzZVRocmVhZD4gbV9zZWxmUmVmOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNr
ZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcg
QEAgRGF0YWJhc2VUcmFja2VyOjpEYXRhYmFzZVRyYWNrZXIoY29uc3QgUwogCiB2b2lkIERhdGFi
YXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIEFTU0VSVCghbV9k
YXRhYmFzZS5pc09wZW4oKSk7CiAgICAgbV9kYXRhYmFzZURpcmVjdG9yeVBhdGggPSBwYXRoLmlz
b2xhdGVkQ29weSgpOwogfQpAQCAtMTY2LDcgKzE2Niw3IEBAIGJvb2wgRGF0YWJhc2VUcmFja2Vy
OjpjYW5Fc3RhYmxpc2hEYXRhYmEKIHsKICAgICBlcnJvciA9IERhdGFiYXNlRXJyb3I6Ok5vbmU7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIFNlY3VyaXR5T3Jp
Z2luKiBvcmlnaW4gPSBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpOwogCiAgICAgaWYgKGlzRGVs
ZXRpbmdEYXRhYmFzZU9yT3JpZ2luRm9yKG9yaWdpbiwgbmFtZSkpIHsKQEAgLTIxOCw3ICsyMTgs
NyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6cmV0cnlDYW5Fc3RhYmxpc2hECiB7CiAgICAgZXJy
b3IgPSBEYXRhYmFzZUVycm9yOjpOb25lOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNl
KG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFz
ZUd1YXJkKTsKICAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gY29udGV4dC0+c2VjdXJpdHlP
cmlnaW4oKTsKIAogICAgIC8vIFdlIGhhdmUgYWxyZWFkeSBlbGltaW5hdGVkIG90aGVyIHR5cGVz
IG9mIGVycm9ycyBpbiBjYW5Fc3RhYmxpc2hEYXRhYmFzZSgpLgpAQCAtMjU3LDcgKzI1Nyw3IEBA
IGJvb2wgRGF0YWJhc2VUcmFja2VyOjpoYXNFbnRyeUZvck9yaWdpbk4KIAogYm9vbCBEYXRhYmFz
ZVRyYWNrZXI6Omhhc0VudHJ5Rm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0g
ICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hv
bGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICByZXR1cm4gaGFzRW50cnlG
b3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKIH0KIApAQCAtMjg2LDcgKzI4Niw3IEBAIHVuc2lnbmVk
IGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OmdldE0KIHsKICAgICAvLyBUaGUgbWF4aW11bSBz
aXplIGZvciBhIGRhdGFiYXNlIGlzIHRoZSBmdWxsIHF1b3RhIGZvciBpdHMgb3JpZ2luLCBtaW51
cyB0aGUgY3VycmVudCB1c2FnZSB3aXRoaW4gdGhlIG9yaWdpbiwKICAgICAvLyBwbHVzIHRoZSBj
dXJyZW50IHVzYWdlIG9mIHRoZSBnaXZlbiBkYXRhYmFzZQotICAgIE11dGV4TG9ja2VyIGxvY2tE
YXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOworICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1f
ZGF0YWJhc2VHdWFyZCk7CiAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGRhdGFiYXNlLT5z
ZWN1cml0eU9yaWdpbigpOwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhID0gcXVvdGFG
b3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKQEAgLTMxMSw3ICszMTEsNyBAQCB2b2lkIERhdGFiYXNl
VHJhY2tlcjo6Y2xvc2VBbGxEYXRhYmFzZXMoCiB7CiAgICAgVmVjdG9yPFJlZjxEYXRhYmFzZT4+
IG9wZW5EYXRhYmFzZXM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBvcGVuRGF0YWJhc2VN
YXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAgICBMb2NrSG9sZGVyIG9wZW5E
YXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CiAgICAgICAgIGlmICghbV9v
cGVuRGF0YWJhc2VNYXApCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGZvciAoYXV0byYg
bmFtZU1hcCA6IG1fb3BlbkRhdGFiYXNlTWFwLT52YWx1ZXMoKSkgewpAQCAtMzg5LDEzICszODks
MTMgQEAgU3RyaW5nIERhdGFiYXNlVHJhY2tlcjo6ZnVsbFBhdGhGb3JEYXRhYgogCiBTdHJpbmcg
RGF0YWJhc2VUcmFja2VyOjpmdWxsUGF0aEZvckRhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5vdEV4aXN0cykKIHsKLSAgICBN
dXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIHJldHVybiBmdWxsUGF0aEZvckRh
dGFiYXNlTm9Mb2NrKG9yaWdpbiwgbmFtZSwgY3JlYXRlSWZOb3RFeGlzdHMpLmlzb2xhdGVkQ29w
eSgpOwogfQogCiB2b2lkIERhdGFiYXNlVHJhY2tlcjo6b3JpZ2lucyhWZWN0b3I8UmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPj4mIG9yaWdpbnNSZXN1bHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0Rh
dGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKIAogICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9l
c05vdEV4aXN0KTsKICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCkBAIC00NDgsNyArNDQ4
LDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRhdGFiYXNlTmFtZXNGb3JPcgogewogICAgIFZl
Y3RvcjxTdHJpbmc+IHRlbXA7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJh
c2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKICAgICAgICAgaWYgKCFkYXRhYmFzZU5hbWVzRm9yT3JpZ2luTm9Mb2Nr
KG9yaWdpbiwgdGVtcCkpCiAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTQ2NSw3
ICs0NjUsNyBAQCBEYXRhYmFzZURldGFpbHMgRGF0YWJhc2VUcmFja2VyOjpkZXRhaWxzCiAgICAg
aW50NjRfdCBleHBlY3RlZFVzYWdlOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
RGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJh
c2UobV9kYXRhYmFzZUd1YXJkKTsKIAogICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRD
cmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkK
QEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEZXRh
aWxzCiAgICAgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIgPSBvcmlnaW4tPmRhdGFiYXNlSWRlbnRp
ZmllcigpOwogICAgIGludDY0X3QgZ3VpZCA9IDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0
YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2Rh
dGFiYXNlR3VhcmQpOwogCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShDcmVhdGVJZkRvZXNOb3RF
eGlzdCk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNTQ5LDcgKzU0OSw3IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXREYXRhYmFzZURldGFpbHMKIAogdm9pZCBEYXRhYmFz
ZVRyYWNrZXI6OmRvbmVDcmVhdGluZ0RhdGFiYXNlKERhdGFiYXNlKiBkYXRhYmFzZSkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9s
ZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgIGRvbmVDcmVhdGluZ0RhdGFi
YXNlKGRhdGFiYXNlLT5zZWN1cml0eU9yaWdpbigpLCBkYXRhYmFzZS0+c3RyaW5nSWRlbnRpZmll
cigpKTsKIH0KIApAQCAtNTU5LDcgKzU1OSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjphZGRP
cGVuRGF0YWJhc2UoRGEKICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAg
ICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7
CiAKICAgICAgICAgaWYgKCFtX29wZW5EYXRhYmFzZU1hcCkKICAgICAgICAgICAgIG1fb3BlbkRh
dGFiYXNlTWFwID0gc3RkOjptYWtlX3VuaXF1ZTxEYXRhYmFzZU9yaWdpbk1hcD4oKTsKQEAgLTU4
OSw3ICs1ODksNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlT3BlbkRhdGFiYXNlCiAg
ICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNl
TWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVu
RGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogCiAgICAgICAgIGlmICgh
bV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtNjI5LDcgKzYyOSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVPcGVuRGF0YWJh
c2UKIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6OmdldE9wZW5EYXRhYmFzZXMoU2VjdXJpdHlPcmln
aW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBIYXNoU2V0PFJlZlB0cjxEYXRhYmFzZT4+
KiBkYXRhYmFzZXMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29w
ZW5EYXRhYmFzZU1hcEd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2so
bV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CiAgICAgaWYgKCFtX29wZW5EYXRhYmFzZU1hcCkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC02NDcsNyArNjQ3LDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6
OmdldE9wZW5EYXRhYmFzZXMoUwogCiBSZWZQdHI8T3JpZ2luTG9jaz4gRGF0YWJhc2VUcmFja2Vy
OjpvcmlnaW5Mb2NrRm9yKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0
YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKICAgICBTdHJpbmcgZGF0YWJhc2VJZGVudGlmaWVyID0g
b3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKTsKIAogICAgIC8vIFRoZSBvcmlnaW5Mb2NrTWFw
IGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgRGF0YWJhc2VUaHJlYWRzIHNpbmNlCkBAIC03Mjcs
MTMgKzcyNywxMyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFja2VyOjpxdW90CiAK
IHVuc2lnbmVkIGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OnF1b3RhRm9yT3JpZ2luKFNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0
YWJhc2VHdWFyZCk7CisgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJk
KTsKICAgICByZXR1cm4gcXVvdGFGb3JPcmlnaW5Ob0xvY2sob3JpZ2luKTsKIH0KIAogdm9pZCBE
YXRhYmFzZVRyYWNrZXI6OnNldFF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIHVuc2lnbmVk
IGxvbmcgbG9uZyBxdW90YSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OwogCiAgICAgaWYgKHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbikgPT0gcXVvdGEpCiAgICAg
ICAgIHJldHVybjsKQEAgLTg2NCw3ICs4NjQsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVs
ZXRlT3JpZ2luKFNlY3VyCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gZGF0YWJhc2VOYW1lczsKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAgICAg
ICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAgICAgICAg
IGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTg5MCw3ICs4OTAsNyBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKFNlY3Vy
CiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1
YXJkKTsKICAgICAgICAgZGVsZXRlT3JpZ2luTG9ja0ZvcihvcmlnaW4pOwogICAgICAgICBkb25l
RGVsZXRpbmdPcmlnaW4ob3JpZ2luKTsKIApAQCAtMTA3MSw3ICsxMDcxLDcgQEAgdm9pZCBEYXRh
YmFzZVRyYWNrZXI6OmRvbmVEZWxldGluZ09yaWdpbgogYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRl
bGV0ZURhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSkK
IHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3Vh
cmQpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwog
ICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKERvbnRDcmVhdGVJZkRvZXNOb3RFeGlzdCk7CiAg
ICAgICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEwODYsMTIgKzEwODYsMTIgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURh
dGFiYXNlKFNlYwogICAgIC8vIFdlIGRyb3AgdGhlIGxvY2sgaGVyZSBiZWNhdXNlIGhvbGRpbmcg
bG9ja3MgZHVyaW5nIGEgY2FsbCB0byBkZWxldGVEYXRhYmFzZUZpbGUgd2lsbCBkZWFkbG9jay4K
ICAgICBpZiAoIWRlbGV0ZURhdGFiYXNlRmlsZShvcmlnaW4sIG5hbWUpKSB7CiAgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIGRlbGV0ZSBmaWxlIGZvciBkYXRhYmFzZSAlcyBpbiBvcmlnaW4g
JXMiLCBuYW1lLmFzY2lpKCkuZGF0YSgpLCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpLmFz
Y2lpKCkuZGF0YSgpKTsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJh
c2VHdWFyZCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFy
ZCk7CiAgICAgICAgIGRvbmVEZWxldGluZ0RhdGFiYXNlKG9yaWdpbiwgbmFtZSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9k
YXRhYmFzZUd1YXJkKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3Vh
cmQpOwogCiAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiREVMRVRF
IEZST00gRGF0YWJhc2VzIFdIRVJFIG9yaWdpbj0/IEFORCBuYW1lPT8iKTsKICAgICBpZiAoc3Rh
dGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsKQEAgLTExMzEsNyArMTEzMSw3IEBAIGJv
b2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGUKIAogI2lmbmRlZiBOREVCVUcK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogICAg
ICAgICBBU1NFUlQoaXNEZWxldGluZ0RhdGFiYXNlT3JPcmlnaW5Gb3Iob3JpZ2luLCBuYW1lKSk7
CiAgICAgfQogI2VuZGlmCkBAIC0xMTQyLDcgKzExNDIsNyBAQCBib29sIERhdGFiYXNlVHJhY2tl
cjo6ZGVsZXRlRGF0YWJhc2VGaWxlCiAgICAgLy8gRGF0YWJhc2U6Om1hcmtBc0RlbGV0ZWRBbmRD
bG9zZSgpLCBzaW5jZSB0aGF0IGNhbiBjYXVzZSBhIGRlYWRsb2NrCiAgICAgLy8gZHVyaW5nIHRo
ZSBzeW5jaHJvbm91cyBEYXRhYmFzZVRocmVhZCBjYWxsIGl0IHRyaWdnZXJzLgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgb3BlbkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1
YXJkKTsKKyAgICAgICAgTG9ja0hvbGRlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFi
YXNlTWFwR3VhcmQpOwogICAgICAgICBpZiAobV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAg
ICAgIC8vIFRoZXJlIGFyZSBzb21lIG9wZW4gZGF0YWJhc2VzLCBsZXRzIGNoZWNrIGlmIHRoZXkg
YXJlIGZvciB0aGlzIG9yaWdpbi4KICAgICAgICAgICAgIERhdGFiYXNlTmFtZU1hcCogbmFtZU1h
cCA9IG1fb3BlbkRhdGFiYXNlTWFwLT5nZXQob3JpZ2luKTsKQEAgLTExODUsNyArMTE4NSw3IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVEZWxldGVkT3BlbmUKICAgICAKICAgICB7CiAg
ICAgICAgIC8vIEFjcXVpcmUgdGhlIGxvY2sgYmVmb3JlIGNhbGxpbmcgb3BlblRyYWNrZXJEYXRh
YmFzZS4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAgICAg
ICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9lc05vdEV4aXN0KTsKICAgICB9
CiAKQEAgLTEyMDEsNyArMTIwMSw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpyZW1vdmVEZWxl
dGVkT3BlbmUKICAgICAvLyBEYXRhYmFzZTo6bWFya0FzRGVsZXRlZEFuZENsb3NlKCksIHNpbmNl
IHRoYXQgY2FuIGNhdXNlIGEgZGVhZGxvY2sKICAgICAvLyBkdXJpbmcgdGhlIHN5bmNocm9ub3Vz
IERhdGFiYXNlVGhyZWFkIGNhbGwgaXQgdHJpZ2dlcnMuCiAgICAgewotICAgICAgICBNdXRleExv
Y2tlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOworICAgICAg
ICBMb2NrSG9sZGVyIG9wZW5EYXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7
CiAgICAgICAgIGlmIChtX29wZW5EYXRhYmFzZU1hcCkgewogICAgICAgICAgICAgZm9yIChhdXRv
JiBvcGVuRGF0YWJhc2UgOiAqbV9vcGVuRGF0YWJhc2VNYXApIHsKICAgICAgICAgICAgICAgICBh
dXRvJiBvcmlnaW4gPSBvcGVuRGF0YWJhc2Uua2V5OwpAQCAtMTMwNSw5ICsxMzA1LDkgQEAgYm9v
bCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmlsZQogICAgIHJldHVybiBTUUxpdGVG
aWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiB9CiAKLU11dGV4JiBEYXRhYmFz
ZVRyYWNrZXI6Om9wZW5EYXRhYmFzZU11dGV4KCkKK0xvY2smIERhdGFiYXNlVHJhY2tlcjo6b3Bl
bkRhdGFiYXNlTXV0ZXgoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNdXRleD4gbXV0
ZXg7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IG11dGV4OwogICAgIHJldHVybiBt
dXRleDsKIH0KIApAQCAtMTMzMCw5ICsxMzMwLDkgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnNl
dENsaWVudChEYXRhYmFzZQogICAgIG1fY2xpZW50ID0gY2xpZW50OwogfQogCi1zdGF0aWMgTXV0
ZXgmIG5vdGlmaWNhdGlvbk11dGV4KCkKK3N0YXRpYyBMb2NrJiBub3RpZmljYXRpb25NdXRleCgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE11dGV4PiBtdXRleDsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0x
MzQ2LDcgKzEzNDYsNyBAQCBzdGF0aWMgTm90aWZpY2F0aW9uUXVldWUmIG5vdGlmaWNhdGlvblF1
CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZChT
ZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG5vdGlmaWNhdGlvbk11dGV4KCkpOwogCiAgICAgbm90aWZpY2F0aW9uUXVldWUoKS5hcHBlbmQo
c3RkOjpwYWlyPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFN0cmluZz4ob3JpZ2luLT5pc29sYXRl
ZENvcHkoKSwgbmFtZS5pc29sYXRlZENvcHkoKSkpOwogICAgIHNjaGVkdWxlRm9yTm90aWZpY2F0
aW9uKCk7CkBAIC0xMzcyLDcgKzEzNzIsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6bm90aWZ5
RGF0YWJhc2VzQ2hhCiAKICAgICBOb3RpZmljYXRpb25RdWV1ZSBub3RpZmljYXRpb25zOwogICAg
IHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKIAogICAgICAgICBu
b3RpZmljYXRpb25zLnN3YXAobm90aWZpY2F0aW9uUXVldWUoKSk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaAko
cmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1Ymxp
YzoKICAgICAvLyBNb2JpbGVTYWZhcmkgd2lsbCBncmFiIHRoaXMgbXV0ZXggb24gdGhlIG1haW4g
dGhyZWFkIGJlZm9yZSBkaXNwYXRjaGluZyB0aGUgdGFzayB0byAKICAgICAvLyBjbGVhbiB1cCB6
ZXJvIGJ5dGUgZGF0YWJhc2UgZmlsZXMuICBBbnkgb3BlcmF0aW9ucyB0byBvcGVuIG5ldyBkYXRh
YmFzZSB3aWxsIGhhdmUgdG8KICAgICAvLyB3YWl0IGZvciB0aGF0IHRhc2sgdG8gZmluaXNoIGJ5
IHdhaXRpbmcgb24gdGhpcyBtdXRleC4KLSAgICBzdGF0aWMgTXV0ZXgmIG9wZW5EYXRhYmFzZU11
dGV4KCk7CisgICAgc3RhdGljIExvY2smIG9wZW5EYXRhYmFzZU11dGV4KCk7CiAgICAgCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tX
aWxsQmVTY2hlZHVsZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURh
dGFiYXNlRmlsZXNSZW1vdmFsVGFza0RpZEZpbmlzaCgpOwpAQCAtMTUwLDExICsxNTAsMTEgQEAg
cHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBEYXRhYmFzZVNldCo+IERhdGFi
YXNlTmFtZU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwg
RGF0YWJhc2VOYW1lTWFwKj4gRGF0YWJhc2VPcmlnaW5NYXA7CiAKLSAgICBNdXRleCBtX29wZW5E
YXRhYmFzZU1hcEd1YXJkOworICAgIExvY2sgbV9vcGVuRGF0YWJhc2VNYXBHdWFyZDsKICAgICBt
dXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZU9yaWdpbk1hcD4gbV9vcGVuRGF0YWJhc2VN
YXA7CiAKICAgICAvLyBUaGlzIGxvY2sgcHJvdGVjdHMgbV9kYXRhYmFzZSwgbV9vcmlnaW5Mb2Nr
TWFwLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgbV9vcmlnaW5zQmVpbmdEZWxldGVkLCBtX2Jl
aW5nQ3JlYXRlZCwgYW5kIG1fYmVpbmdEZWxldGVkLgotICAgIE11dGV4IG1fZGF0YWJhc2VHdWFy
ZDsKKyAgICBMb2NrIG1fZGF0YWJhc2VHdWFyZDsKICAgICBTUUxpdGVEYXRhYmFzZSBtX2RhdGFi
YXNlOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE9yaWdpbkxvY2s+PiBP
cmlnaW5Mb2NrTWFwOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9P
cmlnaW5Mb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsy
Nyw4IEBACiAjZGVmaW5lIE9yaWdpbkxvY2tfaAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgor
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsNyArNDgsNyBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyBTdHJpbmcgbG9ja0ZpbGVOYW1lRm9yUGF0aChTdHJpbmcg
b3JpZ2luUGF0aCk7CiAKICAgICBTdHJpbmcgbV9sb2NrRmlsZU5hbWU7Ci0gICAgTXV0ZXggbV9t
dXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAjaWYgVVNFKEZJTEVfTE9DSykKICAgICBQbGF0Zm9y
bUZpbGVIYW5kbGUgbV9sb2NrSGFuZGxlOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmgJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
Q2FsbGJhY2tXcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNkZWZp
bmUgU1FMQ2FsbGJhY2tXcmFwcGVyX2gKIAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgorI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTgsNyArNTgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRQdHI7CiAgICAgICAgIFQqIGNhbGxiYWNrOwogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X211dGV4KTsKICAgICAgICAgICAgIGlmICghbV9jYWxsYmFjaykgewogICAgICAgICAgICAgICAg
IEFTU0VSVCghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICAgICAgICAgICAgICByZXR1
cm47CkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8VD4gdW53cmFw
KCkKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgICAgIEFTU0VSVCghbV9jYWxsYmFjayB8
fCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKICAgICAgICAg
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIG1fY2Fs
bGJhY2sucmVsZWFzZSgpOwpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXND
YWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KIAogcHJpdmF0ZToKLSAgICBN
dXRleCBtX211dGV4OworICAgIExvY2sgbV9tdXRleDsKICAgICBSZWZQdHI8VD4gbV9jYWxsYmFj
azsKICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25CYWNrZW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAJKHJldmlzaW9uIDE4ODU2
OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25C
YWNrZW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQgU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXAoKQogCiAgICAgcmVsZWFzZU9yaWdpbkxvY2tJZk5l
ZWRlZCgpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOwogICAgIG1fc3RhdGVtZW50UXVl
dWUuY2xlYXIoKTsKIAogICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uKSB7CkBAIC00NjUsNyAr
NDY1LDcgQEAgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpTdGF0ZUZ1bmN0aW9uIFNRTAogCiB2b2lk
IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZW5xdWV1ZVN0YXRlbWVudEJhY2tlbmQoc3RkOjp1bmlx
dWVfcHRyPFNRTFN0YXRlbWVudD4gc3RhdGVtZW50QmFja2VuZCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9zdGF0ZW1lbnRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zdGF0
ZW1lbnRNdXRleCk7CiAgICAgbV9zdGF0ZW1lbnRRdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKHN0YXRl
bWVudEJhY2tlbmQpKTsKIH0KIApAQCAtNjgxLDcgKzY4MSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rp
b25CYWNrZW5kOjpnZXROZXh0U3RhdGUKIHsKICAgICBtX2N1cnJlbnRTdGF0ZW1lbnRCYWNrZW5k
ID0gbnVsbHB0cjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N0YXRlbWVudE11dGV4KTsKICAgICBpZiAoIW1fc3Rh
dGVtZW50UXVldWUuaXNFbXB0eSgpKQogICAgICAgICBtX2N1cnJlbnRTdGF0ZW1lbnRCYWNrZW5k
ID0gbV9zdGF0ZW1lbnRRdWV1ZS50YWtlRmlyc3QoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tl
bmQuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDEzLCAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRp
dmVzLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3JlYWRPbmx5OwogICAgIGJvb2wgbV9oYXNWZXJzaW9uTWlzbWF0Y2g7CiAK
LSAgICBNdXRleCBtX3N0YXRlbWVudE11dGV4OworICAgIExvY2sgbV9zdGF0ZW1lbnRNdXRleDsK
ICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8U1FMU3RhdGVtZW50Pj4gbV9zdGF0ZW1lbnRRdWV1
ZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTUUxpdGVUcmFuc2FjdGlvbj4gbV9zcWxpdGVUcmFu
c2FjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1
bGVFeGUKICAgICAvLyBUaGUgbXV0ZXggcHJvdmlkZXMgYSBtZW1vcnkgYmFycmllciB0byBlbnN1
cmUgdGhhdCBvbmNlCiAgICAgLy8gdGVybWluYXRpb24gaXMgc2NoZWR1bGVkLCBpc0V4ZWN1dGlv
blRlcm1pbmF0aW5nIHdpbGwKICAgICAvLyBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhhdCBzdGF0ZSB3
aGVuIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkLgotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2No
ZWR1bGVkVGVybWluYXRpb25NdXRleCk7CiAgICAgaWYgKG1fdm0tPndhdGNoZG9nKQogICAgICAg
ICBtX3ZtLT53YXRjaGRvZy0+ZmlyZSgpOwogfQpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgV29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVFeGUKIGJvb2wgV29ya2VyU2NyaXB0Q29udHJv
bGxlcjo6aXNFeGVjdXRpb25UZXJtaW5hdGluZygpIGNvbnN0CiB7CiAgICAgLy8gU2VlIGNvbW1l
bnRzIGluIHNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24gcmVnYXJkaW5nIG11dGV4IHVzYWdl
LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3NjaGVkdWxlZFRlcm1pbmF0aW9uTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRleCk7CiAgICAg
aWYgKG1fdm0tPndhdGNoZG9nKQogICAgICAgICByZXR1cm4gbV92bS0+d2F0Y2hkb2ctPmRpZEZp
cmUoKTsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCShyZXZpc2lvbiAxODg1NjkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
NSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMx
LDggKzMxLDggQEAKICNpbmNsdWRlIDxkZWJ1Z2dlci9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGhl
YXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9OYWtlZFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KIAogbmFtZXNwYWNlIERlcHJlY2F0ZWQgewogY2xhc3MgU2NyaXB0VmFsdWU7CkBAIC05Nyw3
ICs5Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUq
IG1fd29ya2VyR2xvYmFsU2NvcGU7CiAgICAgICAgIEpTQzo6U3Ryb25nPEpTV29ya2VyR2xvYmFs
U2NvcGU+IG1fd29ya2VyR2xvYmFsU2NvcGVXcmFwcGVyOwogICAgICAgICBib29sIG1fZXhlY3V0
aW9uRm9yYmlkZGVuOwotICAgICAgICBtdXRhYmxlIE11dGV4IG1fc2NoZWR1bGVkVGVybWluYXRp
b25NdXRleDsKKyAgICAgICAgbXV0YWJsZSBMb2NrIG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRl
eDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDcgKzg4LDcg
QEAgdm9pZCBNZXNzYWdlUG9ydENoYW5uZWw6OmRpc2VudGFuZ2xlKCkKIAogdm9pZCBNZXNzYWdl
UG9ydENoYW5uZWw6OnBvc3RNZXNzYWdlVG9SZW1vdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eT4gY2hhbm5lbHMpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIGlmICghbV9j
aGFubmVsLT5tX291dGdvaW5nUXVldWUpCiAgICAgICAgIHJldHVybjsKICAgICBib29sIHdhc0Vt
cHR5ID0gbV9jaGFubmVsLT5tX291dGdvaW5nUXVldWUtPmFwcGVuZEFuZENoZWNrRW1wdHkoc3Rk
OjptYWtlX3VuaXF1ZTxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhPihtZXNz
YWdlLCBXVEY6Om1vdmUoY2hhbm5lbHMpKSk7CkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgTWVzc2Fn
ZVBvcnRDaGFubmVsOjpwb3N0TWVzc2FnZVRvUmUKIAogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6
OnRyeUdldE1lc3NhZ2VGcm9tUmVtb3RlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiBt
ZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiBjaGFubmVs
cykKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CiAgICAgYXV0byByZXN1bHQgPSBtX2No
YW5uZWwtPm1faW5jb21pbmdRdWV1ZS0+dHJ5R2V0TWVzc2FnZSgpOwogICAgIGlmICghcmVzdWx0
KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMjEsMjAgKzEyMSwyMCBAQCB2b2lkIE1lc3Nh
Z2VQb3J0Q2hhbm5lbDo6Y2xvc2UoKQogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6OmlzQ29ubmVj
dGVkVG8oTWVzc2FnZVBvcnQqIHBvcnQpCiB7CiAgICAgLy8gRklYTUU6IFdoYXQgZ3VhcmFudGVl
cyB0aGF0IHRoZSByZXN1bHQgcmVtYWlucyB0aGUgc2FtZSBhZnRlciB3ZSByZWxlYXNlIHRoZSBs
b2NrPwotICAgIE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICByZXR1cm4gbV9jaGFubmVsLT5t
X3JlbW90ZVBvcnQgPT0gcG9ydDsKIH0KIAogYm9vbCBNZXNzYWdlUG9ydENoYW5uZWw6Omhhc1Bl
bmRpbmdBY3Rpdml0eSgpCiB7CiAgICAgLy8gRklYTUU6IFdoYXQgZ3VhcmFudGVlcyB0aGF0IHRo
ZSByZXN1bHQgcmVtYWlucyB0aGUgc2FtZSBhZnRlciB3ZSByZWxlYXNlIHRoZSBsb2NrPwotICAg
IE11dGV4TG9ja2VyIGxvY2sobV9jaGFubmVsLT5tX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9jaGFubmVsLT5tX211dGV4KTsKICAgICByZXR1cm4gIW1fY2hhbm5lbC0+bV9pbmNvbWlu
Z1F1ZXVlLT5pc0VtcHR5KCk7CiB9CiAKIE1lc3NhZ2VQb3J0KiBNZXNzYWdlUG9ydENoYW5uZWw6
OmxvY2FsbHlFbnRhbmdsZWRQb3J0KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIC8vIFNlZSBpZiBib3RoIGNv
bnRleHRzIGFyZSBydW4gYnkgdGhlIHNhbWUgdGhyZWFkIChhcmUgdGhlIHNhbWUgY29udGV4dCwg
b3IgYXJlIGJvdGggZG9jdW1lbnRzKS4KICAgICBpZiAobV9jaGFubmVsLT5tX3JlbW90ZVBvcnQp
IHsKICAgICAgICAgLy8gVGhlIHJlbW90ZSBwb3J0J3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBp
cyBndWFyYW50ZWVkIG5vdCB0byBjaGFuZ2UgaGVyZSAtIE1lc3NhZ2VQb3J0Ojpjb250ZXh0RGVz
dHJveWVkKCkKQEAgLTE2NCw3ICsxNjQsNyBAQCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6
flBsYXRmb3JtTWVzCiAKIHZvaWQgUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OnNldFJlbW90
ZVBvcnQoTWVzc2FnZVBvcnQqIHBvcnQpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgLy8gU2hvdWxkIG5ldmVyIHNl
dCBwb3J0IGlmIGl0IGlzIGFscmVhZHkgc2V0LgogICAgIEFTU0VSVCghcG9ydCB8fCAhbV9yZW1v
dGVQb3J0KTsKICAgICBtX3JlbW90ZVBvcnQgPSBwb3J0OwpAQCAtMTc1LDEzICsxNzUsMTMgQEAg
UGFzc1JlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gUAogICAgIC8vIEZJWE1FOiBX
aGF0IGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVzdWx0IHJlbWFpbnMgdGhlIHNhbWUgYWZ0ZXIgd2Ug
cmVsZWFzZSB0aGUgbG9jaz8KICAgICAvLyBUaGlzIGxvY2sgb25seSBndWFyYW50ZWVzIHRoYXQg
dGhlIHJldHVybmVkIHBvaW50ZXIgd2lsbCBub3QgYmUgcG9pbnRpbmcgdG8gcmVsZWFzZWQgbWVt
b3J5LAogICAgIC8vIGJ1dCBub3QgdGhhdCBpdCB3aWxsIHN0aWxsIGJlIHBvaW50aW5nIHRvIHRo
aXMgb2JqZWN0J3MgZW50YW5nbGVkIHBvcnQgY2hhbm5lbC4KLSAgICBNdXRleExvY2tlciBsb2Nr
KG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICByZXR1cm4gbV9l
bnRhbmdsZWRDaGFubmVsOwogfQogCiB2b2lkIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpj
bG9zZUludGVybmFsKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJv
bSB0aGUgb3RoZXIgZW5kLiBXZSBzdGlsbCBtYWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5j
b21pbmcgcXVldWUsIHNpbmNlIHByZXZpb3VzbHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0
aWxsIGJlIGRlbGl2ZXJlZC4KICAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOwogICAgIG1fZW50
YW5nbGVkQ2hhbm5lbCA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVs
dC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDggKzk1LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIHNldFJlbW90ZVBvcnQoTWVzc2FnZVBvcnQqKTsKICAgICAgICAg
dm9pZCBjbG9zZUludGVybmFsKCk7CiAKLSAgICAgICAgLy8gTXV0ZXggdXNlZCB0byBlbnN1cmUg
ZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgb2JqZWN0IGludGVybmFscy4KLSAgICAgICAgTXV0ZXgg
bV9tdXRleDsKKyAgICAgICAgLy8gTG9jayB1c2VkIHRvIGVuc3VyZSBleGNsdXNpdmUgYWNjZXNz
IHRvIHRoZSBvYmplY3QgaW50ZXJuYWxzLgorICAgICAgICBMb2NrIG1fbXV0ZXg7CiAKICAgICAg
ICAgLy8gUG9pbnRlciB0byBvdXIgZW50YW5nbGVkIHBhaXIgLSBjbGVhcmVkIHdoZW4gY2xvc2Uo
KSBpcyBjYWxsZWQuCiAgICAgICAgIFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4g
bV9lbnRhbmdsZWRDaGFubmVsOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODYsNyArMTg2LDcg
QEAgdm9pZCBJY29uRGF0YWJhc2U6OnJlbW92ZUFsbEljb25zKCkKICAgICAKICAgICAvLyBDbGVh
ciB0aGUgaW4tbWVtb3J5IHJlY29yZCBvZiBldmVyeSBJY29uUmVjb3JkLCBhbnl0aGluZyB3YWl0
aW5nIHRvIGJlIHJlYWQgZnJvbSBkaXNrLCBhbmQgYW55dGhpbmcgd2FpdGluZyB0byBiZSB3cml0
dGVuIHRvIGRpc2sKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAg
ICAgICAgIAogICAgICAgICAvLyBDbGVhciB0aGUgSWNvblJlY29yZHMgZm9yIGV2ZXJ5IHBhZ2Ug
VVJMIC0gUmVmQ291bnRpbmcgd2lsbCBjYXVzZSB0aGUgSWNvblJlY29yZHMgdGhlbXNlbHZlcyB0
byBiZSBkZWxldGVkCiAgICAgICAgIC8vIFdlIGRvbid0IGRlbGV0ZSB0aGUgYWN0dWFsIFBhZ2VS
ZWNvcmRzIGJlY2F1c2Ugd2UgaGF2ZSB0aGUgInJldGFpbiBpY29uIGZvciB1cmwiIGNvdW50IHRv
IGtlZXAgdHJhY2sgb2YKQEAgLTIwMCwxNCArMjAwLDE0IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpy
ZW1vdmVBbGxJY29ucygpCiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAvLyBDbGVhciBh
bGwgaW4tbWVtb3J5IHJlY29yZHMgb2YgdGhpbmdzIHRoYXQgbmVlZCB0byBiZSBzeW5jZWQgb3V0
IHRvIGRpc2sKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVu
ZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5
bmNMb2NrKTsKICAgICAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nU3luYy5jbGVhcigpOwogICAg
ICAgICAgICAgbV9pY29uc1BlbmRpbmdTeW5jLmNsZWFyKCk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIC8vIENsZWFyIGFsbCBpbi1tZW1vcnkgcmVjb3JkcyBvZiB0aGluZ3MgdGhhdCBu
ZWVkIHRvIGJlIHJlYWQgaW4gZnJvbSBkaXNrCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxz
UGVuZGluZ0ltcG9ydC5jbGVhcigpOwogICAgICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJ
bkljb25zLmNsZWFyKCk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcuY2xlYXIo
KTsKQEAgLTIyOSw3ICsyMjksNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0lj
b25Gb3JQCiAgICAgaWYgKCFpc09wZW4oKSB8fCAhZG9jdW1lbnRDYW5IYXZlSWNvbihwYWdlVVJM
T3JpZ2luYWwpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKIAogICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMoKTsKICAg
ICAKQEAgLTI0NSw3ICsyNDUsNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0lj
b25Gb3JQCiAgICAgLy8gMSAtIFRoZSBpbml0aWFsIHVybCBpbXBvcnQgaXMgaW5jb21wbGV0ZSBh
bmQgdGhpcyBwYWdlVVJMIHdhcyBtYXJrZWQgdG8gYmUgbm90aWZpZWQgb25jZSBpdCBpcyBjb21w
bGV0ZSBpZiBhbiBpY29uVVJMIGV4aXN0cwogICAgIC8vIDIgLSBUaGUgaW5pdGlhbCB1cmwgaW1w
b3J0IElTIGNvbXBsZXRlIGFuZCB0aGlzIHBhZ2VVUkwgaGFzIG5vIGljb24KICAgICBpZiAoIXBh
Z2VSZWNvcmQpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdM
b2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwog
ICAgICAgICAKICAgICAgICAgLy8gSW1wb3J0IGlzIG9uZ29pbmcsIHRoZXJlIG1pZ2h0IGJlIGFu
IGljb24uICBJbiB0aGlzIGNhc2UsIHJlZ2lzdGVyIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGlj
b24gY29tZXMgaW4KICAgICAgICAgLy8gSWYgd2UgZXZlciByZWFjaCB0aGlzIGNvbmRpdGlvbiwg
d2Uga25vdyB3ZSd2ZSBhbHJlYWR5IG1hZGUgdGhlIHBhZ2VVUkwgY29weQpAQCAtMjc2LDcgKzI3
Niw3IEBAIEltYWdlKiBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzSWNvbkZvclAKICAgICAgICAg
aWYgKHBhZ2VVUkxDb3B5LmlzTnVsbCgpKQogICAgICAgICAgICAgcGFnZVVSTENvcHkgPSBwYWdl
VVJMT3JpZ2luYWwuaXNvbGF0ZWRDb3B5KCk7CiAgICAgCi0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
cGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJbkljb25z
LmFkZChwYWdlVVJMQ29weSk7CiAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5hZGQoaWNv
blJlY29yZCk7CiAgICAgICAgIHdha2VTeW5jVGhyZWFkKCk7CkBAIC0zMDcsNyArMzA3LDcgQEAg
UGFzc05hdGl2ZUltYWdlUHRyIEljb25EYXRhYmFzZTo6c3luY2hybwogICAgIGlmICghaWNvbikK
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29u
TG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgcmV0
dXJuIGljb24tPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CiB9CiAKQEAgLTMyOSw3ICsz
MjksNyBAQCBTdHJpbmcgSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25VUkxGCiAgICAgaWYg
KCFpc09wZW4oKSB8fCAhZG9jdW1lbnRDYW5IYXZlSWNvbihwYWdlVVJMT3JpZ2luYWwpKQogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKICAgICAKICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVjb3JkID0gbV9wYWdlVVJMVG9SZWNv
cmRNYXAuZ2V0KHBhZ2VVUkxPcmlnaW5hbCk7CiAgICAgaWYgKCFwYWdlUmVjb3JkKQpAQCAtNDE3
LDcgKzQxNyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpyZXRhaW5JY29uRm9yUGFnZVVSTCgKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxz
VG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxz
VG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKICAgICAgICAgbV91cmxzVG9SZXRhaW4uYWRkKHBhZ2VV
UkwuaXNvbGF0ZWRDb3B5KCkpOwogICAgICAgICBtX3JldGFpbk9yUmVsZWFzZUljb25SZXF1ZXN0
ZWQgPSB0cnVlOwogICAgIH0KQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6
cGVyZm9ybVJldGFpbkljb25Gb3JQCiAgICAgICAgIGlmICghbV9pY29uVVJMSW1wb3J0Q29tcGxl
dGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
cGVuZGluZ1N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3lu
Y0xvY2spOwogICAgICAgICAvLyBJZiB0aGlzIHBhZ2VVUkwgd2FpdGluZyB0byBiZSBzeW5jJ2Vk
LCB1cGRhdGUgdGhlIHN5bmMgcmVjb3JkCiAgICAgICAgIC8vIFRoaXMgc2F2ZXMgdXMgaW4gdGhl
IGNhc2Ugd2hlcmUgYSBwYWdlIHdhcyByZWFkeSB0byBiZSBkZWxldGVkIGZyb20gdGhlIGRhdGFi
YXNlIGJ1dCB3YXMganVzdCByZXRhaW5lZCAtIHNvIHRoZXJlcyBubyBuZWVkIHRvIGRlbGV0ZSBp
dCEKICAgICAgICAgaWYgKCFtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgJiYgbV9wYWdlVVJMc1Bl
bmRpbmdTeW5jLmNvbnRhaW5zKHBhZ2VVUkwpKSB7CkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnJlbGVhc2VJY29uRm9yUGFnZVVSTAogICAgICAgICByZXR1cm47CiAKICAg
ICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2spOwogICAgICAgICBtX3VybHNUb1JlbGVhc2UuYWRkKHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCkp
OwogICAgICAgICBtX3JldGFpbk9yUmVsZWFzZUljb25SZXF1ZXN0ZWQgPSB0cnVlOwogICAgIH0K
QEAgLTUwNiw3ICs1MDYsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29u
Rm9yCiAgICAgQVNTRVJUKCFpY29uUmVjb3JkIHx8IChpY29uUmVjb3JkICYmIG1faWNvblVSTFRv
UmVjb3JkTWFwLmdldChpY29uUmVjb3JkLT5pY29uVVJMKCkpID09IGljb25SZWNvcmQpKTsKIAog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAg
ICAKICAgICAgICAgLy8gU2luY2UgdGhpcyBwYWdlVVJMIGlzIGdvaW5nIGF3YXksIHRoZXJlJ3Mg
bm8gcmVhc29uIGFueW9uZSB3b3VsZCBldmVyIGJlIGludGVyZXN0ZWQgaW4gaXRzIHJlYWQgcmVz
dWx0cyAgICAKICAgICAgICAgaWYgKCFtX2ljb25VUkxJbXBvcnRDb21wbGV0ZSkKQEAgLTUyMiw3
ICs1MjIsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVJlbGVhc2VJY29uRm9yCiAgICAg
CiAgICAgLy8gTWFyayBzdHVmZiBmb3IgZGVsZXRpb24gZnJvbSB0aGUgZGF0YWJhc2Ugb25seSBp
ZiB3ZSdyZSBub3QgaW4gcHJpdmF0ZSBicm93c2luZwogICAgIGlmICghbV9wcml2YXRlQnJvd3Np
bmdFbmFibGVkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdTeW5jTG9j
ayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1N5bmNMb2NrKTsKICAgICAg
ICAgbV9wYWdlVVJMc1BlbmRpbmdTeW5jLnNldChwYWdlVVJMT3JpZ2luYWwuaXNvbGF0ZWRDb3B5
KCksIHBhZ2VSZWNvcmQtPnNuYXBzaG90KHRydWUpKTsKICAgICAKICAgICAgICAgLy8gSWYgdGhp
cyBwYWdlIGlzIHRoZSBsYXN0IHBhZ2UgdG8gcmVmZXIgdG8gYSBwYXJ0aWN1bGFyIEljb25SZWNv
cmQsIHRoYXQgSWNvblJlY29yZCBuZWVkcyB0bwpAQCAtNTQ4LDEyICs1NDgsMTIgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVSTAogICAgIAogICAgIFZlY3RvcjxTdHJp
bmc+IHBhZ2VVUkxzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsK
ICAgICAKICAgICAgICAgLy8gSWYgdGhpcyBpY29uIHdhcyBwZW5kaW5nIGEgcmVhZCwgcmVtb3Zl
IGl0IGZyb20gdGhhdCBzZXQgYmVjYXVzZSB0aGlzIG5ldyBkYXRhIHNob3VsZCBvdmVycmlkZSB3
aGF0IGlzIG9uIGRpc2sKICAgICAgICAgUmVmUHRyPEljb25SZWNvcmQ+IGljb24gPSBtX2ljb25V
UkxUb1JlY29yZE1hcC5nZXQoaWNvblVSTCk7CiAgICAgICAgIGlmIChpY29uKSB7Ci0gICAgICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwogICAgICAgICAgICAg
bV9pY29uc1BlbmRpbmdSZWFkaW5nLnJlbW92ZShpY29uLmdldCgpKTsKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBpY29uID0gZ2V0T3JDcmVhdGVJY29uUmVjb3JkKGljb25VUkwpOwpAQCAt
NTY3LDcgKzU2Nyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvckljb25VUkwK
ICAgICAgICAgCiAgICAgICAgIC8vIE1hcmsgdGhlIEljb25SZWNvcmQgYXMgcmVxdWlyaW5nIGFu
IHVwZGF0ZSB0byB0aGUgZGF0YWJhc2Ugb25seSBpZiBwcml2YXRlIGJyb3dzaW5nIGlzIGRpc2Fi
bGVkCiAgICAgICAgIGlmICghbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKSB7Ci0gICAgICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOworICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgbV9pY29uc1Bl
bmRpbmdTeW5jLnNldChpY29uVVJMLCBpY29uLT5zbmFwc2hvdCgpKTsKICAgICAgICAgfQogCkBA
IC02MDgsNyArNjA4LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJM
KAogICAgIFN0cmluZyBpY29uVVJMLCBwYWdlVVJMOwogICAgIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKIAogICAgICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVj
b3JkID0gbV9wYWdlVVJMVG9SZWNvcmRNYXAuZ2V0KHBhZ2VVUkxPcmlnaW5hbCk7CiAgICAgICAg
IApAQCAtNjM2LDEzICs2MzYsMTMgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQ
YWdlVVJMKAogICAgICAgICAgICAgQVNTRVJUKGljb25SZWNvcmQtPnJldGFpbmluZ1BhZ2VVUkxz
KCkuc2l6ZSgpID09IDApOwogICAgICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIkljb24gZm9y
IGljb24gdXJsICVzIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZCAtIHJlbW92aW5nIG1hcHBpbmcg
Zm9yIGl0IiwgdXJsRm9yTG9nZ2luZyhpY29uUmVjb3JkLT5pY29uVVJMKCkpLmFzY2lpKCkuZGF0
YSgpKTsKICAgICAgICAgICAgIG1faWNvblVSTFRvUmVjb3JkTWFwLnJlbW92ZShpY29uUmVjb3Jk
LT5pY29uVVJMKCkpOwotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGVuZGluZ1Jl
YWRpbmdMb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRp
bmdMb2NrKTsKICAgICAgICAgICAgIG1faWNvbnNQZW5kaW5nUmVhZGluZy5yZW1vdmUoaWNvblJl
Y29yZC5nZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIEFuZCBtYXJrIHRo
aXMgbWFwcGluZyB0byBiZSBhZGRlZCB0byB0aGUgZGF0YWJhc2UKICAgICAgICAgaWYgKCFtX3By
aXZhdGVCcm93c2luZ0VuYWJsZWQpIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRp
bmdTeW5jTG9jayk7CiAgICAgICAgICAgICBtX3BhZ2VVUkxzUGVuZGluZ1N5bmMuc2V0KHBhZ2VV
UkwsIHBhZ2VSZWNvcmQtPnNuYXBzaG90KCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAv
LyBJZiB0aGUgaWNvbiBpcyBvbiBpdHMgbGFzdCByZWYsIG1hcmsgaXQgZm9yIGRlbGV0aW9uCkBA
IC02NzQsNyArNjc0LDcgQEAgSWNvbkxvYWREZWNpc2lvbiBJY29uRGF0YWJhc2U6OnN5bmNocm9u
bwogICAgIC8vIDEgLSBXaGVuIHdlIHJlYWQgdGhlIGljb24gdXJscyBmcm9tIGRpc2ssIGdldHRp
bmcgdGhlIHRpbWVTdGFtcCBhdCB0aGUgc2FtZSB0aW1lCiAgICAgLy8gMiAtIFdoZW4gd2UgZ2V0
IGEgbmV3IGljb24gZnJvbSB0aGUgbG9hZGVyLCBpbiB3aGljaCBjYXNlIHRoZSB0aW1lc3RhbXAg
aXMgc2V0IGF0IHRoYXQgdGltZQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKICAgICAgICAgaWYgKEljb25SZWNvcmQqIGljb24gPSBtX2ljb25VUkxUb1JlY29yZE1h
cC5nZXQoaWNvblVSTCkpIHsKICAgICAgICAgICAgIExPRyhJY29uRGF0YWJhc2UsICJGb3VuZCBl
eHBpcmF0aW9uIHRpbWUgb24gYSBwcmVzZW50IGljb24gYmFzZWQgb24gZXhpc3RpbmcgSWNvblJl
Y29yZCIpOwogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oY3VycmVudFRpbWUo
KSkgLSBzdGF0aWNfY2FzdDxpbnQ+KGljb24tPmdldFRpbWVzdGFtcCgpKSA+IGljb25FeHBpcmF0
aW9uVGltZSA/IEljb25Mb2FkWWVzIDogSWNvbkxvYWRObzsKQEAgLTY4Miw3ICs2ODIsNyBAQCBJ
Y29uTG9hZERlY2lzaW9uIEljb25EYXRhYmFzZTo6c3luY2hyb25vCiAgICAgfQogICAgIAogICAg
IC8vIElmIHdlIGRvbid0IGhhdmUgYSByZWNvcmQgZm9yIGl0LCBidXQgd2UgKmhhdmUqIGltcG9y
dGVkIGFsbCBpY29uVVJMcyBmcm9tIGRpc2ssIHRoZW4gd2Ugc2hvdWxkIGxvYWQgaXQgbm93Ci0g
ICAgTXV0ZXhMb2NrZXIgcmVhZGluZ0xvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAg
TG9ja0hvbGRlciByZWFkaW5nTG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICBpZiAo
bV9pY29uVVJMSW1wb3J0Q29tcGxldGUpCiAgICAgICAgIHJldHVybiBJY29uTG9hZFllczsKICAg
ICAgICAgCkBAIC02OTksNyArNjk5LDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3Vz
SWNvbkRhdGFLbgogewogICAgIEFTU0VSVF9OT1RfU1lOQ19USFJFQUQoKTsKICAgICAKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgaWYgKEljb25SZWNvcmQqIGljb24gPSBtX2ljb25V
UkxUb1JlY29yZE1hcC5nZXQoaWNvblVSTCkpCiAgICAgICAgIHJldHVybiBpY29uLT5pbWFnZURh
dGFTdGF0dXMoKSAhPSBJbWFnZURhdGFTdGF0dXNVbmtub3duOwogCkBAIC03NTQsMjYgKzc1NCwy
NiBAQCB2b2lkIEljb25EYXRhYmFzZTo6Y2hlY2tJbnRlZ3JpdHlCZWZvcmVPCiAKIHNpemVfdCBJ
Y29uRGF0YWJhc2U6OnBhZ2VVUkxNYXBwaW5nQ291bnQoKQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZElj
b25Mb2NrKTsKICAgICByZXR1cm4gbV9wYWdlVVJMVG9SZWNvcmRNYXAuc2l6ZSgpOwogfQogCiBz
aXplX3QgSWNvbkRhdGFiYXNlOjpyZXRhaW5lZFBhZ2VVUkxDb3VudCgpCiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
dXJsQW5kSWNvbkxvY2spOwogICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJh
dGlvbnMoKTsKICAgICByZXR1cm4gbV9yZXRhaW5lZFBhZ2VVUkxzLnNpemUoKTsKIH0KIAogc2l6
ZV90IEljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50KCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV91cmxBbmRJY29uTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJ
Y29uTG9jayk7CiAgICAgcmV0dXJuIG1faWNvblVSTFRvUmVjb3JkTWFwLnNpemUoKTsKIH0KIAog
c2l6ZV90IEljb25EYXRhYmFzZTo6aWNvblJlY29yZENvdW50V2l0aERhdGEoKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKICAgICBzaXplX3QgcmVzdWx0ID0gMDsKICAgICAKICAgICBI
YXNoTWFwPFN0cmluZywgSWNvblJlY29yZCo+OjppdGVyYXRvciBpID0gbV9pY29uVVJMVG9SZWNv
cmRNYXAuYmVnaW4oKTsKQEAgLTgyOSwxMyArODI5LDEzIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpu
b3RpZnlQZW5kaW5nTG9hZERlY2kKIAogdm9pZCBJY29uRGF0YWJhc2U6Ondha2VTeW5jVGhyZWFk
KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9zeW5jTG9jayk7CiAKICAgICBpZiAoIW1fZGlzYWJsZVN1ZGRlblRlcm1pbmF0
aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8pCiAgICAgICAgIG1fZGlzYWJsZVN1ZGRlblRl
cm1pbmF0aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8gPSBzdGQ6Om1ha2VfdW5pcXVlPFN1
ZGRlblRlcm1pbmF0aW9uRGlzYWJsZXI+KCk7CiAKICAgICBtX3N5bmNUaHJlYWRIYXNXb3JrVG9E
byA9IHRydWU7Ci0gICAgbV9zeW5jQ29uZGl0aW9uLnNpZ25hbCgpOworICAgIG1fc3luY0NvbmRp
dGlvbi5ub3RpZnlPbmUoKTsKIH0KIAogdm9pZCBJY29uRGF0YWJhc2U6OnNjaGVkdWxlT3JEZWZl
clN5bmNUaW1lcigpCkBAIC04NzQsMTMgKzg3NCwxMyBAQCBib29sIEljb25EYXRhYmFzZTo6aXNP
cGVuKCkgY29uc3QKIAogYm9vbCBJY29uRGF0YWJhc2U6OmlzT3BlbkJlc2lkZXNNYWluVGhyZWFk
Q2FsbGJhY2tzKCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zeW5jTG9jayk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgcmV0dXJuIG1fc3luY1Ro
cmVhZFJ1bm5pbmcgfHwgbV9zeW5jREIuaXNPcGVuKCk7CiB9CiAKIFN0cmluZyBJY29uRGF0YWJh
c2U6OmRhdGFiYXNlUGF0aCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3lu
Y0xvY2spOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAgIHJldHVybiBt
X2NvbXBsZXRlRGF0YWJhc2VQYXRoLmlzb2xhdGVkQ29weSgpOwogfQogCkBAIC05MTYsNyArOTE2
LDcgQEAgUGFnZVVSTFJlY29yZCogSWNvbkRhdGFiYXNlOjpnZXRPckNyZWF0ZQogCiAgICAgUGFn
ZVVSTFJlY29yZCogcGFnZVJlY29yZCA9IG1fcGFnZVVSTFRvUmVjb3JkTWFwLmdldChwYWdlVVJM
KTsKICAgICAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICBpZiAoIW1f
aWNvblVSTEltcG9ydENvbXBsZXRlKSB7CiAgICAgICAgIC8vIElmIHRoZSBpbml0aWFsIGltcG9y
dCBvZiBhbGwgVVJMcyBoYXNuJ3QgY29tcGxldGVkIGFuZCB3ZSBoYXZlIG5vIHBhZ2UgcmVjb3Jk
LCB3ZSBhc3N1bWUgd2UgKm1pZ2h0KiBrbm93IGFib3V0IHRoaXMgbGF0ZXIgYW5kIGNyZWF0ZSBh
IHJlY29yZCBmb3IgaXQKICAgICAgICAgaWYgKCFwYWdlUmVjb3JkKSB7CkBAIC05ODUsNyArOTg1
LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6Omljb25EYXRhYmFzZVN5bmNUaHJlYQogICAgIH0KICAg
ICAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgICAgIGlmICghbV9zeW5jREIu
b3BlbihtX2NvbXBsZXRlRGF0YWJhc2VQYXRoKSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJV
bmFibGUgdG8gb3BlbiBpY29uIGRhdGFiYXNlIGF0IHBhdGggJXMgLSAlcyIsIG1fY29tcGxldGVE
YXRhYmFzZVBhdGguYXNjaWkoKS5kYXRhKCksIG1fc3luY0RCLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTExMTMsNyArMTExMyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpwZXJmb3JtT3BlbkluaXRpYWxpemEKICAgICAgICAgICAgIG1fc3luY0RCLmNsb3NlKCk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9zeW5jTG9jayk7CisgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9z
eW5jTG9jayk7CiAgICAgICAgICAgICAgICAgLy8gU2hvdWxkJ3ZlIGJlZW4gY29uc3VtZWQgYnkg
U1FMaXRlLCBkZWxldGUganVzdCB0byBtYWtlIHN1cmUgd2UgZG9uJ3Qgc2VlIGl0IGFnYWluIGlu
IHRoZSBmdXR1cmU7CiAgICAgICAgICAgICAgICAgZGVsZXRlRmlsZShtX2NvbXBsZXRlRGF0YWJh
c2VQYXRoICsgIi1qb3VybmFsIik7CiAgICAgICAgICAgICAgICAgZGVsZXRlRmlsZShtX2NvbXBs
ZXRlRGF0YWJhc2VQYXRoKTsKQEAgLTEyMTUsNyArMTIxNSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAgICAgU3RyaW5nIGljb25VUkwgPSBxdWVyeS5nZXRD
b2x1bW5UZXh0KDEpOwogCiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdXJs
QW5kSWNvbkxvY2spOwogCiAgICAgICAgICAgICBQYWdlVVJMUmVjb3JkKiBwYWdlUmVjb3JkID0g
bV9wYWdlVVJMVG9SZWNvcmRNYXAuZ2V0KHBhZ2VVUkwpOwogICAgICAgICAgICAgCkBAIC0xMjQ4
LDcgKzEyNDgsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAg
ICAgIC8vIG9uZSBmb3IgdGhlIFVSTCBhbmQgb25lIGZvciB0aGUgSW1hZ2UgaXRzZWxmCiAgICAg
ICAgIC8vIE5vdGUgdGhhdCBXZWJJY29uRGF0YWJhc2UgaXMgbm90IG5lY2Nlc3NhcmlseSBBUEkg
c28gd2UgbWlnaHQgYmUgYWJsZSB0byBtYWtlIHRoaXMgY2hhbmdlCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CisgICAgICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAg
ICBpZiAobV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQuY29udGFpbnMocGFnZVVSTCkpIHsKICAgICAg
ICAgICAgICAgICBkaXNwYXRjaERpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMT25NYWluVGhyZWFk
KHBhZ2VVUkwpOwogICAgICAgICAgICAgICAgIG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LnJlbW92
ZShwYWdlVVJMKTsKQEAgLTEyNzEsNyArMTI3MSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJm
b3JtVVJMSW1wb3J0KCkKICAgICAvLyBidXQgYWZ0ZXIgbV9pY29uVVJMSW1wb3J0Q29tcGxldGUg
aXMgc2V0IHRvIHRydWUsIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhpcyBzZXQgYW55bW9yZQogICAg
IFZlY3RvcjxTdHJpbmc+IHVybHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRp
bmdSZWFkaW5nTG9jayk7CiAKICAgICAgICAgdXJscy5hcHBlbmRSYW5nZShtX3BhZ2VVUkxzUGVu
ZGluZ0ltcG9ydC5iZWdpbigpLCBtX3BhZ2VVUkxzUGVuZGluZ0ltcG9ydC5lbmQoKSk7CiAgICAg
ICAgIG1fcGFnZVVSTHNQZW5kaW5nSW1wb3J0LmNsZWFyKCk7ICAgICAgICAKQEAgLTEyODQsNyAr
MTI4NCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAvLyBS
ZW1vdmUgdW5yZXRhaW5lZCBvbmVzIGlmIGRhdGFiYXNlIGNsZWFudXAgaXMgYWxsb3dlZAogICAg
IC8vIEtlZXAgYSBzZXQgb2Ygb25lcyB0aGF0IGFyZSByZXRhaW5lZCBhbmQgcGVuZGluZyBub3Rp
ZmljYXRpb24KICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAKICAg
ICAgICAgcGVyZm9ybVBlbmRpbmdSZXRhaW5BbmRSZWxlYXNlT3BlcmF0aW9ucygpOwogCkBAIC0x
MzAxLDEyICsxMzAxLDEyIEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1faWNvblVSTFRvUmVjb3JkTWFwLnJlbW92ZShpY29u
UmVjb3JkLT5pY29uVVJMKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9wYWdlVVJMc0ludGVyZXN0ZWRJbkljb25zLnJlbW92ZSh1cmxzW2ld
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1JlYWRpbmcucmVt
b3ZlKGljb25SZWNvcmQpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3BlbmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9wZW5kaW5nU3luY0xvY2spOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1faWNvbnNQZW5kaW5nU3luYy5zZXQoaWNvblJlY29yZC0+aWNvblVSTCgpLCBpY29u
UmVjb3JkLT5zbmFwc2hvdCh0cnVlKSk7ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMTM3MSw3ICsxMzcxLDcg
QEAgdm9pZCBJY29uRGF0YWJhc2U6OnN5bmNUaHJlYWRNYWluTG9vcCgpCiAgICAgICAgICAgICBi
cmVhazsKIAogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV91cmxB
bmRJY29uTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25M
b2NrKTsKICAgICAgICAgICAgIHBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlv
bnMoKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTE0NTEsNyArMTQ1MSw3IEBAIHZvaWQgSWNv
bkRhdGFiYXNlOjpwZXJmb3JtUGVuZGluZ1JldGFpbkEKICAgICBIYXNoQ291bnRlZFNldDxTdHJp
bmc+IHRvUmVsZWFzZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgcGVuZGluZ1dvcmtM
b2NrZXIobV91cmxzVG9SZXRhaW5PclJlbGVhc2VMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBw
ZW5kaW5nV29ya0xvY2tlcihtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2spOwogICAgICAgICBp
ZiAoIW1fcmV0YWluT3JSZWxlYXNlSWNvblJlcXVlc3RlZCkKICAgICAgICAgICAgIHJldHVybjsK
IApAQCAtMTQ4OCw3ICsxNDg4LDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6OnJlYWRGcm9tRGF0YWJh
c2UoKQogICAgIC8vIFRoaXMgd2F5IHdlIHdvbid0IGhvbGQgdGhlIGxvY2sgZm9yIGEgbG9uZyBw
ZXJpb2Qgb2YgdGltZQogICAgIFZlY3RvcjxJY29uUmVjb3JkKj4gaWNvbnM7CiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xvY2spOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdSZWFkaW5nTG9jayk7CiAgICAgICAgIGljb25zLmFw
cGVuZFJhbmdlKG1faWNvbnNQZW5kaW5nUmVhZGluZy5iZWdpbigpLCBtX2ljb25zUGVuZGluZ1Jl
YWRpbmcuZW5kKCkpOwogICAgIH0KICAgICAKQEAgLTE1MDEsOSArMTUwMSw5IEBAIGJvb2wgSWNv
bkRhdGFiYXNlOjpyZWFkRnJvbURhdGFiYXNlKCkKIAogICAgICAgICAvLyBWZXJpZnkgdGhpcyBp
Y29uIHN0aWxsIHdhbnRzIHRvIGJlIHJlYWQgZnJvbSBkaXNrCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIE11dGV4TG9ja2VyIHVybExvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgICAg
IExvY2tIb2xkZXIgdXJsTG9ja2VyKG1fdXJsQW5kSWNvbkxvY2spOwogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIE11dGV4TG9ja2VyIHJlYWRMb2NrZXIobV9wZW5kaW5nUmVhZGluZ0xv
Y2spOworICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgcmVhZExvY2tlcihtX3BlbmRpbmdSZWFk
aW5nTG9jayk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKG1faWNvbnNQ
ZW5kaW5nUmVhZGluZy5jb250YWlucyhpY29uc1tpXSkpIHsKICAgICAgICAgICAgICAgICAgICAg
Ly8gU2V0IHRoZSBuZXcgZGF0YQpAQCAtMTU5MSwxMSArMTU5MSwxMSBAQCBib29sIEljb25EYXRh
YmFzZTo6d3JpdGVUb0RhdGFiYXNlKCkKICAgICAvLyB3ZSdsbCBwaWNrIGl0IHVwIG9uIHRoZSBu
ZXh0IHBhc3MuICBUaGlzIGdyZWF0bHkgc2ltcGxpZmllcyB0aGUgbG9ja2luZyBzdHJhdGVneSBm
b3IgdGhpcyBtZXRob2QgYW5kIHJlbWFpbnMgY29oZXNpdmUgd2l0aCBjaGFuZ2VzCiAgICAgLy8g
YXNrZWQgZm9yIGJ5IHRoZSBkYXRhYmFzZSBvbiB0aGUgbWFpbiB0aHJlYWQKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgICAgIFZlY3RvcjxJY29uU25hcHNo
b3Q+IGljb25TbmFwc2hvdHM7CiAgICAgICAgIFZlY3RvcjxQYWdlVVJMU25hcHNob3Q+IHBhZ2VT
bmFwc2hvdHM7CiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Bl
bmRpbmdTeW5jTG9jayk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BlbmRpbmdT
eW5jTG9jayk7CiAKICAgICAgICAgICAgIGljb25TbmFwc2hvdHMuYXBwZW5kUmFuZ2UobV9pY29u
c1BlbmRpbmdTeW5jLmJlZ2luKCkudmFsdWVzKCksIG1faWNvbnNQZW5kaW5nU3luYy5lbmQoKS52
YWx1ZXMoKSk7CiAgICAgICAgICAgICBtX2ljb25zUGVuZGluZ1N5bmMuY2xlYXIoKTsKQEAgLTE2
NTgsNyArMTY1OCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwcnVuZVVucmV0YWluZWRJY29ucygK
ICAgICAKICAgICBpbnQgcmVzdWx0OwogICAgIHdoaWxlICgocmVzdWx0ID0gcGFnZVNRTC5zdGVw
KCkpID09IFNRTElURV9ST1cpIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdXJsQW5k
SWNvbkxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsK
ICAgICAgICAgaWYgKCFtX3BhZ2VVUkxUb1JlY29yZE1hcC5jb250YWlucyhwYWdlU1FMLmdldENv
bHVtblRleHQoMSkpKQogICAgICAgICAgICAgcGFnZUlEc1RvRGVsZXRlLmFwcGVuZChwYWdlU1FM
LmdldENvbHVtbkludDY0KDApKTsKICAgICB9CkBAIC0xNzkxLDcgKzE3OTEsNyBAQCB2b2lkKiBJ
Y29uRGF0YWJhc2U6OmNsZWFudXBTeW5jVGhyZWFkKCkKICAgICB3cml0ZVRvRGF0YWJhc2UoKTsK
ICAgICAKICAgICAvLyBDbG9zZSB0aGUgZGF0YWJhc2UKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zeW5jTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7CiAgICAgCiAg
ICAgbV9kYXRhYmFzZURpcmVjdG9yeSA9IFN0cmluZygpOwogICAgIG1fY29tcGxldGVEYXRhYmFz
ZVBhdGggPSBTdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2lmIEVO
QUJMRShJQ09OREFUQUJBU0UpCiAjaW5jbHVkZSAiU1FMaXRlRGF0YWJhc2UuaCIKICNpbmNsdWRl
ICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFz
aENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CkBAIC0xNDEsOCArMTQyLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNFbmFi
bGVkOwogICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkOwogCi0gICAgbXV0YWJsZSBN
dXRleCBtX3N5bmNMb2NrOwotICAgIFRocmVhZENvbmRpdGlvbiBtX3N5bmNDb25kaXRpb247Cisg
ICAgbXV0YWJsZSBMb2NrIG1fc3luY0xvY2s7CisgICAgQ29uZGl0aW9uIG1fc3luY0NvbmRpdGlv
bjsKICAgICBTdHJpbmcgbV9kYXRhYmFzZURpcmVjdG9yeTsKICAgICAvLyBIb2xkaW5nIG1fc3lu
Y0xvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9jb21wbGV0ZURhdGFiYXNlUGF0aAog
ICAgIFN0cmluZyBtX2NvbXBsZXRlRGF0YWJhc2VQYXRoOwpAQCAtMTUzLDI0ICsxNTQsMjQgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fc3luY1RocmVhZEhhc1dvcmtUb0RvOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxTdWRkZW5UZXJtaW5hdGlvbkRpc2FibGVyPiBtX2Rpc2FibGVTdWRkZW5UZXJtaW5h
dGlvbldoaWxlU3luY1RocmVhZEhhc1dvcmtUb0RvOwogCi0gICAgTXV0ZXggbV91cmxBbmRJY29u
TG9jazsKKyAgICBMb2NrIG1fdXJsQW5kSWNvbkxvY2s7CiAgICAgLy8gSG9sZGluZyBtX3VybEFu
ZEljb25Mb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUgZm9sbG93aW5n
IGRhdGEgc3RydWN0dXJlcyBvciB0aGUgb2JqZWN0cyB0aGV5IGNvbnRhaW4KICAgICBIYXNoTWFw
PFN0cmluZywgSWNvblJlY29yZCo+IG1faWNvblVSTFRvUmVjb3JkTWFwOwogICAgIEhhc2hNYXA8
U3RyaW5nLCBQYWdlVVJMUmVjb3JkKj4gbV9wYWdlVVJMVG9SZWNvcmRNYXA7CiAgICAgSGFzaFNl
dDxTdHJpbmc+IG1fcmV0YWluZWRQYWdlVVJMczsKIAotICAgIE11dGV4IG1fcGVuZGluZ1N5bmNM
b2NrOworICAgIExvY2sgbV9wZW5kaW5nU3luY0xvY2s7CiAgICAgLy8gSG9sZGluZyBtX3BlbmRp
bmdTeW5jTG9jayBpcyByZXF1aXJlZCB3aGVuIGFjY2Vzc2luZyBhbnkgb2YgdGhlIGZvbGxvd2lu
ZyBkYXRhIHN0cnVjdHVyZXMKICAgICBIYXNoTWFwPFN0cmluZywgUGFnZVVSTFNuYXBzaG90PiBt
X3BhZ2VVUkxzUGVuZGluZ1N5bmM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIEljb25TbmFwc2hvdD4g
bV9pY29uc1BlbmRpbmdTeW5jOwogICAgIAotICAgIE11dGV4IG1fcGVuZGluZ1JlYWRpbmdMb2Nr
OyAgICAKKyAgICBMb2NrIG1fcGVuZGluZ1JlYWRpbmdMb2NrOyAgICAKICAgICAvLyBIb2xkaW5n
IG1fcGVuZGluZ1N5bmNMb2NrIGlzIHJlcXVpcmVkIHdoZW4gYWNjZXNzaW5nIGFueSBvZiB0aGUg
Zm9sbG93aW5nIGRhdGEgc3RydWN0dXJlcyAtIHdoZW4gZGVhbGluZyB3aXRoIEljb25SZWNvcmQq
cywgaG9sZGluZyBtX3VybEFuZEljb25Mb2NrIGlzIGFsc28gcmVxdWlyZWQKICAgICBIYXNoU2V0
PFN0cmluZz4gbV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQ7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1f
cGFnZVVSTHNJbnRlcmVzdGVkSW5JY29uczsKICAgICBIYXNoU2V0PEljb25SZWNvcmQqPiBtX2lj
b25zUGVuZGluZ1JlYWRpbmc7CiAKLSAgICBNdXRleCBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxv
Y2s7CisgICAgTG9jayBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2s7CiAgICAgLy8gSG9sZGlu
ZyBtX3VybHNUb1JldGFpbk9yUmVsZWFzZUxvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3Npbmcg
YW55IG9mIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzLgogICAgIEhhc2hDb3VudGVkU2V0
PFN0cmluZz4gbV91cmxzVG9SZXRhaW47CiAgICAgSGFzaENvdW50ZWRTZXQ8U3RyaW5nPiBtX3Vy
bHNUb1JlbGVhc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5
LDcgQEAgU2Nyb2xsaW5nVHJlZTo6flNjcm9sbGluZ1RyZWUoKQogYm9vbCBTY3JvbGxpbmdUcmVl
OjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseShjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgLy8gVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0
aGUgZXZlbnQgaGFuZGxpbmcgdGhyZWFkCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsK
KyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAKICAgICBib29sIHNob3VsZFNldExhdGNo
ID0gd2hlZWxFdmVudC5zaG91bGRDb25zaWRlckxhdGNoaW5nKCk7CiAgICAgCkBAIC0xMTUsNyAr
MTE1LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3RhdGUocwogICAgICAg
ICAmJiAocm9vdFN0YXRlTm9kZUNoYW5nZWQKICAgICAgICAgICAgIHx8IHJvb3ROb2RlLT5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6Ok5vbkZhc3RT
Y3JvbGxhYmxlUmVnaW9uKQogICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlNjcm9sbExheWVyKSkpIHsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwog
CiAgICAgICAgIGlmIChyb290U3RhdGVOb2RlQ2hhbmdlZCB8fCByb290Tm9kZS0+aGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5ZXIpKQogICAgICAgICAgICAg
bV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IEZsb2F0UG9pbnQoKTsKQEAgLTIwOCw3ICsyMDgs
NyBAQCBTY3JvbGxpbmdUcmVlTm9kZSogU2Nyb2xsaW5nVHJlZTo6bm9kZUZvCiAKIHZvaWQgU2Ny
b2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQsIGJv
b2wgcGlubmVkVG9UaGVSaWdodCwgYm9vbCBwaW5uZWRUb1RoZVRvcCwgYm9vbCBwaW5uZWRUb1Ro
ZUJvdHRvbSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIG1fbWFpbkZy
YW1lUGlubmVkVG9UaGVMZWZ0ID0gcGlubmVkVG9UaGVMZWZ0OwogICAgIG1fbWFpbkZyYW1lUGlu
bmVkVG9UaGVSaWdodCA9IHBpbm5lZFRvVGhlUmlnaHQ7CkBAIC0yMTgsNTQgKzIxOCw1NCBAQCB2
b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVBpblN0YXRlCiAKIEZsb2F0UG9pbnQgU2Ny
b2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIHJldHVy
biBtX21haW5GcmFtZVNjcm9sbFBvc2l0aW9uOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNl
dE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQgcG9zaXRpb24pCiB7Ci0gICAgTXV0
ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAg
ICAgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IHBvc2l0aW9uOwogfQogCiBib29sIFNjcm9s
bGluZ1RyZWU6OmlzUG9pbnRJbk5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKEludFBvaW50IHApCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9t
dXRleCk7CiAgICAgCiAgICAgcmV0dXJuIG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb24uY29udGFp
bnMocCk7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsgICAgCisgICAgTG9ja0hvbGRlciBs
b2NrKG1fbXV0ZXgpOyAgICAKIAogICAgIHJldHVybiBtX21haW5GcmFtZUlzUnViYmVyQmFuZGlu
ZzsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmco
Ym9vbCBpc1J1YmJlckJhbmRpbmcpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgbV9tYWluRnJhbWVJc1J1
YmJlckJhbmRpbmcgPSBpc1J1YmJlckJhbmRpbmc7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6
aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgCiAgICAgcmV0dXJuIG1fbWFp
bkZyYW1lSXNTY3JvbGxTbmFwcGluZzsKIH0KICAgICAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0
TWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyhib29sIGlzU2Nyb2xsU25hcHBpbmcpCiB7Ci0gICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0
ZXgpOwogICAgIAogICAgIG1fbWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyA9IGlzU2Nyb2xsU25h
cHBpbmc7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0Q2FuUnViYmVyQmFuZFN0YXRlKGJv
b2wgY2FuUnViYmVyQmFuZEF0TGVmdCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgYm9vbCBj
YW5SdWJiZXJCYW5kQXRUb3AsIGJvb2wgY2FuUnViYmVyQmFuZEF0Qm90dG9tKQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgbV9ydWJiZXJCYW5kc0F0TGVmdCA9IGNhblJ1
YmJlckJhbmRBdExlZnQ7CiAgICAgbV9ydWJiZXJCYW5kc0F0UmlnaHQgPSBjYW5SdWJiZXJCYW5k
QXRSaWdodDsKQEAgLTI3NSwyOCArMjc1LDI4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0Q2Fu
UnViYmVyQmFuZFN0YXQKIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVmdCgp
CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRz
QXRMZWZ0OwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRSaWdodCgpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7CisgICAgTG9ja0hvbGRl
ciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKIAogICAgIHJldHVybiBtX3J1YmJlckJhbmRzQXRS
aWdodDsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0Qm90dG9tKCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJv
dHRvbTsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdFRvcDsK
IH0KQEAgLTMwOCwxNCArMzA4LDE0IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNIYW5kbGluZ1By
b2dyYW1tYXQKIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3Io
U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHBpbm5pbmcpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N3aXBlU3RhdGVN
dXRleCk7CiAgICAgCiAgICAgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBwaW5uaW5nOwogfQog
CiBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsUGlubmluZ0JlaGF2
aW9yKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogICAgIAogICAgIHJldHVybiBtX3Nj
cm9sbFBpbm5pbmdCZWhhdmlvcjsKIH0KQEAgLTMyNSw3ICszMjUsNyBAQCBib29sIFNjcm9sbGlu
Z1RyZWU6OndpbGxXaGVlbEV2ZW50U3RhcnRTCiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSAh
PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCiAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFYKCkg
PiAwICYmIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0ICYmICFtX3J1YmJlckJhbmRzQXRMZWZ0
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTM1MSwxOSArMzUxLDE5IEBAIGJvb2wgU2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nUGVyZm9ybWFuY2UKIAogU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGlu
Z1RyZWU6OmxhdGNoZWROb2RlKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fbGF0Y2hlZE5v
ZGU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TGF0Y2hlZE5vZGUoU2Nyb2xsaW5nTm9k
ZUlEIG5vZGUpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIG1fbGF0Y2hlZE5vZGUgPSBub2RlOwogfQogCiB2
b2lkIFNjcm9sbGluZ1RyZWU6OmNsZWFyTGF0Y2hlZE5vZGUoKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICBt
X2xhdGNoZWROb2RlID0gMDsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJX
aGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBAIC0xNjAsMTEgKzE2MSwxMSBAQCBwcml2YXRl
OgogICAgIHR5cGVkZWYgSGFzaE1hcDxTY3JvbGxpbmdOb2RlSUQsIFNjcm9sbGluZ1RyZWVOb2Rl
Kj4gU2Nyb2xsaW5nVHJlZU5vZGVNYXA7CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGVNYXAgbV9ub2Rl
TWFwOwogCi0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAgICAgUmVnaW9u
IG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb247CiAgICAgRmxvYXRQb2ludCBtX21haW5GcmFtZVNj
cm9sbFBvc2l0aW9uOwogCi0gICAgTXV0ZXggbV9zd2lwZVN0YXRlTXV0ZXg7CisgICAgTG9jayBt
X3N3aXBlU3RhdGVNdXRleDsKICAgICBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5u
aW5nQmVoYXZpb3IgeyBEb05vdFBpbiB9OwogICAgIFNjcm9sbGluZ05vZGVJRCBtX2xhdGNoZWRO
b2RlIHsgMCB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4K
ICNlbGlmIE9TKExJTlVYKQogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0xMzcsNyArMTM4LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fY2xlYXJQcmVzc3VyZU9uTWVtb3J5UmVsZWFzZTsKICAgICB2
b2lkIChebV9yZWxlYXNlTWVtb3J5QmxvY2spKCk7CiAgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYg
bV9vYnNlcnZlcjsKLSAgICBNdXRleCBtX29ic2VydmVyTXV0ZXg7CisgICAgTG9jayBtX29ic2Vy
dmVyTXV0ZXg7CiAjZWxpZiBPUyhMSU5VWCkKICAgICBpbnQgbV9ldmVudEZEOwogICAgIGludCBt
X3ByZXNzdXJlTGV2ZWxGRDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZEYXRhYmFzZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgSFJURkRhdGFiYXNlTG9hZGVyOjpsb2Fk
QXN5bmNocm9ub3UKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fdGhyZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aHJl
YWRMb2NrKTsKICAgICAKICAgICBpZiAoIW1faHJ0ZkRhdGFiYXNlLmdldCgpICYmICFtX2RhdGFi
YXNlTG9hZGVyVGhyZWFkKSB7CiAgICAgICAgIC8vIFN0YXJ0IHRoZSBhc3luY2hyb25vdXMgZGF0
YWJhc2UgbG9hZGluZyBwcm9jZXNzLgpAQCAtMTE3LDcgKzExNyw3IEBAIGJvb2wgSFJURkRhdGFi
YXNlTG9hZGVyOjppc0xvYWRlZCgpIGNvbnMKIAogdm9pZCBIUlRGRGF0YWJhc2VMb2FkZXI6Ondh
aXRGb3JMb2FkZXJUaHJlYWRDb21wbGV0aW9uKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV90aHJlYWRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RocmVhZExvY2spOwogICAg
IAogICAgIC8vIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQg
dHdpY2UgZm9yIHRoZSBzYW1lIHRocmVhZC4KICAgICBpZiAobV9kYXRhYmFzZUxvYWRlclRocmVh
ZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRh
YmFzZUxvYWRlci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KQEAgLTc2LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8SFJURkRhdGFiYXNlPiBtX2hydGZEYXRhYmFzZTsKIAogICAgIC8vIEhvbGRpbmcgYSBtX3Ro
cmVhZExvY2sgaXMgcmVxdWlyZWQgd2hlbiBhY2Nlc3NpbmcgbV9kYXRhYmFzZUxvYWRlclRocmVh
ZC4KLSAgICBNdXRleCBtX3RocmVhZExvY2s7CisgICAgTG9jayBtX3RocmVhZExvY2s7CiAgICAg
VGhyZWFkSWRlbnRpZmllciBtX2RhdGFiYXNlTG9hZGVyVGhyZWFkOwogCiAgICAgZmxvYXQgbV9k
YXRhYmFzZVNhbXBsZVJhdGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQkocmV2aXNpb24g
MTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIE1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0UmVjZWl2ZWRNCiAgICAgbV91bmRlck1lbW9yeVByZXNz
dXJlID0gdHJ1ZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2JzZXJ2
ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CiAg
ICAgICAgIGlmICghbV9vYnNlcnZlcikgewogICAgICAgICAgICAgbV9vYnNlcnZlciA9IENGUnVu
TG9vcE9ic2VydmVyQ3JlYXRlKE5VTEwsIGtDRlJ1bkxvb3BCZWZvcmVXYWl0aW5nIHwga0NGUnVu
TG9vcEV4aXQsIE5PIC8qIGRvbid0IHJlcGVhdCAqLywKICAgICAgICAgICAgICAgICAwLCBXZWJD
b3JlOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZUNhbGxiYWNrLCBOVUxMKTsKQEAgLTI3MiwxNCAr
MjcyLDE0IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpjbGVhck1lbW9yeVAKICAgICBt
X3VuZGVyTWVtb3J5UHJlc3N1cmUgPSBmYWxzZTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
b2JzZXJ2ZXJNdXRleCk7CiAgICAgICAgIG1fbWVtb3J5UHJlc3N1cmVSZWFzb24gPSBNZW1vcnlQ
cmVzc3VyZVJlYXNvbk5vbmU7CiAgICAgfQogfQogCiBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6c2hvdWxkV2FpdEZvck1lbW9yeUNsZWFyTWVzc2FnZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vYnNlcnZl
ck11dGV4KTsKICAgICByZXR1cm4gbV9tZW1vcnlQcmVzc3VyZVJlYXNvbiAmIE1lbW9yeVByZXNz
dXJlUmVhc29uVk1TdGF0dXM7CiB9CiAKQEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtCiAgICAgQVNTRVJUKFdlYlRocmVhZElzTG9ja2Vk
T3JEaXNhYmxlZCgpKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fb2Jz
ZXJ2ZXJNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJNdXRleCk7
CiAgICAgICAgIG1fb2JzZXJ2ZXIgPSAwOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3Iu
Y3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmUKICAgICBkb3VibGUg
bW9ub3RvbmljQW5pbWF0aW9uU3RhcnRUaW1lOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAg
ICAgIGlmICghbV9zY2hlZHVsZWQpCiAgICAgICAgICAgICArK21fdW5zY2hlZHVsZWRGaXJlQ291
bnQ7CiAgICAgICAgIGVsc2UKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIERpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlzcGxheURpZFJlCiAgICAgICAgIG1fY2xpZW50c1RvQmVOb3RpZmllZCA9IG51
bGxwdHI7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAgICAgbV9wcmV2aW91c0ZyYW1lRG9u
ZSA9IHRydWU7CiAgICAgfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgJKHJldmlzaW9uIDE4
ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw5ICszMCw5IEBACiAKICNp
bmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1vbm90
b25pY0FuaW1hdGlvblN0YXJ0VGltZShkb3VibGUgc3RhcnRUaW1lKSB7IG1fbW9ub3RvbmljQW5p
bWF0aW9uU3RhcnRUaW1lID0gc3RhcnRUaW1lOyB9CiAKLSAgICBNdXRleCYgbXV0ZXgoKSB7IHJl
dHVybiBtX211dGV4OyB9CisgICAgTG9jayYgbXV0ZXgoKSB7IHJldHVybiBtX211dGV4OyB9CiAK
ICAgICBzdGF0aWMgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGVmYXVsdERp
c3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTg5LDcgKzg5LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcHJldmlvdXNGcmFtZURvbmU7CiAgICAgaW50IG1fdW5z
Y2hlZHVsZWRGaXJlQ291bnQ7IC8vIE51bWJlciBvZiB0aW1lcyB0aGUgZGlzcGxheSBsaW5rIGhh
cyBmaXJlZCB3aXRoIG5vIGNsaWVudHMuCiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNwbGF5
SUQ7Ci0gICAgTXV0ZXggbV9tdXRleDsKKyAgICBMb2NrIG1fbXV0ZXg7CiAKICAgICBIYXNoU2V0
PERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+IG1fY2xpZW50czsKICAgICBIYXNoU2V0PERp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCo+KiBtX2NsaWVudHNUb0JlTm90aWZpZWQ7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTczNSw3ICs3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6c2V0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpz
ZXREZWxheUNhbGxiYWNrcyhib29sIGRlbGF5KSBjb25zdAogewotICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKICAg
ICBpZiAoZGVsYXkpCiAgICAgICAgICsrbV9kZWxheUNhbGxiYWNrczsKICAgICBlbHNlIHsKQEAg
LTc1NCw3ICs3NTQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bWFp
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjbGVhck1haW5UaHJlYWRQ
ZW5kaW5nRmxhZygpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgIG1fbWFpblRocmVhZENhbGxQZW5k
aW5nID0gZmFsc2U7CiB9CiAKQEAgLTgyMCw3ICs4MjAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6ZGlzCiAKICAgICBOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uID0g
Tm90aWZpY2F0aW9uKCk7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVN
dXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgICAgICAK
ICAgICAgICAgaWYgKG1fcXVldWVkTm90aWZpY2F0aW9ucy5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiVGltZXIu
aCIKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIApAQCAtMzE3LDcgKzMxOCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IG1fcGVuZGluZ1NlZWs7CiAKICAgICBWZWN0b3I8Tm90aWZpY2F0aW9u
PiBtX3F1ZXVlZE5vdGlmaWNhdGlvbnM7Ci0gICAgbXV0YWJsZSBNdXRleCBtX3F1ZXVlTXV0ZXg7
CisgICAgbXV0YWJsZSBMb2NrIG1fcXVldWVNdXRleDsKIAogICAgIG11dGFibGUgc3RkOjp1bmlx
dWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gbV9jYWNoZWRMb2FkZWRUaW1lUmFuZ2VzOwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw3ICsxNTgsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIGlubGluZSB2b2lkKiBjYWxsYmFja0NvbnRleHQoKSBjb25zdCB7IHJl
dHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPihtX29iamVjdElEKTsgfQogCi0gICAgc3RhdGlj
IE11dGV4JiBtYXBMb2NrKCk7CisgICAgc3RhdGljIExvY2smIG1hcExvY2soKTsKICAgICBzdGF0
aWMgSGFzaE1hcDx1aW50cHRyX3QsIEFWRldyYXBwZXIqPiYgbWFwKCk7CiAgICAgc3RhdGljIEFW
RldyYXBwZXIqIGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQodm9pZCopOwogICAgIHZvaWQg
YWRkVG9NYXAoKTsKQEAgLTE0MDQsOSArMTQwNCw5IEBAIEFWRldyYXBwZXI6On5BVkZXcmFwcGVy
KCkKICAgICBtX2F2UGxheWVyID0gMDsKIH0KIAotTXV0ZXgmIEFWRldyYXBwZXI6Om1hcExvY2so
KQorTG9jayYgQVZGV3JhcHBlcjo6bWFwTG9jaygpCiB7Ci0gICAgc3RhdGljIE11dGV4IG1hcExv
Y2s7CisgICAgc3RhdGljIExvY2sgbWFwTG9jazsKICAgICByZXR1cm4gbWFwTG9jazsKIH0KIApA
QCAtMTQxOCw3ICsxNDE4LDcgQEAgSGFzaE1hcDx1aW50cHRyX3QsIEFWRldyYXBwZXIqPiYgQVZG
V3JhcAogCiB2b2lkIEFWRldyYXBwZXI6OmFkZFRvTWFwKCkKIHsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAg
IAogICAgIC8vIEhhc2hNYXAgZG9lc24ndCBsaWtlIGEga2V5IG9mIDAsIGFuZCBhbHNvIG1ha2Ug
c3VyZSB3ZSBhcmVuJ3QKICAgICAvLyB1c2luZyBhbiBvYmplY3QgSUQgdGhhdCdzIGFscmVhZHkg
aW4gdXNlLgpAQCAtMTQzNCw3ICsxNDM0LDcgQEAgdm9pZCBBVkZXcmFwcGVyOjpyZW1vdmVGcm9t
TWFwKCkgY29uc3QKIHsKICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpyZW1vdmVGcm9tTWFw
KCVwICVkKSIsIHRoaXMsIG1fb2JqZWN0SUQpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1h
cExvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBtYXAoKS5y
ZW1vdmUobV9vYmplY3RJRCk7CiB9CiAKQEAgLTE2MzUsNyArMTYzNSw3IEBAIHZvaWQgQVZGV3Jh
cHBlcjo6Y3JlYXRlUGxheWVySXRlbSgpCiAKIHZvaWQgQVZGV3JhcHBlcjo6cGVyaW9kaWNUaW1l
T2JzZXJ2ZXJDYWxsYmFjayhBVkNGUGxheWVyUmVmLCBDTVRpbWUgY21UaW1lLCB2b2lkKiBjb250
ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJG
b3JDYWxsYmFja0NvbnRleHQoY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExP
RyhNZWRpYSwgIkFWRldyYXBwZXI6OnBlcmlvZGljVGltZU9ic2VydmVyQ2FsbGJhY2sgaW52b2tl
ZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KGNvbnRleHQpKTsKQEAgLTE2NjYsNyArMTY2Niw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vz
c05vdGlmaWNhdGlvbih2b2kKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxOb3RpZmljYXRpb25DYWxs
YmFja0RhdGE+IG5vdGlmaWNhdGlvbkRhdGEgeyBzdGF0aWNfY2FzdDxOb3RpZmljYXRpb25DYWxs
YmFja0RhdGEqPihjb250ZXh0KSB9OwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1hcExvY2so
KSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBz
ZWxmID0gYXZmV3JhcHBlckZvckNhbGxiYWNrQ29udGV4dChub3RpZmljYXRpb25EYXRhLT5tX2Nv
bnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVy
Ojpwcm9jZXNzTm90aWZpY2F0aW9uIGludm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSk7CkBAIC0xNzIxLDcgKzE3MjEs
NyBAQCB2b2lkIEFWRldyYXBwZXI6Om5vdGlmaWNhdGlvbkNhbGxiYWNrKENGCiAKIHZvaWQgQVZG
V3JhcHBlcjo6bG9hZFBsYXlhYmxlQ29tcGxldGlvbkNhbGxiYWNrKEFWQ0ZBc3NldFJlZiwgdm9p
ZCogY29udGV4dCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZX
cmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAg
ICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpsb2FkUGxheWFibGVDb21wbGV0aW9uQ2FsbGJh
Y2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE3NDksNyArMTc0OSw3IEBAIHZvaWQgQVZGV3JhcHBl
cjo6Y2hlY2tQbGF5YWJpbGl0eSgpCiAKIHZvaWQgQVZGV3JhcHBlcjo6bG9hZE1ldGFkYXRhQ29t
cGxldGlvbkNhbGxiYWNrKEFWQ0ZBc3NldFJlZiwgdm9pZCogY29udGV4dCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2Nr
KCkpOwogICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0
KGNvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFw
cGVyOjpsb2FkTWV0YWRhdGFDb21wbGV0aW9uQ2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBB
VkZXcmFwcGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAg
LTE3NjksNyArMTc2OSw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6YmVnaW5Mb2FkaW5nTWV0YWRhdGEo
KQogCiB2b2lkIEFWRldyYXBwZXI6OnNlZWtDb21wbGV0ZWRDYWxsYmFjayhBVkNGUGxheWVySXRl
bVJlZiwgQm9vbGVhbiBmaW5pc2hlZCwgdm9pZCogY29udGV4dCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwog
ICAgIEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRl
eHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpz
ZWVrQ29tcGxldGVkQ2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwg
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4MTIsNyArMTgxMiw3
IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc0N1ZSh2b2lkKiBjb250ZXgKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxMZWdpYmxlT3V0cHV0RGF0YT4gbGVnaWJsZU91dHB1dERhdGEocmVpbnRlcnBy
ZXRfY2FzdDxMZWdpYmxlT3V0cHV0RGF0YSo+KGNvbnRleHQpKTsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAg
ICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQobGVnaWJs
ZU91dHB1dERhdGEtPm1fY29udGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExPRyhN
ZWRpYSwgIkFWRldyYXBwZXI6OnByb2Nlc3NDdWUgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFw
cGVyICVkIiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4Mjgs
NyArMTgyOCw3IEBAIHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc0N1ZSh2b2lkKiBjb250ZXgKIHZv
aWQgQVZGV3JhcHBlcjo6bGVnaWJsZU91dHB1dENhbGxiYWNrKHZvaWQqIGNvbnRleHQsIEFWQ0ZQ
bGF5ZXJJdGVtTGVnaWJsZU91dHB1dFJlZiBsZWdpYmxlT3V0cHV0LCBDRkFycmF5UmVmIGF0dHJp
YnV0ZWRTdHJpbmdzLCBDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZUJ1ZmZlcnMsIENNVGltZSBpdGVt
VGltZSkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobWFwTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtYXBMb2NrKCkpOwogICAg
IEFWRldyYXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KGNvbnRleHQp
OwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpsZWdp
YmxlT3V0cHV0Q2FsbGJhY2sgaW52b2tlZCBmb3IgZGVsZXRlZCBBVkZXcmFwcGVyICVkIiwgcmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKQEAgLTE4NjYsNyArMTg2Niw3IEBA
IHZvaWQgQVZGV3JhcHBlcjo6cHJvY2Vzc1Nob3VsZFdhaXRGb3JMb2EKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxMb2FkUmVxdWVzdERhdGE+IGxvYWRSZXF1ZXN0RGF0YShyZWludGVycHJldF9jYXN0
PExvYWRSZXF1ZXN0RGF0YSo+KGNvbnRleHQpKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
YXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3Jh
cHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQobG9hZFJlcXVlc3REYXRh
LT5tX2NvbnRleHQpOwogICAgIGlmICghc2VsZikgewogICAgICAgICBMT0coTWVkaWEsICJBVkZX
cmFwcGVyOjpwcm9jZXNzU2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlc291cmNlIGludm9rZWQgZm9y
IGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb250
ZXh0KSk7CkBAIC0xOTIyLDcgKzE5MjIsNyBAQCBib29sIEFWRldyYXBwZXI6OnNob3VsZFdhaXRG
b3JMb2FkaW5nT2ZSCiBCb29sZWFuIEFWRldyYXBwZXI6OnJlc291cmNlTG9hZGVyU2hvdWxkV2Fp
dEZvckxvYWRpbmdPZlJlcXVlc3RlZFJlc291cmNlKEFWQ0ZBc3NldFJlc291cmNlTG9hZGVyUmVm
IHJlc291cmNlTG9hZGVyLCBBVkNGQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0UmVmIGxvYWRp
bmdSZXF1ZXN0LCB2b2lkICpjb250ZXh0KQogewogICAgIEFTU0VSVChkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpICE9IGRpc3BhdGNoX2dldF9jdXJyZW50X3F1ZXVlKCkpOwotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtYXBMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1hcExvY2soKSk7
CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JDYWxsYmFja0NvbnRleHQoY29u
dGV4dCk7CiAgICAgaWYgKCFzZWxmKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6
OnJlc291cmNlTG9hZGVyU2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlcXVlc3RlZFJlc291cmNlIGlu
dm9rZWQgZm9yIGRlbGV0ZWQgQVZGV3JhcHBlciAlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihjb250ZXh0KSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpoYQogewogICAgIG1fc2FtcGxlVGltZXJIYW5kbGVy
LmNhbmNlbCgpOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3NhbXBsZU11dGV4
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fc2FtcGxlTXV0ZXgpOwogICAgICAgICBtX3Bl
bmRpbmdTYW1wbGVzLmFwcGVuZChzYW1wbGUpOwogICAgIH0KICAgICBtX3NhbXBsZVRpbWVySGFu
ZGxlci5zY2hlZHVsZSgiW1dlYktpdF0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6
bm90aWZ5VHJhY2tPZlNhbXBsZSIsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPihzdGQ6OmJpbmQoJklu
YmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTYW1wbGUsIHRoaXMp
KSk7CkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1l
cjo6bm8KIHsKICAgICBWZWN0b3I8R1JlZlB0cjxHc3RTYW1wbGU+ID4gc2FtcGxlczsKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9zYW1wbGVNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9jayhtX3NhbXBsZU11dGV4KTsKICAgICAgICAgbV9wZW5kaW5nU2FtcGxlcy5zd2Fw
KHNhbXBsZXMpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiR1Jl
ZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUuaCIKICNp
bmNsdWRlICJUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgiCisjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HVGhyZWFkU2FmZU1haW5Mb29wU291cmNlLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY3LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBndWxvbmcg
bV9ldmVudFByb2JlOwogICAgIFZlY3RvcjxHUmVmUHRyPEdzdFNhbXBsZT4gPiBtX3BlbmRpbmdT
YW1wbGVzOwogICAgIFN0cmluZyBtX3N0cmVhbUlkOwotICAgIE11dGV4IG1fc2FtcGxlTXV0ZXg7
CisgICAgTG9jayBtX3NhbXBsZU11dGV4OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAkocmV2
aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIs
NyArMTAyLDcgQEAgdm9pZCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjp0YWdzQ2hhbgogICAg
IEdSZWZQdHI8R3N0VGFnTGlzdD4gdGFnczsKICAgICBnX29iamVjdF9nZXQobV9wYWQuZ2V0KCks
ICJ0YWdzIiwgJnRhZ3Mub3V0UHRyKCksIE5VTEwpOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtX3RhZ011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fdGFnTXV0ZXgp
OwogICAgICAgICBtX3RhZ3Muc3dhcCh0YWdzKTsKICAgICB9CiAKQEAgLTE1OCw3ICsxNTgsNyBA
QCB2b2lkIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyCiAKICAgICBHUmVmUHRy
PEdzdFRhZ0xpc3Q+IHRhZ3M7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fdGFn
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90YWdNdXRleCk7CiAgICAgICAgIHRh
Z3Muc3dhcChtX3RhZ3MpOwogICAgIH0KICAgICBpZiAoIXRhZ3MpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNl
R1N0cmVhbWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUo
VklERU8pICYmIFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShWSURFT19UUkFDSykKIAogI2luY2x1
ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1RocmVhZFNh
ZmVNYWluTG9vcFNvdXJjZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAt
NzMsNyArNzQsNyBAQCBwcml2YXRlOgogICAgIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UgbV9h
Y3RpdmVUaW1lckhhbmRsZXI7CiAgICAgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSBtX3RhZ1Rp
bWVySGFuZGxlcjsKIAotICAgIE11dGV4IG1fdGFnTXV0ZXg7CisgICAgTG9jayBtX3RhZ011dGV4
OwogICAgIEdSZWZQdHI8R3N0VGFnTGlzdD4gbV90YWdzOwogfTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NCwxNCArODQsMTQgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OnJlcXVlc3RSZQogICAgICAgICBzZXRJc0FjdGl2ZSh0cnVlKTsKICAgICB9CiAKLSAg
ICBNdXRleExvY2tlciBsb2NrKG11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgp
KTsKICAgICBzZXRJc1NjaGVkdWxlZCh0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9p
ZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQoZG91YmxlIG5vd1Nl
Y29uZHMsIGRvdWJsZSBvdXRwdXRUaW1lU2Vjb25kcykKIHsKLSAgICBNdXRleExvY2tlciBsb2Nr
KG11dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgpKTsKICAgICBpZiAoIWlzUHJl
dmlvdXNGcmFtZURvbmUoKSkKICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxMiwyMSArNTEyLDIxIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjoKIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmFkZExpc3RlbmVyKE1lZGlhUGxheWVyTGlzdGVu
ZXIqIGxpc3RlbmVyKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4TGlzdGVuZXJz
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4TGlzdGVuZXJzKTsKIAogICAgIG1fbGlz
dGVuZXJzLmFkZChsaXN0ZW5lcik7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uOjpyZW1vdmVMaXN0ZW5lcihNZWRpYVBsYXllckxpc3RlbmVyKiBsaXN0ZW5lcikK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9tdXRleExpc3RlbmVycyk7CiAKICAgICBtX2xpc3RlbmVycy5yZW1vdmUo
bGlzdGVuZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6
bm90aWZ5RGVsZXRlZCgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5l
cnMpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXhMaXN0ZW5lcnMpOwogCiAgICAgZm9y
IChIYXNoU2V0PE1lZGlhUGxheWVyTGlzdGVuZXIqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2xp
c3RlbmVycy5iZWdpbigpOyBpdCAhPSBtX2xpc3RlbmVycy5lbmQoKTsgKytpdCkKICAgICAgICAg
KCppdCktPm9uTWVkaWFQbGF5ZXJEZWxldGVkKCk7CkBAIC03MDQsNyArNzA0LDcgQEAgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBNZWRpYVBsYXllclByaQogCiBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6QXN5bmNDYWxsYmFjazo6
SW52b2tlKF9fUlBDX19pbl9vcHQgSU1GQXN5bmNSZXN1bHQgKnBBc3luY1Jlc3VsdCkKIHsKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9t
dXRleCk7CiAKICAgICBpZiAoIW1fbWVkaWFQbGF5ZXIpCiAgICAgICAgIHJldHVybiBTX09LOwpA
QCAtNzE5LDcgKzcxOSw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgTWVkaWFQbGF5ZXJQ
cmkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OkFzeW5jQ2FsbGJh
Y2s6Om9uTWVkaWFQbGF5ZXJEZWxldGVkKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9t
dXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBtX21lZGlhUGxh
eWVyID0gbnVsbHB0cjsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgTWVkaWFQ
bGF5ZXJMaXN0ZW5lcjsKICAgICBIYXNoU2V0PE1lZGlhUGxheWVyTGlzdGVuZXIqPiBtX2xpc3Rl
bmVyczsKLSAgICBNdXRleCBtX211dGV4TGlzdGVuZXJzOworICAgIExvY2sgbV9tdXRleExpc3Rl
bmVyczsKIAogICAgIENPTVB0cjxJTUZNZWRpYVNlc3Npb24+IG1fbWVkaWFTZXNzaW9uOwogICAg
IENPTVB0cjxJTUZTb3VyY2VSZXNvbHZlcj4gbV9zb3VyY2VSZXNvbHZlcjsKQEAgLTE0OSw3ICsx
NDksNyBAQCBwcml2YXRlOgogICAgICAgICBVTE9ORyBtX3JlZkNvdW50OwogICAgICAgICBNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24qIG1fbWVkaWFQbGF5ZXI7CiAgICAgICAgIGJv
b2wgbV9ldmVudDsKLSAgICAgICAgTXV0ZXggbV9tdXRleDsKKyAgICAgICAgTG9jayBtX211dGV4
OwogICAgIH07CiAKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5
VGlsZUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xl
Z2FjeVRpbGVDYWNoZS5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgpAQCAtMjExLDkgKzIxMiw5IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9wZW5kaW5nU2Nh
bGU7CiAgICAgZmxvYXQgbV9wZW5kaW5nWm9vbWVkT3V0U2NhbGU7CiAKLSAgICBtdXRhYmxlIE11
dGV4IG1fdGlsZU11dGV4OwotICAgIG11dGFibGUgTXV0ZXggbV9zYXZlZERpc3BsYXlSZWN0TXV0
ZXg7Ci0gICAgbXV0YWJsZSBNdXRleCBtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdlTXV0ZXg7Cisg
ICAgbXV0YWJsZSBMb2NrIG1fdGlsZU11dGV4OworICAgIG11dGFibGUgTG9jayBtX3NhdmVkRGlz
cGxheVJlY3RNdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9jb250ZW50UmVwbGFjZW1lbnRJbWFn
ZU11dGV4OwogCiAgICAgYm9vbCBtX3RpbGVDb250cm9sbGVyU2hvdWxkVXNlTG93U2NhbGVUaWxl
czsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hl
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxl
Q2FjaGUubW0JKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9MZWdhY3lUaWxlQ2FjaGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2
b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0VGlsZXNPcGFxdWUoYm9vCiAgICAgaWYgKG1fdGlsZXNP
cGFxdWUgPT0gb3BhcXVlKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKIAog
ICAgIG1fdGlsZXNPcGFxdWUgPSBvcGFxdWU7CiAgICAgbV96b29tZWRPdXRUaWxlR3JpZC0+dXBk
YXRlVGlsZU9wYWNpdHkoKTsKQEAgLTE2MCw3ICsxNjAsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNo
ZTo6ZG9MYXlvdXRUaWxlcygpCiAgICAgaWYgKGlzVGlsZUNyZWF0aW9uU3VzcGVuZGVkKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIExlZ2FjeVRpbGVHcmlkKiBh
Y3RpdmVHcmlkID0gYWN0aXZlVGlsZUdyaWQoKTsKICAgICAvLyBFdmVuIHRob3VnaCB3ZSBhcmVu
J3QgYWN0dWFsbHkgY3JlYXRpbmcgdGlsZXMgaW4gdGhlIGluYWN0aXZlIGdyaWQsIHdlCiAgICAg
Ly8gc3RpbGwgbmVlZCB0byBkcm9wIGludmFsaWQgdGlsZXMgaW4gcmVzcG9uc2UgdG8gYSBsYXlv
dXQuCkBAIC0yMDAsNyArMjAwLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldEN1cnJlbnRT
Y2FsZShmbAogICAgIGlmICgha2VlcHNab29tZWRPdXRUaWxlcygpICYmICFpc1RpbGVJbnZhbGlk
YXRpb25TdXNwZW5kZWQoKSkgewogICAgICAgICAvLyBUaWxlIGludmFsaWRhdGlvbiBpcyBub3Jt
YWxseSBzdXNwZW5kZWQgZHVyaW5nIHpvb21pbmcgYnkgVUlLaXQgYnV0IHNvbWUgYXBwbGljYXRp
b25zCiAgICAgICAgIC8vIHVzaW5nIGN1c3RvbSBzY3JvbGx2aWV3cyBtYXkgem9vbSB3aXRob3V0
IHRyaWdnZXJpbmcgdGhlIGNhbGxiYWNrcy4gSW52YWxpZGF0ZSB0aGUgdGlsZXMgZXhwbGljaXRs
eS4KLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgICAgICBhY3RpdmVUaWxlR3JpZCgpLT5k
cm9wQWxsVGlsZXMoKTsKICAgICAgICAgYWN0aXZlVGlsZUdyaWQoKS0+Y3JlYXRlVGlsZXMoQ292
ZXJWaXNpYmxlT25seSk7CiAgICAgfQpAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgTGVnYWN5VGls
ZUNhY2hlOjpjb21taXRTY2FsZUNoYW5nZSgKICAgICBBU1NFUlQobV9wZW5kaW5nWm9vbWVkT3V0
U2NhbGUgfHwgbV9wZW5kaW5nU2NhbGUpOwogICAgIEFTU0VSVChtX3RpbGluZ01vZGUgIT0gRGlz
YWJsZWQpOwogICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogCiAgICAgaWYgKG1fcGVuZGluZ1pvb21l
ZE91dFNjYWxlKSB7CiAgICAgICAgIG1fem9vbWVkT3V0VGlsZUdyaWQtPnNldFNjYWxlKG1fcGVu
ZGluZ1pvb21lZE91dFNjYWxlKTsKQEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIExlZ2FjeVRpbGVD
YWNoZTo6bGF5b3V0VGlsZXNOb3coKQogICAgIGlmIChtX3RpbGluZ01vZGUgPT0gWm9vbWluZykK
ICAgICAgICAgbV90aWxpbmdNb2RlID0gTWluaW1hbDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAg
IExlZ2FjeVRpbGVHcmlkKiBhY3RpdmVHcmlkID0gYWN0aXZlVGlsZUdyaWQoKTsKICAgICBpZiAo
YWN0aXZlR3JpZC0+Y2hlY2tEb1NpbmdsZVRpbGVMYXlvdXQoKSkgewogICAgICAgICBtX3RpbGlu
Z01vZGUgPSBzYXZlZFRpbGluZ01vZGU7CkBAIC0zMjcsMTQgKzMyNywxNCBAQCB2b2lkIExlZ2Fj
eVRpbGVDYWNoZTo6bGF5b3V0VGlsZXNOb3coKQogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmxheW91
dFRpbGVzTm93Rm9yUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIEFTU0VSVChXZWJU
aHJlYWRJc0xvY2tlZE9yRGlzYWJsZWQoKSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fdGls
ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAKICAgICBhY3Rp
dmVUaWxlR3JpZCgpLT5hZGRUaWxlc0NvdmVyaW5nUmVjdChyZWN0KTsKIH0KIAogdm9pZCBMZWdh
Y3lUaWxlQ2FjaGU6OnJlbW92ZUFsbE5vblZpc2libGVUaWxlcygpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRl
eCk7CiAgICAgcmVtb3ZlQWxsTm9uVmlzaWJsZVRpbGVzSW50ZXJuYWwoKTsKIH0KIApAQCAtMzU2
LDcgKzM1Niw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxOb25WaXNpYmwKIAog
dm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnJlbW92ZUFsbFRpbGVzKCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4
KTsKICAgICBtX3pvb21lZE91dFRpbGVHcmlkLT5kcm9wQWxsVGlsZXMoKTsKICAgICBpZiAobV96
b29tZWRJblRpbGVHcmlkKQogICAgICAgICBtX3pvb21lZEluVGlsZUdyaWQtPmRyb3BBbGxUaWxl
cygpOwpAQCAtMzY0LDcgKzM2NCw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVBbGxU
aWxlcygpCiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpyZW1vdmVGb3JlZ3JvdW5kVGlsZXMoKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV90aWxlTXV0ZXgpOwogICAgIGlmICgha2VlcHNab29tZWRPdXRUaWxlcygpKQogICAg
ICAgICBtX3pvb21lZE91dFRpbGVHcmlkLT5kcm9wQWxsVGlsZXMoKTsKICAgICBpZiAobV96b29t
ZWRJblRpbGVHcmlkKQpAQCAtMzczLDEzICszNzMsMTMgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6
OnJlbW92ZUZvcmVncm91bmRUaQogCiB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0Q29udGVudFJl
cGxhY2VtZW50SW1hZ2UoUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNvbnRlbnRSZXBsYWNlbWVudElt
YWdlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2NvbnRlbnRSZXBsYWNlbWVudEltYWdl
TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY29udGVudFJlcGxhY2VtZW50SW1hZ2VN
dXRleCk7CiAgICAgbV9jb250ZW50UmVwbGFjZW1lbnRJbWFnZSA9IGNvbnRlbnRSZXBsYWNlbWVu
dEltYWdlOwogfQogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gTGVnYWN5VGlsZUNhY2hlOjpjb250
ZW50UmVwbGFjZW1lbnRJbWFnZSgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
Y29udGVudFJlcGxhY2VtZW50SW1hZ2VNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9j
b250ZW50UmVwbGFjZW1lbnRJbWFnZU11dGV4KTsKICAgICByZXR1cm4gbV9jb250ZW50UmVwbGFj
ZW1lbnRJbWFnZTsKIH0KIApAQCAtNDI2LDcgKzQyNiw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hl
Ojp0aWxlQ3JlYXRpb25UaW1lckYKIHsKICAgICBpZiAoaXNUaWxlQ3JlYXRpb25TdXNwZW5kZWQo
KSkKICAgICAgICAgcmV0dXJuOwotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90aWxlTXV0ZXgpOwogICAgIGNyZWF0ZVRpbGVzSW5B
Y3RpdmVHcmlkKENvdmVyU3BlY3VsYXRpdmUpOwogfQogCkBAIC02MjAsNyArNjIwLDcgQEAgdm9p
ZCBMZWdhY3lUaWxlQ2FjaGU6OnNjaGVkdWxlTGF5ZXJGbHVzaAogCiB2b2lkIExlZ2FjeVRpbGVD
YWNoZTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zYXZlZERpc3BsYXlSZWN0TXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fc2F2ZWREaXNwbGF5UmVjdE11dGV4KTsKICAgICBib29sIGFkZGVk
Rmlyc3RSZWN0ID0gbV9zYXZlZERpc3BsYXlSZWN0cy5pc0VtcHR5KCk7CiAgICAgbV9zYXZlZERp
c3BsYXlSZWN0cy5hcHBlbmQoZGlydHlSZWN0KTsKICAgICBpZiAoIWFkZGVkRmlyc3RSZWN0KQpA
QCAtNjkyLDcgKzY5Miw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjp1cGRhdGVUaWxpbmdNb2Rl
KCkKICAgICAgICAgaWYgKG1fdGlsaW5nTW9kZSA9PSBEaXNhYmxlZCkKICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgICAgIGNyZWF0ZVRpbGVzSW5B
Y3RpdmVHcmlkKENvdmVyVmlzaWJsZU9ubHkpOwogCiAgICAgICAgIGlmICghbV9zYXZlZERpc3Bs
YXlSZWN0cy5pc0VtcHR5KCkpCkBAIC03MTAsNyArNzEwLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2Fj
aGU6OnNldFRpbGluZ01vZGUoVGlsaQogICAgIGlmICgobV9wZW5kaW5nWm9vbWVkT3V0U2NhbGUg
fHwgbV9wZW5kaW5nU2NhbGUpICYmIG1fdGlsaW5nTW9kZSAhPSBEaXNhYmxlZCkKICAgICAgICAg
Y29tbWl0U2NhbGVDaGFuZ2UoKTsKICAgICBlbHNlIGlmICh3YXNab29taW5nKSB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX3RpbGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fdGlsZU11dGV4KTsKICAgICAgICAgYnJpbmdBY3RpdmVUaWxlR3JpZFRvRnJvbnQoKTsK
ICAgICB9CiAKQEAgLTc1Myw3ICs3NTMsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6ZG9QZW5k
aW5nUmVwYWludHMoCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoaXNUaWxlSW52YWxpZGF0aW9u
U3VzcGVuZGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90
aWxlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGlsZU11dGV4KTsKICAgICBmbHVz
aFNhdmVkRGlzcGxheVJlY3RzKCk7CiB9CiAKQEAgLTc2NCw3ICs3NjQsNyBAQCB2b2lkIExlZ2Fj
eVRpbGVDYWNoZTo6Zmx1c2hTYXZlZERpc3BsYXlSCiAKICAgICBWZWN0b3I8SW50UmVjdD4gcmVj
dHM7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zYXZlZERpc3BsYXlSZWN0
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NhdmVkRGlzcGxheVJlY3RNdXRl
eCk7CiAgICAgICAgIG1fc2F2ZWREaXNwbGF5UmVjdHMuc3dhcChyZWN0cyk7CiAgICAgfQogICAg
IHNpemVfdCBzaXplID0gcmVjdHMuc2l6ZSgpOwpAQCAtNzkyLDcgKzc5Miw3IEBAIHZvaWQgTGVn
YWN5VGlsZUNhY2hlOjpwcmVwYXJlVG9EcmF3KCkKICAgICBbW21fd2luZG93IGNvbnRlbnRWaWV3
XSB2aWV3V2lsbERyYXddOwogCiAgICAgaWYgKCFtX3NhdmVkRGlzcGxheVJlY3RzLmlzRW1wdHko
KSkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90aWxlTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3RpbGVNdXRleCk7CiAgICAgICAgIGZsdXNoU2F2ZWREaXNwbGF5
UmVjdHMoKTsKICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVn
YWN5VGlsZUxheWVyUG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzUsNyArNzYsNyBAQCBwcml2YXRlOgog
ICAgIFZlY3RvcjxJbnRTaXplPiBtX3NpemVzSW5QcnVuZU9yZGVyOwogICAgIHVuc2lnbmVkIG1f
dG90YWxCeXRlczsKICAgICB1bnNpZ25lZCBtX2NhcGFjaXR5OwotICAgIE11dGV4IG1fbGF5ZXJQ
b29sTXV0ZXg7CisgICAgTG9jayBtX2xheWVyUG9vbE11dGV4OwogCiAgICAgZG91YmxlIG1fbGFz
dEFkZFRpbWU7CiAgICAgYm9vbCBtX25lZWRzUHJ1bmU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbQkocmV2aXNpb24gMTg4
NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBMZWdhY3lUaWxlTGF5ZXJQ
b29sOjphZGRMYXllcihjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bGF5ZXJQb29sTXV0ZXgpOwogICAgIGxpc3RPZkxheWVyc1dpdGhTaXplKGxheWVyU2l6ZSkucHJl
cGVuZChsYXllcik7CiAgICAgbV90b3RhbEJ5dGVzICs9IGJ5dGVzQmFja2luZ0xheWVyV2l0aFBp
eGVsU2l6ZShsYXllclNpemUpOwogCkBAIC05Niw3ICs5Niw3IEBAIFJldGFpblB0cjxMZWdhY3lU
aWxlTGF5ZXI+IExlZ2FjeVRpbGVMYXkKIHsKICAgICBpZiAoIWNhblJldXNlTGF5ZXJXaXRoU2l6
ZShzaXplKSkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9s
YXllclBvb2xNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXllclBvb2xNdXRleCk7
CiAgICAgTGF5ZXJMaXN0JiByZXVzZUxpc3QgPSBsaXN0T2ZMYXllcnNXaXRoU2l6ZShzaXplLCBN
YXJrQXNVc2VkKTsKICAgICBpZiAocmV1c2VMaXN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IG5pbDsKQEAgLTEwNiw3ICsxMDYsNyBAQCBSZXRhaW5QdHI8TGVnYWN5VGlsZUxheWVyPiBMZWdh
Y3lUaWxlTGF5CiAKIHZvaWQgTGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkodW5zaWdu
ZWQgY2FwYWNpdHkpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgcmV1c2VMb2NrZXIobV9sYXllclBvb2xN
dXRleCk7CisgICAgTG9ja0hvbGRlciByZXVzZUxvY2tlcihtX2xheWVyUG9vbE11dGV4KTsKICAg
ICBpZiAoY2FwYWNpdHkgPCBtX2NhcGFjaXR5KQogICAgICAgICBzY2hlZHVsZVBydW5lKCk7CiAg
ICAgbV9jYXBhY2l0eSA9IGNhcGFjaXR5OwpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgTGVnYWN5
VGlsZUxheWVyUG9vbDo6c2NoZWR1bGVQcnVuZSgKIAogdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29s
OjpwcnVuZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOwogICAgIEFTU0VSVChtX25l
ZWRzUHJ1bmUpOwogICAgIG1fbmVlZHNQcnVuZSA9IGZhbHNlOwogICAgIHVuc2lnbmVkIHNocmlu
a1RvID0gZGVjYXllZENhcGFjaXR5KCk7CkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBMZWdhY3lU
aWxlTGF5ZXJQb29sOjpwcnVuZSgpCiAKIHZvaWQgTGVnYWN5VGlsZUxheWVyUG9vbDo6ZHJhaW4o
KQogewotICAgIE11dGV4TG9ja2VyIHJldXNlTG9ja2VyKG1fbGF5ZXJQb29sTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgcmV1c2VMb2NrZXIobV9sYXllclBvb2xNdXRleCk7CiAgICAgbV9yZXVzZUxp
c3RzLmNsZWFyKCk7CiAgICAgbV9zaXplc0luUHJ1bmVPcmRlci5jbGVhcigpOwogICAgIG1fdG90
YWxCeXRlcyA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybERvd25sb2FkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYwLDcgKzYwLDcgQEAgQ3VybERvd25sb2FkTWFuYWdlcjo6fkN1cmxEb3dubG9h
ZE1hbmFnZQogCiBib29sIEN1cmxEb3dubG9hZE1hbmFnZXI6OmFkZChDVVJMKiBjdXJsSGFuZGxl
KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX211dGV4KTsKIAogICAgIG1fcGVuZGluZ0hhbmRsZUxpc3QuYXBwZW5kKGN1cmxIYW5k
bGUpOwogICAgIHN0YXJ0VGhyZWFkSWZOZWVkZWQoKTsKQEAgLTcwLDcgKzcwLDcgQEAgYm9vbCBD
dXJsRG93bmxvYWRNYW5hZ2VyOjphZGQoQ1VSTCogY3VybAogCiBib29sIEN1cmxEb3dubG9hZE1h
bmFnZXI6OnJlbW92ZShDVVJMKiBjdXJsSGFuZGxlKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIG1fcmVt
b3ZlZEhhbmRsZUxpc3QuYXBwZW5kKGN1cmxIYW5kbGUpOwogCkBAIC03OSwxMyArNzksMTMgQEAg
Ym9vbCBDdXJsRG93bmxvYWRNYW5hZ2VyOjpyZW1vdmUoQ1VSTCogYwogCiBpbnQgQ3VybERvd25s
b2FkTWFuYWdlcjo6Z2V0QWN0aXZlRG93bmxvYWRDb3VudCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwog
ICAgIHJldHVybiBtX2FjdGl2ZUhhbmRsZUxpc3Quc2l6ZSgpOwogfQogCiBpbnQgQ3VybERvd25s
b2FkTWFuYWdlcjo6Z2V0UGVuZGluZ0Rvd25sb2FkQ291bnQoKSBjb25zdAogewotICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsK
ICAgICByZXR1cm4gbV9wZW5kaW5nSGFuZGxlTGlzdC5zaXplKCk7CiB9CiAKQEAgLTExMSw3ICsx
MTEsNyBAQCB2b2lkIEN1cmxEb3dubG9hZE1hbmFnZXI6OnN0b3BUaHJlYWQoKQogCiB2b2lkIEN1
cmxEb3dubG9hZE1hbmFnZXI6OnN0b3BUaHJlYWRJZklkbGUoKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAg
IGlmICghZ2V0QWN0aXZlRG93bmxvYWRDb3VudCgpICYmICFnZXRQZW5kaW5nRG93bmxvYWRDb3Vu
dCgpKQogICAgICAgICBzZXRSdW5UaHJlYWQoZmFsc2UpOwpAQCAtMTE5LDcgKzExOSw3IEBAIHZv
aWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RvcFRocmVhZElmSWQKIAogdm9pZCBDdXJsRG93bmxv
YWRNYW5hZ2VyOjp1cGRhdGVIYW5kbGVMaXN0KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICAvLyBSZW1v
dmUgY3VybCBlYXN5IGhhbmRsZXMgZnJvbSBtdWx0aSBsaXN0IAogICAgIGludCBzaXplID0gbV9y
ZW1vdmVkSGFuZGxlTGlzdC5zaXplKCk7CkBAIC0yNDUsNyArMjQ1LDcgQEAgQ3VybERvd25sb2Fk
OjpDdXJsRG93bmxvYWQoKQogCiBDdXJsRG93bmxvYWQ6On5DdXJsRG93bmxvYWQoKQogewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211
dGV4KTsKIAogICAgIGlmIChtX3VybCkKICAgICAgICAgZmFzdEZyZWUobV91cmwpOwpAQCAtMjYy
LDcgKzI2Miw3IEBAIHZvaWQgQ3VybERvd25sb2FkOjppbml0KEN1cmxEb3dubG9hZExpc3QKICAg
ICBpZiAoIWxpc3RlbmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBtX2N1
cmxIYW5kbGUgPSBjdXJsX2Vhc3lfaW5pdCgpOwogCkBAIC0yOTUsNyArMjk1LDcgQEAgdm9pZCBD
dXJsRG93bmxvYWQ6OmluaXQoQ3VybERvd25sb2FkTGlzdAogICAgIGlmICghbGlzdGVuZXIpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIFVSTCB1cmwoUGFyc2VkVVJMU3RyaW5n
LCByZXF1ZXN0LnVybCgpKTsKIApAQCAtMzE3LDI1ICszMTcsMjUgQEAgYm9vbCBDdXJsRG93bmxv
YWQ6OmNhbmNlbCgpCiAKIFN0cmluZyBDdXJsRG93bmxvYWQ6OmdldFRlbXBQYXRoKCkgY29uc3QK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fdGVtcFBhdGg7CiB9CiAKIFN0cmluZyBDdXJsRG93
bmxvYWQ6OmdldFVybCgpIGNvbnN0CiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIHJldHVybiBTdHJpbmcobV91
cmwpOwogfQogCiBSZXNvdXJjZVJlc3BvbnNlIEN1cmxEb3dubG9hZDo6Z2V0UmVzcG9uc2UoKSBj
b25zdAogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX211dGV4KTsKICAgICByZXR1cm4gbV9yZXNwb25zZTsKIH0KIAogdm9pZCBDdXJs
RG93bmxvYWQ6OmNsb3NlRmlsZSgpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKG1fdGVtcEhhbmRs
ZSAhPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSB7CiAgICAgICAgIFdlYkNvcmU6OmNsb3Nl
RmlsZShtX3RlbXBIYW5kbGUpOwpAQCAtMzkwLDcgKzM5MCw3IEBAIHZvaWQgQ3VybERvd25sb2Fk
OjphZGRIZWFkZXJzKGNvbnN0IFJlc28KIAogdm9pZCBDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVI
ZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
bXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYgKGhlYWRl
ciA9PSAiXHJcbiIgfHwgaGVhZGVyID09ICJcbiIpIHsKIApAQCAtNDMwLDcgKzQzMCw3IEBAIHZv
aWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZlSGVhZGVyKGNvbnMKIAogdm9pZCBDdXJsRG93bmxv
YWQ6OmRpZFJlY2VpdmVEYXRhKHZvaWQqIGRhdGEsIGludCBzaXplKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAog
ICAgIFJlZlB0cjxDdXJsRG93bmxvYWQ+IHByb3RlY3RlZERvd25sb2FkKHRoaXMpOwogCkBAIC00
NjQsNyArNDY0LDcgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmRpZEZpbmlzaCgpCiAKIHZvaWQgQ3Vy
bERvd25sb2FkOjpkaWRGYWlsKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAKICAgICBjbG9zZUZpbGUoKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
RG93bmxvYWQuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3
IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENVUkwqPiBtX3BlbmRpbmdIYW5kbGVMaXN0OwogICAg
IFZlY3RvcjxDVVJMKj4gbV9hY3RpdmVIYW5kbGVMaXN0OwogICAgIFZlY3RvcjxDVVJMKj4gbV9y
ZW1vdmVkSGFuZGxlTGlzdDsKLSAgICBtdXRhYmxlIE11dGV4IG1fbXV0ZXg7CisgICAgbXV0YWJs
ZSBMb2NrIG1fbXV0ZXg7CiAgICAgYm9vbCBtX3J1blRocmVhZDsKIH07CiAKQEAgLTE0MCw3ICsx
NDAsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlBsYXRmb3JtRmlsZUhhbmRsZSBtX3RlbXBI
YW5kbGU7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwogICAgIGJv
b2wgbV9kZWxldGVzRmlsZVVwb25GYWlsdXJlOwotICAgIG11dGFibGUgTXV0ZXggbV9tdXRleDsK
KyAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKICAgICBDdXJsRG93bmxvYWRMaXN0ZW5lciAqbV9s
aXN0ZW5lcjsKIAogICAgIHN0YXRpYyBDdXJsRG93bmxvYWRNYW5hZ2VyIG1fZG93bmxvYWRNYW5h
Z2VyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAJKHJldmlzaW9uIDE4ODU2OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1h
bmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMsMTAgKzEzMywxMSBAQCBzdGF0aWMgY2hh
ciogY29va2llSmFyUGF0aCgpCiAjZW5kaWYKIH0KIAotc3RhdGljIE11dGV4KiBzaGFyZWRSZXNv
dXJjZU11dGV4KGN1cmxfbG9ja19kYXRhIGRhdGEpIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoTXV0ZXgsIGNvb2tpZU11dGV4LCAoKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKE11dGV4LCBkbnNNdXRleCwgKCkpOwotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc2hhcmVNdXRleCwgKCkpOworc3RhdGljIExvY2sqIHNo
YXJlZFJlc291cmNlTXV0ZXgoY3VybF9sb2NrX2RhdGEgZGF0YSkKK3sKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgY29va2llTXV0ZXgsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgZG5zTXV0ZXgsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9jaywgc2hhcmVNdXRleCwgKCkpOwogCiAgICAgc3dp
dGNoIChkYXRhKSB7CiAgICAgICAgIGNhc2UgQ1VSTF9MT0NLX0RBVEFfQ09PS0lFOgpAQCAtMTkw
LDEzICsxOTEsMTMgQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlV2ViVGltaW5nSW5mb3JtYXRpbwog
Ly8gY2FjaGUuCiBzdGF0aWMgdm9pZCBjdXJsX2xvY2tfY2FsbGJhY2soQ1VSTCogLyogaGFuZGxl
ICovLCBjdXJsX2xvY2tfZGF0YSBkYXRhLCBjdXJsX2xvY2tfYWNjZXNzIC8qIGFjY2VzcyAqLywg
dm9pZCogLyogdXNlclB0ciAqLykKIHsKLSAgICBpZiAoTXV0ZXgqIG11dGV4ID0gc2hhcmVkUmVz
b3VyY2VNdXRleChkYXRhKSkKKyAgICBpZiAoTG9jayogbXV0ZXggPSBzaGFyZWRSZXNvdXJjZU11
dGV4KGRhdGEpKQogICAgICAgICBtdXRleC0+bG9jaygpOwogfQogCiBzdGF0aWMgdm9pZCBjdXJs
X3VubG9ja19jYWxsYmFjayhDVVJMKiAvKiBoYW5kbGUgKi8sIGN1cmxfbG9ja19kYXRhIGRhdGEs
IHZvaWQqIC8qIHVzZXJQdHIgKi8pCiB7Ci0gICAgaWYgKE11dGV4KiBtdXRleCA9IHNoYXJlZFJl
c291cmNlTXV0ZXgoZGF0YSkpCisgICAgaWYgKExvY2sqIG11dGV4ID0gc2hhcmVkUmVzb3VyY2VN
dXRleChkYXRhKSkKICAgICAgICAgbXV0ZXgtPnVubG9jaygpOwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tCShyZXZpc2lv
biAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xv
b2subW0JKHdvcmtpbmcgY29weSkKQEAgLTg1LDkgKzg1LDkgQEAgTlNEaWN0aW9uYXJ5ICpXZWJD
b3JlOjpRTERpcmVjdG9yeUF0dHJpYgogICAgIHJldHVybiBkaWN0aW9uYXJ5OwogfQogCi1zdGF0
aWMgTXV0ZXgmIHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpCitzdGF0aWMgTG9j
ayYgcWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8TXV0ZXg+IG11dGV4OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2Nr
PiBtdXRleDsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lk
IFdlYkNvcmU6OmFkZFFMUHJldmlld0NvbnZlcnRlcldpdGhGCiB7CiAgICAgQVNTRVJUKHVybCk7
CiAgICAgQVNTRVJUKGNvbnZlcnRlcik7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhxbFByZXZpZXdD
b252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmll
d0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKICAgICBbUUxQcmV2aWV3Q29udmVydGVyRGlj
dGlvbmFyeSgpIHNldE9iamVjdDpjb252ZXJ0ZXIgZm9yS2V5OnVybF07CiAgICAgW1FMQ29udGVu
dERpY3Rpb25hcnkoKSBzZXRPYmplY3Q6KGZpbGVOYW1lID8gZmlsZU5hbWUgOiBAIiIpIGZvcktl
eTp1cmxdOwogfQpAQCAtMTIxLDcgKzEyMSw3IEBAIE5TU3RyaW5nICpXZWJDb3JlOjpxbFByZXZp
ZXdDb252ZXJ0ZXJVVEkKIHsKICAgICBpZCBjb252ZXJ0ZXIgPSBuaWw7CiAgICAgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsK
KyAgICAgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRl
eCgpKTsKICAgICAgICAgY29udmVydGVyID0gW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnko
KSBvYmplY3RGb3JLZXk6dXJsXTsKICAgICB9CiAgICAgaWYgKCFjb252ZXJ0ZXIpCkBAIC0xMzEs
NyArMTMxLDcgQEAgTlNTdHJpbmcgKldlYkNvcmU6OnFsUHJldmlld0NvbnZlcnRlclVUSQogCiB2
b2lkIFdlYkNvcmU6OnJlbW92ZVFMUHJldmlld0NvbnZlcnRlckZvclVSTChOU1VSTCAqdXJsKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4
KCkpOworICAgIExvY2tIb2xkZXIgbG9jayhxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0
ZXgoKSk7CiAgICAgW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnkoKSByZW1vdmVPYmplY3RG
b3JLZXk6dXJsXTsKIAogICAgIC8vIERlbGV0ZSB0aGUgZmlsZSB3aGVuIHdlIHJlbW92ZSB0aGUg
cHJldmlldyBjb252ZXJ0ZXIKQEAgLTE2Niw3ICsxNjYsNyBAQCBjb25zdCBVUkwgV2ViQ29yZTo6
c2FmZVFMVVJMRm9yRG9jdW1lbnRVCiAgICAgaWQgY29udmVydGVyID0gbmlsOwogICAgIE5TVVJM
ICpuc0RvY3VtZW50VVJMID0gZG9jdW1lbnRVUkw7CiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKICAgICAg
ICAgY29udmVydGVyID0gW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnkoKSBvYmplY3RGb3JL
ZXk6bnNEb2N1bWVudFVSTF07CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgICAg
IC8vIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9vcGVuaW5nVGhyZWFkKTsKICAgICAgICAg
c3FsaXRlMyogZGIgPSBtX2RiOwogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9kYXRhYmFzZUNsb3NpbmdNdXRleCk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2RhdGFiYXNlQ2xvc2luZ011dGV4KTsKICAgICAgICAgICAgIG1fZGIgPSAwOwogICAg
ICAgICB9CiAgICAgICAgIHNxbGl0ZTNfY2xvc2UoZGIpOwpAQCAtMTYwLDcgKzE2MCw3IEBAIGlu
dDY0X3QgU1FMaXRlRGF0YWJhc2U6Om1heGltdW1TaXplKCkKICAgICBpbnQ2NF90IG1heFBhZ2VD
b3VudCA9IDA7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6
ZXJMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAg
ICAgICAgIGVuYWJsZUF1dGhvcml6ZXIoZmFsc2UpOwogICAgICAgICBTUUxpdGVTdGF0ZW1lbnQg
c3RhdGVtZW50KCp0aGlzLCBBU0NJSUxpdGVyYWwoIlBSQUdNQSBtYXhfcGFnZV9jb3VudCIpKTsK
ICAgICAgICAgbWF4UGFnZUNvdW50ID0gc3RhdGVtZW50LmdldENvbHVtbkludDY0KDApOwpAQCAt
MTgwLDcgKzE4MCw3IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OnNldE1heGltdW1TaXplKGludDYK
ICAgICBBU1NFUlQoY3VycmVudFBhZ2VTaXplIHx8ICFtX2RiKTsKICAgICBpbnQ2NF90IG5ld01h
eFBhZ2VDb3VudCA9IGN1cnJlbnRQYWdlU2l6ZSA/IHNpemUgLyBjdXJyZW50UGFnZVNpemUgOiAw
OwogICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICBlbmFibGVBdXRob3JpemVy
KGZhbHNlKTsKIAogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsICJQUkFHTUEg
bWF4X3BhZ2VfY291bnQgPSAiICsgU3RyaW5nOjpudW1iZXIobmV3TWF4UGFnZUNvdW50KSk7CkBA
IC0xOTcsNyArMTk3LDcgQEAgaW50IFNRTGl0ZURhdGFiYXNlOjpwYWdlU2l6ZSgpCiAgICAgLy8g
U2luY2UgdGhlIHBhZ2Ugc2l6ZSBvZiBhIGRhdGFiYXNlIGlzIGxvY2tlZCBpbiBhdCBjcmVhdGlv
biBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBkeW5hbWljLCAKICAgICAvLyB3ZSBjYW4gY2FjaGUg
dGhlIHZhbHVlIGZvciBmdXR1cmUgdXNlCiAgICAgaWYgKG1fcGFnZVNpemUgPT0gLTEpIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKICAgICAgICAgZW5hYmxlQXV0aG9yaXpl
cihmYWxzZSk7CiAgICAgICAgIAogICAgICAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KCp0
aGlzLCBBU0NJSUxpdGVyYWwoIlBSQUdNQSBwYWdlX3NpemUiKSk7CkBAIC0yMTQsNyArMjE0LDcg
QEAgaW50NjRfdCBTUUxpdGVEYXRhYmFzZTo6ZnJlZVNwYWNlU2l6ZSgpCiAgICAgaW50NjRfdCBm
cmVlbGlzdENvdW50ID0gMDsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
YXV0aG9yaXplckxvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2F1dGhvcml6ZXJM
b2NrKTsKICAgICAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CiAgICAgICAgIC8vIE5vdGU6
IGZyZWVsaXN0X2NvdW50IHdhcyBhZGRlZCBpbiBTUUxpdGUgMy40LjEuCiAgICAgICAgIFNRTGl0
ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsIEFTQ0lJTGl0ZXJhbCgiUFJBR01BIGZyZWVsaXN0
X2NvdW50IikpOwpAQCAtMjMwLDcgKzIzMCw3IEBAIGludDY0X3QgU1FMaXRlRGF0YWJhc2U6OnRv
dGFsU2l6ZSgpCiAgICAgaW50NjRfdCBwYWdlQ291bnQgPSAwOwogCiAgICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fYXV0aG9yaXplckxvY2spOwogICAgICAgICBlbmFibGVBdXRob3JpemVyKGZhbHNl
KTsKICAgICAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudCgqdGhpcywgQVNDSUlMaXRlcmFs
KCJQUkFHTUEgcGFnZV9jb3VudCIpKTsKICAgICAgICAgcGFnZUNvdW50ID0gc3RhdGVtZW50Lmdl
dENvbHVtbkludDY0KDApOwpAQCAtMzA5LDcgKzMwOSw3IEBAIGludCBTUUxpdGVEYXRhYmFzZTo6
cnVuVmFjdXVtQ29tbWFuZCgpCiAKIGludCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVtZW50YWxW
YWN1dW1Db21tYW5kKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9j
ayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAgICAgZW5hYmxl
QXV0aG9yaXplcihmYWxzZSk7CiAKICAgICBpZiAoIWV4ZWN1dGVDb21tYW5kKEFTQ0lJTGl0ZXJh
bCgiUFJBR01BIGluY3JlbWVudGFsX3ZhY3V1bSIpKSkKQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lk
IFNRTGl0ZURhdGFiYXNlOjpzZXRBdXRob3JpemVyKFBhc3NSCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAKICAgICBtX2F1dGhvcml6ZXIgPSBh
dXRoOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURh
dGFiYXNlLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nx
bC9TUUxpdGVEYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAKICNp
bmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHNxbGl0ZTMuaD4KKyNpbmNsdWRlIDx3dGYv
TG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0xMDYsNyArMTA3
LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2V0QXV0aG9yaXplcihQYXNzUmVmUHRyPERh
dGFiYXNlQXV0aG9yaXplcj4pOwogCi0gICAgTXV0ZXgmIGRhdGFiYXNlTXV0ZXgoKSB7IHJldHVy
biBtX2xvY2tpbmdNdXRleDsgfQorICAgIExvY2smIGRhdGFiYXNlTXV0ZXgoKSB7IHJldHVybiBt
X2xvY2tpbmdNdXRleDsgfQogICAgIGJvb2wgaXNBdXRvQ29tbWl0T24oKSBjb25zdDsKIAogICAg
IC8vIFRoZSBTUUxpdGUgQVVUT19WQUNVVU0gcHJhZ21hIGNhbiBiZSBlaXRoZXIgTk9ORSwgRlVM
TCwgb3IgSU5DUkVNRU5UQUwuCkBAIC0xNDcsMTMgKzE0OCwxMyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3M7CiAgICAgYm9vbCBtX3NoYXJhYmxlOwogICAgIAot
ICAgIE11dGV4IG1fYXV0aG9yaXplckxvY2s7CisgICAgTG9jayBtX2F1dGhvcml6ZXJMb2NrOwog
ICAgIFJlZlB0cjxEYXRhYmFzZUF1dGhvcml6ZXI+IG1fYXV0aG9yaXplcjsKIAotICAgIE11dGV4
IG1fbG9ja2luZ011dGV4OworICAgIExvY2sgbV9sb2NraW5nTXV0ZXg7CiAgICAgVGhyZWFkSWRl
bnRpZmllciBtX29wZW5pbmdUaHJlYWQ7CiAKLSAgICBNdXRleCBtX2RhdGFiYXNlQ2xvc2luZ011
dGV4OworICAgIExvY2sgbV9kYXRhYmFzZUNsb3NpbmdNdXRleDsKIAogICAgIGludCBtX29wZW5F
cnJvcjsKICAgICBDU3RyaW5nIG1fb3BlbkVycm9yTWVzc2FnZTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCShyZXZpc2lvbiAxODg1
NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBpbnQgU1FMaXRlU3RhdGVtZW50OjpwcmVw
YXJlKCkKIHsKICAgICBBU1NFUlQoIW1faXNQcmVwYXJlZCk7CiAKLSAgICBNdXRleExvY2tlciBk
YXRhYmFzZUxvY2sobV9kYXRhYmFzZS5kYXRhYmFzZU11dGV4KCkpOworICAgIExvY2tIb2xkZXIg
ZGF0YWJhc2VMb2NrKG1fZGF0YWJhc2UuZGF0YWJhc2VNdXRleCgpKTsKIAogICAgIENTdHJpbmcg
cXVlcnkgPSBtX3F1ZXJ5LnN0cmlwV2hpdGVTcGFjZSgpLnV0ZjgoKTsKICAgICAKQEAgLTg2LDcg
Kzg2LDcgQEAgaW50IFNRTGl0ZVN0YXRlbWVudDo6cHJlcGFyZSgpCiAKIGludCBTUUxpdGVTdGF0
ZW1lbnQ6OnN0ZXAoKQogewotICAgIE11dGV4TG9ja2VyIGRhdGFiYXNlTG9jayhtX2RhdGFiYXNl
LmRhdGFiYXNlTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBkYXRhYmFzZUxvY2sobV9kYXRhYmFz
ZS5kYXRhYmFzZU11dGV4KCkpOwogCiAgICAgaWYgKCFtX3N0YXRlbWVudCkKICAgICAgICAgcmV0
dXJuIFNRTElURV9PSzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5j
cHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3IEBAIFdvcmtlclRocmVhZDo6
fldvcmtlclRocmVhZCgpCiBib29sIFdvcmtlclRocmVhZDo6c3RhcnQoKQogewogICAgIC8vIE11
dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IG1fdGhyZWFkSUQgaXMg
aW5pdGlhbGl6ZWQgd2hlbiB0aGUgdGhyZWFkIHN0YXJ0cy4KLSAgICBNdXRleExvY2tlciBsb2Nr
KG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3Jl
YXRpb25NdXRleCk7CiAKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiAj
ZW5kaWYKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9u
TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsK
ICAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKG1f
c3RhcnR1cERhdGEtPm1fc2NyaXB0VVJMLCBtX3N0YXJ0dXBEYXRhLT5tX3VzZXJBZ2VudCwgbV9z
dGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fc3RhcnR1cERhdGEtPm1fY29u
dGVudFNlY3VyaXR5UG9saWN5VHlwZSwgbV9zdGFydHVwRGF0YS0+bV90b3BPcmlnaW4ucmVsZWFz
ZSgpKTsKIAogICAgICAgICBpZiAobV9ydW5Mb29wLnRlcm1pbmF0ZWQoKSkgewpAQCAtMTg5LDcg
KzE4OSw3IEBAIHZvaWQgV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AoKQogdm9pZCBXb3JrZXJU
aHJlYWQ6OnN0b3AoKQogewogICAgIC8vIE11dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IGJl
Y2F1c2Ugc3RvcCgpIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHRoZSBjb250ZXh0IGlzIGZ1bGx5IGNy
ZWF0ZWQuCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOworICAg
IExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwogCiAgICAgLy8gRW5zdXJl
IHRoYXQgdGFza3MgYXJlIGJlaW5nIGhhbmRsZWQgYnkgdGhyZWFkIGV2ZW50IGxvb3AuIElmIHNj
cmlwdCBleGVjdXRpb24gd2VyZW4ndCBmb3JiaWRkZW4sIGEgd2hpbGUoMSkgbG9vcCBpbiBKUyBj
b3VsZCBrZWVwIHRoZSB0aHJlYWQgYWxpdmUgZm9yZXZlci4KICAgICBpZiAobV93b3JrZXJHbG9i
YWxTY29wZSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCShyZXZp
c2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgV29ya2VyUmVwb3J0aW5nUHJveHkmIG1fd29ya2VyUmVwb3J0aW5nUHJveHk7CiAKICAgICAg
ICAgUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBtX3dvcmtlckdsb2JhbFNjb3BlOwotICAgICAg
ICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7CisgICAgICAgIExvY2sgbV90aHJlYWRDcmVh
dGlvbk11dGV4OwogCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJUaHJlYWRTdGFydHVw
RGF0YT4gbV9zdGFydHVwRGF0YTsKIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTkg
QEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2Nr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERhdGFi
YXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFz
ZVByb2Nlc3M6OnBvc3REYXRhYmFzZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVBy
b2Nlc3M6OnBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nl
c3MvRGF0YWJhc2VQcm9jZXNzLmg6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpzaHV0ZG93bik6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0
TWFpblRocmVhZFRhc2spOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6cGVy
Zm9ybU5leHRNYWluVGhyZWFkVGFzayk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpwb3N0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJh
c2U6OnBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2Up
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2VGcm9tU2Vjb25kYXJ5
VGhyZWFkKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6d2FpdEZvclN5bmNSZXBseSk6Cisg
ICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ1N5bmNSZXBseSk6CisgICAg
ICAgIChJUEM6OkNvbm5lY3Rpb246OmNvbm5lY3Rpb25EaWRDbG9zZSk6CisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6OmFwcGVuZFVwZGF0ZSk6CisgICAgICAgICogU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmg6CisgICAgICAgICog
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRl
Q29tcG9zaXRpbmdUaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6
OnJ1bkNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3Np
dG9yOjp0ZXJtaW5hdGVDb21wb3NpdGluZ1RocmVhZCk6CisgICAgICAgICogU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oOgor
ICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90
b2NvbE1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyOjphZGRDdXN0b21Qcm90b2NvbCk6CisgICAgICAgIChXZWJLaXQ6OkN1c3RvbVByb3RvY29s
TWFuYWdlcjo6cmVtb3ZlQ3VzdG9tUHJvdG9jb2wpOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Q
cm90b2NvbE1hbmFnZXI6OnJlZ2lzdGVyU2NoZW1lKToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyOjp1bnJlZ2lzdGVyU2NoZW1lKToKKyAgICAgICAgKFdlYktpdDo6Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyOjpzdXBwb3J0c1NjaGVtZSk6CisgICAgICAgIChXZWJLaXQ6OkN1
c3RvbVByb3RvY29sTWFuYWdlcjo6cHJvdG9jb2xGb3JJRCk6CisgICAgICAgICogU2hhcmVkL05l
dHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oOgorICAgICAgICAq
IFNoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpnZXRQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlcjo6cmVtb3ZlUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OnBsdWdpblByb2Nlc3NDcmFz
aGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6YWRkU2Nyb2xsaW5nVHJl
ZUZvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OnJlbW92ZVNjcm9s
bGluZ1RyZWVGb3JQYWdlKToKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjp3aGVl
bEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0u
Y3BwOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYyk6Cisg
ICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtQWRkRGF0YSk6CisKIDIwMTUtMDgt
MTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBTcGVjdWxhdGl2ZSBHVEsgYnVpbGQgZml4IGFmdGVyIHIxODg1NTMKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCShyZXZp
c2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQ
cm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgRGF0YWJh
c2VQcm9jZXNzOjpwb3N0RGF0YWJhc2VUYXNrKHMKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwogCiAgICAgbV9kYXRh
YmFzZVRhc2tzLmFwcGVuZChXVEY6Om1vdmUodGFzaykpOwogCkBAIC0xNjYsNyArMTY2LDcgQEAg
dm9pZCBEYXRhYmFzZVByb2Nlc3M6OnBlcmZvcm1OZXh0RGF0YWJhcwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPEFzeW5jVGFzaz4gdGFzazsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRh
YmFzZVRhc2tNdXRleCk7CiAgICAgICAgIEFTU0VSVCghbV9kYXRhYmFzZVRhc2tzLmlzRW1wdHko
KSk7CiAgICAgICAgIHRhc2sgPSBtX2RhdGFiYXNlVGFza3MudGFrZUZpcnN0KCk7CiAgICAgfQpJ
bmRleDogU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nl
c3MuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgcHJp
dmF0ZToKICAgICBIYXNoTWFwPFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllciwgUmVmUHRyPFVu
aXF1ZUlEQkRhdGFiYXNlPj4gbV9pZGJEYXRhYmFzZXM7CiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1
ZV9wdHI8QXN5bmNUYXNrPj4gbV9kYXRhYmFzZVRhc2tzOwotICAgIE11dGV4IG1fZGF0YWJhc2VU
YXNrTXV0ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlVGFza011dGV4OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAkocmV2aXNpb24g
MTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9Vbmlx
dWVJREJEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpzaHV0ZG93bihVbmlxdWVJCiAgICAgcmVmKCk7CiAKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlVGFza011dGV4KTsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CiAgICAgICAgIG1fZGF0
YWJhc2VUYXNrcy5jbGVhcigpOwogICAgIH0KIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6cG9zdE1haW5UaHJlYWRUYQogICAgIGlmICghbV9hY2NlcHRpbmdO
ZXdSZXF1ZXN0cyAmJiB0YXNrVHlwZSA9PSBEYXRhYmFzZVRhc2tUeXBlOjpOb3JtYWwpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbWFpblRocmVhZFRhc2tNdXRleCk7CiAKICAg
ICBtX21haW5UaHJlYWRUYXNrcy5hcHBlbmQoV1RGOjptb3ZlKHRhc2spKTsKIApAQCAtMTE0Myw3
ICsxMTQzLDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybU5leHRNYWluVAogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFzazsKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX21haW5UaHJlYWRUYXNrTXV0ZXgpOwogCiAgICAgICAgIC8vIFRoaXMgZGF0YWJh
c2UgbWlnaHQgYmUgc2h1dHRpbmcgZG93biwgaW4gd2hpY2ggY2FzZSB0aGUgdGFzayBxdWV1ZSBt
aWdodCBiZSBlbXB0eS4KICAgICAgICAgaWYgKG1fbWFpblRocmVhZFRhc2tzLmlzRW1wdHkoKSkK
QEAgLTExNjUsNyArMTE2NSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBvc3REYXRhYmFz
ZVRhc2sKICAgICBpZiAoIW1fYWNjZXB0aW5nTmV3UmVxdWVzdHMgJiYgdGFza1R5cGUgPT0gRGF0
YWJhc2VUYXNrVHlwZTo6Tm9ybWFsKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9k
YXRhYmFzZVRhc2tNdXRleCk7CiAKICAgICBtX2RhdGFiYXNlVGFza3MuYXBwZW5kKFdURjo6bW92
ZSh0YXNrKSk7CiAKQEAgLTExODYsNyArMTE4Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnBlcmZvcm1OZXh0RGF0YWIKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1Rhc2s+IHRhc2s7
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZVRhc2tNdXRleCk7
CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwogCiAgICAg
ICAgIC8vIFRoaXMgZGF0YWJhc2UgbWlnaHQgYmUgc2h1dHRpbmcgZG93biBvbiB0aGUgbWFpbiB0
aHJlYWQsIGluIHdoaWNoIGNhc2UgdGhlIHRhc2sgcXVldWUgbWlnaHQgYmUgZW1wdHkuCiAgICAg
ICAgIGlmIChtX2RhdGFiYXNlVGFza3MuaXNFbXB0eSgpKQpJbmRleDogU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0
YWJhc2UuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAs
MTAgKzIxMCwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZUJhY2tp
bmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAKICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8QXN5
bmNUYXNrPj4gbV9kYXRhYmFzZVRhc2tzOwotICAgIE11dGV4IG1fZGF0YWJhc2VUYXNrTXV0ZXg7
CisgICAgTG9jayBtX2RhdGFiYXNlVGFza011dGV4OwogCiAgICAgRGVxdWU8c3RkOjp1bmlxdWVf
cHRyPEFzeW5jVGFzaz4+IG1fbWFpblRocmVhZFRhc2tzOwotICAgIE11dGV4IG1fbWFpblRocmVh
ZFRhc2tNdXRleDsKKyAgICBMb2NrIG1fbWFpblRocmVhZFRhc2tNdXRleDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25u
ZWN0aW9uLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTksNyArNDU5LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aQogCiAgICAgLy8gUHVzaCB0aGUg
cGVuZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uIG9uIG91ciBzdGFjay4KICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogICAgICAgICBpZiAoIW1f
c2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzKSB7CiAgICAgICAgICAgICBkaWRGYWlsVG9TZW5kU3lu
Y01lc3NhZ2UoKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNDg2LDcgKzQ4Niw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAogICAgIC8vIEZp
bmFsbHksIHBvcCB0aGUgcGVuZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uLgogICAgIHsKLSAg
ICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAgICAgICAgIEFTU0VS
VChtX3BlbmRpbmdTeW5jUmVwbGllcy5sYXN0KCkuc3luY1JlcXVlc3RJRCA9PSBzeW5jUmVxdWVz
dElEKTsKICAgICAgICAgbV9wZW5kaW5nU3luY1JlcGxpZXMucmVtb3ZlTGFzdCgpOwogICAgIH0K
QEAgLTUwOCw3ICs1MDgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5l
Y3RpCiAKICAgICAvLyBQdXNoIHRoZSBwZW5kaW5nIHN5bmMgcmVwbHkgaW5mb3JtYXRpb24gb24g
b3VyIHN0YWNrLgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5
U3RhdGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVN
dXRleCk7CiAgICAgICAgIGlmICghbV9zaG91bGRXYWl0Rm9yU3luY1JlcGxpZXMpCiAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtNTI2LDcgKzUyNiw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKIAogICAgIC8vIEZpbmFsbHksIHBvcCB0aGUgcGVu
ZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uLgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAgICAgICAgIEFTU0VSVChtX3NlY29uZGFyeVRocmVh
ZFBlbmRpbmdTeW5jUmVwbHlNYXAuY29udGFpbnMoc3luY1JlcXVlc3RJRCkpOwogICAgICAgICBt
X3NlY29uZGFyeVRocmVhZFBlbmRpbmdTeW5jUmVwbHlNYXAucmVtb3ZlKHN5bmNSZXF1ZXN0SUQp
OwogICAgIH0KQEAgLTU0Niw3ICs1NDYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29k
ZXI+IENvbm5lY3RpCiAgICAgICAgIFN5bmNNZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmRpc3Bh
dGNoTWVzc2FnZXMobnVsbHB0cik7CiAgICAgICAgIAogICAgICAgICB7Ci0gICAgICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CiAKICAgICAgICAgICAgIC8v
IFNlY29uZCwgY2hlY2sgaWYgdGhlcmUgaXMgYSBzeW5jIHJlcGx5IGF0IHRoZSB0b3Agb2YgdGhl
IHN0YWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3BlbmRpbmdTeW5jUmVwbGllcy5pc0VtcHR5
KCkpOwpAQCAtNTkyLDcgKzU5Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4g
Q29ubmVjdGkKIAogdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdTeW5jUmVwbHkoc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBkZWNvZGVyKQogewotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
c3luY1JlcGx5U3RhdGVNdXRleCk7CiAKICAgICAvLyBHbyB0aHJvdWdoIHRoZSBzdGFjayBvZiBz
eW5jIHJlcXVlc3RzIHRoYXQgaGF2ZSBwZW5kaW5nIHJlcGxpZXMgYW5kIHNlZSB3aGljaCBvbmUK
ICAgICAvLyB0aGlzIHJlcGx5IGlzIGZvci4KQEAgLTc1MCw3ICs3NTAsNyBAQCB2b2lkIENvbm5l
Y3Rpb246OmNvbm5lY3Rpb25EaWRDbG9zZSgpCiAgICAgcGxhdGZvcm1JbnZhbGlkYXRlKCk7CiAK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgp
OworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogCiAg
ICAgICAgIEFTU0VSVChtX3Nob3VsZFdhaXRGb3JTeW5jUmVwbGllcyk7CiAgICAgICAgIG1fc2hv
dWxkV2FpdEZvclN5bmNSZXBsaWVzID0gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcg
QEAKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvV29ya1F1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0yOTgs
NyArMjk5LDcgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBTeW5jTWVzc2FnZVN0YXRlOwogICAgIGZy
aWVuZCBjbGFzcyBTeW5jTWVzc2FnZVN0YXRlOwogCi0gICAgTXV0ZXggbV9zeW5jUmVwbHlTdGF0
ZU11dGV4OworICAgIExvY2sgbV9zeW5jUmVwbHlTdGF0ZU11dGV4OwogICAgIGJvb2wgbV9zaG91
bGRXYWl0Rm9yU3luY1JlcGxpZXM7CiAgICAgVmVjdG9yPFBlbmRpbmdTeW5jUmVwbHk+IG1fcGVu
ZGluZ1N5bmNSZXBsaWVzOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY5MCw3ICs2OTAsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6
YXBwZW5kVXBkCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcmVuZGVyUXVldWVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9yZW5kZXJRdWV1ZU11dGV4KTsKICAgICBtX3JlbmRlclF1ZXVlLmFwcGVu
ZChXVEY6Om1vdmUoZnVuY3Rpb24pKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgog
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRl
IDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0xNDUsNyAr
MTQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFJlbmRlciBxdWV1ZSBjYW4gYmUgYWNjZXNzZWQg
b255IGZyb20gbWFpbiB0aHJlYWQgb3IgdXBkYXRlUGFpbnROb2RlIGNhbGwgc3RhY2shCiAgICAg
VmVjdG9yPHN0ZDo6ZnVuY3Rpb248dm9pZCgpPj4gbV9yZW5kZXJRdWV1ZTsKLSAgICBNdXRleCBt
X3JlbmRlclF1ZXVlTXV0ZXg7CisgICAgTG9jayBtX3JlbmRlclF1ZXVlTXV0ZXg7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVyOwog
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhy
ZWFkZWRDb21wb3NpdG9yLmNwcAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIFRocmVh
ZGVkQ29tcG9zaXRvcjo6Y3JlYXRlQ29tcG9zaXRpCiAgICAgaWYgKG1fdGhyZWFkSWRlbnRpZmll
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW5pdGlhbGl6
ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFs
aXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKICAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVh
dGVUaHJlYWQoY29tcG9zaXRpbmdUaHJlYWRFbnRyeSwgdGhpcywgIldlYkNvcmU6IFRocmVhZGVk
Q29tcG9zaXRvciIpOwogCiAgICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbi53YWl0KG1f
aW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CkBAIC0zMDQsNyArMzA0LDcgQEAgdm9p
ZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUNvbXBvc2l0aQogdm9pZCBUaHJlYWRlZENvbXBv
c2l0b3I6OnJ1bkNvbXBvc2l0aW5nVGhyZWFkKCkKIHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogCiAg
ICAgICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wID0gc3RkOjptYWtlX3VuaXF1ZTxDb21wb3NpdGlu
Z1J1bkxvb3A+KFsmXSB7CiAgICAgICAgICAgICByZW5kZXJMYXllclRyZWUoKTsKQEAgLTMyMSw3
ICszMjEsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cnVuQ29tcG9zaXRpbmdUCiAgICAg
bV9zY2VuZS0+cHVyZ2VHTFJlc291cmNlcygpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgICAg
IG1fY29tcG9zaXRpbmdSdW5Mb29wID0gbnVsbHB0cjsKICAgICAgICAgbV9jb250ZXh0ID0gbnVs
bHB0cjsKICAgICAgICAgbV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uLnNpZ25hbCgpOwpAQCAt
MzMyLDcgKzMzMiw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpydW5Db21wb3NpdGluZ1QK
IAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnRlcm1pbmF0ZUNvbXBvc2l0aW5nVGhyZWFkKCkK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11
dGV4KTsKIAogICAgIG1fc2NlbmUtPmRldGFjaCgpOwogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29w
LT5ydW5Mb29wKCkuc3RvcCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAkocmV2aXNpb24gMTg4NTY5KQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsOSArMTExLDkg
QEAgcHJpdmF0ZToKIAogICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJZGVudGlmaWVyOwog
ICAgIFRocmVhZENvbmRpdGlvbiBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uOwotICAgIE11
dGV4IG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKKyAgICBMb2NrIG1faW5pdGlh
bGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKICAgICBUaHJlYWRDb25kaXRpb24gbV90ZXJtaW5h
dGVSdW5Mb29wQ29uZGl0aW9uOwotICAgIE11dGV4IG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlv
bk11dGV4OworICAgIExvY2sgbV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXg7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3
b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyLmgJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAyLDExICsxMDIsMTEgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3JlZ2lzdGVyZWRTY2hlbWVzOwotICAgIE11dGV4
IG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleDsKKyAgICBMb2NrIG1fcmVnaXN0ZXJlZFNjaGVtZXNN
dXRleDsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmV0YWluUHRyPFdLQ3VzdG9t
UHJvdG9jb2w+PiBDdXN0b21Qcm90b2NvbE1hcDsKICAgICBDdXN0b21Qcm90b2NvbE1hcCBtX2N1
c3RvbVByb3RvY29sTWFwOwotICAgIE11dGV4IG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleDsKKyAg
ICBMb2NrIG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleDsKICAgICAKICAgICAvLyBXS0N1c3RvbVBy
b3RvY29sIG9iamVjdHMgY2FuIGJlIHJlbW92ZWQgZnJvbSB0aGUgbV9jdXN0b21Qcm90b2NvbE1h
cCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCiAgICAgLy8gV2UgcmV0dXJuIGEgUmV0YWluUHRyIGhl
cmUgYmVjYXVzZSBpdCBpcyB1bnNhZmUgdG8gcmV0dXJuIGEgcmF3IHBvaW50ZXIgc2luY2UgdGhl
IG9iamVjdCBtaWdodCBpbW1lZGlhdGVseSBiZSBkZXN0cm95ZWQgZnJvbSBhIGRpZmZlcmVudCB0
aHJlYWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVBy
b3RvY29sTWFuYWdlckNvY29hLm1tCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2NSwyOCArMTY1LDI4IEBAIHZvaWQgQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyOjppbml0aWFsaXplKGMKIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyOjphZGRDdXN0b21Qcm90b2NvbChXS0N1c3RvbVByb3RvY29sICpjdXN0b21Qcm90b2NvbCkK
IHsKICAgICBBU1NFUlQoY3VzdG9tUHJvdG9jb2wpOwotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY3VzdG9t
UHJvdG9jb2xNYXBNdXRleCk7CiAgICAgbV9jdXN0b21Qcm90b2NvbE1hcC5hZGQoY3VzdG9tUHJv
dG9jb2wuY3VzdG9tUHJvdG9jb2xJRCwgY3VzdG9tUHJvdG9jb2wpOwogfQogCiB2b2lkIEN1c3Rv
bVByb3RvY29sTWFuYWdlcjo6cmVtb3ZlQ3VzdG9tUHJvdG9jb2woV0tDdXN0b21Qcm90b2NvbCAq
Y3VzdG9tUHJvdG9jb2wpCiB7CiAgICAgQVNTRVJUKGN1c3RvbVByb3RvY29sKTsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXgpOwogICAgIG1fY3VzdG9tUHJvdG9jb2xN
YXAucmVtb3ZlKGN1c3RvbVByb3RvY29sLmN1c3RvbVByb3RvY29sSUQpOwogfQogICAgIAogdm9p
ZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnJlZ2lzdGVyU2NoZW1lKGNvbnN0IFN0cmluZyYgc2No
ZW1lKQogewogICAgIEFTU0VSVCghc2NoZW1lLmlzTnVsbCgpKTsKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgpOwogICAgIG1fcmVnaXN0ZXJlZFNjaGVtZXMuYWRkKHNj
aGVtZSk7CiB9CiAgICAgCiB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6dW5yZWdpc3RlclNj
aGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKICAgICBBU1NFUlQoIXNjaGVtZS5pc051bGwo
KSk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcmVnaXN0ZXJlZFNjaGVtZXNNdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9yZWdpc3RlcmVkU2NoZW1lc011dGV4KTsKICAgICBtX3Jl
Z2lzdGVyZWRTY2hlbWVzLnJlbW92ZShzY2hlbWUpOwogfQogCkBAIC0xOTUsNyArMTk1LDcgQEAg
Ym9vbCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OnN1cHBvcnRzU2NoZQogICAgIGlmIChzY2hlbWUu
aXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3JlZ2lzdGVyZWRTY2hlbWVzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcmVn
aXN0ZXJlZFNjaGVtZXNNdXRleCk7CiAgICAgcmV0dXJuIG1fcmVnaXN0ZXJlZFNjaGVtZXMuY29u
dGFpbnMoc2NoZW1lKTsKIH0KIApAQCAtMjc1LDcgKzI3NSw3IEBAICAgICBpZiAoIXByb3RvY29s
KQogCiBSZXRhaW5QdHI8V0tDdXN0b21Qcm90b2NvbD4gQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpw
cm90b2NvbEZvcklEKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQpCiB7Ci0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fY3VzdG9tUHJvdG9jb2xNYXBNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9jdXN0b21Qcm90b2NvbE1hcE11dGV4KTsKIAogICAgIEN1c3RvbVByb3RvY29sTWFwOjpj
b25zdF9pdGVyYXRvciBpdCA9IG1fY3VzdG9tUHJvdG9jb2xNYXAuZmluZChjdXN0b21Qcm90b2Nv
bElEKTsKICAgICBpZiAoaXQgPT0gbV9jdXN0b21Qcm90b2NvbE1hcC5lbmQoKSkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRl
cnMvU2VjY29tcEJyb2tlci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogCiAgICAgaW50IG1fc29ja2V0OwogCi0g
ICAgbXV0YWJsZSBNdXRleCBtX3NvY2tldExvY2s7CisgICAgbXV0YWJsZSBMb2NrIG1fc29ja2V0
TG9jazsKIAogICAgIC8vIE1hcHMgZmlsZXMgdGhhdCBtYXkgYmUgcmVhZCBieSBtYWxsb2MoKSB0
byBvcGVuIGZpbGUgZGVzY3JpcHRvcnMuCiAgICAgSGFzaE1hcDxTdHJpbmcsIGludD4gbV9maWxl
RGVzY3JpcHRvckNhY2hlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
ci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04Niw3ICs4Niw3IEBAIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKiBQbHVnaW5Qcm9jZXNzQ28K
ICAgICBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQocGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24pOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90b2tlbnNBbmRD
b25uZWN0aW9uc011dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90b2tlbnNBbmRD
b25uZWN0aW9uc011dGV4KTsKICAgICAgICAgQVNTRVJUKCFtX3Rva2Vuc0FuZENvbm5lY3Rpb25z
LmNvbnRhaW5zKHBsdWdpblByb2Nlc3NUb2tlbikpOwogCiAgICAgICAgIG1fdG9rZW5zQW5kQ29u
bmVjdGlvbnMuc2V0KHBsdWdpblByb2Nlc3NUb2tlbiwgcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24t
PmNvbm5lY3Rpb24oKSk7CkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXI6OnJlbQogICAgIEFTU0VSVCh2ZWN0b3JJbmRleCAhPSBub3RGb3VuZCk7
CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rp
b25zTXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5lY3Rp
b25zTXV0ZXgpOwogICAgICAgICBBU1NFUlQobV90b2tlbnNBbmRDb25uZWN0aW9ucy5jb250YWlu
cyhwbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi0+cGx1Z2luUHJvY2Vzc1Rva2VuKCkpKTsKICAgICAg
ICAgCiAgICAgICAgIG1fdG9rZW5zQW5kQ29ubmVjdGlvbnMucmVtb3ZlKHBsdWdpblByb2Nlc3ND
b25uZWN0aW9uLT5wbHVnaW5Qcm9jZXNzVG9rZW4oKSk7CkBAIC0xMTIsNyArMTEyLDcgQEAgdm9p
ZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OnJlbQogCiB2b2lkIFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlcjo6cGx1Z2luUHJvY2Vzc0NyYXNoZWQodWludDY0X3QgcGx1Z2lu
UHJvY2Vzc1Rva2VuKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Rva2Vuc0FuZENvbm5l
Y3Rpb25zTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdG9rZW5zQW5kQ29ubmVjdGlv
bnNNdXRleCk7CiAgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uID0gbV90b2tlbnNBbmRD
b25uZWN0aW9ucy5nZXQocGx1Z2luUHJvY2Vzc1Rva2VuKTsKIAogICAgIC8vIEl0J3MgT0sgZm9y
IGNvbm5lY3Rpb24gdG8gYmUgbnVsbCBoZXJlOyBpdCB3aWxsIGhhcHBlbiBpZiB0aGlzIHdlYiBw
cm9jZXNzIGRvZXNuJ3Qga25vdwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8UmVmUHRyPFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uPj4gbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbnM7CiAKLSAgICBNdXRleCBtX3Rv
a2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXg7CisgICAgTG9jayBtX3Rva2Vuc0FuZENvbm5lY3Rpb25z
TXV0ZXg7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4+IG1f
dG9rZW5zQW5kQ29ubmVjdGlvbnM7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2aXNpb24gMTg4
NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAgRXZlbnREaXNwYXRjaGVyOjp+
RXZlbnREaXNwYXRjaGVyKCkKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogdm9pZCBFdmVu
dERpc3BhdGNoZXI6OmFkZFNjcm9sbGluZ1RyZWVGb3JQYWdlKFdlYlBhZ2UqIHdlYlBhZ2UpCiB7
Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKIAogICAgIEFTU0VSVCh3ZWJQ
YWdlLT5jb3JlUGFnZSgpLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKTsKICAgICBBU1NFUlQoIW1f
c2Nyb2xsaW5nVHJlZXMuY29udGFpbnMod2ViUGFnZS0+cGFnZUlEKCkpKTsKQEAgLTc2LDcgKzc2
LDcgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OmFkZFNjcm9sbGluZ1RyZWVGbwogCiB2b2lkIEV2
ZW50RGlzcGF0Y2hlcjo6cmVtb3ZlU2Nyb2xsaW5nVHJlZUZvclBhZ2UoV2ViUGFnZSogd2ViUGFn
ZSkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOwogICAgIEFTU0VSVCht
X3Njcm9sbGluZ1RyZWVzLmNvbnRhaW5zKHdlYlBhZ2UtPnBhZ2VJRCgpKSk7CiAKICAgICBtX3Nj
cm9sbGluZ1RyZWVzLnJlbW92ZSh3ZWJQYWdlLT5wYWdlSUQoKSk7CkBAIC0xMzIsNyArMTMyLDcg
QEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQodWludDY0XwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Njcm9s
bGluZ1RyZWVzTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNN
dXRleCk7CiAgICAgaWYgKFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHNjcm9sbGluZ1Ry
ZWUgPSBtX3Njcm9sbGluZ1RyZWVzLmdldChwYWdlSUQpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBJ
dCdzIHByZXR0eSBob3JyaWJsZSB0aGF0IHdlJ3JlIHVwZGF0aW5nIHRoZSBiYWNrL2ZvcndhcmQg
c3RhdGUgaGVyZS4KICAgICAgICAgLy8gV2ViQ29yZSBzaG91bGQgYWx3YXlzIGtub3cgdGhlIGN1
cnJlbnQgc3RhdGUgYW5kIGtub3cgd2hlbiBpdCBjaGFuZ2VzIHNvIHRoZQpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAko
cmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6
CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJ
TkcpCi0gICAgTXV0ZXggbV9zY3JvbGxpbmdUcmVlc011dGV4OworICAgIExvY2sgbV9zY3JvbGxp
bmdUcmVlc011dGV4OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpUaHJl
YWRlZFNjcm9sbGluZ1RyZWU+PiBtX3Njcm9sbGluZ1RyZWVzOwogI2VuZGlmCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OldoZWVsRXZlbnREZWx0YVRyYWNrZXI+IG1fcmVjZW50V2hlZWxF
dmVudERlbHRhVHJhY2tlcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9X
ZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJLaXRT
b3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAsNiArMjAsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFNvdXBSZXF1ZXN0SW5wdXRT
dHJlYW0uaCIKIAorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIApAQCAtNDEsNyArNDIsNyBAQCBz
dHJ1Y3QgX1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Qcml2CiAgICAgdWludDY0X3QgYnl0
ZXNSZWNlaXZlZDsKICAgICB1aW50NjRfdCBieXRlc1JlYWQ7CiAKLSAgICBNdXRleCByZWFkTG9j
azsKKyAgICBMb2NrIHJlYWRMb2NrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1JlYWREYXRh
PiBwZW5kaW5nQXN5bmNSZWFkOwogfTsKIApAQCAtODQsNyArODUsNyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtCiAgICAgV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0
cmVhbSogc3RyZWFtID0gV0VCS0lUX1NPVVBfUkVRVUVTVF9JTlBVVF9TVFJFQU0oaW5wdXRTdHJl
YW0pOwogICAgIEdSZWZQdHI8R1Rhc2s+IHRhc2sgPSBhZG9wdEdSZWYoZ190YXNrX25ldyhzdHJl
YW0sIGNhbmNlbGxhYmxlLCBjYWxsYmFjaywgdXNlckRhdGEpKTsKIAotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihzdHJlYW0tPnByaXYtPnJlYWRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihz
dHJlYW0tPnByaXYtPnJlYWRMb2NrKTsKIAogICAgIGlmICghd2Via2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbUhhc0RhdGFUb1JlYWQoc3RyZWFtKSAmJiAhd2Via2l0U291cFJlcXVlc3RJbnB1dFN0
cmVhbUlzV2FpdGluZ0ZvckRhdGEoc3RyZWFtKSkgewogICAgICAgICBnX3Rhc2tfcmV0dXJuX2lu
dCh0YXNrLmdldCgpLCAwKTsKQEAgLTE0Myw3ICsxNDQsNyBAQCB2b2lkIHdlYmtpdFNvdXBSZXF1
ZXN0SW5wdXRTdHJlYW1BZGREYXRhCiAgICAgaWYgKHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJl
YW1GaW5pc2hlZChzdHJlYW0pKQogICAgICAgICByZXR1cm47CiAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIoc3RyZWFtLT5wcml2LT5yZWFkTG9jayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIoc3Ry
ZWFtLT5wcml2LT5yZWFkTG9jayk7CiAKICAgICBpZiAoZGF0YUxlbmd0aCkgewogICAgICAgICAv
LyBUcnVuY2F0ZSB0aGUgZGF0YUxlbmd0aCB0byB0aGUgY29udGVudExlbmd0aCBpZiBpdCdzIGtu
b3duLgpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTUtMDgtMTcgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5p
bmcgdXNlcyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6c3luY1RpbWVyRmlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjptYXJrSW1wb3J0ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpibG9ja1VudGlsSW1wb3J0Q29tcGxldGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtU3luYyk6CisgICAgICAg
ICogU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaDoKKyAgICAgICAgKiBTdG9yYWdlL1N0b3JhZ2VU
cmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzZXREYXRhYmFz
ZURpcmVjdG9yeVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmZpbmlz
aGVkSW1wb3J0aW5nT3JpZ2luSWRlbnRpZmllcnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFn
ZVRyYWNrZXI6OnN5bmNJbXBvcnRPcmlnaW5JZGVudGlmaWVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTdG9yYWdlVHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnNldE9yaWdpbkRldGFpbHMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWxzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpvcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VUcmFja2VyOjpkZWxldGVBbGxPcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlQWxsT3JpZ2lucyk6CisgICAgICAgIChXZWJDb3JlOjpT
dG9yYWdlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VU
cmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFj
a2VyOjpjYW5EZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6
OmNhbmNlbERlbGV0aW5nT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2Vy
OjpkaXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIu
aDoKKwogMjAxNS0wOC0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtXaW4gQ01ha2VdIEFsbG93IFdlYktpdExpYnJhcmllcyBkaXJlY3Rv
cnkgdG8gYmUgc2V0IGZyb20gdGhlIGNvbW1hbmQgbGluZQpJbmRleDogU291cmNlL1dlYktpdC9T
dG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9T
dG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9X
ZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQs
NyArMTY0LDcgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnN5bmNUaW1lckZpcmVkKCkKIAogICAg
IGJvb2wgcGFydGlhbFN5bmMgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jTG9jayk7
CiAKICAgICAgICAgLy8gRG8gbm90IHNjaGVkdWxlIGFub3RoZXIgc3luYyBpZiB3ZSdyZSBzdGls
bCB0cnlpbmcgdG8gY29tcGxldGUgdGhlCiAgICAgICAgIC8vIHByZXZpb3VzIG9uZS4gQnV0LCBp
ZiB3ZSdyZSBzaHV0dGluZyBkb3duLCBzY2hlZHVsZSBpdCBhbnl3YXkuCkBAIC0zNTIsOSArMzUy
LDkgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnBlcmZvcm1JbXBvcnQoKQogCiB2b2lkIFN0b3Jh
Z2VBcmVhU3luYzo6bWFya0ltcG9ydGVkKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9p
bXBvcnRMb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2ltcG9ydExvY2spOwogICAgIG1f
aW1wb3J0Q29tcGxldGUgPSB0cnVlOwotICAgIG1faW1wb3J0Q29uZGl0aW9uLnNpZ25hbCgpOwor
ICAgIG1faW1wb3J0Q29uZGl0aW9uLm5vdGlmeU9uZSgpOwogfQogCiAvLyBGSVhNRTogSW4gdGhl
IGZ1dHVyZSwgd2Ugc2hvdWxkIGFsbG93IHVzZSBvZiBTdG9yYWdlQXJlYXMgd2hpbGUgaXQncyBp
bXBvcnRpbmcgKHdoZW4gc2FmZSB0byBkbyBzbykuCkBAIC0zNzIsNyArMzcyLDcgQEAgdm9pZCBT
dG9yYWdlQXJlYVN5bmM6OmJsb2NrVW50aWxJbXBvcnRDbwogICAgIGlmICghbV9zdG9yYWdlQXJl
YSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW1wb3J0TG9j
ayk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbXBvcnRMb2NrKTsKICAgICB3aGlsZSAoIW1f
aW1wb3J0Q29tcGxldGUpCiAgICAgICAgIG1faW1wb3J0Q29uZGl0aW9uLndhaXQobV9pbXBvcnRM
b2NrKTsKICAgICBtX3N0b3JhZ2VBcmVhID0gbnVsbHB0cjsKQEAgLTQ2Nyw3ICs0NjcsNyBAQCB2
b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMoKQogICAgIGJvb2wgY2xlYXJJdGVtczsK
ICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBpdGVtczsKICAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX3N5bmNMb2NrKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9z
eW5jTG9jayk7CiAKICAgICAgICAgQVNTRVJUKG1fc3luY1NjaGVkdWxlZCk7CiAKQEAgLTQ4Miw3
ICs0ODIsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMoKQogICAgIHN5bmMo
Y2xlYXJJdGVtcywgaXRlbXMpOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zeW5jTG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3luY0xvY2spOwogICAg
ICAgICBtX3N5bmNJblByb2dyZXNzID0gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2Uv
V2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlRGF0YWJhc2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC04
NSw3ICs4Niw3IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBTdHJpbmcgbV9kYXRhYmFzZUlkZW50
aWZpZXI7CiAKLSAgICBNdXRleCBtX3N5bmNMb2NrOworICAgIExvY2sgbV9zeW5jTG9jazsKICAg
ICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2l0ZW1zUGVuZGluZ1N5bmM7CiAgICAgYm9vbCBt
X2NsZWFySXRlbXNXaGlsZVN5bmNpbmc7CiAgICAgYm9vbCBtX3N5bmNTY2hlZHVsZWQ7CkBAIC05
NCw4ICs5NSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fc3luY0Nsb3NlRGF0YWJhc2U7CiAK
LSAgICBtdXRhYmxlIE11dGV4IG1faW1wb3J0TG9jazsKLSAgICBUaHJlYWRDb25kaXRpb24gbV9p
bXBvcnRDb25kaXRpb247CisgICAgbXV0YWJsZSBMb2NrIG1faW1wb3J0TG9jazsKKyAgICBDb25k
aXRpb24gbV9pbXBvcnRDb25kaXRpb247CiAgICAgYm9vbCBtX2ltcG9ydENvbXBsZXRlOwogICAg
IHZvaWQgbWFya0ltcG9ydGVkKCk7CiAgICAgdm9pZCBtaWdyYXRlSXRlbVRhYmxlSWZOZWVkZWQo
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAkocmV2aXNp
b24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIFN0b3JhZ2VUcmFja2VyOjpTdG9yYWdl
VHJhY2tlcihjb25zdCBTdHIKIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6c2V0RGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgp
OwogCiAgICAgaWYgKG1fZGF0YWJhc2UuaXNPcGVuKCkpCiAgICAgICAgIG1fZGF0YWJhc2UuY2xv
c2UoKTsKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzZXREYXRhYmFz
ZURpcmVjdG9yCiAgICAgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aCA9IHBhdGguaXNvbGF0ZWRDb3B5
KCk7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4
KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAg
IG1fb3JpZ2luU2V0LmNsZWFyKCk7CiAgICAgfQogCkBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBT
dG9yYWdlVHJhY2tlcjo6aW1wb3J0T3JpZ2luSWRlbnRpZgogCiB2b2lkIFN0b3JhZ2VUcmFja2Vy
OjpmaW5pc2hlZEltcG9ydGluZ09yaWdpbklkZW50aWZpZXJzKCkKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFi
YXNlTXV0ZXgpOwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPmRpZEZpbmlz
aExvYWRpbmdPcmlnaW5zKCk7CiB9CkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBTdG9yYWdlVHJh
Y2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwog
CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kYXRhYmFzZU11dGV4KTsKIAogICAgICAgICAvLyBE
b24ndCBmb3JjZSBjcmVhdGlvbiBvZiBTdG9yYWdlVHJhY2tlcidzIGRiIGp1c3QgYmVjYXVzZSBh
IHRyYWNrZXIKICAgICAgICAgLy8gd2FzIGluaXRpYWxpemVkLiBJdCB3aWxsIGJlIGNyZWF0ZWQg
aWYgbG9jYWwgc3RvcmFnZSBkYnMgYXJlIGZvdW5kCkBAIC0yMTcsNyArMjE3LDcgQEAgdm9pZCBT
dG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgICAgICAgICAgaW50IHJlc3Vs
dDsKICAgICAgICAgICAgIAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIE11dGV4TG9j
a2VyIGxvY2tPcmlnaW5zKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICAgICAgICAgIExvY2tI
b2xkZXIgbG9ja09yaWdpbnMobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgICAgICAgICAgd2hp
bGUgKChyZXN1bHQgPSBzdGF0ZW1lbnQuc3RlcCgpKSA9PSBTUUxJVEVfUk9XKQogICAgICAgICAg
ICAgICAgICAgICBtX29yaWdpblNldC5hZGQoc3RhdGVtZW50LmdldENvbHVtblRleHQoMCkuaXNv
bGF0ZWRDb3B5KCkpOwogICAgICAgICAgICAgfQpAQCAtMjMyLDEwICsyMzIsMTAgQEAgdm9pZCBT
dG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZQogICAgIHN5bmNGaWxlU3lzdGVtQW5k
VHJhY2tlckRhdGFiYXNlKCk7CiAgICAgCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50TXV0
ZXgpOwogCiAgICAgICAgIGlmIChtX2NsaWVudCkgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgICAgICBPcmlnaW5TZXQ6OmNvbnN0X2l0ZXJhdG9y
IGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOwogICAgICAgICAgICAgZm9yIChPcmlnaW5TZXQ6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gbV9vcmlnaW5TZXQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQog
ICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZE1vZGlmeU9yaWdpbigqaXQpOwpA
QCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVtQW5k
VHIKIAogICAgIFZlY3RvcjxTdHJpbmc+IHBhdGhzOwogICAgIHsKLSAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
ZGF0YWJhc2VNdXRleCk7CiAgICAgICAgIHBhdGhzID0gbGlzdERpcmVjdG9yeShtX3N0b3JhZ2VE
aXJlY3RvcnlQYXRoLCAiKi5sb2NhbHN0b3JhZ2UiKTsKICAgICB9CiAKQEAgLTI2NSw3ICsyNjUs
NyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRmlsZVN5c3RlbUFuZFRyCiAgICAgLy8gZGVs
ZXRpb25zIGZyb20gZGlzayBhbmQgZnJvbSBtX29yaWdpblNldC4KICAgICBPcmlnaW5TZXQgb3Jp
Z2luU2V0Q29weTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNl
dE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAg
ICAgICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fb3JpZ2luU2V0LmJl
Z2luKCksIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAg
ICAgICBvcmlnaW5TZXRDb3B5LmFkZCgoKml0KS5pc29sYXRlZENvcHkoKSk7CiAgICAgfQpAQCAt
MzA2LDcgKzMwNiw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnNldE9yaWdpbkRldGFpbHMoY28K
ICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9v
cmlnaW5TZXRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0
ZXgpOwogCiAgICAgICAgIGlmIChtX29yaWdpblNldC5jb250YWlucyhvcmlnaW5JZGVudGlmaWVy
KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTMzNyw3ICszMzcsNyBAQCB2b2lkIFN0b3JhZ2VU
cmFja2VyOjpzeW5jU2V0T3JpZ2luRGV0YWlsCiAKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJv
Z3Jlc3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9kYXRhYmFzZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNl
TXV0ZXgpOwogCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZSh0cnVlKTsKICAgICAKQEAgLTM1Nywx
MyArMzU3LDEzIEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWwKICAg
ICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gZXN0YWJsaXNoIG9yaWdpbiAnJXMnIGluIHRoZSB0
cmFja2VyIiwgb3JpZ2luSWRlbnRpZmllci5hc2NpaSgpLmRhdGEoKSk7CiAKICAgICB7Ci0gICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgICAgIGlmICghbV9vcmlnaW5TZXQu
Y29udGFpbnMob3JpZ2luSWRlbnRpZmllcikpCiAgICAgICAgICAgICBtX29yaWdpblNldC5hZGQo
b3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50
TXV0ZXgpOwogICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlz
cGF0Y2hEaWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpAQCAtMzc2LDcg
KzM3Niw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6Om9yaWdpbnMoVmVjdG9yPFJlZlAKICAgICBp
ZiAoIW1faXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX29yaWdpblNldE11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29yaWdpblNldE11
dGV4KTsKIAogICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fb3JpZ2lu
U2V0LmJlZ2luKCksIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlk
ZW50aWZpZXIoKml0KSk7CkBAIC0zOTIsNyArMzkyLDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6
ZGVsZXRlQWxsT3JpZ2lucygpCiAgICAgICAgIHJldHVybjsKIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgd2lsbERlbGV0ZUFsbE9yaWdpbnMoKTsK
ICAgICAgICAgbV9vcmlnaW5TZXQuY2xlYXIoKTsKICAgICB9CkBAIC00MTcsNyArNDE3LDcgQEAg
dm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9yaWdpbgogCiAgICAgU1FMaXRlVHJh
bnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogICAgIAot
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgCiAgICAgb3BlblRyYWNrZXJEYXRhYmFzZShm
YWxzZSk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQpAQCAtNDM3LDcgKzQzNyw3IEBA
IHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVBbGxPcmlnaW4KICAgICAgICAgZGVsZXRl
RmlsZShzdGF0ZW1lbnQuZ2V0Q29sdW1uVGV4dCgxKSk7CiAKICAgICAgICAgewotICAgICAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY2xpZW50TXV0ZXgpOworICAgICAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9jbGllbnRNdXRleCk7CiAgICAgICAgICAgICBpZiAobV9jbGllbnQpCiAg
ICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkTW9kaWZ5T3JpZ2luKHN0YXRlbWVu
dC5nZXRDb2x1bW5UZXh0KDApKTsKICAgICAgICAgfQpAQCAtNDk5LDcgKzQ5OSw3IEBAIHZvaWQg
U3RvcmFnZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cmkKICAgICBTdHJpbmcgb3JpZ2luSWQg
PSBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpOwogICAgIAogICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX29yaWdpblNldE11dGV4KTsKICAgICAgICAgd2lsbERlbGV0ZU9yaWdpbihvcmlnaW5J
ZCk7CiAgICAgICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5JZCk7CiAgICAgfQpAQCAtNTE2
LDcgKzUxNiw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4oY28KIAog
ICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291
bnRlcjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0ZXgpOworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgCiAgICAgaWYgKCFjYW5EZWxl
dGVPcmlnaW4ob3JpZ2luSWRlbnRpZmllcikpIHsKICAgICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0
ZWQgdG8gZGVsZXRlIG9yaWdpbiAnJXMnIHdoaWxlIGl0IHdhcyBiZWluZyBjcmVhdGVkXG4iLCBv
cmlnaW5JZGVudGlmaWVyLmFzY2lpKCkuZGF0YSgpKTsKQEAgLTU0OSw3ICs1NDksNyBAQCB2b2lk
IFN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKGNvCiAgICAgCiAgICAgYm9vbCBzaG91
bGREZWxldGVUcmFja2VyRmlsZXMgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX29yaWdpblNldE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9v
cmlnaW5TZXRNdXRleCk7CiAgICAgICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5JZGVudGlm
aWVyKTsKICAgICAgICAgc2hvdWxkRGVsZXRlVHJhY2tlckZpbGVzID0gbV9vcmlnaW5TZXQuaXNF
bXB0eSgpOwogICAgIH0KQEAgLTU2Niw3ICs1NjYsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpz
eW5jRGVsZXRlT3JpZ2luKGNvCiAgICAgfQogCiAgICAgewotICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9jbGllbnRNdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fY2xpZW50
TXV0ZXgpOwogICAgICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlz
cGF0Y2hEaWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgfQpAQCAtNTkyLDcg
KzU5Miw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OndpbGxEZWxldGVPcmlnaW4oY28KIGJvb2wg
U3RvcmFnZVRyYWNrZXI6OmNhbkRlbGV0ZU9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlTXV0ZXgudHJ5TG9jaygpKTsKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9vcmlnaW5TZXRNdXRleCk7CiAgICAgcmV0dXJuIG1fb3JpZ2luc0JlaW5nRGVsZXRlZC5j
b250YWlucyhvcmlnaW5JZGVudGlmaWVyKTsKIH0KIApAQCAtNjAxLDkgKzYwMSw5IEBAIHZvaWQg
U3RvcmFnZVRyYWNrZXI6OmNhbmNlbERlbGV0aW5nT3JpZ2kKICAgICBpZiAoIW1faXNBY3RpdmUp
CiAgICAgICAgIHJldHVybjsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlTXV0
ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vcmlnaW5TZXRNdXRleCk7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fb3JpZ2luU2V0TXV0ZXgpOwogICAgICAgICBpZiAoIW1fb3JpZ2luc0Jl
aW5nRGVsZXRlZC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBtX29yaWdpbnNCZWluZ0RlbGV0ZWQu
cmVtb3ZlKG9yaWdpbklkZW50aWZpZXIpOwogICAgIH0KQEAgLTY0Nyw3ICs2NDcsNyBAQCBsb25n
IGxvbmcgU3RvcmFnZVRyYWNrZXI6OmRpc2tVc2FnZUZvck9yCiAgICAgaWYgKCFtX2lzQWN0aXZl
KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNl
TXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAKICAgICBT
dHJpbmcgcGF0aCA9IGRhdGFiYXNlUGF0aEZvck9yaWdpbihvcmlnaW4tPmRhdGFiYXNlSWRlbnRp
ZmllcigpKTsKICAgICBpZiAocGF0aC5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1N0
b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1N0b3Jh
Z2UvU3RvcmFnZVRyYWNrZXIuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9T
dG9yYWdlL1N0b3JhZ2VUcmFja2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDE1ICs5NSwxNSBA
QCBwcml2YXRlOgogICAgIHZvaWQgc3luY0ltcG9ydE9yaWdpbklkZW50aWZpZXJzKCk7CiAKICAg
ICAvLyBNdXRleCBmb3IgbV9kYXRhYmFzZSBhbmQgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC4KLSAg
ICBNdXRleCBtX2RhdGFiYXNlTXV0ZXg7CisgICAgTG9jayBtX2RhdGFiYXNlTXV0ZXg7CiAgICAg
U1FMaXRlRGF0YWJhc2UgbV9kYXRhYmFzZTsKICAgICBTdHJpbmcgbV9zdG9yYWdlRGlyZWN0b3J5
UGF0aDsKIAotICAgIE11dGV4IG1fY2xpZW50TXV0ZXg7CisgICAgTG9jayBtX2NsaWVudE11dGV4
OwogICAgIFN0b3JhZ2VUcmFja2VyQ2xpZW50KiBtX2NsaWVudDsKIAogICAgIC8vIEd1YXJkIGZv
ciBtX29yaWdpblNldCBhbmQgbV9vcmlnaW5zQmVpbmdEZWxldGVkLgotICAgIE11dGV4IG1fb3Jp
Z2luU2V0TXV0ZXg7CisgICAgTG9jayBtX29yaWdpblNldE11dGV4OwogICAgIHR5cGVkZWYgSGFz
aFNldDxTdHJpbmc+IE9yaWdpblNldDsKICAgICBPcmlnaW5TZXQgbV9vcmlnaW5TZXQ7CiAgICAg
T3JpZ2luU2V0IG1fb3JpZ2luc0JlaW5nRGVsZXRlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaW9z
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpN
dXRleCB3aXRoIFdURjo6TG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbToK
KyAgICAgICAgKFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2spOgorICAgICAgICAoLVtX
ZWJGaXhlZFBvc2l0aW9uQ29udGVudCBzY3JvbGxPclpvb21DaGFuZ2VkOl0pOgorICAgICAgICAo
LVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBvdmVyZmxvd1Njcm9sbFBvc2l0aW9uRm9yTGF5ZXI6
Y2hhbmdlZFRvOl0pOgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBzZXRWaWV3
cG9ydENvbnN0cmFpbmVkTGF5ZXJzOnN0aWNreUNvbnRhaW5lck1hcDpdKToKKyAgICAgICAgKC1b
V2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQgaGFzRml4ZWRPclN0aWNreVBvc2l0aW9uTGF5ZXJzXSk6
CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IG1pbmltdW1PZmZzZXRGcm9tRml4
ZWRQb3NpdGlvbkxheWVyc1RvQW5jaG9yRWRnZTpvZlJlY3Q6aW5MYXllcjpdKToKKwogMjAxNS0w
OC0xMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWZhY3RvciBhbmQgaW1wcm92ZSBUZXh0SW5kaWNhdG9yIHRvIHByZXBhcmUgZm9yIHRlc3RzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29u
dGVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbQkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dl
YktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0JKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDkgKzQ4LDkgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIAotc3RhdGljIE11dGV4JiBXZWJGaXhlZFBvc2l0aW9uQ29udGVu
dERhdGFMb2NrKCkKK3N0YXRpYyBMb2NrJiBXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2Nr
KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIG11dGV4LCAoKSk7
CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xMDEsNyArMTAxLDcgQEAgLSAodm9pZClkZWFs
bG9jCiAKIC0gKHZvaWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dSZWN0KXBvc2l0aW9uZWRPYmpl
Y3RzUmVjdAogewotICAgIE11dGV4TG9ja2VyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnRE
YXRhTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnRE
YXRhTG9jaygpKTsKIAogICAgIExheWVySW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gX3By
aXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5lbmQoKTsKICAgICBmb3IgKExheWVy
SW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFp
bmVkTGF5ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewpAQCAtMTQwLDcgKzE0MCw3IEBA
IC0gKHZvaWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dSZWN0KXBvc2kKIAogLSAodm9pZClvdmVy
Zmxvd1Njcm9sbFBvc2l0aW9uRm9yTGF5ZXI6KENBTGF5ZXIgKilzY3JvbGxMYXllciBjaGFuZ2Vk
VG86KENHUG9pbnQpc2Nyb2xsUG9zaXRpb24KIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZp
eGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZp
eGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAKICAgICBMYXllckluZm9NYXA6OmNvbnN0
X2l0ZXJhdG9yIGVuZCA9IF9wcml2YXRlLT5tX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuZW5k
KCk7CiAgICAgZm9yIChMYXllckluZm9NYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gX3ByaXZhdGUt
Pm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsK
QEAgLTE3Myw3ICsxNzMsNyBAQCAtICh2b2lkKWRpZEZpbmlzaFNjcm9sbGluZ09yWm9vbWluZwog
CiAtICh2b2lkKXNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6KFdURjo6SGFzaE1hcDxDQUxh
eWVyICosIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpWaWV3cG9ydENvbnN0cmFpbnRzPj4mKWxh
eWVyTWFwIHN0aWNreUNvbnRhaW5lck1hcDooV1RGOjpIYXNoTWFwPENBTGF5ZXIqLCBDQUxheWVy
Kj4mKXN0aWNreUNvbnRhaW5lcnMKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKFdlYkZpeGVkUG9z
aXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKFdlYkZpeGVkUG9z
aXRpb25Db250ZW50RGF0YUxvY2soKSk7CiAKICAgICBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0
cmFpbmVkTGF5ZXJzLmNsZWFyKCk7CiAKQEAgLTE5MCw3ICsxOTAsNyBAQCAtICh2b2lkKXNldFZp
ZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6KFdUCiAKIC0gKEJPT0wpaGFzRml4ZWRPclN0aWNreVBv
c2l0aW9uTGF5ZXJzCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29u
dGVudERhdGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29u
dGVudERhdGFMb2NrKCkpOwogICAgIHJldHVybiAhX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJh
aW5lZExheWVycy5pc0VtcHR5KCk7CiB9CiAKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgVmll
d3BvcnRDb25zdHJhaW50czo6QW5jaG9yRWRnZUZsCiAKIC0gKENHRmxvYXQpbWluaW11bU9mZnNl
dEZyb21GaXhlZFBvc2l0aW9uTGF5ZXJzVG9BbmNob3JFZGdlOihXZWJGaXhlZFBvc2l0aW9uQW5j
aG9yRWRnZSlhbmNob3JFZGdlIG9mUmVjdDooQ0dSZWN0KXJlY3QgaW5MYXllcjooQ0FMYXllciAq
KWxheWVyCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERh
dGFMb2NrKCkpOworICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERh
dGFMb2NrKCkpOwogICAgIFZpZXdwb3J0Q29uc3RyYWludHM6OkFuY2hvckVkZ2VGbGFncyBhbmNo
b3JFZGdlRmxhZ3MgPSBhbmNob3JFZGdlRmxhZ3NGb3JBbmNob3JFZGdlKGFuY2hvckVkZ2UpOwog
ICAgIENHRmxvYXQgbWluaW11bU9mZnNldCA9IENHRkxPQVRfTUFYOwogICAgIExheWVySW5mb01h
cDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExh
eWVycy5lbmQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE1LTA4LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVwbGFjZSBhbGwgcmVtYWluaW5nIHVzZXMgb2YgV1RGOjpNdXRleCB3aXRoIFdURjo6TG9jawor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDg5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9yYWdl
L1dlYkRhdGFiYXNlTWFuYWdlci5tbToKKyAgICAgICAgKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRh
c2tJZGVudGlmaWVyTG9jayk6CisgICAgICAgICgrW1dlYkRhdGFiYXNlTWFuYWdlciBzdGFydEJh
Y2tncm91bmRUYXNrXSk6CisgICAgICAgICgrW1dlYkRhdGFiYXNlTWFuYWdlciBlbmRCYWNrZ3Jv
dW5kVGFza10pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBfc3luY2hyb25pemVDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdF0pOgorICAgICAg
ICAoLVtXZWJWaWV3IF9zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdEluV2ViVGhyZWFk
OnN5bmNocm9uaXplOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zZXRDdXN0b21GaXhlZFBvc2l0
aW9uTGF5b3V0UmVjdDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZmV0Y2hDdXN0b21GaXhlZFBv
c2l0aW9uTGF5b3V0UmVjdDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisK
IDIwMTUtMDgtMTMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtD
b2NvYV0gRG93bmxvYWRzIGRvIG5vdCBzdGFydCBpZiBwb2xpY3kgZGVjaXNpb24gaXMgbWFkZSBh
c3luY2hyb25vdXNseQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFz
ZU1hbmFnZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJE
YXRhYmFzZU1hbmFnZXIubW0JKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYsOSAr
MjI2LDkgQEAgKyAodm9pZClzY2hlZHVsZUVtcHR5RGF0YWJhc2VSZW1vdmFsCiAjaWYgUExBVEZP
Uk0oSU9TKQogQGltcGxlbWVudGF0aW9uIFdlYkRhdGFiYXNlTWFuYWdlciAoV2ViRGF0YWJhc2VN
YW5hZ2VySW50ZXJuYWwpCiAKLXN0YXRpYyBNdXRleCYgdHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFz
a0lkZW50aWZpZXJMb2NrKCkKK3N0YXRpYyBMb2NrJiB0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNr
SWRlbnRpZmllckxvY2soKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChN
dXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTG9j
aywgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBA
QCArICh2b2lkKWRpZEZpbmlzaExhc3RUcmFuc2FjdGlvbgogCiArICh2b2lkKXN0YXJ0QmFja2dy
b3VuZFRhc2sKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRh
c2tJZGVudGlmaWVyTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rpb25CYWNr
Z3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOwogCiAgICAgLy8gSWYgdGhlcmUncyBhbHJlYWR5
IGFuIGV4aXN0aW5nIGJhY2tncm91bmQgdGFzayBnb2luZyBvbiwgdGhlcmUncyBubyBuZWVkIHRv
IHN0YXJ0IGEgbmV3IG9uZS4KICAgICBpZiAoZ2V0VHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lk
ZW50aWZpZXIoKSAhPSBpbnZhbGlkV2ViQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyKCkpCkBAIC0y
NzUsNyArMjc1LDcgQEAgKyAodm9pZClzdGFydEJhY2tncm91bmRUYXNrCiAKICsgKHZvaWQpZW5k
QmFja2dyb3VuZFRhc2sKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKHRyYW5zYWN0aW9uQmFja2dy
b3VuZFRhc2tJZGVudGlmaWVyTG9jaygpKTsKKyAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rp
b25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOwogCiAgICAgLy8gSXQgaXMgcG9zc2li
bGUgdGhhdCB3ZSB3ZXJlIHVuYWJsZSB0byBzdGFydCB0aGUgYmFja2dyb3VuZCB0YXNrIHdoZW4g
dGhlIGZpcnN0IHRyYW5zYWN0aW9uIGJlZ2FuLgogICAgIC8vIERvbid0IHRyeSB0byBlbmQgdGhl
IHRhc2sgaW4gdGhhdCBjYXNlLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNjMyLDcgKzM2MzIsNyBAQCAtICh2b2lkKV9zeW5jaHJv
bml6ZUN1c3RvbUZpeGVkUG9zaXRpb25MCiAKICAgICBJbnRSZWN0IG5ld1JlY3Q7CiAgICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9u
TGF5b3V0UmVjdE11dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoX3ByaXZhdGUtPnBl
bmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKICAgICAgICAgaWYgKENHUmVjdElz
TnVsbChfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgbmV3UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoX3ByaXZhdGUt
PnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCk7CkBAIC0zNjQ2LDcgKzM2NDYsNyBAQCAt
ICh2b2lkKV9zeW5jaHJvbml6ZUN1c3RvbUZpeGVkUG9zaXRpb25MCiAtICh2b2lkKV9zZXRDdXN0
b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdEluV2ViVGhyZWFkOihDR1JlY3QpcmVjdCBzeW5jaHJv
bml6ZTooQk9PTClzeW5jaHJvbml6ZQogewogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleCk7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91
dFJlY3RNdXRleCk7CiAgICAgICAgIF9wcml2YXRlLT5wZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91
dFJlY3QgPSByZWN0OwogICAgIH0KICAgICBpZiAoIXN5bmNocm9uaXplKQpAQCAtMzY2MCw3ICsz
NjYwLDcgQEAgLSAodm9pZClfc2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlYwogewogICAg
IEFTU0VSVChXZWJUaHJlYWRJc0xvY2tlZCgpKTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXgpOwor
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25M
YXlvdXRSZWN0TXV0ZXgpOwogICAgICAgICBfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25M
YXlvdXRSZWN0ID0gcmVjdDsKICAgICB9CiAgICAgW3NlbGYgX3N5bmNocm9uaXplQ3VzdG9tRml4
ZWRQb3NpdGlvbkxheW91dFJlY3RdOwpAQCAtMzY2OCw3ICszNjY4LDcgQEAgLSAodm9pZClfc2V0
Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlYwogCiAtIChCT09MKV9mZXRjaEN1c3RvbUZpeGVk
UG9zaXRpb25MYXlvdXRSZWN0OihOU1JlY3QqKXJlY3QKIHsKLSAgICBNdXRleExvY2tlciBsb2Nr
ZXIoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4KTsKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihfcHJpdmF0ZS0+cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0
TXV0ZXgpOwogICAgIGlmIChDR1JlY3RJc051bGwoX3ByaXZhdGUtPnBlbmRpbmdGaXhlZFBvc2l0
aW9uTGF5b3V0UmVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW1wb3J0IDx3dGYv
SGFzaE1hcC5oPgorI2ltcG9ydCA8d3RmL0xvY2suaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KICNpbXBvcnQgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAjaW1wb3J0IDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KQEAgLTI0OSw3ICsyNTAsNyBAQCBAaW50ZXJmYWNlIFdlYlZpZXdQcml2
YXRlIDogTlNPYmplY3QgewogICAgIENHU2l6ZSBmaXhlZExheW91dFNpemU7CiAgICAgQk9PTCBt
YWluVmlld0lzU2Nyb2xsaW5nT3Jab29taW5nOwogICAgIGludDMyX3QgZGlkRHJhd1RpbGVzOwot
ICAgIFdURjo6TXV0ZXggcGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0TXV0ZXg7CisgICAg
V1RGOjpMb2NrIHBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4OwogICAgIENHUmVj
dCBwZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3Q7CiAjZW5kaWYKIApJbmRleDogU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwkocmV2aXNpb24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTUtMDgtMTcgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGFsbCByZW1haW5pbmcgdXNl
cyBvZiBXVEY6Ok11dGV4IHdpdGggV1RGOjpMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hl
ZHVsZUNhbGwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6
cmVnaXN0ZXJQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlcjo6dW5yZWdpc3RlclBsdWdpbik6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5NYWluVGhy
ZWFkU2NoZWR1bGVyOjpkaXNwYXRjaENhbGxzRm9yUGx1Z2luKToKKyAgICAgICAgKiBQbHVnaW5z
L1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaDoKKyAgICAgICAgKiBXZWJJY29uRGF0YWJhc2Uu
Y3BwOgorICAgICAgICAoV2ViSWNvbkRhdGFiYXNlOjpkaWRSZW1vdmVBbGxJY29ucyk6CisgICAg
ICAgIChXZWJJY29uRGF0YWJhc2U6OmRpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMKToKKyAgICAg
ICAgKFdlYkljb25EYXRhYmFzZTo6ZGVsaXZlck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAqIFdl
Ykljb25EYXRhYmFzZS5oOgorICAgICAgICAqIFdlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHA6Cisg
ICAgICAgIChtYWluQnVuZGxlTG9jU3RyaW5ncyk6CisgICAgICAgIChmcmFtZXdvcmtMb2NTdHJp
bmdzTXV0ZXgpOgorICAgICAgICAoZmluZENhY2hlZFN0cmluZyk6CisgICAgICAgIChjYWNoZVN0
cmluZyk6CisKIDIwMTUtMDgtMTcgIFBlciBBcm5lIFZvbGxhbiAgPHBlYXZvQG91dGxvb2suY29t
PgogCiAgICAgICAgIFtXaW5DYWlyb10gQWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgZG9lcyBub3Qg
cmVzcGVjdCBkZXZpY2Ugc2NhbGUgZmFjdG9yLgpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2Vi
SWNvbkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJJY29u
RGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJJ
Y29uRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjAsMTQgKzMyMCwxNCBAQCBIQklU
TUFQIFdlYkljb25EYXRhYmFzZTo6Z2V0T3JDcmVhdGVEZWZhCiB2b2lkIFdlYkljb25EYXRhYmFz
ZTo6ZGlkUmVtb3ZlQWxsSWNvbnMoKQogewogICAgIC8vIFF1ZXVlaW5nIHRoZSBlbXB0eSBzdHJp
bmcgaXMgYSBzcGVjaWFsIHdheSBvZiBzYXlpbmcgInRoaXMgcXVldWVkIG5vdGlmaWNhdGlvbiBp
cyB0aGUgZGlkUmVtb3ZlQWxsSWNvbnMgbm90aWZpY2F0aW9uIgotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX25vdGlmaWNhdGlvbk11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25vdGlm
aWNhdGlvbk11dGV4KTsKICAgICBtX25vdGlmaWNhdGlvblF1ZXVlLmFwcGVuZChTdHJpbmcoKSk7
CiAgICAgc2NoZWR1bGVOb3RpZmljYXRpb25EZWxpdmVyeSgpOwogfQogCiB2b2lkIFdlYkljb25E
YXRhYmFzZTo6ZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgV1RGOjpTdHJpbmcmIHBh
Z2VVUkwpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbm90aWZpY2F0aW9uTXV0ZXgpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbm90aWZpY2F0aW9uTXV0ZXgpOwogICAgIG1fbm90aWZp
Y2F0aW9uUXVldWUuYXBwZW5kKHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNjaGVkdWxl
Tm90aWZpY2F0aW9uRGVsaXZlcnkoKTsKIH0KQEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lkIFdlYklj
b25EYXRhYmFzZTo6ZGVsaXZlck5vdGlmaWNhdGlvCiAKICAgICBWZWN0b3I8U3RyaW5nPiBxdWV1
ZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3NoYXJlZFdlYkljb25EYXRh
YmFzZS0+bV9ub3RpZmljYXRpb25NdXRleCk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
c2hhcmVkV2ViSWNvbkRhdGFiYXNlLT5tX25vdGlmaWNhdGlvbk11dGV4KTsKICAgICAgICAgcXVl
dWUuc3dhcChtX3NoYXJlZFdlYkljb25EYXRhYmFzZS0+bV9ub3RpZmljYXRpb25RdWV1ZSk7CiAg
ICAgICAgIG1fc2hhcmVkV2ViSWNvbkRhdGFiYXNlLT5tX2RlbGl2ZXJ5UmVxdWVzdGVkID0gZmFs
c2U7CiAgICAgfQpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmgJKHJldmlzaW9u
IDE4ODU2OSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw4ICszMSw5IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JY29uRGF0YWJhc2VD
bGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ludFNpemVIYXNoLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KIApAQCAtMTE2LDcgKzExNyw3IEBAIHByb3RlY3Rl
ZDoKICAgICBIYXNoTWFwPEludFNpemUsIEhCSVRNQVA+IG1fZGVmYXVsdEljb25NYXA7CiAgICAg
SGFzaE1hcDxJbnRTaXplLCBIQklUTUFQPiBtX3NoYXJlZEljb25NYXA7CiAKLSAgICBNdXRleCBt
X25vdGlmaWNhdGlvbk11dGV4OworICAgIExvY2sgbV9ub3RpZmljYXRpb25NdXRleDsKICAgICBW
ZWN0b3I8U3RyaW5nPiBtX25vdGlmaWNhdGlvblF1ZXVlOwogICAgIHZvaWQgc2NoZWR1bGVOb3Rp
ZmljYXRpb25EZWxpdmVyeSgpOwogICAgIGJvb2wgbV9kZWxpdmVyeVJlcXVlc3RlZDsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcAkocmV2aXNpb24g
MTg4NTY5KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgpAQCAtNDQsOSArNDUsOSBAQCBX
ZWJMb2NhbGl6YWJsZVN0cmluZ3NCdW5kbGUgV2ViS2l0TG9jYWxpCiAKIHR5cGVkZWYgSGFzaE1h
cDxTdHJpbmcsIExvY2FsaXplZFN0cmluZyo+IExvY2FsaXplZFN0cmluZ01hcDsKIAotc3RhdGlj
IE11dGV4JiBtYWluQnVuZGxlTG9jU3RyaW5nc011dGV4KCkKK3N0YXRpYyBMb2NrJiBtYWluQnVu
ZGxlTG9jU3RyaW5nc011dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KExvY2ssIG11dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC01Niw5ICs1Nyw5
IEBAIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmdNYXAmIG1haW5CdW5kbGVMb2MKICAgICByZXR1cm4g
bWFwOwogfQogCi1zdGF0aWMgTXV0ZXgmIGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpCitzdGF0
aWMgTG9jayYgZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKExvY2ssIG11dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQog
CkBAIC0xNzUsMTIgKzE3NiwxMiBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29weUxvY2FsaXplZFN0
cmluZ0ZyCiBzdGF0aWMgTG9jYWxpemVkU3RyaW5nKiBmaW5kQ2FjaGVkU3RyaW5nKFdlYkxvY2Fs
aXphYmxlU3RyaW5nc0J1bmRsZSogc3RyaW5nc0J1bmRsZSwgY29uc3QgU3RyaW5nJiBrZXkpCiB7
CiAgICAgaWYgKCFzdHJpbmdzQnVuZGxlKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobWFp
bkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1haW5C
dW5kbGVMb2NTdHJpbmdzTXV0ZXgoKSk7CiAgICAgICAgIHJldHVybiBtYWluQnVuZGxlTG9jU3Ry
aW5ncygpLmdldChrZXkpOwogICAgIH0KIAogICAgIGlmIChzdHJpbmdzQnVuZGxlLT5idW5kbGUg
PT0gV2ViS2l0TG9jYWxpemFibGVTdHJpbmdzQnVuZGxlLmJ1bmRsZSkgewotICAgICAgICBNdXRl
eExvY2tlciBsb2NrKGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrKGZyYW1ld29ya0xvY1N0cmluZ3NNdXRleCgpKTsKICAgICAgICAgcmV0dXJuIGZy
YW1ld29ya0xvY1N0cmluZ3MoKS5nZXQoa2V5KTsKICAgICB9CiAKQEAgLTE5MCwxMiArMTkxLDEy
IEBAIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmcqIGZpbmRDYWNoZWRTdHJpbmcKIHN0YXRpYyB2b2lk
IGNhY2hlU3RyaW5nKFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRsZSogc3RyaW5nc0J1bmRsZSwg
Y29uc3QgU3RyaW5nJiBrZXksIExvY2FsaXplZFN0cmluZyogdmFsdWUpCiB7CiAgICAgaWYgKCFz
dHJpbmdzQnVuZGxlKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2sobWFpbkJ1bmRsZUxvY1N0
cmluZ3NNdXRleCgpKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1haW5CdW5kbGVMb2NTdHJp
bmdzTXV0ZXgoKSk7CiAgICAgICAgIG1haW5CdW5kbGVMb2NTdHJpbmdzKCkuc2V0KGtleSwgdmFs
dWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgTXV0ZXhMb2NrZXIgbG9jayhmcmFt
ZXdvcmtMb2NTdHJpbmdzTXV0ZXgoKSk7CisgICAgTG9ja0hvbGRlciBsb2NrKGZyYW1ld29ya0xv
Y1N0cmluZ3NNdXRleCgpKTsKICAgICBmcmFtZXdvcmtMb2NTdHJpbmdzKCkuc2V0KGtleSwgdmFs
dWUpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbk1haW5UaHJl
YWRTY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMv
UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAJKHJldmlzaW9uIDE4ODU2OSkKKysrIFNvdXJj
ZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6UGx1
Z2luTWFpblRocgogCiB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlQ2Fs
bChOUFAgbnBwLCBNYWluVGhyZWFkRnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQqIHVzZXJEYXRhKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2sobV9xdWV1ZU11dGV4KTsKIAogICAgIENhbGxRdWV1ZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2Nh
bGxRdWV1ZU1hcC5maW5kKG5wcCk7CiAgICAgaWYgKGl0ID09IG1fY2FsbFF1ZXVlTWFwLmVuZCgp
KQpAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVk
dWxlCiAKIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6cmVnaXN0ZXJQbHVnaW4oTlBQ
IG5wcCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrKG1fcXVldWVNdXRleCk7CisgICAgTG9ja0hv
bGRlciBsb2NrKG1fcXVldWVNdXRleCk7CiAKICAgICBBU1NFUlQoIW1fY2FsbFF1ZXVlTWFwLmNv
bnRhaW5zKG5wcCkpOwogICAgIG1fY2FsbFF1ZXVlTWFwLnNldChucHAsIERlcXVlPENhbGw+KCkp
OwpAQCAtNjYsNyArNjYsNyBAQCB2b2lkIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnJlZ2lz
dGVyCiAKIHZvaWQgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6dW5yZWdpc3RlclBsdWdpbihO
UFAgbnBwKQogewotICAgIE11dGV4TG9ja2VyIGxvY2sobV9xdWV1ZU11dGV4KTsKKyAgICBMb2Nr
SG9sZGVyIGxvY2sobV9xdWV1ZU11dGV4KTsKIAogICAgIEFTU0VSVChtX2NhbGxRdWV1ZU1hcC5j
b250YWlucyhucHApKTsKICAgICBtX2NhbGxRdWV1ZU1hcC5yZW1vdmUobnBwKTsKQEAgLTc3LDcg
Kzc3LDcgQEAgdm9pZCBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpkaXNwYXRjaAogICAgIGZv
ciAoYXV0byYgY2FsbCA6IGNhbGxzKSB7CiAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBwbHVnLWlu
IGhhcyBiZWVuIGRlc3Ryb3llZC4KICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIg
bG9jayhtX3F1ZXVlTXV0ZXgpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fcXVldWVN
dXRleCk7CiAgICAgICAgICAgICBpZiAoIW1fY2FsbFF1ZXVlTWFwLmNvbnRhaW5zKG5wcCkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dp
bi9QbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaAkocmV2aXNp
b24gMTg4NTY5KQorKysgU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5NYWluVGhyZWFk
U2NoZWR1bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xv
Y2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRp
bmcuaD4KIApAQCAtNzksNyArODAsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2NhbGxQZW5k
aW5nOwogICAgIENhbGxRdWV1ZU1hcCBtX2NhbGxRdWV1ZU1hcDsKLSAgICBNdXRleCBtX3F1ZXVl
TXV0ZXg7CisgICAgTG9jayBtX3F1ZXVlTXV0ZXg7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODg1NjkpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyMSBAQAorMjAxNS0wOC0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29t
PgorCisgICAgICAgIFJlcGxhY2UgYWxsIHJlbWFpbmluZyB1c2VzIG9mIFdURjo6TXV0ZXggd2l0
aCBXVEY6OkxvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODA4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHA6CisgICAgICAgIChq
YXZhU2NyaXB0VGhyZWFkc011dGV4KToKKyAgICAgICAgKHJ1bkphdmFTY3JpcHRUaHJlYWQpOgor
ICAgICAgICAoc3RhcnRKYXZhU2NyaXB0VGhyZWFkcyk6CisgICAgICAgIChzdG9wSmF2YVNjcmlw
dFRocmVhZHMpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5j
cHA6IEZpeGVkIGEgYnVnIGluIHRoZSB0ZXN0IHRoYXQgSSBmb3VuZCBmcm9tIHR1cm5pbmcgdGhl
IHRlc3QgaW50byBhIGJlbmNobWFyay4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9Xb3JrUXVldWUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE1LTA4LTE3ICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW09TIFhdIFJlbW92ZSBzdXBwb3J0
IGZvciBjb21wb3NpdGUgZm9udHMKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3Jp
cHRUaHJlYWRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFT
Y3JpcHRUaHJlYWRpbmcuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBUb29scy9EdW1wUmVuZGVy
VHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYs
NyBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ0LDkgKzQ1LDkgQEAgc3RhdGljIGNvbnN0IHNp
emVfdCBqYXZhU2NyaXB0VGhyZWFkc0NvdQogc3RhdGljIGJvb2wgamF2YVNjcmlwdFRocmVhZHNT
aG91bGRUZXJtaW5hdGU7CiBzdGF0aWMgSlNDb250ZXh0R3JvdXBSZWYgamF2YVNjcmlwdFRocmVh
ZHNHcm91cDsKIAotc3RhdGljIE11dGV4JiBqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkKK3N0YXRp
YyBMb2NrJiBqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHN0YXRpY011dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKExvY2ssIHN0YXRpY011dGV4LCAoKSk7CiAgICAgcmV0dXJuIHN0
YXRpY011dGV4OwogfQogCkBAIC03MCwyNiArNzEsMjYgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhy
ZWFkKHZvaWQqKQogCiAgICAgSlNHbG9iYWxDb250ZXh0UmVmIGN0eDsKICAgICB7Ci0gICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICBjdHgg
PSBKU0dsb2JhbENvbnRleHRDcmVhdGVJbkdyb3VwKGphdmFTY3JpcHRUaHJlYWRzR3JvdXAsIDAp
OwogICAgIH0KIAogICAgIEpTU3RyaW5nUmVmIHNjcmlwdFJlZjsKICAgICB7Ci0gICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICBzY3JpcHRS
ZWYgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHQpOwogICAgIH0KIAogICAg
IHdoaWxlICh0cnVlKSB7CiAgICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKICAgICAgICAgICAgIEpTVmFsdWVSZWYgZXhj
ZXB0aW9uID0gMDsKICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY3R4LCBzY3JpcHRSZWYs
IDAsIDAsIDEsICZleGNlcHRpb24pOwogICAgICAgICAgICAgQVNTRVJUKCFleGNlcHRpb24pOwog
ICAgICAgICB9CiAKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGph
dmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihq
YXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICAgICAgY29uc3Qgc2l6ZV90IHZhbHVl
c0NvdW50ID0gMTAyNDsKICAgICAgICAgICAgIEpTVmFsdWVSZWYgdmFsdWVzW3ZhbHVlc0NvdW50
XTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVzQ291bnQ7ICsraSkK
QEAgLTk3LDcgKzk4LDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqKQogICAgICAg
ICB9CiAKICAgICAgICAgewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3Jp
cHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2Ny
aXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICAgICAgaWYgKGphdmFTY3JpcHRUaHJlYWRzU2hv
dWxkVGVybWluYXRlKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xMDYs
NyArMTA3LDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqKQogICAgICAgICBpZiAo
cmFuZCgpICUgNSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICBUaHJlYWRJZGVudGlmaWVy
IHRocmVhZCA9IGN1cnJlbnRUaHJlYWQoKTsKICAgICAgICAgZGV0YWNoVGhyZWFkKHRocmVhZCk7
CiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkucmVtb3ZlKHRocmVhZCk7CkBAIC0xMTQsNyAr
MTE1LDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqKQogICAgICAgICBicmVhazsK
ICAgICB9CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgp
KTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOwogICAg
IEpTU3RyaW5nUmVsZWFzZShzY3JpcHRSZWYpOwogICAgIEpTR2FyYmFnZUNvbGxlY3QoY3R4KTsK
ICAgICBKU0dsb2JhbENvbnRleHRSZWxlYXNlKGN0eCk7CkBAIC0xMjQsNyArMTI1LDcgQEAgdm9p
ZCBzdGFydEphdmFTY3JpcHRUaHJlYWRzKCkKIHsKICAgICBqYXZhU2NyaXB0VGhyZWFkc0dyb3Vw
ID0gSlNDb250ZXh0R3JvdXBDcmVhdGUoKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZh
U2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRU
aHJlYWRzTXV0ZXgoKSk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGphdmFTY3JpcHRU
aHJlYWRzQ291bnQ7ICsraSkKICAgICAgICAgamF2YVNjcmlwdFRocmVhZHMoKS5hZGQoY3JlYXRl
VGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCAwKSk7CkBAIC0xMzMsMTMgKzEzNCwxMyBA
QCB2b2lkIHN0YXJ0SmF2YVNjcmlwdFRocmVhZHMoKQogdm9pZCBzdG9wSmF2YVNjcmlwdFRocmVh
ZHMoKQogewogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJl
YWRzTXV0ZXgoKSk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRz
TXV0ZXgoKSk7CiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzU2hvdWxkVGVybWluYXRlID0gdHJ1
ZTsKICAgICB9CiAKICAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllciwgamF2YVNjcmlwdFRocmVh
ZHNDb3VudD4gdGhyZWFkczsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihqYXZh
U2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2Ny
aXB0VGhyZWFkc011dGV4KCkpOwogICAgICAgICBjb3B5VG9WZWN0b3IoamF2YVNjcmlwdFRocmVh
ZHMoKSwgdGhyZWFkcyk7CiAgICAgICAgIEFTU0VSVCh0aHJlYWRzLnNpemUoKSA9PSBqYXZhU2Ny
aXB0VGhyZWFkc0NvdW50KTsKICAgICB9CkBAIC0xNDgsNyArMTQ5LDcgQEAgdm9pZCBzdG9wSmF2
YVNjcmlwdFRocmVhZHMoKQogICAgICAgICB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbih0aHJlYWRz
W2ldKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJl
YWRzTXV0ZXgoKSk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRz
TXV0ZXgoKSk7CiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkuY2xlYXIoKTsKICAgICB9CiAK
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAkocmV2
aXNpb24gMTg4NTY5KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgcnVuVGVzdCgKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFzaG91bGRDb250aW51ZSB8fCAh
cXVldWUuaXNFbXB0eSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGltZW91dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIXNob3VsZENvbnRpbnVlKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG91bGRD
b250aW51ZSAmJiBxdWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkTm90aWZ5ID0gcXVldWUuc2l6
ZSgpID09IG1heFF1ZXVlU2l6ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHF1
ZXVlLnRha2VGaXJzdCgpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29y
a1F1ZXVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9X
b3JrUXVldWUuY3BwCShyZXZpc2lvbiAxODg1NjkpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9Xb3JrUXVldWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJUZXN0LmgiCisjaW5jbHVkZSA8d3RmL0Nv
bmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KICNpbmNsdWRlIDxzdHJpbmc+CkBAIC00MCw4
ICs0Miw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBkaXNwYXRjaEFmdGVyTGFiZWwgPSAKICAgICAK
IFRFU1QoV1RGX1dvcmtRdWV1ZSwgU2ltcGxlKQogewotICAgIE11dGV4IG1fbG9jazsKLSAgICBU
aHJlYWRDb25kaXRpb24gbV90ZXN0Q29tcGxldGVkOworICAgIExvY2sgbV9sb2NrOworICAgIENv
bmRpdGlvbiBtX3Rlc3RDb21wbGV0ZWQ7CiAgICAgVmVjdG9yPHN0ZDo6c3RyaW5nPiBtX2Z1bmN0
aW9uQ2FsbE9yZGVyOwogCiAgICAgYm9vbCBjYWxsZWRTaW1wbGVUZXN0ID0gZmFsc2U7CkBAIC01
Niw3ICs1OCw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgU2ltcGxlKQogICAgIGludCBpbml0aWFs
UmVmQ291bnQgPSBxdWV1ZS0+cmVmQ291bnQoKTsKICAgICBFWFBFQ1RfRVEoMSwgaW5pdGlhbFJl
ZkNvdW50KTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgcXVldWUtPmRpc3BhdGNoKFsmXSh2b2lkKSB7CiAgICAg
ICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIuYXBwZW5kKHNpbXBsZVRlc3RMYWJlbCk7CiAgICAgICAg
IGNhbGxlZFNpbXBsZVRlc3QgPSB0cnVlOwpAQCAtNjksNyArNzEsNyBAQCBURVNUKFdURl9Xb3Jr
UXVldWUsIFNpbXBsZSkKICAgICB9KTsKIAogICAgIHF1ZXVlLT5kaXNwYXRjaChbJl0odm9pZCkg
ewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgbV9mdW5jdGlvbkNhbGxPcmRlci5hcHBlbmQodGhp
cmRUZXN0TGFiZWwpOwogICAgICAgICBjYWxsZWRUaGlyZFRlc3QgPSB0cnVlOwogCkBAIC03Nyw3
ICs3OSw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgU2ltcGxlKQogICAgICAgICBFWFBFQ1RfVFJV
RShjYWxsZWRMb25nVGVzdCk7CiAgICAgICAgIEVYUEVDVF9UUlVFKGNhbGxlZFRoaXJkVGVzdCk7
CiAgICAgICAgIAotICAgICAgICBtX3Rlc3RDb21wbGV0ZWQuc2lnbmFsKCk7CisgICAgICAgIG1f
dGVzdENvbXBsZXRlZC5ub3RpZnlPbmUoKTsKICAgICB9KTsKIAogICAgIEVYUEVDVF9HVChxdWV1
ZS0+cmVmQ291bnQoKSwgMSk7CkBAIC05Niw4ICs5OCw4IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwg
U2ltcGxlKQogCiBURVNUKFdURl9Xb3JrUXVldWUsIFR3b1F1ZXVlcykKIHsKLSAgICBNdXRleCBt
X2xvY2s7Ci0gICAgVGhyZWFkQ29uZGl0aW9uIG1fdGVzdFF1ZXVlMUNvbXBsZXRlZCwgbV90ZXN0
UXVldWUyQ29tcGxldGVkOworICAgIExvY2sgbV9sb2NrOworICAgIENvbmRpdGlvbiBtX3Rlc3RR
dWV1ZTFDb21wbGV0ZWQsIG1fdGVzdFF1ZXVlMkNvbXBsZXRlZDsKICAgICBWZWN0b3I8c3RkOjpz
dHJpbmc+IG1fZnVuY3Rpb25DYWxsT3JkZXI7CiAKICAgICBib29sIGNhbGxlZFNpbXBsZVRlc3Qg
PSBmYWxzZTsKQEAgLTExMCw3ICsxMTIsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFR3b1F1ZXVl
cykKICAgICBFWFBFQ1RfRVEoMSwgcXVldWUxLT5yZWZDb3VudCgpKTsKICAgICBFWFBFQ1RfRVEo
MSwgcXVldWUyLT5yZWZDb3VudCgpKTsKIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2sp
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgCiAgICAgcXVldWUxLT5kaXNw
YXRjaChbJl0odm9pZCkgewogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZChzaW1w
bGVUZXN0TGFiZWwpOwpAQCAtMTIwLDIyICsxMjIsMjIgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBU
d29RdWV1ZXMpCiAgICAgcXVldWUyLT5kaXNwYXRjaChbJl0odm9pZCkgewogICAgICAgICBzdGQ6
OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3Ioc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MCkpOwog
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX2xvY2spOwogCiAgICAgICAgIC8vIFdpbGwgZmFpbCBpZiBxdWV1ZTIgdG9vayB0
aGUgbXV0ZXggYmVmb3JlIHF1ZXVlMS4KICAgICAgICAgRVhQRUNUX1RSVUUoY2FsbGVkVGhpcmRU
ZXN0KTsKIAogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZChsb25nVGVzdExhYmVs
KTsKICAgICAgICAgY2FsbGVkTG9uZ1Rlc3QgPSB0cnVlOwotICAgICAgICBtX3Rlc3RRdWV1ZTJD
b21wbGV0ZWQuc2lnbmFsKCk7CisgICAgICAgIG1fdGVzdFF1ZXVlMkNvbXBsZXRlZC5ub3RpZnlP
bmUoKTsKICAgICB9KTsKIAogICAgIHF1ZXVlMS0+ZGlzcGF0Y2goWyZdKHZvaWQpIHsKLSAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fbG9jayk7CiAgICAgICAgIG1fZnVuY3Rpb25DYWxsT3JkZXIuYXBwZW5kKHRoaXJkVGVzdExh
YmVsKTsKICAgICAgICAgY2FsbGVkVGhpcmRUZXN0ID0gdHJ1ZTsKICAgICAgICAgCi0gICAgICAg
IG1fdGVzdFF1ZXVlMUNvbXBsZXRlZC5zaWduYWwoKTsKKyAgICAgICAgbV90ZXN0UXVldWUxQ29t
cGxldGVkLm5vdGlmeU9uZSgpOwogICAgIH0pOwogCiAgICAgbV90ZXN0UXVldWUxQ29tcGxldGVk
LndhaXQobV9sb2NrKTsKQEAgLTE1OCw4ICsxNjAsOCBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFR3
b1F1ZXVlcykKIAogVEVTVChXVEZfV29ya1F1ZXVlLCBEaXNwYXRjaEFmdGVyKQogewotICAgIE11
dGV4IG1fbG9jazsKLSAgICBUaHJlYWRDb25kaXRpb24gbV90ZXN0Q29tcGxldGVkLCBtX2Rpc3Bh
dGNoQWZ0ZXJUZXN0Q29tcGxldGVkOworICAgIExvY2sgbV9sb2NrOworICAgIENvbmRpdGlvbiBt
X3Rlc3RDb21wbGV0ZWQsIG1fZGlzcGF0Y2hBZnRlclRlc3RDb21wbGV0ZWQ7CiAgICAgVmVjdG9y
PHN0ZDo6c3RyaW5nPiBtX2Z1bmN0aW9uQ2FsbE9yZGVyOwogCiAgICAgYm9vbCBjYWxsZWRTaW1w
bGVUZXN0ID0gZmFsc2U7CkBAIC0xNjcsMjAgKzE2OSwyMCBAQCBURVNUKFdURl9Xb3JrUXVldWUs
IERpc3BhdGNoQWZ0ZXIpCiAKICAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNv
bS5hcHBsZS5XZWJLaXQuVGVzdC5kaXNwYXRjaEFmdGVyIik7CiAKLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV9sb2NrKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogCiAgICAgcXVl
dWUtPmRpc3BhdGNoKFsmXSh2b2lkKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xv
Y2spOworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBtX2Z1bmN0
aW9uQ2FsbE9yZGVyLmFwcGVuZChzaW1wbGVUZXN0TGFiZWwpOwogICAgICAgICBjYWxsZWRTaW1w
bGVUZXN0ID0gdHJ1ZTsKLSAgICAgICAgbV90ZXN0Q29tcGxldGVkLnNpZ25hbCgpOworICAgICAg
ICBtX3Rlc3RDb21wbGV0ZWQubm90aWZ5T25lKCk7CiAgICAgfSk7CiAKICAgICBxdWV1ZS0+ZGlz
cGF0Y2hBZnRlcihzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUwMCksIFsmXSh2b2lkKSB7Ci0g
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2xvY2spOwogICAgICAgICBtX2Z1bmN0aW9uQ2FsbE9yZGVyLmFwcGVuZChkaXNwYXRj
aEFmdGVyTGFiZWwpOwogICAgICAgICBjYWxsZWREaXNwYXRjaEFmdGVyVGVzdCA9IHRydWU7Ci0g
ICAgICAgIG1fZGlzcGF0Y2hBZnRlclRlc3RDb21wbGV0ZWQuc2lnbmFsKCk7CisgICAgICAgIG1f
ZGlzcGF0Y2hBZnRlclRlc3RDb21wbGV0ZWQubm90aWZ5T25lKCk7CiAgICAgfSk7CiAKICAgICBt
X3Rlc3RDb21wbGV0ZWQud2FpdChtX2xvY2spOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCShyZXZpc2lvbiAxODg1
NjkpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKIFRFU1QoV1RGX1dvcmtRdWV1ZSwgQXN5bmNJTykKIHsKICAgICBzdHJ1Y3QgVGVzdGlu
Z0NvbnRleHQgewotICAgICAgICBNdXRleCBtX2xvY2s7CisgICAgICAgIExvY2sgbV9sb2NrOwog
ICAgICAgICBUaHJlYWRDb25kaXRpb24gbV90ZXN0Q29tcGxldGVkOwogICAgICAgICBHTWFpbkNv
bnRleHQqIG1fbWFpbkNvbnRleHQ7CiAgICAgfSBjb250ZXh0OwpAQCAtNDksNyArNDksNyBAQCBU
RVNUKFdURl9Xb3JrUXVldWUsIEFzeW5jSU8pCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjdXJyZW50
RGlyZWN0b3J5KGdfZ2V0X2N1cnJlbnRfZGlyKCkpOwogICAgIEdSZWZQdHI8R0ZpbGU+IGZpbGUg
PSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChjdXJyZW50RGlyZWN0b3J5LmdldCgpKSk7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIoY29udGV4dC5tX2xvY2spOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKGNvbnRleHQubV9sb2NrKTsKICAgICBxdWV1ZS0+ZGlzcGF0Y2goWyZdKHZvaWQp
IHsKICAgICAgICAgRVhQRUNUX1RSVUUoZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0
KCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShnX21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1
bHQoKSAhPSBjb250ZXh0Lm1fbWFpbkNvbnRleHQpOwpAQCAtNTcsNyArNTcsNyBAQCBURVNUKFdU
Rl9Xb3JrUXVldWUsIEFzeW5jSU8pCiAgICAgICAgIGdfZmlsZV9xdWVyeV9pbmZvX2FzeW5jKGZp
bGUuZ2V0KCksIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfU0laRSwgR19GSUxFX1FVRVJZX0lO
Rk9fTk9ORSwgR19QUklPUklUWV9ERUZBVUxULCBudWxscHRyLAogICAgICAgICAgICAgW10oR09i
amVjdCosIEdBc3luY1Jlc3VsdCosIGdwb2ludGVyIHVzZXJEYXRhKSB7CiAgICAgICAgICAgICAg
ICAgVGVzdGluZ0NvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxUZXN0aW5nQ29udGV4dCo+
KHVzZXJEYXRhKTsKLSAgICAgICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoY29udGV4dC0+
bV9sb2NrKTsKKyAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihjb250ZXh0LT5tX2xv
Y2spOwogICAgICAgICAgICAgICAgIEVYUEVDVF9FUShnX21haW5fY29udGV4dF9nZXRfdGhyZWFk
X2RlZmF1bHQoKSwgY29udGV4dC0+bV9tYWluQ29udGV4dCk7CiAgICAgICAgICAgICAgICAgY29u
dGV4dC0+bV90ZXN0Q29tcGxldGVkLnNpZ25hbCgpOwogICAgICAgICAgICAgfSwgJmNvbnRleHQp
Owo=
</data>
<flag name="review"
          id="284416"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>